AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
evaluate_integral.hpp File Reference

Consists of methods that evaluate integrals over regions defined by Bezier curves, such as 2D area integrals and scalar/vector field line integrals. More...

#include "axom/config.hpp"
#include "axom/primal.hpp"
#include "axom/primal/operators/detail/evaluate_integral_impl.hpp"
#include <cmath>

Namespaces

 axom
 
 axom::primal
 

Functions

template<typename Lambda , typename T , int NDIMS>
double axom::primal::evaluate_scalar_line_integral (const primal::CurvedPolygon< T, NDIMS > cpoly, Lambda &&scalar_integrand, int npts)
 Evaluate a line integral along the boundary of a CurvedPolygon object on a scalar field. More...
 
template<typename Lambda , typename T , int NDIMS>
double axom::primal::evaluate_scalar_line_integral (const primal::BezierCurve< T, NDIMS > &c, Lambda &&scalar_integrand, int npts)
 Evaluate a line integral on a single Bezier curve on a scalar field. More...
 
template<typename Lambda , typename T , int NDIMS>
double axom::primal::evaluate_vector_line_integral (const primal::CurvedPolygon< T, NDIMS > cpoly, Lambda &&vector_integrand, int npts)
 Evaluate a line integral along the boundary of a CurvedPolygon object on a vector field. More...
 
template<typename Lambda , typename T , int NDIMS>
double axom::primal::evaluate_vector_line_integral (const primal::BezierCurve< T, NDIMS > &c, Lambda &&vector_integrand, int npts)
 Evaluate a line integral on a single Bezier curve on a vector field. More...
 
template<class Lambda , typename T >
double axom::primal::evaluate_area_integral (const primal::CurvedPolygon< T, 2 > cpoly, Lambda &&integrand, int npts_Q, int npts_P=0)
 Evaluate an integral on the interior of a CurvedPolygon object. More...
 

Detailed Description

Consists of methods that evaluate integrals over regions defined by Bezier curves, such as 2D area integrals and scalar/vector field line integrals.

Line integrals are computed with 1D quadrature rules supplied by MFEM. 2D area integrals computed with "Spectral Mesh-Free Quadrature for Planar Regions Bounded by Rational Parametric Curves" by David Gunderman et al.

Note
This requires the MFEM third-party library