36 #ifndef EVALUTATION_EXTRACT2_HPP 37 #define EVALUTATION_EXTRACT2_HPP 40 #include <lifev/core/LifeV.hpp> 42 #include <lifev/eta/expression/ExpressionExtract2.hpp> 43 #include <lifev/eta/expression/EvaluationMatrix.hpp> 45 #include <lifev/eta/array/OperationSmallExtract.hpp> 47 #include <lifev/core/fem/QuadratureRule.hpp> 53 namespace ExpressionAssembly
71 template <
typename EvaluationType>
72 class EvaluationExtract2
104 EvaluationExtract2 (
const EvaluationExtract2< EvaluationType >& eval)
107 M_evaluation (eval.M_evaluation)
111 template<
typename Expression>
112 explicit EvaluationExtract2 (
const ExpressionExtract2< Expression >& expression)
113 : M_i (expression.indexI() ),
114 M_j (expression.indexJ() ),
115 M_evaluation (expression.exprEx() )
119 ~EvaluationExtract2()
129 void update (
const UInt& iElement)
131 M_evaluation.update (iElement);
135 static void display (std::ostream& out = std::cout)
137 out <<
"Extraction from ";
138 EvaluationType::display (out);
148 template<
typename CFEType >
149 void setGlobalCFE (
const CFEType* globalCFE)
151 M_evaluation.setGlobalCFE (globalCFE);
155 template<
typename CFEType >
156 void setTestCFE (
const CFEType* testCFE)
158 M_evaluation.setTestCFE (testCFE);
162 template<
typename CFEType >
163 void setSolutionCFE (
const CFEType* solutionCFE)
165 M_evaluation.setSolutionCFE (solutionCFE);
171 M_evaluation.setQuadrature (qr);
181 return_Type value_q (
const UInt& q)
const 183 return M_evaluation.value_q (q).extract (M_i, M_j);
187 return_Type value_qi (
const UInt& q,
const UInt& i)
const 189 return M_evaluation.value_qi (q, i).extract (M_i, M_j);
193 return_Type value_qij (
const UInt& q,
const UInt& i,
const UInt& j)
const 195 return M_evaluation.value_qij (q, i, j).extract (M_i, M_j);
206 EvaluationExtract2();
214 EvaluationType M_evaluation;
218 template<
typename EvaluationType>
219 const flag_Type EvaluationExtract2<EvaluationType>::S_globalUpdateFlag
220 = EvaluationType::S_globalUpdateFlag;
222 template<
typename EvaluationType>
223 const flag_Type EvaluationExtract2<EvaluationType>::S_testUpdateFlag
224 = EvaluationType::S_testUpdateFlag;
226 template<
typename EvaluationType>
227 const flag_Type EvaluationExtract2<EvaluationType>::S_solutionUpdateFlag
228 = EvaluationType::S_solutionUpdateFlag;
uint32_type flag_Type
bit-flag with up to 32 different flags
void updateInverseJacobian(const UInt &iQuadPt)
QuadratureRule - The basis class for storing and accessing quadrature rules.
uint32_type UInt
generic unsigned integer (used mainly for addressing)