ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ModuleIO::AngularMomentumCalculator Class Reference

#include <cal_pLpR.h>

Collaboration diagram for ModuleIO::AngularMomentumCalculator:

Public Member Functions

 AngularMomentumCalculator ()=delete
 
 AngularMomentumCalculator (const std::string &orbital_dir, const UnitCell &ucell, const double &search_radius, const int tdestructor, const int tgrid, const int tatom, const bool searchpbc, std::ofstream *ptr_log=nullptr, const int rank=0)
 Construct a new Angular Momentum Expectation Calculator object.
 
 ~AngularMomentumCalculator ()=default
 
void calculate (const std::string &prefix, const std::string &outdir, const UnitCell &ucell, const int precision=10, const int rank=0)
 

Private Member Functions

void kernel (std::ofstream *ofs, const UnitCell &ucell, const char dir='x', const int precision=10)
 calculate the <phi_i|Lx/Ly/Lz|phi_j> matrix elements. Due to the large size of the matrix, the result will be printed to file directly.
 

Private Attributes

std::ofstream * ofs_
 
std::unique_ptr< TwoCenterIntegratorcalculator_
 
ModuleBase::SphericalBesselTransformer sbt_
 
std::unique_ptr< RadialCollectionorb_
 
std::unique_ptr< Grid_Driverneighbor_searcher_
 

Constructor & Destructor Documentation

◆ AngularMomentumCalculator() [1/2]

ModuleIO::AngularMomentumCalculator::AngularMomentumCalculator ( )
delete

◆ AngularMomentumCalculator() [2/2]

ModuleIO::AngularMomentumCalculator::AngularMomentumCalculator ( const std::string &  orbital_dir,
const UnitCell ucell,
const double &  search_radius,
const int  tdestructor,
const int  tgrid,
const int  tatom,
const bool  searchpbc,
std::ofstream *  ptr_log = nullptr,
const int  rank = 0 
)

Construct a new Angular Momentum Expectation Calculator object.

Parameters
orbital_dirthe directory of the orbital file
ucellthe unit cell object
search_radiusthe search radius for the neighboring atoms
tdestructortest flag, for destructor
tgridtest flag, for grid
tatomtest flag, for atom input
searchpbc
ptr_logpointer to the ofstream object for logging
Here is the call graph for this function:

◆ ~AngularMomentumCalculator()

ModuleIO::AngularMomentumCalculator::~AngularMomentumCalculator ( )
default

Member Function Documentation

◆ calculate()

void ModuleIO::AngularMomentumCalculator::calculate ( const std::string &  prefix,
const std::string &  outdir,
const UnitCell ucell,
const int  precision = 10,
const int  rank = 0 
)
Here is the caller graph for this function:

◆ kernel()

void ModuleIO::AngularMomentumCalculator::kernel ( std::ofstream *  ofs,
const UnitCell ucell,
const char  dir = 'x',
const int  precision = 10 
)
private

calculate the <phi_i|Lx/Ly/Lz|phi_j> matrix elements. Due to the large size of the matrix, the result will be printed to file directly.

Parameters
ofspointer to the ofstream object for printing, if nullptr, the result will not be printed
ucellthe unit cell object
dirthe direction of the angular momentum operator, 'x', 'y' or 'z'
precisionthe precision of the output, default is 10
Here is the call graph for this function:

Member Data Documentation

◆ calculator_

std::unique_ptr<TwoCenterIntegrator> ModuleIO::AngularMomentumCalculator::calculator_
private

◆ neighbor_searcher_

std::unique_ptr<Grid_Driver> ModuleIO::AngularMomentumCalculator::neighbor_searcher_
private

◆ ofs_

std::ofstream* ModuleIO::AngularMomentumCalculator::ofs_
private

◆ orb_

std::unique_ptr<RadialCollection> ModuleIO::AngularMomentumCalculator::orb_
private

◆ sbt_

ModuleBase::SphericalBesselTransformer ModuleIO::AngularMomentumCalculator::sbt_
private

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