Chi-Tech
chi_math::ProductQuadrature Class Reference

#include <angular_product_quadrature.h>

Inheritance diagram for chi_math::ProductQuadrature:
chi_math::AngularQuadrature chi_math::AngularQuadratureProdCustom chi_math::AngularQuadratureProdGL chi_math::AngularQuadratureProdGLC chi_math::AngularQuadratureProdGLL chi_math::CurvilinearAngularQuadrature chi_math::CylindricalAngularQuadrature chi_math::SphericalAngularQuadrature

Public Member Functions

 ~ProductQuadrature () override=default
 
void AssembleCosines (const std::vector< double > &azimuthal, const std::vector< double > &polar, const std::vector< double > &in_weights, bool verbose)
 
void OptimizeForPolarSymmetry (double normalization) override
 
unsigned int GetAngleNum (const unsigned int polar_angle_index, const unsigned int azimu_angle_index) const
 
const std::map< unsigned int, std::vector< unsigned int > > & GetDirectionMap () const
 
- Public Member Functions inherited from chi_math::AngularQuadrature
 AngularQuadrature ()
 
 AngularQuadrature (chi_math::AngularQuadratureType in_type)
 
virtual ~AngularQuadrature ()=default
 
virtual void OptimizeForPolarSymmetry (double normalization)
 
virtual void BuildDiscreteToMomentOperator (unsigned int scattering_order, int dimension)
 
virtual void BuildMomentToDiscreteOperator (unsigned int scattering_order, int dimension)
 
std::vector< std::vector< double > > const & GetDiscreteToMomentOperator () const
 
std::vector< std::vector< double > > const & GetMomentToDiscreteOperator () const
 
const std::vector< HarmonicIndices > & GetMomentToHarmonicsIndexMap () const
 

Data Fields

std::vector< double > polar_ang_
 
std::vector< double > azimu_ang_
 
- Data Fields inherited from chi_math::AngularQuadrature
const chi_math::AngularQuadratureType type_
 
std::vector< chi_math::QuadraturePointPhiThetaabscissae_
 
std::vector< double > weights_
 
std::vector< chi_mesh::Vector3omegas_
 

Protected Member Functions

 ProductQuadrature ()
 
- Protected Member Functions inherited from chi_math::AngularQuadrature
virtual void MakeHarmonicIndices (unsigned int scattering_order, int dimension)
 

Protected Attributes

std::map< unsigned int, std::vector< unsigned int > > map_directions_
 
- Protected Attributes inherited from chi_math::AngularQuadrature
std::vector< std::vector< double > > d2m_op_
 
std::vector< std::vector< double > > m2d_op_
 
std::vector< HarmonicIndicesm_to_ell_em_map_
 
bool d2m_op_built_ = false
 
bool m2d_op_built_ = false
 

Detailed Description

Class for product quadratures

Definition at line 30 of file angular_product_quadrature.h.

Constructor & Destructor Documentation

◆ ProductQuadrature()

chi_math::ProductQuadrature::ProductQuadrature ( )
inlineprotected

Definition at line 40 of file angular_product_quadrature.h.

◆ ~ProductQuadrature()

chi_math::ProductQuadrature::~ProductQuadrature ( )
overridedefault

Member Function Documentation

◆ AssembleCosines()

void chi_math::ProductQuadrature::AssembleCosines ( const std::vector< double > &  azimuthal,
const std::vector< double > &  polar,
const std::vector< double > &  in_weights,
bool  verbose 
)

Initializes the quadrature with custom angles and weights.

Definition at line 13 of file angular_product_quadrature.cc.

◆ GetAngleNum()

unsigned int chi_math::ProductQuadrature::GetAngleNum ( const unsigned int  polar_angle_index,
const unsigned int  azimu_angle_index 
) const
inline

Obtains the abscissae index given the indices of the polar angle index and the azimuthal angle index.

Definition at line 55 of file angular_product_quadrature.h.

◆ GetDirectionMap()

const std::map< unsigned int, std::vector< unsigned int > > & chi_math::ProductQuadrature::GetDirectionMap ( ) const
inline

Return constant reference to map_directions.

Definition at line 60 of file angular_product_quadrature.h.

◆ OptimizeForPolarSymmetry()

void chi_math::ProductQuadrature::OptimizeForPolarSymmetry ( double  normalization)
overridevirtual

Optimizes the angular quadrature for polar symmetry by removing all the direction with downward pointing polar angles.

Parameters
normalizationfloat. (Optional) The default is a negative number which does not apply any normalization. If a positive number is provided, the weights will be normalized to sum to this number.

Reimplemented from chi_math::AngularQuadrature.

Definition at line 113 of file angular_product_quadrature.cc.

Field Documentation

◆ azimu_ang_

std::vector<double> chi_math::ProductQuadrature::azimu_ang_

Definition at line 34 of file angular_product_quadrature.h.

◆ map_directions_

std::map<unsigned int, std::vector<unsigned int> > chi_math::ProductQuadrature::map_directions_
protected

Linear indices of ordered directions mapped to polar level.

Definition at line 37 of file angular_product_quadrature.h.

◆ polar_ang_

std::vector<double> chi_math::ProductQuadrature::polar_ang_

Definition at line 33 of file angular_product_quadrature.h.


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