MajoranaPropagator
Classical simulator for Majorana operators.
Accepts a :class:~monoprop.majorana.MajoranaOperator (or any object implementing
get_majorana_operator(), such as a :class:~monoprop.fermi.FermiOperator)
observable and a :class:~monoprop.circuit.Circuit of Majorana/fermionic
:class:~monoprop.circuit.ExpGate gates. See
:class:~monoprop.monomial_propagator.MonomialPropagator for the shared building,
evaluation, and introspection surface.
Functions
func__init__(self, initial_operator, initial_state, *, cutoff, schrodinger_cutoff=None, cutoff_type='length', lower_atol=None, upper_atol=None, comm=None) -> NoneInitialize the propagator.
Creates a simulator for quantum-system evolution in the Majorana representation. Both Heisenberg (operator evolution, the default) and Schrodinger (state evolution) pictures are supported, with configurable truncation.
paramselfparaminitial_operatorIQuantumOperator | MajoranaOperatorInitial operator, either a
:class:~monoprop.majorana.MajoranaOperator or an object
implementing get_majorana_operator().
paraminitial_stateSequence[int] | np.ndarraySlater determinant (occupied mode indices) for the initial state.
paramcutoffintTruncation parameter controlling the maximum complexity of the
Majorana monomials retained during evolution; its meaning depends on
cutoff_type. Higher values increase accuracy at greater cost. A
fully paired monomial -- one whose support consists entirely of
complete pairs (m_\{2j-1\} m_\{2j\}) on a mode -- is always kept
regardless of this cutoff, because only paired monomials can contribute
to an expectation value against a computational-basis state or Slater
determinant; discarding them would throw away signal.
paramschrodinger_cutoffint | None= NoneOptional cutoff for Schrodinger-picture evolution. If
provided, enables the Schrodinger picture; if None, the Heisenberg
picture is used.
paramcutoff_typestr= 'length'Truncation scheme (the fully-paired exception above always
applies on top of either). "length" (default) keeps monomials
whose length -- the number of Majorana operators -- does not exceed
cutoff; "support" keeps monomials acting on at most cutoff
distinct orbitals (their orbital support).
paramlower_atolNone | float= NoneOptional lower absolute-tolerance threshold for coefficient
truncation. Monomials with |coeff| \< lower_atol are discarded during
evolution to improve performance.
paramupper_atolNone | float= NoneOptional upper absolute-tolerance threshold. Monomials with
|coeff| > upper_atol are always retained regardless of their
complexity, overriding cutoff-based truncation.
paramcommMPI.Comm | None= NoneOptional MPI communicator. The communicator must remain valid for the simulator's lifetime.
Returns
Nonefunccutoff_type(self, new_cutoff_type) -> NoneSet the cutoff type ("length" or "support").
paramselfparamnew_cutoff_typestrReturns
None