Pair kernel and its derivatives w.r.t. squared distance and C6 coefficient
Pair dispersion kernel and its partial derivatives.
Returns the pair energy contribution as a function of the squared distance and the C6 coefficient together with all first and second partial derivatives. The smooth cutoff and multiplicity are applied by the caller.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(damping_param), | intent(in) | :: | self |
Damping parameters |
||
| integer, | intent(in) | :: | izp |
Species indices of the pair |
||
| integer, | intent(in) | :: | jzp |
Species indices of the pair |
||
| 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) | :: | r2 |
Squared distance of the pair |
||
| real(kind=wp), | intent(in) | :: | c6 |
C6 coefficient of the pair |
||
| real(kind=wp), | intent(out) | :: | e |
Pair energy and its derivatives |
||
| real(kind=wp), | intent(out) | :: | er |
Pair energy and its derivatives |
||
| real(kind=wp), | intent(out) | :: | ec |
Pair energy and its derivatives |
||
| real(kind=wp), | intent(out) | :: | err |
Pair energy and its derivatives |
||
| real(kind=wp), | intent(out) | :: | erc |
Pair energy and its derivatives |
||
| real(kind=wp), | intent(out) | :: | ecc |
Pair energy and its derivatives |
Evaluation of the dispersion energy expression
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(zero_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 |
Evaluation of the dispersion energy expression
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | 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 |
Evaluation of the dispersion energy expression
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | 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 |
Evaluate the two-body dispersion energy by Ewald summation
Evaluate the two-body dispersion energy by summation over the reciprocal lattice.
Requires a separable representation of the C6 coefficients in the dispersion model and a damping function supporting the Ewald summation.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(damping_param), | intent(in) | :: | self |
Damping parameters |
||
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| class(d3_model), | intent(in) | :: | disp |
Dispersion model |
||
| real(kind=wp), | intent(in) | :: | gwvec(:,:) |
Weighting function for the atomic reference systems |
||
| real(kind=wp), | intent(in), | optional | :: | gwdcn(:,:) |
Derivative of the weighting function w.r.t. the coordination number |
|
| real(kind=wp), | intent(inout) | :: | energies(:) |
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(error_type), | intent(out), | allocatable | :: | error |
Error handling |
|
| type(work_partition), | intent(in), | optional | :: | partition |
Work partition of the reciprocal space summation |
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 |
Evaluation of the dispersion energy expression
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(zero_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 |
Evaluation of the dispersion energy expression
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | 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 |
Evaluation of the dispersion energy expression
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | 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 |
Evaluate three-body contribution to the hessian
Evaluation of the three-body contribution to the 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, defaults to the complete work |
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 |
Reciprocal space representation of the damped pair potential
Reciprocal space representation of the damped pair potential.
Only meaningful for damping functions reporting support for the Ewald summation, all others contribute no terms.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(damping_param), | intent(in) | :: | self |
Damping parameters |
||
| integer, | intent(in) | :: | izp |
Species indices of the pair |
||
| integer, | intent(in) | :: | jzp |
Species indices of the pair |
||
| real(kind=wp), | intent(in) | :: | rvdw(:,:) |
Van-der-Waals radii for damping function |
||
| real(kind=wp), | intent(in) | :: | r4r2(:) |
Expectation values for C8 extrapolation |
||
| type(fourier_term), | intent(out) | :: | terms(:) |
Terms of the damped pair potential |
||
| integer, | intent(out) | :: | nterm |
Number of terms of the damped pair potential |
Evaluation of the dispersion energy expression projected on atomic pairs
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(zero_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 r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Dispersion energy |
Evaluation of the pairwise representation of the dispersion energy
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | rvdw(:,:) |
Van-der-Waals radii for damping function |
||
| real(kind=wp), | intent(in) | :: | r4r2(:) |
Expectation values for r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Pairwise representation of the dispersion energy |
Evaluation of the pairwise representation of the dispersion energy
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | rvdw(:,:) |
Van-der-Waals radii for damping function |
||
| real(kind=wp), | intent(in) | :: | r4r2(:) |
Expectation values for r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Pairwise representation of the dispersion energy |
Evaluation of the pairwise representation of the dispersion energy
| 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 r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Pairwise representation of the dispersion energy |
Evaluation of the dispersion energy expression
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(zero_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 r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Dispersion energy |
Evaluation of the pairwise representation of the dispersion energy
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | rvdw(:,:) |
Van-der-Waals radii for damping function |
||
| real(kind=wp), | intent(in) | :: | r4r2(:) |
Expectation values for r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Pairwise representation of the dispersion energy |
Evaluation of the pairwise representation of the dispersion energy
deprecated: removed with the v2 API, use the interface with an explicit width
| 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) | :: | rvdw(:,:) |
Van-der-Waals radii for damping function |
||
| real(kind=wp), | intent(in) | :: | r4r2(:) |
Expectation values for r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Pairwise representation of the dispersion energy |
Evaluation of the pairwise representation of the dispersion energy
| 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 r4 over r2 operator |
||
| real(kind=wp), | intent(in) | :: | c6(:,:) |
C6 coefficients for all atom pairs. |
||
| real(kind=wp), | intent(inout) | :: | energy(:,:) |
Pairwise representation of the dispersion energy |
Whether the three-body term contributes to the energy
Whether the three-body term contributes to the energy.
The three-body term reads the C6 coefficients of pairs outside the work partition, a damping function without it only needs its own pairs. Assume the worst for damping functions that do not answer.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(damping_param), | intent(in) | :: | self |
Damping parameters |
Whether the three-body term contributes
Whether the damping function can be evaluated by Ewald summation
Whether the damping function has a known reciprocal space representation.
Damping functions which are not rational in the interatomic distance, or whose damping radius depends on the C6 coefficient, cannot be brought into the separable form required by the Ewald summation.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(damping_param), | intent(in) | :: | self |
Damping parameters |
Whether the damping function can be evaluated in reciprocal space
type, abstract :: damping_param contains generic :: get_dispersion2 => get_dispersion2_impl, get_dispersion2_compat procedure(dispersion_interface), deferred :: get_dispersion2_impl procedure :: get_dispersion2_compat => get_dispersion2_compat generic :: get_dispersion3 => get_dispersion3_impl, get_dispersion3_compat procedure(dispersion_interface), deferred :: get_dispersion3_impl procedure :: get_dispersion3_compat => get_dispersion3_compat generic :: get_pairwise_dispersion2 => get_pairwise_dispersion2_impl, get_pairwise_dispersion2_compat procedure(pairwise_dispersion_interface), deferred :: get_pairwise_dispersion2_impl procedure :: get_pairwise_dispersion2_compat => get_pairwise_dispersion2_compat generic :: get_pairwise_dispersion3 => get_pairwise_dispersion3_impl, get_pairwise_dispersion3_compat procedure(pairwise_dispersion_interface), deferred :: get_pairwise_dispersion3_impl procedure :: get_pairwise_dispersion3_compat => get_pairwise_dispersion3_compat !> Pair kernel and its derivatives w.r.t. squared distance and C6 coefficient procedure(damping_kernel_interface), deferred :: get_damping_kernel !> Evaluate three-body contribution to the hessian procedure(dispersion3_hessian_interface), deferred :: get_dispersion3_hessian !> Whether the damping function can be evaluated by Ewald summation procedure :: supports_ewald !> Whether the three-body term contributes to the energy procedure :: has_threebody !> Reciprocal space representation of the damped pair potential procedure :: get_fourier_terms !> Evaluate the two-body dispersion energy by Ewald summation procedure :: get_dispersion2_ewald end type damping_param