Skip to main content

Environment variables

QE-to-TCAD reads variables from a .env file (via python-dotenv) or the system environment.

Local .env file (example)

Create a .env file locally only. Never commit it.

# Quantum ESPRESSO
QE_PATH=/path/to/q-e/bin
QE_PW=/path/to/q-e/bin/pw.x
QE_EPSILON=/path/to/q-e/bin/epsilon.x

# MPI
MPI_COMMAND=mpirun
MPI_NPROC=4

# Pseudopotentials
PSEUDOPOTENTIAL_DIR=/path/to/pseudopotentials/

# Materials Project — your personal key only
MP_API_KEY=your_api_key
Security

No API key is shipped with the package. Every user must create their own on Materials Project. Never push a .env containing MP_API_KEY to GitHub.

Reference

VariableDescriptionDefault
QE_PATHDirectory containing pw.x and epsilon.xSearches PATH
QE_PWAbsolute path to pw.x
QE_EPSILONAbsolute path to epsilon.x
MPI_COMMANDMPI command (mpirun, srun)mpirun
MPI_NPROCNumber of MPI processes1
PSEUDOPOTENTIAL_DIRDirectory for .upf filespseudopotentials/
MP_API_KEYMaterials Project API keyRequired for qe-bridge
OMP_NUM_THREADSOpenMP threads (system)1 recommended

Get a Materials Project key

  1. Create an account on next-gen.materialsproject.org
  2. Generate a 32-character API key in account settings
  3. Set MP_API_KEY:

Linux / macOS:

export MP_API_KEY="your_32_character_key"

Windows (PowerShell):

$env:MP_API_KEY="your_32_character_key"

Windows (CMD):

set MP_API_KEY=your_32_character_key

Or put it in a local, non-versioned .env.

Verification

# Check that variables are loaded
python3 -c "from dotenv import load_dotenv; import os; load_dotenv(); print('MP_API_KEY set:', bool(os.getenv('MP_API_KEY')))"

# Check pw.x (local install, not Docker)
which pw.x || echo "Set QE_PATH or --pw"

See also