Go to the documentation of this file.
41 void Foam::mapDistribute::transform::operator()
49 void Foam::mapDistribute::transform::operator()
56 void Foam::mapDistribute::transform::operator()
63 void Foam::mapDistribute::transform::operator()
72 void Foam::mapDistribute::transform::operator()
80 void Foam::mapDistribute::transform::operator()
87 void Foam::mapDistribute::transform::operator()
94 void Foam::mapDistribute::transform::operator()
103 void Foam::mapDistribute::transform::operator()
111 void Foam::mapDistribute::transform::operator()
118 void Foam::mapDistribute::transform::operator()
125 void Foam::mapDistribute::transform::operator()
141 os <<
"transform " << trafoI <<
':' <<
endl
161 const label constructSize,
164 const bool subHasFlip,
165 const bool constructHasFlip
182 const label constructSize,
187 const bool subHasFlip,
188 const bool constructHasFlip
199 transformElements_(transformElements),
200 transformStart_(transformStart)
266 calcCompactAddressing
274 forAll(transformedElements, i)
281 label nCompact = compactMap[procI].size();
282 compactMap[procI].insert(index, nCompact);
305 forAll(transformedElements, i)
309 nPerTransform[trafoI]++;
312 transformStart_.
setSize(nTrafo);
313 transformElements_.setSize(nTrafo);
314 forAll(transformStart_, trafoI)
316 transformStart_[trafoI] = constructSize_;
317 constructSize_ += nPerTransform[trafoI];
318 transformElements_[trafoI].
setSize(nPerTransform[trafoI]);
324 transformedIndices.
setSize(transformedElements.
size());
325 forAll(transformedElements, i)
337 : compactMap[procI][index]
340 label&
n = nPerTransform[trafoI];
342 transformElements_[trafoI][
n] = rawElemI;
344 transformedIndices[i] = transformStart_[trafoI]+
n;
371 calcCompactAddressing
379 forAll(transformedElements, cellI)
389 label nCompact = compactMap[procI].size();
390 compactMap[procI].insert(index, nCompact);
414 forAll(transformedElements, cellI)
421 nPerTransform[trafoI]++;
425 transformStart_.
setSize(nTrafo);
426 transformElements_.setSize(nTrafo);
427 forAll(transformStart_, trafoI)
429 transformStart_[trafoI] = constructSize_;
430 constructSize_ += nPerTransform[trafoI];
431 transformElements_[trafoI].
setSize(nPerTransform[trafoI]);
437 transformedIndices.
setSize(transformedElements.
size());
438 forAll(transformedElements, cellI)
454 : compactMap[procI][index]
457 label&
n = nPerTransform[trafoI];
459 transformElements_[trafoI][
n] = rawElemI;
461 transformedIndices[cellI][i] = transformStart_[trafoI]+
n;
491 map().constructSize_,
492 map().subMap_.xfer(),
493 map().constructMap_.xfer(),
495 map().constructHasFlip()
497 transformElements_(map().transformElements_.xfer()),
498 transformStart_(map().transformStart_.xfer())
519 return findLower(transformStart_, index+1);
545 <<
"Attempted assignment to self"
558 is.
fatalCheck(
"operator>>(Istream&, mapDistribute&)");
571 os << static_cast<const mapDistributeBase&>(map) <<
token::NL
573 << map.transformStart_;
label whichTransform(const label index) const
Find transform from transformElements.
void fatalCheck(const char *operation) const
Check IOstream status for given operation.
void operator=(const mapDistributeBase &)
#define forAll(list, i)
Loop across all elements in list.
Ostream & endl(Ostream &os)
Add newline and flush stream.
The coupledPolyPatch is an abstract base class for patches that couple regions of the computational d...
A simple container for copying or transferring objects of type <T>.
void transfer(mapDistribute &)
Transfer the contents of the argument and annul the argument.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Class containing processor-to-processor mapping information.
label findLower(const ListType &, typename ListType::const_reference, const label start, const BinaryOp &bop)
Find last element < given value in sorted list and return index,.
Ostream & operator<<(Ostream &, const edgeMesh &)
void transfer(mapDistributeBase &)
Transfer the contents of the argument and annul the argument.
errorManip< error > abort(error &err)
Calculates a unique integer (label so might not have enough room - 2G max) for processor + local inde...
labelListList transformElements_
For every globalIndexAndTransform::transformPermutations.
static int myProcNo(const label communicator=0)
Number of this process (starting from masterNo() = 0)
void printLayout(Ostream &os) const
Debug: print layout. Can only be used on maps with sorted.
void setSize(const label)
Reset size of List.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Xfer< T > xferMove(T &)
Construct by transferring the contents of the arg.
An ordered pair of two objects of type <T> with first() and second() elements.
prefixOSstream Pout(cout, "Pout")
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
Istream & operator>>(Istream &, edgeMesh &)
Class containing processor-to-processor mapping information.
void size(const label)
Override size to be inconsistent with allocated storage.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
autoPtr< mapDistribute > clone() const
Clone.
void printLayout(Ostream &os) const
Debug: print layout. Can only be used on maps with sorted.
Xfer< mapDistribute > xfer()
Transfer contents to the Xfer container.
void operator=(const mapDistribute &)
defineTypeNameAndDebug(combustionModel, 0)
mapDistribute()
Construct null.
labelList transformStart_
Destination in constructMap for transformed elements.