Tabulation Project basix
quadrature.h
1 // Copyright (c) 2020 Chris Richardson
2 // FEniCS Project
3 // SPDX-License-Identifier: MIT
4 
5 #pragma once
6 
7 #include "cell.h"
8 #include <Eigen/Dense>
9 #include <utility>
10 
12 
13 namespace basix
14 {
18 namespace quadrature
19 {
28 Eigen::ArrayXXd compute_jacobi_deriv(double a, int n, int nderiv,
29  const Eigen::ArrayXd& x);
30 
31 // Computes Gauss-Jacobi quadrature points
36 Eigen::ArrayXd compute_gauss_jacobi_points(double a, int m);
37 
39 std::pair<Eigen::ArrayXd, Eigen::ArrayXd> compute_gauss_jacobi_rule(double a,
40  int m);
41 
45 std::pair<Eigen::ArrayXd, Eigen::ArrayXd> make_quadrature_line(int m);
46 
50 std::pair<Eigen::ArrayX2d, Eigen::ArrayXd>
52 
56 std::pair<Eigen::ArrayX3d, Eigen::ArrayXd>
58 
65 std::pair<Eigen::ArrayXXd, Eigen::ArrayXd>
66 make_quadrature(const std::string& rule, cell::type celltype, int m);
67 
71 std::pair<Eigen::ArrayXd, Eigen::ArrayXd>
73 
74 } // namespace quadrature
75 } // namespace basix
type
Cell type.
Definition: cell.h:21
std::pair< Eigen::ArrayXXd, Eigen::ArrayXd > make_quadrature(const std::string &rule, cell::type celltype, int m)
Definition: quadrature.cpp:595
std::pair< Eigen::ArrayXd, Eigen::ArrayXd > make_quadrature_line(int m)
Definition: quadrature.cpp:537
Eigen::ArrayXd compute_gauss_jacobi_points(double a, int m)
Definition: quadrature.cpp:472
Eigen::ArrayXXd compute_jacobi_deriv(double a, int n, int nderiv, const Eigen::ArrayXd &x)
Definition: quadrature.cpp:428
std::pair< Eigen::ArrayX3d, Eigen::ArrayXd > make_quadrature_tetrahedron_collapsed(int m)
Definition: quadrature.cpp:567
std::pair< Eigen::ArrayX2d, Eigen::ArrayXd > make_quadrature_triangle_collapsed(int m)
Definition: quadrature.cpp:544
std::pair< Eigen::ArrayXd, Eigen::ArrayXd > compute_gauss_jacobi_rule(double a, int m)
Gauss-Jacobi quadrature rule (points and weights)
Definition: quadrature.cpp:510
std::pair< Eigen::ArrayXd, Eigen::ArrayXd > gauss_lobatto_legendre_line_rule(int m)
Definition: quadrature.cpp:630
basix
Definition: basix.h:7