monoprop

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) -> 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 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 (m2j1m2j)(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

Selects 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
= 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