31 Foam::labelList Foam::fvFieldDecomposer::patchFieldDecomposer::alignAddressing
34 const label addressingOffset
42 addressing[i] = addressingSlice[i] - (addressingOffset + 1);
52 const label addressingOffset
55 labelList(alignAddressing(addressingSlice, addressingOffset)),
60 Foam::labelList Foam::fvFieldDecomposer::processorVolPatchFieldDecomposer::
75 label ai =
mag(addressingSlice[i]) - 1;
77 if (ai < neighb.
size())
84 if (addressingSlice[i] >= 0)
117 labelList(alignAddressing(mesh, addressingSlice)),
124 const fvMesh& completeMesh,
131 completeMesh_(completeMesh),
133 faceAddressing_(faceAddressing),
134 cellAddressing_(cellAddressing),
135 boundaryAddressing_(boundaryAddressing),
136 patchFieldDecomposerPtrs_
138 procMesh_.boundary().size(),
141 processorVolPatchFieldDecomposerPtrs_
143 procMesh_.boundary().size(),
152 if (fromPatchi < 0 && isA<processorCyclicFvPatch>(procPatch))
154 const label referPatchi =
155 refCast<const processorCyclicPolyPatch>
156 (procPatch.
patch()).referPatchID();
157 fromPatchi = boundaryAddressing_[referPatchi];
164 procMesh_.boundary()[
patchi].patchSlice(faceAddressing_),
165 completeMesh_.boundaryMesh()[fromPatchi].start()
169 if (boundaryAddressing_[
patchi] < 0)
171 processorVolPatchFieldDecomposerPtrs_[
patchi] =
175 procMesh_.boundary()[
patchi].patchSlice(faceAddressing_)
188 if (patchFieldDecomposerPtrs_[
patchi])
190 delete patchFieldDecomposerPtrs_[
patchi];
196 if (processorVolPatchFieldDecomposerPtrs_[
patchi])
198 delete processorVolPatchFieldDecomposerPtrs_[
patchi];
#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.
virtual const labelList & faceNeighbour() const
Return face neighbour.
void size(const label)
Override size to be inconsistent with allocated storage.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
directFvPatchFieldMapper(const labelUList &addressing)
Construct given addressing.
Patch field decomposer class.
UList< label > labelUList
processorVolPatchFieldDecomposer(const fvMesh &mesh, const labelUList &addressingSlice)
Construct given addressing.
const polyPatch & patch() const
Return the polyPatch.
virtual const labelList & faceOwner() const
Return face owner.
List< label > labelList
A List of labels.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
fvFieldDecomposer(const fvMesh &completeMesh, const fvMesh &procMesh, const labelList &faceAddressing, const labelList &cellAddressing, const labelList &boundaryAddressing)
Construct from components.
virtual const labelUList & addressing() const
Access to the direct map addressing.
Processor patch field decomposer class. Maps either owner or.
patchFieldDecomposer(const labelUList &addressingSlice, const label addressingOffset)
Construct given addressing.
Mesh data needed to do the Finite Volume discretisation.
~fvFieldDecomposer()
Destructor.
dimensioned< scalar > mag(const dimensioned< Type > &)
label size() const
Return the number of elements in the UList.
const fvBoundaryMesh & boundary() const
Return reference to boundary mesh.