# SIESTA wrapper

SIESTA is a localized-orbital DFT code, available at: https://departments.icmab.es/leem/siesta/ It can be used in conjunction with BerkeleyGW, especially to generate unoccupied states with the SAPO utility.

Warning

Make sure you understand when you can use localized basis sets for GW calculations. When if doubt, use a more well-tested and validated wrapper based on Quantum ESPRESSO, PARATEC, or Abinit.

`siesta2bgw.x`

An example `siesta2bgw.x`

calculation is provided in `examples/DFT/benzene`

.
Please see this example for usage and example siesta and denchar input
files.

The SIESTA wrapper reads lattice vectors, atomic species and
positions from `SystemLabel.XV`

file, k-points from `SystemLabel.KP`

file, eigenvalues from `SystemLabel.EIG`

file, wavefunctions in R-space
from `SystemLabel{.K$k}.WF$n{.UP|.DOWN}{.REAL|.IMAG}.cube`

file, symmetry
group, kinetic energy cutoffs for wavefunctions and charge density,
k-grid dimensions and offsets from the input file, generates reciprocal
lattice vectors, rotation matrices, fractional translations, FFT grid and
G-vectors, performs FFT from R-space to G-space, and writes the selected
range of bands to the output WFN file. Make sure to set up the real
space grid in `SIESTA/DENCHAR`

utility same as FFT grid. If the two grids
differ the SIESTA wrapper will return an error. The output WFN file
can be used as an auxiliary wavefunction for the SAPO code.

A full GW/BSE calculation with SIESTA wavefunctions also requires RHO and
`VXC`

files. These files can be generated from `SystemLabel.RHO{.UP|.DN}.cube`

,
`SystemLabel.VT{.UP|.DN}.cube`

and `SystemLabel.VH.cube`

files obtained with
`SIESTA/GRID2CUBE`

utility on SIESTA real space grid. Make sure SIESTA real
space grid is equivalent to FFT grid by setting parameter `MeshCutoff`

in SIESTA input file same as kinetic energy cutoff for charge density.

Input is read from file `siesta2bgw.inp`

:

```
&input_siesta2bgw
systemlabel = 'ammonia'
wfng_output_file = 'wfng.lo'
rhog_output_file = ''
vxcg_output_file = ''
ecutwfn = 60.0
ecutrho = 240.0
wfng_nk1 = 1
wfng_nk2 = 1
wfng_nk3 = 1
wfng_dk1 = 0.0
wfng_dk2 = 0.0
wfng_dk3 = 0.0
wfng_ref_flag = .true.
wfng_ref_kpoint = 1
wfng_ref_spin = 1
wfng_ref_band = 4
wfng_ref_energy = -5.87
wfng_band_flag = .true.
wfng_band_min = 5
wfng_band_max = 28
wfng_energy_flag = .false.
wfng_energy_min = 0.0
wfng_energy_max = 0.0
wfng_gamma_real = .true.
/
```

Here, lattice vectors, k-points, eigenvalues and wavefunctions in R-space
are read from `ammonia.XV`

, `ammonia.KP`

, `ammonia.EIG`

and `ammonia.WF$n.cube`

files, respectively. The kinetic-energy cutoffs for
wavefunction and charge density are set to 60 and 240 Ry, respectively.
The k-grid is set to the Gamma-point. The SIESTA eigenvalues are shifted
in energy so that the HOMO state (1st k-point, 1st spin, 4th band) appears
at -5.87 eV. The real parts of resonant SIESTA wavefunctions (from 5th to
28th band) are read from Gaussian Cube files and the imaginary parts are
set to zero (`wfng_gamma_real`

), the wavefunctions are brought from R-space
to G-space and written to `wfng.lo`

file. The SIESTA charge density and
exchange-correlation potential files are not generated.