36 #ifndef EXPRESSION_SUBSTRACTION_HPP 37 #define EXPRESSION_SUBSTRACTION_HPP 39 #include <lifev/core/LifeV.hpp> 41 #include <lifev/eta/expression/ExpressionBase.hpp> 42 #include <lifev/eta/expression/ExpressionScalar.hpp> 43 #include <lifev/eta/expression/ExpressionVector.hpp> 48 namespace ExpressionAssembly
70 template <
typename LExpressionType,
typename RExpressionType>
71 class ExpressionSubstraction :
public ExpressionBase< ExpressionSubstraction<LExpressionType, RExpressionType> >
79 typedef ExpressionBase< ExpressionSubstraction <LExpressionType, RExpressionType> > base_Type;
88 ExpressionSubstraction (
const LExpressionType& l,
const RExpressionType& r)
89 : base_Type(), M_l (l), M_r (r) {}
92 ExpressionSubstraction (
const ExpressionSubstraction<LExpressionType, RExpressionType>& expression)
93 : base_Type(), M_l (expression.M_l), M_r (expression.M_r) {}
96 ~ExpressionSubstraction() {}
105 static void display (std::ostream& out = std::cout)
107 LExpressionType::display (out);
109 RExpressionType::display (out);
119 const LExpressionType& left()
const 125 const RExpressionType& right()
const 138 ExpressionSubstraction();
170 template<
typename LExpressionType,
typename RExpressionType >
171 ExpressionSubstraction<LExpressionType, RExpressionType>
174 return ExpressionSubstraction<LExpressionType, RExpressionType> (l.cast(), r.cast() );
178 template<
typename LExpressionType >
179 ExpressionSubstraction<LExpressionType, ExpressionScalar >
182 return ExpressionSubstraction<LExpressionType, ExpressionScalar> (l.cast(), ExpressionScalar (r) );
185 template<
typename RExpressionType >
186 ExpressionSubstraction<ExpressionScalar, RExpressionType>
189 return ExpressionSubstraction<ExpressionScalar, RExpressionType> (ExpressionScalar (l), r.cast() );
193 template<
typename RExpressionType ,
UInt Vdim>
194 ExpressionSubstraction<ExpressionVector<Vdim>, RExpressionType>
197 return ExpressionSubstraction<ExpressionVector<Vdim>, RExpressionType> (ExpressionVector<Vdim> (l), r.cast() );
200 template<
typename LExpressionType,
UInt Vdim >
201 ExpressionSubstraction<LExpressionType, ExpressionVector<Vdim> >
204 return ExpressionSubstraction<LExpressionType, ExpressionVector<Vdim> > (l.cast(), ExpressionVector<Vdim> (r) );
void updateInverseJacobian(const UInt &iQuadPt)
double Real
Generic real data.
class ExpressionBase Base class (static polymorphism, CRTP sense) for all the expressions used in ass...
uint32_type UInt
generic unsigned integer (used mainly for addressing)