OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::LEPlic Class Reference

Abstract base class representing Lagrangian-Eulerian (moving) material interfaces. More...

#include <leplic.h>

+ Inheritance diagram for oofem::LEPlic:
+ Collaboration diagram for oofem::LEPlic:

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...
 
DomaingiveDomain () 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 InterfacegiveInterface (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...
 
Domaindomain
 Link to domain object, useful for communicating with other FEM components. More...
 

Detailed Description

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.

Definition at line 153 of file leplic.h.

Constructor & Destructor Documentation

oofem::LEPlic::LEPlic ( int  n,
Domain d 
)
inline

Constructor.

Takes two two arguments. Creates MaterialInterface instance with given number and belonging to given domain.

Parameters
nComponent number in particular domain. For instance, can represent node number in particular domain.
dDomain to which component belongs to.

Definition at line 169 of file leplic.h.

Member Function Documentation

double oofem::LEPlic::computeCriticalTimeStep ( TimeStep tStep)
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().

void oofem::LEPlic::doInterfaceReconstruction ( TimeStep tStep,
bool  coord_upd,
bool  temp_vof 
)
protected
void oofem::LEPlic::findCellLineConstant ( double &  p,
FloatArray fvgrad,
int  ie,
bool  coord_upd,
bool  temp_vof_flag 
)
protected
virtual const char* oofem::LEPlic::giveClassName ( ) const
inlinevirtual
Returns
Class name of the receiver.

Implements oofem::FEMComponent.

Definition at line 196 of file leplic.h.

References oofem::LEPlicElementInterface::p, and oofem::LEPlicElementInterface::temp_vof.

void oofem::LEPlic::giveElementMaterialMixture ( FloatArray answer,
int  ielem 
)
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().

void oofem::LEPlic::giveInputRecord ( DynamicInputRecord input)
virtual

Setups the input record string of receiver.

Parameters
inputDynamic 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().

void oofem::LEPlic::giveMaterialMixtureAt ( FloatArray answer,
FloatArray position 
)
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().

double oofem::LEPlic::giveNodalScalarRepresentation ( int  )
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.

void oofem::LEPlic::giveUpdatedCoordinate ( FloatArray answer,
int  num 
)
inline
IRResultType oofem::LEPlic::initializeFrom ( InputRecord ir)
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.

See also
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters
irInput record to initialize from.
Returns
IRResultType

Reimplemented from oofem::FEMComponent.

Definition at line 645 of file leplic.C.

References _IFT_LEPLIC_refVol, IR_GIVE_OPTIONAL_FIELD, and oofem::IRRT_OK.

void oofem::LEPlic::updatePosition ( TimeStep tStep)
virtual

Updates the position of interface according to state reached in given solution step.

Todo:
Can't have OOFEG stuff here, it will crash when running OOFEM normally.

Implements oofem::MaterialInterface.

Definition at line 135 of file leplic.C.

References deleteLayerGraphics(), EVFastRedraw(), myview, and OOFEG_DEBUG_LAYER.

virtual void oofem::LEPlic::updateYourself ( TimeStep tStep)
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.

Definition at line 174 of file leplic.h.

Member Data Documentation

double oofem::LEPlic::orig_reference_fluid_volume
protected

Definition at line 160 of file leplic.h.

FloatArray oofem::LEPlic::updated_XCoords
protected

Array used to store updated x-coordinates of nodes as moved along streamlines.

Definition at line 157 of file leplic.h.

FloatArray oofem::LEPlic::updated_YCoords
protected

Array used to store updated y-coordinates of nodes as moved along streamlines.

Definition at line 159 of file leplic.h.


The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:37 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011