36 #ifndef EVALUTATION_POWER_HPP 37 #define EVALUTATION_POWER_HPP 39 #include <lifev/core/LifeV.hpp> 41 #include <lifev/eta/array/OperationSmallPower.hpp> 43 #include <lifev/eta/expression/ExpressionPower.hpp> 45 #include <lifev/core/fem/QuadratureRule.hpp> 50 namespace ExpressionAssembly
62 template <
typename EvaluationBaseType>
71 typedef typename EvaluationBaseType::return_Type BaseReturn_Type;
99 EvaluationPower (
const EvaluationPower& eval)
100 : M_evaluationBase (eval.M_evaluationBase),
101 M_exponent (eval.M_exponent)
105 template <
typename BaseExpressionType>
106 explicit EvaluationPower (
const ExpressionPower<BaseExpressionType>& expression)
107 : M_evaluationBase (expression.base() ),
108 M_exponent (expression.exponent() )
112 ~EvaluationPower() {}
121 void update (
const UInt& iElement)
123 M_evaluationBase.update (iElement);
127 static void display (std::ostream& out = std::cout )
130 EvaluationBaseType::display (out);
141 template<
typename CFEType >
142 void setGlobalCFE (
const CFEType* globalCFE)
144 M_evaluationBase.setGlobalCFE (globalCFE);
148 template<
typename CFEType >
149 void setTestCFE (
const CFEType* testCFE)
151 M_evaluationBase.setTestCFE (testCFE);
155 template<
typename CFEType >
156 void setSolutionCFE (
const CFEType* solutionCFE)
158 M_evaluationBase.setSolutionCFE (solutionCFE);
164 M_evaluationBase.setQuadrature (qr);
174 return_Type value_q (
const UInt& q)
const 176 return std::pow (M_evaluationBase.value_q (q), M_exponent);
180 return_Type value_qi (
const UInt& q,
const UInt& i)
const 182 return std::pow (M_evaluationBase.value_qi (q, i), M_exponent);
186 return_Type value_qij (
const UInt& q,
const UInt& i,
const UInt& j)
const 188 return std::pow (M_evaluationBase.value_qij (q, i, j), M_exponent);
204 EvaluationBaseType M_evaluationBase;
208 template<
typename EvaluationBaseType>
209 const flag_Type EvaluationPower<EvaluationBaseType>::S_globalUpdateFlag
210 = EvaluationBaseType::S_globalUpdateFlag;
212 template<
typename EvaluationBaseType>
213 const flag_Type EvaluationPower<EvaluationBaseType>::S_testUpdateFlag
214 = EvaluationBaseType::S_testUpdateFlag;
216 template<
typename EvaluationBaseType>
217 const flag_Type EvaluationPower<EvaluationBaseType>::S_solutionUpdateFlag
218 = EvaluationBaseType::S_solutionUpdateFlag;
uint32_type flag_Type
bit-flag with up to 32 different flags
void updateInverseJacobian(const UInt &iQuadPt)
double Real
Generic real data.
QuadratureRule - The basis class for storing and accessing quadrature rules.
class OperationSmallAddition Class containing information about the power operation between the *Smal...
uint32_type UInt
generic unsigned integer (used mainly for addressing)