35 #ifndef EVALUATION_VECTORFROMNONCONSTANTMATRIX_HPP 36 #define EVALUATION_VECTORFROMNONCONSTANTMATRIX_HPP 38 #include <lifev/core/LifeV.hpp> 40 #include <lifev/core/array/VectorSmall.hpp> 41 #include <lifev/core/array/MatrixSmall.hpp> 43 #include <lifev/eta/expression/ExpressionVectorFromNonConstantMatrix.hpp> 48 namespace ExpressionAssembly
60 template <
typename EvaluationType,
UInt SpaceDim,
UInt FieldDim>
61 class EvaluationVectorFromNonConstantMatrix
70 typedef MatrixSmall<FieldDim, SpaceDim> matrix_Type;
94 EvaluationVectorFromNonConstantMatrix (
const EvaluationVectorFromNonConstantMatrix<EvaluationType, SpaceDim, FieldDim >& evaluation)
95 : M_evaluation( evaluation.M_evaluation ), M_column( evaluation.M_column)
99 template<
typename Expression>
100 explicit EvaluationVectorFromNonConstantMatrix (
const ExpressionVectorFromNonConstantMatrix<Expression, SpaceDim, FieldDim>& expression)
101 : M_evaluation( expression.expr() ), M_column( expression.column() )
105 ~EvaluationVectorFromNonConstantMatrix()
115 void update (
const UInt& iElement)
117 M_evaluation.update ( iElement );
121 static void display (std::ostream& out = std::cout)
123 out <<
"vector from a non constant matrix[" << FieldDim <<
"]";
133 template<
typename CFEType >
134 void setGlobalCFE (
const CFEType* globalCFE)
136 M_evaluation.setGlobalCFE (globalCFE);
140 template<
typename CFEType >
141 void setTestCFE (
const CFEType* testCFE)
143 M_evaluation.setTestCFE (testCFE);
147 template<
typename CFEType >
148 void setSolutionCFE (
const CFEType* solutionCFE)
150 M_evaluation.setSolutionCFE (solutionCFE);
156 M_evaluation.setQuadrature (qr);
166 return_Type value_q (
const UInt& q)
const 168 return M_evaluation.value_q( q ).extractColumn( M_column );
172 return_Type value_qi (
const UInt& q,
const UInt& i)
const 174 return M_evaluation.value_qi( q,i ).extractColumn( M_column );
178 return_Type value_qij (
const UInt& q,
const UInt& i,
const UInt& j)
const 180 return M_evaluation.value_qij( q,i,j ).extractColumn( M_column );
188 EvaluationType M_evaluation;
193 template<
typename EvaluationType,
UInt SpaceDim ,
UInt FieldDim>
194 const flag_Type EvaluationVectorFromNonConstantMatrix<EvaluationType,SpaceDim, FieldDim>::S_globalUpdateFlag = EvaluationType::S_globalUpdateFlag;
196 template<
typename EvaluationType,
UInt SpaceDim ,
UInt FieldDim>
197 const flag_Type EvaluationVectorFromNonConstantMatrix<EvaluationType,SpaceDim, FieldDim>::S_testUpdateFlag = EvaluationType::S_testUpdateFlag;
199 template<
typename EvaluationType,
UInt SpaceDim ,
UInt FieldDim>
200 const flag_Type EvaluationVectorFromNonConstantMatrix<EvaluationType,SpaceDim, FieldDim>::S_solutionUpdateFlag = 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)