Loading...
Searching...
No Matches
field_expr_recursive.h

Go to the source code of this file.

## Classes

class | field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >
struct | field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >::const_iterator
struct | field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >::evaluate_call_check< Result, Arg, Status >
struct | field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >::evaluate_call_check< Result, Arg, std::true_type >
struct | field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >::evaluate_switch< This, Result, Arg, ArgTag >
struct | field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >::evaluate_switch< This, Result, Arg, space_constant::last_valued >
struct | is_field_expr_v2_nonlinear_arg< field_expr_v2_nonlinear_node_unary< F, Expr > >
struct | is_field_expr_affine_homogeneous< field_expr_v2_nonlinear_node_unary< F, Expr >, typename std::enable_if< field_expr_v2_nonlinear_node_unary< F, Expr >::is_affine_homogeneous::value >::type >
class | enable_if< details::is_field_expr_v2_nonlinear_arg< Expr >::value, details::field_expr_v2_nonlinear_node_unary< details::function_traits< Function >::functor_type, details::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr >::type > >
struct | const_iterator
struct | evaluate_internal< This, Result, Result, Arg1, Arg2 >
struct | evaluate_switch< This, Result, Arg1, Arg1Tag, Arg2, Arg2Tag >
struct | evaluate_switch< This, Result, Arg1, space_constant::last_valued, Arg2, space_constant::last_valued >
struct | evaluate_switch< This, Result, Arg1, Arg1Tag, Arg2, space_constant::last_valued >
struct | evaluate_switch< This, Result, Arg1, space_constant::last_valued, Arg2, Arg2Tag >
struct | is_field_expr_v2_nonlinear_arg< field_expr_v2_nonlinear_node_binary< F, Expr1, Expr2 > >
struct | is_field_expr_affine_homogeneous< field_expr_v2_nonlinear_node_binary< F, Expr1, Expr2 >, typename std::enable_if< field_expr_v2_nonlinear_node_binary< F, Expr1, Expr2 >::is_affine_homogeneous::value >::type >

## Namespaces

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

## Macros

#define | _RHEOLEF_evaluate_switch_specialization(VALUED, VALUE)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(FUNCTION)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_binary(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_binary(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_binary(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_binary(FUNCTION, FUNCTOR)
#define | _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(FUNCTION)

## Typedefs

typedef details::function_traits< Function >::functor_type | fun_wrap_t
typedef details::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr1 >::type | expr1_wrap_t
typedef details::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr2 >::type | expr2_wrap_t

## Functions

| _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator (operator+, details::unary_plus) _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator(operator-

_RHEOLEF_make_field_expr_v2_nonlinear_unary_function (cos) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(sin) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(tan) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(acos) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(asin) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(atan) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(cosh) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(sinh) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(tanh) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(exp) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(log) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(log10) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(sqrt) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(abs) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(fabs) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(floor) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(ceil) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(sqr) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(norm) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(norm2) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(tr) _RHEOLEF_make_field_expr_v2_nonlinear_unary_function(trans) template< class Function

| field_expr_v2_nonlinear_node_binary (const BinaryFunction &f, const Expr1 &expr1, const Expr2 &expr2)
bool | have_homogeneous_space (space_basic< scalar_type, memory_type > &Vh) const
const_iterator | begin_dof () const
space_constant::valued_type | valued_tag () const
void | initialize (const piola_on_pointset< float_type > &pops, const integrate_option &iopt)
void | initialize (const space_basic< float_type, memory_type > &Xh, const piola_on_pointset< float_type > &pops, const integrate_option &iopt)
template<class Result, class Arg1, class Arg2, class M>
void | evaluate_internal2 (const geo_basic< float_type, M > &omega_K, const geo_element &K, Eigen::Matrix< Result, Eigen::Dynamic, 1 > &value) const
template<class Result, class Arg1, class Arg2, class M>
void | evaluate_internal2 (const geo_basic< float_type, M > &omega_K, const geo_element &K, const side_information_type &sid, Eigen::Matrix< Result, Eigen::Dynamic, 1 > &value) const
template<class Result, class Arg1, class Arg2, class M>
void | evaluate_call (const geo_basic< float_type, M > &omega_K, const geo_element &K, Eigen::Matrix< Result, Eigen::Dynamic, 1 > &value) const
template<class Result, class Arg1, class Arg2, class M>
void | evaluate_call (const geo_basic< float_type, M > &omega_K, const geo_element &K, const side_information_type &sid, Eigen::Matrix< Result, Eigen::Dynamic, 1 > &value) const
template<class Result, class M>
void | evaluate (const geo_basic< float_type, M > &omega_K, const geo_element &K, Eigen::Matrix< Result, Eigen::Dynamic, 1 > &value) const
template<class Result, class M>
void | evaluate_on_side (const geo_basic< float_type, M > &omega_K, const geo_element &K, const side_information_type &sid, Eigen::Matrix< Result, Eigen::Dynamic, 1 > &value) const
template<class Result>
bool | valued_check () const
| _RHEOLEF_make_field_expr_v2_nonlinear_binary (operator+, details::plus) _RHEOLEF_make_field_expr_v2_nonlinear_binary(operator-
| _RHEOLEF_make_field_expr_v2_nonlinear_binary (operator*, details::multiplies) _RHEOLEF_make_field_expr_v2_nonlinear_binary(operator/

_RHEOLEF_make_field_expr_v2_nonlinear_binary_function (atan2) _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(pow) _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(fmod) _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(min) _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(max) _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(dot) _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(ddot) _RHEOLEF_make_field_expr_v2_nonlinear_binary_function(dddot) template< class Function

rheolef::std::enable_if< details::is_field_expr_v2_nonlinear_arg< Expr1 >::value &&! details::is_field_expr_v2_constant< Expr1 >::value &&details::is_field_expr_v2_nonlinear_arg< Expr2 >::value &&! details::is_field_expr_v2_constant< Expr2 >::value, details::field_expr_v2_nonlinear_node_binary< details::function_traits< Function >::functor_type, details::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr1 >::type, details::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr2 >::type > > type compose const Function f, const Expr1 expr1, const Expr2 expr2

compose (const Function &f, const Expr1 &expr1, const Expr2 &expr2)

template<class Function, class Expr1, class Expr2>

std::enable_if< details::is_field_expr_v2_nonlinear_arg< Expr1 >::value &&!details::is_field_expr_v2_constant< Expr1 >::value &&details::is_field_expr_v2_constant< Expr2 >::value, details::field_expr_v2_nonlinear_node_unary< details::binder_second< typenamedetails::function_traits< Function >::functor_type, typenamepromote< typenamedetails::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr1 >::type::value_type, Expr2 >::type >, typenamedetails::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr1 >::type > >::type

compose (const Function &f, const Expr1 &expr1, const Expr2 &expr2)

## Variables

class rheolef::details::field_expr_v2_nonlinear_node_unary | compose

## Macro Definition Documentation

## _RHEOLEF_evaluate_switch_specialization

#define _RHEOLEF_evaluate_switch_specialization | ( |  | VALUED,
|  |  | VALUE )

Value:
template<class This, class Result, class Arg> \
struct evaluate_switch <This, Result, Arg, VALUED> { \
typedef typename scalar_traits<Arg>::type T; \
typedef typename float_traits<Arg>::type float_type; \
\
void evaluate ( \
const This& obj, \
const geo_basic<float_type,memory_type>& omega_K, \
const geo_element& K, \
Eigen::Matrix<Result,Eigen::Dynamic,1>& value) const \
{ obj.template evaluate_call<Result, VALUE> (omega_K, K, value); } \
\
template<class M> \
void evaluate_on_side ( \
const This& obj, \
const geo_basic<float_type,M>& omega_K, \
const geo_element& K, \
const side_information_type& sid, \
Eigen::Matrix<Result,Eigen::Dynamic,1>& value) const \
{ obj.template evaluate_call<Result, VALUE> (omega_K, K, sid, value); } \
}; \
T
Expr1::float_type T
Definition field_expr.h:230

Definition at line 307 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator [1/2]

#define _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template<class Expr> \
inline \
typename \
std::enable_if< \
details::is_field_expr_v2_nonlinear_arg<Expr>::value \
&& ! details::is_field_expr_v2_constant <Expr>::value \
&& ! details::has_field_rdof_interface <Expr>::value \
,details::field_expr_v2_nonlinear_node_unary< \
FUNCTOR \
,typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr>::type \
> \
>::type \
FUNCTION (const Expr& expr) \
{ \
typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr>::type wrap_t; \
return details::field_expr_v2_nonlinear_node_unary <FUNCTOR,wrap_t> (FUNCTOR(), wrap_t(expr)); \
}

Definition at line 431 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator [2/2]

#define _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator | ( |  | FUNCTION,
|  |  | FUNCTOR )

Value:
template<class Expr> \
inline \
typename \
std::enable_if< \
( details::is_field_expr_v2_nonlinear_arg<Expr>::value \
|| details::is_field<Expr>::value) \
&& ! details::is_field_expr_v2_constant <Expr>::value \
,details::field_expr_v2_nonlinear_node_unary< \
FUNCTOR \
,typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr>::type \
> \
>::type \
FUNCTION (const Expr& expr) \
{ \
typedef typename details::field_expr_v2_nonlinear_terminal_wrapper_traits<Expr>::type wrap_t; \
return details::field_expr_v2_nonlinear_node_unary <FUNCTOR,wrap_t> (FUNCTOR(), wrap_t(expr)); \
}

Definition at line 431 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_unary_function

#define _RHEOLEF_make_field_expr_v2_nonlinear_unary_function | ( |  | FUNCTION | ) |

Value:
_RHEOLEF_make_field_expr_v2_nonlinear_unary_operator(FUNCTION, details::FUNCTION##_)
_RHEOLEF_make_field_expr_v2_nonlinear_unary_operator
#define _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator(FUNCTION, FUNCTOR)
Definition field_expr_recursive.h:431

Definition at line 475 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_binary [1/4]

#define _RHEOLEF_make_field_expr_v2_nonlinear_binary | ( |  | FUNCTION,
|  |  | FUNCTOR )

Definition at line 1043 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_binary [2/4]

#define _RHEOLEF_make_field_expr_v2_nonlinear_binary | ( |  | FUNCTION,
|  |  | FUNCTOR )

Definition at line 1043 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_binary [3/4]

#define _RHEOLEF_make_field_expr_v2_nonlinear_binary | ( |  | FUNCTION,
|  |  | FUNCTOR )

Definition at line 1043 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_binary [4/4]

#define _RHEOLEF_make_field_expr_v2_nonlinear_binary | ( |  | FUNCTION,
|  |  | FUNCTOR )

Definition at line 1043 of file field_expr_recursive.h.

## _RHEOLEF_make_field_expr_v2_nonlinear_binary_function

#define _RHEOLEF_make_field_expr_v2_nonlinear_binary_function | ( |  | FUNCTION | ) |

Value:
_RHEOLEF_make_field_expr_v2_nonlinear_binary (FUNCTION, details::FUNCTION##_) \
_RHEOLEF_make_field_expr_v2_nonlinear_binary
#define _RHEOLEF_make_field_expr_v2_nonlinear_binary(FUNCTION, FUNCTOR)
Definition field_expr_recursive.h:1043

Definition at line 1394 of file field_expr_recursive.h.

## Typedef Documentation

## fun_wrap_t

typedef details::function_traits< Function >::functor_type fun_wrap_t

Definition at line 1433 of file field_expr_recursive.h.

## expr1_wrap_t

typedef details::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr1 >::type expr1_wrap_t

Definition at line 1434 of file field_expr_recursive.h.

## expr2_wrap_t

typedef details::field_expr_v2_nonlinear_terminal_wrapper_traits< Expr2 >::type expr2_wrap_t

Definition at line 1435 of file field_expr_recursive.h.