Source code for quantinuum_schemas.models.aer_noise
"""Validation classes for Aer noise models."""from__future__importannotationsfromtypingimportAnnotated,Any,List,Literal,Optional,Tuple,UnionfromuuidimportUUID,uuid4frompydanticimportBaseModel,Field,field_validatorfromquantinuum_schemas.models.backend_infoimportRegister
[docs]classQiskitBasicInstruction(BaseModel):"""Validation model for qiskit instructions without params."""name:Literal["id","x","y","z","reset"]qubits:List[int]
[docs]classQiskitPauliInstruction(BaseModel):"""Validation model for qiskit pauli string instructions."""name:Literal["pauli"]="pauli"params:List[str]qubits:List[int]
[docs]classQiskitKrausInstruction(BaseModel):"""Validation model for qiskit kraus operator instructions."""name:Literal["kraus"]="kraus"# List of matrices of complex numbersparams:List[List[List[List[float]]]]qubits:List[int]
[docs]classAerQuantumError(BaseModel):"""Validation model for qiskit-aer's QuantumError class."""type:Literal["qerror"]="qerror"id:str=Field(default_factory=lambda:uuid4().hex)operations:Optional[List[str]]=Field(default_factory=lambda:[])instructions:List[List[QiskitInstruction]]probabilities:List[float]=Field(min_length=1)gate_qubits:List[List[int]]@field_validator("id")defvalidate_id(cls,value:Any)->str:# pylint: disable=no-self-argument"""Ensure id is a v4 UUID in hex format."""returnUUID(value,version=4).hex
[docs]classAerReadoutError(BaseModel):"""Validation model for qiskit-aer's ReadoutError class."""type:Literal["roerror"]="roerror"operations:Optional[List[str]]=Field(default_factory=lambda:["measure"])probabilities:List[List[float]]=Field(min_length=1)gate_qubits:List[List[int]]
[docs]classAerNoiseModel(BaseModel):"""Validation model for qiskit-aer's NoiseModel class."""errors:List[Error]
[docs]classCrosstalkParams(BaseModel):""" Based on pytket-qiskit's CrosstalkParams model. Stores various parameters for modelling crosstalk noise. """zz_crosstalks:dict[Tuple[Register,Register],float]single_q_phase_errors:dict[Register,float]two_q_induced_phase_errors:dict[Tuple[Register,Register],Tuple[Register,float]]non_markovian_noise:list[Tuple[Register,float,float]]virtual_z:boolN:floatgate_times:dict[Tuple[str,Tuple[Register,...]],float]phase_damping_error:dict[Register,float]amplitude_damping_error:dict[Register,float]