36 #ifndef EVALUTATION_VECTORFROMNONCONSTANTSCALAR_HPP 37 #define EVALUTATION_VECTORFROMNONCONSTANTSCALAR_HPP 40 #include <lifev/core/LifeV.hpp> 42 #include <lifev/core/array/VectorSmall.hpp> 44 #include <lifev/eta/expression/ExpressionVectorFromNonConstantScalar.hpp> 46 #include <lifev/core/fem/QuadratureRule.hpp> 51 namespace ExpressionAssembly
63 template <
typename EvaluationType,
UInt FieldDim>
64 class EvaluationVectorFromNonConstantScalar
101 EvaluationVectorFromNonConstantScalar (
const EvaluationVectorFromNonConstantScalar& eval)
102 : M_evaluation (eval.M_evaluation)
106 template<
typename Expression>
107 explicit EvaluationVectorFromNonConstantScalar (
const ExpressionVectorFromNonConstantScalar<Expression, FieldDim>& expression)
108 : M_evaluation (expression.exprEx() )
112 ~EvaluationVectorFromNonConstantScalar()
122 void update (
const UInt& iElement)
124 M_evaluation.update (iElement);
128 static void display (std::ostream& out = std::cout)
130 out <<
" vector from scalar expression ";
131 EvaluationType::display (out);
141 template<
typename CFEType >
142 void setGlobalCFE (
const CFEType* globalCFE)
144 M_evaluation.setGlobalCFE (globalCFE);
148 template<
typename CFEType >
149 void setTestCFE (
const CFEType* testCFE)
151 M_evaluation.setTestCFE (testCFE);
155 template<
typename CFEType >
156 void setSolutionCFE (
const CFEType* solutionCFE)
158 M_evaluation.setSolutionCFE (solutionCFE);
164 M_evaluation.setQuadrature (qr);
174 return_Type value_q (
const UInt& q)
const 176 return VectorSmall<FieldDim> ( M_evaluation.value_q( q ) );
180 return_Type value_qi (
const UInt& q,
const UInt& i)
const 182 return VectorSmall<FieldDim> ( M_evaluation.value_qi( q,i ) );
186 return_Type value_qij (
const UInt& q,
const UInt& i,
const UInt& j)
const 188 return VectorSmall<FieldDim> ( M_evaluation.value_qij( q,i,j ) );
199 EvaluationVectorFromNonConstantScalar();
204 EvaluationType M_evaluation;
208 template<
typename EvaluationType,
UInt FieldDim >
209 const flag_Type EvaluationVectorFromNonConstantScalar<EvaluationType, FieldDim>::S_globalUpdateFlag
210 = EvaluationType::S_globalUpdateFlag;
212 template<
typename EvaluationType,
UInt FieldDim >
213 const flag_Type EvaluationVectorFromNonConstantScalar<EvaluationType, FieldDim>::S_testUpdateFlag
214 = EvaluationType::S_testUpdateFlag;
216 template<
typename EvaluationType,
UInt FieldDim >
217 const flag_Type EvaluationVectorFromNonConstantScalar<EvaluationType, FieldDim>::S_solutionUpdateFlag
218 = 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)