1# ifndef _RHEOLEF_FORM_LAZY_TERMINAL_H
2# define _RHEOLEF_FORM_LAZY_TERMINAL_H
34#include "rheolef/form.h"
35#include "rheolef/field_lazy_form_mult.h"
49template<
class Derived>
54 template<
class FieldExpr>
55 typename std::enable_if<
65 template<
class T,
class M>
73 Derived&
derived() {
return *
static_cast< Derived*
>(
this); }
74 const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
149 _iopt._is_on_interface =
false;
150 _iopt._is_inside_on_local_sides =
false;
167 _expr.evaluate (omega_K, K, ak);
197 :
base1(new_macro(
rep(domain,expr,iopt))),
292 "integrate on band: unexpected integration domain");
294 "do_integrate: incompatible integration domain "<<
_gh.level_set().name() <<
" and test function based domain "
295 << bgd_omega.name());
313 _expr.evaluate (omega_K, K, ak);
370 ,details::form_lazy_terminal_integrate_band <Expr>
375 typename Expr::memory_type>&
gh,
384 details::is_form_expr_v2_variational_arg<Expr>::value
385 ,details::form_lazy_terminal_integrate_band <details::form_expr_quadrature_on_element<Expr>>
390 typename Expr::memory_type>&
gh,
field gh(Float epsilon, Float t, const field &uh, const test &v)
see the band page for the full documentation
see the geo_element page for the full documentation
reference_element::size_type size_type
see the integrate_option page for the full documentation
smart_pointer_nocopy(form_lazy_terminal_integrate_rep< Expr > *p=0)
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
#define trace_macro(message)
void get_geo(istream &in, my_geo &omega)
check_macro(expr1.have_homogeneous_space(Xh1), "dual(expr1,expr2); expr1 should have homogeneous space. HINT: use dual(interpolate(Xh, expr1),expr2)")
This file is part of Rheolef.
std::enable_if< details::is_field_expr_quadrature_arg< Expr >::value, details::field_lazy_terminal_integrate< Expr > >::type lazy_integrate(const typename Expr::geo_type &domain, const Expr &expr, const integrate_option &iopt=integrate_option())
see the integrate page for the full documentation