1 /*
2  *                This source code is part of
3  *
4  *                          HelFEM
5  *                             -
6  * Finite element methods for electronic structure calculations on small systems
7  *
8  * Written by Susi Lehtola, 2018-
9  * Copyright (c) 2018- Susi Lehtola
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  */
16 #ifndef ANGULAR_H
17 #define ANGULAR_H
18 
19 #include <armadillo>
20 
21 namespace helfem {
22   namespace angular {
23     /// Form compound rule
24     void compound_rule(const arma::vec & xth0, const arma::vec & wth0, int nphi, arma::vec & th, arma::vec & phi, arma::vec & w);
25 
26     /// Angular quadrature rule of order (l,l)
27     void angular_lobatto(int l, arma::vec & cth, arma::vec & phi, arma::vec & w);
28     /// Angular quadrature rule of order (l,m)
29     void angular_lobatto(int l, int m, arma::vec & cth, arma::vec & phi, arma::vec & w);
30 
31     /// Angular quadrature rule of order (l,l)
32     void angular_chebyshev(int l, arma::vec & cth, arma::vec & phi, arma::vec & w);
33     /// Angular quadrature rule of order (l,m)
34     void angular_chebyshev(int l, int m, arma::vec & cth, arma::vec & phi, arma::vec & w);
35   }
36 }
37 
38 #endif
39