qproduct.h 927 Bytes
Newer Older
1
2
3
4
5
/*! @file: qproduct.h
 *  @brief: Product quadrature implementation. Implementation is done accordingly to Kendall Atkinson 1981, Australian Matematical Society.
 *  @author: J. Kusch
 */

jonas.kusch's avatar
jonas.kusch committed
6
7
8
9
10
#ifndef PRODUCTQUADRATURE_H
#define PRODUCTQUADRATURE_H

#include "quadraturebase.h"

11
class QProduct : public QuadratureBase
jonas.kusch's avatar
jonas.kusch committed
12
13
14
15
16
17
18
{
  private:
    double Pythag( const double a, const double b );
    std::pair<Vector, Matrix> ComputeEigenValTriDiagMatrix( const Matrix& mat );
    bool CheckOrder();

  public:
19
20
    QProduct( Config* settings );
    QProduct( unsigned order );
Steffen Schotthöfer's avatar
Steffen Schotthöfer committed
21

22
    virtual ~QProduct() {}
jonas.kusch's avatar
jonas.kusch committed
23
24
25
26
27
28
29
30
31
32

    inline void SetName() override { _name = "Product quadrature"; }
    inline void SetNq() override { _nq = 4 * pow( GetOrder(), 2 ); }
    void SetPointsAndWeights() override;
    void SetConnectivity() override;

    inline VectorVector GetPointsSphere() const override { return _pointsSphere; }
};

#endif    // PRODUCTQUADRATURE_H