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... | |
![]() | |
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-refernce to the mesh. More... | |
Private Member Functions | |
labelList | getPatches (Istream &entry) const |
Get patches from the input stream. More... | |
Private Attributes | |
const labelList | patches_ |
Patches on which to enforce transformation on adjacent cells. More... | |
Additional Inherited Members | |
![]() | |
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 69 of file patchTransformedInterpolation.H.
patchTransformedInterpolation | ( | const fvMesh & | mesh, |
Istream & | entry | ||
) |
Construct from an fvMesh and an Istream.
Definition at line 81 of file patchTransformedInterpolation.C.
|
virtual |
Destructor.
Definition at line 93 of file patchTransformedInterpolation.C.
|
private |
Get patches from the input stream.
Definition at line 51 of file patchTransformedInterpolation.C.
References Foam::exit(), Foam::FatalError, FatalErrorInFunction, forAll, mesh, patches, and patchNames().
TypeName | ( | "patchTransformed" | ) |
Runtime type information.
|
virtual |
Interpolate the given scalar cell displacement.
Reimplemented from motionInterpolation.
Definition at line 100 of file patchTransformedInterpolation.C.
References NotImplemented.
|
virtual |
Interpolate the given vector cell displacement.
Reimplemented from motionInterpolation.
Definition at line 110 of file patchTransformedInterpolation.C.
References Foam::constant::universal::c, cells, GeometricField::correctBoundaryConditions(), f(), polyPatch::faceCells(), polyPatch::faceCentres(), forAll, volPointInterpolation::interpolate(), Foam::magSqr(), mesh, MeshObject< fvMesh, UpdateableMeshObject, volPointInterpolation >::New(), nPoints, points, syncTools::syncPointList(), x, and Vector< scalar >::zero.
|
private |
Patches on which to enforce transformation on adjacent cells.
Definition at line 76 of file patchTransformedInterpolation.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.