Go to the documentation of this file.
37 #include "surfaceInterpolate.H"
49 dynamicMotionSolverFvMeshAMI,
55 dynamicMotionSolverFvMeshAMI,
63 Foam::dynamicMotionSolverFvMeshAMI::dynamicMotionSolverFvMeshAMI
90 Foam::dynamicMotionSolverFvMeshAMI::dynamicMotionSolverFvMeshAMI
106 std::move(allNeighbour),
131 if (!isA<processorFvPatch>(fvp))
133 Info<<
"1 --- patch:" << fvp.patch().name()
134 <<
" area:" <<
gSum(fvp.magSf()) <<
endl;
139 pointField newPoints(motionPtr_->curPoints());
144 bool changeRequired =
false;
145 for (label patchi = 0; patchi < pbm.nNonProcessor(); ++patchi)
150 <<
"pre-topology change: patch " << pp.
name()
174 pp.setTopology(polyTopo);
209 if (map().hasMotionPoints())
211 movePoints(map().preMotionPoints());
236 if (!isA<processorFvPatch>(fvp))
238 Info<<
"2 --- patch:" << fvp.patch().name()
239 <<
" area:" <<
gSum(fvp.magSf()) <<
endl;
int debug
Static debugging option.
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
static autoPtr< motionSolver > New(const polyMesh &)
Select constructed from polyMesh.
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.
virtual bool changeTopology() const
Direct mesh changes based on v1.3 polyTopoChange syntax.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
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 (stdout output on master, null elsewhere)
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.
autoPtr< mapPolyMesh > changeMesh(polyMesh &mesh, const labelUList &patchMap, const bool inflate, const bool syncParallel=true, const bool orderCells=false, const bool orderPoints=false)
Inplace changes mesh without change of patches.
Macros for easy insertion into run-time selection tables.
virtual 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.
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.
const vectorField::subField faceAreas() const
Return face normals.
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....
const word & name() const noexcept
The patch name.
defineTypeNameAndDebug(combustionModel, 0)
void movePoints(const pointField &newPoints)
Move all points. Incompatible with other topology changes.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.