# 3.4. tkwant.manybody – Solving the many-body time-dependent Schrödinger equation¶

## 3.4.1. States¶

Solving the many-body time-dependent Schrödinger equation.

 State(syst[, tmax, occupations, params, …]) Solve the time-dependent many-particle Schrödinger equation. WaveFunction(psi_init, tasks[, comm]) Evolve a many-particle wavefunction in time.

## 3.4.2. Helper functions¶

 lead_occupation([chemical_potential, …]) Set the occupation ($$T, \mu, f(E)$$) for one lead. calc_intervals(spectra, occupations[, …]) Return a list of momentum intervals to perform the manybody integration. split_intervals(intervals, number_subintervals) Divide each interval in number_subintervals equidistant intervals. combine_intervals(intervals[, atol, rtol]) Group leads for similar intervals together. calc_tasks(intervals, spectra, occupations) Return all tasks (set of quantum numbers that uniquely identify a onebody state) that will form the manybody state. calc_initial_state(syst, tasks[, …]) Calculate the initial manybody scattering wave function using MPI. calc_energy_cutoffs(occupations) Extract upper and lower energy cutoffs from the lead occupations. Make boundstates time dependent, such that they can evolve in time. add_boundstates(solver, boundstate_psi, …) Add a sequence of boundstates to the manybody solver

## 3.4.3. Data types¶

 Occupation(distribution[, energy_range, bands]) Data format for the lead occupation, see tkwant.manybody.lead_occupation. Interval(lead, band, kmin, kmax[, order, …]) Data format for a quadrature interval, see tkwant.manybody.calc_intervals.