|
OOFEM 3.0
|
#include <leplic.h>
Classes | |
| class | computeLEPLICVolumeFractionWrapper |
Public Member Functions | |
| LEPlic (int n, Domain *d) | |
| void | updatePosition (TimeStep *tStep) override |
| void | updateYourself (TimeStep *tStep) override |
| void | giveMaterialMixtureAt (FloatArray &answer, FloatArray &position) override |
| void | giveElementMaterialMixture (FloatArray &answer, int ielem) override |
| double | giveNodalScalarRepresentation (int) override |
| double | computeCriticalTimeStep (TimeStep *tStep) override |
| void | giveUpdatedCoordinate (FloatArray &answer, int num) |
| double | giveUpdatedXCoordinate (int num) |
| double | giveUpdatedYCoordinate (int num) |
| void | initializeFrom (InputRecord &ir) override |
| void | giveInputRecord (DynamicInputRecord &input) override |
| const char * | giveClassName () const override |
| Public Member Functions inherited from oofem::MaterialInterface | |
| MaterialInterface (int n, Domain *d) | |
| const char * | giveInputRecordName () const override |
| virtual void | initialize () |
| Public Member Functions inherited from oofem::FEMComponent | |
| FEMComponent (int n, Domain *d) | |
| virtual | ~FEMComponent ()=default |
| Virtual destructor. | |
| Domain * | giveDomain () const |
| virtual void | setDomain (Domain *d) |
| int | giveNumber () const |
| void | setNumber (int num) |
| virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
| virtual void | initializeFrom (InputRecord &ir, int priority) |
| virtual void | initializeFinish () |
| virtual void | postInitialize () |
| Performs post initialization steps. Called after all components are created and initialized. | |
| virtual void | saveContext (DataStream &stream, ContextMode mode) |
| virtual void | restoreContext (DataStream &stream, ContextMode mode) |
| virtual int | checkConsistency () |
| virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
| virtual void | printYourself () |
| Prints receiver state on stdout. Useful for debugging. | |
| virtual Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
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. | |
| FloatArray | updated_YCoords |
| Array used to store updated y-coordinates of nodes as moved along streamlines. | |
| double | orig_reference_fluid_volume |
| Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
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. |
Definition at line 165 of file leplic.h.
References oofem::MaterialInterface::MaterialInterface(), and orig_reference_fluid_volume.
Referenced by oofem::LEPlic::computeLEPLICVolumeFractionWrapper::computeLEPLICVolumeFractionWrapper().
|
overridevirtual |
Computes critical time step induced by receiver integration algorithm
Implements oofem::MaterialInterface.
Definition at line 650 of file leplic.C.
References oofem::LEPlicElementInterface::computeCriticalLEPlicTimeStep(), oofem::FEMComponent::domain, oofem::LEPlicElementInterfaceType, and oofem::min().
|
protected |
Definition at line 431 of file leplic.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::distance(), oofem::FEMComponent::domain, 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().
Referenced by doInterfaceReconstruction().
|
protected |
Definition at line 231 of file leplic.C.
References doCellDLS(), oofem::FEMComponent::domain, findCellLineConstant(), oofem::FEMComponent::giveInterface(), oofem::LEPlicElementInterfaceType, oofem::LEPlicElementInterface::setTempInterfaceNormal(), and oofem::LEPlicElementInterface::setTempLineConstant().
Referenced by updatePosition().
|
protected |
Definition at line 257 of file leplic.C.
References oofem::LEPlicElementInterface::addTempVolumeFraction(), oofem::IntArray::at(), oofem::Polygon::computeVolume(), deleteLayerGraphics(), oofem::FEMComponent::domain, 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, OOFEG_DEBUG_LAYER, OOFEM_ERROR, OOFEM_LOG_INFO, OOFEM_WARNING, orig_reference_fluid_volume, oofem::GT_Exception::print(), oofem::LEPlicElementInterface::setTempVolumeFraction(), and oofem::LEPlicElementInterface::truncateMatVolume().
Referenced by updatePosition().
|
protected |
Definition at line 152 of file leplic.C.
References oofem::FloatArray::at(), oofem::FEMComponent::domain, oofem::EngngModel::giveContext(), oofem::DofManager::giveCoordinates(), oofem::FieldManager::giveField(), oofem::EngngModelContext::giveFieldManager(), oofem::TimeStep::givePreviousStep(), oofem::TimeStep::giveTimeIncrement(), oofem::DofManager::giveUnknownVector(), OOFEM_ERROR, updated_XCoords, and updated_YCoords.
Referenced by updatePosition().
|
protected |
Definition at line 533 of file leplic.C.
References oofem::FloatArray::at(), oofem::brent(), oofem::FEMComponent::domain, oofem::DofManager::giveCoordinate(), oofem::FEMComponent::giveInterface(), oofem::Element::giveNode(), oofem::FEMComponent::giveNumber(), oofem::Element::giveNumberOfNodes(), giveUpdatedXCoordinate(), giveUpdatedYCoordinate(), LEPLIC_BRENT_EPS, LEPLIC_ZERO_VOF, oofem::LEPlicElementInterfaceType, and OOFEM_ERROR.
Referenced by doInterfaceReconstruction().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
|
overridevirtual |
Returns volumetric (or other based measure) of relative material contents in given element.
Implements oofem::MaterialInterface.
Definition at line 689 of file leplic.C.
References oofem::FloatArray::at(), oofem::FEMComponent::domain, oofem::FEMComponent::giveInterface(), oofem::LEPlicElementInterfaceType, and oofem::FloatArray::resize().
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::FEMComponent.
Definition at line 643 of file leplic.C.
References _IFT_LEPLIC_refVol, orig_reference_fluid_volume, and oofem::DynamicInputRecord::setField().
|
overridevirtual |
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 665 of file leplic.C.
References oofem::FloatArray::at(), oofem::FEMComponent::domain, oofem::FEMComponent::giveInterface(), oofem::LEPlicElementInterfaceType, oofem::FloatArray::resize(), and oofem::Polygon::testPoint().
|
overridevirtual |
Returns scalar value representation of material Interface at given point. For visualization
Implements oofem::MaterialInterface.
Definition at line 704 of file leplic.C.
References oofem::IntArray::at(), oofem::FEMComponent::domain, oofem::IntArray::giveSize(), and oofem::LEPlicElementInterfaceType.
|
inline |
Returns updated nodal positions.
Definition at line 179 of file leplic.h.
References oofem::FloatArray::at(), oofem::FloatArray::resize(), updated_XCoords, and updated_YCoords.
Referenced by oofem::TR1_2D_CBS::giveElementCenter(), oofem::TR1_2D_SUPG2::giveElementCenter(), oofem::TR1_2D_SUPG2_AXI::giveElementCenter(), and oofem::TR1_2D_SUPG::giveElementCenter().
|
inline |
Definition at line 185 of file leplic.h.
References updated_XCoords.
Referenced by oofem::TR1_2D_CBS::computeMyVolume(), oofem::TR1_2D_SUPG2::computeMyVolume(), oofem::TR1_2D_SUPG2_AXI::computeMyVolume(), oofem::TR1_2D_SUPG::computeMyVolume(), findCellLineConstant(), oofem::TR1_2D_CBS::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMaterialVolumePoly(), oofem::TR1_2D_SUPG::formMaterialVolumePoly(), oofem::TR1_2D_CBS::formMyVolumePoly(), oofem::TR1_2D_SUPG2::formMyVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMyVolumePoly(), oofem::TR1_2D_SUPG::formMyVolumePoly(), oofem::TR1_2D_CBS::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2_AXI::formVolumeInterfacePoly(), and oofem::TR1_2D_SUPG::formVolumeInterfacePoly().
|
inline |
Definition at line 186 of file leplic.h.
References updated_YCoords.
Referenced by oofem::TR1_2D_CBS::computeMyVolume(), oofem::TR1_2D_SUPG2::computeMyVolume(), oofem::TR1_2D_SUPG2_AXI::computeMyVolume(), oofem::TR1_2D_SUPG::computeMyVolume(), findCellLineConstant(), oofem::TR1_2D_CBS::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2::formMaterialVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMaterialVolumePoly(), oofem::TR1_2D_SUPG::formMaterialVolumePoly(), oofem::TR1_2D_CBS::formMyVolumePoly(), oofem::TR1_2D_SUPG2::formMyVolumePoly(), oofem::TR1_2D_SUPG2_AXI::formMyVolumePoly(), oofem::TR1_2D_SUPG::formMyVolumePoly(), oofem::TR1_2D_CBS::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2::formVolumeInterfacePoly(), oofem::TR1_2D_SUPG2_AXI::formVolumeInterfacePoly(), and oofem::TR1_2D_SUPG::formVolumeInterfacePoly().
|
overridevirtual |
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. Note that initializeFrom may be called mutiple times.
| ir | Input record to initialize from. |
| priority | Priority of the input record. This is used to determine the order of initialization |
Reimplemented from oofem::FEMComponent.
Definition at line 635 of file leplic.C.
References _IFT_LEPLIC_refVol, IR_GIVE_OPTIONAL_FIELD, and orig_reference_fluid_volume.
|
overridevirtual |
Updates the position of interface according to state reached in given solution step.
Implements oofem::MaterialInterface.
Definition at line 128 of file leplic.C.
References deleteLayerGraphics(), doInterfaceReconstruction(), doInterfaceRemapping(), doLagrangianPhase(), EVFastRedraw(), myview, and OOFEG_DEBUG_LAYER.
|
inlineoverridevirtual |
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 |
Definition at line 156 of file leplic.h.
Referenced by doInterfaceRemapping(), giveInputRecord(), initializeFrom(), and LEPlic().
|
protected |
Array used to store updated x-coordinates of nodes as moved along streamlines.
Definition at line 153 of file leplic.h.
Referenced by doLagrangianPhase(), giveUpdatedCoordinate(), and giveUpdatedXCoordinate().
|
protected |
Array used to store updated y-coordinates of nodes as moved along streamlines.
Definition at line 155 of file leplic.h.
Referenced by doLagrangianPhase(), giveUpdatedCoordinate(), and giveUpdatedYCoordinate().