46 #define _IFT_LevelSetPCS_levelSetValues "levelset" 47 #define _IFT_LevelSetPCS_refmatpoly_x "refmatpolyx" 48 #define _IFT_LevelSetPCS_refmatpoly_y "refmatpolyy" 49 #define _IFT_LevelSetPCS_reinit_dt "rdt" 50 #define _IFT_LevelSetPCS_reinit_err "rerr" 51 #define _IFT_LevelSetPCS_reinit_alg "lsra" 52 #define _IFT_LevelSetPCS_nsd "nsd" 53 #define _IFT_LevelSetPCS_ci1 "ci1" 54 #define _IFT_LevelSetPCS_ci2 "ci2" 59 #define LevelSetPCS_CACHE_ELEMENT_VOF 0 119 enum PCSEqType { PCS_levelSetUpdate, PCS_levelSetRedistance };
137 #ifdef LevelSetPCS_CACHE_ELEMENT_VOF 150 initialRefMatFlag =
false;
151 reinit_dt_flag =
false;
155 virtual void initialize();
156 virtual void updatePosition(
TimeStep *tStep);
158 virtual double computeCriticalTimeStep(
TimeStep *tStep);
161 virtual void reinitialization(
TimeStep *tStep);
164 virtual void giveElementMaterialMixture(
FloatArray &answer,
int ielem);
194 #endif // levelsetpcs_h int nsd
number of spatial dimensions.
virtual double LS_PCS_computeF(LevelSetPCS *ls, TimeStep *tStep)=0
Evaluates F in level set equation of the form where for interface position driven by flow with speed...
std::vector< FloatArray > elemVof
LevelSetPCSElementInterface()
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
double & at(int i)
Coefficient access function.
double giveLevelSetDofManValue(int i)
Returns level set value in specific node.
Element interface for LevelSetPCS class representing level-set like material interface.
long int levelSetVersion
Level set values version.
double reinit_err
Reinitialization error limit.
virtual double giveNodalScalarRepresentation(int i)
Returns scalar value representation of material Interface at given point.
virtual void LS_PCS_computeVOFFractions(FloatArray &answer, FloatArray &fi)=0
Returns VOF fractions for each material on element according to nodal values of level set function (p...
int reinit_alg
Type of reinitialization algorithm to use.
Abstract base class representing (moving) material interfaces.
virtual double LS_PCS_computeS(LevelSetPCS *ls, TimeStep *tStep)=0
Evaluates S in level set equation of the form where .
double reinit_dt
Time step used in reinitialization of LS (if apply).
LevelSetPCS(int n, Domain *d)
Constructor.
Class representing vector of real numbers.
Class representing 2D polygon.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
Abstract base class representing Level Set representation of material interfaces. ...
long int elemVofLevelSetVersion
virtual void LS_PCS_computedN(FloatMatrix &answer)=0
Returns gradient of shape functions.
virtual void updateYourself(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
virtual double LS_PCS_computeVolume()=0
Returns receiver's volume.
the oofem namespace is to define a context or scope in which all oofem names are defined.
FloatArray previousLevelSetValues
Class representing solution step.
virtual const char * giveClassName() const