Geometric counterpoise correction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(structure_type), | intent(in) | :: | mol |
Molecular structure data |
||
type(gcp_param), | intent(in) | :: | param |
Geometric counterpoise parameters |
||
type(realspace_cutoff), | intent(in) | :: | cutoff |
Realspace cutoffs |
||
real(kind=wp), | intent(inout) | :: | energy |
Counter-poise energy |
||
real(kind=wp), | intent(inout), | optional | :: | gradient(:,:) |
Counter-poise gradient |
|
real(kind=wp), | intent(inout), | optional | :: | sigma(:,:) |
Counter-poise virial |
subroutine get_geometric_counterpoise(mol, param, cutoff, energy, gradient, sigma) !> Molecular structure data class(structure_type), intent(in) :: mol !> Geometric counterpoise parameters type(gcp_param), intent(in) :: param !> Realspace cutoffs type(realspace_cutoff), intent(in) :: cutoff !> Counter-poise energy real(wp), intent(inout) :: energy !> Counter-poise gradient real(wp), intent(inout), optional :: gradient(:, :) !> Counter-poise virial real(wp), intent(inout), optional :: sigma(:, :) real(wp), allocatable :: energies(:) allocate(energies(mol%nat), source=0.0_wp) call get_geometric_counterpoise_atomic(mol, param, cutoff, energies, gradient, sigma) energy = energy + sum(energies) end subroutine get_geometric_counterpoise