Go to the documentation of this file.
44 laplacianMotionSolver,
60 if (isA<fixedValueFvPatchVectorField>(bField))
75 Foam::laplacianMotionSolver::laplacianMotionSolver
95 fixedValuePointPatchVectorField::typeName
109 pointMotionU_.boundaryField().types()
113 coeffDict().found(
"interpolation")
117 nIters_(this->coeffDict().get<label>(
"iters")),
118 tolerance_(this->coeffDict().get<scalar>(
"tolerance"))
126 interpolationPtr_->interpolate
134 fvMesh_.points() + pointMotionU_.internalField()
137 twoDCorrectPoints(tcurPoints.ref());
145 setBoundaryConditions();
148 for (label iter = 0; iter < nIters_; ++iter)
150 Info<<
"Iteration " << iter <<
endl;
156 scalar residual =
mag(dEqn.
solve().initialResidual());
159 fvMesh_.time().printExecutionTime(
Info);
162 if (residual < tolerance_)
164 Info<<
"\n***Reached mesh movement convergence limit at"
165 <<
" iteration " << iter <<
"***\n\n";
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
virtual const pointField & points() const
Return raw points.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
virtual tmp< pointField > curPoints() const
Return point location obtained from the current motion field.
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
Dimensionless.
A class for managing temporary objects.
static constexpr const zero Zero
Global zero (0)
static const pointMesh & New(const polyMesh &mesh, Args &&... args)
Get existing or create a new MeshObject.
static word timeName(const scalar t, const int precision=precision_)
volVectorField cellMotionU_
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
Ostream & endl(Ostream &os)
Add newline and flush stream.
Mesh consisting of general polyhedral cells.
#define forAll(list, i)
Loop across all elements in list.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.
Base class for fvMesh based motionSolvers.
virtual void solve()
Solve for motion.
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.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
const cellModel * lookup(const word &modelName)
Deprecated(2017-11) equivalent to cellModel::ptr static method.
Calculate the matrix for the laplacian of the field.
virtual void updateMesh(const mapPolyMesh &)
Update the mesh corresponding to given map.
Macros for easy insertion into run-time selection tables.
pointVectorField pointMotionU_
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
Base class for interpolation of cell displacement fields, generated by fvMotionSolvers,...
void setBoundaryConditions()
Set boundary conditions of cellMotionU based on pointMotionU.
Virtual base class for mesh motion solver.
const std::string patch
OpenFOAM patch number as a std::string.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
A special matrix type and solver, designed for finite volume solutions of scalar equations....
SolverPerformance< Type > solve(const dictionary &)
Solve returning the solution statistics.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
const Time & time() const
Return the top-level database.
static autoPtr< motionInterpolation > New(const fvMesh &mesh)
Select default.
defineTypeNameAndDebug(combustionModel, 0)
virtual void movePoints(const pointField &)
Update local data for geometry changes.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
const fvMesh & fvMesh_
The fvMesh to be moved.