1#ifndef CHI_MATH_ANGULAR_QUADRATURE_H
2#define CHI_MATH_ANGULAR_QUADRATURE_H
10struct QuadraturePointPhiTheta;
18class AngularQuadrature;
19class AngularQuadratureCustom;
41 std::vector<chi_math::QuadraturePointPhiTheta>
abscissae_;
55 return (
ell == other.
ell and
m == other.
m);
99 std::vector<double>& polar,
100 std::vector<double>& in_weights,
AngularQuadratureCustom(std::vector< double > &azimuthal, std::vector< double > &polar, std::vector< double > &in_weights, bool verbose)
std::vector< std::vector< double > > const & GetMomentToDiscreteOperator() const
const std::vector< HarmonicIndices > & GetMomentToHarmonicsIndexMap() const
virtual ~AngularQuadrature()=default
std::vector< double > weights_
const chi_math::AngularQuadratureType type_
virtual void MakeHarmonicIndices(unsigned int scattering_order, int dimension)
std::vector< std::vector< double > > m2d_op_
std::vector< chi_math::QuadraturePointPhiTheta > abscissae_
virtual void OptimizeForPolarSymmetry(double normalization)
std::vector< std::vector< double > > const & GetDiscreteToMomentOperator() const
std::vector< std::vector< double > > d2m_op_
virtual void BuildDiscreteToMomentOperator(unsigned int scattering_order, int dimension)
std::vector< HarmonicIndices > m_to_ell_em_map_
virtual void BuildMomentToDiscreteOperator(unsigned int scattering_order, int dimension)
AngularQuadrature(chi_math::AngularQuadratureType in_type)
std::vector< chi_mesh::Vector3 > omegas_
bool operator==(const HarmonicIndices &other) const
HarmonicIndices(unsigned int in_ell, int in_m)
HarmonicIndices()=default
QuadraturePointPhiTheta(const double phi, const double theta)