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
225 const tensor T(forward ? vt.
R() : vt.
R().T());
254 template<
class Type,
template<
class>
class Container>
280 fld = vt.transformPosition(pfld);
284 fld = vt.invTransformPosition(pfld);
307 template<
template<
class>
class Container>
385 const
int tag =
UPstream::msgType(),
398 const
int tag =
UPstream::msgType(),
442 return transformElements_;
448 return transformStart_;
469 const bool dummyTransform =
true,
479 const bool dummyTransform =
true,
507 template<
class T,
class NegateOp>
511 const NegateOp& negOp,
518 template<
class T,
class NegateOp>
523 const NegateOp& negOp,
577 template<
class T,
class TransformOp>
582 const TransformOp& top,
588 template<
class T,
class TransformOp>
594 const TransformOp& top,
599 template<
class T,
class TransformOp>
605 const TransformOp& top,
610 template<
class T,
class TransformOp>
617 const TransformOp& top,
622 template<
class T,
class TransformOp>
629 const TransformOp& top,
634 template<
class T,
class TransformOp>
642 const TransformOp& top,
687 void mapDistribute::transform::operator()
689 const vectorTensorTransform&,
694 void mapDistribute::transform::operator()
696 const coupledPolyPatch&,
700 void mapDistribute::transform::operator()
702 const coupledPolyPatch&,
706 void mapDistribute::transform::operator()
708 const coupledPolyPatch&,
713 void mapDistribute::transform::operator()
715 const coupledPolyPatch&,
719 void mapDistribute::transform::operator()
721 const vectorTensorTransform&,
726 void mapDistribute::transform::operator()
728 const coupledPolyPatch&,
732 void mapDistribute::transform::operator()
734 const coupledPolyPatch&,
739 void mapDistribute::transform::operator()
741 const coupledPolyPatch& cpp,
745 void mapDistribute::transform::operator()
747 const vectorTensorTransform&,
752 void mapDistribute::transform::operator()
754 const coupledPolyPatch&,
758 void mapDistribute::transform::operator()
760 const coupledPolyPatch&,
void clear()
Reset to zero size, only retaining communicator.
commsTypes
Communications types.
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 List data using default commsType, default flip/negate operator.
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.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
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.
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
Istream & operator>>(Istream &, directionInfo &)
const labelListList & transformElements() const noexcept
For every globalIndexAndTransform::transformPermutations gives the elements that need to be transform...
#define forAllIters(container, iter)
Iterate across all elements in the container object.
autoPtr< mapDistribute > clone() const
Clone.
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
void reverseDistribute(const label constructSize, List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Reverse distribute data using default commsType.
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.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
ClassName("mapDistribute")
List< label > labelList
A List of labels.
const labelList & transformStart() const noexcept
Destination in constructMap for transformed elements.
mapDistributeBase() noexcept
Default construct (uses worldComm)
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.
mapDistribute() noexcept
Default construct - uses worldComm.
Inter-processor communications stream.
forAllConstIters(mixture.phases(), phase)
A HashTable to objects of type <T> with a label key.