#include <LookUpData.hh>
|
| LookUpCartesianData (const GridView &gridView, const Dune::CartesianIndexMapper< Grid > &mapper, bool isFieldPropInLgr=false) |
| : Constructor taking a GridView, a CartesianIndexMapper, and a bool More...
|
|
template<class ElementOrIndex , class FieldProperties > |
auto | operator() (const ElementOrIndex &elemIdx, const FieldProperties &fieldProp) const |
| : Get field property for an element in the leaf grid view, from a vector, via Cartesian Index. More...
|
|
std::vector< double > | assignFieldPropsDoubleOnLeaf (const FieldPropsManager &fieldPropsManager, const std::string &propString) const |
| : Get field property of type double from field properties manager by name. More...
|
|
template<typename IntType > |
std::vector< IntType > | assignFieldPropsIntOnLeaf (const FieldPropsManager &fieldPropsManager, const std::string &propString, const bool &needsTranslation, std::function< void(IntType, int)> valueCheck=[](IntType, int){}) const |
| : Get field property of type int from field properties manager by name. More...
|
|
template<typename ElemOrIndex > |
double | fieldPropDouble (const FieldPropsManager &fieldPropsManager, const std::string &propString, const ElemOrIndex &elemOrIndex) const |
| : Get property of type double from field properties manager by name, via element or its index. More...
|
|
template<typename ElemOrIndex > |
int | fieldPropInt (const FieldPropsManager &fieldPropsManager, const std::string &propString, const ElemOrIndex &elemOrIndex) const |
| : Get property of type int from field properties manager by name, via element or its index. More...
|
|
template<class ElementType > |
auto | getFieldPropCartesianIdx (const ElementType &elemIdx) const |
| Calls getFieldPropCartesianIdx<Grid, ElementType>(elemIdx) More...
|
|
template<class GridType , class ElementType > |
auto | getFieldPropCartesianIdx (const ElementType &elemIdx) const |
| Return the cartesian index used to retrieve field properties, depending on whether the grid is a CpGrid or another type of grid (with no LGR). More...
|
|
template<typename IndexType , typename FieldPropType > |
auto | operator() (const IndexType &elementOrIndex, const FieldPropType &fieldProp) const |
| LookUpCartesianData. More...
|
|
template<typename Grid, typename GridView>
class Opm::LookUpCartesianData< Grid, GridView > LookUpCartesianData - To search field properties of leaf grid view elements via CartesianIndex (cartesianMapper)
Instead of using a specialitation for Dune::CpGrid, we implement std::enable_if to overload methods with different definitions: for Dune:CpGrid and for other Grid types. An auxiliary defualt template parameter (GridType = Grid) is added to deal with the dependent names at template instantiation.
◆ LookUpCartesianData()
template<typename Grid , typename GridView >
: Constructor taking a GridView, a CartesianIndexMapper, and a bool
- Parameters
-
[in] | gridView | |
[in] | mapper | Dune::CartesianIndexMapper<Grid>. |
[in] | isFieldPropInLgr | bool: default false (search field property in unrefined grid) true (search field property in refined grid; LGR-id/level required) Currently, isFieldPropInLgr_ == false means that all the field properties are given in the unrefined grid (level 0). |
◆ assignFieldPropsDoubleOnLeaf()
template<typename Grid , typename GridView >
std::vector< double > Opm::LookUpCartesianData< Grid, GridView >::assignFieldPropsDoubleOnLeaf |
( |
const FieldPropsManager & |
fieldPropsManager, |
|
|
const std::string & |
propString |
|
) |
| const |
: Get field property of type double from field properties manager by name.
◆ assignFieldPropsIntOnLeaf()
template<typename Grid , typename GridView >
template<typename IntType >
std::vector< IntType > Opm::LookUpCartesianData< Grid, GridView >::assignFieldPropsIntOnLeaf |
( |
const FieldPropsManager & |
fieldPropsManager, |
|
|
const std::string & |
propString, |
|
|
const bool & |
needsTranslation, |
|
|
std::function< void(IntType, int)> |
valueCheck = [](IntType, int){} |
|
) |
| const |
: Get field property of type int from field properties manager by name.
◆ fieldPropDouble()
template<typename Grid , typename GridView >
template<typename ElemOrIndex >
double Opm::LookUpCartesianData< Grid, GridView >::fieldPropDouble |
( |
const FieldPropsManager & |
fieldPropsManager, |
|
|
const std::string & |
propString, |
|
|
const ElemOrIndex & |
elemOrIndex |
|
) |
| const |
: Get property of type double from field properties manager by name, via element or its index.
◆ fieldPropInt()
template<typename Grid , typename GridView >
template<typename ElemOrIndex >
int Opm::LookUpCartesianData< Grid, GridView >::fieldPropInt |
( |
const FieldPropsManager & |
fieldPropsManager, |
|
|
const std::string & |
propString, |
|
|
const ElemOrIndex & |
elemOrIndex |
|
) |
| const |
: Get property of type int from field properties manager by name, via element or its index.
◆ getFieldPropCartesianIdx() [1/2]
template<typename Grid , typename GridView >
template<class ElementType >
Calls getFieldPropCartesianIdx<Grid, ElementType>(elemIdx)
◆ getFieldPropCartesianIdx() [2/2]
template<typename Grid , typename GridView >
template<typename GridType , typename ElementType >
Return the cartesian index used to retrieve field properties, depending on whether the grid is a CpGrid or another type of grid (with no LGR).
This method determines the correct cartesian index under two main conditions:
- Non-CpGrid: If
GridType is not Dune::CpGrid , the cartesian index is obtained via cartMapper_->cartesianIndex(...) . The function asserts that maxLevel() == 0, i.e., no local grid refinements (LGR).
- CpGrid: For CpGrid, if
isFieldPropInLgr_ is true and the element resides on a refined level (> 0), then its cartesian index is taken from the LGR-level entity. Otherwise, the index is derived from the origin (level 0) entity through cartMapper_ after mapping the underlying entity index.
- Template Parameters
-
GridType | Auxiliary type used to specialize the method for CpGrid vs. other grids. If GridType = Dune::CpGrid , local grid refinements (LGR) are considered; otherwise, LGR is not supported. |
ElementType | the type of the element or index passed in. |
- Parameters
-
elementOrIndex | An integral cell index or a grid entity (EntityType ) used to compute the cartesian index. For CpGrid, if an integral index is passed, the method creates a Dune::cpgrid::Entity on the fly. Otherwise, it uses the provided entity. |
- Returns
- The integer cartesian index to be used for looking up the relevant field properties. For non-CpGrid, it is simply the mapped index via
cartMapper_->cartesianIndex(...) . For CpGrid, it can be the LGR-based cartesian index if isFieldPropInLgr_ and the element is refined, or the origin-based cartesian index otherwise.
- Note
- For non-CpGrid use-cases, the method asserts that
maxLevel() == 0, since local grid refinements are only supported for CpGrid.
◆ operator()() [1/2]
template<typename Grid , typename GridView >
template<class ElementOrIndex , class FieldProperties >
auto Opm::LookUpCartesianData< Grid, GridView >::operator() |
( |
const ElementOrIndex & |
elemIdx, |
|
|
const FieldProperties & |
fieldProp |
|
) |
| const |
: Get field property for an element in the leaf grid view, from a vector, via Cartesian Index.
For general grids, the field property vector is assumed to be given for the gridView_.
For CpGrid, the field property vector is assumed to be given for level 0 when isFieldPropLgr_ == false,
and for certain LGR/level > 0 when isFieldPropLgr_ == true.
- Template Parameters
-
ElementOrIndex | the type of the element or index passed in. |
FieldProperties | the type of the field properties vector. Should be an std::vector like type. |
◆ operator()() [2/2]
template<typename Grid , typename GridView >
template<typename IndexType , typename FieldPropType >
auto Opm::LookUpCartesianData< Grid, GridView >::operator() |
( |
const IndexType & |
elementOrIndex, |
|
|
const FieldPropType & |
fieldProp |
|
) |
| const |
◆ cartMapper_
template<typename Grid , typename GridView >
◆ elemMapper_
template<typename Grid , typename GridView >
◆ gridView_
template<typename Grid , typename GridView >
◆ isFieldPropInLgr_
template<typename Grid , typename GridView >
The documentation for this class was generated from the following file:
|