# How to do periodic DFT calculations using Quantum ESPRESSO?

I have only done quantum mechanical computations using non-periodic wavefunctions. I'd like to try to periodic-wavefunction density functional theory.

Quantum ESPRESSO seems like a good package because it's open-source.

Can some one help me get started by providing me some tips or an input file?

For example, I'd like to reproduce these calculation details:

The crystal structures of HC1 and HC2 were optimized using PBE-D2 as implemented in Quantum ESPRESSO. The plane- wave cutoff was 30 Ry, and the k-point meshes were 2 × 3 × 2 and 2 × 2 × 1 respectively, in accordance with the shapes of the unit cells

Unlike non-periodical DFT codes, Quantum ESPRESSO uses planewave basis sets and pseudopotentials. There are many ways of writing your input file, and it all depends on what information you have or what you want to learn.

Here is the skeleton of your input file:

===============================================================================

&CONTROL
...
/

&SYSTEM
...
/

&ELECTRONS
...
/

[ &IONS
...
/ ]

[ &CELL
...
/ ]

ATOMIC_SPECIES
X  Mass_X  PseudoPot_X
Y  Mass_Y  PseudoPot_Y
Z  Mass_Z  PseudoPot_Z

ATOMIC_POSITIONS { alat | bohr | crystal | angstrom | crystal_sg }
X 0.0  0.0  0.0  {if_pos(1) if_pos(2) if_pos(3)}
Y 0.5  0.0  0.0
Z O.0  0.2  0.2

K_POINTS { tpiba | automatic | crystal | gamma | tpiba_b | crystal_b | tpiba_c | crystal_c }
if (gamma)
if (automatic)
nk1, nk2, nk3, k1, k2, k3
if (not automatic)
nks
xk_x, xk_y, xk_z,  wk
if (tpipa_b or crystal_b in a 'bands' calculation) see Doc/brillouin_zones.pdf

[ CELL_PARAMETERS { alat | bohr | angstrom }
v1(1) v1(2) v1(3)
v2(1) v2(2) v2(3)
v3(1) v3(2) v3(3) ]

[ OCCUPATIONS
f_inp1(1)  f_inp1(2)  f_inp1(3) ... f_inp1(10)
f_inp1(11) f_inp1(12) ... f_inp1(nbnd)
[ f_inp2(1)  f_inp2(2)  f_inp2(3) ... f_inp2(10)
f_inp2(11) f_inp2(12) ... f_inp2(nbnd) ] ]

[ CONSTRAINTS
nconstr  { constr_tol }
constr_type(.)   constr(1,.)   constr(2,.) [ constr(3,.)   constr(4,.) ] { constr_target(.) } ]

[ ATOMIC_FORCES
label_1 Fx(1) Fy(1) Fz(1)
.....
label_n Fx(n) Fy(n) Fz(n) ]


To start off, you will be "filling in the blanks" with the information found here.

For example, select "relax" to relax atomic positions within the unit cell. You will be able to define your structure by space group no., lattice constants $$a,b,c$$, or by the primitive vectors in &CELL_PARAMETERS.

The &SYSTEM card is the most important. This is where you will define your cell dimensions, your energy cutoff, any corrections such as vdw_corr (e.g. Grimme-D2,D3) and you can call hybrid functionals via input_dft.

Next, you will need to get your pseudopotentials. The Quantum ESPRESSO website has a library of pseudopotentials developed by Andrea Dal Corso. These are the default, plug-and-play pseudopotentials you can use instead of generating your own.

Here are three places where you can get good pseudopotentials: The PSLIBRARY by A. Dal Corso is here. There you will find Ultrasoft and PAW pseudopotentials.

The Standard Solid State Pseudopotential library in MaterialsCloud is here.

The Pseudo Dojo is also gaining popularity. There, you might be limited for now, to Norm-conserving or PAW pseudopotentials depending on the species.

Everything else is relatively straight forward and easy to work with. Once you define your system.

In the example you provide, they used

K_POINTS automatic 2 3 2 0 0 0

to generate that first mesh. This is very loose. You will need a much denser grid to study properties, but this should be good enough to get you started! Hope this helps. To visualize your system directly from your input, many use XCrysDen.

1. You can start with following this Quantum Espresso Tutorial. The tutorial includes Hands On: scf, Energy bands, eqn of state, Geometry, cell optimization, Magnetism, DFT + U, CPMD, TDDFT, GW, Phonos, Berry Phases, IR and Raman

2. You can also follow Open online course on DFT, with simultaneous hands-on training on Quantum ESPRESSO. Available at any time for self-paced study. Yearly supervised edition from September to December.

• The first link is not working anymore. A question has been asked here about this. The course of the second link has been updated and moved to here Commented Mar 16, 2023 at 14:17

Regarding input file format, check this website: https://www.materialscloud.org/work/tools/qeinputgenerator Format from this website will provide you a starting point. But please remind that the result from this website IS NOT the ultimate solution and please do NOT regard the result from here as the "OK-button" solution.

It seems that the example in your question already provided all conditions. However, in reality, you will need to run a lot of test runs to figure out the optimal conditions for cutoff energy values, k-point, and etc conditions.

For pseudopotentials, I usually use QE homepage: https://www.quantum-espresso.org/pseudopotentials

Also check out QE homepage for additional information, such as: https://www.quantum-espresso.org/resources/tools and https://www.quantum-espresso.org/resources/tutorials