37 #ifndef fvMeshStitcher_H
38 #define fvMeshStitcher_H
48 class nonConformalCyclicFvPatch;
79 static const word nccFieldPrefix_;
93 void intersectNonConformalCyclic
108 List<part> calculateOwnerOrigBoundaryEdgeParts
115 void applyOwnerOrigBoundaryEdgeParts
124 void stabiliseOrigPatchFaces
131 void intersectNonConformalCyclics
136 const bool haveTopology
144 template<
class NonConformalFvPatch>
145 inline void createNonConformalStabilisationGeometry
156 virtual bool changing()
const = 0;
162 virtual void createNonConformalCorrectMeshPhiGeometry
170 virtual void unconformCorrectMeshPhi
183 template<
class Type,
template<
class>
class GeoField>
184 void resizePatchFields();
187 template<
template<
class>
class GeoField>
188 void resizePatchFields();
194 void preConformSurfaceFields();
199 inline void preConformSurfaceFields();
205 void postNonConformSurfaceFields();
210 inline void postNonConformSurfaceFields();
214 void evaluateVolFields();
217 inline void evaluateVolFields();
220 inline void postNonConformSurfaceVelocities();
230 template<
class GeoBoundaryField>
234 GeoBoundaryField& fieldBf
238 template<
class GeoField>
300 const scalar ownerWeight,
301 const scalar neighbourWeight
404 virtual bool write(
const bool write =
true)
const
Pre-declare SubField and related Field type.
Generic GeometricBoundaryField class.
Generic GeometricField class.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
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...
tmp< SurfaceFieldBoundary< Type > > conformalNccBoundaryField(const SurfaceFieldBoundary< Type > &fieldb) const
Extract the non-conformal-coupled parts of the boundary field.
virtual bool disconnect(const bool changing, const bool geometric)
Disconnect the mesh by removing faces from the nonConformalCyclics.
TypeName("fvMeshStitcher")
Runtime type information.
virtual void updateMesh(const polyTopoChangeMap &)
Update local data for topology changes.
tmp< SurfaceFieldBoundary< Type > > nonConformalBoundaryField(const SurfaceFieldBoundary< Type > &nccFieldb, const SurfaceFieldBoundary< Type > &origFieldb) const
Combine non-conformal-coupled and original parts of the.
virtual 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.
static tmp< Field< Type > > fieldRMapSum(const Field< Type > &f, const label size, const labelUList &addr)
Reverse-map sum the values of a field.
bool geometric() const
Is the connection "geometric", or has the topology just been.
tmp< SurfaceFieldBoundary< Type > > conformalOrigBoundaryField(const SurfaceFieldBoundary< Type > &fieldb) const
Extract the original parts of the boundary field and store it.
fvMeshStitcher(fvMesh &)
Construct from fvMesh.
void resizeBoundaryFieldPatchFields(const SurfaceFieldBoundary< label > &polyFacesBf, GeoBoundaryField &fieldBf)
Resize the patch field of a given field to match the mesh.
virtual void movePoints()
Update local data for mesh motion.
bool stitches() const
Does this stitcher do anything?
fvMesh & mesh()
Return the fvMesh.
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.
tmp< SurfaceFieldBoundary< Type > > synchronisedBoundaryField(const SurfaceFieldBoundary< Type > &fieldb, const bool flip, const scalar ownerWeight, const scalar neighbourWeight) const
Synchronise the boundary field by combining corresponding.
tmp< SurfaceFieldBoundary< scalar > > getOrigNccMagSfb() const
Return the total non-conformal area associated with each.
virtual ~fvMeshStitcher()
Destructor.
virtual bool write(const bool write=true) const
Write the mover state.
void resizeFieldPatchFields(const SurfaceFieldBoundary< label > &polyFacesBf, GeoField &field)
Resize the patch field of a given field to match the mesh.
Mesh data needed to do the Finite Volume discretisation.
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.
Structure to store the geometry associated with the coupling.
Structure to store the geometry associated with part of a patch.