1
0
mirror of https://github.com/TREX-CoE/trexio.git synced 2024-11-03 20:54:07 +01:00

Added plane waves

This commit is contained in:
Anthony Scemama 2022-12-26 13:15:16 +01:00
parent c98c4b4721
commit bab56408e1
2 changed files with 99 additions and 73 deletions

View File

@ -12,6 +12,7 @@ CHANGES
- Added `float buffered` type for vectors like CI/CSF coefficients
- .git folder is no longer needed to activate TREXIO_DEVEL mode
- Renamed debian folder into helpers-debian
- Added plane wave basis set
- Added trexio_to_bitfield_list functionality
- Added `trexio_has_group` functionality
- Added OCaml binding

View File

@ -276,6 +276,9 @@ power = [
* Basis set (basis group)
** Gaussian and Slater-type orbitals
We consider here basis functions centered on nuclei. Hence, we enable
the possibility to define /dummy atoms/ to place basis functions in
random positions.
@ -310,13 +313,26 @@ power = [
implies the computation of an extra normalization factor, $\mathcal{N}_s$.
If the the basis function is not considered normalized, $\mathcal{N}_s=1$.
All the basis set parameters are stored in one-dimensional arrays.
All the basis set parameters are stored in one-dimensional arrays:
** Plane waves
A plane wave is defined as
\[
\chi_j(r) = \exp \left( -i \mathbf{k}_j \mathbf{r} \right)
\]
The basis set is defined as the array of $k$-points in the
reciprocal space, defined in the ~pbc~ group. The kinetic energy
cutoff ~e_cut~ is the only input data relevant to plane waves.
** Data definitions
#+NAME: basis
| Variable | Type | Dimensions | Description |
|-----------------+---------+---------------------+--------------------------------------------------------------|
| ~type~ | ~str~ | | Type of basis set: "Gaussian" or "Slater" |
|-----------------+---------+---------------------+-----------------------------------------------------------------|
| ~type~ | ~str~ | | Type of basis set: "Gaussian", "Slater" or "PW" for plane waves |
| ~prim_num~ | ~dim~ | | Total number of primitives |
| ~shell_num~ | ~dim~ | | Total number of shells |
| ~nucleus_index~ | ~index~ | ~(basis.shell_num)~ | One-to-one correspondence between shells and atomic indices |
@ -327,6 +343,8 @@ power = [
| ~exponent~ | ~float~ | ~(basis.prim_num)~ | Exponents of the primitives ($\gamma_{ks}$) |
| ~coefficient~ | ~float~ | ~(basis.prim_num)~ | Coefficients of the primitives ($a_{ks}$) |
| ~prim_factor~ | ~float~ | ~(basis.prim_num)~ | Normalization coefficients for the primitives ($f_{ks}$) |
| ~e_cut~ | ~float~ | | Energy cut-off for plane-wave calculations |
#+CALL: json(data=basis, title="basis")
@ -345,6 +363,7 @@ power = [
, "exponent" : [ "float", [ "basis.prim_num" ] ]
, "coefficient" : [ "float", [ "basis.prim_num" ] ]
, "prim_factor" : [ "float", [ "basis.prim_num" ] ]
, "e_cut" : [ "float", [] ]
} ,
#+end_src
:end:
@ -917,12 +936,15 @@ prim_factor =
* Cell (cell group)
3 Lattice vectors to define a box containing the system, for example
used in periodic calculations.
#+NAME: cell
| Variable | Type | Dimensions | Description |
|----------+---------+------------+-------------------------|
| ~a~ | ~float~ | ~(3)~ | First unit cell vector |
| ~b~ | ~float~ | ~(3)~ | Second unit cell vector |
| ~c~ | ~float~ | ~(3)~ | Third unit cell vector |
|----------+---------+------------+-----------------------|
| ~a~ | ~float~ | ~(3)~ | First lattice vector |
| ~b~ | ~float~ | ~(3)~ | Second lattice vector |
| ~c~ | ~float~ | ~(3)~ | Third lattice vector |
#+CALL: json(data=cell, title="cell")
@ -939,11 +961,14 @@ prim_factor =
* Periodic boundary calculations (pbc group)
A single $k$-point per TREXIO file can be stored. The $k$-point is
defined in this group.
#+NAME: pbc
| Variable | Type | Dimensions | Description |
|------------+---------+------------+-------------------------|
| ~periodic~ | ~int~ | | ~1~: true or ~0~: false |
| ~k_point~ | ~float~ | ~(3)~ | k-point sampling |
|---------------+---------+------------+-------------------------|
| ~is_periodic~ | ~int~ | | ~1~: true or ~0~: false |
| ~k_point~ | ~float~ | ~(3)~ | $k$-point sampling |
#+CALL: json(data=pbc, title="pbc")