136#ifndef Foam_mapDistribute_H
137#define Foam_mapDistribute_H
150class globalIndexAndTransform;
154Ostream&
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>
415 return transformElements_;
421 return transformStart_;
446 template<
class T,
class NegateOp>
450 const NegateOp& negOp,
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,
563 const vectorTensorTransform&,
570 const coupledPolyPatch&,
576 const coupledPolyPatch&,
582 const coupledPolyPatch&,
589 const coupledPolyPatch&,
595 const vectorTensorTransform&,
602 const coupledPolyPatch&,
608 const coupledPolyPatch&,
615 const coupledPolyPatch& cpp,
621 const vectorTensorTransform&,
628 const coupledPolyPatch&,
634 const coupledPolyPatch&,
Info<< nl<< "Wrote faMesh in vtk format: "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.mesh().time().globalPath()/"finiteArea-edges"));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
A HashTable to objects of type <T> with a label key.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
static int & msgType() noexcept
Message tag of standard messages.
static label worldComm
Default communicator (all processors)
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
virtual bool parallel() const
Are the cyclic planes parallel.
virtual void transformPosition(pointField &) const =0
Transform a patch-based position from other side to this side.
virtual const tensorField & forwardT() const
Return face transformation tensor.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
friend Ostream & operator(Ostream &, const faMatrix< Type > &)
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
Class containing processor-to-processor mapping information.
const labelListList & constructMap() const noexcept
From subsetted data to new reconstructed data.
bool constructHasFlip() const noexcept
Does constructMap include a sign.
const labelListList & subMap() const noexcept
From subsetted data back to original data.
bool subHasFlip() const noexcept
Does subMap include a sign.
label comm() const noexcept
The communicator used.
label constructSize() const noexcept
Constructed data size.
Class containing processor-to-processor mapping information.
friend Istream & operator>>(Istream &, mapDistribute &)
Read plain content (not dictionary) from Istream.
label whichTransform(const label index) const
Find transform from transformElements.
void operator=(const mapDistribute &rhs)
Copy assignment.
void printLayout(Ostream &os) const
Debug: print layout. Can only be used on maps with sorted.
mapDistribute()
Default construct - uses worldComm.
friend Ostream & operator<<(Ostream &, const mapDistribute &)
Write plain content (not dictionary) to Ostream.
ClassName("mapDistribute")
void readDict(const dictionary &dict)
Read entries from dictionary format.
const labelListList & transformElements() const noexcept
For every globalIndexAndTransform::transformPermutations.
void transfer(mapDistribute &map)
Transfer the contents of the argument and annul the argument.
void writeEntries(Ostream &os) const
Write entries in dictionary format.
virtual ~mapDistribute()=default
Destructor.
void reverseDistribute(const label constructSize, List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Reverse distribute data using default commsType.
void distribute(List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Distribute data using default commsType.
const labelList & transformStart() const noexcept
Destination in constructMap for transformed elements.
autoPtr< mapDistribute > clone() const
Clone.
void clear()
Reset to zero size, only retaining communicator.
void updateMesh(const mapPolyMesh &)
No correction for topo change.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
OBJstream os(runTime.globalPath()/outputName)
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
Istream & operator>>(Istream &, directionInfo &)
void transformList(const tensor &rotTensor, UList< T > &field)
Inplace transform a list of elements.
#define forAllIters(container, iter)
Iterate across all elements in the container object.
#define forAllConstIters(container, iter)
Iterate across all elements of the container object with const access.