dftd3_damping_zero Module



Variables

Type Visibility Attributes Name Initial
real(kind=wp), public, parameter :: rs9 = 4.0_wp/3.0_wp

Derived Types

type, public, extends(damping_param) ::  zero_damping_param

Zero (Chai-Head-Gordon) damping model

Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: alp
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

procedure, public :: get_dispersion3 ../../

Evaluate ATM three-body dispersion energy expression

procedure, public :: get_pairwise_dispersion2 ../../

Evaluate pairwise representation of additive dispersion energy

procedure, public :: get_pairwise_dispersion3 ../../

Evaluate pairwise representation of non-additive dispersion energy


Subroutines

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(zero_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

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(zero_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

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

Evaluation of the dispersion energy expression

Arguments

Type IntentOptional Attributes Name
class(zero_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) :: dc6dcn(:,:)

Derivative of the C6 w.r.t. the coordination number

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

Dispersion energy

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

Derivative of the energy w.r.t. the coordination number

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

Dispersion gradient

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

Dispersion virial

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

Evaluation of the dispersion energy expression

Arguments

Type IntentOptional Attributes Name
class(zero_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(inout) :: energy(:)

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(zero_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

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(zero_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

public subroutine new_zero_damping(self, param)

Create new zero damping model

Arguments

Type IntentOptional Attributes Name
type(zero_damping_param), intent(out) :: self

Zero damping parameters

type(d3_param), intent(in) :: param

Parameters