This class calculates gradients of arbitrary quantities at flux integration points for the vertex centered finite volume (VCFV) discretization.
More...
#include <vcfvgradientcalculator.hh>
|
template<bool prepareValues = true, bool prepareGradients = true> |
void | prepare (const ElementContext &elemCtx, int timeIdx) |
| Precomputes the common values to calculate gradients and values of quantities at any flux approximation point. More...
|
|
template<class QuantityCallback , class Dummy = int> |
auto | calculateValue (const ElementContext &elemCtx, typename std::enable_if<!GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type fapIdx, const QuantityCallback &quantityCallback) const -> typename std::remove_reference< typename QuantityCallback::ResultType >::type |
| Calculates the value of an arbitrary quantity at any interior flux approximation point. More...
|
|
template<class QuantityCallback , class Dummy = int> |
auto | calculateValue (const ElementContext &elemCtx, typename std::enable_if< GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type fapIdx, const QuantityCallback &quantityCallback) const -> decltype(ParentType::calculateValue(elemCtx, fapIdx, quantityCallback)) |
|
template<class QuantityCallback , class EvalDimVector , class Dummy = int> |
void | calculateGradient (EvalDimVector &quantityGrad, const ElementContext &elemCtx, typename std::enable_if<!GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type fapIdx, const QuantityCallback &quantityCallback) const |
| Calculates the gradient of an arbitrary quantity at any flux approximation point. More...
|
|
template<class QuantityCallback , class EvalDimVector , class Dummy = int> |
void | calculateGradient (EvalDimVector &quantityGrad, const ElementContext &elemCtx, typename std::enable_if< GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type fapIdx, const QuantityCallback &quantityCallback) const |
|
template<class QuantityCallback > |
auto | calculateBoundaryValue (const ElementContext &elemCtx, int fapIdx, const QuantityCallback &quantityCallback) -> decltype(ParentType::calculateBoundaryValue(elemCtx, fapIdx, quantityCallback)) |
| Calculates the value of an arbitrary quantity at any flux approximation point on the grid boundary. More...
|
|
template<class QuantityCallback , class EvalDimVector > |
void | calculateBoundaryGradient (EvalDimVector &quantityGrad, const ElementContext &elemCtx, int fapIdx, const QuantityCallback &quantityCallback) const |
| Calculates the gradient of an arbitrary quantity at any flux approximation point on the boundary. More...
|
|
template<class TypeTag>
class Ewoms::VcfvGradientCalculator< TypeTag >
This class calculates gradients of arbitrary quantities at flux integration points for the vertex centered finite volume (VCFV) discretization.
template<class TypeTag >
template<class QuantityCallback , class EvalDimVector >
void Ewoms::VcfvGradientCalculator< TypeTag >::calculateBoundaryGradient |
( |
EvalDimVector & |
quantityGrad, |
|
|
const ElementContext & |
elemCtx, |
|
|
int |
fapIdx, |
|
|
const QuantityCallback & |
quantityCallback |
|
) |
| const |
|
inline |
Calculates the gradient of an arbitrary quantity at any flux approximation point on the boundary.
Boundary gradients are always calculated using the two-point approximation.
- Parameters
-
elemCtx | The current execution context |
fapIdx | The local index of the flux approximation point in the current element's stencil. |
quantityCallback | A callable object returning the value of the quantity at an index of a degree of freedom |
template<class TypeTag >
template<class QuantityCallback >
auto Ewoms::VcfvGradientCalculator< TypeTag >::calculateBoundaryValue |
( |
const ElementContext & |
elemCtx, |
|
|
int |
fapIdx, |
|
|
const QuantityCallback & |
quantityCallback |
|
) |
| -> decltype(ParentType::calculateBoundaryValue(elemCtx, fapIdx, quantityCallback))
|
|
inline |
Calculates the value of an arbitrary quantity at any flux approximation point on the grid boundary.
Boundary values are always calculated using the two-point approximation.
- Parameters
-
elemCtx | The current execution context |
fapIdx | The local index of the flux approximation point in the current element's stencil. |
quantityCallback | A callable object returning the value of the quantity at an index of a degree of freedom |
template<class TypeTag >
template<class QuantityCallback , class EvalDimVector , class Dummy = int>
void Ewoms::VcfvGradientCalculator< TypeTag >::calculateGradient |
( |
EvalDimVector & |
quantityGrad, |
|
|
const ElementContext & |
elemCtx, |
|
|
typename std::enable_if<!GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type |
fapIdx, |
|
|
const QuantityCallback & |
quantityCallback |
|
) |
| const |
|
inline |
Calculates the gradient of an arbitrary quantity at any flux approximation point.
- Parameters
-
elemCtx | The current execution context |
fapIdx | The local index of the flux approximation point in the current element's stencil. |
quantityCallback | A callable object returning the value of the quantity at an index of a degree of freedom |
template<class TypeTag >
template<class QuantityCallback , class EvalDimVector , class Dummy = int>
void Ewoms::VcfvGradientCalculator< TypeTag >::calculateGradient |
( |
EvalDimVector & |
quantityGrad, |
|
|
const ElementContext & |
elemCtx, |
|
|
typename std::enable_if< GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type |
fapIdx, |
|
|
const QuantityCallback & |
quantityCallback |
|
) |
| const |
|
inline |
template<class TypeTag >
template<class QuantityCallback , class Dummy = int>
auto Ewoms::VcfvGradientCalculator< TypeTag >::calculateValue |
( |
const ElementContext & |
elemCtx, |
|
|
typename std::enable_if<!GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type |
fapIdx, |
|
|
const QuantityCallback & |
quantityCallback |
|
) |
| const -> typename std::remove_reference<typename QuantityCallback::ResultType>::type
|
|
inline |
Calculates the value of an arbitrary quantity at any interior flux approximation point.
- Parameters
-
elemCtx | The current execution context |
fapIdx | The local index of the flux approximation point in the current element's stencil. |
quantityCallback | A callable object returning the value of the quantity at an index of a degree of freedom |
template<class TypeTag >
template<class QuantityCallback , class Dummy = int>
auto Ewoms::VcfvGradientCalculator< TypeTag >::calculateValue |
( |
const ElementContext & |
elemCtx, |
|
|
typename std::enable_if< GET_PROP_VALUE(TypeTag, UseTwoPointGradients), Dummy >::type |
fapIdx, |
|
|
const QuantityCallback & |
quantityCallback |
|
) |
| const -> decltype(ParentType::calculateValue(elemCtx, fapIdx, quantityCallback))
|
|
inline |
template<class TypeTag >
template<bool prepareValues = true, bool prepareGradients = true>
Precomputes the common values to calculate gradients and values of quantities at any flux approximation point.
- Parameters
-
elemCtx | The current execution context |
References GET_PROP_VALUE.
The documentation for this class was generated from the following file:
|