33 const pointMesh& completeMesh,
34 const PtrList<fvMesh>& procMeshes,
38 completeMesh_(completeMesh),
39 procMeshes_(procMeshes),
40 pointProcAddressing_(pointProcAddressing),
41 patchPointAddressing_(procMeshes.size())
44 labelList pointMap(completeMesh_.size(), -1);
51 patchPointAddressing_[proci].setSize(procMesh.boundary().size());
55 if (
patchi < completeMesh_.boundary().size())
58 procPatchAddr.
setSize(procMesh.boundary()[
patchi].size(), -1);
61 completeMesh_.boundary()[
patchi].meshPoints();
64 forAll(patchPointLabels, pointi)
66 pointMap[patchPointLabels[pointi]] = pointi;
70 procMesh.boundary()[
patchi].meshPoints();
72 forAll(procPatchPoints, pointi)
74 procPatchAddr[pointi] =
77 pointProcAddressing_[proci][procPatchPoints[pointi]]
81 if (procPatchAddr.size() &&
min(procPatchAddr) < 0)
84 <<
"Incomplete patch point addressing"
95 bool Foam::pointFieldReconstructor::reconstructs
98 const HashSet<word>& selectedFields
103 #define DO_POINT_FIELDS_TYPE(Type, nullArg) \
105 || reconstructs<PointField<Type>>(objects, selectedFields);
107 #undef DO_POINT_FIELDS_TYPE
#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.
FOR_ALL_FIELD_TYPES(makeFieldSourceTypedef)