Dual< Type > Class Template Reference

Dual-mesh lagrangian averaging procedure. More...

Inheritance diagram for Dual< Type >:
[legend]
Collaboration diagram for Dual< Type >:
[legend]

Public Types

typedef AveragingMethod< Type >::TypeGrad TypeGrad
 Public typedefs. More...
 

Public Member Functions

 TypeName ("dual")
 Runtime type information. More...
 
 Dual (const IOobject &io, const dictionary &dict, const fvMesh &mesh)
 Constructors. More...
 
 Dual (const Dual< Type > &am)
 Construct a copy. More...
 
virtual autoPtr< AveragingMethod< Type > > clone () const
 Construct and return a clone. More...
 
virtual ~Dual ()=default
 Destructor. More...
 
void add (const barycentric &coordinates, const tetIndices &tetIs, const Type &value)
 Member Functions. More...
 
Type interpolate (const barycentric &coordinates, const tetIndices &tetIs) const
 Interpolate. More...
 
TypeGrad interpolateGrad (const barycentric &coordinates, const tetIndices &tetIs) const
 Interpolate gradient. More...
 
void average ()
 Calculate the average. More...
 
void average (const AveragingMethod< scalar > &weight)
 
tmp< Field< Type > > primitiveField () const
 Return an internal field of the average. More...
 
tmp< Field< TypeGrad > > internalFieldGrad () const
 Return an internal field of the gradient. More...
 
- Public Member Functions inherited from AveragingMethod< Type >
 TypeName ("averagingMethod")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, AveragingMethod, dictionary,(const IOobject &io, const dictionary &dict, const fvMesh &mesh),(io, dict, mesh))
 Declare runtime constructor selection table. More...
 
 AveragingMethod (const IOobject &io, const dictionary &dict, const fvMesh &mesh, const labelList &size)
 Constructors. More...
 
 AveragingMethod (const AveragingMethod< Type > &am)
 Construct a copy. More...
 
virtual ~AveragingMethod ()=default
 Destructor. More...
 
virtual bool writeData (Ostream &) const
 Dummy write. More...
 
virtual bool write (const bool valid=true) const
 Write using setting from DB. More...
 
void operator= (const AveragingMethod< Type > &x)
 Assign to another average. More...
 
void operator= (const Type &x)
 Assign to value. More...
 
void operator= (tmp< FieldField< Field, Type >> x)
 Assign to tmp. More...
 
void operator+= (tmp< FieldField< Field, Type >> x)
 Add-equal tmp. More...
 
void operator*= (tmp< FieldField< Field, Type >> x)
 Multiply-equal tmp. More...
 
void operator/= (tmp< FieldField< Field, scalar >> x)
 Divide-equal tmp. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from AveragingMethod< Type >
static autoPtr< AveragingMethod< Type > > New (const IOobject &io, const dictionary &dict, const fvMesh &mesh)
 Selector. More...
 
- Protected Types inherited from AveragingMethod< Type >
typedef outerProduct< vector, Type >::type TypeGrad
 Protected typedefs. More...
 
- Protected Member Functions inherited from AveragingMethod< Type >
virtual void updateGrad ()
 Protected member functions. More...
 
- Protected Attributes inherited from AveragingMethod< Type >
const dictionarydict_
 Protected data. More...
 
const fvMeshmesh_
 The mesh on which the averaging is to be done. More...
 

Detailed Description

template<class Type>
class Foam::AveragingMethods::Dual< Type >

Dual-mesh lagrangian averaging procedure.

Point values are summed using the tetrahedral decomposition of the computational cells. Summation is done in the cells, and also in the terahedrons surrounding each point. The latter forms a type of dual mesh. The interpolation is weighted by proximity to the cell centre or point, as calculated by the barycentric coordinate within the tethrahedron.

Values are interpolated linearly across the tethrahedron. Gradients are calculated directly from the point values using a first order finite element basis. The computed gradient is assumed constant over the tethrahedron.

Source files

Definition at line 69 of file Dual.H.

Member Typedef Documentation

◆ TypeGrad

Public typedefs.

Gradient type

Definition at line 78 of file Dual.H.

Constructor & Destructor Documentation

◆ Dual() [1/2]

Dual ( const IOobject io,
const dictionary dict,
const fvMesh mesh 
)

Constructors.

Construct from components

Definition at line 47 of file Dual.C.

References tetIndices::faceTriIs(), forAll, tetrahedron< Point, PointRef >::mag(), mesh, and tetIndices::tet().

Here is the call graph for this function:

◆ Dual() [2/2]

Dual ( const Dual< Type > &  am)

Construct a copy.

Definition at line 85 of file Dual.C.

◆ ~Dual()

virtual ~Dual ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "dual"  )

Runtime type information.

◆ clone()

virtual autoPtr<AveragingMethod<Type> > clone ( ) const
inlinevirtual

Construct and return a clone.

Implements AveragingMethod< Type >.

Definition at line 128 of file Dual.H.

◆ add()

void add ( const barycentric coordinates,
const tetIndices tetIs,
const Type &  value 
)
virtual

Member Functions.

Add point value to interpolation

Implements AveragingMethod< Type >.

Definition at line 115 of file Dual.C.

References tetIndices::cell(), coordinates(), and tetIndices::faceTriIs().

Here is the call graph for this function:

◆ interpolate()

Type interpolate ( const barycentric coordinates,
const tetIndices tetIs 
) const
virtual

Interpolate.

Implements AveragingMethod< Type >.

Definition at line 138 of file Dual.C.

References tetIndices::cell(), coordinates(), and tetIndices::faceTriIs().

Here is the call graph for this function:

◆ interpolateGrad()

Foam::AveragingMethods::Dual< Type >::TypeGrad interpolateGrad ( const barycentric coordinates,
const tetIndices tetIs 
) const
virtual

Interpolate gradient.

Implements AveragingMethod< Type >.

Definition at line 156 of file Dual.C.

References tetIndices::cell(), tetIndices::faceTriIs(), Foam::inv(), s, and T.

Here is the call graph for this function:

◆ average() [1/2]

void average ( )
virtual

Calculate the average.

Reimplemented from AveragingMethod< Type >.

Definition at line 194 of file Dual.C.

References Foam::fac::average().

Here is the call graph for this function:

◆ average() [2/2]

void average ( const AveragingMethod< scalar > &  weight)
virtual

Reimplemented from AveragingMethod< Type >.

Definition at line 204 of file Dual.C.

References Foam::fac::average().

Here is the call graph for this function:

◆ primitiveField()

Foam::tmp< Foam::Field< Type > > primitiveField ( ) const
virtual

Return an internal field of the average.

Implements AveragingMethod< Type >.

Definition at line 216 of file Dual.C.

◆ internalFieldGrad()

tmp<Field<TypeGrad> > internalFieldGrad ( ) const

Return an internal field of the gradient.


The documentation for this class was generated from the following files: