Abstract base type for all quantum chemistry methods
Defines the required interface for energy and gradient calculations that must be implemented by all concrete method types (XTB, HF, etc.).
Energy calculation interface
Interface for energy-only calculations
Computes the electronic energy for a molecular fragment using the specified quantum chemistry method.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qc_method_t), | intent(in) | :: | this |
Method instance |
||
| type(physical_fragment_t), | intent(in) | :: | fragment |
Molecular fragment |
||
| type(calculation_result_t), | intent(out) | :: | result |
Calculation results |
Gradient calculation interface
Interface for energy and gradient calculations
Computes both electronic energy and nuclear gradients for a molecular fragment using the specified quantum chemistry method.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qc_method_t), | intent(in) | :: | this |
Method instance |
||
| type(physical_fragment_t), | intent(in) | :: | fragment |
Molecular fragment |
||
| type(calculation_result_t), | intent(out) | :: | result |
Hessian calculation interface
Interface for energy, gradient, and Hessian calculations
Computes electronic energy, nuclear gradients, and Hessian matrix for a molecular fragment using the specified quantum chemistry method.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qc_method_t), | intent(in) | :: | this |
Method instance |
||
| type(physical_fragment_t), | intent(in) | :: | fragment |
Molecular fragment |
||
| type(calculation_result_t), | intent(out) | :: | result |
type, abstract :: qc_method_t !! Abstract base type for all quantum chemistry methods !! !! Defines the required interface for energy and gradient calculations !! that must be implemented by all concrete method types (XTB, HF, etc.). contains procedure(calc_energy_interface), deferred :: calc_energy !! Energy calculation interface procedure(calc_gradient_interface), deferred :: calc_gradient !! Gradient calculation interface procedure(calc_hessian_interface), deferred :: calc_hessian !! Hessian calculation interface end type qc_method_t