This class calculates gradients of arbitrary quantities at flux integration points using first order finite elemens ansatz functions.
More...
|
template<bool prepareValues = true, bool prepareGradients = true> |
void | prepare (const ElementContext &elemCtx, unsigned timeIdx) |
| Precomputes the common values to calculate gradients and values of quantities at any flux approximation point.
|
|
template<class QuantityCallback > |
auto | calculateScalarValue (const ElementContext &elemCtx, unsigned 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.
|
|
template<class QuantityCallback > |
auto | calculateVectorValue (const ElementContext &elemCtx, unsigned 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.
|
|
template<class QuantityCallback , class EvalDimVector > |
void | calculateGradient (EvalDimVector &quantityGrad, const ElementContext &elemCtx, unsigned fapIdx, const QuantityCallback &quantityCallback) const |
| Calculates the gradient of an arbitrary quantity at any flux approximation point.
|
|
template<class QuantityCallback > |
auto | calculateBoundaryValue (const ElementContext &elemCtx, unsigned 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.
|
|
template<class QuantityCallback , class EvalDimVector > |
void | calculateBoundaryGradient (EvalDimVector &quantityGrad, const ElementContext &elemCtx, unsigned fapIdx, const QuantityCallback &quantityCallback) const |
| Calculates the gradient of an arbitrary quantity at any flux approximation point on the boundary.
|
|
template<bool prepareValues = true, bool prepareGradients = true> |
void | prepare (const ElementContext &, unsigned) |
| Precomputes the common values to calculate gradients and values of quantities at every interior flux approximation point.
|
|
template<class QuantityCallback > |
auto | calculateScalarValue (const ElementContext &elemCtx, unsigned fapIdx, const QuantityCallback &quantityCallback) const -> typename std::remove_reference< decltype(quantityCallback.operator()(0))>::type |
| Calculates the value of an arbitrary scalar quantity at any interior flux approximation point.
|
|
template<class QuantityCallback > |
auto | calculateVectorValue (const ElementContext &elemCtx, unsigned fapIdx, const QuantityCallback &quantityCallback) const -> typename std::remove_reference< decltype(quantityCallback.operator()(0))>::type |
| Calculates the value of an arbitrary vectorial quantity at any interior flux approximation point.
|
|
template<class QuantityCallback > |
void | calculateGradient (EvalDimVector &quantityGrad, const ElementContext &elemCtx, unsigned fapIdx, const QuantityCallback &quantityCallback) const |
| Calculates the gradient of an arbitrary quantity at any flux approximation point.
|
|
template<class QuantityCallback > |
auto | calculateBoundaryValue (const ElementContext &, unsigned, const QuantityCallback &quantityCallback) -> decltype(quantityCallback.boundaryValue()) |
| Calculates the value of an arbitrary quantity at any flux approximation point on the grid boundary.
|
|
template<class QuantityCallback > |
void | calculateBoundaryGradient (EvalDimVector &quantityGrad, const ElementContext &elemCtx, unsigned faceIdx, const QuantityCallback &quantityCallback) const |
| Calculates the gradient of an arbitrary quantity at any flux approximation point on the boundary.
|
|
template<class TypeTag>
class Opm::P1FeGradientCalculator< TypeTag >
This class calculates gradients of arbitrary quantities at flux integration points using first order finite elemens ansatz functions.
This approach can also be used for the vertex-centered finite volume (VCFV) discretization.