36 #ifndef EVALUTATION_DERIVATIVEARCTAN_HPP 37 #define EVALUTATION_DERIVATIVEARCTAN_HPP 39 #include <lifev/core/LifeV.hpp> 41 #include <lifev/eta/array/OperationSmallDerivativeArcTan.hpp> 42 #include <lifev/eta/expression/ExpressionDerivativeArcTan.hpp> 44 #include <lifev/core/fem/QuadratureRule.hpp> 49 namespace ExpressionAssembly
61 template <
typename EvaluationBaseType>
62 class EvaluationDerivativeArcTan
68 typedef typename EvaluationBaseType::return_Type BaseReturn_Type;
96 EvaluationDerivativeArcTan (
const EvaluationDerivativeArcTan& eval)
97 : M_evaluationBase (eval.M_evaluationBase),
98 M_epsilon (eval.M_epsilon),
103 template <
typename BaseExpressionType>
104 explicit EvaluationDerivativeArcTan (
const ExpressionDerivativeArcTan<BaseExpressionType>& expression)
105 : M_evaluationBase (expression.base() ),
106 M_epsilon (expression.epsilon() ),
107 M_K (expression.K() )
111 ~EvaluationDerivativeArcTan() {}
120 void update (
const UInt& iElement)
122 M_evaluationBase.update (iElement);
126 static void display ( std::ostream& out = std::cout )
129 EvaluationBaseType::display (out);
140 template<
typename CFEType >
141 void setGlobalCFE (
const CFEType* globalCFE)
143 M_evaluationBase.setGlobalCFE (globalCFE);
147 template<
typename CFEType >
148 void setTestCFE (
const CFEType* testCFE)
150 M_evaluationBase.setTestCFE (testCFE);
154 template<
typename CFEType >
155 void setSolutionCFE (
const CFEType* solutionCFE)
157 M_evaluationBase.setSolutionCFE (solutionCFE);
163 M_evaluationBase.setQuadrature (qr);
173 return_Type value_q (
const UInt& q)
const 175 return ( M_epsilon * M_K ) * ( 1.0/ ( 1.0 + ( M_epsilon * M_epsilon * M_evaluationBase.value_q (q) * M_evaluationBase.value_q (q) ) ) );
179 return_Type value_qi (
const UInt& q,
const UInt& i)
const 181 return ( M_epsilon * M_K ) * ( 1.0/ ( 1.0 + ( M_epsilon * M_epsilon * M_evaluationBase.value_qi (q, i) * M_evaluationBase.value_qi (q, i) ) ) );
185 return_Type value_qij (
const UInt& q,
const UInt& i,
const UInt& j)
const 187 return ( M_epsilon * M_K ) * ( 1.0/ ( 1.0 + ( M_epsilon * M_epsilon * M_evaluationBase.value_qij (q, i, j) * M_evaluationBase.value_qij (q, i, j) ) ) );
198 EvaluationDerivativeArcTan();
203 EvaluationBaseType M_evaluationBase;
208 template<
typename EvaluationBaseType>
209 const flag_Type EvaluationDerivativeArcTan<EvaluationBaseType>::S_globalUpdateFlag
210 = EvaluationBaseType::S_globalUpdateFlag;
212 template<
typename EvaluationBaseType>
213 const flag_Type EvaluationDerivativeArcTan<EvaluationBaseType>::S_testUpdateFlag
214 = EvaluationBaseType::S_testUpdateFlag;
216 template<
typename EvaluationBaseType>
217 const flag_Type EvaluationDerivativeArcTan<EvaluationBaseType>::S_solutionUpdateFlag
218 = EvaluationBaseType::S_solutionUpdateFlag;
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.
class OperationSmallAddition Class containing information about the power operation between the *Smal...
uint32_type UInt
generic unsigned integer (used mainly for addressing)