QUGaR 0.0.4
Loading...
Searching...
No Matches
qugar::Quadrature< dim > Class Template Reference

Class for storing dim-dimensional quadratures (non-tensor product). More...

#include <quadrature.hpp>

Public Types

using Pt = Point<dim>
 Point type.
 
using Domain = std::conditional_t<dim == 1, Interval, BoundBox<dim>>
 Domain type.
 

Public Member Functions

 Quadrature ()=delete
 Default constructor.
 
 Quadrature (const std::vector< Pt > &points, const std::vector< real > &weights)
 Constructor.
 
void scale_weights (const real ratio)
 Scales the weights multiplying them by the given ratio.
 
const std::vector< Pt > & points () const
 Returns the vector of points.
 
const std::vector< real > & weights () const
 Returns the vector of weights.
 
std::vector< Pt > & points ()
 Returns the vector of points.
 
std::vector< real > & weights ()
 Returns the vector of weights.
 
std::size_t get_num_points () const
 Returns the number of points (and weights).
 

Static Public Member Functions

static std::shared_ptr< Quadraturecreate_Gauss_01 (int n_points)
 Creates a new quadrature class instance with a Gauss-Legendre quadrature in [0, 1].
 
static std::shared_ptr< Quadraturecreate_Gauss_01 (const std::array< int, dim > n_points)
 Creates a new quadrature class instance with a Gauss-Legendre quadrature in [0, 1].
 
static std::shared_ptr< Quadraturecreate_Gauss (const std::array< int, dim > n_points, const Domain &domain)
 Creates a new quadrature class instance with a Gauss-Legendre quadrature in the domain box.
 
static std::shared_ptr< Quadraturecreate_tanh_sinh_01 (int n_points)
 Creates a new quadrature class instance with a tanh-sinh quadrature in [0, 1].
 
static std::shared_ptr< Quadraturecreate_tanh_sinh_01 (const std::array< int, dim > n_points)
 Creates a new quadrature class instance with a tanh-sinh quadrature in [0, 1].
 
static std::shared_ptr< Quadraturecreate_tanh_sinh (const std::array< int, dim > n_points, const Domain &domain)
 Creates a new quadrature class instance with a tanh-sinh quadrature in the domain box.
 

Static Private Member Functions

template<typename QuadType >
static std::shared_ptr< Quadrature< dim > > create_tp_quadrature (const std::array< int, dim > n_points, const Domain &domain)
 Creates a tensor-product quadrature.
 

Private Attributes

std::vector< Ptpoints_
 Vector of points.
 
std::vector< realweights_
 Vector of weights.
 

Detailed Description

template<int dim>
class qugar::Quadrature< dim >

Class for storing dim-dimensional quadratures (non-tensor product).

Member Typedef Documentation

◆ Domain

template<int dim>
using qugar::Quadrature< dim >::Domain = std::conditional_t<dim == 1, Interval, BoundBox<dim>>

Domain type.

◆ Pt

template<int dim>
using qugar::Quadrature< dim >::Pt = Point<dim>

Point type.

Constructor & Destructor Documentation

◆ Quadrature() [1/2]

template<int dim>
qugar::Quadrature< dim >::Quadrature ( )
delete

Default constructor.

Warning
Not allowed to be used.

◆ Quadrature() [2/2]

template<int dim>
qugar::Quadrature< dim >::Quadrature ( const std::vector< Pt > & points,
const std::vector< real > & weights )

Constructor.

Parameters
pointsVector of points referred to [0, 1].
weightsVector of weights referred to [0, 1].
Note
points and weight must have the same length.

Member Function Documentation

◆ create_Gauss()

template<int dim>
static std::shared_ptr< Quadrature > qugar::Quadrature< dim >::create_Gauss ( const std::array< int, dim > n_points,
const Domain & domain )
staticnodiscard

Creates a new quadrature class instance with a Gauss-Legendre quadrature in the domain box.

Parameters
n_pointsNumber of points of the quadrature rule in each parametric direction.
domainDomain in which the quadrature is created.
Returns
Gauss-Legendre quadrature rule wrapped in a shared pointer.

◆ create_Gauss_01() [1/2]

template<int dim>
static std::shared_ptr< Quadrature > qugar::Quadrature< dim >::create_Gauss_01 ( const std::array< int, dim > n_points)
staticnodiscard

Creates a new quadrature class instance with a Gauss-Legendre quadrature in [0, 1].

Parameters
n_pointsNumber of points of the quadrature rule in each parametric direction.
Returns
Gauss-Legendre quadrature rule wrapped in a shared pointer.

◆ create_Gauss_01() [2/2]

template<int dim>
static std::shared_ptr< Quadrature > qugar::Quadrature< dim >::create_Gauss_01 ( int n_points)
staticnodiscard

Creates a new quadrature class instance with a Gauss-Legendre quadrature in [0, 1].

Parameters
n_pointsNumber of points of the quadrature rule along all the parametric directions.
Returns
Gauss-Legendre quadrature rule wrapped in a shared pointer.

◆ create_tanh_sinh()

template<int dim>
static std::shared_ptr< Quadrature > qugar::Quadrature< dim >::create_tanh_sinh ( const std::array< int, dim > n_points,
const Domain & domain )
staticnodiscard

Creates a new quadrature class instance with a tanh-sinh quadrature in the domain box.

Parameters
n_pointsNumber of points of the quadrature rule in each parametric direction.
domainDomain in which the quadrature is created.
Returns
Tanh-sinh quadrature rule wrapped in a shared pointer.

◆ create_tanh_sinh_01() [1/2]

template<int dim>
static std::shared_ptr< Quadrature > qugar::Quadrature< dim >::create_tanh_sinh_01 ( const std::array< int, dim > n_points)
staticnodiscard

Creates a new quadrature class instance with a tanh-sinh quadrature in [0, 1].

Parameters
n_pointsNumber of points of the quadrature rule in each parametric direction.
Returns
Tanh-sinh quadrature rule wrapped in a shared pointer.

◆ create_tanh_sinh_01() [2/2]

template<int dim>
static std::shared_ptr< Quadrature > qugar::Quadrature< dim >::create_tanh_sinh_01 ( int n_points)
staticnodiscard

Creates a new quadrature class instance with a tanh-sinh quadrature in [0, 1].

Parameters
n_pointsNumber of points of the quadrature rule along all the parametric directions.
Returns
Tanh-sinh quadrature rule wrapped in a shared pointer.

◆ create_tp_quadrature()

template<int dim>
template<typename QuadType >
static std::shared_ptr< Quadrature< dim > > qugar::Quadrature< dim >::create_tp_quadrature ( const std::array< int, dim > n_points,
const Domain & domain )
staticnodiscardprivate

Creates a tensor-product quadrature.

Template Parameters
QuadTypeType of 1D quadrature to use.
Parameters
n_pointsNumber of points of the quadrature rule in each parametric direction.
domainDomain in which the quadrature is created.
Returns
Computed quadrature wrapped in a shared pointer.

◆ get_num_points()

template<int dim>
std::size_t qugar::Quadrature< dim >::get_num_points ( ) const
nodiscard

Returns the number of points (and weights).

Returns
Number of points.

◆ points() [1/2]

template<int dim>
std::vector< Pt > & qugar::Quadrature< dim >::points ( )
nodiscard

Returns the vector of points.

Returns
Non-constant reference to the vector of points.

◆ points() [2/2]

template<int dim>
const std::vector< Pt > & qugar::Quadrature< dim >::points ( ) const
nodiscard

Returns the vector of points.

Returns
Constant reference to the vector of points.

◆ scale_weights()

template<int dim>
void qugar::Quadrature< dim >::scale_weights ( const real ratio)

Scales the weights multiplying them by the given ratio.

Parameters
ratioRatio respect to which the weights are scaled.

◆ weights() [1/2]

template<int dim>
std::vector< real > & qugar::Quadrature< dim >::weights ( )
nodiscard

Returns the vector of weights.

Returns
Non-constant reference to the vector of weights.

◆ weights() [2/2]

template<int dim>
const std::vector< real > & qugar::Quadrature< dim >::weights ( ) const
nodiscard

Returns the vector of weights.

Returns
Constant reference to the vector of weights.

Member Data Documentation

◆ points_

template<int dim>
std::vector<Pt> qugar::Quadrature< dim >::points_
private

Vector of points.

◆ weights_

template<int dim>
std::vector<real> qugar::Quadrature< dim >::weights_
private

Vector of weights.


The documentation for this class was generated from the following file: