跳转至

SitePattern

from cascaqit import SitePattern

SitePattern

SitePattern(
    site_ids: tuple[str, ...],
    weights: tuple[AnalogSiteWeight, ...],
)

用无量纲权重指定各站点接受多少局域控制。site_ids 和 weights 必须是非空、等长元组,站点名称非空且唯一。数值权重范围为 [0, 1],布尔值不作为数值权重;全部数值化后至少有一个权重大于零。

权重可以含 Parameter 或 Expression。在 AHS 中使用时,参数需由该程序声明且无量纲。AHSProgram 导出时要求权重覆盖全部有原子的目标站点,并按阵列顺序映射;from_mapping() 的字母排序不决定量子态位序。

from cascaqit import SitePattern

pattern = SitePattern.from_mapping({"q1": 0.25, "q0": 1.0})
assert pattern.site_ids == ("q0", "q1")
assert pattern.to_ir().weights == (1.0, 0.25)

用法见局域失谐。

from_mapping

from_mapping(
    weights: Mapping[str, AnalogSiteWeight],
) -> SitePattern

复制名称到权重的映射,按站点名称排序,返回新 SitePattern。键必须是字符串;构造校验仍会检查空集合、重名和权重范围。

bind

bind(values: Mapping[str, float]) -> SitePattern

根据名称到数值的映射计算权重,返回独立 SitePattern。参数求值与数值范围重新检查,得到全零权重时也会失败。

is_bound

is_bound: bool

所有权重均为规范化浮点数时返回 True。它不检查站点是否存在于某个阵列。

referenced_parameter_names

referenced_parameter_names: tuple[str, ...]

返回去重并排序的参数依赖名称元组。

validate_parameter_references

validate_parameter_references(
    declarations: Mapping[str, Parameter],
) -> None

检查参数对象归属和无量纲要求,以及表达式依赖是否存在。成功返回 None;不匹配时抛出 ProgramValidationError。此步骤不会绑定参数。

to_ir

to_ir() -> SitePatternIR

返回数值 SitePatternIR。未绑定时抛出 ProgramValidationError;数组顺序仍为此 pattern 的 site_ids 顺序。