unrotated_planar.jl
Public functions
QuantumACES.UnrotatedPlanarParameters — TypeUnrotatedPlanarParametersParameters for the syndrome extraction circuit of an unrotated planar code.
Fields
params::Dict{Symbol, Any}: Dictionary of the circuit parameters described below.circuit_name::String: Name of the circuit used for saving data.
Parameters
vertical_dist::Int: Vertical (Z) distance of the code.horizontal_dist::Int: Horizontal (X) distance of the code.gate_type::Symbol: Type of two-qubit gate used in the circuit, which must be:cx.ancilla_measurement::Bool: Whether to include mid-circuit ancilla measurements.pad_identity::Bool: Whether to pad layers with single-qubit identity gates.layer_time_dict::Dict{Symbol, Float64}: Dictionary of layer times.
QuantumACES.get_circuit — Methodget_circuit(unrotated_param::UnrotatedPlanarParameters, noise_param::AbstractNoiseParameters; kwargs...)Returns an unrotated planar code syndrome extraction circuit in the form of a Circuit object parameterised by the supplied circuit and noise parameters.
Arguments
unrotated_param::UnrotatedPlanarParameters: Parameters for an unrotated planar code.noise_param::AbstractNoiseParameters: Noise parameters for the circuit.
Keyword arguments
noisy_prep::Bool = false: Whether to treat preparations as noisy and characterise the associated noise, defaulting tofalse; a full-rank design cannot be produced if bothnoisy_prepandnoisy_measaretrue.noisy_meas::Bool = true: Whether to treat measurements as noisy and characterise the associated noise, defaulting totrue; a full-rank design cannot be produced if bothnoisy_prepandnoisy_measaretrue.combined::Bool = haskey(noise_param.params, :combined) ? noise_param.params[:combined] : false,: Whether to treat Pauli X, Y, and Z basis SPAM noise as the same.strict::Bool = false: Whether to be strict about which gates count as estimable to relative precision.
QuantumACES.get_unrotated_param — Methodget_unrotated_param(vertical_dist::Integer, horizontal_dist::Integer; kwargs...)
get_unrotated_param(dist::Integer; kwargs...)Returns an UnrotatedPlanarParameters object that parameterises the syndrome extraction circuit of an unrotated planar code.
Default gate layer times are estimated from Suppressing quantum errors by scaling a surface code logical qubit by Google Quantum AI (2023).
Arguments
vertical_dist::Int: Vertical (Z) distance of the code.horizontal_dist::Int: Horizontal (X) distance of the code.dist::Int: Distance of the code; this is equivalent to settingvertical_dist = distandhorizontal_dist = dist.
Keyword arguments
gate_type::Symbol = :cx: Type of two-qubit gate used in the circuit, which must be:cx.ancilla_measurement::Bool = true: Whether to include mid-circuit reset.pad_identity::Bool = true: Whether to pad layers with single-qubit identity gates.single_qubit_time::Real = 29: Time taken to implement a single-qubit gate in nanoseconds.two_qubit_time::Real = 29: Time taken to implement a two-qubit gate in nanoseconds.meas_reset_time::Real = 660: Time taken to perform measurement and reset at the end of the circuit in nanoseconds.mid_reset_time::Real = 660: Time taken to perform mid-circuit reset in nanoseconds.
Private functions
QuantumACES.unrotated_planar_circuit — Methodunrotated_planar_circuit(unrotated_param::UnrotatedPlanarParameters)Returns fields used to construct the syndrome extraction circuit of an unrotated planar code based on the supplied parameters unrotated_param.