Flow123d  release_3.0.0-1263-g7cf53c1
Public Member Functions | Protected Attributes | List of all members
Quadrature Class Reference

Base class for quadrature rules on simplices in arbitrary dimensions. More...

#include <quadrature.hh>

Inheritance diagram for Quadrature:
Inheritance graph
[legend]
Collaboration diagram for Quadrature:
Collaboration graph
[legend]

Public Member Functions

 Quadrature (const Quadrature &q)
 Copy constructor. More...
 
 Quadrature (unsigned int dimension, const unsigned int n_quadrature_points=0)
 Constructor. More...
 
virtual ~Quadrature ()
 Constructor from quadrature of lower dimension (e.g. for side integration). More...
 
unsigned int dim () const
 
void resize (const unsigned int n_q_points)
 Modify the number of quadrature points. More...
 
unsigned int size () const
 Returns number of quadrature points. More...
 
template<unsigned int point_dim>
Armor::vec< point_dim > point (const unsigned int i) const
 Returns the ith quadrature point. More...
 
const Armor::arrayget_points () const
 Return a reference to the whole array of quadrature points. More...
 
double weight (const unsigned int i) const
 Returns the ith weight. More...
 
double & weight (const unsigned int i)
 Returns the ith weight (non-const version). More...
 
const std::vector< double > & get_weights () const
 Return a reference to the whole array of weights. More...
 
Quadratureoperator= (const Quadrature &q)
 
template<unsigned int bulk_dim>
Quadrature make_from_side (unsigned int sid, unsigned int pid)
 
template<>
Quadrature make_from_side (unsigned int sid, unsigned int)
 

Protected Attributes

const unsigned int dim_
 Dimension of quadrature points. More...
 
Armor::array quadrature_points
 List of quadrature points. More...
 
std::vector< double > weights
 List of weights to the quadrature points. More...
 

Detailed Description

Base class for quadrature rules on simplices in arbitrary dimensions.

This class stores quadrature points and weights on the reference line, triangle or tetrahedron, respectively. Quadrature rules are used for evaluation of integrals over elements. In particular, for a reference element $E$ we have:

\[ \int_E f(x)\,dx \approx \sum_{i=1}^{N} w_i f(p_i), \]

where $\{w_i\}$, $\{p_i\}$ are the quadrature weights and the quadrature points, respectively.

TODO:

Definition at line 48 of file quadrature.hh.

Constructor & Destructor Documentation

Quadrature::Quadrature ( const Quadrature q)

Copy constructor.

Definition at line 39 of file quadrature.cc.

Quadrature::Quadrature ( unsigned int  dimension,
const unsigned int  n_quadrature_points = 0 
)

Constructor.

Parameters
n_quadrature_pointsNumber of quadrature points to be allocated.

Definition at line 32 of file quadrature.cc.

virtual Quadrature::~Quadrature ( )
inlinevirtual

Constructor from quadrature of lower dimension (e.g. for side integration).

Parameters
sub_quadraturelower dimensional (dim-1) quadrature
sidlocal index of side
pidindex of permutation of nodes on given sideVirtual destructor.

Definition at line 69 of file quadrature.hh.

Member Function Documentation

unsigned int Quadrature::dim ( ) const
inline

Definition at line 71 of file quadrature.hh.

Here is the caller graph for this function:

const Armor::array& Quadrature::get_points ( ) const
inline

Return a reference to the whole array of quadrature points.

Definition at line 97 of file quadrature.hh.

const std::vector<double>& Quadrature::get_weights ( ) const
inline

Return a reference to the whole array of weights.

Definition at line 109 of file quadrature.hh.

template<>
Quadrature Quadrature::make_from_side ( unsigned int  sid,
unsigned int   
)

Definition at line 85 of file quadrature.cc.

template<unsigned int bulk_dim>
template Quadrature Quadrature::make_from_side< 3 > ( unsigned int  sid,
unsigned int  pid 
)

Create bulk quadrature from side quadrature.

Consider *this as quadrature on a side of an element and create higher dimensional quadrature considering side and permutation index.

Definition at line 52 of file quadrature.cc.

Here is the caller graph for this function:

Quadrature & Quadrature::operator= ( const Quadrature q)

Definition at line 23 of file quadrature.cc.

Here is the caller graph for this function:

template<unsigned int point_dim>
Armor::vec<point_dim> Quadrature::point ( const unsigned int  i) const
inline

Returns the ith quadrature point.

Definition at line 90 of file quadrature.hh.

Here is the caller graph for this function:

void Quadrature::resize ( const unsigned int  n_q_points)
inline

Modify the number of quadrature points.

Parameters
n_q_pointsNew number of quadrature points.

Definition at line 78 of file quadrature.hh.

unsigned int Quadrature::size ( ) const
inline

Returns number of quadrature points.

Definition at line 85 of file quadrature.hh.

Here is the caller graph for this function:

double Quadrature::weight ( const unsigned int  i) const
inline

Returns the ith weight.

Definition at line 101 of file quadrature.hh.

Here is the caller graph for this function:

double& Quadrature::weight ( const unsigned int  i)
inline

Returns the ith weight (non-const version).

Definition at line 105 of file quadrature.hh.

Member Data Documentation

const unsigned int Quadrature::dim_
protected

Dimension of quadrature points.

Definition at line 127 of file quadrature.hh.

Armor::array Quadrature::quadrature_points
protected

List of quadrature points.

To be filled by the constructors of the derived classes.

Definition at line 134 of file quadrature.hh.

std::vector<double> Quadrature::weights
protected

List of weights to the quadrature points.

To be filled by the constructors of the derived classes.

Definition at line 141 of file quadrature.hh.


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