dftd3_model Module



Derived Types

type, public ::  d3_model

Base D3 dispersion model to evaluate C6 coefficients

Components

Type Visibility Attributes Name Initial
real(kind=wp), public, allocatable :: c6(:,:,:,:)

Reference C6 coefficients

real(kind=wp), public, allocatable :: cn(:,:)

Reference coordination numbers

logical, public, allocatable :: ghost(:)

Masked

type(d3_lowrank_c6), public, allocatable :: lowrank

Separable representation of the reference C6 coefficients, only allocated if the model was set up with a low-rank approximation

real(kind=wp), public, allocatable :: r4r2(:)

Expectation values for C8 extrapolation

real(kind=wp), public, allocatable :: rcov(:)

Covalent radii for coordination number

integer, public, allocatable :: ref(:)

Number of reference systems

real(kind=wp), public, allocatable :: rvdw(:,:)

Van-der-Waals radii for damping function

real(kind=wp), public, allocatable :: wf

Weighting factor for CN interpolation

Type-Bound Procedures

procedure, public :: get_atomic_c6

Evaluate C6 coefficient

procedure, public :: set_lowrank

Set up a separable low-rank representation of the C6 coefficients

procedure, public :: weight_references

Generate weights for all reference systems


Subroutines

public subroutine new_d3_model(self, mol, wf, ghost, lowrank, citation)

Create new dispersion model from molecular structure input

Arguments

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

Instance of the dispersion model

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

Molecular structure data

real(kind=wp), intent(in), optional :: wf

Weighting factor for coordination number interpolation

integer, intent(in), optional :: ghost(:)

Atom indices to ignore for dispersion calculation

type(d3_lowrank_config), intent(in), optional :: lowrank

Setup for a separable low-rank representation of the C6 coefficients

type(citation_type), intent(out), optional :: citation

Reference for the separable low-rank representation