Flow123d  JS_before_hm-1008-g3dab983
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, 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 (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::ArmaVec< double, point_dim > point (unsigned int i) const
 Returns the ith quadrature point. More...
 
Armor::Array< double >::ArrayMatSet set (uint i)
 
const Armor::Array< double > & get_points () const
 Return a reference to the whole array of quadrature points. More...
 
double weight (unsigned int i) const
 Returns the ith weight. More...
 
double & weight (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) const
 
template<>
Quadrature make_from_side (unsigned int sid, unsigned int) const
 

Protected Attributes

const unsigned int dim_
 Dimension of quadrature points. More...
 
Armor::Array< double > 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,
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 73 of file quadrature.hh.

Here is the caller graph for this function:

const Armor::Array<double>& Quadrature::get_points ( ) const
inline

Return a reference to the whole array of quadrature points.

Definition at line 104 of file quadrature.hh.

Here is the caller graph for this function:

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

Return a reference to the whole array of weights.

Definition at line 116 of file quadrature.hh.

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

Definition at line 80 of file quadrature.cc.

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

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 47 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::ArmaVec<double, point_dim> Quadrature::point ( unsigned int  i) const
inline

Returns the ith quadrature point.

Definition at line 92 of file quadrature.hh.

Here is the caller graph for this function:

void Quadrature::resize ( unsigned int  n_q_points)
inline

Modify the number of quadrature points.

Parameters
n_q_pointsNew number of quadrature points.

Definition at line 80 of file quadrature.hh.

Here is the caller graph for this function:

Armor::Array<double>::ArrayMatSet Quadrature::set ( uint  i)
inline

Definition at line 98 of file quadrature.hh.

Here is the caller graph for this function:

unsigned int Quadrature::size ( ) const
inline

Returns number of quadrature points.

Definition at line 87 of file quadrature.hh.

Here is the caller graph for this function:

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

Returns the ith weight.

Definition at line 108 of file quadrature.hh.

Here is the caller graph for this function:

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

Returns the ith weight (non-const version).

Definition at line 112 of file quadrature.hh.

Member Data Documentation

const unsigned int Quadrature::dim_
protected

Dimension of quadrature points.

Definition at line 134 of file quadrature.hh.

Armor::Array<double> Quadrature::quadrature_points
protected

List of quadrature points.

To be filled by the constructors of the derived classes.

Definition at line 141 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 148 of file quadrature.hh.


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