vdw_buffered_7_14_Rijgrad Subroutine

private subroutine vdw_buffered_7_14_Rijgrad(Rij, Rij0, Eij, Rijgrad)

Compute the gradient of vdw energy (using the buffered 7-14 potential ref: 10.1021/jp027815) with respect to the distance between the two atoms (Rij).

Arguments

Type IntentOptional Attributes Name
real(kind=rp), intent(in) :: Rij
real(kind=rp), intent(in) :: Rij0
real(kind=rp), intent(in) :: Eij
real(kind=rp), intent(out) :: Rijgrad

Contents


Source Code

    subroutine vdw_buffered_7_14_Rijgrad(Rij, Rij0, Eij, Rijgrad)
        !! Compute the gradient of vdw energy (using the buffered 7-14 
        !! potential ref: 10.1021/jp027815) with respect to the distance 
        !! between the two atoms (Rij).
        
        implicit none

        real(rp), intent(in) :: Rij
        real(rp), intent(in) :: Rij0
        real(rp), intent(in) :: Eij
        real(rp), intent(out) :: Rijgrad

        real(rp) :: rho, rhom
        real(rp), parameter :: delta = 0.07, gam = 0.12
        integer(ip), parameter :: n = 14, m = 7

        rho = Rij / Rij0
        rhom = rho**m
        Rijgrad = Eij * ((delta+1)/(delta+rho))**(n-m) * &
                  (rho*(gam+rhom)*(m-n)*(1-2*rhom-gam) - &
                  rhom*m*(delta+rho)*(gam+1)) / &
                  (rho*(delta+rho)*(gam+rhom)**2)
        Rijgrad = Rijgrad / Rij0

    end subroutine vdw_buffered_7_14_Rijgrad