38 #ifndef interfaceTrackingFvMesh_H 39 #define interfaceTrackingFvMesh_H 75 wordList nonReflectingFreeSurfacePatches_;
78 wordList pointNormalsCorrectionPatches_;
98 Switch correctContactLineNormals_;
155 void makeControlPoints();
158 void makeMotionPointsMask();
161 void makeDirections();
164 void makeFsNetPhi()
const;
170 void makeBulkSurfactConc()
const;
173 void makeSurfactConc()
const;
176 void makeSurfaceTension()
const;
179 void makeSurfactant()
const;
182 void makeContactAngle();
191 void initializeData();
194 void updateDisplacementDirections();
197 void initializeControlPointsPosition();
212 void smoothFreeSurfaceMesh();
215 void updateSurfaceFlux();
218 void updateSurfactantConcentration();
221 vector totalPressureForce()
const;
224 vector totalViscousForce()
const;
227 vector totalSurfaceTensionForce()
const;
230 scalar maxCourantNumber();
233 void updateProperties();
236 void correctContactLinePointNormals();
239 void correctPointDisplacement
248 TypeName(
"interfaceTrackingFvMesh");
276 virtual bool init(
const bool doInit);
302 return fsPatchIndex_;
308 return pureFreeSurface_;
314 return rigidFreeSurface_;
320 return rigidFreeSurface_;
326 return correctContactLineNormals_;
332 return correctContactLineNormals_;
392 return normalMotionDir_;
edgeScalarField & Phis()
Return free-surface fluid flux field.
Finite area mesh (used for 2-D non-Euclidian finite area method) defined using a patch of faces on a ...
vectorField & facesDisplacementDir()
Return reference to control points displacement direction field.
const areaScalarField & fsNetPhi() const
Return free-surface net flux.
tmp< scalarField > freeSurfacePressureJump()
Return free surface pressure jump.
bool normalMotionDir() const
Motion direction swithc.
vectorField & pointsDisplacementDir()
Return reference to point displacement direction field.
void updateUs()
Update free-surface velocity field.
A simple wrapper around bool so that it can be read as a word: true/false, on/off, yes/no, any/none. Also accepts 0/1 as a string and shortcuts t/f, y/n.
const volVectorField & U() const
Return constant reference to velocity field.
void correctUsBoundaryConditions()
Correct surface velocity boundary conditions.
faMesh & aMesh()
Return reference to finite area mesh.
virtual const pointField & points() const
Return raw points.
volScalarField & bulkSurfactantConcentration()
Return volume surfactant concentration field.
const label & fsPatchIndex() const
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
TypeName("interfaceTrackingFvMesh")
Runtime type information.
* ~interfaceTrackingFvMesh()
Destructor.
areaVectorField & Us()
Return free-surface velocity field.
const dimensionedScalar & sigma() const
Surface tension coefficient of pure free-surface.
vectorField & controlPoints()
Return control points.
virtual bool update()
Update the mesh for both mesh motion and topology change.
areaScalarField & surfactantConcentration()
Return free-surface surfactant concentration field.
Switch correctContactLineNormals() const noexcept
Correct contact line point normals.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
const volScalarField & p() const
Return constant reference to pressure field.
const surfaceScalarField & phi() const
Return constant reference to velocity field.
labelList & motionPointsMask()
Return reference to motion points mask field.
Switch pureFreeSurface() const noexcept
Pure free-surface.
const surfactantProperties & surfactant() const
Return surfactant properties.
Template functions to aid in the implementation of demand driven data.
void clearControlPoints()
Clear control points.
Mesh data needed to do the Finite Volume discretisation.
void writeVTKControlPoints()
Write VTK freeSurface control points.
tmp< scalarField > freeSurfaceSnGradUn()
Return free surface normal derivative of normal velocity comp.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
tmp< areaVectorField > surfaceTensionGrad()
Return surface tension gradient.
The dynamicMotionSolverFvMesh.
void writeVTK() const
Write VTK freeSurface mesh.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
A class for managing temporary objects.
tmp< vectorField > freeSurfaceSnGradU()
Return free surface normal derivative of velocity.
void deleteDemandDrivenData(DataPtr &dataPtr)
Defines the attributes of an object for which implicit objectRegistry management is supported...
Switch rigidFreeSurface() const noexcept
Rigid free-surface.
A primitive field of type <T> with automated input and output.
areaScalarField & surfaceTension()
Return surface tension field.
The interfaceTrackingFvMesh.