How dahbiz/tdsez works
TDSE-Z is a parallel B-spline solver for bound-state spectra and time-dependent quantum dynamics. The principal workflow takes an input deck through parsing and validation, constructs the spatial discretisation and operators, solves for bound states, and optionally propagates a wavefunction while recording observables and output. Separate branches cover restart/checkpointing, t-SURFF spectra, diagnostics, and post-processing. The README documents the broad workflow; source excerpts show selected operator, monitor, and propagation links, so unsampled implementation connections are omitted.
Main entry points: tdsez.cpp Solver Entry · propagator.cpp Time Propagators · core.cpp B-Spline Core · assembly.cpp Operator Assembly
Components 26
Input and Setup
- Input Deck
- Input Parsing
src/parser.cpp - Input Validation
src/parser_validation.cpp - Solver Entry
src/tdsez.cpp
Physics and Solvers
- Knot Sequences
src/core_knots.cpp - B-Spline Core
src/core.cpp - Operator Assembly
src/assembly/assembly.cpp - Sum-Factored Kernels
src/assembly/sumfact.cpp - Banded Insertion
src/assembly/band.cpp - Operator Manager
src/manager.cpp - Tensor Operators
src/tensorops.cpp
Propagation and Observables
- Time Propagators
src/propagator.cpp - B-Spline Multigrid
src/multigrid.cpp - Observable Monitor
src/monitor.cpp - Quadrature Observables
src/quadobs.cpp - Checkpoint Restart
src/checkpoint.cpp - t-SURFF Spectra
src/tsurff.cpp
Results and Analysis
- HDF5 Results
- Diagnostics
src/diagnostics.cpp - Dipole Analysis
src/dipoles.cpp - Dipole Spectrum
src/dipole_spectrum.cpp - Recombination Analysis
src/recombination.cpp
Other components
- User
- PETSc / MPI
- SLEPc
- PetIGA
Connections 27
- User → Input Deck: configures
- Input Deck → Solver Entry: starts run
- Solver Entry → Input Parsing: reads input
- Input Parsing → Input Validation: validates
- Solver Entry → B-Spline Core: builds solver
- B-Spline Core → Knot Sequences: uses knots
- B-Spline Core → Operator Assembly: assembles operators
- Operator Assembly → Sum-Factored Kernels: uses kernels
src/assembly/assembly.cpp - Operator Assembly → Banded Insertion: inserts matrices
src/assembly/assembly.cpp - Solver Entry → Operator Manager: sets up run
- Operator Manager → Tensor Operators: sets up operators
src/manager.cpp - Solver Entry → Time Propagators: starts propagation
- Time Propagators → B-Spline Multigrid: uses preconditioner
src/propagator.cpp - Time Propagators → Observable Monitor: records steps
- Observable Monitor → Quadrature Observables: evaluates expectations
- Observable Monitor → t-SURFF Spectra: samples flux
src/monitor.cpp - Time Propagators → Checkpoint Restart: writes restart state
src/propagator.cpp - Observable Monitor → HDF5 Results: writes observables
- Checkpoint Restart → HDF5 Results: stores checkpoints
- t-SURFF Spectra → HDF5 Results: writes spectra
- B-Spline Core → SLEPc: solves eigenproblem
- Operator Assembly → PetIGA: uses B-splines
- Time Propagators → PETSc / MPI: uses parallel solvers
- Diagnostics → HDF5 Results: writes results
- Dipole Analysis → HDF5 Results: reads results
- Dipole Spectrum → HDF5 Results: reads results
- Recombination Analysis → HDF5 Results: reads results