SIRIUS 7.5.0
Electronic structure library and applications
Public Member Functions | Private Member Functions | Private Attributes | List of all members
sirius::Free_atom Class Reference

Full potential free atom solver. More...

#include <free_atom.hpp>

Inherits sirius::Atom_type_base.

Public Member Functions

 Free_atom (Free_atom &&src)=default
 
 Free_atom (int zn__)
 Constructor. More...
 
 Free_atom (std::string symbol__)
 Constructor. More...
 
json ground_state (double energy_tol, double charge_tol, bool rel)
 
void generate_local_orbitals (std::string const &recipe__)
 
double free_atom_orbital_density (int ir, int ist) const
 
double free_atom_wave_function (int ir, int ist) const
 
double free_atom_electronic_potential (double x) const
 
std::vector< double > radial_grid_points () const
 
std::vector< double > free_atom_wave_function (int ist__) const
 
std::vector< double > free_atom_wave_function_x (int ist__) const
 
std::vector< double > free_atom_wave_function_x_deriv (int ist__) const
 
std::vector< double > free_atom_electronic_potential () const
 
double atomic_level_energy (int ist__) const
 
std::vector< double > free_atom_wave_function_residual (int ist__) const
 Get residual. More...
 
- Public Member Functions inherited from sirius::Atom_type_base
 Atom_type_base (int zn__)
 Constructor. More...
 
 Atom_type_base (std::string symbol__)
 Constructor. More...
 
int zn () const
 Get atomic charge. More...
 
int zn (int zn__)
 Set atomic charge. More...
 
std::string const & symbol () const
 Get atomic symbol. More...
 
std::string const & name () const
 Get name of the element. More...
 
double mass () const
 Get atomic mass. More...
 
Radial_grid< double > const & free_atom_radial_grid () const
 Get the whole radial grid. More...
 
double free_atom_radial_grid (int ir) const
 Get the radial point at a given index. More...
 
int num_atomic_levels () const
 Return number of the atomic levels. More...
 
atomic_level_descriptor const & atomic_level (int idx) const
 

Private Member Functions

void find_new_rho (std::vector< double > const &veff__, bool rel__)
 
void find_potential ()
 

Private Attributes

mdarray< double, 2 > free_atom_orbital_density_
 Densities of individual orbitals. More...
 
mdarray< double, 2 > free_atom_wave_functions_
 Radial wave-functions. More...
 
mdarray< double, 2 > free_atom_wave_functions_x_
 Radial wave-functions multiplied by r. More...
 
mdarray< double, 2 > free_atom_wave_functions_x_deriv_
 Derivatieve of radial wave-functions multiplied by r. More...
 
Spline< double > free_atom_electronic_potential_
 Potential generated by the electronic ensity. More...
 
double NIST_LDA_Etot_ {0}
 NIST total energy for LDA calculation. More...
 
double NIST_ScRLDA_Etot_ {0}
 NIST total energy for scalar-relativistic LDA calculation. More...
 
std::vector< double > enu_
 Energies of atomic levels. More...
 

Additional Inherited Members

- Protected Member Functions inherited from sirius::Atom_type_base
 Atom_type_base (Atom_type_base const &src)=delete
 
Atom_type_baseoperator= (Atom_type_base &src)=delete
 
- Protected Attributes inherited from sirius::Atom_type_base
int zn_ {0}
 Nucleus charge or pseudocharge, treated as positive(!) integer. More...
 
std::string symbol_
 Chemical element symbol. More...
 
std::string name_
 Chemical element name. More...
 
double mass_ {0}
 Atom mass. More...
 
std::vector< atomic_level_descriptoratomic_levels_
 List of atomic levels. More...
 
Spline< double > free_atom_density_spline_
 Density of a free atom. More...
 
std::vector< double > free_atom_density_
 Density of a free atom as read from the input file. More...
 
Radial_grid< double > free_atom_radial_grid_
 Radial grid of a free atom. More...
 

Detailed Description

Full potential free atom solver.

Definition at line 38 of file free_atom.hpp.

Constructor & Destructor Documentation

◆ Free_atom() [1/2]

sirius::Free_atom::Free_atom ( int  zn__)
inline

Constructor.

Definition at line 102 of file free_atom.hpp.

◆ Free_atom() [2/2]

sirius::Free_atom::Free_atom ( std::string  symbol__)
inline

Constructor.

Definition at line 109 of file free_atom.hpp.

Member Function Documentation

◆ find_new_rho()

void sirius::Free_atom::find_new_rho ( std::vector< double > const &  veff__,
bool  rel__ 
)
inlineprivate

Definition at line 59 of file free_atom.hpp.

◆ find_potential()

void sirius::Free_atom::find_potential ( )
inlineprivate

Definition at line 92 of file free_atom.hpp.

◆ ground_state()

json sirius::Free_atom::ground_state ( double  energy_tol,
double  charge_tol,
bool  rel 
)
inline
  • difference between NIST and computed total energy. Comparison is valid only for VWN XC functional. *‍/

Definition at line 115 of file free_atom.hpp.

◆ generate_local_orbitals()

void sirius::Free_atom::generate_local_orbitals ( std::string const &  recipe__)
inline

Definition at line 335 of file free_atom.hpp.

◆ free_atom_orbital_density()

double sirius::Free_atom::free_atom_orbital_density ( int  ir,
int  ist 
) const
inline

Definition at line 364 of file free_atom.hpp.

◆ free_atom_wave_function() [1/2]

double sirius::Free_atom::free_atom_wave_function ( int  ir,
int  ist 
) const
inline

Definition at line 369 of file free_atom.hpp.

◆ free_atom_electronic_potential() [1/2]

double sirius::Free_atom::free_atom_electronic_potential ( double  x) const
inline

Definition at line 374 of file free_atom.hpp.

◆ radial_grid_points()

std::vector< double > sirius::Free_atom::radial_grid_points ( ) const
inline

Definition at line 379 of file free_atom.hpp.

◆ free_atom_wave_function() [2/2]

std::vector< double > sirius::Free_atom::free_atom_wave_function ( int  ist__) const
inline

Definition at line 385 of file free_atom.hpp.

◆ free_atom_wave_function_x()

std::vector< double > sirius::Free_atom::free_atom_wave_function_x ( int  ist__) const
inline

Definition at line 395 of file free_atom.hpp.

◆ free_atom_wave_function_x_deriv()

std::vector< double > sirius::Free_atom::free_atom_wave_function_x_deriv ( int  ist__) const
inline

Definition at line 405 of file free_atom.hpp.

◆ free_atom_electronic_potential() [2/2]

std::vector< double > sirius::Free_atom::free_atom_electronic_potential ( ) const
inline

Definition at line 415 of file free_atom.hpp.

◆ atomic_level_energy()

double sirius::Free_atom::atomic_level_energy ( int  ist__) const
inline

Definition at line 421 of file free_atom.hpp.

◆ free_atom_wave_function_residual()

std::vector< double > sirius::Free_atom::free_atom_wave_function_residual ( int  ist__) const
inline

Get residual.

Definition at line 427 of file free_atom.hpp.

Member Data Documentation

◆ free_atom_orbital_density_

mdarray<double, 2> sirius::Free_atom::free_atom_orbital_density_
private

Densities of individual orbitals.

Definition at line 42 of file free_atom.hpp.

◆ free_atom_wave_functions_

mdarray<double, 2> sirius::Free_atom::free_atom_wave_functions_
private

Radial wave-functions.

Definition at line 44 of file free_atom.hpp.

◆ free_atom_wave_functions_x_

mdarray<double, 2> sirius::Free_atom::free_atom_wave_functions_x_
private

Radial wave-functions multiplied by r.

Definition at line 46 of file free_atom.hpp.

◆ free_atom_wave_functions_x_deriv_

mdarray<double, 2> sirius::Free_atom::free_atom_wave_functions_x_deriv_
private

Derivatieve of radial wave-functions multiplied by r.

Definition at line 48 of file free_atom.hpp.

◆ free_atom_electronic_potential_

Spline<double> sirius::Free_atom::free_atom_electronic_potential_
private

Potential generated by the electronic ensity.

Nuclear potential -z/r can always be treated analyticaly

Definition at line 51 of file free_atom.hpp.

◆ NIST_LDA_Etot_

double sirius::Free_atom::NIST_LDA_Etot_ {0}
private

NIST total energy for LDA calculation.

Definition at line 53 of file free_atom.hpp.

◆ NIST_ScRLDA_Etot_

double sirius::Free_atom::NIST_ScRLDA_Etot_ {0}
private

NIST total energy for scalar-relativistic LDA calculation.

Definition at line 55 of file free_atom.hpp.

◆ enu_

std::vector<double> sirius::Free_atom::enu_
private

Energies of atomic levels.

Definition at line 57 of file free_atom.hpp.


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