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_;
A primitive field of type <T> with automated input and output.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
The dynamicMotionSolverFvMesh.
Finite area mesh (used for 2-D non-Euclidian finite area method) defined using a patch of faces on a ...
Mesh data needed to do the Finite Volume discretisation.
The interfaceTrackingFvMesh.
vectorField & controlPoints()
Return control points.
const Switch & pureFreeSurface() const
Pure free-surface.
void correctUsBoundaryConditions()
Correct surface velocity boundary conditions.
areaVectorField & Us()
Return free-surface velocity field.
TypeName("interfaceTrackingFvMesh")
Runtime type information.
const areaScalarField & fsNetPhi() const
Return free-surface net flux.
const surfaceScalarField & phi() const
Return constant reference to velocity field.
tmp< scalarField > freeSurfaceSnGradUn()
Return free surface normal derivative of normal velocity comp.
vectorField & pointsDisplacementDir()
Return reference to point displacement direction field.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
const volVectorField & U() const
Return constant reference to velocity field.
void writeVTK() const
Write VTK freeSurface mesh.
const Switch & correctContactLineNormals() const
Correct contact line point normals.
void updateUs()
Update free-surface velocity field.
areaScalarField & surfaceTension()
Return surface tension field.
vectorField & facesDisplacementDir()
Return reference to control points displacement direction field.
void writeVTKControlPoints()
Write VTK freeSurface control points.
faMesh & aMesh()
Return reference to finite area mesh.
virtual bool update()
Update the mesh for both mesh motion and topology change.
const label & fsPatchIndex() const
const fvMesh & mesh() const
Switch & rigidFreeSurface()
Rigid free-surface.
* ~interfaceTrackingFvMesh()
Destructor.
const dimensionedScalar & sigma() const
Surface tension coefficient of pure free-surface.
Switch & correctContactLineNormals()
Correct contact line point normals.
tmp< areaVectorField > surfaceTensionGrad()
Return surface tension gradient.
labelList & motionPointsMask()
Return reference to motion points mask field.
volScalarField & bulkSurfactantConcentration()
Return volume surfactant concentration field.
bool normalMotionDir() const
Motion direction swithc.
const volScalarField & p() const
Return constant reference to pressure field.
const Switch & rigidFreeSurface() const
Rigid free-surface.
const surfactantProperties & surfactant() const
Return surfactant properties.
areaScalarField & surfactantConcentration()
Return free-surface surfactant concentration field.
edgeScalarField & Phis()
Return free-surface fluid flux field.
tmp< scalarField > freeSurfacePressureJump()
Return free surface pressure jump.
tmp< vectorField > freeSurfaceSnGradU()
Return free surface normal derivative of velocity.
const faMesh & aMesh() const
Return reference to finite area mesh.
void clearControlPoints()
Clear control points.
A class for managing temporary objects.
Template functions to aid in the implementation of demand driven data.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, false)
void deleteDemandDrivenData(DataPtr &dataPtr)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.