CP2K 局域轨道与中心
从实际BERRY和PIPEK结果读取四个占据轨道,说明中心分支、轨道相位与偶极的区别。
阅读本篇目录
从实际BERRY和PIPEK结果读取四个占据轨道,说明中心分支、轨道相位与偶极的区别。
1. 下载实例,先提取再画图#
下载电子性质与局域轨道实操包,在新目录解压:
unzip cp2k-electronic-fields-wave294-*.zip
cd cp2k-electronic-fields-wave294
bash preview.sh
bash run.sh
preview/重画三张参考图,results/data/保存重新提取的数值,plots/保存重画结果;随包figures/可直接查看。输出目录受保护,再次运行请使用新解压目录。这里不重新运行DFT,只在已分配资源内使用1个CPU后处理。
原生计算用CP2K2026.2的CPU构建:Intel oneAPI2024.2、icx/icpx/ifx2024.2.1、Intel MPI2021.13、MKL2024.2,MPI+OpenMP。本例1个MPI进程、4个OpenMP线程。后处理用pymatgen/2026.9.24中的Python3.11、NumPy2.3.5、Matplotlib3.11.2。
reference/是实际CUBE及PDOS导出的自有数值,选定网格完整保留,没有抽样或人为归一化;不含程序、原始二进制WFN或完整运行日志。inputs/保留完整输入与原生PDOS数值,方便核对字段。
2. 局域化的对象是什么#
本例把水分子的4个占据轨道做局域化。局域轨道是占据空间内的线性组合,轨道外观、编号与原来的能量本征轨道不同;不能把局域轨道1、2、3、4直接当成能量排序。
在DFT中加入:
&LOCALIZE T
METHOD JACOBI
OPERATOR BERRY
EPS_LOCALIZATION 1E-8
MAX_ITER 5000
&PRINT
&WANNIER_CENTERS ON
IONS+CENTERS T
&END WANNIER_CENTERS
&WANNIER_CUBES ON
STRIDE 2 2 2
&END WANNIER_CUBES
&WANNIER_SPREADS ON
&END WANNIER_SPREADS
&END PRINT
&END LOCALIZE
这里电子SCF收敛为1E−6,EPS_LOCALIZATION=1E−8控制的是另一项局域化优化,不能用它替代电子收敛。原生Jacobi旋转在本例21次迭代收敛。方法与选态说明见CP2K LOCALIZE。
3. 先看中心文件,再看轨道网格#
grep 'Localization for spin' cp2k.out
cat water-HOMO_centers_s1-1_0.xyz
ls water-locHOMO*.cube
XYZ含3个原子和4个X中心。BERRY中心按周期相位定义,可能出现−6 Å等看似在盒外的坐标;本例显示前按12 Å晶胞回包。不是把中心位置手动移到自己希望看到的位置。输出选项见WANNIER_CENTERS。

红/蓝表示轨道振幅的正负相位,整体变号不改变物理态,不是正负电荷。图中四幅各用自己的对称色标,不能只按颜色深浅比较两个轨道的总电子数;二维切面也不能替代完整三维判断。
原始CUBE振幅单位Bohr⁻³ᐟ²,范数用sum(psi**2)*voxel_volume。本例四个范数约1.000187、1.000187、1.000201、1.000201,没有人为强制归一化。选定文本CUBE中2×sum(|psi_i|²)与原生密度的相对差约1.861E−5,保留有限SCF和输出网格的差别,不声称严格逐点相等。
cat results/data/water-field-checks.csv
cat results/data/water-native-centres.csv
4. 相位中心与传统位置算符要区分#
将本例4个BERRY中心回到同一分支,并用离子价电荷6、1、1与每轨道2电子组合,得到Berry相位偶极约 1.833849 D;传统位置算符给出约 1.785118 D。这两者在本例有限盒子下不相同,不能为了对齐数值而移动单个中心或将整组中心重标定。
对孤立分子的通常偶极,直接使用相同非周期边界下的DFT/PRINT/MOMENTS并检查盒子、基组与网格;若使用Berry相位中心构造偶极,需跟踪周期分支,并收敛相应盒子和局域化定义。
5. PIPEK的中心文件含义不同#
资料包还保存实际PIPEK输入与网格。将算符改成OPERATOR PIPEK时,本版本示例采用:
&WANNIER_SPREADS OFF
&END WANNIER_SPREADS
这个版本组合用上述设置运行其余轨道与原子归属输出。PIPEK局域化本例在1次迭代收敛。不要直接把BOYS等其他枚举当成这个GPW计算路径中可无条件替换的选项。
本版PIPEK的centres文件记录最大权重原子的位置,不是每条轨道的几何质心。本例四条都归属O,因此四个X都在O坐标;这不表示四个轨道空间形状相同,也不能按这些原子归属点重建分子偶极。轨道网格仍完整保存在下载包中。
ls inputs/water-PIPEK-spreads-off
更换自己的分子时,先确认电子数、占据空间、基组、边界和实际支持的局域化算符,再比较局域轨道。若包含分数占据或金属态,不能直接照搬这个4个双占据分子轨道例。
准备自己的计算并提交#
本例水分子为PBE、DZVP-MOLOPT-SR-GTH/GTH-PBE、12 Å非周期立方盒、MT泊松边界;密度截断400 Ry、REL_CUTOFF=50 Ry、EPS_SCF=1E−6。先优化自己的结构,再请求单点性质;不要把非周期分子的MT设置直接套到周期晶体。
mkdir water-fields
cp inputs/water-BERRY-restart/input.inp water-fields/
cd water-fields
输入中的SCF_GUESS RESTART与WFN_RESTART_FILE_NAME seed.wfn用于读取同一结构、基组和赝势的已收敛波函数。将自己的匹配文件复制为seed.wfn。没有前置WFN时,可在这个新目录改成原子初猜:
sed -i 's/SCF_GUESS RESTART/SCF_GUESS ATOMIC/' input.inp
sed -i '/WFN_RESTART_FILE_NAME/d' input.inp
通过yskit选择CP2K2026.2对应的CPU模板,也可以复制公共模板;CPU分区须处于可用状态。MPI与线程数按模板分配,不混入其他MPI环境:
cp /public/slurm_scripts/hs_user/cp2k/2026.2/8173m/sub_cp2k_2026.2_8173m.sh .
sbatch sub_cp2k_2026.2_8173m.sh
grep 'SCF run converged' cp2k.out
tail -12 cp2k.out
ls *.cube *.pdos
模板的并行配置与本例1×4不同,输入模型不变;小分子不一定随核心数增加而加速。详细提交流程见CP2K入门。
完整输入#
以下原始输入也保留在资料包inputs/中。
water-BERRY-restart
&GLOBAL
PROJECT water
RUN_TYPE ENERGY_FORCE
PRINT_LEVEL MEDIUM
&END GLOBAL
&FORCE_EVAL
METHOD QS
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT
POTENTIAL_FILE_NAME GTH_POTENTIALS
WFN_RESTART_FILE_NAME seed.wfn
&MGRID
CUTOFF 400
REL_CUTOFF 50
&END MGRID
&SCF
EPS_SCF 1.0E-6
MAX_SCF 120
ADDED_MOS 4
SCF_GUESS RESTART
&DIAGONALIZATION
ALGORITHM STANDARD
&END DIAGONALIZATION
&MIXING
METHOD PULAY_MIXING
ALPHA 0.3
NBUFFER 5
&END MIXING
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&LOCALIZE T
METHOD JACOBI
OPERATOR BERRY
EPS_LOCALIZATION 1E-8
MAX_ITER 5000
&PRINT
&WANNIER_CENTERS ON
IONS+CENTERS T
&END WANNIER_CENTERS
&WANNIER_SPREADS ON
&END WANNIER_SPREADS
&WANNIER_CUBES ON
STRIDE 2 2 2
&END WANNIER_CUBES
&TOTAL_DIPOLE ON
&END TOTAL_DIPOLE
&END PRINT
&END LOCALIZE
&PRINT
&E_DENSITY_CUBE ON
STRIDE 2 2 2
&END E_DENSITY_CUBE
&ELF_CUBE ON
STRIDE 2 2 2
&END ELF_CUBE
&DOS ON
NLUMO 4
NDIGITS 10
&PDOS
COMPONENTS T
&END PDOS
&END DOS
&HIRSHFELD ON
&END HIRSHFELD
&MULLIKEN ON
&END MULLIKEN
&MOMENTS ON
PERIODIC F
MAX_MOMENT 1
&END MOMENTS
&END PRINT
&END DFT
&SUBSYS
&CELL
ABC 12 12 12
PERIODIC NONE
&END CELL
&COORD
O 6.000 6.000 6.000
H 6.000 6.757 6.587
H 6.000 5.243 6.587
&END COORD
&KIND O
BASIS_SET DZVP-MOLOPT-SR-GTH
POTENTIAL GTH-PBE-q6
&END KIND
&KIND H
BASIS_SET DZVP-MOLOPT-SR-GTH
POTENTIAL GTH-PBE-q1
&END KIND
&END SUBSYS
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&END FORCE_EVAL
water-PIPEK-spreads-off
&GLOBAL
PROJECT water
RUN_TYPE ENERGY_FORCE
PRINT_LEVEL MEDIUM
&END GLOBAL
&FORCE_EVAL
METHOD QS
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT
POTENTIAL_FILE_NAME GTH_POTENTIALS
WFN_RESTART_FILE_NAME seed.wfn
&MGRID
CUTOFF 400
REL_CUTOFF 50
&END MGRID
&SCF
EPS_SCF 1.0E-6
MAX_SCF 120
ADDED_MOS 4
SCF_GUESS RESTART
&DIAGONALIZATION
ALGORITHM STANDARD
&END DIAGONALIZATION
&MIXING
METHOD PULAY_MIXING
ALPHA 0.3
NBUFFER 5
&END MIXING
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&LOCALIZE T
METHOD JACOBI
OPERATOR PIPEK
EPS_LOCALIZATION 1E-8
MAX_ITER 5000
&PRINT
&WANNIER_CENTERS ON
IONS+CENTERS T
&END WANNIER_CENTERS
&WANNIER_SPREADS OFF
&END WANNIER_SPREADS
&WANNIER_CUBES ON
STRIDE 2 2 2
&END WANNIER_CUBES
&TOTAL_DIPOLE ON
&END TOTAL_DIPOLE
&END PRINT
&END LOCALIZE
&PRINT
&E_DENSITY_CUBE ON
STRIDE 2 2 2
&END E_DENSITY_CUBE
&ELF_CUBE ON
STRIDE 2 2 2
&END ELF_CUBE
&DOS ON
NLUMO 4
NDIGITS 10
&PDOS
COMPONENTS T
&END PDOS
&END DOS
&HIRSHFELD ON
&END HIRSHFELD
&MULLIKEN ON
&END MULLIKEN
&MOMENTS ON
PERIODIC F
MAX_MOMENT 1
&END MOMENTS
&END PRINT
&END DFT
&SUBSYS
&CELL
ABC 12 12 12
PERIODIC NONE
&END CELL
&COORD
O 6.000 6.000 6.000
H 6.000 6.757 6.587
H 6.000 5.243 6.587
&END COORD
&KIND O
BASIS_SET DZVP-MOLOPT-SR-GTH
POTENTIAL GTH-PBE-q6
&END KIND
&KIND H
BASIS_SET DZVP-MOLOPT-SR-GTH
POTENTIAL GTH-PBE-q1
&END KIND
&END SUBSYS
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&END FORCE_EVAL