Quickstart

This page is the fastest path from a fresh TDSEZ run to a plotted spectrum, wavefunction, or transition-dipole diagram.

Prepare a run directory

TDSEZ writes outputs under a single run directory with two subdirectories:

run_dir/
  td/
    TimeEvolutionData_<input>.h5
    wfs_<input>.h5
  static/
    EigenData_<input>.h5

<input> is the input filename, for example h2p.inp.

Summarize a run from the terminal

zkit summary h2p.inp --run-dir /data/run01

Sample output:

input=h2p.inp
dimension=1
n_steps=480
time_step=0.050
final_time=24.000
evolution: dimension=1 steps=480 dipoles=(480, 4) populations=(480, 4) energies=(480, 7)
eigen: states=21

Load a run in Python

from zkit.simulation import Run

run = Run("/data/run01", "h2p.inp")
print(run)
print("dimension:", run.dim)
print("eigenvalues:", run.eigen.values)
print("evolution:", run.evolution)

Plot a wavefunction snapshot

zkit plot-wfs td/wfs_h2p.inp.h5 --step 0 --outdir figures
from zkit.viz import plot_wavefunction

path = plot_wavefunction(
    "td/wfs_h2p.inp.h5",
    step=0,
    outdir="figures",
    npoints=240,
    dpi=150,
)
print(path)

Plot transition-dipole diagrams

zkit tdm-plot static/EigenData_h2p.inp.h5 --axes x,z --outdir figures
from zkit.viz import plot_tdm

out = plot_tdm(
    "static/EigenData_h2p.inp.h5",
    outdir="figures",
    axes=["x", "z"],
    min_mu=1e-3,
    color_by="strength",
    prefix="h2p",
)
print(out["diagram"])
print(out["matrix"])

Read time-evolution data

from zkit.io.evolution import read_evolution

evolution = read_evolution("td/TimeEvolutionData_h2p.inp.h5")
print(evolution.time.shape)
print(evolution.dipoles.shape)
print(evolution.energies.shape)
print(evolution.autocorrelation.shape)

Read eigenstates

from zkit.io.eigen import read_eigen
from zkit.io.tdm import tdm_of_state

eigen = read_eigen("static/EigenData_h2p.inp.h5")
print(eigen.values.shape)
print(eigen.vectors.shape)

# transitions out of state 0 along x
row = tdm_of_state("static/EigenData_h2p.inp.h5", 0, axes="x")
print(row["tdm_x"].shape)

Reconstruct a spatial wavefunction

from zkit.io.eigen import read_eigen

eigen = read_eigen("static/EigenData_h2p.inp.h5")
res = eigen.reconstruct(istate=0, npoints=240)
print(res["psi"].shape)
print(res["axes"][0].min(), res["axes"][0].max())