76 class fvMeshLduAddressing;
78 template<
class Type>
class fvMatrix;
207 const bool syncPar =
true 219 const bool syncPar =
true 230 const bool syncPar =
true 243 const bool syncPar =
true 255 const bool syncPar =
true 268 virtual bool init(
const bool doInit);
274 const bool validBoundary =
true 281 const bool validBoundary =
true 298 virtual bool hasDb()
const 304 virtual const objectRegistry&
thisDb()
const 312 const word&
name()
const 324 virtual const lduAddressing&
lduAddr()
const;
331 virtual label
comm()
const 514 const bool writeOnProc
518 virtual bool write(
const bool writeOnProc =
true)
const;
533 fvMesh::validComponents<sphericalTensor>()
const;
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
void clearOut()
Clear all geometry and addressing.
slicedVolVectorField * CPtr_
Cell centres.
void operator=(const fvMesh &)=delete
No copy assignment.
const surfaceVectorField & Sf() const
Return cell face area vectors.
void clearAddressing()
Clear topological data.
void removeFvBoundary()
Remove boundary patches. Warning: fvPatchFields hold ref to these fvPatches.
surfaceScalarField * phiPtr_
Face motion fluxes.
virtual bool writeObject(IOstreamOption streamOpt, const bool writeOnProc) const
Write the underlying polyMesh and other data.
Specialisation of DimensionedField that holds a slice of a given field so that it acts as a Dimension...
Forwards and collection of common volume field types.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
const surfaceVectorField & Cf() const
Return face centres as surfaceVectorField.
const word & name() const noexcept
Return the object name.
GeometricField< tensor, fvPatchField, volMesh > volTensorField
DimensionedField< scalar, volMesh > * V0Ptr_
Cell volumes old time level.
void clearOutLocal()
Clear local-only storage (geometry, addressing etc)
const surfaceScalarField & phi() const
Return cell face motion fluxes.
A traits class, which is primarily used for primitives.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
virtual bool movePoints()
Do what is necessary if the mesh has moved.
void storeOldVol(const scalarField &)
Preserve old volume(s)
const DimensionedField< scalar, volMesh > & V00() const
Return old-old-time cell volumes.
fvBoundaryMesh BoundaryMesh
The boundary type associated with the mesh.
const cellList & cells() const
Forwards and collection of common point field types.
A simple container for options an IOstream can normally have.
Cell to surface interpolation scheme. Included in fvMesh.
DimensionedField< scalar, volMesh > & setV0()
Return old-time cell volumes.
const Time & time() const
Return the top-level database.
virtual void interpolate(volScalarField &) const
Interpolate interpolationCells only.
const DimensionedField< scalar, volMesh > & V() const
Return cell volumes.
GeometricField< vector, fvPatchField, volMesh > volVectorField
label curTimeIndex_
Current time index for cell volumes.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
Class to control time during OpenFOAM simulations that is also the top-level objectRegistry.
GeometricField< sphericalTensor, fvPatchField, volMesh > volSphericalTensorField
A class for managing references or pointers (no reference counting)
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
virtual const objectRegistry & thisDb() const
Return the object registry - resolve conflict polyMesh/lduMesh.
const labelUList & neighbour() const
Internal face neighbour.
fvMesh Mesh
The mesh type.
virtual const pointField & points() const
Return raw points.
void clearGeomNotOldVol()
Clear geometry but not the old-time cell volumes.
virtual ~fvMesh()
Destructor.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
virtual label comm() const
Return communicator used for parallel communication.
tmp< DimensionedField< scalar, volMesh > > Vsc() const
Return sub-cycle cell volumes.
virtual void updateMesh(const mapPolyMesh &mpm)
Update mesh corresponding to the given map.
virtual readUpdateState readUpdate()
Update the mesh based on the mesh files saved in time.
const DimensionedField< scalar, volMesh > & V0() const
Return old-time cell volumes.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
const Time & time() const noexcept
Return time registry.
virtual const labelUList & upperAddr() const =0
Return upper addressing.
pTraits< Type >::labelType validComponents() const
Return a labelType of valid component indicators.
bool operator!=(const fvMesh &rhs) const
Compares addresses.
virtual const lduAddressing & lduAddr() const
Return ldu addressing.
UPtrList< const lduInterface > lduInterfacePtrsList
Store lists of lduInterface as a UPtrList.
label comm() const noexcept
Return communicator used for parallel communication.
void clearGeom()
Clear local geometry.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
refPtr< surfaceScalarField > setPhi()
Return cell face motion fluxes (or null)
virtual const faceList & faces() const
Return raw faces.
virtual SolverPerformance< scalar > solve(fvMatrix< scalar > &, const dictionary &) const
Solve returning the solution statistics given convergence tolerance. Use the given solver controls...
fvMesh(const fvMesh &)=delete
No copy construct.
virtual bool write(const bool writeOnProc=true) const
Write mesh using IO settings from time.
tmp< DimensionedField< scalar, volMesh > > Vsc0() const
Return sub-cycle old-time cell volumes.
DimensionedField< scalar, volMesh > * V00Ptr_
Cell volumes old-old time level.
bool operator==(const fvMesh &rhs) const
Compares addresses.
const surfaceScalarField & magSf() const
Return cell face area magnitudes.
Foam::fvMeshLduAddressing.
virtual bool hasDb() const
Return true if thisDb() is a valid DB.
tmp< surfaceVectorField > delta() const
Return face deltas as surfaceVectorField.
Database for solution data, solver performance and other reduced data.
void addFvPatches(polyPatchList &plist, const bool validBoundary=true)
Add boundary patches. Constructor helper.
fvMeshLduAddressing * lduPtr_
const labelUList & owner() const
Internal face owner. Note bypassing virtual mechanism so.
surfaceScalarField * magSfPtr_
Mag face area vectors.
fvBoundaryMesh boundary_
Boundary mesh.
const word & name() const
Return reference to name.
virtual lduInterfacePtrsList interfaces() const
Return a list of pointers for each patch.
Selector class for finite volume solution solution. fvMesh is derived from fvSolution so that all fie...
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers...
Selector class for finite volume differencing schemes. fvMesh is derived from fvSchemes so that all f...
Macro definitions for declaring ClassName(), NamespaceName(), etc.
Mesh data needed to do the Finite Volume discretisation.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
slicedSurfaceVectorField * SfPtr_
Face area vectors.
void updateGeomNotOldVol()
Clear geometry like clearGeomNotOldVol but recreate any.
const objectRegistry & thisDb() const noexcept
Return the object registry.
const fvBoundaryMesh & boundary() const noexcept
Return reference to boundary mesh.
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...
virtual void updateGeom()
Update all geometric data. This gets redirected up from primitiveMesh level.
SlicedDimensionedField< scalar, volMesh > * VPtr_
Cell volumes.
Mesh consisting of general polyhedral cells.
const volVectorField & C() const
Return cell centres as volVectorField.
readUpdateState
Enumeration defining the state of the mesh after a read update.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
A class for managing temporary objects.
Specialization of GeometricField which holds slices of given complete fields in a form that they act ...
Defines the attributes of an object for which implicit objectRegistry management is supported...
tmp< surfaceVectorField > unitSf() const
Return cell face unit normals.
slicedSurfaceVectorField * CfPtr_
Face centres.
virtual void mapFields(const mapPolyMesh &mpm)
Map all fields in time using given map.