Parameter Files Reference¶
PulseSuite simulations are configured entirely through plain-text
parameter files. Each file controls a different aspect of the physics,
and all are read at initialization time by InitializeSBE. No code
changes are needed to switch between simulation regimes — just edit the
parameter files.
File Overview¶
File |
Controls |
|---|---|
|
Quantum wire material properties and dephasing rates |
|
Many-body physics flags (which interactions are active) |
|
Optical pulse shape, wavelength, and timing |
|
Spatial grid dimensions and resolution |
|
Quantum wire array geometry |
|
Absorbing boundary conditions for the PSTD grid |
All parameter files use the same format: one value per line, with
inline comments after #. The order of lines is fixed and must be
preserved.
qw.params — Quantum Wire Properties¶
Defines the material and dephasing parameters for the quantum wire system. These map directly to the physical constants used in the Semiconductor Bloch Equations.
Line |
Parameter |
Units |
Description |
|---|---|---|---|
1 |
|
m |
Length of quantum wire |
2 |
|
m |
Z-thickness of quantum wire |
3 |
|
eV |
Band gap energy |
4 |
|
m_e0 |
Electron effective mass |
5 |
|
m_e0 |
Hole effective mass |
6 |
|
eV |
Energy level separation |
7 |
|
Hz |
Electron dephasing rate (1/lifetime) |
8 |
|
Hz |
Hole dephasing rate |
9 |
|
Hz |
Interband dephasing rate |
10 |
|
— |
Background dielectric constant |
11 |
|
eV |
LO phonon energy |
12 |
|
eV |
Phonon damping (inverse lifetime) |
13 |
|
V/m |
Background DC electric field |
14 |
|
steps |
Write output every N time steps |
15 |
|
steps |
Backup/checkpoint interval |
Example (GaAs quantum wire):
100e-9 # L — 100 nm wire
5e-9 # Delta0 — 5 nm thickness
1.5 # gap — 1.5 eV band gap
0.07 # me — GaAs electron mass
0.45 # mh — GaAs hole mass
100e-3 # HO — 100 meV level separation
1e12 # gam_e — 1 ps electron lifetime
1e12 # gam_h — 1 ps hole lifetime
1e12 # gam_eh — 1 ps interband dephasing
9.1 # epsr — AlAs host dielectric
36e-3 # Oph — 36 meV LO phonon (GaAs)
3e-3 # Gph — 3 meV phonon damping
0.0 # Edc — no DC field
500 # jmax — output every 500 steps
20000 # ntmax — checkpoint every 20000 steps
mb.params — Many-Body Physics Flags¶
This is the most important configuration file. Each line is a boolean
flag (1 = enabled, 0 = disabled) that toggles a specific physics
interaction. By flipping these flags, you can run anything from a bare
optical Bloch equation to a full many-body simulation — without
changing a single line of code.
Line |
Flag |
Physics |
|---|---|---|
1 |
|
Light-matter coupling via dipole operator |
2 |
|
Excitonic correlations and band-gap renormalization (Hartree-Fock) |
3 |
|
Electron-hole pair scattering |
4 |
|
Screened Coulomb interactions (RPA) |
5 |
|
LO phonon scattering (Frohlich interaction) |
6 |
|
DC transport (carrier drift under applied field) |
7 |
|
Longitudinal field / plasmon modes |
8 |
|
Free charge potential |
9 |
|
Diagonal dephasing (population decay) |
10 |
|
Off-diagonal dephasing (coherence decay) |
11 |
|
Spontaneous emission (radiative recombination) |
12 |
|
Photoluminescence spectrum output |
13 |
|
Single-wire mode (skip inter-wire coupling) |
14 |
|
Write susceptibility diagnostic files |
15 |
|
Use Lorentzian broadening for delta functions |
Example (full many-body simulation):
1 # Optics
1 # Excitons
1 # EHs
1 # Screened
1 # Phonon
1 # DCTrans
1 # LF (Plasmonics)
0 # Free Potential
1 # DiagDph
1 # OffDiagDph
1 # Recomb
0 # PLSpec
0 # Ignorewire
1 # Xqwparams
0 # LorentzDelta
See Building Simulations for how to combine these flags for different physics regimes.
pulse.params — Optical Pulse Configuration¶
Defines the laser pulse that drives the simulation.
Line |
Parameter |
Units |
Description |
|---|---|---|---|
1 |
|
— |
Spatial dimensionality (1, 2, or 3) |
2 |
|
— |
Background refractive index |
3 |
|
m |
Laser wavelength |
4 |
|
V/m |
Peak electric field amplitude |
5 |
|
s |
Pulse width |
6 |
|
rad/s^2 |
Pulse chirp |
7 |
|
m |
Beam width in X (2D/3D) |
8 |
|
m |
Beam width in Z (3D) |
9 |
|
s |
Pulse peak time (1D/2D) |
10 |
|
s |
Pulse peak time (3D) |
11 |
|
m |
Starting Y position |
12 |
|
m |
Starting X position (2D/3D) |
13 |
|
m |
Starting Z position (3D) |
14 |
|
— |
Time points per optical cycle |
15 |
|
— |
Y grid points per wavelength |
16 |
|
— |
X grid points per wavelength |
17 |
|
— |
Z grid points per wavelength |
18 |
|
— |
Total optical cycles to simulate |
19 |
|
m |
Y window width |
20 |
|
m |
X window width (2D/3D) |
21 |
|
m |
Z window width (3D) |
22 |
|
— |
Output interval |
23 |
|
— |
Maximum time steps |
24 |
|
bool |
Resume from checkpoint (0/1) |
space.params — Spatial Grid¶
Defines the computational grid for field propagation.
Line |
Parameter |
Units |
Description |
|---|---|---|---|
1 |
|
— |
1, 2, or 3 |
2 |
|
— |
Grid points in X |
3 |
|
— |
Grid points in Y |
4 |
|
— |
Grid points in Z |
5 |
|
m |
Pixel spacing in X |
6 |
|
m |
Pixel spacing in Y |
7 |
|
m |
Pixel spacing in Z |
8 |
|
— |
Background dielectric constant |
qwarray.params — Quantum Wire Array¶
Configures the geometry of quantum wire arrays.
Line |
Parameter |
Units |
Description |
|---|---|---|---|
1 |
|
bool |
Include quantum wire calculations (0/1) |
2 |
|
— |
Number of quantum wires |
3 |
|
m |
Wire placement along X axis |
4 |
|
m |
Wire-to-wire spacing |
5 |
|
m |
SHO oscillator length in Y |
6 |
|
m |
SHO oscillator length in Z |
pstd_abc.params — Absorbing Boundary Conditions¶
Controls the absorbing boundary layer for the PSTD grid to prevent reflections at domain edges.
Line |
Parameter |
Units |
Description |
|---|---|---|---|
1 |
Flag |
bool |
Enable ABC (0/1) |
2 |
Value 1 |
m |
Boundary layer parameter |
3 |
Value 2 |
m |
Boundary layer parameter |
4 |
Flag |
bool |
Secondary ABC flag (0/1) |
5 |
Value 3 |
m |
Boundary layer parameter |
6 |
Value 4 |
m |
Boundary layer parameter |
How Parameters Flow into the Simulation¶
All parameter files are read once during InitializeSBE. The
initialization sequence is:
InitializeSBE(q, rr, r0, Emax, lam, Nw, QW)
├── read qw.params → material constants (gap, masses, dephasing)
├── read mb.params → physics flags (which interactions are ON)
├── InitializeQWOptics() (always)
├── InitializeCoulomb() (always)
├── InitializeDephasing() (always)
├── InitializePhonons() (if Phonon = 1)
├── InitializeDC() (if DCTrans = 1)
└── InitializeEmission() (if Recomb = 1)
Once initialized, QWCalculator runs all enabled physics
self-consistently at every time step. There is no runtime flag
switching — to change the physics, re-initialize.
Template Files¶
Default parameter templates are provided in
src/pulsesuite/PSTD3D/params/templates/. Copy them as a starting
point for new simulations:
cp src/pulsesuite/PSTD3D/params/templates/*.params params/