使用 ASE 来完成晶胞及原子结构的进一步优化 mol = mol_ini.clone() p1 = spdkit.to_ase_atoms(mol) calc_elastic = ElasticModel(mol, chemenv) p1.set_calculator(calc_elastic) box = Mushybox(p1) # dyn = FIRE(p1, maxstep=0.1) dyn = FIRE(box, maxstep=0.1) dyn.run(fmax=0.001, steps=100)。修改上述代码,输出ASE晶胞优化的结构以及晶格参数到当前目录下
时间: 2024-03-07 08:46:57 浏览: 24
好的,您可以参考下面的代码来实现:
```
import os
import numpy as np
from ase.io import write
mol = mol_ini.clone()
p1 = spdkit.to_ase_atoms(mol)
calc_elastic = ElasticModel(mol, chemenv)
p1.set_calculator(calc_elastic)
box = Mushybox(p1)
dyn = FIRE(box, maxstep=0.1)
dyn.run(fmax=0.001, steps=100)
# 将优化后的晶格参数输出至当前目录下的lattice_params.txt文件中
lattice_params = np.array(p1.get_cell_lengths_and_angles())
with open(os.path.join(os.getcwd(), 'lattice_params.txt'), 'w') as f:
f.write(" ".join(str(x) for x in lattice_params))
# 将优化后的结构输出至当前目录下的out.cif文件中
write(os.path.join(os.getcwd(), 'out.cif'), p1)
```
以上代码会将优化后的晶格参数输出为文本文件 `lattice_params.txt`,并将优化后的结构输出为 CIF 格式的文件 `out.cif`,两个文件都保存在当前目录下。其中,晶格参数以空格分隔,每个参数后面都有一个换行符。您可以根据需要修改输出格式。