Implements Kohn-Sham DFT quantum chemistry method Provides energy and gradient calculations using self-consistent field with exchange-correlation functionals.
DFT method implementation
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(dft_options_t), | public | :: | options |
| procedure, public :: calc_energy => dft_calc_energy | |
| procedure, public :: calc_gradient => dft_calc_gradient | |
| procedure, public :: calc_hessian => dft_calc_hessian |
DFT calculation options
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | angular_points | = | 302 |
Number of angular grid points (Lebedev) |
|
| character(len=32), | public | :: | aux_basis_set | = | '' |
Auxiliary basis set for density fitting |
|
| character(len=32), | public | :: | basis_set | = | 'sto-3g' |
Basis set name |
|
| real(kind=dp), | public | :: | density_tol | = | 1.0e-6_dp |
Density matrix convergence threshold |
|
| integer, | public | :: | diis_size | = | 8 |
Number of Fock matrices in DIIS |
|
| character(len=8), | public | :: | dispersion_type | = | 'd3bj' |
Dispersion type: “d3”, “d3bj”, “d4” |
|
| real(kind=dp), | public | :: | energy_tol | = | 1.0e-8_dp |
Energy convergence threshold |
|
| character(len=32), | public | :: | functional | = | 'b3lyp' |
Exchange-correlation functional |
|
| character(len=16), | public | :: | grid_type | = | 'medium' |
Integration grid quality |
|
| integer, | public | :: | max_iter | = | 100 |
Maximum SCF iterations |
|
| integer, | public | :: | radial_points | = | 75 |
Number of radial grid points per atom |
|
| logical, | public | :: | spherical | = | .true. |
Use spherical (true) or Cartesian (false) basis |
|
| logical, | public | :: | use_density_fitting | = | .false. |
Use RI-J approximation |
|
| logical, | public | :: | use_diis | = | .true. |
Use DIIS for SCF convergence |
|
| logical, | public | :: | use_dispersion | = | .false. |
Add empirical dispersion correction |
|
| logical, | public | :: | verbose | = | .false. |
Print SCF iterations |
Calculate electronic energy using Kohn-Sham DFT
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dft_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |
Calculate energy gradient using Kohn-Sham DFT
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dft_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |
Calculate energy Hessian using Kohn-Sham DFT
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(dft_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |