OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Abstract base class representing Lagrangian-Eulerian (moving) material interfaces. More...
#include <leplic.h>
Classes | |
class | computeLEPLICVolumeFractionWrapper |
Public Member Functions | |
LEPlic (int n, Domain *d) | |
Constructor. More... | |
virtual void | updatePosition (TimeStep *tStep) |
Updates the position of interface according to state reached in given solution step. More... | |
virtual void | updateYourself (TimeStep *tStep) |
Updates element state after equilibrium in time step has been reached. More... | |
virtual void | giveMaterialMixtureAt (FloatArray &answer, FloatArray &position) |
Returns relative material contents at given point. More... | |
virtual void | giveElementMaterialMixture (FloatArray &answer, int ielem) |
Returns volumetric (or other based measure) of relative material contents in given element. More... | |
virtual double | giveNodalScalarRepresentation (int) |
Returns scalar value representation of material Interface at given point. More... | |
virtual double | computeCriticalTimeStep (TimeStep *tStep) |
Computes critical time step induced by receiver integration algorithm. More... | |
void | giveUpdatedCoordinate (FloatArray &answer, int num) |
Returns updated nodal positions. More... | |
double | giveUpdatedXCoordinate (int num) |
double | giveUpdatedYCoordinate (int num) |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
Setups the input record string of receiver. More... | |
virtual const char * | giveClassName () const |
Public Member Functions inherited from oofem::MaterialInterface | |
MaterialInterface (int n, Domain *d) | |
Constructor. More... | |
virtual const char * | giveInputRecordName () const |
virtual void | initialize () |
Initializes receiver. More... | |
Public Member Functions inherited from oofem::FEMComponent | |
FEMComponent (int n, Domain *d) | |
Regular constructor, creates component with given number and belonging to given domain. More... | |
virtual | ~FEMComponent () |
Virtual destructor. More... | |
Domain * | giveDomain () const |
virtual void | setDomain (Domain *d) |
Sets associated Domain. More... | |
int | giveNumber () const |
void | setNumber (int num) |
Sets number of receiver. More... | |
virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
Local renumbering support. More... | |
virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Stores receiver state to output stream. More... | |
virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Restores the receiver state previously written in stream. More... | |
virtual int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. More... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Prints output of receiver to stream, for given time step. More... | |
virtual void | printYourself () |
Prints receiver state on stdout. Useful for debugging. More... | |
virtual Interface * | giveInterface (InterfaceType t) |
Interface requesting service. More... | |
std::string | errorInfo (const char *func) const |
Returns string for prepending output (used by error reporting macros). More... | |
Protected Member Functions | |
void | doLagrangianPhase (TimeStep *tStep) |
void | doInterfaceReconstruction (TimeStep *tStep, bool coord_upd, bool temp_vof) |
void | doInterfaceRemapping (TimeStep *tStep) |
void | doCellDLS (FloatArray &fvgrad, int ie, bool coord_upd, bool temp_vof_flag) |
void | findCellLineConstant (double &p, FloatArray &fvgrad, int ie, bool coord_upd, bool temp_vof_flag) |
Protected Attributes | |
FloatArray | updated_XCoords |
Array used to store updated x-coordinates of nodes as moved along streamlines. More... | |
FloatArray | updated_YCoords |
Array used to store updated y-coordinates of nodes as moved along streamlines. More... | |
double | orig_reference_fluid_volume |
Protected Attributes inherited from oofem::FEMComponent | |
int | number |
Component number. More... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
Abstract base class representing Lagrangian-Eulerian (moving) material interfaces.
Its typical use to model moving interface (such as free surface) in a fixed-grid methods (as typically used in CFD). The basic tasks are representation of interface and its updating.
|
inline |
Constructor.
Takes two two arguments. Creates MaterialInterface instance with given number and belonging to given domain.
n | Component number in particular domain. For instance, can represent node number in particular domain. |
d | Domain to which component belongs to. |
|
virtual |
Computes critical time step induced by receiver integration algorithm.
Implements oofem::MaterialInterface.
Definition at line 663 of file leplic.C.
References oofem::LEPlicElementInterface::computeCriticalLEPlicTimeStep(), oofem::LEPlicElementInterfaceType, and oofem::min().
|
protected |
Definition at line 441 of file leplic.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::FloatArray::distance(), oofem::LEPlicElementInterface::giveElementCenter(), oofem::ConnectivityTable::giveElementNeighbourList(), oofem::LEPlicElementInterface::giveTempVolumeFraction(), oofem::LEPlicElementInterface::giveVolumeFraction(), oofem::LEPlicElementInterfaceType, oofem::FloatArray::negated(), oofem::FloatArray::normalize(), oofem::FloatMatrix::solveForRhs(), oofem::FloatArray::zero(), and oofem::FloatMatrix::zero().
|
protected |
Definition at line 241 of file leplic.C.
References oofem::LEPlicElementInterfaceType, oofem::LEPlicElementInterface::p, oofem::LEPlicElementInterface::setTempInterfaceNormal(), and oofem::LEPlicElementInterface::setTempLineConstant().
|
protected |
Definition at line 267 of file leplic.C.
References oofem::LEPlicElementInterface::addTempVolumeFraction(), oofem::IntArray::at(), oofem::Polygon::computeVolume(), deleteLayerGraphics(), oofem::Polygon::draw(), EVFastRedraw(), oofem::LEPlicElementInterface::formMaterialVolumePoly(), gc, oofem::TimeStep::giveNumber(), oofem::IntArray::giveSize(), oofem::LEPlicElementInterface::giveTempInterfaceNormal(), oofem::LEPlicElementInterface::giveTempLineConstant(), oofem::LEPlicElementInterface::giveTempVolumeFraction(), oofem::LEPlicElementInterface::giveVolumeFraction(), LEPLIC_ZERO_VOF, oofem::LEPlicElementInterfaceType, myview, oofem::LEPlicElementInterface::normal, OOFEG_DEBUG_LAYER, OOFEM_ERROR, OOFEM_LOG_INFO, OOFEM_WARNING, oofem::GT_Exception::print(), oofem::LEPlicElementInterface::setTempVolumeFraction(), and oofem::LEPlicElementInterface::truncateMatVolume().
|
protected |
Definition at line 159 of file leplic.C.
References oofem::FloatArray::at(), oofem::EngngModel::giveContext(), oofem::Node::giveCoordinates(), oofem::EngngModel::giveEngngModel(), oofem::FieldManager::giveField(), oofem::EngngModelContext::giveFieldManager(), oofem::TimeStep::givePreviousStep(), oofem::TimeStep::giveTimeIncrement(), oofem::DofManager::giveUnknownVector(), OOFEM_ERROR, and oofem::IntArray::resize().
|
protected |
Definition at line 543 of file leplic.C.
References oofem::FloatArray::at(), oofem::brent(), oofem::Node::giveCoordinate(), oofem::FEMComponent::giveInterface(), oofem::Element::giveNode(), oofem::FEMComponent::giveNumber(), oofem::Element::giveNumberOfNodes(), LEPLIC_BRENT_EPS, LEPLIC_ZERO_VOF, oofem::LEPlicElementInterfaceType, and OOFEM_ERROR.
|
inlinevirtual |
Implements oofem::FEMComponent.
Definition at line 196 of file leplic.h.
References oofem::LEPlicElementInterface::p, and oofem::LEPlicElementInterface::temp_vof.
|
virtual |
Returns volumetric (or other based measure) of relative material contents in given element.
Implements oofem::MaterialInterface.
Definition at line 702 of file leplic.C.
References oofem::FloatArray::at(), oofem::FEMComponent::giveInterface(), oofem::LEPlicElementInterfaceType, and oofem::FloatArray::resize().
|
virtual |
Setups the input record string of receiver.
input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::FEMComponent.
Definition at line 656 of file leplic.C.
References _IFT_LEPLIC_refVol, and oofem::DynamicInputRecord::setField().
|
virtual |
Returns relative material contents at given point.
Usually only one material is presented in given point, but some smoothing may be applied close to material interface to make transition smooth
Implements oofem::MaterialInterface.
Definition at line 678 of file leplic.C.
References oofem::FloatArray::at(), oofem::FEMComponent::giveInterface(), oofem::LEPlicElementInterfaceType, oofem::FloatArray::resize(), and oofem::Polygon::testPoint().
|
virtual |
Returns scalar value representation of material Interface at given point.
For visualization
Implements oofem::MaterialInterface.
Definition at line 717 of file leplic.C.
References oofem::IntArray::at(), oofem::IntArray::giveSize(), oofem::LEPlicElementInterface::giveTempVolumeFraction(), oofem::LEPlicElementInterfaceType, and oofem::LEPlicElementInterface::vof.
|
inline |
Returns updated nodal positions.
Definition at line 183 of file leplic.h.
References oofem::FloatArray::at(), and oofem::FloatArray::resize().
Referenced by oofem::TR1_2D_CBS::giveElementCenter(), oofem::TR1_2D_SUPG2_AXI::giveElementCenter(), oofem::TR1_2D_SUPG2::giveElementCenter(), and oofem::TR1_2D_SUPG::giveElementCenter().
|
inline |
Definition at line 189 of file leplic.h.
References oofem::FloatArray::at().
Referenced by oofem::TR1_2D_CBS::computeMyVolume(), oofem::TR1_2D_SUPG2_AXI::computeMyVolume(), oofem::TR1_2D_SUPG2::computeMyVolume(), oofem::TR1_2D_SUPG::computeMyVolume(), oofem::TR1_2D_CBS::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2::formMaterialVolumePoly(), oofem::TR1_2D_SUPG::formMaterialVolumePoly(), oofem::TR1_2D_CBS::formMyVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMyVolumePoly(), oofem::TR1_2D_SUPG2::formMyVolumePoly(), oofem::TR1_2D_SUPG::formMyVolumePoly(), oofem::TR1_2D_CBS::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2_AXI::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2::formVolumeInterfacePoly(), and oofem::TR1_2D_SUPG::formVolumeInterfacePoly().
|
inline |
Definition at line 190 of file leplic.h.
References oofem::FloatArray::at().
Referenced by oofem::TR1_2D_CBS::computeMyVolume(), oofem::TR1_2D_SUPG2_AXI::computeMyVolume(), oofem::TR1_2D_SUPG2::computeMyVolume(), oofem::TR1_2D_SUPG::computeMyVolume(), oofem::TR1_2D_CBS::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2::formMaterialVolumePoly(), oofem::TR1_2D_SUPG::formMaterialVolumePoly(), oofem::TR1_2D_CBS::formMyVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMyVolumePoly(), oofem::TR1_2D_SUPG2::formMyVolumePoly(), oofem::TR1_2D_SUPG::formMyVolumePoly(), oofem::TR1_2D_CBS::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2_AXI::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2::formVolumeInterfacePoly(), and oofem::TR1_2D_SUPG::formVolumeInterfacePoly().
|
virtual |
Initializes receiver according to object description stored in input record.
This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record.
ir | Input record to initialize from. |
Reimplemented from oofem::FEMComponent.
Definition at line 645 of file leplic.C.
References _IFT_LEPLIC_refVol, IR_GIVE_OPTIONAL_FIELD, and oofem::IRRT_OK.
|
virtual |
Updates the position of interface according to state reached in given solution step.
Implements oofem::MaterialInterface.
Definition at line 135 of file leplic.C.
References deleteLayerGraphics(), EVFastRedraw(), myview, and OOFEG_DEBUG_LAYER.
|
inlinevirtual |
Updates element state after equilibrium in time step has been reached.
All temporary history variables, which now describe equilibrium state should be copied into equilibrium ones. The existing internal state is used for update.
Implements oofem::MaterialInterface.
|
protected |
|
protected |
|
protected |