This example shows how to calculate the Density of States (DOS), band structure and Fermi Surface of Nickel (Ni) using
pw.x solver of Quantum Espresso. We also demonstrate how to use Gnuplot and XCrysDen applications to plot and visualize the band structure and Fermi surface of Nickel.
First, look at the Stack tab of this Model. We create custom software stack by adding the Gnuplot and XCrysDen applications containers to out Model. We do not select any Entrypoint Binaries as we would invoke those binaries from a shell script run_qe.sh. This shell scripts will first call several Entrypoint Binaries from the Quantum Espresso container to create the data that we want to visualize and then it will call the Entrypoint Binaries from Gnuplot and XCrysDen applications to actually chart that data. Next we add the Quantum Espresso container to the Stack tab of this Model and select the
bash-shell Entrypoint Binary and type
run_qe.sh in the Options/Arguments box. This will execute the run_qe.sh inside the Quantum Espresso and would create sister containers of Gnuplot and XCrysDen when it encounter commands that does not belong to the Quantum Espresso conatiner.
Please looks at the run_qe.sh. The calculations in this script proceed as follows:
- Make a self-consistent field (SCF) calculation for Ni (like in example 1). SCF is a common older terminology for Hartree-Fock methodology. Based on pseudo potentials provided the
pw.xprogram first calculates an estimate of the stationary state wavefunctions at each k point and band (i.e. each Kohn-Sham state). The
pw.xprogram then used 3D FFT (fast Fourier transforms) to calculate electron density, charge density and a new estimate of potentials. This process is repeated until self consistency is achieved. The simplest command to invoke pw.x for SCF calculation is:
pw.x < ni.scf.in > ni.scf.out
- On Kogence platform, you can parallelize
pw.xover multiple threads, multiple processes or multiple servers on a cloud HPC cluster. Each of these require some simple modification to this basic invocation command. Please Quantum Espresso for more details.
- Next, we calculate the band structure along Delta and Sigma using the
pw.xprogram once more. Note that the
pw.xprogram is capable of doing several types of calculations: 'scf', 'nscf', 'bands', 'relax', 'md', 'vc-relax' and 'vc-md'. The simplest command to invoke
pw.xfor band structure.
pw.x < ni.band.in > ni.band.out
- Next, we project the wavefunctions to calculate the K-resolved PDOS (Projected Density of States) along Delta and Sigma lines computed above. We use the
projwfc.xsolver of Quantum Espresso. The program
projfwc.xprojects the crystal wavefunctions on an orthogonalized basis set of atomic orbitals, calculates the Loewdin charges, spilling parameter, and the projected DOS. The total DOS is saved in file
ni.pdos_tot, while s and d component are saved in files
projwfc.x < ni.kpdos.in > ni.kpdos.out
- Next, we use Gnuplot to visualize the calculated K-resolved PDOS. This what is commonly known as "band structure" of Ni. Since we are simulating finite crystal size of Ni, the energy states are smeared. Meaning, for a given
k, energy eigenvalues can take several values, though, there are a lot more energy eigen states closer to certain discrete values of energies for a given
k(shown as bright colors on the chart below). As the number of Ni atoms in the crystal are increased, these would become mathematically well defined lines representing "band structure" that you typically see in text books. We invoke Gnuplot as:
- Next, we make NSCF (non self-consistent-field) calculations, again using the
pw.xsolver. With the converged charge density results already calculated at the previous self-consistent run, one can construct the Kohn-Sham Hamiltonian and diagonalize it to obtain eigenvalues along the assigned K path (the "band" calculation) in reciprocal space or calculate the density of states on a denser uniform k grid (the "nscf" calculation). Uniform k-point grid is automatically generated. In this example the Fermi level is calculated with the tetrahedra method (not in the actual band structure calculation but in the DOS calculation step). If preferred, a gaussian broadening may be specified in this or in the subsequent step.
pw.x < ni.dos.in > ni.dos.out
- The program
dos.xreads file filpun (
ni.pun) and calculates the DOS on a uniform grid of energies from
Emax, with grid step
Delta E. The output DOS is in file
ni.dos, ready for plotting.
dos.x < ni.dos2.in > ni.dos2.out
- Next we show how to compute the Fermi Surface. Fermi Surface is an iso-energy surface in reciprocal space (the K space) for a specified value of energy. Once again we make a self-consistent calculation (
pw.x < ni.scf_SP.in > ni.scf0.SP.out), followed by a non-scf calculation (
pw.x< ni.fs_SP.in > ni.fs_SP.out) with tetrahedra (smearing is also OK as long as the Fermi energy is computed) and a dense automatic (Monkhorst-Pack) unshifted grid, using K_POINTS automatic 24 24 24 0 0 0. Finally, we run the
fs.xutility. The code will select bands that cross the Fermi energy Ef+/-1eV (or Ef+/-DeltaE if specified) and write them into file,
*_fsdw.bxsffor spin-polarized calculations.
- Next we plot these Fermi Surfaces using
xcrysden --bxsf *_fs.bxsf.
- Band structure for down spin polarization
- Band structure for up spin polarization
- Fermi Surfaces for a) non spin polarized case, b) down spin polarization and c) up spin polarization
Model New Results
Quantum ESPRESSO is an integrated suite of computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on density-functional theory, plane waves, and pseudopotentials. Quantum ESPRESSO has evolved into a distribution of independent and inter-operable codes. The Quantum ESPRESSO distribution consists of a core set of components (e.g. PWscf and CP), and a set of plug-ins that perform more advanced tasks, plus a number of third-party packages designed to be inter-operable with the core components.
For more details see Quantum Espresso .
CloudShell allow users to access a bash shell on a terminal emulator or execute a bash shell script either on a cloud based single node high performance computing (HPC) server or on the master node of autoscaling HPC cluster started on Kogence platform.
CloudShell cannot be invoked on the compute nodes of the cluster. Although, CloudShell can be used to run a shell script on the master node of the cluster that in can turn send job to the compute nodes of the cluster. Please see the documentation of relevant software application/simulator/solver on Kogence (Software Library) for the details on how to use CloudShell to schedule jobs on the compute nodes of an autoscaling HPC cluster on Kogence platform.
Using CloudShell on Kogence
To see detailed step-by-step instructions on how to use CloudShell on Kogence free cloud supercomputing platform [click here]. First create or copy an existing Model (see Model Library) on Kogence. Select your cloud cluster hardware on the Cluster tab on the top NavBar. Create your own custom software applications stack by selecting desired software on the Stack tab on the top NavBar. You can search and select CloudShell if you need a shell terminal or if you need to run a shell script. From the dropdown menu, select a binary. CloudShell has 2 binaries:
- shell-terminal: On the empty textbox next the binary dropdown menu, type the name of the terminal emulator you want. Currently, Kogence supports following terminal emulators
- bash-shell: On the empty textbox next the binary dropdown menu, type the name of your shell script. Make sure your shell script is available under the Files tab of your Model before you Run your Model.
For more details see CloudShell .
Gnuplot is a portable command-line driven graphing utility. It is also used as a plotting engine by third-party applications like Octave. Gnuplot supports many different types of 2D and 3D plots. See the representative examples here. On Kogence, Gnuplot is used in several example workflows using Quantum Espresso.
For more details see Gnuplot .
XCrysDen is a crystalline and molecular structure visualization program. The name of the program stands for Crystalline Structures and Densities and X because it runs under the X-Window environment. It facilitates a display of isosurfaces and contours, which can be superimposed on crystalline structures and interactively rotated and manipulated. It also possesses some tools for analysis of properties in reciprocal space such as interactive selection of k-paths in the Brillouin zone for the band-structure plots, and visualization of Fermi surfaces.
For more details see XCrysDen .
Following are some related models available for cloning/copying by anyone: