41Foam::label Foam::lduPrimitiveMeshAssembly::totalSize
43 const UPtrList<lduMesh>&
meshes
50 tot +=
meshes[meshi].lduAddr().size();
59Foam::lduPrimitiveMeshAssembly::lduPrimitiveMeshAssembly
74 <<
"Communicator " <<
meshes[meshi].comm()
75 <<
" at index " << meshi
76 <<
" differs between meshes " <<
nl;
84Foam::lduPrimitiveMeshAssembly::lduPrimitiveMeshAssembly
106 const label nMeshes =
meshes.size();
107 patchMap_.setSize(nMeshes);
108 patchLocalToGlobalMap_.setSize(nMeshes);
109 faceMap_.setSize(nMeshes);
110 faceBoundMap_.setSize(nMeshes);
111 cellBoundMap_.setSize(nMeshes);
113 facePatchFaceMap_.setSize(nMeshes);
116 cellOffsets_.setSize(1+nMeshes);
118 for (label meshi=0; meshi < nMeshes; ++meshi)
120 cellOffsets_[meshi+1] =
121 cellOffsets_[meshi] +
meshes[meshi].lduAddr().size();
124 for (label i=0; i < nMeshes; ++i)
126 patchMap_[i].setSize(meshes_[i].interfaces().size(), -1);
127 patchLocalToGlobalMap_[i].setSize(patchMap_[i].size(), -1);
129 faceBoundMap_[i].setSize(patchMap_[i].
size());
130 cellBoundMap_[i].setSize(patchMap_[i].
size());
131 facePatchFaceMap_[i].setSize(patchMap_[i].
size());
142 if (
pp.neighbRegionID() !=
"none")
146 if (meshes_[meshi].thisDb().
name() ==
pp.neighbRegionID())
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
label size() const noexcept
Return number of equations.
Abstract base class for meshes which provide LDU addressing for the construction of lduMatrix and LDU...
An assembly of lduMatrix that is specific inter-region coupling through mapped patches.
virtual const objectRegistry & thisDb() const
Return the object registry.
void updateMaps(const UPtrList< lduMesh > &)
Size maps.
label findNbrMeshId(const polyPatch &pp, const label iMesh) const
Find nrb mesh Id for mapped patches.
const UPtrList< lduMesh > & meshes() const
Return fvMeshes.
Simplest concrete lduMesh that stores the addressing needed by lduMatrix.
virtual label comm() const
Return communicator used for parallel communication.
static const lduMesh & mesh(const lduMesh &mesh0, const PtrList< lduPrimitiveMesh > &otherMeshes, const label meshI)
Select either mesh0 (meshI is 0) or otherMeshes[meshI-1].
virtual lduInterfacePtrsList interfaces() const
Return a list of pointers for each patch with only those pointing to interfaces being set.
virtual const lduAddressing & lduAddr() const
Return ldu addressing.
A patch is a list of labels that address the faces in the global face list.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
regIOobject(const IOobject &io, const bool isTimeObject=false)
Construct from IOobject. The optional flag adds special handling if the object is the top-level regIO...
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Foam::PtrList< Foam::fvMesh > meshes(regionNames.size())
#define WarningInFunction
Report a warning using Foam::Warning.
constexpr char nl
The newline '\n' character (0x0a).
#define forAll(list, i)
Loop across all elements in list.