An implementation of the isoAdvector geometric Volume-of-Fluid method advancing the provided volume fraction field (alpha1) in time using the given velocity field, U, and corresponding face fluxes, phi. More...
#include <isoAdvection.H>
Public Member Functions | |
| TypeName ("isoAdvection") | |
| Runtime type information. | |
| isoAdvection (volScalarField &alpha1, const surfaceScalarField &phi, const volVectorField &U) | |
| Constructors. | |
| virtual | ~isoAdvection ()=default |
| Destructor. | |
| template<class SpType, class SuType> | |
| void | advect (const SpType &Sp, const SuType &Su) |
| Advect the free surface. Updates alpha field, taking into account. | |
| reconstructionSchemes & | surf () noexcept |
| Return reconstructionSchemes. | |
| const volScalarField & | alpha () const noexcept |
| Return alpha field. | |
| const dictionary & | dict () const noexcept |
| Return the controls dictionary. | |
| void | writeSurfaceCells () const |
| Return cellSet of surface cells. | |
| tmp< surfaceScalarField > | getRhoPhi (const dimensionedScalar &rho1, const dimensionedScalar &rho2) const |
| Return mass flux. | |
| tmp< surfaceScalarField > | getRhoPhi (const volScalarField &rho1, const volScalarField &rho2) |
| Return mass flux. | |
| const surfaceScalarField & | alphaPhi () const noexcept |
| reference to alphaPhi | |
| scalar | advectionTime () const noexcept |
| time spend in the advection step | |
| void | writeIsoFaces (const UList< List< point > > &isoFacePts) const |
| Write isoface points to .obj file. | |
| template<class SpType, class SuType> | |
| void | boundFlux (const bitSet &nextToInterface, surfaceScalarField &dVfcorrectionValues, DynamicList< label > &correctedFaces, const SpType &Sp, const SuType &Su) |
An implementation of the isoAdvector geometric Volume-of-Fluid method advancing the provided volume fraction field (alpha1) in time using the given velocity field, U, and corresponding face fluxes, phi.
References:
Main isoAdvector idea:
Roenby, J., Bredmose, H. and Jasak, H. (2016).
A computational method for sharp interface advection
Royal Society Open Science, 3
doi 10.1098/rsos.160405
Calculation of rhoPhi:
Roenby, J., Bredmose, H., & Jasak, H. (2019).
IsoAdvector: Geometric VOF on general meshes.
OpenFOAMĀ® (pp. 281-296). Springer, Cham.
Extension to porous media flows:
Missios, K., Jacobsen, N. G., Moeller, K., & Roenby, J.
Using the isoAdvector Geometric VOF Method for Interfacial Flows
Through Porous Media. MARINE 2021.
Original code supplied by Johan Roenby, DHI (2016) Modified Henning Scheufler, DLR
Definition at line 87 of file isoAdvection.H.
| isoAdvection | ( | volScalarField & | alpha1, |
| const surfaceScalarField & | phi, | ||
| const volVectorField & | U ) |
Constructors.
Construct given alpha, phi and velocity field. Note: phi should be
divergence free up to a sufficient tolerance
Definition at line 48 of file isoAdvection.C.
References alpha1, boundary, cutFace::debug, Foam::dimTime, Foam::dimVol, e, Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::gMinMax(), limits, mesh, Foam::name(), Foam::New(), IOobjectOption::NO_WRITE, UPstream::parRun(), phi, porosityProperties(), primitiveFieldRef(), IOobjectOption::READ_IF_PRESENT, timeName, U, and Foam::Zero.

|
virtualdefault |
| void advect | ( | const SpType & | Sp, |
| const SuType & | Su ) |
Advect the free surface. Updates alpha field, taking into account.
multiple calls within a single time step.
Definition at line 423 of file isoAdvectionTemplates.C.
References addProfilingInFunction, DebugInfo, DebugInFunction, Foam::endl(), limitedSurfaceInterpolationScheme< Type >::flux(), Foam::gMinMax(), Foam::Info, limits, Foam::Sp(), Foam::Su(), Foam::fvc::surfaceIntegrate(), and writeSurfaceCells().

|
inlinenoexcept |
Return reconstructionSchemes.
Definition at line 426 of file isoAdvection.H.
References Foam::noexcept.
|
inlinenoexcept |
|
inlinenoexcept |
Return the controls dictionary.
Definition at line 442 of file isoAdvection.H.
References Foam::noexcept.
| void writeSurfaceCells | ( | ) | const |
Return cellSet of surface cells.
Definition at line 648 of file isoAdvection.C.
References HashSet< Key, Hash >::insert(), IOobjectOption::NO_READ, and regIOobject::write().
Referenced by advect().


|
inline |
Return mass flux.
Definition at line 455 of file isoAdvection.H.
References GeometricField< scalar, fvsPatchField, surfaceMesh >::New(), IOobjectOption::NO_REGISTER, rho1, and rho2.

|
inline |
Return mass flux.
Definition at line 474 of file isoAdvection.H.
References Foam::fvc::interpolate(), GeometricField< scalar, fvsPatchField, surfaceMesh >::New(), IOobjectOption::NO_REGISTER, rho1, and rho2.

|
inlinenoexcept |
|
inlinenoexcept |
time spend in the advection step
Definition at line 502 of file isoAdvection.H.
References Foam::noexcept.
Write isoface points to .obj file.
Definition at line 672 of file isoAdvection.C.
References Foam::endl(), UPstream::gatherList, Foam::Info, UPstream::master(), Foam::mkDir(), UPstream::myProcNo(), Foam::nl, UPstream::nProcs(), os(), UPstream::parRun(), fileName::path(), and word::printf().

| void boundFlux | ( | const bitSet & | nextToInterface, |
| surfaceScalarField & | dVfcorrectionValues, | ||
| DynamicList< label > & | correctedFaces, | ||
| const SpType & | Sp, | ||
| const SuType & | Su ) |
Definition at line 258 of file isoAdvectionTemplates.C.
References addProfilingInFunction, DynamicList< T, SizeMin >::append(), DynamicList< T, SizeMin >::clear(), DebugInfo, DebugInFunction, Foam::endl(), forAll, Foam::mag(), Foam::min(), Foam::neg0(), phi, Foam::pos0(), Foam::sign(), UList< T >::size(), Foam::Sp(), and Foam::Su().
