98 if (sameUntransformedPatch())
103 if (nbrPatchIsMapped() && nbrMappedPatch().reMapNbr_)
106 treeNbrPatchFaceIndices_.clear();
107 patchToPatchIsValid_ =
false;
108 nbrMappedPatch().reMapNbr_ =
false;
113 if (treeMapPtr_.empty())
119 treeMapPtr_->reverseDistribute(treeNbrPatchFaceIndices_.size(), nbrFld);
121 tResult.
ref().rmap(nbrFld, treeNbrPatchFaceIndices_);
122 return transform_.transform().invTransform(tResult);
128 !patchToPatchIsValid_
129 && !(symmetric() && nbrMappedPatch().patchToPatchIsValid_)
136 transform_.transform().invTransform
139 ? patchToPatchPtr_->srcToTgt(
fld)
140 : nbrMappedPatch().patchToPatchPtr_->tgtToSrc(
fld)
Pre-declare SubField and related Field type.
void clear()
Clear the list, i.e. set size to zero.
cyclicTransform transform_
The transformation between the patches.
bool sameUntransformedPatch() const
Is the neighbour patch the same as this patch with no transform?
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.
bool patchToPatchIsValid_
Is the patch-to-patch intersection engine up to date? (if using.
autoPtr< patchToPatch > patchToPatchPtr_
Patch-to-patch intersection engine (if using patch-to-patch)
labelList treeNbrPatchFaceIndices_
Indices of the neighbouring patch faces who's values.
autoPtr< distributionMap > treeMapPtr_
Distributor (if using tree)
bool reMapNbr_
Do we need to re-map the neighbour because this patch moved?
const mappedPatchBase & nbrMappedPatch() const
Get the mapped neighbouring patch.
void calcMapping() const
Calculate mapping.
tmp< Field< Type > > fromNeighbour(const Field< Type > &nbrFld) const
Map/interpolate the neighbour patch field to this patch.
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.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
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))