mindquantum.simulator.mqchem.UCCExcitationGate
- class mindquantum.simulator.mqchem.UCCExcitationGate(fermion_operator: FermionOperator)[源代码]
酉耦合簇(UCC)激发门,用于与
MQChemSimulator
一同使用。该门表示酉算符 \(e^{G}\),其中 \(G\) 是一个反厄米生成元,形式为 \(G = \theta (T - T^\dagger)\)。 这里,\(T\) 是一个同时保持自旋和电子数守恒的费米子激发算符。该算符常用于量子化学中变分量子算法的UCC拟设。
说明
此门专为 MQChemSimulator 设计,并依赖其内部的CI空间表示。它与标准的态矢量 Simulator 不兼容。
该门定义为:
\[U(\theta) = \exp(\theta(T - T^\dagger))\]其中 \(T\) 必须是单项的
FermionOperator
, 例如 \(a_p^\dagger a_q\)。- 参数:
fermion_operator (FermionOperator) - 费米子激发算符 \(T\)。 它必须只包含一项。该项的系数用作旋转角 \(\theta\)。如果系数是变量,则该门是参数化的。
样例:
>>> from mindquantum.simulator import mqchem >>> from mindquantum.core.operators import FermionOperator >>> # Non-parametric gate >>> t = FermionOperator('2^ 0', 0.5) >>> non_parametric_gate = mqchem.UCCExcitationGate(t) >>> non_parametric_gate exp{(1/2)([2^ 0] + [2 0^])} >>> >>> # Parametric gate >>> t_para = FermionOperator('3^ 1', 'theta') >>> parametric_gate = mqchem.UCCExcitationGate(t_para) >>> parametric_gate exp{(theta)([3^ 1] + [3 1^])}
- get_cpp_obj(n_qubits: int, n_electrons: int, backend)[源代码]
返回用于模拟的C++对象。
说明
此方法供
MQChemSimulator
内部使用。- 参数:
n_qubits (int) - 系统中的总量子比特数(自旋轨道数)。
n_electrons (int) - 系统中的总电子数。
backend (
_mq_chem.float
或_mq_chem.double
) - C++后端模块。
- 返回:
C++对象,底层绑定类型为
CppExcitationOperator
,用于模拟。