You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qiskit Nature轨道排序机制及轨道编号对应关系咨询

Qiskit中FreezeCoreTransformer的轨道编号对应关系解析

问题背景

使用Qiskit的PySCFDriver定义NaH分子时,得到的体系包含10个空间轨道。尝试用FreezeCoreTransformer(freeze_core=False, remove_orbitals=[0,1,2,3,4,5])缩减活性空间后,num_particles变为(0,0),说明所有12个电子都分布在前6个轨道中,但不清楚这些轨道编号对应的物理轨道。

核心结论

Qiskit Nature中,空间轨道的编号是按轨道本征能量从低到高排序的:编号0对应能量最低的轨道,编号依次递增对应能量更高的轨道。

对于NaH(STO-3G基组)的场景:

  • 编号0~5的轨道是能量最低的6个占据轨道,每个轨道填充2个电子(共12个电子,正好匹配体系总电子数),包含Na的内层核心轨道(1s、2s、2p三重简并轨道)以及Na-H之间的成键轨道。
  • 编号6~9的轨道是未被占据的虚轨道(能量更高),原本就没有电子填充。

代码验证与解释

以下是你的最小代码示例:

from qiskit_nature.second_q.drivers import PySCFDriver
from qiskit_nature.second_q.transformers import FreezeCoreTransformer

driver = PySCFDriver(
    atom=f"H 0 0 0; Na 0 0 {1.5}",
    basis="sto3g",
    charge=0,
    spin=0,
)

problem = driver.run()

print(f'{problem.num_particles = }')
print(f'{problem.num_spatial_orbitals = }')

as_transformer = FreezeCoreTransformer(freeze_core=False, remove_orbitals=[0,1,2,3,4,5])
as_transformer.prepare_active_space(problem.molecule, problem.num_spatial_orbitals)
as_problem = as_transformer.transform(problem)

print(f'{as_problem.num_particles = }')
print(f'{as_problem.num_spatial_orbitals = }')

输出结果:

problem.num_particles = (6, 6)
problem.num_spatial_orbitals = 10
as_problem.num_particles = (0, 0)
as_problem.num_spatial_orbitals = 4
  • problem.num_particles = (6, 6):表示体系有6个α电子和6个β电子,共12个电子。
  • 移除0~5号轨道后,所有电子所在的轨道都被排除出活性空间,因此as_problem.num_particles = (0, 0),剩余的4个轨道是原本的6~9号虚轨道。

内容的提问来源于stack exchange,提问作者QuantumCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:27:10