get_dispersion2_compat Subroutine

public subroutine get_dispersion2_compat(self, mol, trans, cutoff, rvdw, r4r2, c6, dc6dcn, energy, dEdcn, gradient, sigma)

Evaluation of the dispersion energy expression

Type Bound

damping_param

Arguments

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


Source Code

   subroutine get_dispersion2_compat(self, mol, trans, cutoff, rvdw, r4r2, c6, dc6dcn, &
         & energy, dEdcn, gradient, sigma)

      !> Damping parameters
      class(damping_param), intent(in) :: self

      !> Molecular structure data
      class(structure_type), intent(in) :: mol

      !> Lattice points
      real(wp), intent(in) :: trans(:, :)

      !> Real space cutoff
      real(wp), intent(in) :: cutoff

      !> Van-der-Waals radii for damping function
      real(wp), intent(in) :: rvdw(:, :)

      !> Expectation values for C8 extrapolation
      real(wp), intent(in) :: r4r2(:)

      !> C6 coefficients for all atom pairs.
      real(wp), intent(in) :: c6(:, :)

      !> Derivative of the C6 w.r.t. the coordination number
      real(wp), intent(in), optional :: dc6dcn(:, :)

      !> Dispersion energy
      real(wp), intent(inout) :: energy(:)

      !> Derivative of the energy w.r.t. the coordination number
      real(wp), intent(inout), optional :: dEdcn(:)

      !> Dispersion gradient
      real(wp), intent(inout), optional :: gradient(:, :)

      !> Dispersion virial
      real(wp), intent(inout), optional :: sigma(:, :)

      call self%get_dispersion2(mol, trans, cutoff, 0.0_wp, rvdw, r4r2, c6, &
         & dc6dcn, energy, dEdcn, gradient, sigma)
   end subroutine get_dispersion2_compat