84 template<
class ScaleType>
128 template<
class Container>
131 typename Container::value_type nResult =
136 nResult += xs[
is_[i]];
146 template<
class Container>
151 typename Container::value_type nResult =
178 const scalar isoAlpha,
222 const scalar isoAlpha
325 FaceValues<point>(
f, ps),
327 std::make_tuple(FaceValues<Type>(
f, pPsis)),
328 std::make_tuple(fPsiAvg)
335 std::get<0>(result.second())
346 const Field<Type>& pPsis
353 OpIndirectAverage(
f)(ps),
354 OpIndirectAverage(
f)(pPsis),
368 const Field<Type>& pPsis
374 FaceValues<point>(
f, ps),
376 std::make_tuple(FaceValues<Type>(
f, pPsis)),
377 std::make_tuple(fPsiAvg)
384 std::get<0>(result.second())
394 const Field<Type>& pPsis
401 OpIndirectAverage(
f)(ps),
402 OpIndirectAverage(
f)(pPsis),
416 const scalar isoAlpha,
447 const scalar isoAlpha,
452 faceCutAreaIntegral<Type>
456 std::make_tuple(fPsi),
459 std::forward_as_tuple(pPsis),
469 std::get<0>(result.second())
530 cellVolumeIntegral<Type>
535 std::make_tuple(cPsiAvg),
538 std::forward_as_tuple(fPsis)
545 std::get<0>(result.second())
554 const cellEdgeAddressing& cAddr,
557 const Field<Type>& fPsis
565 OpIndirectAverage(
c)(fCentres),
566 OpIndirectAverage(
c)(fPsis),
578 const scalar cVolume,
586 const scalar isoAlpha,
618 const scalar cVolume,
630 const scalar isoAlpha,
640 std::make_tuple(cPsi),
645 std::forward_as_tuple(fPsis),
647 std::forward_as_tuple(fCutPsis),
649 std::forward_as_tuple(pPsis),
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
A 2-tuple for storing two objects of different types.
label size() const
Return the number of elements in the UList.
A cell is defined as a list of faces with extra functionality.
A face is a list of labels corresponding to mesh vertices.
Traits class for primitives.
volVectorField vectorField(fieldObject, mesh)
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))
const dimensionedScalar c
Speed of light in a vacuum.
Tuple2< vector, std::tuple< AreaIntegralType< Types > ... > > faceAreaIntegral(const FaceValues< point > &fPs, const point &fPAvg, const std::tuple< FaceValues< Types > ... > &fPsis, const std::tuple< Types ... > &fPsiAvgs)
Compute the face-area and face-area-integrals of the given properties.
Tuple2< vector, std::tuple< AreaIntegralType< Types > ... > > faceCutAreaIntegral(const face &f, const vector &fArea, const std::tuple< Types ... > &fPsis, const List< labelPair > &fCuts, const pointField &ps, const std::tuple< const Field< Types > &... > &pPsis, const scalarField &pAlphas, const scalar isoAlpha, const bool below)
Compute the face-cut-area and face-cut-area-integral of the given properties.
scalar cellVolume(const cell &c, const cellEdgeAddressing &cAddr, const point &cPAvg, const vectorField &fAreas, const pointField &fCentres)
Compute the cell-volume.
vector faceCutArea(const face &f, const vector &fArea, const List< labelPair > &fCuts, const pointField &ps, const scalarField &pAlphas, const scalar isoAlpha, const bool below)
Compute the face-cut-area.
Tuple2< scalar, std::tuple< Types ... > > cellCutVolumeIntegral(const cell &c, const cellEdgeAddressing &cAddr, const scalar cVolume, const std::tuple< Types ... > &cPsis, const labelListList &cCuts, const faceUList &fs, const vectorField &fAreas, const pointField &fCentres, const std::tuple< const Field< Types > &... > &fPsis, const vectorField &fCutAreas, const std::tuple< const Field< Types > &... > &fCutPsis, const pointField &ps, const std::tuple< const Field< Types > &... > &pPsis, const scalarField &pAlphas, const scalar isoAlpha, const bool below)
Compute the cell-cut-volume and cell-cut-volume-integral.
Tuple2< scalar, std::tuple< Types ... > > cellVolumeIntegral(const cell &c, const cellEdgeAddressing &cAddr, const point &cPAvg, const std::tuple< Types ... > &cPsiAvgs, const vectorField &fAreas, const pointField &fCentres, const std::tuple< const Field< Types > &... > &fPsis)
Compute the cell-volume and cell-volume-integrals of the given properties.
Tuple2< vector, std::tuple< Types ... > > faceAreaAverage(const FaceValues< point > &fPs, const point &fPAvg, const std::tuple< FaceValues< Types > ... > &fPsis, const std::tuple< Types ... > &fPsiAvgs)
Compute the face-area and face-area-averages of the given properties.
vector faceArea(const face &f, const point &fPAvg, const pointField &ps)
Compute the face-area.
scalar cellCutVolume(const cell &c, const cellEdgeAddressing &cAddr, const scalar cVolume, const labelListList &cCuts, const faceUList &fs, const vectorField &fAreas, const pointField &fCentres, const vectorField &fCutAreas, const pointField &ps, const scalarField &pAlphas, const scalar isoAlpha, const bool below)
Compute the cell-cut-volume.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
vectorField pointField
pointField is a vectorField.
vector point
Point is a vector.
auto operator()(const Type &a, const Type &b) const
void operator()(Type &x) const
auto operator()(const Type &x) const
auto operator()(const Field< Type > &pPsis) const
OpCellCutValues(const cell &c, const cellEdgeAddressing &cAddr, const labelListList &cCuts, const faceList &fs, const scalarField &pAlphas, const scalar isoAlpha)
const labelListList & cCuts_
const cellEdgeAddressing & cAddr_
const scalarField & pAlphas_
auto operator()(const Type &x) const
auto operator()(const Field< Type > &pPsis) const
const List< labelPair > & fCuts_
OpFaceCutValues(const face &f, const List< labelPair > &fCuts, const scalarField &pAlphas, const scalar isoAlpha, const bool below)
const scalarField & pAlphas_
const Type & operator()(const List< Type > &xs) const
OpIndirectAverage(const labelUList &is)
auto operator()(const Container &xs) const
auto operator()(const Container &xs) const
auto operator()(const Type &x) const
OpPreInner(const vector &v)
auto operator()(const Type &x) const
OpScaled(const ScaleType &s)
auto operator()(const Type &x) const