33 const pointMesh& completeMesh,
34 const PtrList<fvMesh>& procMeshes,
38 completeMesh_(completeMesh),
39 procMeshes_(procMeshes),
40 pointProcAddressing_(pointProcAddressing),
41 patchPointAddressing_(procMeshes.size()),
45 labelList pointMap(completeMesh_.size(), -1);
52 patchPointAddressing_[proci].setSize(procMesh.boundary().size());
56 if (
patchi < completeMesh_.boundary().size())
59 procPatchAddr.
setSize(procMesh.boundary()[
patchi].size(), -1);
62 completeMesh_.boundary()[
patchi].meshPoints();
65 forAll(patchPointLabels, pointi)
67 pointMap[patchPointLabels[pointi]] = pointi;
71 procMesh.boundary()[
patchi].meshPoints();
73 forAll(procPatchPoints, pointi)
75 procPatchAddr[pointi] =
78 pointProcAddressing_[proci][procPatchPoints[pointi]]
82 if (procPatchAddr.size() &&
min(procPatchAddr) < 0)
85 <<
"Incomplete patch point addressing"
#define forAll(list, i)
Loop across all elements in list.
void setSize(const label)
Reset size of List.
pointFieldReconstructor(const pointMesh &mesh, const PtrList< fvMesh > &procMeshes, const labelListList &pointProcAddressing)
Construct from components.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
List< label > labelList
A List of labels.
errorManip< error > abort(error &err)
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
List< labelList > labelListList
A List of labelList.