89 if (sameUntransformedPatch())
96 if (!mappingIsValid())
102 treeMapPtr_->reverseDistribute(treeNbrPatchFaceIndices_.size(), nbrFld);
104 tResult.
ref().rmap(nbrFld, treeNbrPatchFaceIndices_);
105 return transform_.transform().invTransform(tResult);
112 && !(symmetric() && nbrMappedPatch().mappingIsValid())
119 transform_.transform().invTransform
122 ? patchToPatchPtr_->srcToTgt(
fld)
123 : nbrMappedPatch().patchToPatchPtr_->tgtToSrc(
fld)
Pre-declare SubField and related Field type.
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.
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)
const mappedPatchBase & nbrMappedPatch() const
Get the mapped neighbouring patch.
bool mappingIsValid() const
Return whether or not the mapping is valid.
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.
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(lagrangian::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(), lagrangian::cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))