1 # ifndef _RHEOLEF_FIELD_CONCEPT_H
2 # define _RHEOLEF_FIELD_CONCEPT_H
28 #include "rheolef/space_constant.h"
30 namespace rheolef {
namespace details {
33 template<
class FieldWdof,
class Sfinae =
void>
37 template<
class FieldWdof,
class Sfinae =
void>
41 template<
class FieldWdof,
class Sfinae =
void>
44 template<
class FieldWdof>
46 is_field_wdof<FieldWdof>::value>
::type> : std::true_type {};
48 template<
class FieldWdof>
50 is_field<FieldWdof>::value>
::type> : std::true_type {};
53 template<
class FieldRdof,
class Sfinae =
void>
57 template<
class FieldRdof,
class Sfinae =
void>
60 template<
class FieldRdof>
62 is_field_rdof<FieldRdof>::value>
::type> : std::true_type {};
64 template<
class FieldRdof>
66 has_field_wdof_interface<FieldRdof>::value>
::type> : std::true_type {};
69 template<
class FieldLazy,
class Sfinae =
void>
73 template<
class FieldLazy,
class Sfinae =
void>
76 template<
class FieldLazy>
78 is_field_lazy<FieldLazy>::value>
::type> : std::true_type {};
80 template<
class FieldLazy>
82 has_field_rdof_interface<FieldLazy>::value>
::type> : std::true_type {};
87 template<
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 {};
99 template<
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