45#define _IFT_LEPLIC_refVol "refvol"
bool isBoundary()
Returns true if cell is boundary.
virtual Element * giveElement()=0
Return number of receiver's element.
double giveVolumeFraction()
void updateYourself(TimeStep *tStep)
void saveContext(DataStream &stream, ContextMode mode)
FloatArray normal
Interface segment normal.
void restoreContext(DataStream &stream, ContextMode mode)
virtual double computeMyVolume(LEPlic *matInterface, bool updFlag)=0
Computes the volume of receiver.
void setPermanentVolumeFraction(double v)
void setTempLineConstant(double tp)
void addTempVolumeFraction(double v)
virtual double computeCriticalLEPlicTimeStep(TimeStep *tStep)=0
Computes critical time step.
double p
Line constant of line segment representing interface.
double giveTempLineConstant()
void setTempInterfaceNormal(FloatArray tg)
double giveTempVolumeFraction()
virtual double truncateMatVolume(const Polygon &matvolpoly, double &volume)=0
Truncates given material polygon to receiver.
void giveTempInterfaceNormal(FloatArray &n)
virtual void formMyVolumePoly(Polygon &myPoly, LEPlic *mat_interface, bool updFlag)=0
Assembles receiver volume.
void setTempVolumeFraction(double v)
virtual void formVolumeInterfacePoly(Polygon &matvolpoly, LEPlic *matInterface, const FloatArray &normal, const double p, bool updFlag)=0
Assembles receiver material polygon based solely on given interface line.
virtual void formMaterialVolumePoly(Polygon &matvolpoly, LEPlic *matInterface, const FloatArray &normal, const double p, bool updFlag)=0
Assembles the true element material polygon (takes receiver vof into accout).
double vof
Volume fraction of reference fluid in element.
virtual void giveElementCenter(LEPlic *mat_interface, FloatArray ¢er, bool updFlag)=0
Computes the receiver center (in updated Lagrangian configuration).
virtual double computeLEPLICVolumeFraction(const FloatArray &n, const double p, LEPlic *matInterface, bool updFlag)=0
Computes corresponding volume fraction to given interface position.
void setNormal(FloatArray n)
LEPlicElementInterface * iface
computeLEPLICVolumeFractionWrapper(LEPlicElementInterface *i, LEPlic *mi, const FloatArray &n, const double target_vof_val, bool upd_val)
void giveElementMaterialMixture(FloatArray &answer, int ielem) override
void doInterfaceReconstruction(TimeStep *tStep, bool coord_upd, bool temp_vof)
double orig_reference_fluid_volume
double giveUpdatedXCoordinate(int num)
void giveUpdatedCoordinate(FloatArray &answer, int num)
double computeCriticalTimeStep(TimeStep *tStep) override
void doInterfaceRemapping(TimeStep *tStep)
void findCellLineConstant(double &p, FloatArray &fvgrad, int ie, bool coord_upd, bool temp_vof_flag)
void doLagrangianPhase(TimeStep *tStep)
FloatArray updated_YCoords
Array used to store updated y-coordinates of nodes as moved along streamlines.
double giveNodalScalarRepresentation(int) override
void doCellDLS(FloatArray &fvgrad, int ie, bool coord_upd, bool temp_vof_flag)
void giveMaterialMixtureAt(FloatArray &answer, FloatArray &position) override
void initializeFrom(InputRecord &ir) override
void updateYourself(TimeStep *tStep) override
const char * giveClassName() const override
void giveInputRecord(DynamicInputRecord &input) override
double giveUpdatedYCoordinate(int num)
FloatArray updated_XCoords
Array used to store updated x-coordinates of nodes as moved along streamlines.
void updatePosition(TimeStep *tStep) override
MaterialInterface(int n, Domain *d)