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

qw.params

Quantum wire material properties and dephasing rates

mb.params

Many-body physics flags (which interactions are active)

pulse.params

Optical pulse shape, wavelength, and timing

space.params

Spatial grid dimensions and resolution

qwarray.params

Quantum wire array geometry

pstd_abc.params

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

L

m

Length of quantum wire

2

Delta0

m

Z-thickness of quantum wire

3

gap

eV

Band gap energy

4

me

m_e0

Electron effective mass

5

mh

m_e0

Hole effective mass

6

HO

eV

Energy level separation

7

gam_e

Hz

Electron dephasing rate (1/lifetime)

8

gam_h

Hz

Hole dephasing rate

9

gam_eh

Hz

Interband dephasing rate

10

epsr

Background dielectric constant

11

Oph

eV

LO phonon energy

12

Gph

eV

Phonon damping (inverse lifetime)

13

Edc

V/m

Background DC electric field

14

jmax

steps

Write output every N time steps

15

ntmax

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

Optics

Light-matter coupling via dipole operator

2

Excitons

Excitonic correlations and band-gap renormalization (Hartree-Fock)

3

EHs

Electron-hole pair scattering

4

Screened

Screened Coulomb interactions (RPA)

5

Phonon

LO phonon scattering (Frohlich interaction)

6

DCTrans

DC transport (carrier drift under applied field)

7

LF

Longitudinal field / plasmon modes

8

FreePot

Free charge potential

9

DiagDph

Diagonal dephasing (population decay)

10

OffDiagDph

Off-diagonal dephasing (coherence decay)

11

Recomb

Spontaneous emission (radiative recombination)

12

PLSpec

Photoluminescence spectrum output

13

Ignorewire

Single-wire mode (skip inter-wire coupling)

14

Xqwparams

Write susceptibility diagnostic files

15

LorentzDelta

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

dimensions

Spatial dimensionality (1, 2, or 3)

2

n0

Background refractive index

3

lam

m

Laser wavelength

4

E00

V/m

Peak electric field amplitude

5

tw0

s

Pulse width

6

chirp

rad/s^2

Pulse chirp

7

xw

m

Beam width in X (2D/3D)

8

zw

m

Beam width in Z (3D)

9

Tpeak1

s

Pulse peak time (1D/2D)

10

Tpeak3

s

Pulse peak time (3D)

11

Ystart

m

Starting Y position

12

Xstart

m

Starting X position (2D/3D)

13

Zstart

m

Starting Z position (3D)

14

Nt/Toc

Time points per optical cycle

15

Ny/lambda

Y grid points per wavelength

16

Nx/lambda

X grid points per wavelength

17

Nz/lambda

Z grid points per wavelength

18

Nt

Total optical cycles to simulate

19

Ywin

m

Y window width

20

Xwin

m

X window width (2D/3D)

21

Zwin

m

Z window width (3D)

22

jmax

Output interval

23

nmax

Maximum time steps

24

Restart

bool

Resume from checkpoint (0/1)


space.params — Spatial Grid

Defines the computational grid for field propagation.

Line

Parameter

Units

Description

1

Dimensions

1, 2, or 3

2

Nx

Grid points in X

3

Ny

Grid points in Y

4

Nz

Grid points in Z

5

dx

m

Pixel spacing in X

6

dy

m

Pixel spacing in Y

7

dz

m

Pixel spacing in Z

8

epsilon_r

Background dielectric constant


qwarray.params — Quantum Wire Array

Configures the geometry of quantum wire arrays.

Line

Parameter

Units

Description

1

QW

bool

Include quantum wire calculations (0/1)

2

Nw

Number of quantum wires

3

y0

m

Wire placement along X axis

4

dxqw

m

Wire-to-wire spacing

5

a0_y

m

SHO oscillator length in Y

6

a0_z

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/