Interpolation of cell-based displacements to the points with additional correction of patch-adjacent cells. More...
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 fvMesh & | mesh () const |
Return const-reference to the mesh. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from motionInterpolation | |
static autoPtr< motionInterpolation > | New (const fvMesh &mesh) |
Select default. More... | |
static autoPtr< motionInterpolation > | New (const fvMesh &mesh, Istream &entry) |
Select from stream. More... | |
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.
Definition at line 67 of file patchTransformedInterpolation.H.
patchTransformedInterpolation | ( | const fvMesh & | mesh, |
Istream & | entry | ||
) |
Construct from an fvMesh and an Istream.
Definition at line 77 of file patchTransformedInterpolation.C.
|
virtual |
Destructor.
Definition at line 89 of file patchTransformedInterpolation.C.
TypeName | ( | "patchTransformed" | ) |
Runtime type information.
|
virtual |
Interpolate the given scalar cell displacement.
Reimplemented from motionInterpolation.
Definition at line 96 of file patchTransformedInterpolation.C.
References NotImplemented.
|
virtual |
Interpolate the given vector cell displacement.
Reimplemented from motionInterpolation.
Definition at line 106 of file patchTransformedInterpolation.C.
References polyMesh::boundaryMesh(), Foam::constant::universal::c, cells, GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), f(), forAll, volPointInterpolation::interpolate(), Foam::magSqr(), mesh, MeshObject< fvMesh, UpdateableMeshObject, volPointInterpolation >::New(), nPoints, Foam::foamVersion::patch, points, UList< T >::size(), syncTools::syncPointList(), x, and Foam::Zero.