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

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  std
 
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)    _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator(FUNCTION, details::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)    _RHEOLEF_make_field_expr_v2_nonlinear_binary (FUNCTION, details::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 ::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); } \
}; \
Expr1::float_type T
Definition field_expr.h:230

Definition at line 308 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)     _RHEOLEF_make_field_expr_v2_nonlinear_unary_operator(FUNCTION, details::FUNCTION##_)

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 1044 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 1044 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 1044 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 1044 of file field_expr_recursive.h.

◆ _RHEOLEF_make_field_expr_v2_nonlinear_binary_function

#define _RHEOLEF_make_field_expr_v2_nonlinear_binary_function (   FUNCTION)     _RHEOLEF_make_field_expr_v2_nonlinear_binary (FUNCTION, details::FUNCTION##_) \

Definition at line 1395 of file field_expr_recursive.h.

Typedef Documentation

◆ fun_wrap_t

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

Definition at line 1434 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 1435 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 1436 of file field_expr_recursive.h.