50 #ifndef mappedPatchBase_H
51 #define mappedPatchBase_H
65 class distributionMap;
186 const bool defaultTransformIsNone
239 template<
class PatchFieldType,
class FieldType>
242 const PatchFieldType& field,
250 template<
class PatchFieldType,
class FieldType>
253 const PatchFieldType& field,
Pre-declare SubField and related Field type.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Encapsulates using patchGroups to specify coupled patch.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Engine which provides mapping between two patches.
tmp< Field< Type > > toNeighbour(const Field< Type > &fld) const
Map/interpolate patch field to the neighbour patch.
bool symmetric() const
Determine whether the neighbouring patch maps from this patch in.
tmp< pointField > nbrPatchLocalPoints() const
Get the local points for the neighbour patch.
const bool reMapAfterMove_
Do we need to re-calculate the mapping if mesh motion takes place?
const polyPatch & nbrPolyPatch() const
Get the patch to map from.
word nbrRegionName_
Name of the region to map from.
word nbrPatchName_
Name of the patch to map from.
bool samePatch() const
Is the neighbour patch the same as this patch?
static const mappedPatchBase & getMap(const polyPatch &patch)
Cast the given polyPatch to a mappedPatchBase. Handle errors.
TypeName("mappedPatchBase")
Runtime type information.
const polyPatch & patch_
Patch to map to.
virtual void write(Ostream &) const
Write as a dictionary.
virtual tmp< vectorField > patchFaceAreas() const
Get the face-areas for this patch.
virtual tmp< pointField > patchLocalPoints() const
Get the local points for this patch.
bool patchToPatchIsValid_
Is the patch-to-patch intersection engine up to date? (if using.
const polyMesh & nbrMesh() const
Get the mesh for the region to map from.
const scalar matchTol_
Matching tolerance.
static void validateMapForField(const PatchFieldType &field, const FieldType &iF, const dictionary &context, const label froms=from::any)
Validate that the map exists and is appropriate for the given.
autoPtr< patchToPatch > patchToPatchPtr_
Patch-to-patch intersection engine (if using patch-to-patch)
static const scalar defaultMatchTol_
Default Matching tolerance.
const word & nbrPatchName() const
Name of the patch to map from.
labelList treeNbrPatchFaceIndices_
Indices of the neighbouring patch faces who's values.
cyclicTransform transform_
The transformation between the patches.
void validateForField(const PatchFieldType &field, const FieldType &iF, const dictionary &context, const label froms=from::any) const
Validate that the map is appropriate for the given.
const word & nbrRegionName() const
Name of the region to map from.
autoPtr< distributionMap > treeMapPtr_
Distributor (if using tree)
bool sameUntransformedPatch() const
Is the neighbour patch the same as this patch with no transform?
bool reMapNbr_
Do we need to re-map the neighbour because this patch moved?
mappedPatchBase(const polyPatch &)
Construct from patch.
tmp< vectorField > nbrPatchFaceAreas() const
Get the face-areas for the neighbour patch.
bool sameRegion() const
Is the neighbour region the same as for this patch?
const mappedPatchBase & nbrMappedPatch() const
Get the mapped neighbouring patch.
static bool specified(const dictionary &dict)
Return whether or not the given dictionary contains a.
tmp< pointField > nbrPatchFaceCentres() const
Get the face-centres for the neighbour patch.
virtual ~mappedPatchBase()
Destructor.
void calcMapping() const
Calculate mapping.
tmp< Field< Type > > fromNeighbour(const Field< Type > &nbrFld) const
Map/interpolate the neighbour patch field to this patch.
const coupleGroupIdentifier coupleGroup_
Couple group for the region/patch to map from.
const bool usingTree_
Are we using the tree mapping method, or a patch-to-patch.
bool nbrPatchIsMapped() const
Return whether or not the neighbour patch is of mapped type.
virtual tmp< pointField > patchFaceCentres() const
Get the face-centres for this patch.
virtual void clearOut()
Clear out data on mesh change.
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
A class for managing temporary objects.
A class for handling words, derived from string.
gmvFile<< "tracers "<< particles.size()<< nl;{ pointField positions(particles.size());label particlei=0;forAllConstIter(Cloud< passiveParticle >, particles, iter) { positions[particlei++]=iter().position(mesh);} for(i=0;i< pTraits< point >::nComponents;i++) { forAll(positions, particlei) { gmvFile<< component(positions[particlei], i)<< ' ';} gmvFile<< nl;}}forAll(lagrangianScalarNames, i){ const word &name=lagrangianScalarNames[i];IOField< scalar > fld(IOobject(name, runTime.name(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionSet transform(const dimensionSet &)
Restrict use of the mapper to certain configurations.
static const label differentPatch
static const label differentRegion
static const label sameRegion