38 void Foam::mapDistribute::applyDummyTransforms(List<T>&
field)
const
40 forAll(transformElements_, trafoI)
42 const labelList& elems = transformElements_[trafoI];
44 label
n = transformStart_[trafoI];
55 void Foam::mapDistribute::applyDummyInverseTransforms(List<T>&
field)
const
57 forAll(transformElements_, trafoI)
59 const labelList& elems = transformElements_[trafoI];
60 label
n = transformStart_[trafoI];
70 template<
class T,
class TransformOp>
71 void Foam::mapDistribute::applyTransforms
73 const globalIndexAndTransform& globalTransforms,
75 const TransformOp& top
78 const List<vectorTensorTransform>& totalTransform =
79 globalTransforms.transformPermutations();
81 forAll(totalTransform, trafoI)
83 const vectorTensorTransform& vt = totalTransform[trafoI];
84 const labelList& elems = transformElements_[trafoI];
85 label
n = transformStart_[trafoI];
88 List<T> transformFld(UIndirectList<T>(
field, elems));
89 top(vt,
true, transformFld);
94 field[
n++] = transformFld[i];
100 template<
class T,
class TransformOp>
101 void Foam::mapDistribute::applyInverseTransforms
103 const globalIndexAndTransform& globalTransforms,
105 const TransformOp& top
108 const List<vectorTensorTransform>& totalTransform =
109 globalTransforms.transformPermutations();
111 forAll(totalTransform, trafoI)
113 const vectorTensorTransform& vt = totalTransform[trafoI];
114 const labelList& elems = transformElements_[trafoI];
115 label
n = transformStart_[trafoI];
118 List<T> transformFld(SubList<T>(
field, elems.size(),
n));
119 top(vt,
false, transformFld);
124 field[elems[i]] = transformFld[i];
130 template<
class T,
class negateOp>
134 const negateOp& negOp,
144 applyDummyTransforms(
fld);
176 fld.setCapacity(fldList.size());
183 const label constructSize,
191 applyDummyInverseTransforms(
fld);
201 const label constructSize,
210 applyDummyInverseTransforms(
fld);
217 template<
class T,
class TransformOp>
222 const TransformOp& top,
227 distribute(
fld,
false, tag);
229 applyTransforms(git,
fld, top);
233 template<
class T,
class TransformOp>
237 const label constructSize,
239 const TransformOp& top,
246 applyInverseTransforms(git,
fld, top);
249 reverseDistribute(constructSize,
fld,
false, tag);
253 template<
class T,
class TransformOp>
257 const label constructSize,
260 const TransformOp& top,
267 applyInverseTransforms(git,
fld, top);
270 reverseDistribute(constructSize, nullValue,
fld,
false, tag);