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
182 template<
class Type,
template<
class>
class GeoField>
183 void storeOldTimeFields();
186 template<
template<
class>
class GeoField>
187 void storeOldTimeFields();
191 template<
class Type,
template<
class>
class GeoField>
192 void resizePatchFields();
195 template<
template<
class>
class GeoField>
196 void resizePatchFields();
202 void preConformSurfaceFields();
207 inline void preConformSurfaceFields();
213 void postNonConformSurfaceFields();
218 inline void postNonConformSurfaceFields();
222 void evaluateVolFields();
225 inline void evaluateVolFields();
228 inline void postNonConformSurfaceVelocities();
238 template<
class GeoBoundaryField>
242 GeoBoundaryField& fieldBf
246 template<
class GeoField>
308 const scalar ownerWeight,
309 const scalar neighbourWeight
403 const bool geometric,
409 void reconnect(
const bool geometric)
const;
412 virtual bool write(
const bool write =
true)
const virtual bool disconnect(const bool changing, const bool geometric)
Disconnect the mesh by removing faces from the nonConformalCyclics.
static tmp< Field< Type > > fieldRMapSum(const Field< Type > &f, const label size, const labelUList &addr)
Reverse-map sum the values of a field.
tmp< SurfaceFieldBoundary< Type > > conformalNccBoundaryField(const SurfaceFieldBoundary< Type > &fieldb) const
Extract the non-conformal-coupled parts of the boundary field.
tmp< SurfaceFieldBoundary< Type > > nonConformalBoundaryField(const SurfaceFieldBoundary< Type > &nccFieldb, const SurfaceFieldBoundary< Type > &origFieldb) const
Combine non-conformal-coupled and original parts of the.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
declareRunTimeSelectionTable(autoPtr, fvMeshStitcher, fvMesh,(fvMesh &mesh),(mesh))
bool geometric() const
Is the connection "geometric", or has the topology just been.
Mesh manipulator that uses the intersection provided by the cyclic non-conformal poly patches to crea...
virtual bool write(const bool write=true) const
Write the mover state.
Structure to store the geometry associated with part of a patch.
tmp< DimensionedField< scalar, volMesh > > volumeConservationError(const label n) const
Return the non-dimensional old-time volume conservation error.
Perform mapping of finite volume fields required by stitching.
fvMesh & mesh()
Return the fvMesh.
tmp< SurfaceFieldBoundary< scalar > > getOrigNccMagSfb() const
Return the total non-conformal area associated with each.
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.
tmp< SurfaceFieldBoundary< Type > > conformalOrigBoundaryField(const SurfaceFieldBoundary< Type > &fieldb) const
Extract the original parts of the boundary field and store it.
virtual void movePoints()
Update local data for mesh motion.
Pre-declare SubField and related Field type.
void resizeFieldPatchFields(const SurfaceFieldBoundary< label > &polyFacesBf, GeoField &field)
Resize the patch field of a given field to match the mesh.
A class for handling words, derived from string.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
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.
virtual void updateMesh(const polyTopoChangeMap &)
Update local data for topology changes.
virtual bool connect(const bool changing, const bool geometric, const bool load)
Connect the mesh by adding faces into the nonConformalCyclics.
TypeName("fvMeshStitcher")
Runtime type information.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
bool stitches() const
Does this stitcher do anything?
virtual ~fvMeshStitcher()
Destructor.
void operator=(const fvMeshStitcher &)=delete
Disallow default bitwise assignment.
Generic GeometricBoundaryField class.
Structure to store the geometry associated with the coupling.
Mesh data needed to do the Finite Volume discretisation.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
static autoPtr< fvMeshStitcher > New(fvMesh &, bool changing)
Select, construct and return the fvMeshStitcher.
tmp< DimensionedField< scalar, volMesh > > openness() const
Return the non-dimensional cell openness for debugging/checking.
A class for managing temporary objects.
void reconnect(const bool geometric) const
Re-compute the connection. Topology is preserved. Permits a change.