Go to the documentation of this file.
37 #ifndef dynamicOversetFvMesh_H
38 #define dynamicOversetFvMesh_H
52 class lduPrimitiveProcessorInterface;
53 class GAMGAgglomeration;
114 template<
class GeoField>
122 template<
class GeoField>
148 template<
class GeoField>
226 void active(
const bool f)
const
232 DebugInfo<<
"Switching to extended addressing with nFaces:"
238 DebugInfo<<
"Switching to base addressing with nFaces:"
251 interpolate<scalar>(
psi);
256 interpolate<vector>(
psi);
261 interpolate<sphericalTensor>(
psi);
266 interpolate<symmTensor>(
psi);
271 interpolate<tensor>(
psi);
276 interpolate<volScalarField>(
psi);
281 interpolate<volVectorField>(
psi);
286 interpolate<volSphericalTensorField>(
psi);
291 interpolate<volSymmTensorField>(
psi);
296 interpolate<volTensorField>(
psi);
310 return solve<scalar>(m,
dict);
321 return solve<vector>(m,
dict);
332 return solve<symmTensor>(m,
dict);
343 return solve<tensor>(m,
dict);
361 template<
class GeoField>
366 template<
class GeoField,
class PatchType>
369 typename GeoField::Boundary& bfld,
The class contains the addressing required by the lduMatrix: upper, lower and losort.
labelListList stencilPatches_
Corresponding patches (in above lduPtr) to the stencil.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
TypeName("dynamicOversetFvMesh")
Runtime type information.
static void correctBoundaryConditions(typename GeoField::Boundary &bfld, const bool typeOnly)
Correct boundary conditions of certain type (typeOnly = true)
A class for handling words, derived from Foam::string.
virtual void interpolate(volVectorField &psi) const
Interpolate interpolationCells only.
A bitSet stores bits (elements with only two states) in packed internal format and supports a variety...
Geometric agglomerated algebraic multigrid agglomeration class.
virtual lduInterfacePtrsList interfaces() const
Return a list of pointers for each patch.
A class for managing temporary objects.
virtual bool update()
Update the mesh for both mesh motion and topology change.
labelList reverseFaceMap_
From old to new face labels.
void active(const bool f) const
Enable/disable extended addressing.
void writeAgglomeration(const GAMGAgglomeration &agglom) const
Debug: dump agglomeration.
Ostream & endl(Ostream &os)
Add newline and flush stream.
void interpolate(Field< T > &psi) const
Explicit interpolation of acceptor cells from donor cells.
autoPtr< fvMeshPrimitiveLduAddressing > lduPtr_
Extended addressing (extended with local interpolation stencils)
virtual void interpolate(scalarField &psi) const
Interpolate interpolationCells only. No bcs.
virtual void interpolate(volScalarField &psi) const
Interpolate interpolationCells only.
virtual bool writeObject(IOstreamOption streamOpt, const bool valid) const
Write using stream options.
virtual void interpolate(volSphericalTensorField &psi) const
Interpolate interpolationCells only.
virtual void interpolate(symmTensorField &psi) const
Interpolate interpolationCells only. No bcs.
PtrList< const lduPrimitiveProcessorInterface > remoteStencilInterfaces_
Added (processor)lduInterfaces for remote bits of stencil.
virtual void interpolate(tensorField &psi) const
Interpolate interpolationCells only. No bcs.
virtual const lduAddressing & lduAddr() const
Return ldu addressing.
virtual void interpolate(vectorField &psi) const
Interpolate interpolationCells only. No bcs.
virtual void interpolate(sphericalTensorField &psi) const
Interpolate interpolationCells only. No bcs.
void addInterpolation(fvMatrix< Type > &, const scalarField &norm) const
Add interpolation to matrix (coefficients)
The IOstreamOption is a simple container for options an IOstream can normally have.
Variant of fvMeshLduAddressing that contains addressing instead of slices.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
gmvFile<< "tracers "<< particles.size()<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().x()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().y()<< ' ';}gmvFile<< nl;for(const passiveParticle &p :particles){ gmvFile<< p.position().z()<< ' ';}gmvFile<< nl;for(const word &name :lagrangianScalarNames){ IOField< scalar > fld(IOobject(name, runTime.timeName(), cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
virtual bool interpolateFields()
Update fields when mesh is updated.
virtual ~dynamicOversetFvMesh()
Destructor.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
static void correctCoupledBoundaryConditions(GeoField &fld)
Debug: correct coupled bc.
virtual bool updateAddressing() const
Calculate the extended lduAddressing.
virtual const labelUList & lowerAddr() const
Return lower addressing (i.e. lower label = upper triangle)
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
virtual const lduAddressing & lduAddr() const
Return ldu addressing. If active: is (extended)
lduInterfacePtrsList allInterfaces_
Interfaces for above mesh. Contains both original and.
#define DebugInfo
Report an information message using Foam::Info.
dynamicFvMesh with support for overset meshes.
labelListList stencilFaces_
Corresponding faces (in above lduPtr) to the stencil.
static void checkCoupledBC(const GeoField &fld)
Debug: check halo swap is ok.
virtual const labelUList & lowerAddr() const =0
Return lower addressing.
tmp< scalarField > normalisation(const fvMatrix< Type > &m) const
Freeze values at holes.
bool active_
Select base addressing (false) or locally stored extended.
const fvMeshPrimitiveLduAddressing & primitiveLduAddr() const
Return extended ldu addressing.
void write(Ostream &, const fvMatrix< Type > &, const lduAddressing &, const lduInterfacePtrsList &) const
Debug: print matrix.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
SolverPerformance< Type > solve(fvMatrix< Type > &, const dictionary &) const
Solve given dictionary with settings.
void size(const label n) noexcept
Override size to be inconsistent with allocated storage.
Dynamic mesh able to handle multiple motion solvers. NOTE: If the word entry "solvers" is not found i...
const labelList & reverseFaceMap() const
Return old to new face addressing.
static word baseName(const word &name)
Helper: strip off trailing _0.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
const volScalarField & psi
scalar cellAverage(const labelList &types, const labelList &nbrTypes, const scalarField &norm, const scalarField &nbrNorm, const label celli, bitSet &isFront) const
Average norm of valid neighbours.
bool active() const
Return true if using extended addressing.
virtual void interpolate(volSymmTensorField &psi) const
Interpolate interpolationCells only.
const word & name() const
Return reference to name.
virtual void interpolate(volTensorField &psi) const
Interpolate interpolationCells only.