Separable representation of the reference C6 coefficients
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | public | :: | error | = | 0.0_wp |
Maximum relative error of the reconstructed reference C6 coefficients |
|
| real(kind=wp), | public | :: | kcut | = | 0.0_wp |
Reciprocal space cutoff, zero selects the cutoff from the damping radii |
|
| real(kind=wp), | public, | allocatable | :: | lambda(:) |
Eigenvalues of the reference C6 matrix |
||
| integer, | public | :: | mesh | = | 0 |
Number of mesh points for the particle mesh evaluation |
|
| integer, | public | :: | rank | = | 0 |
Number of terms in the separable expansion |
|
| real(kind=wp), | public, | allocatable | :: | vec(:,:,:) |
Eigenvectors resolved by reference system and species |
Assemble the pair C6 coefficients from the separable factors
Assemble the pair C6 coefficients and their derivatives w.r.t. the coordination number from the separable factors.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(d3_lowrank_c6), | intent(in) | :: | self |
Instance of the separable representation |
||
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| logical, | intent(in) | :: | ghost(:) |
Atoms excluded from the dispersion calculation |
||
| 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(out) | :: | c6(:,:) |
C6 coefficients for all atom pairs |
||
| real(kind=wp), | intent(out), | optional | :: | dc6dcn(:,:) |
Derivative of the C6 w.r.t. the coordination number |
Contract the eigenvectors with the reference system weights
Contract the eigenvectors with the Gaussian weights of the reference systems to obtain the atom centered factors of the separable expansion.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(d3_lowrank_c6), | intent(in) | :: | self |
Instance of the separable representation |
||
| class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
| logical, | intent(in) | :: | ghost(:) |
Atoms excluded from the dispersion calculation |
||
| real(kind=wp), | intent(in) | :: | gwvec(:,:) |
Weighting function for the atomic reference systems |
||
| real(kind=wp), | intent(out) | :: | c6l(:,:) |
Atom centered factors of the separable expansion |
||
| real(kind=wp), | intent(in), | optional | :: | gwdcn(:,:) |
Derivative of the weighting function w.r.t. the coordination number |
|
| real(kind=wp), | intent(out), | optional | :: | dc6ldcn(:,:) |
Derivative of the atomic factors w.r.t. the coordination number |
type :: d3_lowrank_c6 !> Number of terms in the separable expansion integer :: rank = 0 !> Maximum relative error of the reconstructed reference C6 coefficients real(wp) :: error = 0.0_wp !> Reciprocal space cutoff, zero selects the cutoff from the damping radii real(wp) :: kcut = 0.0_wp !> Number of mesh points for the particle mesh evaluation integer :: mesh = 0 !> Eigenvalues of the reference C6 matrix real(wp), allocatable :: lambda(:) !> Eigenvectors resolved by reference system and species real(wp), allocatable :: vec(:, :, :) contains !> Contract the eigenvectors with the reference system weights procedure :: get_weights !> Assemble the pair C6 coefficients from the separable factors procedure :: get_atomic_c6 end type d3_lowrank_c6