Chi-Tech
chi_math::AngularQuadrature Class Reference

#include <angular_quadrature_base.h>

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

Data Structures

struct  HarmonicIndices
 

Public Member Functions

 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

const chi_math::AngularQuadratureType type_
 
std::vector< chi_math::QuadraturePointPhiThetaabscissae_
 
std::vector< double > weights_
 
std::vector< chi_mesh::Vector3omegas_
 

Protected Member Functions

virtual void MakeHarmonicIndices (unsigned int scattering_order, int dimension)
 

Protected Attributes

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

Base class for angular quadratures.

Definition at line 35 of file angular_quadrature_base.h.

Constructor & Destructor Documentation

◆ AngularQuadrature() [1/2]

chi_math::AngularQuadrature::AngularQuadrature ( )
inline

Definition at line 67 of file angular_quadrature_base.h.

◆ AngularQuadrature() [2/2]

chi_math::AngularQuadrature::AngularQuadrature ( chi_math::AngularQuadratureType  in_type)
inlineexplicit

Definition at line 69 of file angular_quadrature_base.h.

◆ ~AngularQuadrature()

virtual chi_math::AngularQuadrature::~AngularQuadrature ( )
virtualdefault

Member Function Documentation

◆ BuildDiscreteToMomentOperator()

void chi_math::AngularQuadrature::BuildDiscreteToMomentOperator ( unsigned int  scattering_order,
int  dimension 
)
virtual

Computes the discrete to moment operator.

Definition at line 69 of file angular_quadrature_base.cc.

◆ BuildMomentToDiscreteOperator()

void chi_math::AngularQuadrature::BuildMomentToDiscreteOperator ( unsigned int  scattering_order,
int  dimension 
)
virtual

Computes the moment to discrete operator.

Definition at line 120 of file angular_quadrature_base.cc.

◆ GetDiscreteToMomentOperator()

std::vector< std::vector< double > > const & chi_math::AngularQuadrature::GetDiscreteToMomentOperator ( ) const

Returns a reference to the precomputed d2m operator. This will throw a std::logic_error if the operator has not been built yet. The operator is accessed as [m][d], where m is the moment index and d is the direction index.

Definition at line 179 of file angular_quadrature_base.cc.

◆ GetMomentToDiscreteOperator()

std::vector< std::vector< double > > const & chi_math::AngularQuadrature::GetMomentToDiscreteOperator ( ) const

Returns a reference to the precomputed m2d operator. This will throw a std::logic_error if the operator has not been built yet. The operator is accessed as [m][d], where m is the moment index and d is the direction index.

Definition at line 194 of file angular_quadrature_base.cc.

◆ GetMomentToHarmonicsIndexMap()

const std::vector< chi_math::AngularQuadrature::HarmonicIndices > & chi_math::AngularQuadrature::GetMomentToHarmonicsIndexMap ( ) const

Returns a reference to the precomputed harmonic index map. This will throw a std::logic_error if the map has not been built yet.

Definition at line 207 of file angular_quadrature_base.cc.

◆ MakeHarmonicIndices()

void chi_math::AngularQuadrature::MakeHarmonicIndices ( unsigned int  scattering_order,
int  dimension 
)
protectedvirtual

Populates a map of moment m to the Spherical Harmonic indices required.

Reimplemented in chi_math::CylindricalAngularQuadrature, and chi_math::SphericalAngularQuadrature.

Definition at line 49 of file angular_quadrature_base.cc.

◆ OptimizeForPolarSymmetry()

void chi_math::AngularQuadrature::OptimizeForPolarSymmetry ( double  normalization)
virtual

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 in chi_math::ProductQuadrature.

Definition at line 19 of file angular_quadrature_base.cc.

Field Documentation

◆ abscissae_

std::vector<chi_math::QuadraturePointPhiTheta> chi_math::AngularQuadrature::abscissae_

Definition at line 41 of file angular_quadrature_base.h.

◆ d2m_op_

std::vector<std::vector<double> > chi_math::AngularQuadrature::d2m_op_
protected

Definition at line 60 of file angular_quadrature_base.h.

◆ d2m_op_built_

bool chi_math::AngularQuadrature::d2m_op_built_ = false
protected

Definition at line 63 of file angular_quadrature_base.h.

◆ m2d_op_

std::vector<std::vector<double> > chi_math::AngularQuadrature::m2d_op_
protected

Definition at line 61 of file angular_quadrature_base.h.

◆ m2d_op_built_

bool chi_math::AngularQuadrature::m2d_op_built_ = false
protected

Definition at line 64 of file angular_quadrature_base.h.

◆ m_to_ell_em_map_

std::vector<HarmonicIndices> chi_math::AngularQuadrature::m_to_ell_em_map_
protected

Definition at line 62 of file angular_quadrature_base.h.

◆ omegas_

std::vector<chi_mesh::Vector3> chi_math::AngularQuadrature::omegas_

Definition at line 43 of file angular_quadrature_base.h.

◆ type_

const chi_math::AngularQuadratureType chi_math::AngularQuadrature::type_

Definition at line 38 of file angular_quadrature_base.h.

◆ weights_

std::vector<double> chi_math::AngularQuadrature::weights_

Definition at line 42 of file angular_quadrature_base.h.


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