Go to the documentation of this file.
35 template<
class Type,
class CombineOp,
class TransformOp>
44 const TransformOp& top
53 Type& elem = elems[i];
59 transformedSlaves.empty()
61 : transformedSlaves[i]
66 for (
const label pointi : slavePoints)
68 cop(elem, elems[pointi]);
72 for (
const label pointi : transformSlavePoints)
74 cop(elem, elems[pointi]);
78 for (
const label pointi : slavePoints)
83 for (
const label pointi : transformSlavePoints)
100 template<
class Type,
class CombineOp>
116 Type& elem = elems[i];
118 const labelList& slavePoints = slaves[i];
122 transformedSlaves.empty()
124 : transformedSlaves[i]
129 for (
const label pointi : slavePoints)
131 cop(elem, elems[pointi]);
135 for (
const label pointi : transformSlavePoints)
137 cop(elem, elems[pointi]);
141 for (
const label pointi : slavePoints)
143 elems[pointi] = elem;
146 for (
const label pointi : transformSlavePoints)
148 elems[pointi] = elem;
157 template<
class Type,
class CombineOp,
class TransformOp>
161 const CombineOp& cop,
162 const TransformOp& top
165 if (pointData.size() != mesh_.nPoints())
168 <<
"Number of elements in data:" << pointData.size()
169 <<
" differs from number of points in mesh:" << mesh_.nPoints()
181 globalPointTransformedSlaves(),
182 globalPointSlavesMap(),
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Class containing processor-to-processor mapping information.
static void syncData(List< Type > &elems, const labelListList &slaves, const labelListList &transformedSlaves, const mapDistribute &slavesMap, const globalIndexAndTransform &, const CombineOp &cop, const TransformOp &top)
Helper: synchronise data with transforms.
void distribute(List< T > &fld, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Distribute data using default commsType.
errorManip< error > abort(error &err)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
void reverseDistribute(const label constructSize, List< T > &, const bool dummyTransform=true, const int tag=UPstream::msgType()) const
Reverse distribute data using default commsType.
A List with indirect addressing.
const labelList & meshPoints() const
Return labelList of mesh points in patch.
void syncPointData(List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
Helper to synchronise coupled patch point data.
A list of faces which address into the list of points.