36 #ifndef EVALUATION_DPHI_I_HPP 37 #define EVALUATION_DPHI_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/ExpressionDphiI.hpp> 53 namespace ExpressionAssembly
65 template <
UInt fieldDim,
UInt spaceDim>
74 typedef MatrixSmall<fieldDim, spaceDim> return_Type;
101 EvaluationDphiI (
const EvaluationDphiI& provider) : M_valuesPtr (provider.M_valuesPtr) {}
104 explicit EvaluationDphiI (
const ExpressionDphiI& ) {}
107 ~EvaluationDphiI() {}
119 static void display (std::ostream& out = std::cout)
121 out <<
"dphi_i[3][" << spaceDim <<
"]";
131 template<
typename CFEType >
132 void setGlobalCFE (
const CFEType* ) {}
135 template<
typename CFEType >
136 void setTestCFE (
const CFEType* testCFE)
138 ASSERT (testCFE != 0,
"Nul pointer to the testCFE cannot be set");
139 M_valuesPtr = & (testCFE->M_dphi);
143 template<
typename CFEType >
144 void setSolutionCFE (
const CFEType* ) {}
156 const return_Type& value_qi (
const UInt& q,
const UInt& i)
const 158 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
159 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
160 return (*M_valuesPtr) [q][i];
164 const return_Type& value_qij (
const UInt& q,
const UInt& i,
const UInt& )
const 166 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
167 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
168 return (*M_valuesPtr) [q][i];
181 template<
UInt fieldDim,
UInt spaceDim>
184 template<
UInt fieldDim,
UInt spaceDim>
187 template<
UInt fieldDim,
UInt spaceDim>
200 template <
UInt spaceDim>
236 EvaluationDphiI (
const EvaluationDphiI& provider) : M_valuesPtr (provider.M_valuesPtr) {}
239 explicit EvaluationDphiI (
const ExpressionDphiI& ) {}
242 ~EvaluationDphiI() {}
254 static void display (std::ostream& out = std::cout)
256 out <<
"dphi_i[" << spaceDim <<
"]";
266 template<
typename CFEType >
267 void setGlobalCFE (
const CFEType* ) {}
270 template<
typename CFEType >
271 void setTestCFE (
const CFEType* testCFE)
273 ASSERT (testCFE != 0,
"Nul pointer to the testCFE cannot be set");
274 M_valuesPtr = & (testCFE->M_dphi);
278 template<
typename CFEType >
279 void setSolutionCFE (
const CFEType* ) {}
291 const return_Type& value_qi (
const UInt& q,
const UInt& i)
const 293 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
294 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
295 return (*M_valuesPtr) [q][i];
299 const return_Type& value_qij (
const UInt& q,
const UInt& i,
const UInt& )
const 301 ASSERT ( q < M_valuesPtr->size(),
"Quadrature point index invalid");
302 ASSERT ( i < (*M_valuesPtr) [q].size(),
"Dof index invalid");
303 return (*M_valuesPtr) [q][i];
316 template<
UInt spaceDim>
319 template<
UInt spaceDim>
322 template<
UInt spaceDim>
uint32_type flag_Type
bit-flag with up to 32 different flags
void updateInverseJacobian(const UInt &iQuadPt)
friend class ExpressionAssembly::EvaluationDphiI
Friend to allow direct access to the raw data.
QuadratureRule - The basis class for storing and accessing quadrature rules.
uint32_type UInt
generic unsigned integer (used mainly for addressing)