Reference documentation for deal.II version 9.4.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 Types | Public Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | List of all members
QGaussLog< dim > Class Template Reference

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

Inheritance diagram for QGaussLog< dim >:
[legend]

Public Types

using SubQuadrature = Quadrature< dim==0 ? 0 :dim - 1 >
 

Public Member Functions

 QGaussLog (const unsigned int n, const bool revert=false)
 
 QGaussLog (const unsigned int n, const bool revert)
 
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
 

Protected Attributes

std::vector< Point< dim > > quadrature_points
 
std::vector< double > weights
 
bool is_tensor_product_flag
 
std::unique_ptr< std::array< Quadrature< 1 >, dim > > tensor_basis
 

Private Member Functions

std::vector< double > get_quadrature_points (const unsigned int n)
 
std::vector< double > get_quadrature_weights (const unsigned int n)
 

Static Private Member Functions

static std::vector< double > get_quadrature_points (const unsigned int n)
 
static std::vector< double > get_quadrature_weights (const unsigned int n)
 

Subscriptor functionality

Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class.

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
 
void check_no_subscribers () const noexcept
 
using map_value_type = decltype(counter_map)::value_type
 
using map_iterator = decltype(counter_map)::iterator
 
std::atomic< unsigned intcounter
 
std::map< std::string, unsigned intcounter_map
 
std::vector< std::atomic< bool > * > validity_pointers
 
const std::type_info * object_info
 
static std::mutex mutex
 
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

template<int dim>
class QGaussLog< dim >

A class for Gauss quadrature with logarithmic weighting function. This formula is used to integrate \(\ln|x|\;f(x)\) on the interval \([0,1]\), where \(f\) is a smooth function without singularities. The collection of quadrature points and weights has been obtained using Numerical Recipes.

Notice that only the function \(f(x)\) should be provided, i.e., \(\int_0^1 f(x) \ln|x| dx = \sum_{i=0}^N w_i f(q_i)\). Setting the revert flag to true at construction time switches the weight from \(\ln|x|\) to \(\ln|1-x|\).

The weights and functions have been tabulated up to order 12.

Definition at line 189 of file quadrature_lib.h.

Member Typedef Documentation

◆ SubQuadrature

template<int dim>
using Quadrature< dim >::SubQuadrature = Quadrature<dim == 0 ? 0 : dim - 1>
inherited

Define an alias for a quadrature that acts on an object of one dimension less. For cells, this would then be a face quadrature. A sub quadrature of a 0-dimensional quadrature is defined as still being 0-dimensional.

Definition at line 94 of file quadrature.h.

Constructor & Destructor Documentation

◆ QGaussLog() [1/2]

template<int dim>
QGaussLog< dim >::QGaussLog ( const unsigned int  n,
const bool  revert = false 
)

Generate a formula with n quadrature points

◆ QGaussLog() [2/2]

QGaussLog< 1 >::QGaussLog ( const unsigned int  n,
const bool  revert 
)

Definition at line 252 of file quadrature_lib.cc.

Member Function Documentation

◆ get_quadrature_points() [1/2]

template<int dim>
static std::vector< double > QGaussLog< dim >::get_quadrature_points ( const unsigned int  n)
staticprivate

Compute the points of the quadrature formula.

◆ get_quadrature_weights() [1/2]

template<int dim>
static std::vector< double > QGaussLog< dim >::get_quadrature_weights ( const unsigned int  n)
staticprivate

Compute the weights of the quadrature formula.

◆ get_quadrature_points() [2/2]

std::vector< double > QGaussLog< 1 >::get_quadrature_points ( const unsigned int  n)
private

Definition at line 271 of file quadrature_lib.cc.

◆ get_quadrature_weights() [2/2]

std::vector< double > QGaussLog< 1 >::get_quadrature_weights ( const unsigned int  n)
private

Definition at line 404 of file quadrature_lib.cc.

◆ operator==()

template<int dim>
bool Quadrature< dim >::operator== ( const Quadrature< dim > &  p) const
inherited

Test for equality of two quadratures.

Definition at line 304 of file quadrature.cc.

◆ initialize()

template<int dim>
void Quadrature< dim >::initialize ( const std::vector< Point< dim > > &  points,
const std::vector< double > &  weights 
)
inherited

Set the quadrature points and weights to the values provided in the arguments.

Definition at line 52 of file quadrature.cc.

◆ size()

template<int dim>
unsigned int Quadrature< dim >::size ( ) const
inherited

Number of quadrature points.

◆ point()

template<int dim>
const Point< dim > & Quadrature< dim >::point ( const unsigned int  i) const
inherited

Return the ith quadrature point.

◆ get_points()

template<int dim>
const std::vector< Point< dim > > & Quadrature< dim >::get_points ( ) const
inherited

Return a reference to the whole array of quadrature points.

◆ weight()

template<int dim>
double Quadrature< dim >::weight ( const unsigned int  i) const
inherited

Return the weight of the ith quadrature point.

◆ get_weights()

template<int dim>
const std::vector< double > & Quadrature< dim >::get_weights ( ) const
inherited

Return a reference to the whole array of weights.

◆ memory_consumption()

template<int dim>
std::size_t Quadrature< dim >::memory_consumption
inherited

Determine an estimate for the memory consumption (in bytes) of this object.

Definition at line 313 of file quadrature.cc.

◆ serialize()

template<int dim>
template<class Archive >
void Quadrature< dim >::serialize ( Archive &  ar,
const unsigned int  version 
)
inherited

Write or read the data of this object to or from a stream for the purpose of serialization using the BOOST serialization library.

◆ is_tensor_product()

template<int dim>
bool Quadrature< dim >::is_tensor_product ( ) const
inherited

This function returns true if the quadrature object is a tensor product of one-dimensional formulas and the quadrature points are sorted lexicographically.

◆ get_tensor_basis()

template<int dim>
std::conditional< dim==1, std::array< Quadrature< 1 >, dim >, conststd::array< Quadrature< 1 >, dim > & >::type Quadrature< dim >::get_tensor_basis
inherited

In case the quadrature formula is a tensor product, this function returns the dim one-dimensional basis objects. Otherwise, calling this function is not allowed.

For dim equal to one, we can not return the std::array as a const reference and have to return it by value. In this case, the array will always contain a single element (this).

Note
The actual return type of this function is
std::conditional<dim == 1,
std::array<Quadrature<1>, dim>,
const std::array<Quadrature<1>, dim> &>::type
The type is abbreviated in the online documentation to improve readability of this page.

Definition at line 325 of file quadrature.cc.

Member Data Documentation

◆ quadrature_points

template<int dim>
std::vector<Point<dim> > Quadrature< dim >::quadrature_points
protectedinherited

List of quadrature points. To be filled by the constructors of derived classes.

Definition at line 290 of file quadrature.h.

◆ weights

template<int dim>
std::vector<double> Quadrature< dim >::weights
protectedinherited

List of weights of the quadrature points. To be filled by the constructors of derived classes.

Definition at line 296 of file quadrature.h.

◆ is_tensor_product_flag

template<int dim>
bool Quadrature< dim >::is_tensor_product_flag
protectedinherited

Indicates if this object represents quadrature formula that is a tensor product of one-dimensional formulas. This flag is set if dim==1 or the constructors taking a Quadrature<1> (and possibly a Quadrature<dim-1> object) is called. This implies that the quadrature points are sorted lexicographically.

Definition at line 305 of file quadrature.h.

◆ tensor_basis

template<int dim>
std::unique_ptr<std::array<Quadrature<1>, dim> > Quadrature< dim >::tensor_basis
protectedinherited

Stores the one-dimensional tensor basis objects in case this object can be represented by a tensor product.

Definition at line 311 of file quadrature.h.


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