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

The whole DFT ground state implementation. More...

#include <dft_ground_state.hpp>

Public Member Functions

 DFT_ground_state (K_point_set &kset__)
 Constructor. More...
 
Simulation_context const & ctx () const
 Return reference to a simulation context. More...
 
Hamiltonian0< double > & get_H0 () const
 
Densitydensity ()
 
Potentialpotential ()
 
K_point_setk_point_set ()
 
Forceforces ()
 
Stressstress ()
 
double ewald_energy () const
 
double scf_correction_energy () const
 
void create_H0 ()
 
double total_energy () const
 
void initial_state ()
 Generate initial density, potential and a subspace of wave-functions. More...
 
void update ()
 Update the parameters after the change of lattice vectors or atomic positions. More...
 
json find (double density_tol, double energy_tol, double initial_tolerance, int num_dft_iter, bool write_state)
 Run the SCF ground state calculation and find a total energy minimum. More...
 
void print_info (std::ostream &out__) const
 Print the basic information (total energy, charges, moments, etc.). More...
 
double energy_kin_sum_pw () const
 
json serialize ()
 
json check_scf_density ()
 A quick check of self-constent density in case of pseudopotential. More...
 

Private Attributes

Simulation_contextctx_
 Context of simulation. More...
 
K_point_setkset_
 Set of k-points that are used to generate density. More...
 
Unit_cellunit_cell_
 Alias of the unit cell. More...
 
Potential potential_
 Instance of the Potential class. More...
 
Density density_
 Instance of the Density class. More...
 
Stress stress_
 Lattice stress. More...
 
Force forces_
 Atomic forces. More...
 
std::shared_ptr< Hamiltonian0< double > > H0_
 k-point independent part of the Hamiltonian. More...
 
double ewald_energy_ {0}
 Store Ewald energy which is computed once and which doesn't change during the run. More...
 
double scf_correction_energy_ {0}
 Correction to total energy from the SCF density minimisation. More...
 

Detailed Description

The whole DFT ground state implementation.

The DFT cycle consists of four basic steps: solution of the Kohn-Sham equations, summation of the occupied states in order to get a system's charge density and magnetization, mixing and finally gneneration of the effective potential and effective magnetic field.

DFT self-consistency cycle

Definition at line 44 of file dft_ground_state.hpp.

Constructor & Destructor Documentation

◆ DFT_ground_state()

sirius::DFT_ground_state::DFT_ground_state ( K_point_set kset__)
inline

Constructor.

Definition at line 79 of file dft_ground_state.hpp.

◆ ~DFT_ground_state()

sirius::DFT_ground_state::~DFT_ground_state ( )
inline

Definition at line 93 of file dft_ground_state.hpp.

Member Function Documentation

◆ ctx()

Simulation_context const & sirius::DFT_ground_state::ctx ( ) const
inline

Return reference to a simulation context.

Definition at line 113 of file dft_ground_state.hpp.

◆ get_H0()

Hamiltonian0< double > & sirius::DFT_ground_state::get_H0 ( ) const
inline

Definition at line 118 of file dft_ground_state.hpp.

◆ density()

Density & sirius::DFT_ground_state::density ( )
inline

Definition at line 123 of file dft_ground_state.hpp.

◆ potential()

Potential & sirius::DFT_ground_state::potential ( )
inline

Definition at line 128 of file dft_ground_state.hpp.

◆ k_point_set()

K_point_set & sirius::DFT_ground_state::k_point_set ( )
inline

Definition at line 133 of file dft_ground_state.hpp.

◆ forces()

Force & sirius::DFT_ground_state::forces ( )
inline

Definition at line 138 of file dft_ground_state.hpp.

◆ stress()

Stress & sirius::DFT_ground_state::stress ( )
inline

Definition at line 143 of file dft_ground_state.hpp.

◆ ewald_energy()

double sirius::DFT_ground_state::ewald_energy ( ) const
inline

Definition at line 148 of file dft_ground_state.hpp.

◆ scf_correction_energy()

double sirius::DFT_ground_state::scf_correction_energy ( ) const
inline

Definition at line 153 of file dft_ground_state.hpp.

◆ create_H0()

void sirius::DFT_ground_state::create_H0 ( )

Definition at line 57 of file dft_ground_state.cpp.

◆ total_energy()

double sirius::DFT_ground_state::total_energy ( ) const

Definition at line 110 of file dft_ground_state.cpp.

◆ initial_state()

void sirius::DFT_ground_state::initial_state ( )

Generate initial density, potential and a subspace of wave-functions.

Definition at line 34 of file dft_ground_state.cpp.

◆ update()

void sirius::DFT_ground_state::update ( )

Update the parameters after the change of lattice vectors or atomic positions.

Definition at line 65 of file dft_ground_state.cpp.

◆ find()

json sirius::DFT_ground_state::find ( double  density_tol,
double  energy_tol,
double  initial_tolerance,
int  num_dft_iter,
bool  write_state 
)

Run the SCF ground state calculation and find a total energy minimum.

Definition at line 193 of file dft_ground_state.cpp.

◆ print_info()

void sirius::DFT_ground_state::print_info ( std::ostream &  out__) const

Print the basic information (total energy, charges, moments, etc.).

Definition at line 434 of file dft_ground_state.cpp.

◆ energy_kin_sum_pw()

double sirius::DFT_ground_state::energy_kin_sum_pw ( ) const

Definition at line 80 of file dft_ground_state.cpp.

◆ serialize()

json sirius::DFT_ground_state::serialize ( )

Definition at line 116 of file dft_ground_state.cpp.

◆ check_scf_density()

json sirius::DFT_ground_state::check_scf_density ( )

A quick check of self-constent density in case of pseudopotential.

Definition at line 123 of file dft_ground_state.cpp.

Member Data Documentation

◆ ctx_

Simulation_context& sirius::DFT_ground_state::ctx_
private

Context of simulation.

Definition at line 48 of file dft_ground_state.hpp.

◆ kset_

K_point_set& sirius::DFT_ground_state::kset_
private

Set of k-points that are used to generate density.

Definition at line 51 of file dft_ground_state.hpp.

◆ unit_cell_

Unit_cell& sirius::DFT_ground_state::unit_cell_
private

Alias of the unit cell.

Definition at line 54 of file dft_ground_state.hpp.

◆ potential_

Potential sirius::DFT_ground_state::potential_
private

Instance of the Potential class.

Definition at line 57 of file dft_ground_state.hpp.

◆ density_

Density sirius::DFT_ground_state::density_
private

Instance of the Density class.

Definition at line 60 of file dft_ground_state.hpp.

◆ stress_

Stress sirius::DFT_ground_state::stress_
private

Lattice stress.

Definition at line 63 of file dft_ground_state.hpp.

◆ forces_

Force sirius::DFT_ground_state::forces_
private

Atomic forces.

Definition at line 66 of file dft_ground_state.hpp.

◆ H0_

std::shared_ptr<Hamiltonian0<double> > sirius::DFT_ground_state::H0_
private

k-point independent part of the Hamiltonian.

Definition at line 69 of file dft_ground_state.hpp.

◆ ewald_energy_

double sirius::DFT_ground_state::ewald_energy_ {0}
private

Store Ewald energy which is computed once and which doesn't change during the run.

Definition at line 72 of file dft_ground_state.hpp.

◆ scf_correction_energy_

double sirius::DFT_ground_state::scf_correction_energy_ {0}
private

Correction to total energy from the SCF density minimisation.

Definition at line 75 of file dft_ground_state.hpp.


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