37 #ifndef fvMeshStitcher_H
38 #define fvMeshStitcher_H
49 class nonConformalCyclicFvPatch;
50 class nonConformalMappedWallFvPatch;
79 static const scalar minWarnProjectedVolumeFraction_;
164 static void matchIndices
178 static label nValidIndices
185 static void createCouplings
202 static void createErrorAndEdgeParts
212 void intersectNonConformalCyclic
225 void intersectNonConformalMappedWall
240 List<part> calculateOwnerOrigBoundaryEdgeParts
247 void applyOwnerOrigBoundaryEdgeParts
256 void stabiliseOrigPatchFaces
272 const bool matchTopology
279 virtual bool changing()
const = 0;
285 virtual void createNonConformalCorrectMeshPhiGeometry
293 virtual void unconformCorrectMeshPhi
325 template<
class Type,
template<
class>
class GeoField>
326 void resizePatchFields();
329 template<
template<
class>
class GeoField>
330 void resizePatchFields();
337 void preConformSurfaceFields();
340 void preConformSurfaceFields();
347 void preConformVolFields();
350 void preConformVolFields();
358 void postUnconformSurfaceFields();
361 void postUnconformSurfaceFields();
369 void postUnconformVolFields();
373 void postUnconformEvaluateVolFields();
376 void postUnconformVolFields();
484 virtual bool write(
const bool write =
true)
const
500 void fvMeshStitcher::postUnconformSurfaceFields<Foam::vector>();
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.
fvMeshStitcher(fvMesh &)
Construct from fvMesh.
tmp< DimensionedField< scalar, volMesh > > projectedVolumeFraction() const
Return the projected volume fraction for debugging/checking.
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.
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.
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.