tkwant.manybody.calc_initial_state¶
-
tkwant.manybody.
calc_initial_state
(syst, tasks, boundaries=None, params=None, scattering_state_type=<class 'tkwant.onebody.onebody.ScatteringStates'>, mpi_distribute=<function round_robin>, comm=None)[source]¶ Calculate the initial manybody scattering wave function using MPI.
- Parameters
syst (
kwant.builder.FiniteSystem
ortkwant.system.ExtendedSystem
) – The low level system for which the wave functions are to be calculated.boundaries (sequence of
BoundaryBase
, optional) – The boundary conditions for each lead attached tosyst
. Must be only provided ifsyst
is akwant.builder.FiniteSystem
.tasks (sequence of
tkwant.onebody.Task
) –Each element in the sequence represents a one-body state that composes the manybody state. An element of
tasks
must have at least the following three attributes:lead : int, lead index
mode : int, scattering mode index
energy : float, energy
params (dict, optional) – Extra arguments to pass to the Hamiltonian of
syst
, excluding time.scattering_state_type (
tkwant.onebody.ScatteringStates
, optional) – Class to calculate time-dependent onebody wavefunctions starting in an equilibrium scattering state.mpi_distribute (callable, optional) – Function to distribute the tasks dict keys over all MPI ranks. By default, keys must be integer and are distributed round-robin like.
comm (
mpi4py.MPI.Intracomm
, optional) – The MPI communicator over which to parallelize the computation. By default, use the tkwant global MPI communicator.
- Returns
psi_init – Ensemble of all one-body scattering states that form the initial manybody state. Each one-body state stored in the
psi_init
dictionary corresponds to an element in thetasks
list. The list index oftasks
serves as dict key.- Return type
dict of
tkwant.onebody.WaveFunction