1# ifndef _RHEOLEF_FIELD_CONCEPT_H
2# define _RHEOLEF_FIELD_CONCEPT_H
28#include "rheolef/space_constant.h"
30namespace rheolef {
namespace details {
33template<
class FieldWdof,
class Sfinae =
void>
37template<
class FieldWdof,
class Sfinae =
void>
41template<
class FieldWdof,
class Sfinae =
void>
44template<
class FieldWdof>
46 is_field_wdof<FieldWdof>::value>
::type> : std::true_type {};
48template<
class FieldWdof>
50 is_field<FieldWdof>::value>
::type> : std::true_type {};
53template<
class FieldRdof,
class Sfinae =
void>
57template<
class FieldRdof,
class Sfinae =
void>
60template<
class FieldRdof>
62 is_field_rdof<FieldRdof>::value>
::type> : std::true_type {};
64template<
class FieldRdof>
66 has_field_wdof_interface<FieldRdof>::value>
::type> : std::true_type {};
69template<
class FieldLazy,
class Sfinae =
void>
73template<
class FieldLazy,
class Sfinae =
void>
76template<
class FieldLazy>
78 is_field_lazy<FieldLazy>::value>
::type> : std::true_type {};
80template<
class FieldLazy>
82 has_field_rdof_interface<FieldLazy>::value>
::type> : std::true_type {};
87template<
class Expr,
class Sfinae =
void>
91 is_field_expr_v2_constant<Expr>::value>
::type> : std::true_type {};
94 has_field_rdof_interface<Expr>::value>
::type> : std::true_type {};
99template<
class FieldLazy,
class Sfinae =
void>
103 is_field_expr_v2_constant<Expr>::value>
::type> : std::true_type {};
106 has_field_rdof_interface<Expr>::value>
::type> : std::true_type {};
124 std::negation<has_field_lazy_interface<F>>
129 is_callable<F, Float (const point&) const>
130 ,is_callable<F, point (const point&) const>
131 ,is_callable<F, tensor (const point&) const>
132 ,is_callable<F, tensor3(const point&) const>
133 ,is_callable<F, tensor4(const point&) const>
137 ,is_callable<F,typename get_functor_result<F>::type (const point&) const>
141> : std::true_type {};
146 typename
std::enable_if<
148 is_field_true_function<F>
152> : std::true_type {};
160 typename
std::enable_if<
161 is_field_true_function<F>::value
167 typename
std::enable_if<
168 is_field_functor<F>::value
This file is part of Rheolef.
functor_traits< F >::result_type result_type
function_traits< F >::result_type result_type