cuquantum.densitymat.DenseMixedState¶
- class cuquantum.densitymat.DenseMixedState(ctx, hilbert_space_dims, batch_size, dtype)[源代码]¶
密集(密度矩阵)表示中的混合态。
需要通过
attach_storage()
方法附加存储缓冲区,或通过allocate_storage()
方法分配存储缓冲区。存储缓冲区的适当大小以及有关存储布局的信息可在local_info
属性中找到。- 参数
ctx – 执行上下文,其中包含有关设备 ID、日志记录和阻塞/非阻塞执行的信息。
hilbert_space_dims – 局部希尔伯特空间维度的元组。
batch_size – 状态的批次维度。
dtype – 状态系数的数值数据类型。
示例
>>> import cupy as cp >>> from cuquantum.densitymat import WorkStream, DenseMixedState
要创建批次大小为 1 和双精度复数数据类型的
DenseMixedState
,我们需要先初始化它,然后通过attach_storage()
方法附加存储缓冲区,如下所示>>> ctx = WorkStream(stream=cp.cuda.Stream()) >>> hilbert_space_dims = (2, 2, 2) >>> rho = DenseMixedState(ctx, hilbert_space_dims, 1, "complex128") >>> rho.attach_storage(cp.zeros(rho.storage_size, dtype=rho.dtype))
方法
- __init__(ctx: WorkStream, hilbert_space_dims: Sequence[int], batch_size: int, dtype: str) None [源代码]¶
初始化密集(密度矩阵)表示中的混合态。
- attach_storage(data: cupy.ndarray) None [源代码]¶
将数据缓冲区附加到状态。
- 参数
data – 要附加到状态的数据缓冲区。
注意
数据缓冲区需要与传递给
__init__
函数的希尔伯特空间维度、批次大小和数据类型匹配。此外,数据缓冲区需要是 Fortran 连续的,并且与传递给__init__
函数的WorkStream
位于同一设备上。
- clone(buf: cupy.ndarray) DenseState [源代码]¶
使用新的数据缓冲区克隆状态。
- 参数
buf – 要附加到新状态的数据缓冲区。
- 返回
一个状态,其元数据与原始状态相同,并具有新的数据缓冲区。
- inner_product(other) cupy.ndarray [源代码]¶
计算两个状态之间的内积。
- 参数
other – 用于计算内积的另一个状态。
- 返回
长度为
batch_size
的内积数组。
- inplace_accumulate(other, factors: Union[numbers.Number, Sequence, numpy.ndarray, cupy.ndarray] = 1) None [源代码]¶
将另一个按因子缩放的状态就地累加到此状态中。
- 参数
other – 要缩放并累加到此状态的另一个状态。
factors – 用于缩放
other
的标量因子。如果提供单个数字,则按相同因子缩放other
中的所有批次状态。默认为 1。
- inplace_scale(factors: Union[numbers.Number, Sequence, numpy.ndarray, cupy.ndarray]) None [源代码]¶
按标量因子缩放状态。
- 参数
factors – 用于缩放状态的标量因子。如果提供单个数字,则按相同因子缩放所有批次状态。
- norm() cupy.ndarray [源代码]¶
计算状态的平方弗罗贝尼乌斯范数。
- 返回
长度为
batch_size
的平方弗罗贝尼乌斯范数数组。
- trace() cupy.ndarray [源代码]¶
计算状态的迹。
- 返回
长度为
batch_size
的迹数组。
- view() cupy.ndarray [源代码]¶
返回存储缓冲区本地切片的多维视图。
注意
当
batch_size
为 1 时,视图的最后一个模式将是维度为 1 的批次模式。
属性
- local_info¶
本地存储缓冲区维度以及本地模式偏移量。
- 返回
- Tuple[int]
本地存储缓冲区维度,最后一个维度是批次维度。
- Tuple[int]
本地模式偏移量。
- storage¶
状态的本地存储缓冲区。
- 返回
状态的本地存储缓冲区。
- 返回类型
cp.ndarray