dftd4_ncoord Module


Uses


Variables

Type Visibility Attributes Name Initial
real(kind=wp), private, parameter :: k4 = 4.10451_wp

Parameter for electronegativity scaling

real(kind=wp), private, parameter :: k5 = 19.08857_wp

Parameter for electronegativity scaling

real(kind=wp), private, parameter :: k6 = 2*11.28174_wp**2

Parameter for electronegativity scaling

real(kind=wp), private, parameter :: kcn = 7.5_wp

Steepness of counting function


Functions

private pure function derf_count(k, r, r0) result(count)

Derivative of the counting function w.r.t. the distance.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: k

Steepness of the counting function.

real(kind=wp), intent(in) :: r

Current distance.

real(kind=wp), intent(in) :: r0

Cutoff radius.

Return Value real(kind=wp)

private pure function erf_count(k, r, r0) result(count)

Error function counting function for coordination number contributions.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: k

Steepness of the counting function.

real(kind=wp), intent(in) :: r

Current distance.

real(kind=wp), intent(in) :: r0

Cutoff radius.

Return Value real(kind=wp)


Subroutines

public subroutine add_coordination_number_derivs(mol, trans, cutoff, rcov, en, dEdcn, gradient, sigma)

Arguments

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

Molecular structure data

real(kind=wp), intent(in) :: trans(:,:)

Lattice points

real(kind=wp), intent(in) :: cutoff

Real space cutoff

real(kind=wp), intent(in) :: rcov(:)

Covalent radius

real(kind=wp), intent(in) :: en(:)

Electronegativity

real(kind=wp), intent(in) :: dEdcn(:)

Derivative of expression with respect to the coordination number

real(kind=wp), intent(inout) :: gradient(:,:)

Derivative of the CN with respect to the Cartesian coordinates

real(kind=wp), intent(inout) :: sigma(:,:)

Derivative of the CN with respect to strain deformations

public subroutine get_coordination_number(mol, trans, cutoff, rcov, en, cn, dcndr, dcndL)

Geometric fractional coordination number, supports error function counting.

Arguments

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

Molecular structure data

real(kind=wp), intent(in) :: trans(:,:)

Lattice points

real(kind=wp), intent(in) :: cutoff

Real space cutoff

real(kind=wp), intent(in) :: rcov(:)

Covalent radius

real(kind=wp), intent(in) :: en(:)

Electronegativity

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

Error function coordination number.

real(kind=wp), intent(out), optional :: dcndr(:,:,:)

Derivative of the CN with respect to the Cartesian coordinates.

real(kind=wp), intent(out), optional :: dcndL(:,:,:)

Derivative of the CN with respect to strain deformations.

private subroutine ncoord_derf(mol, trans, cutoff, rcov, en, cn, dcndr, dcndL)

Arguments

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

Molecular structure data

real(kind=wp), intent(in) :: trans(:,:)

Lattice points

real(kind=wp), intent(in) :: cutoff

Real space cutoff

real(kind=wp), intent(in) :: rcov(:)

Covalent radius

real(kind=wp), intent(in) :: en(:)

Electronegativity

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

Error function coordination number.

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

Derivative of the CN with respect to the Cartesian coordinates.

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

Derivative of the CN with respect to strain deformations.

private subroutine ncoord_erf(mol, trans, cutoff, rcov, en, cn)

Arguments

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

Molecular structure data

real(kind=wp), intent(in) :: trans(:,:)

Lattice points

real(kind=wp), intent(in) :: cutoff

Real space cutoff

real(kind=wp), intent(in) :: rcov(:)

Covalent radius

real(kind=wp), intent(in) :: en(:)

Electronegativity

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

Error function coordination number.