Extended Tight-Binding (xTB) method implementation
Concrete implementation of the abstract quantum chemistry method interface for GFN1-xTB and GFN2-xTB calculations via tblite.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | public | :: | accuracy | = | 0.01_wp |
Numerical accuracy parameter |
|
| integer, | public | :: | cpcm_nang | = | 110 |
Number of angular points for CPCM cavity |
|
| real(kind=wp), | public | :: | cpcm_rscale | = | 1.0_wp |
Radii scaling for CPCM cavity |
|
| real(kind=wp), | public | :: | dielectric | = | -1.0_wp |
Direct dielectric constant (-1 = use solvent lookup) |
|
| real(kind=wp), | public | :: | kt | = | 300.0_wp*3.166808578545117e-06_wp |
Electronic temperature (300 K) |
|
| character(len=:), | public, | allocatable | :: | solvation_model |
“alpb” (default), “gbsa”, or “cpcm” |
||
| character(len=:), | public, | allocatable | :: | solvent |
Solvent name: “water”, “ethanol”, etc. |
||
| logical, | public | :: | use_cds | = | .true. |
Include non-polar CDS terms (not for CPCM) |
|
| logical, | public | :: | use_shift | = | .true. |
Include solution state shift (not for CPCM) |
|
| character(len=:), | public, | allocatable | :: | variant |
XTB variant: “gfn1” or “gfn2” |
||
| logical, | public | :: | verbose | = | .false. |
Print calculation details |
Energy-only calculation
Calculate electronic energy using Extended Tight-Binding (xTB) method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(xtb_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |
Energy + gradient calculation
Calculate energy gradient using Extended Tight-Binding (xTB) method
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(xtb_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |
Placeholder for Hessian calculation
Calculate Hessian using finite differences of gradients
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(xtb_method_t), | intent(in) | :: | this | |||
| type(physical_fragment_t), | intent(in) | :: | fragment | |||
| type(calculation_result_t), | intent(out) | :: | result |
type, extends(qc_method_t) :: xtb_method_t !! Extended Tight-Binding (xTB) method implementation !! !! Concrete implementation of the abstract quantum chemistry method !! interface for GFN1-xTB and GFN2-xTB calculations via tblite. character(len=:), allocatable :: variant !! XTB variant: "gfn1" or "gfn2" logical :: verbose = .false. !! Print calculation details real(wp) :: accuracy = 0.01_wp !! Numerical accuracy parameter real(wp) :: kt = 300.0_wp*3.166808578545117e-06_wp !! Electronic temperature (300 K) ! Solvation settings (leave solvent unallocated for gas phase) character(len=:), allocatable :: solvent !! Solvent name: "water", "ethanol", etc. character(len=:), allocatable :: solvation_model !! "alpb" (default), "gbsa", or "cpcm" logical :: use_cds = .true. !! Include non-polar CDS terms (not for CPCM) logical :: use_shift = .true. !! Include solution state shift (not for CPCM) ! CPCM-specific settings real(wp) :: dielectric = -1.0_wp !! Direct dielectric constant (-1 = use solvent lookup) integer :: cpcm_nang = 110 !! Number of angular points for CPCM cavity real(wp) :: cpcm_rscale = 1.0_wp !! Radii scaling for CPCM cavity contains procedure :: calc_energy => xtb_calc_energy !! Energy-only calculation procedure :: calc_gradient => xtb_calc_gradient !! Energy + gradient calculation procedure :: calc_hessian => xtb_calc_hessian !! Placeholder for Hessian calculation end type xtb_method_t