Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
form_expr_variational.h File Reference

Go to the source code of this file.

Classes

struct  is_form_expr_v2_variational_arg< T >
 
class  form_expr_v2_variational_unary< UnaryFunction, Expr >
 
struct  is_form_expr_v2_variational_arg< form_expr_v2_variational_unary< F, Expr > >
 
class  form_expr_v2_variational_binary< BinaryFunction, Expr1, Expr2 >
 
struct  is_form_expr_v2_variational_arg< form_expr_v2_variational_binary< F, Expr1, Expr2 > >
 
class  form_expr_v2_variational_binary_field< BinaryFunction, Expr1, Expr2 >
 
struct  form_expr_v2_variational_binary_field< BinaryFunction, Expr1, Expr2 >::evaluate_switch< This, ValueType, Arg1, Arg1Tag, Arg2, Arg2Tag >
 
struct  is_form_expr_v2_variational_arg< form_expr_v2_variational_binary_field< F, Expr1, Expr2 > >
 
struct  is_form_expr_v2_variational_binary_field< Expr1, Expr2, Sfinae >
 
struct  is_form_expr_v2_variational_binary_field< Expr1, Expr2, typename std::enable_if< is_field_expr_v2_variational_arg< Expr1 >::value &&is_field_expr_v2_variational_arg< Expr2 >::value >::type >
 
class  form_expr_v2_variational_binary_binded< BinaryFunction, NLExpr, VFExpr >
 
struct  is_form_expr_v2_variational_arg< form_expr_v2_variational_binary_binded< F, Expr1, Expr2 > >
 
struct  is_form_expr_v2_variational_binary_multiplies_divides_left< Expr1, Expr2, Sfinae >
 
struct  is_form_expr_v2_variational_binary_multiplies_divides_left< Expr1, Expr2, typename std::enable_if< is_field_expr_v2_nonlinear_arg< Expr1 >::value &&! is_rheolef_arithmetic< Expr1 >::value &&is_form_expr_v2_variational_arg< Expr2 >::value >::type >
 
struct  is_form_expr_v2_variational_binary_multiplies_divides_right< Expr1, Expr2 >
 

Namespaces

namespace  rheolef
 This file is part of Rheolef.
 
namespace  rheolef::details
 

Macros

#define _RHEOLEF_make_form_expr_v2_variational_unary(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_form_expr_v2_variational_binary(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_form_expr_v2_variational_binary_field(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right(FUNCTION, FUNCTOR)
 
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant(FUNCTION, FUNCTOR)
 

Functions

 _RHEOLEF_make_form_expr_v2_variational_unary (operator+, details::unary_plus) _RHEOLEF_make_form_expr_v2_variational_unary(operator-
 
 _RHEOLEF_form_expr_v2_variational_binary (operator+, details::plus) _RHEOLEF_form_expr_v2_variational_binary(operator-
 
 _RHEOLEF_form_expr_v2_variational_binary_field (operator*, details::multiplies) _RHEOLEF_form_expr_v2_variational_binary_field(dot
 
details::dot_ _RHEOLEF_form_expr_v2_variational_binary_field (ddot, details::ddot_) _RHEOLEF_form_expr_v2_variational_binary_field(dddot
 
 _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides (operator*, details::multiplies) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right(operator/
 
details::divides _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides (dot, details::dot_) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides(ddot
 
details::divides details::ddot_ _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides (dddot, details::dddot_) namespace details
 
 _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant (operator*, details::multiplies) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right(operator/
 
details::divides _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant (dot, details::dot_) _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant(ddot
 

Macro Definition Documentation

◆ _RHEOLEF_make_form_expr_v2_variational_unary

#define _RHEOLEF_make_form_expr_v2_variational_unary (   FUNCTION,
  FUNCTOR 
)
Value:
template<class Expr> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_arg<Expr>::value \
,details::form_expr_v2_variational_unary< \
FUNCTOR \
,Expr \
> \
>::type \
FUNCTION (const Expr& expr) \
{ \
return details::form_expr_v2_variational_unary <FUNCTOR,Expr> (FUNCTOR(), expr); \
}

Definition at line 153 of file form_expr_variational.h.

◆ _RHEOLEF_form_expr_v2_variational_binary

#define _RHEOLEF_form_expr_v2_variational_binary (   FUNCTION,
  FUNCTOR 
)
Value:
template <class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_arg <Expr1>::value \
&& details::is_form_expr_v2_variational_arg <Expr2>::value \
,details::form_expr_v2_variational_binary< \
FUNCTOR \
,Expr1 \
,Expr2 \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_binary \
<FUNCTOR, Expr1, Expr2> \
(FUNCTOR(), expr1, expr2); \
}

Definition at line 322 of file form_expr_variational.h.

◆ _RHEOLEF_form_expr_v2_variational_binary_field

#define _RHEOLEF_form_expr_v2_variational_binary_field (   FUNCTION,
  FUNCTOR 
)
Value:
template <class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_field <Expr1,Expr2>::value \
,details::form_expr_v2_variational_binary_field< \
FUNCTOR \
,Expr1 \
,Expr2 \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_binary_field \
<FUNCTOR, Expr1, Expr2> \
(FUNCTOR(), expr1, expr2); \
}

Definition at line 631 of file form_expr_variational.h.

◆ _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left (   FUNCTION,
  FUNCTOR 
)
Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_left <Expr1,Expr2>::value \
,details::form_expr_v2_variational_binary_binded< \
FUNCTOR \
,typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr1>::type \
,Expr2 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr1>::type wrap1_t; \
return details::form_expr_v2_variational_binary_binded \
<FUNCTOR, wrap1_t, Expr2> \
(FUNCTOR(), wrap1_t(expr1), expr2); \
}

Definition at line 797 of file form_expr_variational.h.

◆ _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right (   FUNCTION,
  FUNCTOR 
)
Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_right <Expr1,Expr2>::value \
,details::form_expr_v2_variational_binary_binded< \
details::swapper<FUNCTOR> \
, typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr2>::type \
,Expr1 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr2>::type wrap2_t; \
return details::form_expr_v2_variational_binary_binded \
<details::swapper<FUNCTOR>, wrap2_t, Expr1> \
(details::swapper<FUNCTOR>(FUNCTOR()), wrap2_t(expr2), expr1); \
}

Definition at line 817 of file form_expr_variational.h.

◆ _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides (   FUNCTION,
  FUNCTOR 
)
Value:
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_right (FUNCTION,FUNCTOR)
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_left(FUNCTION, FUNCTOR)

Definition at line 836 of file form_expr_variational.h.

◆ _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left (   FUNCTION,
  FUNCTOR 
)
Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_constant_left <Expr1,Expr2>::value \
,details::form_expr_v2_variational_unary< \
details::binder_first <FUNCTOR, Expr1> \
,Expr2 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_unary \
<details::binder_first <FUNCTOR,Expr1>, Expr2> \
(details::binder_first <FUNCTOR,Expr1> (FUNCTOR(), expr1), expr2); \
}

Definition at line 876 of file form_expr_variational.h.

◆ _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right (   FUNCTION,
  FUNCTOR 
)
Value:
template<class Expr1, class Expr2> \
inline \
typename \
std::enable_if< \
details::is_form_expr_v2_variational_binary_multiplies_divides_constant_right <Expr1,Expr2>::value \
,details::form_expr_v2_variational_unary< \
details::binder_second <FUNCTOR, Expr2> \
,Expr1 /* vf */ \
> \
>::type \
FUNCTION (const Expr1& expr1, const Expr2& expr2) \
{ \
return details::form_expr_v2_variational_unary \
<details::binder_second <FUNCTOR,Expr2>, Expr1> \
(details::binder_second <FUNCTOR,Expr2> (FUNCTOR(), expr2), expr1); \
}

Definition at line 894 of file form_expr_variational.h.

◆ _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant

#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant (   FUNCTION,
  FUNCTOR 
)
Value:
_RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_right (FUNCTION,FUNCTOR)
#define _RHEOLEF_make_form_expr_v2_variational_binary_operator_multiplies_divides_constant_left(FUNCTION, FUNCTOR)

Definition at line 912 of file form_expr_variational.h.