Skip to content

ENH: Added new parallelFvGeometryScheme

Mattijs Janssens requested to merge feature-parallelFvGeometryScheme into develop

OpenFOAM parallel-consistent geometry calculation

This release adds a new parallel geometry calculation method. It is used as a wrapper around other geometry calculation methods:

geometry
{
    type            parallel;
    // Optional underlying geometry calculation. Default is 'basic'.
    geometry
    {
        type            highAspectRatio;
    }
}

It

  • applies owner side face geometry (centre, normal (negated)) to the other side
  • recalculates cell-based geometry of affected cells

It is mainly interesting in single-precision in that it removes the different truncation error from circulating in different direction. This can cause problems when calculating global transformations e.g.

 --> FOAM FATAL ERROR: (openfoam-2206)
 bad size -653174757

     From void Foam::List<T>::doResize(Foam::label) [with T = Foam::vectorTensorTransform; Foam::label = int]
     in file lnInclude/List.C at line 84.


 #0  Foam::error::printStack(Foam::Ostream&)
 #1  Foam::error::simpleExit(int, bool) at ??:?
 #2  Foam::error::exiting(int, bool)
 #3  Foam::List<Foam::vectorTensorTransform>::doResize(int)
 #4  Foam::globalIndexAndTransform::determineTransformPermutations() at ??:?

Note that it does not change the point positions so any other calculated geometry (e.g. cell-closedness) might be affected.

Tutorial:

Source code:

  • src/finiteVolume/fvMesh/fvGeometryScheme/parallel

Merge request reports