MajoranaPropagator
Classical simulator for Majorana operators.
Accepts a monoprop.majorana.MajoranaOperator (or any object implementing
get_majorana_operator(), such as a monoprop.fermi.FermiOperator)
observable and a monoprop.circuit.Circuit of Majorana/fermionic
monoprop.circuit.ExpGate gates. See
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
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 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= NoneSelects and configures Schrodinger-picture evolution.
If None (default), the simulator runs in the Heisenberg picture.
If an integer is provided, the simulator runs in the Schrodinger
picture and this value is used as the truncation limit for the evolved
state (including initialization from initial_state), using the same
complexity notion as cutoff_type. In practice, choose
schrodinger_cutoff at least as large as cutoff (often slightly
larger) for comparable accuracy.
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