patchTransformedInterpolation Class Reference

Interpolation of cell-based displacements to the points with additional correction of patch-adjacent cells. More...

Inheritance diagram for patchTransformedInterpolation:
[legend]
Collaboration diagram for patchTransformedInterpolation:
[legend]

Public Member Functions

 TypeName ("patchTransformed")
 Runtime type information. More...
 
 patchTransformedInterpolation (const fvMesh &mesh, Istream &entry)
 Construct from an fvMesh and an Istream. More...
 
virtual ~patchTransformedInterpolation ()
 Destructor. More...
 
virtual void interpolate (const volScalarField &, pointScalarField &) const
 Interpolate the given scalar cell displacement. More...
 
virtual void interpolate (const volVectorField &, pointVectorField &) const
 Interpolate the given vector cell displacement. More...
 
- Public Member Functions inherited from motionInterpolation
 TypeName ("motionInterpolation")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, motionInterpolation, Istream,(const fvMesh &mesh, Istream &entry),(mesh, entry))
 
 motionInterpolation (const fvMesh &mesh)
 Construct from an fvMesh. More...
 
 motionInterpolation (const fvMesh &mesh, Istream &entry)
 Construct from an fvMesh and an Istream. More...
 
virtual ~motionInterpolation ()
 Destructor. More...
 
const fvMeshmesh () const
 Return const-reference to the mesh. More...
 
virtual void interpolate (const volScalarField &, pointScalarField &) const
 Interpolate the given scalar cell displacement. More...
 
virtual void interpolate (const volVectorField &, pointVectorField &) const
 Interpolate the given vector cell displacement. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from motionInterpolation
static autoPtr< motionInterpolationNew (const fvMesh &mesh)
 Select default. More...
 
static autoPtr< motionInterpolationNew (const fvMesh &mesh, Istream &entry)
 Select from stream. More...
 

Detailed Description

Interpolation of cell-based displacements to the points with additional correction of patch-adjacent cells.

Snappy meshes often have moderately non-orthogonal faces next to patches. If these partches are moved, these already quite distorted faces quickly violate the quality criteria.

This method corrects patch-adjacent cells are by calculating the average translation, rotation and expansion of points connected to the patch. This transformation is then applied to all the points in the cell that are not on the patch. This does a better job of preserving the cell shape on the patch than pure interpolation, though it can simply move the problem into the next layer of cells.

The user needs only to specify the patches on which this correction is performed:

    interpolation patchTransformed (movingPatch1 movingPatch2);

Note that this method is not defined for scalar displacement fields.

Source files

Definition at line 71 of file patchTransformedInterpolation.H.

Constructor & Destructor Documentation

◆ patchTransformedInterpolation()

patchTransformedInterpolation ( const fvMesh mesh,
Istream entry 
)

Construct from an fvMesh and an Istream.

Definition at line 83 of file patchTransformedInterpolation.C.

◆ ~patchTransformedInterpolation()

Destructor.

Definition at line 96 of file patchTransformedInterpolation.C.

Member Function Documentation

◆ TypeName()

TypeName ( "patchTransformed"  )

Runtime type information.

◆ interpolate() [1/2]

void interpolate ( const volScalarField ,
pointScalarField  
) const
virtual

Interpolate the given scalar cell displacement.

Reimplemented from motionInterpolation.

Definition at line 102 of file patchTransformedInterpolation.C.

References NotImplemented.

◆ interpolate() [2/2]

void interpolate ( const volVectorField cellDisplacement,
pointVectorField pointDisplacement 
) const
virtual

Interpolate the given vector cell displacement.

Reimplemented from motionInterpolation.

Definition at line 112 of file patchTransformedInterpolation.C.

References cells, GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), f(), forAll, Foam::magSqr(), mesh, Time::New(), nPoints, points, UList< T >::size(), syncTools::syncPointList(), x, and Foam::Zero.

Here is the call graph for this function:

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