Official Resources
- Homepage: https://github.com/NonequilibriumDynamics/KadanoffBaym.jl
- Documentation: https://nonequilibriumdynamics.github.io/KadanoffBaym.jl/
- Source Repository: https://github.com/NonequilibriumDynamics/KadanoffBaym.jl
- License: MIT License
Overview
KadanoffBaym.jl is a Julia language package designed for solving the Kadanoff-Baym equations (KBE) for non-equilibrium Green's functions (NEGF). It provides efficient, adaptive time-stepping solvers for time-dependent many-body problems, allowing researchers to simulate the dynamics of interacting quantum systems out of equilibrium.
Scientific domain: Non-equilibrium quantum dynamics, Many-body physics, Ultrafast spectroscopy
Target user community: Theorists studying time-evolution of quantum systems, NEGF practitioners
Theoretical Methods
- Kadanoff-Baym Equations (KBE)
- Non-Equilibrium Green's Functions (NEGF)
- Keldysh formalism (Time-ordered, Anti-time-ordered, Lesser, Greater components)
- Adaptive time-stepping integrators
- 2-time integration schemes
- Mean-field and correlated approximations (e.g., GKBA, Second Born, GW, T-matrix)
Capabilities (CRITICAL)
- Time Evolution: Solves KBE for the full two-time Green's function $G(t, t')$.
- Adaptive Solvers: Implements adaptive stepping to handle rapid dynamics efficiently, crucial for initial transients.
- Symmetries: Utilization of time-reversal and particle-hole symmetries to reduce storage and compute.
- Approximations: Supports various self-energy approximations (HF, Second Born, GW, T-matrix).
- Observables: Calculation of time-dependent currents, densities, and spectral properties.
Key Features
Julia Implementation:
- High performance akin to C/Fortran.
- Easy extensibility and integration with other Julia packages.
- Generic type support (e.g., for different precision or matrix types).
Adaptive Integration:
- Uses advanced algorithms to adapt the time step based on the dynamics.
- Primary integrator:
kbsolve!.
Keldysh Components:
- Explicit handling of the contour-ordered Green's function components required for non-equilibrium physics.
Inputs & Outputs
- Input formats:
- Julia scripts defining Hamiltonians and Self-energies.
- Initial state definitions.
- Output data types:
GreenFunction objects containing $G^<(t,t')$, $G^>(t,t')$, etc.
- Time traces of observables.
Interfaces & Ecosystem
- Julia Physics Ecosystem: Part of the
NonequilibriumDynamics organization (Github).
- Performance: Can utilize Julia's threading and GPU capabilities (via array types).
Workflow and Usage
- Define the initial Hamiltonian and the interaction self-energy in Julia.
- Define the initial Green's function state
u0.
- Call
kbsolve!(fv!, fd!, u0, (t0, tmax)) to propagate the Green's function in time.
fv!: In-place function for the volatile part of the equation.
fd!: In-place function for the memory-dependent part (self-energy convolution).
- Analyze the output
GreenFunction object, e.g., using Wigner transforms.
Performance Characteristics
- Memory: $O(N_t^2)$ storage for full two-time Green's functions (challenge for long times).
- Speed: Optimized Julia code, effective use of BLAS/LAPACK.
Comparisons with Other Codes
- vs Jiezi/NEMO5: These are typically device simulators (NEGF+Poisson); KadanoffBaym.jl focuses on fundamental KBE time-evolution and many-body approximations.
- vs NESSY: Both handle time dynamics, but KadanoffBaym.jl leverages Julia's ecosystem and adaptive solvers.
- vs Static NEGF: KadanoffBaym.jl is explicitly for time-dependent non-equilibrium problems (transients, pulses).
Verification & Sources
Primary sources:
- GitHub Repository: https://github.com/NonequilibriumDynamics/KadanoffBaym.jl
- Documentation: https://nonequilibriumdynamics.github.io/KadanoffBaym.jl/
- Related Publications: Papers utilizing KadanoffBaym.jl for NEGF simulations.
Verification status: ✅ VERIFIED
- Source code: OPEN (GitHub, MIT)
- Language: Native Julia
- Focus: Specialized solver for KBE/NEGF