dftd4_disp Module

High-level wrapper to obtain the dispersion energy for a DFT-D4 calculation



Subroutines

public subroutine get_dispersion(mol, disp, param, cutoff, energy, gradient, sigma)

Wrapper to handle the evaluation of dispersion energy and derivatives

Arguments

Type IntentOptional Attributes Name
class(structure_type), intent(in) :: mol

Molecular structure data

class(dispersion_model), intent(in) :: disp

Dispersion model

class(damping_param), intent(in) :: param

Damping parameters

type(realspace_cutoff), intent(in) :: cutoff

Realspace cutoffs

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

Dispersion energy

real(kind=wp), intent(out), optional, contiguous :: gradient(:,:)

Dispersion gradient

real(kind=wp), intent(out), optional, contiguous :: sigma(:,:)

Dispersion virial

public subroutine get_pairwise_dispersion(mol, disp, param, cutoff, energy2, energy3)

Wrapper to handle the evaluation of pairwise representation of the dispersion energy

Arguments

Type IntentOptional Attributes Name
class(structure_type), intent(in) :: mol

Molecular structure data

class(dispersion_model), intent(in) :: disp

Dispersion model

class(damping_param), intent(in) :: param

Damping parameters

type(realspace_cutoff), intent(in) :: cutoff

Realspace cutoffs

real(kind=wp), intent(out) :: energy2(:,:)

Pairwise representation of additive dispersion energy

real(kind=wp), intent(out) :: energy3(:,:)

Pairwise representation of non-additive dispersion energy

public subroutine get_properties(mol, disp, cutoff, cn, q, c6, alpha)

Wrapper to handle the evaluation of properties related to this dispersion model

Arguments

Type IntentOptional Attributes Name
class(structure_type), intent(in) :: mol

Molecular structure data

class(dispersion_model), intent(in) :: disp

Dispersion model

type(realspace_cutoff), intent(in) :: cutoff

Realspace cutoffs

real(kind=wp), intent(out) :: cn(:)

Coordination number

real(kind=wp), intent(out) :: q(:)

Atomic partial charges

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

C6 coefficients

real(kind=wp), intent(out) :: alpha(:)

Static polarizibilities