dftd4_partition Module

Work partitioning for externally distributed dispersion calculations


Uses


Variables

Type Visibility Attributes Name Initial
type(work_partition), public, parameter :: serial_work_partition = work_partition()

Complete work of an ordinary serial calculation, equivalent to omitting the partition entirely


Derived Types

type, public ::  work_partition

Cyclic partition of the work of a dispersion calculation.

Read more…

Components

Type Visibility Attributes Name Initial
integer, private :: nparts = 1

Total number of parts

integer, private :: part = 0

Zero-based index of this part


Functions

public elemental function owns_pair(partition, iat, jat) result(owned)

Whether this part owns a symmetry-reduced atom pair

Arguments

Type IntentOptional Attributes Name
type(work_partition), intent(in), optional :: partition

Work partition, absent selects the complete work

integer, intent(in) :: iat

Atom indices of the pair, with jat <= iat

integer, intent(in) :: jat

Atom indices of the pair, with jat <= iat

Return Value logical

Whether this part owns the pair


Subroutines

public subroutine new_work_partition(error, partition, part, nparts)

Create a work partition

Arguments

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

Error handling

type(work_partition), intent(out) :: partition

New work partition

integer, intent(in) :: part

Zero-based index of this part

integer, intent(in) :: nparts

Total number of parts