Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Public Member Functions | Private Member Functions | List of all members
QSorted< dim > Class Template Reference

#include <deal.II/base/quadrature_lib.h>

Inheritance diagram for QSorted< dim >:
[legend]

Public Member Functions

 QSorted (const Quadrature< dim > &quad)
 
- Public Member Functions inherited from Quadrature< dim >
 Quadrature (const unsigned int n_quadrature_points=0)
 
 Quadrature (const SubQuadrature &, const Quadrature< 1 > &)
 
 Quadrature (const Quadrature< dim !=1 ? 1 :0 > &quadrature_1d)
 
 Quadrature (const Quadrature< dim > &q)
 
 Quadrature (Quadrature< dim > &&) noexcept=default
 
 Quadrature (const std::vector< Point< dim >> &points, const std::vector< double > &weights)
 
 Quadrature (const std::vector< Point< dim >> &points)
 
 Quadrature (const Point< dim > &point)
 
virtual ~Quadrature () override=default
 
Quadratureoperator= (const Quadrature< dim > &)
 
Quadratureoperator= (Quadrature< dim > &&)=default
 
bool operator== (const Quadrature< dim > &p) const
 
void initialize (const std::vector< Point< dim >> &points, const std::vector< double > &weights)
 
unsigned int size () const
 
const Point< dim > & point (const unsigned int i) const
 
const std::vector< Point< dim > > & get_points () const
 
double weight (const unsigned int i) const
 
const std::vector< double > & get_weights () const
 
std::size_t memory_consumption () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
bool is_tensor_product () const
 
const std::array< Quadrature< 1 >, dim > & get_tensor_basis () const
 
 Quadrature (const unsigned int n_q)
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
 Subscriptor (Subscriptor &&) noexcept
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
Subscriptoroperator= (Subscriptor &&) noexcept
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
unsigned int n_subscriptions () const
 
template<typename StreamType >
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Member Functions

bool compare_weights (const unsigned int a, const unsigned int b) const
 

Additional Inherited Members

- Public Types inherited from Quadrature< dim >
using SubQuadrature = Quadrature< dim - 1 >
 
- Static Public Member Functions inherited from Subscriptor
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 
- Protected Attributes inherited from Quadrature< dim >
std::vector< Point< dim > > quadrature_points
 
std::vector< doubleweights
 
bool is_tensor_product_flag
 
std::unique_ptr< std::array< Quadrature< 1 >, dim > > tensor_basis
 

Detailed Description

template<int dim>
class QSorted< dim >

Sorted Quadrature. Given an arbitrary quadrature formula, this class generates a quadrature formula where the quadrature points are ordered according the weights, from those with smaller corresponding weight, to those with higher corresponding weights. This might be necessary, for example, when integrating high order polynomials, since in these cases you might sum very big numbers with very small numbers, and summation is not stable if the numbers to sum are not close to each other.

Definition at line 391 of file quadrature_lib.h.

Constructor & Destructor Documentation

◆ QSorted()

template<int dim>
QSorted< dim >::QSorted ( const Quadrature< dim > &  quad)

The constructor takes an arbitrary quadrature formula quad and sorts its points and weights according to ascending weights.

Definition at line 769 of file quadrature_lib.cc.

Member Function Documentation

◆ compare_weights()

template<int dim>
bool QSorted< dim >::compare_weights ( const unsigned int  a,
const unsigned int  b 
) const
private

A rule for std::sort to reorder pairs of points and weights. a and b are indices into the weights array and the result will be determined by comparing the weights.

Definition at line 801 of file quadrature_lib.cc.


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