Provides GFN1-xTB and GFN2-xTB methods via the tblite library, implementing the abstract method interface for energy and gradient calculations. XTB method implementation type
Extended Tight-Binding (xTB) method implementation
| 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 |
| procedure, public :: calc_energy => xtb_calc_energy | Energy-only calculation |
| procedure, public :: calc_gradient => xtb_calc_gradient | Energy + gradient calculation |
| procedure, public :: calc_hessian => xtb_calc_hessian | Placeholder for Hessian calculation |
Get dielectric constant for a named solvent
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | solvent_name |
Add implicit solvation model to XTB calculator
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(xtb_calculator), | intent(inout) | :: | calc | |||
| type(structure_type), | intent(in) | :: | mol | |||
| character(len=*), | intent(in) | :: | solvent |
Solvent name (can be empty if dielectric > 0) |
||
| character(len=*), | intent(in) | :: | solvation_model |
“alpb”, “gbsa”, or “cpcm” |
||
| character(len=*), | intent(in) | :: | method |
“gfn1” or “gfn2” |
||
| logical, | intent(in) | :: | use_cds | |||
| logical, | intent(in) | :: | use_shift | |||
| real(kind=wp), | intent(in) | :: | dielectric |
Direct dielectric constant (-1 = use solvent lookup) |
||
| integer, | intent(in) | :: | cpcm_nang |
Angular grid points for CPCM |
||
| real(kind=wp), | intent(in) | :: | cpcm_rscale |
Radii scaling for CPCM |
||
| type(error_type), | intent(out), | allocatable | :: | error |
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 |
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 |
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 |