get_dispersion_mpi Interface

public interface get_dispersion_mpi

Calculate dispersion energy distributed over an MPI communicator


Module Procedures

private subroutine get_dispersion_mpi_atomic(error, mol, disp, param, cutoff, comm, energies, gradient, sigma, hessian)

Calculate atom-resolved dispersion energies distributed over a communicator

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

integer, intent(in) :: comm

MPI communicator handle, users of mpi_f08 pass comm%mpi_val

real(kind=wp), intent(out), contiguous :: 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_mpi_scalar(error, mol, disp, param, cutoff, comm, energy, gradient, sigma, hessian)

Calculate scalar dispersion energy distributed over a communicator

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

integer, intent(in) :: comm

MPI communicator handle, users of mpi_f08 pass comm%mpi_val

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