Loading...
Searching...
No Matches
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_wdof_sliced.h"
#include "rheolef/field_wdof_indirect.h"
#include "rheolef/field_expr.h"
namespace rheolef {
// -----------------------------------------------------------------------
// form*field_expr
// -----------------------------------------------------------------------
#ifdef TO_CLEAN
#define _RHEOLEF_form_mult_field_var_old(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); \
}
#undef _RHEOLEF_form_mult_field_var_old
#endif // TO_CLEAN
// TODO: via a template FieldRdof instead of field_var<FieldRdof>
// and move it in the form.h file
#define _RHEOLEF_form_mult_field_var(field_var) \
template <class T, class M, class FieldRdof> \
inline \
field_basic<T,M> \
operator* (const form_basic<T,M>& a, const field_var<FieldRdof>& expr) \
{ \
field_basic<T,M> eh = expr; \
return a.operator* (eh); \
}
_RHEOLEF_form_mult_field_var(details::field_wdof_sliced)
_RHEOLEF_form_mult_field_var(details::field_rdof_sliced_const)
_RHEOLEF_form_mult_field_var(details::field_wdof_indirect)
_RHEOLEF_form_mult_field_var(details::field_rdof_indirect_const)
#undef _RHEOLEF_form_mult_field_var_new
template <class T, class M, class Expr>
inline
typename
std::enable_if<
details::is_field_wdof<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 */
rheolef::details::field_rdof_indirect_const
Definition field_wdof_indirect.h:212
rheolef::details::field_rdof_sliced_const
Definition field_wdof_sliced.h:204
rheolef::details::field_wdof_indirect
Definition field_wdof_indirect.h:317
rheolef::details::field_wdof_sliced
Definition field_wdof_sliced.h:268
rheolef::field_basic
Definition field.h:219
rheolef::form_basic
Definition form.h:146
_RHEOLEF_form_mult_field_var
#define _RHEOLEF_form_mult_field_var(field_var)
Definition form_field_expr.h:48
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
rheolef::operator*
csr< T, sequential > operator*(const T &lambda, const csr< T, sequential > &a)
Definition csr.h:437
rheolef::details::is_field_wdof
Definition field_concept.h:38