55 volumeCell_(
mesh.V()),
69 volumeDual_[triIs[0]] += v;
70 volumeDual_[triIs[1]] += v;
71 volumeDual_[triIs[2]] += v;
91 volumeCell_(am.volumeCell_),
92 volumeDual_(am.volumeDual_),
110 this->mesh_.globalData().syncPointData
131 dataCell_[tetIs.
cell()] +=
133 / (0.25*volumeCell_[tetIs.
cell()]);
135 for(
label i = 0; i < 3; i ++)
137 dataDual_[triIs[i]] +=
139 / (0.25*volumeDual_[triIs[i]]);
179 this->mesh_.points()[triIs[0]] - this->mesh_.C()[celli],
180 this->mesh_.points()[triIs[1]] - this->mesh_.C()[celli],
181 this->mesh_.points()[triIs[2]] - this->mesh_.C()[celli]
186 const vector t( -
T.T().x() -
T.T().y() -
T.T().z());
195 const Type
s(dataCell_[celli]);
197 return (
T &
S) + (t*
s);
#define forAll(list, i)
Loop across all elements in list.
Base class for lagrangian averaging methods.
const fvMesh & mesh_
The mesh on which the averaging is to be done.
virtual void average()
Calculate the average.
outerProduct< vector, Type >::type GradType
Protected typedefs.
Dual-mesh lagrangian averaging procedure.
tmp< Field< Type > > primitiveField() const
Return an internal field of the average.
Dual(const IOobject &io, const dictionary &dict, const fvMesh &mesh)
Constructors.
Type interpolate(const barycentric &coordinates, const tetIndices &tetIs) const
Interpolate.
GradType interpolateGrad(const barycentric &coordinates, const tetIndices &tetIs) const
Interpolate gradient.
virtual ~Dual()
Destructor.
void add(const barycentric &coordinates, const tetIndices &tetIs, const Type &value)
Member Functions.
void average()
Calculate the average.
AveragingMethod< Type >::GradType GradType
Gradient type.
Pre-declare SubField and related Field type.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
label size() const
Return the number of elements in the UPtrList.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A list of keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
Mesh data needed to do the Finite Volume discretisation.
const volVectorField & C() const
Return cell centres.
void syncPointData(List< Type > &pointData, const CombineOp &cop, const TransformOp &top) const
Helper to synchronise coupled patch point data.
static List< tetIndices > cellTetIndices(const polyMesh &mesh, label cI)
Return the tet decomposition of the given cell, see.
const globalMeshData & globalData() const
Return parallel info.
Storage and named access for the indices of a tet which is part of the decomposition of a cell.
label cell() const
Return the cell.
triFace faceTriIs(const polyMesh &mesh) const
Return the indices corresponding to the tri on the face for.
tetPointRef tet(const polyMesh &mesh, const pointField &meshPoints, const pointField &cellCentres) const
Return the geometry corresponding to this tet and the given.
scalar mag() const
Return volume.
A class for managing temporary objects.
A triangular face using a FixedList of labels corresponding to mesh vertices.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
gmvFile<< "tracers "<< particles.size()<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().x()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().y()<< " ";}gmvFile<< nl;forAllConstIter(lagrangian::Cloud< passiveParticle >, particles, iter){ gmvFile<< iter().position().z()<< " ";}gmvFile<< nl;forAll(lagrangianScalarNames, i){ word name=lagrangianScalarNames[i];IOField< scalar > s(IOobject(name, runTime.name(), lagrangian::cloud::prefix, mesh, IOobject::MUST_READ, IOobject::NO_WRITE))
tmp< fvMatrix< Type > > S(const Pair< tmp< volScalarField::Internal >> &, const VolField< Type > &)
barycentric coordinates(const polyMesh &mesh, const point &position, const label celli, const label facei, const label faceTrii, const scalar stepFraction)
Return the coordinates given the position and tet topology.
List< label > labelList
A List of labels.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void T(LagrangianPatchField< Type > &f, const LagrangianPatchField< Type > &f1)
void inv(LagrangianPatchField< tensor > &f, const LagrangianPatchField< tensor > &f1)