Psi4
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
psi::SphericalGrid Class Reference

#include <cubature.h>

Public Member Functions

virtual ~SphericalGrid ()
 Destructor. More...
 
std::string scheme () const
 Scheme of this radial grid. More...
 
int npoints () const
 Number of points in radial grid. More...
 
int order () const
 Order of spherical harmonics in spherical grid (integrates products up to L_tot = 2 * order_ + 1) More...
 
double * x () const
 Spherical nodes, on the unit sphere. More...
 
double * y () const
 Spherical nodes, on the unit sphere. More...
 
double * z () const
 Spherical nodes, on the unit sphere. More...
 
double * w () const
 Spherical weights, normalized to 4pi. More...
 
double * phi () const
 Spherical nodes, in spherical coordinates (azimuth) More...
 
double * theta () const
 Spherical nodes, in spherical coordinates (inclination) More...
 
void print (std::string OutFileRMR="outfile", int level=1) const
 Reflection. More...
 

Static Public Member Functions

static std::shared_ptr
< SphericalGrid
build_npoints (const std::string &scheme, int npoints)
 Master build routines. More...
 
static std::shared_ptr
< SphericalGrid
build_order (const std::string &scheme, int order)
 
static std::shared_ptr
< SphericalGrid
build (const std::string &scheme, int npoints, const MassPoint *points)
 Hack build routine (TODO: Remove ASAP) More...
 
static std::map< int,
std::shared_ptr< SphericalGrid > > & 
lebedev_npoints ()
 Unique Lebedev grids, accessed by number of points. More...
 
static std::map< int,
std::shared_ptr< SphericalGrid > > & 
lebedev_orders ()
 Unique Lebedev grids, accessed by order (integrating to 2 * order + 1) More...
 
static int lebedev_next_npoints (int npoints_guess)
 Next largest valid Lebedev grid npoints, or -1 if guess is larger than biggest Lebedev grid. More...
 
static int lebedev_next_order (int order_guess)
 Next largest valid Lebedev grid order, or -1 if guess is larger than biggest Lebedev grid. More...
 

Protected Member Functions

void build_angles ()
 Build the spherical angles from <x,y,z>, for reference. More...
 
 SphericalGrid ()
 Protected constructor. More...
 

Static Protected Member Functions

static void initialize_lebedev ()
 Initialize the above arrays with the unique Lebedev grids. More...
 
static std::shared_ptr
< SphericalGrid
build_lebedev (int npoints)
 Build a Lebedev grid given a valid number of points. More...
 
static int lebedev_reccurence (int type, int start, double a, double b, double v, SphericalGrid *leb)
 Perform Lebedev grid reccurence. More...
 
static void lebedev_error ()
 Print valid Lebedev grids and error out (throws) More...
 

Protected Attributes

std::string scheme_
 Scheme. More...
 
int npoints_
 Number of points in radial grid. More...
 
int order_
 Order of spherical harmonics in spherical grid (integrates products up to L_tot = 2 * order_ + 1) More...
 
double * x_
 Spherical nodes, on the unit sphere. More...
 
double * y_
 Spherical nodes, on the unit sphere. More...
 
double * z_
 Spherical nodes, on the unit sphere. More...
 
double * w_
 Spherical weights, normalized to 4pi. More...
 
double * phi_
 Spherical nodes, in spherical coordinates (azimuth) More...
 
double * theta_
 Spherical nodes, in spherical coordinates (inclination) More...
 

Static Protected Attributes

static std::map< int,
std::shared_ptr< SphericalGrid > > 
lebedev_npoints_
 Unique Lebedev grids, accessed by number of points. More...
 
static std::map< int,
std::shared_ptr< SphericalGrid > > 
lebedev_orders_
 Unique Lebedev grids, accessed by order (integrating to 2 * order + 1) More...
 
static std::map< int, int > lebedev_mapping_
 Grid npoints to order map. More...
 

Constructor & Destructor Documentation

psi::SphericalGrid::SphericalGrid ( )
protected

Protected constructor.

psi::SphericalGrid::~SphericalGrid ( )
virtual

Destructor.

Member Function Documentation

std::shared_ptr< SphericalGrid > psi::SphericalGrid::build ( const std::string &  scheme,
int  npoints,
const MassPoint points 
)
static

Hack build routine (TODO: Remove ASAP)

void psi::SphericalGrid::build_angles ( )
protected

Build the spherical angles from <x,y,z>, for reference.

std::shared_ptr< SphericalGrid > psi::SphericalGrid::build_lebedev ( int  npoints)
staticprotected

Build a Lebedev grid given a valid number of points.

std::shared_ptr< SphericalGrid > psi::SphericalGrid::build_npoints ( const std::string &  scheme,
int  npoints 
)
static

Master build routines.

std::shared_ptr< SphericalGrid > psi::SphericalGrid::build_order ( const std::string &  scheme,
int  order 
)
static
void psi::SphericalGrid::initialize_lebedev ( )
staticprotected

Initialize the above arrays with the unique Lebedev grids.

void psi::SphericalGrid::lebedev_error ( )
staticprotected

Print valid Lebedev grids and error out (throws)

int psi::SphericalGrid::lebedev_next_npoints ( int  npoints_guess)
static

Next largest valid Lebedev grid npoints, or -1 if guess is larger than biggest Lebedev grid.

int psi::SphericalGrid::lebedev_next_order ( int  order_guess)
static

Next largest valid Lebedev grid order, or -1 if guess is larger than biggest Lebedev grid.

std::map< int, std::shared_ptr< SphericalGrid > > & psi::SphericalGrid::lebedev_npoints ( )
static

Unique Lebedev grids, accessed by number of points.

std::map< int, std::shared_ptr< SphericalGrid > > & psi::SphericalGrid::lebedev_orders ( )
static

Unique Lebedev grids, accessed by order (integrating to 2 * order + 1)

int psi::SphericalGrid::lebedev_reccurence ( int  type,
int  start,
double  a,
double  b,
double  v,
SphericalGrid leb 
)
staticprotected

Perform Lebedev grid reccurence.

int psi::SphericalGrid::npoints ( ) const
inline

Number of points in radial grid.

int psi::SphericalGrid::order ( ) const
inline

Order of spherical harmonics in spherical grid (integrates products up to L_tot = 2 * order_ + 1)

double* psi::SphericalGrid::phi ( ) const
inline

Spherical nodes, in spherical coordinates (azimuth)

void psi::SphericalGrid::print ( std::string  OutFileRMR = "outfile",
int  level = 1 
) const

Reflection.

std::string psi::SphericalGrid::scheme ( ) const
inline

Scheme of this radial grid.

double* psi::SphericalGrid::theta ( ) const
inline

Spherical nodes, in spherical coordinates (inclination)

double* psi::SphericalGrid::w ( ) const
inline

Spherical weights, normalized to 4pi.

double* psi::SphericalGrid::x ( ) const
inline

Spherical nodes, on the unit sphere.

double* psi::SphericalGrid::y ( ) const
inline

Spherical nodes, on the unit sphere.

double* psi::SphericalGrid::z ( ) const
inline

Spherical nodes, on the unit sphere.

Member Data Documentation

std::map< int, int > psi::SphericalGrid::lebedev_mapping_
staticprotected

Grid npoints to order map.

std::map< int, std::shared_ptr< SphericalGrid > > psi::SphericalGrid::lebedev_npoints_
staticprotected

Unique Lebedev grids, accessed by number of points.

std::map< int, std::shared_ptr< SphericalGrid > > psi::SphericalGrid::lebedev_orders_
staticprotected

Unique Lebedev grids, accessed by order (integrating to 2 * order + 1)

int psi::SphericalGrid::npoints_
protected

Number of points in radial grid.

int psi::SphericalGrid::order_
protected

Order of spherical harmonics in spherical grid (integrates products up to L_tot = 2 * order_ + 1)

double* psi::SphericalGrid::phi_
protected

Spherical nodes, in spherical coordinates (azimuth)

std::string psi::SphericalGrid::scheme_
protected

Scheme.

double* psi::SphericalGrid::theta_
protected

Spherical nodes, in spherical coordinates (inclination)

double* psi::SphericalGrid::w_
protected

Spherical weights, normalized to 4pi.

double* psi::SphericalGrid::x_
protected

Spherical nodes, on the unit sphere.

double* psi::SphericalGrid::y_
protected

Spherical nodes, on the unit sphere.

double* psi::SphericalGrid::z_
protected

Spherical nodes, on the unit sphere.


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