integrate_numeric.icc
Go to the documentation of this file.
#ifndef _RHEO_INTEGRATE_INTERNAL_ICC
#define _RHEO_INTEGRATE_INTERNAL_ICC
#include "rheolef/geo_domain.h"
#include "rheolef/integrate.h"
namespace rheolef { namespace details{
// ----------------------------------------------
// numeric integration
// ----------------------------------------------
template <class T, class M, class Expr>
T
integrate_internal (const geo_basic<T,M>& omega, const rheolef::field_nonlinear_expr<Expr>& f, const quadrature_option& qopt, const T&)
{
if (omega.map_dimension() < omega.get_background_geo().map_dimension()) {
omega.get_background_geo().neighbour_guard();
}
space_basic<T,M> Xh (omega, "P0");
test v (Xh);
field_basic<T,M> lh = integrate (omega, f*v, qopt);
return dual (1, lh);
}
template <class T, class M, class Expr>
typename rheolef::field_nonlinear_expr<Expr>::scalar_type
integrate_numeric (const geo_basic<T,M>& omega, const rheolef::field_nonlinear_expr<Expr>& f, const quadrature_option& qopt)
{
typedef typename rheolef::field_nonlinear_expr<Expr>::scalar_type scalar_type;
return integrate_internal (omega, f, qopt, scalar_type());
}
}}// namespace rheolef::details
#endif // _RHEO_INTEGRATE_INTERNAL_ICC
rheolef::geo_basic< T, M >
rheolef::details::dual
rheolef::details::is_field_expr_quadrature_arg dual
rheolef::details::integrate_internal
T integrate_internal(const geo_basic< T, M > &omega, const rheolef::field_nonlinear_expr< Expr > &f, const quadrature_option &qopt, const T &)
Definition: integrate_numeric.icc:33
rheolef::integrate
std::enable_if< details::is_field_expr_v2_nonlinear_arg< Expr >::value &&! is_undeterminated< Result >::value, Result >::type integrate(const geo_basic< T, M > &omega, const Expr &expr, const integrate_option &iopt, Result dummy=Result())
see the integrate page for the full documentation
Definition: integrate.h:202
rheolef::space_basic
the finite element space
Definition: space.h:352
rheolef::field_basic
Definition: field_expr_utilities.h:38
lh
field lh(Float epsilon, Float t, const test &v)
Definition: burgers_diffusion_operators.icc:25
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
test
see the test page for the full documentation
rheolef::scalar_type
typename scalar_traits< value_type >::type scalar_type
Definition: field_expr_recursive.h:500
rheolef::details::integrate_numeric
rheolef::field_nonlinear_expr< Expr >::scalar_type integrate_numeric(const geo_basic< T, M > &omega, const rheolef::field_nonlinear_expr< Expr > &f, const quadrature_option &qopt)
Definition: integrate_numeric.icc:45
f
Definition: cavity_dg.h:29
rheolef::quadrature_option
integrate_option quadrature_option
Definition: integrate_option.h:186
T
Expr1::float_type T
Definition: field_expr.h:218