36 #ifndef EVALUTATION_CUBICROOT_HPP 37 #define EVALUTATION_CUBICROOT_HPP 39 #include <lifev/core/LifeV.hpp> 41 #include <lifev/eta/array/OperationSmallCubicRoot.hpp> 43 #include <lifev/eta/expression/ExpressionCubicRoot.hpp> 45 #include <lifev/core/fem/QuadratureRule.hpp> 50 namespace ExpressionAssembly
62 template <
typename EvaluationBaseType>
63 class EvaluationCubicRoot
71 typedef typename EvaluationBaseType::return_Type BaseReturn_Type;
98 EvaluationCubicRoot (
const EvaluationCubicRoot& eval)
99 : M_evaluationBase (eval.M_evaluationBase)
103 template <
typename BaseExpressionType>
104 explicit EvaluationCubicRoot (
const ExpressionCubicRoot<BaseExpressionType>& expression)
105 : M_evaluationBase (expression.base() )
109 ~EvaluationCubicRoot() {}
118 void update (
const UInt& iElement)
120 M_evaluationBase.update (iElement);
124 static void display (std::ostream& out = std::cout )
127 EvaluationBaseType::display (out);
138 template<
typename CFEType >
139 void setGlobalCFE (
const CFEType* globalCFE)
141 M_evaluationBase.setGlobalCFE (globalCFE);
145 template<
typename CFEType >
146 void setTestCFE (
const CFEType* testCFE)
148 M_evaluationBase.setTestCFE (testCFE);
152 template<
typename CFEType >
153 void setSolutionCFE (
const CFEType* solutionCFE)
155 M_evaluationBase.setSolutionCFE (solutionCFE);
161 M_evaluationBase.setQuadrature (qr);
171 return_Type value_q (
const UInt& q)
const 173 return cbrt (M_evaluationBase.value_q (q));
177 return_Type value_qi (
const UInt& q,
const UInt& i)
const 179 return cbrt (M_evaluationBase.value_qi (q, i));
183 return_Type value_qij (
const UInt& q,
const UInt& i,
const UInt& j)
const 185 return cbrt (M_evaluationBase.value_qij (q, i, j) );
196 EvaluationCubicRoot();
201 EvaluationBaseType M_evaluationBase;
204 template<
typename EvaluationBaseType>
205 const flag_Type EvaluationCubicRoot<EvaluationBaseType>::S_globalUpdateFlag
206 = EvaluationBaseType::S_globalUpdateFlag;
208 template<
typename EvaluationBaseType>
209 const flag_Type EvaluationCubicRoot<EvaluationBaseType>::S_testUpdateFlag
210 = EvaluationBaseType::S_testUpdateFlag;
212 template<
typename EvaluationBaseType>
213 const flag_Type EvaluationCubicRoot<EvaluationBaseType>::S_solutionUpdateFlag
214 = EvaluationBaseType::S_solutionUpdateFlag;
222 template <
typename EvaluationBaseType>
223 class EvaluationIsochoricChangeOfVariable
231 typedef typename EvaluationBaseType::return_Type BaseReturn_Type;
235 typedef typename OperationSmallIsochoricChangeOfVariable<BaseReturn_Type>::result_Type return_Type;
258 EvaluationIsochoricChangeOfVariable (
const EvaluationIsochoricChangeOfVariable& eval)
259 : M_evaluationBase (eval.M_evaluationBase)
263 template <
typename BaseExpressionType>
264 explicit EvaluationIsochoricChangeOfVariable (
const ExpressionIsochoricChangeOfVariable<BaseExpressionType>& expression)
265 : M_evaluationBase (expression.base() )
269 ~EvaluationIsochoricChangeOfVariable() {}
278 void update (
const UInt& iElement)
280 M_evaluationBase.update (iElement);
284 static void display ( std::ostream& out = std::cout )
287 EvaluationBaseType::display (out);
298 template<
typename CFEType >
299 void setGlobalCFE (
const CFEType* globalCFE)
301 M_evaluationBase.setGlobalCFE (globalCFE);
305 template<
typename CFEType >
306 void setTestCFE (
const CFEType* testCFE)
308 M_evaluationBase.setTestCFE (testCFE);
312 template<
typename CFEType >
313 void setSolutionCFE (
const CFEType* solutionCFE)
315 M_evaluationBase.setSolutionCFE (solutionCFE);
321 M_evaluationBase.setQuadrature (qr);
331 return_Type value_q (
const UInt& q)
const 333 return ( 1.0 / cbrt (M_evaluationBase.value_q (q)) ) * ( 1.0 / cbrt (M_evaluationBase.value_q (q)) );
337 return_Type value_qi (
const UInt& q,
const UInt& i)
const 339 return ( 1.0 / cbrt (M_evaluationBase.value_qi (q, i) ) ) * ( 1.0 / cbrt (M_evaluationBase.value_qi (q, i) ) );
343 return_Type value_qij (
const UInt& q,
const UInt& i,
const UInt& j)
const 345 return ( 1.0 / cbrt (M_evaluationBase.value_qij (q, i, j) ) ) * ( 1.0 / cbrt (M_evaluationBase.value_qij (q, i, j) ) );
356 EvaluationIsochoricChangeOfVariable();
361 EvaluationBaseType M_evaluationBase;
364 template<
typename EvaluationBaseType>
365 const flag_Type EvaluationIsochoricChangeOfVariable<EvaluationBaseType>::S_globalUpdateFlag
366 = EvaluationBaseType::S_globalUpdateFlag;
368 template<
typename EvaluationBaseType>
369 const flag_Type EvaluationIsochoricChangeOfVariable<EvaluationBaseType>::S_testUpdateFlag
370 = EvaluationBaseType::S_testUpdateFlag;
372 template<
typename EvaluationBaseType>
373 const flag_Type EvaluationIsochoricChangeOfVariable<EvaluationBaseType>::S_solutionUpdateFlag
374 = EvaluationBaseType::S_solutionUpdateFlag;
uint32_type flag_Type
bit-flag with up to 32 different flags
void updateInverseJacobian(const UInt &iQuadPt)
class OperationSmallAddition Class containing information about the power operation between the *Smal...
QuadratureRule - The basis class for storing and accessing quadrature rules.
uint32_type UInt
generic unsigned integer (used mainly for addressing)