cuquantum.densitymat.Operator

class cuquantum.densitymat.Operator(hilbert_space_dims, *terms)[源代码]

表示 OperatorTerm 对象集合的算符。

Operator 的作用是将 State 映射到另一个 StateOperator 通过其 compute 方法作用于 State 的实例,在其 prepare 方法在同一 State 实例上调用之后。

参数
  • hilbert_space_dims – 物理系统的希尔伯特空间维度。

  • terms – 指定每个项的元组序列。每个元组可以包含单个元素 (OperatorTerm),两个元素 (OperatorTerm 和系数),或三个元素 (OperatorTerm、系数和对偶性)。如果未给出第二个或第三个元素,它们将被设置为默认值 (coefficient=1, duality=False)。

方法

__add__(other: Operator) Operator[源代码]

返回一个新的 Operator,它等于此 Operator 与另一个 Operator 的和。

__iadd__(other: Union[Operator, OperatorTerm]) None[源代码]

原地将另一个 OperatorOperatorTerm 添加到此 Operator 中。

__init__(hilbert_space_dims: Sequence[int], *terms: Tuple[OperatorTerm, Optional[Union[numbers.Number, Tuple]], Optional[bool]]) None[源代码]

初始化一个算符,表示 OperatorTerm 对象的集合。

__mul__(scalar) Operator[源代码]

返回一个新的 Operator,它等于此 Operator 乘以左侧的标量。

__rmul__(scalar) Operator[源代码]

返回一个新的 Operator,它等于此 Operator 乘以右侧的标量。

__sub__(other: Operator) Operator[源代码]

返回此 Operator 与另一个 Operator 的差。

append(term: OperatorTerm, coeff: Union[numbers.Number, Callable[[numbers.Number, Sequence], numbers.Number]] = 1.0, duality: bool = False) None[源代码]

OperatorTerm 附加到此 Operator

参数
  • term – 要附加的 OperatorTerm

  • coeff – 与此 OperatorTerm 关联的系数。

  • dualityterm 中的基本算符是应用于右矢模式 (False) 还是左矢模式 (True)。

compute_action(t: float, params: list[float], state_in: State, state_out: State) None[source]

计算此 Operator 在输入状态上的作用,并累积到输出状态中。

参数
  • t – 传递给所有回调函数的时间参数。

  • params – 传递给所有回调函数的附加参数。

  • state – 要应用 Operator 的输入量子态。

  • state_out – 动作要累积到的输出量子态。默认为 state

compute_expectation(t: float, params: Sequence[float], state: State) cupy.ndarray[source]

计算此 Operator 在一个状态上的期望值。

参数
  • t – 传递给所有回调函数的时间参数。

  • params – 传递给所有回调函数的附加参数。

  • state – 用于评估期望值的量子态。

返回

计算出的期望值,封装在 cupy.ndarray 中。

注意

目前,此方法以阻塞方式执行,仅在计算完成后返回期望值。

dual() Operator[source]

返回此 Operator 的浅层、部分副本,其中每个项的反演性都被翻转。

prepare_action(ctx: WorkStream, state: State, state_out: Optional[State] = None, compute_type: Optional[str] = None) None[source]

准备此 Operator 在输入状态上的作用,并累积到输出状态中。

参数
  • ctx – 库上下文,包含工作区、流和其他配置信息。

  • state – 要应用 Operator 的输入量子态。

  • state_out – 动作要累积到的输出量子态。默认为 state

  • compute_type – 计算要使用的 CUDA 计算类型。

注意

目前不使用 compute_type 参数,并将默认为数据类型。

prepare_expectation(ctx: WorkStream, state: State, compute_type: Optional[str] = None) None[source]

准备计算此 Operator 在一个状态上的期望值。

参数
  • ctx – 库上下文,包含工作区、流和其他配置信息。

  • state – 用于评估期望值的量子态。

  • compute_type – 计算要使用的 CUDA 计算类型。

注意

目前不使用 compute_type 参数,并将默认为数据类型。

属性

dtype

Operator 的数据类型。

hilbert_space_dims

Operator 的希尔伯特空间维度。