form_field_expr.h
Go to the documentation of this file.
# ifndef _RHEOLEF_FORM_FIELD_EXPR_H
# define _RHEOLEF_FORM_FIELD_EXPR_H
#include "rheolef/form.h"
#include "rheolef/field_component.h"
#include "rheolef/field_indirect.h"
#include "rheolef/field_expr.h"
namespace rheolef {
// -----------------------------------------------------------------------
// form*field_expr
// -----------------------------------------------------------------------
#define _RHEOLEF_form_mult_field_var(field_var) \
template <class T, class M> \
inline \
field_basic<T,M> \
operator* (const form_basic<T,M>& a, const field_var<T,M>& expr) \
{ \
field_basic<T,M> eh = expr; \
return a.operator* (eh); \
}
_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)
#undef _RHEOLEF_form_mult_field_var
template <class T, class M, class Expr>
inline
typename
std::enable_if<
details::is_field_convertible<Expr>::value
&& ! details::is_field <Expr>::value
,field_basic<T,M>
>::type
operator* (const form_basic<T,M>& a, const Expr& expr)
{
field_basic<T,M> eh = expr;
return a.operator* (eh);
}
}// namespace rheolef
# 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