Go to the documentation of this file.
37 #include "surfaceInterpolate.H"
49 dynamicMotionSolverFvMeshAMI,
57 Foam::dynamicMotionSolverFvMeshAMI::dynamicMotionSolverFvMeshAMI
67 Foam::dynamicMotionSolverFvMeshAMI::dynamicMotionSolverFvMeshAMI
83 std::move(allNeighbour),
108 if (!isA<processorFvPatch>(fvp))
110 Info<<
"1 --- patch:" << fvp.patch().name()
111 <<
" area:" <<
gSum(fvp.magSf()) <<
endl;
116 pointField newPoints(motionPtr_->curPoints());
121 bool changeRequired =
false;
125 <<
"pre-topology change: patch " << pp.name()
127 <<
" mag(faceAreas):" <<
gSum(
mag(pp.faceAreas())) <<
endl;
130 changeRequired = pp.changeTopology() || changeRequired;
149 pp.setTopology(polyTopo);
184 if (map().hasMotionPoints())
186 movePoints(map().preMotionPoints());
211 if (!isA<processorFvPatch>(fvp))
213 Info<<
"2 --- patch:" << fvp.patch().name()
214 <<
" area:" <<
gSum(fvp.magSf()) <<
endl;
int debug
Static debugging option.
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Defines the attributes of an object for which implicit objectRegistry management is supported,...
T returnReduce(const T &Value, const BinaryOp &bop, const int tag=Pstream::msgType(), const label comm=UPstream::worldComm)
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
autoPtr< mapPolyMesh > changeMesh(polyMesh &mesh, const bool inflate, const bool syncParallel=true, const bool orderCells=false, const bool orderPoints=false)
Inplace changes mesh without change of patches.
Direct mesh changes based on v1.3 polyTopoChange syntax.
Abstract base class for geometry and/or topology changing fvMesh.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Type gSum(const FieldField< Field, Type > &f)
void reduce(const List< UPstream::commsStruct > &comms, T &Value, const BinaryOp &bop, const int tag, const label comm)
messageStream Info
Information stream (uses stdout - output is on the master only)
A patch is a list of labels that address the faces in the global face list.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Macros for easy insertion into run-time selection tables.
bool movePoints()
Do what is necessary if the mesh has moved.
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate(const GeometricField< Type, fvPatchField, volMesh > &tvf, const surfaceScalarField &faceFlux, Istream &schemeData)
Interpolate field onto faces using scheme given by Istream.
const motionSolver & motion() const
Return the motionSolver.
void correctBoundaryConditions()
Correct boundary field.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Virtual base class for mesh motion solver.
#define DebugInfo
Report an information message using Foam::Info.
virtual bool update()
Update the mesh for both mesh motion and topology change.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface....
defineTypeNameAndDebug(combustionModel, 0)
void movePoints(const pointField &newPoints)
Move all points. Incompatible with other topology changes.