Quickstart#
This page walks you through the Silicon electronic structure workflow — bands, DOS, and transport — using pre-computed QE data that ships with PAOFLOW.
What you will do#
Place the pre-computed
silicon.save/directory in your working directoryRun a short Python script that builds the PAO Hamiltonian from the QE output
Inspect the output files for band structure, density of states, and transport tensors
You do not need to run Quantum ESPRESSO yourself. The silicon.save/ directory contains the required atomic_proj.xml and data-file-schema.xml outputs.
Prerequisites#
PAOFLOW installed (see Installation):
pip install PAOFLOW
Step 1 — Obtain the tutorial assets#
Download the precomputed tutorial assets from the PAOFLOW Releases page and extract them into a working directory. The assets include:
silicon.save/ # Pre-computed QE output (atomic projections + data)
Step 2 — Examine the driver script#
Open main.py. It shows the standard PAOFLOW Python API pattern:
from PAOFLOW import PAOFLOW
def main():
# Initialise PAOFLOW from a QE .save directory
paoflow = PAOFLOW.PAOFLOW(
savedir='silicon.save',
outputdir='output',
smearing='gauss',
npool=1,
verbose=True,
)
# Read pre-computed atomic projections from QE
paoflow.read_atomic_proj_QE()
# Drop bands with low projectability onto the PAO basis
paoflow.projectability()
# Construct the real-space Hamiltonian H(R)
paoflow.pao_hamiltonian()
# Interpolate onto the band path for ibrav=2 (FCC, e.g. Si)
paoflow.bands(ibrav=2, nk=2000)
# Double the Monkhorst-Pack grid by Fourier interpolation
paoflow.interpolated_hamiltonian()
# Diagonalise H(k) on the full BZ grid
paoflow.pao_eigh()
# Compute momentum matrix elements (needed for transport/optics)
paoflow.gradient_and_momenta()
# Apply adaptive Gaussian smearing for BZ integration
paoflow.adaptive_smearing()
# Compute DOS and transport tensors
paoflow.dos(emin=-12., emax=2.2, ne=1000)
paoflow.transport(emin=-12., emax=2.2)
paoflow.finish_execution()
if __name__ == '__main__':
main()
Step 3 — Run PAOFLOW#
python main.py
For a parallel run with MPI (optional, speeds up dense k-grids):
mpirun -np 4 python main.py
The run typically completes in under a minute on a laptop for this small example.
Step 4 — Check the output#
After the run, an output/ directory is created containing:
File |
Contents |
|---|---|
|
Band structure along the default FCC k-path |
|
Total density of states |
|
Electrical conductivity tensor vs. energy |
|
Seebeck coefficient tensor vs. energy |
|
Electronic thermal conductivity tensor vs. energy |
Tip
Comparing to the reference
The Reference/ subdirectory contains expected output files.
You can diff your results against them to confirm a correct installation.
Next steps#
Explore the Tutorials for in-depth guided workflows covering more advanced topics (spin–orbit coupling, topology, transport).
Use the
paoflow-gencommand-line tool to generate a driver script for your own QE calculation:paoflow-gen
See the API Reference for the full list of methods on the
PAOFLOWclass.