101 mutable std::unique_ptr<fvMeshLduAddressing>
lduPtr_;
110 mutable std::unique_ptr<SlicedDimensionedField<scalar, volMesh>>
VPtr_;
113 mutable std::unique_ptr<DimensionedField<scalar, volMesh>>
V0Ptr_;
116 mutable std::unique_ptr<DimensionedField<scalar, volMesh>>
V00Ptr_;
119 mutable std::unique_ptr<slicedSurfaceVectorField>
SfPtr_;
125 mutable std::unique_ptr<slicedVolVectorField>
CPtr_;
128 mutable std::unique_ptr<slicedSurfaceVectorField>
CfPtr_;
131 mutable std::unique_ptr<surfaceScalarField>
phiPtr_;
205 const bool syncPar =
true
217 const bool syncPar =
true
228 const bool syncPar =
true
241 const bool syncPar =
true
253 const bool syncPar =
true
266 virtual bool init(
const bool doInit);
272 const bool validBoundary =
true
279 const bool validBoundary =
true
296 virtual bool hasDb()
const
302 virtual const objectRegistry&
thisDb()
const
310 const word&
name()
const
322 virtual const lduAddressing&
lduAddr()
const;
329 virtual label
comm()
const
453 const DimensionedField<scalar, volMesh>&
V()
const;
456 const DimensionedField<scalar, volMesh>&
V0()
const;
498 void clearOut(
const bool isMeshUpdate =
false);
536 const bool writeOnProc
540 virtual bool write(
const bool writeOnProc =
true)
const;
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const Time & time() const noexcept
Return Time associated with the objectRegistry.
const word & name() const noexcept
Return the object name.
A simple container for options an IOstream can normally have.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A fvBoundaryMesh is a fvPatch list with a reference to the associated fvMesh, with additional search ...
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Foam::fvMeshLduAddressing.
std::unique_ptr< slicedSurfaceVectorField > SfPtr_
Face area vectors.
virtual bool movePoints()
Avoid masking surfaceInterpolation method.
pTraits< Type >::labelType validComponents() const
Return a labelType of valid component indicators.
virtual bool writeObject(IOstreamOption streamOpt, const bool writeOnProc) const
Write the underlying polyMesh and other data.
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
virtual void interpolate(volVectorField &) const
Interpolate interpolationCells only.
const volVectorField & C() const
Return cell centres as volVectorField.
virtual void interpolate(volSphericalTensorField &) const
Interpolate interpolationCells only.
const DimensionedField< scalar, volMesh > & V() const
Return cell volumes.
std::unique_ptr< surfaceScalarField > magSfPtr_
Mag face area vectors.
DimensionedField< scalar, volMesh > & setV0()
Return old-time cell volumes.
virtual lduInterfacePtrsList interfaces() const
Return a list of pointers for each patch.
const DimensionedField< scalar, volMesh > & V00() const
Return old-old-time cell volumes.
void addFvPatches(polyPatchList &plist, const bool validBoundary=true)
Add boundary patches. Constructor helper.
const Time & time() const
Return the top-level database.
void operator=(const fvMesh &)=delete
No copy assignment.
const surfaceScalarField & phi() const
Return cell face motion fluxes.
virtual const lduAddressing & lduAddr() const
Return ldu addressing.
std::unique_ptr< fvMeshLduAddressing > lduPtr_
std::unique_ptr< DimensionedField< scalar, volMesh > > V00Ptr_
Cell volumes old-old time level.
virtual void interpolate(volTensorField &) const
Interpolate interpolationCells only.
void clearMeshPhi()
Clear cell face motion fluxes.
const fvSchemes & schemes() const
Read-access to the fvSchemes controls.
std::unique_ptr< DimensionedField< scalar, volMesh > > V0Ptr_
Cell volumes old time level.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
fvBoundaryMesh boundary_
Boundary mesh.
const fvSolution * hasSolution() const
Non-null if fvSolution exists (can test as bool).
void clearGeom()
Clear local geometry.
void clearOutLocal(const bool isMeshUpdate=false)
Clear local-only storage (geometry, addressing etc).
fvMesh Mesh
The mesh type.
virtual void interpolate(volScalarField &) const
Interpolate interpolationCells only.
fvMesh(const fvMesh &)=delete
No copy construct.
const word & name() const
Return reference to name.
virtual ~fvMesh()
Destructor.
virtual void interpolate(vectorField &) const
Interpolate interpolationCells only. No bcs.
void updateGeomNotOldVol()
Clear geometry like clearGeomNotOldVol but recreate any.
void clearGeomNotOldVol()
Clear geometry but not the old-time cell volumes.
virtual void interpolate(volSymmTensorField &) const
Interpolate interpolationCells only.
const labelUList & owner() const
Internal face owner. Note bypassing virtual mechanism so.
const fvSolution & solution() const
Read-access to the fvSolution controls.
void storeOldVol(const scalarField &)
Preserve old volume(s).
const surfaceVectorField & Cf() const
Return face centres as surfaceVectorField.
bool operator!=(const fvMesh &rhs) const
Compares addresses.
virtual label comm() const
Return communicator used for parallel communication.
tmp< surfaceVectorField > unitSf() const
Return cell face unit normals.
const DimensionedField< scalar, volMesh > & V0() const
Return old-time cell volumes.
virtual void updateMesh(const mapPolyMesh &mpm)
Update mesh corresponding to the given map.
const labelUList & neighbour() const
Internal face neighbour.
virtual readUpdateState readUpdate()
Update the mesh based on the mesh files saved in time.
const surfaceVectorField & Sf() const
Return cell face area vectors.
virtual void interpolate(sphericalTensorField &) const
Interpolate interpolationCells only. No bcs.
std::unique_ptr< slicedVolVectorField > CPtr_
Cell centres.
const fvBoundaryMesh & boundary() const noexcept
Return reference to boundary mesh.
virtual bool hasDb() const
Return true if thisDb() is a valid DB.
const surfaceScalarField & magSf() const
Return cell face area magnitudes.
bool operator==(const fvMesh &rhs) const
Compares addresses.
void removeFvBoundary()
Remove boundary patches. Warning: fvPatchFields hold ref to these fvPatches.
tmp< DimensionedField< scalar, volMesh > > Vsc0() const
Return sub-cycle old-time cell volumes.
fvBoundaryMesh BoundaryMesh
The boundary type associated with the mesh.
virtual void mapFields(const mapPolyMesh &mpm)
Map all fields in time using given map.
std::unique_ptr< slicedSurfaceVectorField > CfPtr_
Face centres.
virtual void interpolate(symmTensorField &) const
Interpolate interpolationCells only. No bcs.
label curTimeIndex_
Current time index for cell volumes.
virtual void interpolate(scalarField &) const
Interpolate interpolationCells only. No bcs.
const fvSchemes * hasSchemes() const
Non-null if fvSchemes exists (can test as bool).
virtual void interpolate(tensorField &) const
Interpolate interpolationCells only. No bcs.
refPtr< surfaceScalarField > setPhi()
Return cell face motion fluxes, if any (can be nullptr).
tmp< surfaceVectorField > delta() const
Return face deltas as surfaceVectorField.
tmp< DimensionedField< scalar, volMesh > > Vsc() const
Return sub-cycle cell volumes.
std::unique_ptr< surfaceScalarField > phiPtr_
Face motion fluxes.
virtual void updateGeom()
Update all geometric data. This gets redirected up from primitiveMesh level.
std::unique_ptr< SlicedDimensionedField< scalar, volMesh > > VPtr_
Cell volumes.
Selector class for finite volume differencing schemes. fvMesh is derived from fvSchemes so that all f...
fvSchemes(const fvSchemes &)=delete
No copy construct.
Selector class for finite volume solution solution. fvMesh is derived from fvSolution so that all fie...
fvSolution(const fvSolution &)=delete
No copy construct.
The class contains the addressing required by the lduMatrix: upper, lower and losort.
virtual const labelUList & upperAddr() const =0
Return upper addressing.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Registry of regIOobjects.
A traits class, which is primarily used for primitives and vector-space.
virtual const faceList & faces() const
Return raw faces.
readUpdateState
Enumeration defining the state of the mesh after a read update.
label comm() const noexcept
The communicator used for parallel communication.
const objectRegistry & thisDb() const noexcept
Return the object registry.
virtual const pointField & points() const
Return raw points.
void clearAddressing()
Clear topological data.
const cellList & cells() const
A class for managing references or pointers (no reference counting).
virtual bool movePoints()
Do what is necessary if the mesh has moved.
surfaceInterpolation(const fvMesh &)
Construct given an fvMesh.
void clearOut()
Clear all geometry and addressing.
A class for managing temporary objects.
Mesh data needed to do the Finite Volume discretisation.
A class for handling words, derived from Foam::string.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
Macro definitions for declaring ClassName(), NamespaceName(), etc.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
PtrList< polyPatch > polyPatchList
Store lists of polyPatch as a PtrList.
GeometricField< vector, fvPatchField, volMesh > volVectorField
List< label > labelList
A List of labels.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
UPtrList< const lduInterface > lduInterfacePtrsList
Store lists of lduInterface as a UPtrList.
List< face > faceList
List of faces.
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
GeometricField< tensor, fvPatchField, volMesh > volTensorField
List< cell > cellList
List of cell.
Field< sphericalTensor > sphericalTensorField
Specialisation of Field<T> for sphericalTensor.
GeometricField< sphericalTensor, fvPatchField, volMesh > volSphericalTensorField
Field< vector > vectorField
Specialisation of Field<T> for vector.
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
Field< symmTensor > symmTensorField
Specialisation of Field<T> for symmTensor.
void rhs(fvMatrix< typename Expr::value_type > &m, const Expr &expression)
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
vectorField pointField
pointField is a vectorField.
UList< label > labelUList
A UList of labels.
Forwards and collection of common point field types.
Forwards and collection of common volume field types.