get_geometric_counterpoise Subroutine

public subroutine get_geometric_counterpoise(mol, param, cutoff, energy, gradient, sigma)

Geometric counterpoise correction

Arguments

Type IntentOptional 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


Source Code

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