Dual-mesh lagrangian averaging procedure. More...
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 () |
Destructor. More... | |
void | add (const point position, const tetIndices &tetIs, const Type &value) |
Member Functions. More... | |
Type | interpolate (const point position, const tetIndices &tetIs) const |
Interpolate. More... | |
TypeGrad | interpolateGrad (const point position, const tetIndices &tetIs) const |
Interpolate gradient. More... | |
void | average () |
Calculate the average. More... | |
void | average (const AveragingMethod< scalar > &weight) |
tmp< Field< Type > > | internalField () const |
Return an internal field of the average. More... | |
tmp< Field< TypeGrad > > | internalFieldGrad () const |
Return an internal field of the gradient. More... | |
![]() | |
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 autoPtr< AveragingMethod< Type > > | clone () const=0 |
Construct and return a clone. More... | |
virtual | ~AveragingMethod () |
Destructor. More... | |
virtual bool | writeData (Ostream &) const |
Dummy write. More... | |
virtual bool | write () const |
Write using setting from DB. More... | |
virtual tmp< Field< Type > > | internalField () const=0 |
Return an internal field of the average. 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... | |
Private Member Functions | |
void | tetGeometry (const point position, const tetIndices &tetIs) const |
Private member functions. More... | |
void | syncDualData () |
Sync point data over processor boundaries. More... | |
Static Private Member Functions | |
static autoPtr< labelList > | size (const fvMesh &mesh) |
Private static member functions. More... | |
Private Attributes | |
const Field< scalar > & | volumeCell_ |
Private data. More... | |
Field< scalar > | volumeDual_ |
Volume of the point-centered regions. More... | |
Field< Type > & | dataCell_ |
Data on the cells. More... | |
Field< Type > & | dataDual_ |
Data on the points. More... | |
List< label > | tetVertices_ |
Tet vertex labels. More... | |
List< scalar > | tetCoordinates_ |
Tet barycentric coordinates. More... | |
Additional Inherited Members | |
![]() | |
static autoPtr< AveragingMethod< Type > > | New (const IOobject &io, const dictionary &dict, const fvMesh &mesh) |
Selector. More... | |
![]() | |
typedef outerProduct< vector, Type >::type | TypeGrad |
Protected typedefs. More... | |
![]() | |
virtual void | updateGrad () |
Protected member functions. More... | |
![]() | |
const dictionary & | dict_ |
Protected data. More... | |
const fvMesh & | mesh_ |
The mesh on which the averaging is to be done. More... | |
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.
typedef AveragingMethod<Type>::TypeGrad TypeGrad |
Dual | ( | const IOobject & | io, |
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Constructors.
Construct from components
Definition at line 48 of file Dual.C.
References f(), tetIndices::face(), tetIndices::faceBasePt(), tetIndices::facePtA(), tetIndices::facePtB(), forAll, tetrahedron::mag(), mesh, and tetIndices::tet().
|
staticprivate |
Private static member functions.
Return the size of the FieldField parts
Definition at line 33 of file Dual.C.
|
private |
Private member functions.
Calculate indices and barycentric coordinates within a tetrahedron
Definition at line 113 of file Dual.C.
References tetrahedron::barycentric(), f(), tetIndices::face(), tetIndices::faceBasePt(), tetIndices::facePtA(), tetIndices::facePtB(), Foam::max(), and tetIndices::tet().
|
private |
TypeName | ( | "dual" | ) |
Runtime type information.
|
inlinevirtual |
|
virtual |
Member Functions.
Add point value to interpolation
Implements AveragingMethod< Type >.
Definition at line 146 of file Dual.C.
References tetIndices::cell().
|
virtual |
Interpolate.
Implements AveragingMethod< Type >.
Definition at line 169 of file Dual.C.
References tetIndices::cell().
|
virtual |
Interpolate gradient.
Implements AveragingMethod< Type >.
Definition at line 187 of file Dual.C.
References tetIndices::cell(), Foam::inv(), s(), and T.
|
virtual |
Calculate the average.
Reimplemented from AveragingMethod< Type >.
Definition at line 225 of file Dual.C.
References Foam::fvc::average().
|
virtual |
Reimplemented from AveragingMethod< Type >.
Definition at line 235 of file Dual.C.
References Foam::fvc::average().
Foam::tmp< Foam::Field< Type > > internalField |
|
private |
|
private |
|
mutableprivate |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.