Evaluation of the dispersion energy expression
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(damping_param), | intent(in) | :: | self |
Damping parameters |
||
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| real(kind=wp), | intent(in) | :: | trans(:,:) |
Lattice points |
||
| real(kind=wp), | intent(in) | :: | cutoff |
Real space cutoff |
||
| real(kind=wp), | intent(in) | :: | width |
Width of smooth cutoff |
||
| real(kind=wp), | intent(in) | :: | rvdw(:,:) |
Van-der-Waals radii for damping function |
||
| real(kind=wp), | intent(in) | :: | r4r2(:) |
Expectation values for C8 extrapolation |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(in), | optional | :: | dc6dcn(:,:) |
Derivative of the C6 w.r.t. the coordination number |
|
| real(kind=wp), | intent(inout) | :: | energy(:) |
Dispersion energy |
||
| real(kind=wp), | intent(inout), | optional | :: | dEdcn(:) |
Derivative of the energy w.r.t. the coordination number |
|
| real(kind=wp), | intent(inout), | optional | :: | gradient(:,:) |
Dispersion gradient |
|
| real(kind=wp), | intent(inout), | optional | :: | sigma(:,:) |
Dispersion virial |
|
| type(work_partition), | intent(in), | optional | :: | partition |
Work partition of the atom pairs, defaults to the complete work |
| procedure(damping_kernel_interface), public, deferred :: get_damping_kernel | Pair kernel and its derivatives w.r.t. squared distance and C6 coefficient |
| generic, public :: get_dispersion2 => get_dispersion2_impl, get_dispersion2_compat | |
| procedure, public :: get_dispersion2_compat | |
| procedure, public :: get_dispersion2_ewald | Evaluate the two-body dispersion energy by Ewald summation |
| procedure(dispersion_interface), public, deferred :: get_dispersion2_impl | |
| generic, public :: get_dispersion3 => get_dispersion3_impl, get_dispersion3_compat | |
| procedure, public :: get_dispersion3_compat | |
| procedure(dispersion3_hessian_interface), public, deferred :: get_dispersion3_hessian | Evaluate three-body contribution to the hessian |
| procedure(dispersion_interface), public, deferred :: get_dispersion3_impl | |
| procedure, public :: get_fourier_terms | Reciprocal space representation of the damped pair potential |
| generic, public :: get_pairwise_dispersion2 => get_pairwise_dispersion2_impl, get_pairwise_dispersion2_compat | |
| procedure, public :: get_pairwise_dispersion2_compat | |
| procedure(pairwise_dispersion_interface), public, deferred :: get_pairwise_dispersion2_impl | |
| generic, public :: get_pairwise_dispersion3 => get_pairwise_dispersion3_impl, get_pairwise_dispersion3_compat | |
| procedure, public :: get_pairwise_dispersion3_compat | |
| procedure(pairwise_dispersion_interface), public, deferred :: get_pairwise_dispersion3_impl | |
| procedure, public :: has_threebody | Whether the three-body term contributes to the energy |
| procedure, public :: supports_ewald | Whether the damping function can be evaluated by Ewald summation |
Two-body contribution to the analytical Hessian.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(damping_param), | intent(in) | :: | self |
Damping parameters |
||
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| real(kind=wp), | intent(in) | :: | trans(:,:) |
Lattice points |
||
| real(kind=wp), | intent(in) | :: | cutoff |
Real space cutoff |
||
| real(kind=wp), | intent(in) | :: | width |
Width of smooth cutoff |
||
| real(kind=wp), | intent(in) | :: | rvdw(:,:) |
Van-der-Waals radii for damping function |
||
| real(kind=wp), | intent(in) | :: | r4r2(:) |
Expectation values for C8 extrapolation |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(in) | :: | dc6dcn(:,:) |
Derivatives of the C6 w.r.t. the coordination number |
||
| real(kind=wp), | intent(in) | :: | d2c6dcn2(:,:) |
Derivatives of the C6 w.r.t. the coordination number |
||
| real(kind=wp), | intent(in) | :: | d2c6dcnij(:,:) |
Derivatives of the C6 w.r.t. the coordination number |
||
| real(kind=wp), | intent(inout) | :: | hessian(:,:) |
Second derivative of the energy w.r.t. the Cartesian coordinates |
||
| real(kind=wp), | intent(inout) | :: | dEdcn(:) |
Derivative of the energy w.r.t. the coordination number |
||
| real(kind=wp), | intent(inout) | :: | dEdcndr(:,:) |
Mixed derivative w.r.t. coordination number and Cartesian coordinates |
||
| real(kind=wp), | intent(inout) | :: | dEdcndcn(:,:) |
Second derivative w.r.t. the coordination numbers |
||
| type(work_partition), | intent(in), | optional | :: | partition |
Work partition of the atom pairs |