Loading...
Searching...
No Matches
parallelFvGeometryScheme Class Reference

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

#include <parallelFvGeometryScheme.H>

Inheritance diagram for parallelFvGeometryScheme:
Collaboration diagram for parallelFvGeometryScheme:

Classes

class  transformOriented
 Transformation for oriented fields. More...

Public Member Functions

 TypeName ("parallel")
 Runtime type information.
 parallelFvGeometryScheme (const fvMesh &mesh, const dictionary &dict)
 Construct from mesh.
virtual ~parallelFvGeometryScheme ()=default
 Destructor.
const fvGeometryScheme & geometry () const
 Construct underlying fvGeometryScheme.
virtual void movePoints ()
 Do what is necessary if the mesh has moved.
virtual void updateMesh (const mapPolyMesh &mpm)
 Update mesh for topology changes.
virtual tmp< surfaceScalarFieldweights () const
 Return linear difference weighting factors.
virtual tmp< surfaceScalarFielddeltaCoeffs () const
 Return cell-centre difference coefficients.
virtual tmp< surfaceScalarFieldnonOrthDeltaCoeffs () const
 Return non-orthogonal cell-centre difference coefficients.
virtual tmp< surfaceVectorFieldnonOrthCorrectionVectors () const
 Return non-orthogonality correction vectors.
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.
Public Member Functions inherited from fvGeometryScheme
 TypeName ("fvGeometryScheme")
 Runtime type information.
 declareRunTimeSelectionTable (tmp, fvGeometryScheme, dict,(const fvMesh &mesh, const dictionary &dict),(mesh, dict))
 fvGeometryScheme (const fvMesh &mesh, const dictionary &dict)
 Construct from mesh.
virtual ~fvGeometryScheme ()=default
 Destructor.
const fvMeshmesh () const
 Return mesh reference.
Public Member Functions inherited from refCount
constexpr refCount () noexcept
 Default construct, initializing count to 0.
int use_count () const noexcept
 Return the current reference count.
bool unique () const noexcept
 Return true if the reference count is zero.
void operator++ () noexcept
 Increment the reference count.
void operator++ (int) noexcept
 Increment the reference count.
void operator-- () noexcept
 Decrement the reference count.
void operator-- (int) noexcept
 Decrement the reference count.

Protected Attributes

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

Additional Inherited Members

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

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 302 of file parallelFvGeometryScheme.C.

References dict, dict_, and fvGeometryScheme::mesh().

Here is the call graph for this function:

◆ ~parallelFvGeometryScheme()

virtual ~parallelFvGeometryScheme ( )
virtualdefault

Destructor.

References points.

Member Function Documentation

◆ TypeName()

TypeName ( "parallel" )

Runtime type information.

References dict, and fvGeometryScheme::mesh().

Here is the call graph for this function:

◆ geometry()

const Foam::fvGeometryScheme & geometry ( ) const

Construct underlying fvGeometryScheme.

Definition at line 315 of file parallelFvGeometryScheme.C.

References dict_, Foam::endl(), geometryPtr_, fvGeometryScheme::mesh_, fvGeometryScheme::New(), and Foam::Pout.

Referenced by deltaCoeffs(), movePoints(), nonOrthCorrectionVectors(), nonOrthDeltaCoeffs(), updateMesh(), and weights().

Here is the call graph for this function:
Here is the caller 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::endl(), geometry(), movePoints(), and Foam::Pout.

Referenced by movePoints().

Here is the call graph for this function:
Here is the caller 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.

References geometry(), and updateMesh().

Referenced by updateMesh().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ weights()

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

Return linear difference weighting factors.

Implements fvGeometryScheme.

Definition at line 359 of file parallelFvGeometryScheme.C.

References geometry().

Here is the call graph for this function:

◆ deltaCoeffs()

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

Return cell-centre difference coefficients.

Implements fvGeometryScheme.

Definition at line 366 of file parallelFvGeometryScheme.C.

References geometry().

Here is the call graph for this function:

◆ 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.

References geometry().

Here is the call graph for this function:

◆ nonOrthCorrectionVectors()

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

Return non-orthogonality correction vectors.

Implements fvGeometryScheme.

Definition at line 380 of file parallelFvGeometryScheme.C.

References geometry().

Here is the call graph for this function:

◆ 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 386 of file parallelFvGeometryScheme.C.

References primitiveMeshTools::makeCellCentresAndVols(), primitiveMeshTools::makeFaceCentresAndAreas(), fvGeometryScheme::mesh_, 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.

Referenced by geometry(), and parallelFvGeometryScheme().

◆ geometryPtr_

tmp<fvGeometryScheme> geometryPtr_
mutableprotected

Demand-driven construction of underlying scheme.

Definition at line 97 of file parallelFvGeometryScheme.H.

Referenced by geometry().


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