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 or tkwant.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 to syst. Must be only provided if syst is a kwant.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 the tasks list. The list index of tasks serves as dict key.

Return type

dict of tkwant.onebody.WaveFunction