46 laplacianMotionSolver,
54 Foam::laplacianMotionSolver::laplacianMotionSolver
74 fixedValuePointPatchVectorField::typeName
88 pointMotionU_.boundaryField().types()
92 coeffDict().
found(
"interpolation")
100 nIters_(this->coeffDict().
get<label>(
"iters")),
101 tolerance_(this->coeffDict().
get<scalar>(
"tolerance"))
136 diffusivityPtr_->correct();
139 for (label iter = 0; iter < nIters_; ++iter)
141 Info<<
"Iteration " << iter <<
endl;
147 * diffusivityPtr_->operator()(),
149 "laplacian(diffusivity,cellMotionU)" 153 scalar residual =
mag(dEqn.solve().initialResidual());
156 fvMesh_.time().printExecutionTime(
Info);
159 if (residual < tolerance_)
161 Info<<
"\n***Reached mesh movement convergence limit at" 162 <<
" iteration " << iter <<
"***\n\n";
171 pointMotionU_.boundaryFieldRef().updateCoeffs();
172 auto& cellMotionUbf = cellMotionU_.boundaryFieldRef();
174 forAll(cellMotionU_.boundaryField(), pI)
177 if (isA<fixedValueFvPatchVectorField>(bField))
180 const polyPatch&
patch = fvMesh_.boundaryMesh()[pI];
200 diffusivityPtr_.reset(
nullptr);
204 coeffDict().
lookup(
"diffusivity")
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
fvPatchField< vector > fvPatchVectorField
const Internal::FieldType & primitiveField() const noexcept
Return a const-reference to the internal field values.
virtual void movePoints(const pointField &)
Update local data for geometry changes.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const dimensionSet dimViscosity
Ostream & endl(Ostream &os)
Add newline and flush stream.
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 void solve()
Solve for motion.
Calculate the matrix for the laplacian of the field.
Virtual base class for mesh motion solver.
const fvMesh & fvMesh_
The fvMesh to be moved.
const dimensionSet dimless
Dimensionless.
Lookup type of boundary radiation properties.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Macros for easy insertion into run-time selection tables.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
virtual const pointField & points() const
Return raw points.
volVectorField cellMotionU_
Mesh representing a set of points created from polyMesh.
#define forAll(list, i)
Loop across all elements in list.
pointVectorField pointMotionU_
Base class for fvMesh based motionSolvers.
vectorField pointField
pointField is a vectorField.
autoPtr< motionInterpolation > interpolationPtr_
Interpolation used to transfer cell displacement to the points.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
Abstract base class for cell-centre mesh motion diffusivity.
virtual void updateMesh(const mapPolyMesh &)
Update the mesh corresponding to given map.
Base class for interpolation of cell displacement fields, generated by fvMotionSolvers, to the points. This base class implements the default method which applies volPointInterpolation only.
defineTypeNameAndDebug(combustionModel, 0)
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field values.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
virtual tmp< pointField > curPoints() const
Return point location obtained from the current motion field.
const std::string patch
OpenFOAM patch number as a std::string.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Mesh consisting of general polyhedral cells.
void setBoundaryConditions()
Set boundary conditions of cellMotionU based on pointMotionU.
A class for managing temporary objects.
static autoPtr< motionDiffusivity > New(const fvMesh &mesh, Istream &mdData)
Select null constructed.
Defines the attributes of an object for which implicit objectRegistry management is supported...
virtual void twoDCorrectPoints(pointField &) const
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)
static constexpr const zero Zero
Global zero (0)