Declaration of the cyclic cluster Wigner-Seitz type, generation, and weight evaluation
Wigner-Seitz cell and its nearest image translations
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=i8), | public, | allocatable | :: | itr_list(:) |
Flattened atom-pair image offsets |
||
| integer, | public, | allocatable | :: | nimg(:,:) |
Number of images for each atom pair |
||
| integer, | public, | allocatable | :: | nimg_list(:) |
Number of images for each atom pair in flattened storage |
||
| integer, | public | :: | nimg_max | = | 0 |
Maximum number of images per atom pair |
|
| real(kind=wp), | public, | allocatable | :: | trans(:,:) |
Lattice translation vectors |
||
| integer, | public, | allocatable | :: | tridx(:,:,:) |
Translation indices for each atom pair |
||
| integer, | public, | allocatable | :: | tridx_list(:) |
Flattened translation indices |
Find the nearest translation images for an interatomic vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(out) | :: | iws |
Number of nearest images |
||
| real(kind=wp), | intent(in) | :: | trans(:,:) |
Translation vectors |
||
| real(kind=wp), | intent(in) | :: | rij(3) |
Interatomic vector |
||
| integer, | intent(out) | :: | list(:) |
Indices of the nearest translation images |
Evaluate smooth weights for competing nearest Wigner-Seitz images
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(wignerseitz_cell), | intent(in) | :: | self |
Wigner-Seitz cell instance |
||
| integer, | intent(in) | :: | jat |
Index of examined atom in the Wigner-Seitz image arrays |
||
| integer, | intent(in) | :: | iat |
Index of reference atom in the Wigner-Seitz image arrays |
||
| real(kind=wp), | intent(in) | :: | rij(3) |
Cartesian pair vector |
||
| real(kind=wp), | intent(out) | :: | weight(:) |
Normalized image weights |
||
| real(kind=wp), | intent(out), | optional | :: | dwdr(:,:) |
Weight derivatives with respect to the pair vector |
|
| real(kind=wp), | intent(out), | optional | :: | dwdL(:,:,:) |
Weight derivatives with respect to strain |
Construct a Wigner-Seitz cell for a molecular structure
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(wignerseitz_cell), | intent(out) | :: | self |
Wigner-Seitz cell instance |
||
| type(structure_type), | intent(in) | :: | mol |
Molecular structure data |