36 #ifndef EVALUATION_DIV_I_HPP 37 #define EVALUATION_DIV_I_HPP 39 #include <lifev/core/LifeV.hpp> 41 #include <lifev/eta/fem/ETCurrentFE.hpp> 42 #include <lifev/eta/fem/ETCurrentFlag.hpp> 43 #include <lifev/core/fem/QuadratureRule.hpp> 45 #include <lifev/core/array/VectorSmall.hpp> 47 #include <lifev/eta/expression/ExpressionDivI.hpp> 53 namespace ExpressionAssembly
56 template <
UInt fieldDim,
UInt spaceDim>
68 EvaluationDivI (
const EvaluationDivI& provider);
86 template <
UInt spaceDim>
87 class EvaluationDivI<3, spaceDim>
122 EvaluationDivI (
const EvaluationDivI<3, spaceDim>& provider) : M_valuesPtr (provider.M_valuesPtr) {}
125 explicit EvaluationDivI (
const ExpressionDivI& ) {}
140 static void display (std::ostream& out = std::cout)
152 template<
typename CFEType >
153 void setGlobalCFE (
const CFEType* ) {}
156 template<
typename CFEType >
157 void setTestCFE (
const CFEType* testCFE)
159 ASSERT (testCFE != 0,
"Nul pointer to the testCFE cannot be set");
160 M_valuesPtr = & (testCFE->M_divergence);
164 template<
typename CFEType >
165 void setSolutionCFE (
const CFEType* ) {}
177 const return_Type& value_qi (
const UInt& q,
const UInt& i)
const 179 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
180 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
181 return (*M_valuesPtr) [q][i];
185 const return_Type& value_qij (
const UInt& q,
const UInt& i,
const UInt& )
const 187 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
188 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
189 return (*M_valuesPtr) [q][i];
197 std::vector< std::vector < return_Type > >
const* M_valuesPtr;
202 template<
UInt spaceDim>
203 const flag_Type EvaluationDivI<3, spaceDim>::S_globalUpdateFlag = ET_UPDATE_NONE;
205 template<
UInt spaceDim>
206 const flag_Type EvaluationDivI<3, spaceDim>::S_testUpdateFlag = ET_UPDATE_DIVERGENCE;
208 template<
UInt spaceDim>
209 const flag_Type EvaluationDivI<3, spaceDim>::S_solutionUpdateFlag = ET_UPDATE_NONE;
221 template <
UInt spaceDim>
222 class EvaluationDivI<2, spaceDim>
257 EvaluationDivI (
const EvaluationDivI<2, spaceDim>& provider) : M_valuesPtr (provider.M_valuesPtr) {}
260 explicit EvaluationDivI (
const ExpressionDivI& ) {}
275 static void display (std::ostream& out = std::cout)
287 template<
typename CFEType >
288 void setGlobalCFE (
const CFEType* ) {}
291 template<
typename CFEType >
292 void setTestCFE (
const CFEType* testCFE)
294 ASSERT (testCFE != 0,
"Nul pointer to the testCFE cannot be set");
295 M_valuesPtr = & (testCFE->M_divergence);
299 template<
typename CFEType >
300 void setSolutionCFE (
const CFEType* ) {}
312 const return_Type& value_qi (
const UInt& q,
const UInt& i)
const 314 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
315 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
316 return (*M_valuesPtr) [q][i];
320 const return_Type& value_qij (
const UInt& q,
const UInt& i,
const UInt& )
const 322 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
323 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
324 return (*M_valuesPtr) [q][i];
332 std::vector< std::vector < return_Type > >
const* M_valuesPtr;
337 template<
UInt spaceDim>
338 const flag_Type EvaluationDivI<2, spaceDim>::S_globalUpdateFlag = ET_UPDATE_NONE;
340 template<
UInt spaceDim>
341 const flag_Type EvaluationDivI<2, spaceDim>::S_testUpdateFlag = ET_UPDATE_DIVERGENCE;
343 template<
UInt spaceDim>
344 const flag_Type EvaluationDivI<2, spaceDim>::S_solutionUpdateFlag = ET_UPDATE_NONE;
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.
uint32_type UInt
generic unsigned integer (used mainly for addressing)