get_dispersion Interface

public interface get_dispersion

Calculate dispersion energy


Module Procedures

private subroutine get_dispersion_atomic(mol, disp, param, cutoff, energies, gradient, sigma, hessian)

Calculate atom-resolved dispersion energies.

deprecated: removed with the v2 API, use the interface with error handling

Arguments

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

Molecular structure data

class(d3_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) :: energies(:)

Dispersion energy

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

Dispersion gradient

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

Dispersion virial

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

Dispersion hessian

private subroutine get_dispersion_scalar(mol, disp, param, cutoff, energy, gradient, sigma, hessian)

Calculate scalar dispersion energy.

deprecated: removed with the v2 API, use the interface with error handling

Arguments

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

Molecular structure data

class(d3_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

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

Dispersion hessian

private subroutine get_dispersion_atomic_v2(error, mol, disp, param, cutoff, energies, gradient, sigma, hessian, partition, reducer)

Calculate atom-resolved dispersion energies.

The dispersion model and the damping parameters have to agree on the summation technique, an inconsistent setup is reported in the error handler.

Arguments

Type IntentOptional Attributes Name
type(error_type), intent(out), allocatable :: error

Error handling

class(structure_type), intent(in) :: mol

Molecular structure data

class(d3_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) :: energies(:)

Dispersion energy

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

Dispersion gradient

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

Dispersion virial

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

Dispersion hessian

type(work_partition), intent(in), optional :: partition

Work partition of the interaction loops, see dftd3_partition

class(work_reducer), intent(in), optional :: reducer

Communication backend, enables partitioning the coordination number

private subroutine get_dispersion_scalar_v2(error, mol, disp, param, cutoff, energy, gradient, sigma, hessian, partition, reducer)

Calculate scalar dispersion energy, reporting an inconsistent setup.

Arguments

Type IntentOptional Attributes Name
type(error_type), intent(out), allocatable :: error

Error handling

class(structure_type), intent(in) :: mol

Molecular structure data

class(d3_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

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

Dispersion hessian

type(work_partition), intent(in), optional :: partition

Work partition of the interaction loops, see dftd3_partition

class(work_reducer), intent(in), optional :: reducer

Communication backend, enables partitioning the coordination number