Rheolef  7.1
an efficient C++ finite element environment
form_field_expr.h
Go to the documentation of this file.
1 # ifndef _RHEOLEF_FORM_FIELD_EXPR_H
2 # define _RHEOLEF_FORM_FIELD_EXPR_H
23 
24 #include "rheolef/form.h"
25 #include "rheolef/field_component.h"
26 #include "rheolef/field_indirect.h"
27 #include "rheolef/field_expr.h"
28 namespace rheolef {
29 
30 // -----------------------------------------------------------------------
31 // form*field_expr
32 // -----------------------------------------------------------------------
33 #define _RHEOLEF_form_mult_field_var(field_var) \
34 template <class T, class M> \
35 inline \
36 field_basic<T,M> \
37 operator* (const form_basic<T,M>& a, const field_var<T,M>& expr) \
38 { \
39  field_basic<T,M> eh = expr; \
40  return a.operator* (eh); \
41 }
46 #undef _RHEOLEF_form_mult_field_var
47 
48 template <class T, class M, class Expr>
49 inline
50 typename
51 std::enable_if<
55 >::type
56 operator* (const form_basic<T,M>& a, const Expr& expr)
57 {
58  field_basic<T,M> eh = expr;
59  return a.operator* (eh);
60 }
61 
62 }// namespace rheolef
63 # endif /* _RHEOLEF_FORM_FIELD_EXPR_H */
rheolef::std type
field_basic< T, M > eh
This file is part of Rheolef.
csr< T, sequential > operator*(const T &lambda, const csr< T, sequential > &a)
Definition: csr.h:437
_RHEOLEF_form_mult_field_var(field_component) _RHEOLEF_form_mult_field_var(field_component_const) _RHEOLEF_form_mult_field_var(field_indirect) _RHEOLEF_form_mult_field_var(field_indirect_const) template< class T