dftd3_disp Module



Interfaces

public interface get_dispersion

Calculate dispersion energy

  • 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


Subroutines

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

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

Read more…

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) :: energy2(:,:)

Pairwise representation of additive dispersion energy

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

Pairwise representation of non-additive dispersion energy