39 namespace fvMotionSolvers
84 pointDisplacement_.dimensions(),
87 cellMotionBoundaryTypes<
vector>(pointDisplacement_.boundaryField())
89 pointLocation_(nullptr),
116 Info<<
"displacementLaplacian:" <<
nl
117 <<
" diffusivity : " << diffusivityPtr_().type() <<
nl
118 <<
" frozenPoints zone : " << frozenPointsZone_ <<
endl;
134 Info<<
"displacementLaplacian :"
135 <<
" Read pointVectorField "
137 <<
" to be used for boundary conditions on points."
139 <<
"Boundary conditions:"
140 << pointLocation_().boundaryField().types() <<
endl;
167 if (!diffusivityPtr_.valid())
169 diffusivityType_.rewind();
176 return diffusivityPtr_();
187 diffusivity().correct();
188 pointDisplacement_.boundaryFieldRef().updateCoeffs();
194 diffusivity().
operator()(),
196 "laplacian(diffusivity,cellDisplacement)"
206 if (pointLocation_.valid())
210 Info<<
"displacementLaplacian : applying "
211 <<
" boundary conditions on " << pointLocation_().name()
212 <<
" to new point location."
216 pointLocation_().primitiveFieldRef() =
218 + pointDisplacement_.primitiveField();
220 pointLocation_().correctBoundaryConditions();
223 if (frozenPointsZone_ != -1)
229 pointLocation_()[pz[i]] = points0()[pz[i]];
241 points0() + pointDisplacement_.primitiveField()
246 if (frozenPointsZone_ != -1)
252 curPoints[pz[i]] = points0()[pz[i]];
256 twoDCorrectPoints(curPoints);
269 diffusivityPtr_.clear();
279 diffusivityPtr_.clear();
#define forAll(list, i)
Loop across all elements in list.
Macros for easy insertion into run-time selection tables.
static pointMesh & New(const word &name, const polyMesh &mesh)
Construct and return the named DemandDrivenMeshObject.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const word & name() const
Return name.
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Abstract base class for fvMesh movers.
fvMesh & mesh()
Return the fvMesh.
Mesh data needed to do the Finite Volume discretisation.
Base class for fvMesh motion solvers.
Mesh motion solver for an fvMesh. Based on solving the cell-centre Laplacian for the motion displacem...
displacementLaplacian(fvMesh &, const dictionary &)
Construct from fvMesh and dictionary.
virtual void topoChange(const polyTopoChangeMap &)
Update corresponding to the given map.
~displacementLaplacian()
Destructor.
virtual tmp< pointField > newPoints()
Return point location obtained from the current motion field.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map.
motionDiffusivity & diffusivity()
Return reference to the diffusivity field.
Abstract base class for cell-centre mesh motion diffusivity.
static autoPtr< motionDiffusivity > New(const fvMesh &mesh, Istream &mdData)
Select null constructed.
Abstract base class for pointMesh movers.
virtual void topoChange(const polyTopoChangeMap &)
Update local data for topology changes.
virtual void mapMesh(const polyMeshMap &)
Update from another mesh using the given map (not implemented)
Named list of point indices representing a sub-set of the mesh faces.
Class containing mesh-to-mesh mapping information.
Mesh consisting of general polyhedral cells.
const pointZoneList & pointZones() const
Return point zones.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
Templated form of IOobject providing type information for file reading and header type checking.
bool headerOk()
Read header (uses typeGlobalFile to find file) and check.
Template function which returns the un-mangled name of a given type. Useful for types which do not ha...
tmp< PointField< Type > > interpolate(const VolField< Type > &) const
Interpolate volField using inverse distance weighting.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
Calculate the matrix for the laplacian of the field.
defineTypeNameAndDebug(displacementLaplacian, 0)
addToRunTimeSelectionTable(fvMeshMover, displacementLaplacian, fvMesh)
tmp< fvMatrix< Type > > laplacian(const VolField< Type > &vf, const word &name)
const unitSet & lookup(const word &unitName)
Lookup and return the named unit from the table.
Ostream & endl(Ostream &os)
Add newline and flush stream.
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
label findIndex(const ListType &, typename ListType::const_reference, const label start=0)
Find first occurrence of given element and return index,.
tmp< DimensionedField< TypeR, GeoMesh, Field > > New(const tmp< DimensionedField< TypeR, GeoMesh, Field >> &tdf1, const word &name, const dimensionSet &dimensions)
SolverPerformance< Type > solve(fvMatrix< Type > &, const word &)
Solve returning the solution statistics given convergence tolerance.
conserve primitiveFieldRef()+