58 Foam::rawTopoChangerFvMesh::rawTopoChangerFvMesh
73 Info<<
"rawTopoChangerFvMesh : Checking for topology changes..." 83 const bool hasChanged = bool(topoChangeMap);
87 Info<<
"rawTopoChangerFvMesh : Done topology changes..." 100 const label nOldInternal = topoChangeMap().oldPatchStarts()[0];
107 mappedFace.
set(facei);
114 mappedFace.set(facei);
118 for (
const auto& map : topoChangeMap().facesFromFacesMap())
120 mappedFace.set(map.index());
123 for (
const auto& map : topoChangeMap().facesFromEdgesMap())
125 mappedFace.set(map.index());
128 for (
const auto& map : topoChangeMap().facesFromPointsMap())
130 mappedFace.set(map.index());
134 Info<<
"rawTopoChangerFvMesh : zeroing unmapped boundary values." <<
nl;
136 zeroUnmappedValues<scalar, fvPatchField, volMesh>(mappedFace);
137 zeroUnmappedValues<vector, fvPatchField, volMesh>(mappedFace);
138 zeroUnmappedValues<sphericalTensor, fvPatchField, volMesh>(mappedFace);
139 zeroUnmappedValues<symmTensor, fvPatchField, volMesh>(mappedFace);
140 zeroUnmappedValues<tensor, fvPatchField, volMesh>(mappedFace);
143 Info<<
"rawTopoChangerFvMesh :" 144 <<
" recreating phi for unmapped boundary values." <<
endl;
146 const auto&
U = lookupObject<volVectorField>(
"U");
147 auto&
phi = lookupObjectRef<surfaceScalarField>(
"phi");
157 if (topoChangeMap().hasMotionPoints())
159 pointField newPoints = topoChangeMap().preMotionPoints();
162 Info<<
"rawTopoChangerFvMesh :" 163 <<
" calling modifyMotionPoints." <<
endl;
167 Info<<
"rawTopoChangerFvMesh :" 168 <<
" calling movePoints." <<
endl;
const surfaceVectorField & Sf() const
Return cell face area vectors.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > linearInterpolate(const GeometricField< Type, fvPatchField, volMesh > &vf)
constexpr char nl
The newline '\n' character (0x0a)
const surfaceScalarField & phi() const
Return cell face motion fluxes.
Ostream & endl(Ostream &os)
Add newline and flush stream.
virtual bool movePoints()
Do what is necessary if the mesh has moved.
label nFaces() const noexcept
Number of mesh faces.
autoPtr< mapPolyMesh > changeMesh(const bool inflate, const bool syncParallel=true, const bool orderCells=false, const bool orderPoints=false)
Macros for easy insertion into run-time selection tables.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
vectorField pointField
pointField is a vectorField.
Abstract base class for a topology changing fvMesh.
label nInternalFaces() const noexcept
Number of internal faces.
void modifyMotionPoints(pointField &) const
Modify point motion.
bool topoChanging() const noexcept
Is mesh topology changing.
virtual bool update()
Update the mesh for both mesh motion and topology change.
defineTypeNameAndDebug(combustionModel, 0)
bool moving() const noexcept
Is mesh moving.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
void set(T *p) noexcept
Deprecated(2018-02) Identical to reset().
messageStream Info
Information stream (stdout output on master, null elsewhere)
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
polyTopoChanger topoChanger_
Defines the attributes of an object for which implicit objectRegistry management is supported...
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)