129 scalar advectionTime_;
148 bool writeIsoFacesToFile_;
153 DynamicLabelList surfCells_;
162 DynamicLabelList bsFaces_;
165 DynamicVectorList bsx0_;
168 DynamicVectorList bsn0_;
171 DynamicScalarList bsUn0_;
174 bool porosityEnabled_;
182 DynamicLabelList procPatchLabels_;
193 isoAdvection(
const isoAdvection&) =
delete;
196 void operator=(
const isoAdvection&) =
delete;
202 void extendMarkedCells(
bitSet& markedCell)
const;
204 void setProcessorPatches();
207 void timeIntegratedFlux();
211 void setDownwindFaces
214 DynamicLabelList& downwindFaces
218 template <
class SpType,
class SuType >
226 template <
class SpType,
class SuType >
229 const bitSet& nextToInterface,
231 DynamicLabelList& correctedFaces,
246 bool isASurfaceCell(
const label celli)
const
250 surfCellTol_ < alpha1In_[celli]
251 && alpha1In_[celli] < 1 - surfCellTol_
256 void clearIsoFaceData()
270 template<
typename Type>
278 template<
typename Type>
294 bool returnSyncedFaces=
false
299 void checkIfOnProcPatch(
const label facei);
302 void applyBruteForceBounding();
329 template <
class SpType,
class SuType >
330 void advect(
const SpType&
Sp,
const SuType&
Su);
399 return advectionTime_;
403 void writeIsoFaces(
const UList<List<point>>& isoFacePts)
const;
const volScalarField & alpha1
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Generic GeometricField class.
static tmp< GeometricField< scalar, fvsPatchField, surfaceMesh > > New(const word &name, IOobjectOption::registerOption regOpt, const Mesh &mesh, const dimensionSet &dims, const word &patchFieldType=fvsPatchField< scalar >::calculatedType())
@ NO_REGISTER
Do not request registration (bool: false).
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
Calculates the face fluxes.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
TypeName("isoAdvection")
Runtime type information.
reconstructionSchemes & surf() noexcept
Return reconstructionSchemes.
const volScalarField & alpha() const noexcept
Return alpha field.
scalar advectionTime() const noexcept
time spend in the advection step
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.
void writeIsoFaces(const UList< List< point > > &isoFacePts) const
Write isoface points to .obj file.
const dictionary & dict() const noexcept
Return the controls dictionary.
const surfaceScalarField & alphaPhi() const noexcept
reference to alphaPhi
virtual ~isoAdvection()=default
Destructor.
void writeSurfaceCells() const
Return cellSet of surface cells.
void advect(const SpType &Sp, const SuType &Su)
Advect the free surface. Updates alpha field, taking into account.
Original code supplied by Henning Scheufler, DLR (2019).
A class for managing temporary objects.
Macro definitions for declaring ClassName(), NamespaceName(), etc.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
GeometricField< vector, fvPatchField, volMesh > volVectorField
GeometricField< scalar, fvPatchField, volMesh > volScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
void Sp(fvMatrix< typename Expr::value_type > &m, const Expr2 &mult, const Expr &expression)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
void Su(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Forwards and collection of common volume field types.