:py:mod:`pygsti.protocols.freeformsim` ====================================== .. py:module:: pygsti.protocols.freeformsim .. autoapi-nested-parse:: ModelTest Protocol objects Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: pygsti.protocols.freeformsim.FreeformDataSimulator pygsti.protocols.freeformsim.ModelFreeformSimulator .. py:class:: FreeformDataSimulator Bases: :py:obj:`pygsti.protocols.protocol.DataSimulator` Computes arbitrary functions of the state data simulator that also computes user-defined functions of the final states. .. py:method:: compute_freeform_data(circuit) :abstractmethod: Computes the simulated free-form data for a single circuit. Parameters ---------- circuit : Circuit The circuit to compute data for. Returns ------- dict .. py:method:: run(edesign, memlimit=None, comm=None) Run this data simulator on an experiment design. Parameters ---------- edesign : ExperimentDesign The input experiment design. memlimit : int, optional A rough per-processor memory limit in bytes. comm : mpi4py.MPI.Comm, optional When not ``None``, an MPI communicator used to run this data simulator in parallel. Returns ------- ProtocolData .. py:method:: apply_fn(series) .. py:method:: apply(df) Apply this data simulator to a data frame having a `Circuit` column. Parameters ---------- df : pandas.DataFrame The data frame to apply to. Returns ------- pandas.DataFrame .. py:class:: ModelFreeformSimulator(models) Bases: :py:obj:`FreeformDataSimulator` A base class for data simulators that utilize models (probably most of them!). Holds a dictionary of models and provides basic functionality for computing probabilities, final states, and process matrices corresponding to circuits which make implementing :meth:`compute_freeform_data` easier. Parameters ---------- models : dict A dictionary whose keys are string labels and values are :class:`Model` objects, specifying the models used to compute "simluated" data. .. py:attribute:: models .. py:method:: compute_process_matrix(model, circuit, include_final_state=False, include_probabilities=False) .. py:method:: compute_process_matrices(circuit, include_final_state=False, include_probabilities=False) .. py:method:: compute_final_state(model, circuit, include_probabilities=False) .. py:method:: compute_final_states(circuit, include_probabilities=False) .. py:method:: compute_circuit_probabilities(model, circuit) .. py:method:: compute_probabilities(circuit, include_probabilities=False)