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

Settings control the internal parameters related to the numerical implementation. More...

#include <config.hpp>

Public Member Functions

 settings_t (nlohmann::json &dict__)
 
auto nprii_vloc () const
 Point density (in a.u.^-1) for interpolating radial integrals of the local part of pseudopotential. More...
 
void nprii_vloc (int nprii_vloc__)
 
auto nprii_beta () const
 Point density (in a.u.^-1) for interpolating radial integrals of the beta projectors. More...
 
void nprii_beta (int nprii_beta__)
 
auto nprii_aug () const
 Point density (in a.u.^-1) for interpolating radial integrals of the augmentation operator. More...
 
void nprii_aug (int nprii_aug__)
 
auto nprii_rho_core () const
 Point density (in a.u.^-1) for interpolating radial integrals of the core charge density. More...
 
void nprii_rho_core (int nprii_rho_core__)
 
auto always_update_wf () const
 Update wave-functions in the Davdison solver even if they immediately satisfy the convergence criterion. More...
 
void always_update_wf (bool always_update_wf__)
 
auto mixer_rms_min () const
 Minimum value of allowed RMS for the mixer. More...
 
void mixer_rms_min (double mixer_rms_min__)
 
auto itsol_tol_min () const
 Minimum tolerance of the iterative solver. More...
 
void itsol_tol_min (double itsol_tol_min__)
 
auto min_occupancy () const
 Minimum occupancy below which the band is treated as being 'empty'. More...
 
void min_occupancy (double min_occupancy__)
 
auto itsol_tol_ratio () const
 Fine control of the empty states tolerance. More...
 
void itsol_tol_ratio (double itsol_tol_ratio__)
 
auto itsol_tol_scale () const
 Scaling parameters of the iterative solver tolerance. More...
 
void itsol_tol_scale (std::array< double, 2 > itsol_tol_scale__)
 
auto auto_enu_tol () const
 Tolerance to recompute the LAPW linearisation energies. More...
 
void auto_enu_tol (double auto_enu_tol__)
 
auto fft_grid_size () const
 Initial dimenstions for the fine-grain FFT grid. More...
 
void fft_grid_size (std::array< int, 3 > fft_grid_size__)
 
auto radial_grid () const
 Default radial grid for LAPW species. More...
 
void radial_grid (std::string radial_grid__)
 
auto sht_coverage () const
 Coverage of sphere in case of spherical harmonics transformation. More...
 
void sht_coverage (int sht_coverage__)
 
auto fp32_to_fp64_rms () const
 Density RMS tolerance to switch to FP64 implementation. If zero, estimation of iterative solver tolerance is used. More...
 
void fp32_to_fp64_rms (double fp32_to_fp64_rms__)
 

Private Attributes

nlohmann::json & dict_
 

Detailed Description

Settings control the internal parameters related to the numerical implementation.

Changing of setting parameters will have a small impact on the final result.

Definition at line 115 of file config.hpp.

Constructor & Destructor Documentation

◆ settings_t()

sirius::config_t::settings_t::settings_t ( nlohmann::json &  dict__)
inline

Definition at line 118 of file config.hpp.

Member Function Documentation

◆ nprii_vloc() [1/2]

auto sirius::config_t::settings_t::nprii_vloc ( ) const
inline

Point density (in a.u.^-1) for interpolating radial integrals of the local part of pseudopotential.

Definition at line 123 of file config.hpp.

◆ nprii_vloc() [2/2]

void sirius::config_t::settings_t::nprii_vloc ( int  nprii_vloc__)
inline

Definition at line 127 of file config.hpp.

◆ nprii_beta() [1/2]

auto sirius::config_t::settings_t::nprii_beta ( ) const
inline

Point density (in a.u.^-1) for interpolating radial integrals of the beta projectors.

Definition at line 135 of file config.hpp.

◆ nprii_beta() [2/2]

void sirius::config_t::settings_t::nprii_beta ( int  nprii_beta__)
inline

Definition at line 139 of file config.hpp.

◆ nprii_aug() [1/2]

auto sirius::config_t::settings_t::nprii_aug ( ) const
inline

Point density (in a.u.^-1) for interpolating radial integrals of the augmentation operator.

Definition at line 147 of file config.hpp.

◆ nprii_aug() [2/2]

void sirius::config_t::settings_t::nprii_aug ( int  nprii_aug__)
inline

Definition at line 151 of file config.hpp.

◆ nprii_rho_core() [1/2]

auto sirius::config_t::settings_t::nprii_rho_core ( ) const
inline

Point density (in a.u.^-1) for interpolating radial integrals of the core charge density.

Definition at line 159 of file config.hpp.

◆ nprii_rho_core() [2/2]

void sirius::config_t::settings_t::nprii_rho_core ( int  nprii_rho_core__)
inline

Definition at line 163 of file config.hpp.

◆ always_update_wf() [1/2]

auto sirius::config_t::settings_t::always_update_wf ( ) const
inline

Update wave-functions in the Davdison solver even if they immediately satisfy the convergence criterion.

Definition at line 171 of file config.hpp.

◆ always_update_wf() [2/2]

void sirius::config_t::settings_t::always_update_wf ( bool  always_update_wf__)
inline

Definition at line 175 of file config.hpp.

◆ mixer_rms_min() [1/2]

auto sirius::config_t::settings_t::mixer_rms_min ( ) const
inline

Minimum value of allowed RMS for the mixer.

Mixer will not mix functions if the RMS between previous and current functions is below this tolerance.

Definition at line 186 of file config.hpp.

◆ mixer_rms_min() [2/2]

void sirius::config_t::settings_t::mixer_rms_min ( double  mixer_rms_min__)
inline

Definition at line 190 of file config.hpp.

◆ itsol_tol_min() [1/2]

auto sirius::config_t::settings_t::itsol_tol_min ( ) const
inline

Minimum tolerance of the iterative solver.

Definition at line 198 of file config.hpp.

◆ itsol_tol_min() [2/2]

void sirius::config_t::settings_t::itsol_tol_min ( double  itsol_tol_min__)
inline

Definition at line 202 of file config.hpp.

◆ min_occupancy() [1/2]

auto sirius::config_t::settings_t::min_occupancy ( ) const
inline

Minimum occupancy below which the band is treated as being 'empty'.

Definition at line 210 of file config.hpp.

◆ min_occupancy() [2/2]

void sirius::config_t::settings_t::min_occupancy ( double  min_occupancy__)
inline

Definition at line 214 of file config.hpp.

◆ itsol_tol_ratio() [1/2]

auto sirius::config_t::settings_t::itsol_tol_ratio ( ) const
inline

Fine control of the empty states tolerance.

This is the ratio between the tolerance of empty and occupied states. Used in the code like this:

// tolerance of occupied bands
double tol = ctx_.iterative_solver().energy_tolerance();
// final tolerance of empty bands
double empy_tol = std::max(tol * ctx_.settings().itsol_tol_ratio_, itso.empty_states_tolerance_);

Definition at line 231 of file config.hpp.

◆ itsol_tol_ratio() [2/2]

void sirius::config_t::settings_t::itsol_tol_ratio ( double  itsol_tol_ratio__)
inline

Definition at line 235 of file config.hpp.

◆ itsol_tol_scale() [1/2]

auto sirius::config_t::settings_t::itsol_tol_scale ( ) const
inline

Scaling parameters of the iterative solver tolerance.

First number is the scaling of density RMS, that gives the estimate of the new tolerance. Second number is the scaling of the old tolerance. New tolerance is then the minimum between the two. This is how it is done in the code:

double old_tol = ctx_.iterative_solver_tolerance();
// estimate new tolerance of iterative solver
double tol = std::min(ctx_.settings().itsol_tol_scale_[0] * rms, ctx_.settings().itsol_tol_scale_[1] * old_tol);
tol = std::max(ctx_.settings().itsol_tol_min_, tol);
// set new tolerance of iterative solver
ctx_.iterative_solver().energy_tolerance(tol);

Definition at line 255 of file config.hpp.

◆ itsol_tol_scale() [2/2]

void sirius::config_t::settings_t::itsol_tol_scale ( std::array< double, 2 >  itsol_tol_scale__)
inline

Definition at line 259 of file config.hpp.

◆ auto_enu_tol() [1/2]

auto sirius::config_t::settings_t::auto_enu_tol ( ) const
inline

Tolerance to recompute the LAPW linearisation energies.

Definition at line 267 of file config.hpp.

◆ auto_enu_tol() [2/2]

void sirius::config_t::settings_t::auto_enu_tol ( double  auto_enu_tol__)
inline

Definition at line 271 of file config.hpp.

◆ fft_grid_size() [1/2]

auto sirius::config_t::settings_t::fft_grid_size ( ) const
inline

Initial dimenstions for the fine-grain FFT grid.

Definition at line 279 of file config.hpp.

◆ fft_grid_size() [2/2]

void sirius::config_t::settings_t::fft_grid_size ( std::array< int, 3 >  fft_grid_size__)
inline

Definition at line 283 of file config.hpp.

◆ radial_grid() [1/2]

auto sirius::config_t::settings_t::radial_grid ( ) const
inline

Default radial grid for LAPW species.

Definition at line 291 of file config.hpp.

◆ radial_grid() [2/2]

void sirius::config_t::settings_t::radial_grid ( std::string  radial_grid__)
inline

Definition at line 295 of file config.hpp.

◆ sht_coverage() [1/2]

auto sirius::config_t::settings_t::sht_coverage ( ) const
inline

Coverage of sphere in case of spherical harmonics transformation.

0 is Lebedev-Laikov coverage, 1 is unifrom coverage

Definition at line 306 of file config.hpp.

◆ sht_coverage() [2/2]

void sirius::config_t::settings_t::sht_coverage ( int  sht_coverage__)
inline

Definition at line 310 of file config.hpp.

◆ fp32_to_fp64_rms() [1/2]

auto sirius::config_t::settings_t::fp32_to_fp64_rms ( ) const
inline

Density RMS tolerance to switch to FP64 implementation. If zero, estimation of iterative solver tolerance is used.

Definition at line 318 of file config.hpp.

◆ fp32_to_fp64_rms() [2/2]

void sirius::config_t::settings_t::fp32_to_fp64_rms ( double  fp32_to_fp64_rms__)
inline

Definition at line 322 of file config.hpp.

Member Data Documentation

◆ dict_

nlohmann::json& sirius::config_t::settings_t::dict_
private

Definition at line 330 of file config.hpp.


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