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());
141 polyBoundaryMesh&
pbm =
const_cast<polyBoundaryMesh&
>(boundaryMesh());
144 bool changeRequired =
false;
147 const polyPatch&
pp =
pbm[patchi];
150 <<
"pre-topology change: patch " <<
pp.name()
155 changeRequired =
pp.changeTopology() || changeRequired;
160 polyTopoChange polyTopo(*
this);
163 polyTopo.movePoints(newPoints);
170 for (polyPatch&
pp :
pbm)
172 pp.setTopology(polyTopo);
183 autoPtr<mapPolyMesh> map =
207 if (map().hasMotionPoints())
209 movePoints(map().preMotionPoints());
232 for (
const fvPatch& fvp :
boundary())
234 if (!isA<processorFvPatch>(fvp))
236 Info<<
"2 --- patch:" << fvp.patch().name()
237 <<
" area:" <<
gSum(fvp.magSf()) <<
endl;
const Field< point_type > & faceAreas() const
Return face area vectors for patch.
const polyBoundaryMesh & pbm
virtual bool update()
Update the mesh for both mesh motion and topology change.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
GeometricField< vector, fvsPatchField, surfaceMesh > surfaceVectorField
Ostream & endl(Ostream &os)
Add newline and flush stream.
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
virtual bool movePoints()
Do what is necessary if the mesh has moved.
Virtual base class for mesh motion solver.
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
static autoPtr< motionSolver > New(const polyMesh &)
Select constructed from polyMesh.
GeometricField< vector, fvPatchField, volMesh > volVectorField
T returnReduce(const T &value, const BinaryOp &bop, const int tag=UPstream::msgType(), const label comm=UPstream::worldComm)
Perform reduction on a copy, using specified binary operation.
const motionSolver & motion() const
Return the motionSolver.
Macros for easy insertion into run-time selection tables.
vectorField pointField
pointField is a vectorField.
Type gSum(const FieldField< Field, Type > &f)
#define DebugInfo
Report an information message using Foam::Info.
int debug
Static debugging option.
defineTypeNameAndDebug(combustionModel, 0)
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.
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Abstract base class for geometry and/or topology changing fvMesh.
void correctBoundaryConditions()
Correct boundary field.
messageStream Info
Information stream (stdout output on master, null elsewhere)
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
label nNonProcessor() const
The number of patches before the first processor patch.
bool returnReduceOr(const bool value, const label comm=UPstream::worldComm)
Perform logical (or) MPI Allreduce on a copy. Uses UPstream::reduceOr.
Defines the attributes of an object for which implicit objectRegistry management is supported...
virtual bool init(const bool doInit)
Initialise all non-demand-driven data.
uindirectPrimitivePatch pp(UIndirectList< face >(mesh.faces(), faceLabels), mesh.points())