Poisson Class Reference

Calculation of approximate distance to nearest patch for all cells and boundary by solving Poisson's equation. More...

Inheritance diagram for Poisson:
Collaboration diagram for Poisson:

Public Member Functions

 TypeName ("Poisson")
 Runtime type information. More...
 
 Poisson (const dictionary &dict, const fvMesh &mesh, const labelHashSet &patchIDs)
 Construct from coefficients dictionary, mesh. More...
 
 Poisson (const fvMesh &mesh, const labelHashSet &patchIDs)
 Construct from mesh and fixed-value patch set. More...
 
 Poisson (const Poisson &)=delete
 Disallow default bitwise copy construction. More...
 
virtual bool correct (volScalarField &y)
 Correct the given distance-to-patch field. More...
 
virtual bool correct (volScalarField &y, volVectorField &n)
 Correct the given distance-to-patch and normal-to-patch fields. More...
 
void operator= (const Poisson &)=delete
 Disallow default bitwise assignment. More...
 
- Public Member Functions inherited from patchDistMethod
 TypeName ("patchDistMethod")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, patchDistMethod, dictionary,(const dictionary &dict, const fvMesh &mesh, const labelHashSet &patchIDs),(dict, mesh, patchIDs))
 
 patchDistMethod (const fvMesh &mesh, const labelHashSet &patchIDs)
 Construct from mesh and patch ID set. More...
 
 patchDistMethod (const patchDistMethod &)=delete
 Disallow default bitwise copy construction. More...
 
virtual ~patchDistMethod ()
 Destructor. More...
 
const labelHashSetpatchIndices () const
 Return the patchIDs. More...
 
virtual bool movePoints ()
 Update cached geometry when the mesh moves. More...
 
virtual void topoChange (const polyTopoChangeMap &)
 Update cached topology and geometry when the mesh changes. More...
 
virtual void mapMesh (const polyMeshMap &)
 Update from another mesh using the given map. More...
 
virtual void distribute (const polyDistributionMap &)
 Redistribute or update using the given distribution map. More...
 
void operator= (const patchDistMethod &)=delete
 Disallow default bitwise assignment. More...
 
template<class Type >
Foam::wordList patchTypes (const fvMesh &mesh, const labelHashSet &patchIDs)
 

Additional Inherited Members

- Static Public Member Functions inherited from patchDistMethod
static autoPtr< patchDistMethodNew (const dictionary &dict, const fvMesh &mesh, const labelHashSet &patchIDs)
 
template<class Type >
static wordList patchTypes (const fvMesh &mesh, const labelHashSet &patchIDs)
 Return the patch types for y and n. More...
 
- Protected Attributes inherited from patchDistMethod
const fvMeshmesh_
 Reference to the mesh. More...
 
const labelHashSet patchIndices_
 Set of patch IDs. More...
 

Detailed Description

Calculation of approximate distance to nearest patch for all cells and boundary by solving Poisson's equation.

References:

    D.B. Spalding,
    "Calculation of turbulent heat transfer in cluttered spaces",
    Proc. 10th Int. Heat Transfer Conference, Brighton, UK, (1994).

    E. Fares and W. Schroder,
    "Differential Equation for Approximate Wall Distance",
    Int.J.Numer.Meth., 39:743-762, (2002).

    P.G. Tucker,
    "Differential equation based wall distance computation for DES and
     RANS",
    J.Comp.Phys., Vol. 190, Issue 1, 1 st September, pp. 229-248 (2003)

Example of the wallDist specification in fvSchemes:

    laplacianSchemes
    {
        .
        .
        laplacian(yPsi) Gauss linear corrected;
        .
        .
    }

    wallDist
    {
        method Poisson;

        // Optional entry enabling the calculation
        // of the normal-to-wall field
        nRequired false;
    }

Also the solver specification for yPsi is required in fvSolution, e.g. for simple cases:

    yPsi
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-5;
        relTol          0;
    }

or for more complex cases:

    yPsi
    {
        solver          GAMG;
        smoother        GaussSeidel;
        cacheAgglomeration true;
        nCellsInCoarsestLevel 10;
        agglomerator    faceAreaPair;
        mergeLevels     1;
        tolerance       1e-5;
        relTol          0;
    }
See also
Foam::patchDistMethod::meshWave Foam::wallDist
Source files

Definition at line 117 of file PoissonPatchDistMethod.H.

Constructor & Destructor Documentation

◆ Poisson() [1/3]

Poisson ( const dictionary dict,
const fvMesh mesh,
const labelHashSet patchIDs 
)

Construct from coefficients dictionary, mesh.

and fixed-value patch set

Definition at line 44 of file PoissonPatchDistMethod.C.

◆ Poisson() [2/3]

Poisson ( const fvMesh mesh,
const labelHashSet patchIDs 
)

Construct from mesh and fixed-value patch set.

Definition at line 55 of file PoissonPatchDistMethod.C.

◆ Poisson() [3/3]

Poisson ( const Poisson )
delete

Disallow default bitwise copy construction.

Member Function Documentation

◆ TypeName()

TypeName ( "Poisson"  )

Runtime type information.

◆ correct() [1/2]

bool correct ( volScalarField y)
virtual

Correct the given distance-to-patch field.

Implements patchDistMethod.

Definition at line 67 of file PoissonPatchDistMethod.C.

References Foam::MULES::correct(), GeometricField< Type, PatchField, GeoMesh >::null(), and y.

Here is the call graph for this function:

◆ correct() [2/2]

bool correct ( volScalarField y,
volVectorField n 
)
virtual

Correct the given distance-to-patch and normal-to-patch fields.

Implements patchDistMethod.

Definition at line 73 of file PoissonPatchDistMethod.C.

References List< T >::clear(), Foam::dimLength, Foam::dimless, Foam::fvc::grad(), Foam::fvm::laplacian(), Foam::mag(), Foam::magSqr(), Foam::max(), n, GeometricField< Type, PatchField, GeoMesh >::New(), Foam::notNull(), Foam::solve(), Foam::sqr(), Foam::sqrt(), and y.

Here is the call graph for this function:

◆ operator=()

void operator= ( const Poisson )
delete

Disallow default bitwise assignment.


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