37 #ifndef fvMeshStitcher_H
38 #define fvMeshStitcher_H
49 class nonConformalCyclicFvPatch;
50 class nonConformalMappedWallFvPatch;
159 static void matchIndices
174 static void createCouplings
191 static void createErrorAndEdgeParts
201 void intersectNonConformalCyclic
214 void intersectNonConformalMappedWall
229 List<part> calculateOwnerOrigBoundaryEdgeParts
236 void applyOwnerOrigBoundaryEdgeParts
245 void stabiliseOrigPatchFaces
261 const bool matchTopology
268 virtual bool changing()
const = 0;
274 virtual void createNonConformalCorrectMeshPhiGeometry
282 virtual void unconformCorrectMeshPhi
314 template<
class Type,
template<
class>
class GeoField>
315 void resizePatchFields();
318 template<
template<
class>
class GeoField>
319 void resizePatchFields();
326 void preConformVolFields();
329 void preConformVolFields();
336 void preConformSurfaceFields();
339 void preConformSurfaceFields();
347 void postUnconformVolFields();
351 void postUnconformEvaluateVolFields();
354 void postUnconformVolFields();
362 void postUnconformSurfaceFields();
365 void postUnconformSurfaceFields();
374 template<
class GeoField>
483 virtual bool write(
const bool write =
true)
const
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
Generic GeometricBoundaryField class.
Generic GeometricField class.
A HashTable with keys but without contents.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Mesh manipulator that uses the intersection provided by the cyclic non-conformal poly patches to crea...
bool disconnect(const bool changing, const bool geometric)
Disconnect the mesh by removing faces from the nonConformalCyclics.
TypeName("fvMeshStitcher")
Runtime type information.
bool connect(const bool changing, const bool geometric, const bool load)
Connect the mesh by adding faces into the nonConformalCyclics.
static autoPtr< fvMeshStitcher > New(fvMesh &, bool changing)
Select, construct and return the fvMeshStitcher.
void reconnect(const bool geometric) const
Re-compute the connection. Topology is preserved. Permits a change.
bool geometric() const
Is the connection "geometric", or has the topology just been.
static GeoField::Boundary & boundaryFieldRefNoUpdate(GeoField &fld)
Access the boundary field reference of a field, without updating.
fvMeshStitcher(fvMesh &)
Construct from fvMesh.
virtual void topoChange(const polyTopoChangeMap &)
Update corresponding to the given map.
virtual void distribute(const polyDistributionMap &)
Update corresponding to the given distribution map.
bool stitches() const
Does this stitcher do anything?
fvMesh & mesh()
Return the fvMesh.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
void operator=(const fvMeshStitcher &)=delete
Disallow default bitwise assignment.
tmp< DimensionedField< scalar, volMesh > > openness() const
Return the non-dimensional cell openness for debugging/checking.
declareRunTimeSelectionTable(autoPtr, fvMeshStitcher, fvMesh,(fvMesh &mesh),(mesh))
tmp< DimensionedField< scalar, volMesh > > volumeConservationError(const label n) const
Return the non-dimensional old-time volume conservation error.
bool dynamic() const
Is the set of connected region meshes dynamic?
boolList patchCoupleds() const
Determine which patches are coupled; i.e., for which.
virtual ~fvMeshStitcher()
Destructor.
virtual bool write(const bool write=true) const
Write the stitcher state.
Mesh data needed to do the Finite Volume discretisation.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Class to generate patchToPatch coupling geometry. A full geometric intersection is done between a fac...
Class containing mesh-to-mesh mapping information after a mesh distribution where we send parts of me...
Class containing mesh-to-mesh mapping information.
A patch is a list of labels that address the faces in the global face list.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
A class for managing temporary objects.
A class for handling words, derived from string.
Perform mapping of finite volume fields required by stitching.
gmvFile<< "tracers "<< particles.size()<< nl;{ pointField positions(particles.size());label particlei=0;forAllConstIter(Cloud< passiveParticle >, particles, iter) { positions[particlei++]=iter().position(mesh);} for(i=0;i< pTraits< point >::nComponents;i++) { forAll(positions, particlei) { gmvFile<< component(positions[particlei], i)<< ' ';} gmvFile<< nl;}}forAll(lagrangianScalarNames, i){ const word &name=lagrangianScalarNames[i];IOField< scalar > fld(IOobject(name, runTime.name(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const word & regionName(const solver ®ion)
Structure to store the geometry associated with the coupling.
Structure to store the geometry associated with part of a patch.