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
3
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
}
42
_RHEOLEF_form_mult_field_var
(field_component)
43
_RHEOLEF_form_mult_field_var
(field_component_const)
44
_RHEOLEF_form_mult_field_var
(field_indirect)
45
_RHEOLEF_form_mult_field_var
(field_indirect_const)
46
#undef _RHEOLEF_form_mult_field_var
47
48
template
<
class
T,
class
M,
class
Expr>
49
inline
50
typename
51
std::enable_if<
52
details::is_field_convertible<Expr>::value
53
&& ! details::is_field <Expr>::value
54
,field_basic<T,M>
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 */
mkgeo_ball.expr
expr
Definition:
mkgeo_ball.sh:361
rheolef::operator*
csr< T, sequential > operator*(const T &lambda, const csr< T, sequential > &a)
Definition:
csr.h:437
a
Definition:
diffusion_isotropic.h:25
eh
field_basic< T, M > eh
Definition:
form_field_expr.h:58
rheolef::type
rheolef::std type
rheolef
This file is part of Rheolef.
Definition:
compiler_eigen.h:37
rheolef::_RHEOLEF_form_mult_field_var
_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