136 #ifndef Foam_mapDistribute_H 137 #define Foam_mapDistribute_H 150 class globalIndexAndTransform;
153 Istream&
operator>>(Istream&, mapDistribute&);
154 Ostream&
operator<<(Ostream&,
const mapDistribute&);
181 template<
class T,
class TransformOp>
186 const TransformOp& top
193 template<
class T,
class TransformOp>
194 void applyInverseTransforms
198 const TransformOp& top
219 const tensor T(forward ? vt.R() : vt.R().T());
248 template<
class Type,
template<
class>
class Container>
274 fld = vt.transformPosition(pfld);
278 fld = vt.invTransformPosition(pfld);
301 template<
template<
class>
class Container>
348 const dictionary&
dict,
375 const globalIndexAndTransform&,
378 List<Map<label>>& compactMap,
388 const globalIndexAndTransform&,
389 const List<labelPairList>& transformedElements,
391 List<Map<label>>& compactMap,
400 autoPtr<mapDistribute>
clone()
const;
415 return transformElements_;
421 return transformStart_;
441 const bool dummyTransform =
true,
446 template<
class T,
class NegateOp>
450 const NegateOp& negOp,
451 const bool dummyTransform =
true,
488 template<
class T,
class TransformOp>
493 const TransformOp& top,
498 template<
class T,
class TransformOp>
504 const TransformOp& top,
509 template<
class T,
class TransformOp>
516 const TransformOp& top,
561 void mapDistribute::transform::operator()
563 const vectorTensorTransform&,
568 void mapDistribute::transform::operator()
570 const coupledPolyPatch&,
574 void mapDistribute::transform::operator()
576 const coupledPolyPatch&,
580 void mapDistribute::transform::operator()
582 const coupledPolyPatch&,
587 void mapDistribute::transform::operator()
589 const coupledPolyPatch&,
593 void mapDistribute::transform::operator()
595 const vectorTensorTransform&,
600 void mapDistribute::transform::operator()
602 const coupledPolyPatch&,
606 void mapDistribute::transform::operator()
608 const coupledPolyPatch&,
613 void mapDistribute::transform::operator()
615 const coupledPolyPatch& cpp,
619 void mapDistribute::transform::operator()
621 const vectorTensorTransform&,
626 void mapDistribute::transform::operator()
628 const coupledPolyPatch&,
632 void mapDistribute::transform::operator()
634 const coupledPolyPatch&,
List< labelList > labelListList
A List of labelList.
void clear()
Reset to zero size, only retaining communicator.
void writeEntries(Ostream &os) const
Write entries in dictionary format.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
friend Istream & operator>>(Istream &, mapDistribute &)
Read plain content (not dictionary) from Istream.
void distribute(List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Distribute data using default commsType.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
label whichTransform(const label index) const
Find transform from transformElements.
label constructSize() const noexcept
Constructed data size.
label comm() const noexcept
The communicator used.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
static int & msgType() noexcept
Message tag of standard messages.
void printLayout(Ostream &os) const
Debug: print layout. Can only be used on maps with sorted.
void operator=(const mapDistribute &rhs)
Copy assignment.
friend Ostream & operator<<(Ostream &, const mapDistribute &)
Write plain content (not dictionary) to Ostream.
static label worldComm
Default world communicator (all processors). May differ from globalComm if local worlds are in use...
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
mapDistributeBase()
Default construct (uses worldComm)
virtual const tensorField & forwardT() const
Return face transformation tensor.
void updateMesh(const mapPolyMesh &)
No correction for topo change.
bool subHasFlip() const noexcept
Does subMap include a sign.
virtual bool parallel() const
Are the cyclic planes parallel.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
Istream & operator>>(Istream &, directionInfo &)
virtual ~mapDistribute()=default
Destructor.
const labelListList & transformElements() const noexcept
For every globalIndexAndTransform::transformPermutations.
#define forAllIters(container, iter)
Iterate across all elements in the container object.
autoPtr< mapDistribute > clone() const
Clone.
List< labelPair > labelPairList
List of labelPairs.
void reverseDistribute(const label constructSize, List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Reverse distribute data using default commsType.
mapDistribute()
Default construct - uses worldComm.
Class containing processor-to-processor mapping information.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
bool constructHasFlip() const noexcept
Does constructMap include a sign.
OBJstream os(runTime.globalPath()/outputName)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
const labelListList & constructMap() const noexcept
From subsetted data to new reconstructed data.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
void readDict(const dictionary &dict)
Read entries from dictionary format.
void transformList(const tensor &rotTensor, UList< T > &field)
Inplace transform a list of elements.
Class containing processor-to-processor mapping information.
void transfer(mapDistribute &map)
Transfer the contents of the argument and annul the argument.
virtual void transformPosition(pointField &) const =0
Transform a patch-based position from other side to this side.
ClassName("mapDistribute")
List< label > labelList
A List of labels.
const labelList & transformStart() const noexcept
Destination in constructMap for transformed elements.
const labelListList & subMap() const noexcept
From subsetted data back to original data.
Tensor of scalars, i.e. Tensor<scalar>.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
forAllConstIters(mixture.phases(), phase)