parallelFvGeometryScheme Class Reference

Geometry calculation scheme with explicit sync of face-geometry across processor patches. More...

Inheritance diagram for parallelFvGeometryScheme:
Collaboration diagram for parallelFvGeometryScheme:

Classes

class  transformOriented
 Transformation for oriented fields. More...
 

Public Member Functions

 TypeName ("parallel")
 Runtime type information. More...
 
 parallelFvGeometryScheme (const fvMesh &mesh, const dictionary &dict)
 Construct from mesh. More...
 
virtual ~parallelFvGeometryScheme ()=default
 Destructor. More...
 
const fvGeometrySchemegeometry () const
 Construct underlying fvGeometryScheme. More...
 
virtual void movePoints ()
 Do what is necessary if the mesh has moved. More...
 
virtual void updateMesh (const mapPolyMesh &mpm)
 Update mesh for topology changes. More...
 
virtual tmp< surfaceScalarFieldweights () const
 Return linear difference weighting factors. More...
 
virtual tmp< surfaceScalarFielddeltaCoeffs () const
 Return cell-centre difference coefficients. More...
 
virtual tmp< surfaceScalarFieldnonOrthDeltaCoeffs () const
 Return non-orthogonal cell-centre difference coefficients. More...
 
virtual tmp< surfaceVectorFieldnonOrthCorrectionVectors () const
 Return non-orthogonality correction vectors. More...
 
virtual bool updateGeom (const pointField &points, const refPtr< pointField > &oldPoints, pointField &faceCentres, vectorField &faceAreas, pointField &cellCentres, scalarField &cellVolumes) const
 Calculate geometry quantities using mesh topology and provided points. If oldPoints provided only does local update. Returns true if anything changed, false otherwise. More...
 
- Public Member Functions inherited from fvGeometryScheme
 TypeName ("fvGeometryScheme")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (tmp, fvGeometryScheme, dict,(const fvMesh &mesh, const dictionary &dict),(mesh, dict))
 
 fvGeometryScheme (const fvMesh &mesh, const dictionary &dict)
 Construct from mesh. More...
 
virtual ~fvGeometryScheme ()=default
 Destructor. More...
 
const fvMeshmesh () const
 Return mesh reference. More...
 
- Public Member Functions inherited from refCount
constexpr refCount () noexcept
 Default construct, initializing count to 0. More...
 
int use_count () const noexcept
 Return the current reference count. More...
 
bool unique () const noexcept
 Return true if the reference count is zero. More...
 
void operator++ () noexcept
 Increment the reference count. More...
 
void operator++ (int) noexcept
 Increment the reference count. More...
 
void operator-- () noexcept
 Decrement the reference count. More...
 
void operator-- (int) noexcept
 Decrement the reference count. More...
 

Protected Attributes

dictionary dict_
 Dictionary for underlying scheme. More...
 
tmp< fvGeometrySchemegeometryPtr_
 Demand-driven construction of underlying scheme. More...
 
- Protected Attributes inherited from fvGeometryScheme
const fvMeshmesh_
 Hold reference to mesh. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from fvGeometryScheme
static tmp< fvGeometrySchemeNew (const fvMesh &mesh, const dictionary &dict, const word &defaultScheme)
 Return new tmp interpolation scheme. More...
 
- Protected Member Functions inherited from fvGeometryScheme
bool setMeshPhi () const
 Set the mesh motion flux. More...
 

Detailed Description

Geometry calculation scheme with explicit sync of face-geometry across processor patches.

  • applies face centre and normal (negated) to the neighbour side of a processor boundary.
  • recalculates the resulting cell volumes.
  • mainly interesting in single-precision in that it removes the different truncation error from circulating in different order. This can cause problems when calculating global transformations.
  • it does change the face normal/centre so might affect the cell-closedness of the attached cells.
Usage
In system/fvSchemes add a geometry scheme:
geometry
{
    type            parallel;

    // Optional underlying geometry scheme. (default is basic)
    geometry
    {
        type        solidBody;
    }
}

The default behaviour will print the total number of adjusted face and cell properties:

    parallelFvGeometryScheme::movePoints() :
        adjusted geometry of faces:113 of cells:54

In addition a warning will be printed if an internal face gives a different result.

Source files

Definition at line 81 of file parallelFvGeometryScheme.H.

Constructor & Destructor Documentation

◆ parallelFvGeometryScheme()

parallelFvGeometryScheme ( const fvMesh mesh,
const dictionary dict 
)

Construct from mesh.

Definition at line 303 of file parallelFvGeometryScheme.C.

◆ ~parallelFvGeometryScheme()

virtual ~parallelFvGeometryScheme ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "parallel"  )

Runtime type information.

◆ geometry()

const Foam::fvGeometryScheme & geometry ( ) const

Construct underlying fvGeometryScheme.

Definition at line 315 of file parallelFvGeometryScheme.C.

References Foam::ensightOutput::debug, Foam::endl(), fvGeometryScheme::New(), and Foam::Pout.

Here is the call graph for this function:

◆ movePoints()

void movePoints ( )
virtual

Do what is necessary if the mesh has moved.

Reimplemented from fvGeometryScheme.

Definition at line 336 of file parallelFvGeometryScheme.C.

References Foam::ensightOutput::debug, Foam::endl(), and Foam::Pout.

Here is the call graph for this function:

◆ updateMesh()

void updateMesh ( const mapPolyMesh mpm)
virtual

Update mesh for topology changes.

Reimplemented from fvGeometryScheme.

Definition at line 352 of file parallelFvGeometryScheme.C.

◆ weights()

Foam::tmp< Foam::surfaceScalarField > weights ( ) const
virtual

Return linear difference weighting factors.

Implements fvGeometryScheme.

Definition at line 359 of file parallelFvGeometryScheme.C.

◆ deltaCoeffs()

Foam::tmp< Foam::surfaceScalarField > deltaCoeffs ( ) const
virtual

Return cell-centre difference coefficients.

Implements fvGeometryScheme.

Definition at line 366 of file parallelFvGeometryScheme.C.

◆ nonOrthDeltaCoeffs()

Foam::tmp< Foam::surfaceScalarField > nonOrthDeltaCoeffs ( ) const
virtual

Return non-orthogonal cell-centre difference coefficients.

Implements fvGeometryScheme.

Definition at line 373 of file parallelFvGeometryScheme.C.

◆ nonOrthCorrectionVectors()

Foam::tmp< Foam::surfaceVectorField > nonOrthCorrectionVectors ( ) const
virtual

Return non-orthogonality correction vectors.

Implements fvGeometryScheme.

Definition at line 380 of file parallelFvGeometryScheme.C.

◆ updateGeom()

bool updateGeom ( const pointField points,
const refPtr< pointField > &  oldPoints,
pointField faceCentres,
vectorField faceAreas,
pointField cellCentres,
scalarField cellVolumes 
) const
virtual

Calculate geometry quantities using mesh topology and provided points. If oldPoints provided only does local update. Returns true if anything changed, false otherwise.

Implements fvGeometryScheme.

Definition at line 387 of file parallelFvGeometryScheme.C.

References primitiveMeshTools::makeCellCentresAndVols(), primitiveMeshTools::makeFaceCentresAndAreas(), and points.

Here is the call graph for this function:

Member Data Documentation

◆ dict_

dictionary dict_
protected

Dictionary for underlying scheme.

Definition at line 92 of file parallelFvGeometryScheme.H.

◆ geometryPtr_

tmp<fvGeometryScheme> geometryPtr_
mutableprotected

Demand-driven construction of underlying scheme.

Definition at line 97 of file parallelFvGeometryScheme.H.


The documentation for this class was generated from the following files: