mzero_damping_param Derived Type

type, public, extends(damping_param) :: mzero_damping_param

Modified zero damping model


Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: alp
real(kind=wp), public :: bet
real(kind=wp), public :: rs6
real(kind=wp), public :: rs8
real(kind=wp), public :: s6
real(kind=wp), public :: s8
real(kind=wp), public :: s9

Type-Bound Procedures

procedure, public :: get_dispersion2

Evaluate pairwise dispersion energy expression

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

    Evaluation of the dispersion energy expression

    Arguments

    Type IntentOptional Attributes Name
    class(mzero_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

procedure, public :: get_dispersion3

Evaluate ATM three-body dispersion energy expression

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

    Evaluation of the dispersion energy expression

    Arguments

    Type IntentOptional Attributes Name
    class(mzero_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

procedure, public :: get_pairwise_dispersion2

Evaluate pairwise representation of additive dispersion energy

  • public subroutine get_pairwise_dispersion2(self, mol, trans, cutoff, rvdw, r4r2, c6, energy)

    Evaluation of the dispersion energy expression projected on atomic pairs

    Arguments

    Type IntentOptional Attributes Name
    class(mzero_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 r4 over r2 operator

    real(kind=wp), intent(in) :: c6(:,:)

    C6 coefficients for all atom pairs.

    real(kind=wp), intent(inout) :: energy(:,:)

    Dispersion energy

procedure, public :: get_pairwise_dispersion3

Evaluate pairwise representation of non-additive dispersion energy

  • public subroutine get_pairwise_dispersion3(self, mol, trans, cutoff, rvdw, r4r2, c6, energy)

    Evaluation of the dispersion energy expression

    Arguments

    Type IntentOptional Attributes Name
    class(mzero_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 r4 over r2 operator

    real(kind=wp), intent(in) :: c6(:,:)

    C6 coefficients for all atom pairs.

    real(kind=wp), intent(inout) :: energy(:,:)

    Dispersion energy

Source Code

   type, extends(damping_param) :: mzero_damping_param
      real(wp) :: s6
      real(wp) :: s8
      real(wp) :: s9
      real(wp) :: rs6
      real(wp) :: rs8
      real(wp) :: alp
      real(wp) :: bet
   contains

      !> Evaluate pairwise dispersion energy expression
      procedure :: get_dispersion2

      !> Evaluate ATM three-body dispersion energy expression
      procedure :: get_dispersion3

      !> Evaluate pairwise representation of additive dispersion energy
      procedure :: get_pairwise_dispersion2

      !> Evaluate pairwise representation of non-additive dispersion energy
      procedure :: get_pairwise_dispersion3

   end type mzero_damping_param