65 if (isA<fixedValuePointPatchVectorField>(pointBCs))
68 refCast<fixedValuePointPatchVectorField>(pointBCs);
69 fixedValueBCs == fixedValueBCs/scalar(
nSteps_);
81 if (isA<fixedValueFvPatchVectorField>(bField))
122 fixedValuePointPatchVectorField::typeName
136 pointMotionU_.boundaryField().types()
140 coeffDict().
found(
"interpolation")
156 zeroGradientFvPatchScalarField::typeName
158 exponent_(this->coeffDict().get<scalar>(
"exponent")),
159 nSteps_(this->coeffDict().get<label>(
"steps")),
160 nIters_(this->coeffDict().get<label>(
"iters")),
161 tolerance_(this->coeffDict().get<scalar>(
"tolerance"))
182 setBoundaryConditions();
185 for (label istep = 0; istep < nSteps_; ++istep)
191 E_.primitiveFieldRef() = 1./
pow(vols, exponent_);
192 E_.correctBoundaryConditions();
194 for (label iter = 0; iter < nIters_; ++iter)
196 Info<<
"Iteration " << iter <<
endl;
197 cellMotionU_.storePrevIter();
205 scalar residual =
mag(dEqn.
solve().initialResidual());
206 cellMotionU_.relax();
209 fvMesh_.time().printExecutionTime(
Info);
212 if (residual < tolerance_)
214 Info<<
"\n***Reached mesh movement convergence limit for step "
216 <<
" iteration " << iter <<
"***\n\n";
222 interpolationPtr_->interpolate(cellMotionU_, pointMotionU_);
225 mesh().
points() + pointMotionU_.primitiveFieldRef()
229 fvMesh_.movePoints(newPoints);
230 fvMesh_.checkMesh(
true);
234 Info<<
" Writing new mesh points " <<
endl;
240 mesh().pointsInstance(),
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
void updateCoeffs()
Update the boundary condition coefficients.
Boundary & boundaryFieldRef(const bool updateAccessTime=true)
Return a reference to the boundary field.
const Boundary & boundaryField() const
Return const-reference to the boundary field.
A primitive field of type <T> with automated input and output.
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh deformation based on the linear elasticity equations. The boundary displacement is set as a boun...
volVectorField cellMotionU_
virtual tmp< pointField > curPoints() const
Return point location. Mesh is actually moved in solve()
label nSteps_
Intermediate steps to solve the PDEs.
void setBoundaryConditions()
Set boundary conditions of cellMotionU based on pointMotionU.
pointVectorField pointMotionU_
virtual void solve()
Solve for motion.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
SolverPerformance< Type > solve(const dictionary &)
Solve returning the solution statistics.
Mesh data needed to do the Finite Volume discretisation.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Base class for interpolation of cell displacement fields, generated by fvMotionSolvers,...
void movePoints()
Update for new mesh geometry.
void updateMesh()
Update for new mesh topology.
Virtual base class for mesh motion solver.
const polyMesh & mesh() const
Return reference to mesh.
Mesh representing a set of points created from polyMesh.
Mesh consisting of general polyhedral cells.
const polyBoundaryMesh & boundaryMesh() const
Return boundary mesh.
virtual const pointField & points() const
Return raw points.
A patch is a list of labels that address the faces in the global face list.
const scalarField & cellVolumes() const
Lookup type of boundary radiation properties.
A class for managing temporary objects.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
A special matrix type and solver, designed for finite volume solutions of scalar equations.
Calculate the divergence of the given field.
Calculate the matrix for the divergence of the given field and flux.
Calculate the matrix for the laplacian of the field.
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
To & refCast(From &r)
Reference type cast template function.
const dimensionSet dimless
Dimensionless.
messageStream Info
Information stream (stdout output on master, null elsewhere)
vectorField pointField
pointField is a vectorField.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
static constexpr const zero Zero
Global zero (0)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
#define forAll(list, i)
Loop across all elements in list.
A non-counting (dummy) refCount.