GPAW水分子实时TDDFT
从无点群基态、弱脉冲到偶极时间序列与吸收强度输出。
阅读本篇目录
下载完整Python输入、原始结果、CSV和绘图脚本。以下短命令在解压目录、已分配的CPU资源中执行,输出写入 work/。本模块为CPU构建,加载GPU资源不会自动启用GPU计算。
1 先准备实际优化结构#
bash run.sh water-lcao-opt
bash run.sh tddft
响应脚本读取前一步优化结构,重新生成关闭点群的基态:
from ase.io import read
from gpaw import GPAW, FermiDirac
atoms = read('../water-lcao-opt/structure.xyz')
atoms.calc = GPAW(mode='lcao', basis='dzp', h=0.25,
xc='PBE', nbands=12, occupations=FermiDirac(0.01),
symmetry={'point_group':False},
convergence={'energy':1e-6,'density':1e-5,'eigenstates':1e-8},
txt='ground.txt')
atoms.get_potential_energy()
atoms.calc.write('ground.gpw', mode='all')
该段在响应工作目录执行,完整构造与文件传递在run_response.py。点群设置必须在基态阶段处理,不能把含不适用对称性的旧文件改个名字后交给实时传播。
2 施加弱脉冲并传播#
from gpaw.lcaotddft import LCAOTDDFT
from gpaw.lcaotddft.dipolemomentwriter import DipoleMomentWriter
from gpaw.tddft.spectrum import photoabsorption_spectrum
td = LCAOTDDFT('ground.gpw', txt='tddft.txt')
DipoleMomentWriter(td, 'dm.dat')
td.absorption_kick([0,0,1e-5])
td.propagate(8.0, 1000)
photoabsorption_spectrum('dm.dat', 'spectrum.dat', width=0.3,
e_min=0, e_max=20, delta_e=0.05)
时间步8 as、1000步,共8 fs;脉冲沿z方向,幅度1E-5原子单位。这里是固定原子结构上的电子动力学,不是分子核的8 fs MD。

3 读文件时先看头部#
head work/response-tddft-v2/dm.dat
head work/response-tddft-v2/spectrum.dat
dm.dat的时间为原子单位,乘0.02418884得到fs。默认 density='comp'时norm列为补偿总电荷密度积分,接近0;不能将它误读为本分子的电子数或直接叫作波函数范数。
spectrum.dat给出能量和S_x/S_y/S_z。这里主要激发z通道。Gaussian width参数0.3 eV对应文件注明的FWHM约0.706446 eV,不是0.3 eV的实验线宽。
4 这是短时间操作示例#
8 fs的有限时间分辨率、基组、盒长和展宽都会影响峰形;本次低能有小的负数值,不将其截成正数或解释为光学增益。需要可靠光谱时应延长传播、比较时间步与弱脉冲线性范围,并检查三个偏振方向。
只比较不同方向时,应保持结构、基态、时间长度和后处理窗口一致。完整接口步骤可对照官方LCAO实时TDDFT教程。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。