mappedPatchBase Class Reference

Engine and base class for poly patches which provides interpolative mapping between two globally conforming poly patches. More...

Inheritance diagram for mappedPatchBase:
Collaboration diagram for mappedPatchBase:

Public Member Functions

 TypeName ("mappedPatchBase")
 Runtime type information. More...
 
 mappedPatchBase (const polyPatch &)
 Construct from patch. More...
 
 mappedPatchBase (const polyPatch &pp, const word &nbrRegionName, const word &nbrPatchName, const cyclicTransform &transform)
 Construct from components. More...
 
 mappedPatchBase (const polyPatch &pp, const dictionary &dict, const transformType tt)
 Construct from dictionary. More...
 
 mappedPatchBase (const polyPatch &, const mappedPatchBase &)
 Construct as copy, resetting patch. More...
 
virtual ~mappedPatchBase ()
 Destructor. More...
 
void clearOut (const bool move)
 Clear out data on mesh change. More...
 
template<class Type >
tmp< Field< Type > > fromNeighbour (const Field< Type > &nbrFld) const
 Map/interpolate the neighbour patch field to this patch. More...
 
template<class Type >
tmp< Field< Type > > fromNeighbour (const tmp< Field< Type >> &nbrFld) const
 Map/interpolate the neighbour patch field to this patch. More...
 
template<class Type >
tmp< Field< Type > > toNeighbour (const Field< Type > &fld) const
 Map/interpolate patch field to the neighbour patch. More...
 
template<class Type >
tmp< Field< Type > > toNeighbour (const tmp< Field< Type >> &fld) const
 Map/interpolate patch field to the neighbour patch. More...
 
virtual void write (Ostream &) const
 Write as a dictionary. More...
 
template<class Type >
Foam::tmp< Foam::Field< Type > > fromNeighbour (const Field< Type > &nbrFld) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > fromNeighbour (const tmp< Field< Type >> &nbrFld) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > toNeighbour (const Field< Type > &fld) const
 
template<class Type >
Foam::tmp< Foam::Field< Type > > toNeighbour (const tmp< Field< Type >> &fld) const
 
- Public Member Functions inherited from mappedPatchBaseBase
 TypeName ("mappedPatchBaseBase")
 Runtime type information. More...
 
 mappedPatchBaseBase (const polyPatch &)
 Construct from patch. More...
 
 mappedPatchBaseBase (const polyPatch &pp, const word &nbrRegionName, const word &nbrPatchName, const cyclicTransform &transform)
 Construct from components. More...
 
 mappedPatchBaseBase (const polyPatch &pp, const dictionary &dict, const transformType tt)
 Construct from dictionary. More...
 
 mappedPatchBaseBase (const polyPatch &, const mappedPatchBaseBase &)
 Construct as copy, resetting patch. More...
 
virtual ~mappedPatchBaseBase ()
 Destructor. More...
 
const wordnbrRegionName () const
 Name of the region to map from. More...
 
const wordnbrPatchName () const
 Name of the patch to map from. More...
 
const transformertransform () const
 The transformation between the patches. More...
 
bool sameRegion () const
 Is the neighbour region the same as for this patch? More...
 
bool samePatch () const
 Is the neighbour patch the same as this patch? More...
 
bool sameUntransformedPatch () const
 Is the neighbour patch the same as this patch with no transform? More...
 
bool haveNbr () const
 Is the neighbour available? More...
 
const polyMeshnbrMesh () const
 Get the mesh for the region to map from. More...
 
const polyPatchnbrPolyPatch () const
 Get the patch to map from. More...
 
template<class PatchField , class FieldType >
void validateForField (const PatchField &field, const FieldType &iF, const dictionary &context, const label froms=from::any) const
 Validate that the map is appropriate for the given. More...
 
template<class PatchFieldType , class FieldType >
void validateMapForField (const PatchFieldType &field, const FieldType &iF, const dictionary &context, const label froms)
 
template<class PatchFieldType , class FieldType >
void validateForField (const PatchFieldType &field, const FieldType &iF, const dictionary &context, const label froms) const
 

Static Public Member Functions

static const mappedPatchBasegetMap (const polyPatch &patch)
 Cast the given polyPatch to a mappedPatchBase. Handle errors. More...
 
- Static Public Member Functions inherited from mappedPatchBaseBase
template<class PatchField , class FieldType >
static void validateMapForField (const PatchField &field, const FieldType &iF, const dictionary &context, const label froms=from::any)
 Validate that the map exists and is appropriate for the given. More...
 
static bool moving (const polyPatch &patch, const polyPatch &nbrPatch)
 Return whether or not the patches have moved. More...
 
static bool specified (const dictionary &dict)
 Return whether or not the given dictionary contains a. More...
 

Protected Member Functions

virtual tmp< vectorFieldpatchFaceAreas () const
 Get the face-areas for this patch. More...
 
virtual tmp< pointFieldpatchFaceCentres () const
 Get the face-centres for this patch. More...
 
virtual tmp< pointFieldpatchLocalPoints () const
 Get the local points for this patch. More...
 
tmp< vectorFieldnbrPatchFaceAreas () const
 Get the face-areas for the neighbour patch. More...
 
tmp< pointFieldnbrPatchFaceCentres () const
 Get the face-centres for the neighbour patch. More...
 
tmp< pointFieldnbrPatchLocalPoints () const
 Get the local points for the neighbour patch. More...
 
bool mappingIsValid () const
 Return whether or not the mapping is valid. More...
 
void calcMapping () const
 Calculate mapping. More...
 
virtual void clearOut () const
 Clear out data on mesh change. More...
 
bool nbrPatchIsMapped () const
 Return whether or not the neighbour patch is of mapped type. More...
 
const mappedPatchBasenbrMappedPatch () const
 Get the mapped neighbouring patch. More...
 
bool symmetric () const
 Determine whether the neighbouring patch maps from this patch in. More...
 

Protected Attributes

const bool usingTree_
 Are we using the tree mapping method, or a patch-to-patch. More...
 
autoPtr< distributionMaptreeMapPtr_
 Distributor (if using tree) More...
 
labelList treeNbrPatchFaceIndices_
 Indices of the neighbouring patch faces who's values. More...
 
autoPtr< patchToPatchpatchToPatchPtr_
 Patch-to-patch intersection engine (if using patch-to-patch) More...
 
const scalar matchTol_
 Matching tolerance. More...
 
label mappingIsValid_
 Is the mapping engine up to date? Zero if out of date. One if out. More...
 
label nbrMappingIsValid_
 If the neighbour's mapping engine (if there is one) up to date? More...
 
- Protected Attributes inherited from mappedPatchBaseBase
const polyPatchpatch_
 Patch to map to. More...
 
const coupleGroupIdentifier coupleGroup_
 Couple group for the region/patch to map from. More...
 
word nbrRegionName_
 Name of the region to map from. More...
 
word nbrPatchName_
 Name of the patch to map from. More...
 
cyclicTransform transform_
 The transformation between the patches. More...
 
const moveUpdate moveUpdate_
 The condition that triggers re-calculation following motion. More...
 

Static Protected Attributes

static const scalar defaultMatchTol_ = 1e-4
 Default Matching tolerance. More...
 

Additional Inherited Members

- Public Types inherited from mappedPatchBaseBase
enum class  transformType { none , defaultNone , specified }
 The type of the transformation permitted/required by this patch. More...
 
enum class  moveUpdate { always , detect , never }
 Enumeration for the condition that triggers re-calculation of the. More...
 
- Static Public Attributes inherited from mappedPatchBaseBase
static const NamedEnum< moveUpdate, 3 > moveUpdateNames_ {"always", "detect", "never"}
 Names of the move-update conditions. More...
 

Detailed Description

Engine and base class for poly patches which provides interpolative mapping between two globally conforming poly patches.

Example:

    // (Settings inherited from mappedPatchBaseBase to identify the
    // neighbouring region and patch)
    ...

    // Patch-to-patch mapping method. How the interpolation addressing and
    // weights are constructed. Likely to be "matching" if the patches are
    // conformal, or "intersection" if they are not. Optional. If omitted,
    // then it will be assumed that the patches are conformal, and an
    // octree-based method will be used to construct the connections.
    method matching; // nearest, intersection, inverseDistance

    // Tolerance used to check the patches' global conformance (i.e., the
    // conformance of the patches' entire surfaces, not of each pair of
    // faces). Optional. Defaults to a small value.
    matchTol 1e-4;
See also
Foam::mappedPatchBaseBase
Source files

Definition at line 72 of file mappedPatchBase.H.

Constructor & Destructor Documentation

◆ mappedPatchBase() [1/4]

mappedPatchBase ( const polyPatch pp)

Construct from patch.

Definition at line 417 of file mappedPatchBase.C.

◆ mappedPatchBase() [2/4]

mappedPatchBase ( const polyPatch pp,
const word nbrRegionName,
const word nbrPatchName,
const cyclicTransform transform 
)

Construct from components.

Definition at line 430 of file mappedPatchBase.C.

◆ mappedPatchBase() [3/4]

mappedPatchBase ( const polyPatch pp,
const dictionary dict,
const transformType  tt 
)

Construct from dictionary.

Definition at line 449 of file mappedPatchBase.C.

◆ mappedPatchBase() [4/4]

mappedPatchBase ( const polyPatch pp,
const mappedPatchBase mpb 
)

Construct as copy, resetting patch.

Definition at line 476 of file mappedPatchBase.C.

◆ ~mappedPatchBase()

~mappedPatchBase ( )
virtual

Destructor.

Definition at line 500 of file mappedPatchBase.C.

Member Function Documentation

◆ patchFaceAreas()

Foam::tmp< Foam::vectorField > patchFaceAreas ( ) const
protectedvirtual

Get the face-areas for this patch.

Reimplemented in mappedExtrudedPatchBase.

Definition at line 47 of file mappedPatchBase.C.

References mappedPatchBaseBase::patch_.

Referenced by mappedExtrudedPatchBase::patchFaceAreas().

Here is the caller graph for this function:

◆ patchFaceCentres()

Foam::tmp< Foam::pointField > patchFaceCentres ( ) const
protectedvirtual

Get the face-centres for this patch.

Reimplemented in mappedExtrudedPatchBase.

Definition at line 53 of file mappedPatchBase.C.

Referenced by mappedExtrudedPatchBase::patchFaceCentres().

Here is the caller graph for this function:

◆ patchLocalPoints()

Foam::tmp< Foam::pointField > patchLocalPoints ( ) const
protectedvirtual

Get the local points for this patch.

Reimplemented in mappedExtrudedPatchBase.

Definition at line 59 of file mappedPatchBase.C.

Referenced by mappedExtrudedPatchBase::patchLocalPoints().

Here is the caller graph for this function:

◆ nbrPatchFaceAreas()

Foam::tmp< Foam::vectorField > nbrPatchFaceAreas ( ) const
protected

Get the face-areas for the neighbour patch.

Definition at line 65 of file mappedPatchBase.C.

References PrimitivePatch< SubList< face >, const pointField & >::faceAreas().

Here is the call graph for this function:

◆ nbrPatchFaceCentres()

Foam::tmp< Foam::pointField > nbrPatchFaceCentres ( ) const
protected

Get the face-centres for the neighbour patch.

Definition at line 74 of file mappedPatchBase.C.

References PrimitivePatch< SubList< face >, const pointField & >::faceCentres().

Here is the call graph for this function:

◆ nbrPatchLocalPoints()

Foam::tmp< Foam::pointField > nbrPatchLocalPoints ( ) const
protected

Get the local points for the neighbour patch.

Definition at line 83 of file mappedPatchBase.C.

◆ mappingIsValid()

bool mappingIsValid ( ) const
protected

Return whether or not the mapping is valid.

Definition at line 92 of file mappedPatchBase.C.

References Foam::min(), and mappedPatchBaseBase::moving().

Referenced by mappedPatchBase::fromNeighbour().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcMapping()

◆ clearOut() [1/2]

◆ nbrPatchIsMapped()

bool nbrPatchIsMapped ( ) const
inlineprotected

Return whether or not the neighbour patch is of mapped type.

Definition at line 30 of file mappedPatchBaseI.H.

References mappedPatchBaseBase::nbrPolyPatch().

Here is the call graph for this function:

◆ nbrMappedPatch()

const Foam::mappedPatchBase & nbrMappedPatch ( ) const
inlineprotected

Get the mapped neighbouring patch.

Definition at line 37 of file mappedPatchBaseI.H.

Referenced by mappedPatchBase::fromNeighbour().

Here is the caller graph for this function:

◆ symmetric()

bool symmetric ( ) const
inlineprotected

Determine whether the neighbouring patch maps from this patch in.

the same way as this patch maps from its neighbour

Definition at line 43 of file mappedPatchBaseI.H.

Referenced by mappedPatchBase::fromNeighbour().

Here is the caller graph for this function:

◆ TypeName()

TypeName ( "mappedPatchBase"  )

Runtime type information.

◆ getMap()

const Foam::mappedPatchBase & getMap ( const polyPatch patch)
static

Cast the given polyPatch to a mappedPatchBase. Handle errors.

Definition at line 506 of file mappedPatchBase.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and patchIdentifier::name().

Here is the call graph for this function:

◆ clearOut() [2/2]

void clearOut ( const bool  move)

Clear out data on mesh change.

Definition at line 522 of file mappedPatchBase.C.

References Foam::min().

Here is the call graph for this function:

◆ fromNeighbour() [1/4]

tmp<Field<Type> > fromNeighbour ( const Field< Type > &  nbrFld) const

Map/interpolate the neighbour patch field to this patch.

Referenced by mappedFvPatchBase::fromNeighbour().

Here is the caller graph for this function:

◆ fromNeighbour() [2/4]

tmp<Field<Type> > fromNeighbour ( const tmp< Field< Type >> &  nbrFld) const

Map/interpolate the neighbour patch field to this patch.

◆ toNeighbour() [1/4]

tmp<Field<Type> > toNeighbour ( const Field< Type > &  fld) const

Map/interpolate patch field to the neighbour patch.

◆ toNeighbour() [2/4]

tmp<Field<Type> > toNeighbour ( const tmp< Field< Type >> &  fld) const

Map/interpolate patch field to the neighbour patch.

◆ write()

void write ( Ostream os) const
virtual

◆ fromNeighbour() [3/4]

◆ fromNeighbour() [4/4]

Foam::tmp<Foam::Field<Type> > fromNeighbour ( const tmp< Field< Type >> &  nbrFld) const

Definition at line 77 of file mappedPatchBaseTemplates.C.

◆ toNeighbour() [3/4]

Foam::tmp<Foam::Field<Type> > toNeighbour ( const Field< Type > &  fld) const

Definition at line 87 of file mappedPatchBaseTemplates.C.

References fld(), and tmp< T >::ref().

Here is the call graph for this function:

◆ toNeighbour() [4/4]

Foam::tmp<Foam::Field<Type> > toNeighbour ( const tmp< Field< Type >> &  fld) const

Definition at line 131 of file mappedPatchBaseTemplates.C.

References fld().

Here is the call graph for this function:

Member Data Documentation

◆ usingTree_

const bool usingTree_
protected

Are we using the tree mapping method, or a patch-to-patch.

intersection engine? The former is typically faster on small, pairs of patches with identical meshes. The latter is better parallelised and provides options for connecting patches with differing surface meshes.

Definition at line 85 of file mappedPatchBase.H.

Referenced by mappedPatchBase::fromNeighbour().

◆ treeMapPtr_

autoPtr<distributionMap> treeMapPtr_
mutableprotected

Distributor (if using tree)

Definition at line 88 of file mappedPatchBase.H.

Referenced by mappedPatchBase::fromNeighbour().

◆ treeNbrPatchFaceIndices_

labelList treeNbrPatchFaceIndices_
mutableprotected

Indices of the neighbouring patch faces who's values.

have to be supplied to the distribution map (if using tree)

Definition at line 92 of file mappedPatchBase.H.

Referenced by mappedPatchBase::fromNeighbour().

◆ patchToPatchPtr_

autoPtr<patchToPatch> patchToPatchPtr_
mutableprotected

Patch-to-patch intersection engine (if using patch-to-patch)

Definition at line 95 of file mappedPatchBase.H.

Referenced by mappedPatchBase::fromNeighbour().

◆ defaultMatchTol_

const scalar defaultMatchTol_ = 1e-4
staticprotected

Default Matching tolerance.

Definition at line 98 of file mappedPatchBase.H.

◆ matchTol_

const scalar matchTol_
protected

Matching tolerance.

Definition at line 101 of file mappedPatchBase.H.

◆ mappingIsValid_

label mappingIsValid_
mutableprotected

Is the mapping engine up to date? Zero if out of date. One if out.

of date (or potentially not out of date) because of motion. Two if up to date.

Definition at line 106 of file mappedPatchBase.H.

◆ nbrMappingIsValid_

label nbrMappingIsValid_
mutableprotected

If the neighbour's mapping engine (if there is one) up to date?

Definition at line 109 of file mappedPatchBase.H.


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