monoprop

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) -> None

Initialize 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.

paramself
paraminitial_operatorIQuantumOperator | MajoranaOperator

Initial operator, either a :class:~monoprop.majorana.MajoranaOperator or an object implementing get_majorana_operator().

paraminitial_stateSequence[int] | np.ndarray

Slater determinant (occupied mode indices) for the initial state.

paramcutoffint

Truncation 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
= None

Optional 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
= None

Optional lower absolute-tolerance threshold for coefficient truncation. Monomials with |coeff| \< lower_atol are discarded during evolution to improve performance.

paramupper_atolNone | float
= None

Optional upper absolute-tolerance threshold. Monomials with |coeff| > upper_atol are always retained regardless of their complexity, overriding cutoff-based truncation.

paramcommMPI.Comm | None
= None

Optional MPI communicator. The communicator must remain valid for the simulator's lifetime.

Returns

None
funccutoff_type(self, new_cutoff_type) -> None

Set the cutoff type ("length" or "support").

paramself
paramnew_cutoff_typestr

Returns

None

On this page