Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >

Detailed Description

template<class UnaryFunction, class Expr>
class rheolef::details::field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >

Definition at line 59 of file field_expr_recursive.h.

Classes

struct  const_iterator
 
struct  evaluate_call_check
 
struct  evaluate_call_check< Result, Arg, std::true_type >
 
struct  evaluate_switch
 
struct  evaluate_switch< This, Result, Arg, space_constant::last_valued >
 

Public Types

using size_type = geo_element::size_type
 
using memory_type = typename Expr::memory_type
 
using result_type = typename details::generic_unary_traits< UnaryFunction >::template result_hint< typename Expr::result_type >::type
 
using value_type = result_type
 
using scalar_type = typename scalar_traits< value_type >::type
 
using float_type = typename float_traits< scalar_type >::type
 
using geo_type = geo_basic< float_type, memory_type >
 
using band_type = band_basic< float_type, memory_type >
 
using space_type = space_basic< float_type, memory_type >
 
using self_type = field_expr_v2_nonlinear_node_unary< UnaryFunction, Expr >
 
using is_affine_homogeneous = and_type< or_type< std::is_same< UnaryFunction, details::unary_plus >,std::is_same< UnaryFunction, details::negate >,std::is_same< UnaryFunction, details::binder_first< details::plus, scalar_type > >,std::is_same< UnaryFunction, details::binder_second< details::plus, scalar_type > >,std::is_same< UnaryFunction, details::binder_first< details::minus, scalar_type > >,std::is_same< UnaryFunction, details::binder_second< details::minus, scalar_type > >,std::is_same< UnaryFunction, details::binder_first< details::multiplies, scalar_type > >,std::is_same< UnaryFunction, details::binder_second< details::multiplies, scalar_type > >,std::is_same< UnaryFunction, details::binder_second< details::divides, scalar_type > > >,is_field_expr_affine_homogeneous< Expr > >
 

Public Member Functions

 field_expr_v2_nonlinear_node_unary (const UnaryFunction &f, const Expr &expr)
 
bool have_homogeneous_space (space_basic< scalar_type, memory_type > &Vh) const
 
const_iterator begin_dof () const
 
const Expr & expr () 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 Arg , 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 Arg , 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
 

Public Attributes

_RHEOLEF_evaluate_switch_specialization(space_constant::scalar, T) _RHEOLEF_evaluate_switch_specialization(space_constant Expr _expr
 
std::array< Eigen::Matrix< scalar_type, Eigen::Dynamic, 1 >,reference_element::max_variant_scalar_val
 
std::array< Eigen::Matrix< point_basic< scalar_type >, Eigen::Dynamic, 1 >,reference_element::max_variant_vector_val
 
std::array< Eigen::Matrix< tensor_basic< scalar_type >, Eigen::Dynamic, 1 >,reference_element::max_variant_tensor_val
 
std::array< Eigen::Matrix< tensor3_basic< scalar_type >, Eigen::Dynamic, 1 >,reference_element::max_variant_tensor3_val
 
std::array< Eigen::Matrix< tensor4_basic< scalar_type >, Eigen::Dynamic, 1 >,reference_element::max_variant_tensor4_val
 

Static Public Attributes

static const space_constant::valued_type valued_hint = space_constant::valued_tag_traits<result_type>::value
 

Member Typedef Documentation

◆ size_type

template<class UnaryFunction , class Expr >
using size_type = geo_element::size_type

Definition at line 63 of file field_expr_recursive.h.

◆ memory_type

template<class UnaryFunction , class Expr >
using memory_type = typename Expr::memory_type

Definition at line 64 of file field_expr_recursive.h.

◆ result_type

template<class UnaryFunction , class Expr >
using result_type = typename details::generic_unary_traits<UnaryFunction>::template result_hint<typename Expr::result_type>::type

Definition at line 65 of file field_expr_recursive.h.

◆ value_type

template<class UnaryFunction , class Expr >
using value_type = result_type

Definition at line 66 of file field_expr_recursive.h.

◆ scalar_type

template<class UnaryFunction , class Expr >
using scalar_type = typename scalar_traits<value_type>::type

Definition at line 67 of file field_expr_recursive.h.

◆ float_type

template<class UnaryFunction , class Expr >
using float_type = typename float_traits<scalar_type>::type

Definition at line 68 of file field_expr_recursive.h.

◆ geo_type

template<class UnaryFunction , class Expr >
using geo_type = geo_basic<float_type,memory_type>

Definition at line 69 of file field_expr_recursive.h.

◆ band_type

template<class UnaryFunction , class Expr >
using band_type = band_basic<float_type,memory_type>

Definition at line 70 of file field_expr_recursive.h.

◆ space_type

template<class UnaryFunction , class Expr >
using space_type = space_basic<float_type,memory_type>

Definition at line 71 of file field_expr_recursive.h.

◆ self_type

template<class UnaryFunction , class Expr >
using self_type = field_expr_v2_nonlinear_node_unary<UnaryFunction,Expr>

Definition at line 72 of file field_expr_recursive.h.

◆ is_affine_homogeneous

template<class UnaryFunction , class Expr >
using is_affine_homogeneous = and_type< or_type< std::is_same<UnaryFunction,details::unary_plus> ,std::is_same<UnaryFunction,details::negate> ,std::is_same<UnaryFunction,details::binder_first <details::plus, scalar_type> > ,std::is_same<UnaryFunction,details::binder_second<details::plus, scalar_type> > ,std::is_same<UnaryFunction,details::binder_first <details::minus, scalar_type> > ,std::is_same<UnaryFunction,details::binder_second<details::minus, scalar_type> > ,std::is_same<UnaryFunction,details::binder_first <details::multiplies,scalar_type> > ,std::is_same<UnaryFunction,details::binder_second<details::multiplies,scalar_type> > ,std::is_same<UnaryFunction,details::binder_second<details::divides, scalar_type> > > ,is_field_expr_affine_homogeneous<Expr> >

Definition at line 82 of file field_expr_recursive.h.

Constructor & Destructor Documentation

◆ field_expr_v2_nonlinear_node_unary()

template<class UnaryFunction , class Expr >
field_expr_v2_nonlinear_node_unary ( const UnaryFunction &  f,
const Expr &  expr 
)

Definition at line 403 of file field_expr_recursive.h.

Member Function Documentation

◆ have_homogeneous_space()

template<class UnaryFunction , class Expr >
bool have_homogeneous_space ( space_basic< scalar_type, memory_type > &  Vh) const

Definition at line 98 of file field_expr_recursive.h.

◆ begin_dof()

template<class UnaryFunction , class Expr >
const_iterator begin_dof ( ) const

Definition at line 117 of file field_expr_recursive.h.

◆ expr()

template<class UnaryFunction , class Expr >
const Expr & expr ( ) const

Definition at line 125 of file field_expr_recursive.h.

◆ valued_tag()

template<class UnaryFunction , class Expr >
space_constant::valued_type valued_tag ( ) const

Definition at line 127 of file field_expr_recursive.h.

◆ initialize() [1/2]

template<class UnaryFunction , class Expr >
void initialize ( const piola_on_pointset< float_type > &  pops,
const integrate_option iopt 
)

Definition at line 145 of file field_expr_recursive.h.

◆ initialize() [2/2]

template<class UnaryFunction , class Expr >
void initialize ( const space_basic< float_type, memory_type > &  Xh,
const piola_on_pointset< float_type > &  pops,
const integrate_option iopt 
)

Definition at line 150 of file field_expr_recursive.h.

◆ evaluate_call() [1/2]

template<class UnaryFunction , class Expr >
template<class Result , class Arg , 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

Definition at line 223 of file field_expr_recursive.h.

◆ evaluate_call() [2/2]

template<class UnaryFunction , class Expr >
template<class Result , class Arg , 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

Definition at line 241 of file field_expr_recursive.h.

Member Data Documentation

◆ valued_hint

template<class UnaryFunction , class Expr >
const space_constant::valued_type valued_hint = space_constant::valued_tag_traits<result_type>::value
static

Definition at line 124 of file field_expr_recursive.h.

◆ _expr

template<class UnaryFunction , class Expr >
_RHEOLEF_evaluate_switch_specialization (space_constant::scalar,T) _RHEOLEF_evaluate_switch_specialization(space_constant Expr _expr

Definition at line 382 of file field_expr_recursive.h.

◆ _scalar_val

template<class UnaryFunction , class Expr >
std::array< Eigen::Matrix<scalar_type,Eigen::Dynamic,1> ,reference_element::max_variant> _scalar_val
mutable

Definition at line 387 of file field_expr_recursive.h.

◆ _vector_val

template<class UnaryFunction , class Expr >
std::array< Eigen::Matrix<point_basic<scalar_type>,Eigen::Dynamic,1> ,reference_element::max_variant> _vector_val
mutable

Definition at line 390 of file field_expr_recursive.h.

◆ _tensor_val

template<class UnaryFunction , class Expr >
std::array< Eigen::Matrix<tensor_basic<scalar_type>,Eigen::Dynamic,1> ,reference_element::max_variant> _tensor_val
mutable

Definition at line 393 of file field_expr_recursive.h.

◆ _tensor3_val

template<class UnaryFunction , class Expr >
std::array< Eigen::Matrix<tensor3_basic<scalar_type>,Eigen::Dynamic,1> ,reference_element::max_variant> _tensor3_val
mutable

Definition at line 396 of file field_expr_recursive.h.

◆ _tensor4_val

template<class UnaryFunction , class Expr >
std::array< Eigen::Matrix<tensor4_basic<scalar_type>,Eigen::Dynamic,1> ,reference_element::max_variant> _tensor4_val
mutable

Definition at line 399 of file field_expr_recursive.h.


The documentation for this class was generated from the following file: