# 使用 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 13:46:41 浏览: 15
可以在上述代码的最后加上以下代码来输出优化后的结构:
```
# 输出优化后的结构
print("优化后的晶格参数:", box.get_cell())
print("优化后的原子坐标:")
for atom in box:
print(atom.symbol, atom.position)
```
其中,`box.get_cell()`可以获取优化后的晶格参数,`for atom in box:`可以遍历优化后的原子坐标并输出。
相关问题
修改代码:要求输出晶胞优化后的结构为cif。mol_ini = Molecule.from_file("Fe32C9/60_1/POSCAR") mol_opt = Molecule.from_file("Fe32C9/60_1/CONTCAR") mol_refined, chemenv = refine(mol_ini, submols) # 使用 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)
以下是修改后的代码,输出晶胞优化后的结构为 CIF 格式:
```python
from ase.io import write
mol_ini = Molecule.from_file("Fe32C9/60_1/POSCAR")
mol_opt = Molecule.from_file("Fe32C9/60_1/CONTCAR")
mol_refined, chemenv = refine(mol_ini, submols)
# 使用 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)
# 输出为 CIF 格式
write('output.cif', box, format='cif')
```
在代码的最后添加了输出语句 `write('output.cif', box, format='cif')`,将优化后的结构 `box` 输出为 CIF 格式的文件 `output.cif`。其中,`format='cif'` 表示输出格式为 CIF。
使用 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晶胞优化的结构到当前目录下
好的,您可以参考下面的代码来实现:
```
import os
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)
# 将优化后的结构输出至当前目录下的out.cif文件中
write(os.path.join(os.getcwd(), 'out.cif'), p1)
```
以上代码会将优化后的结构输出为 CIF 格式的文件,并保存在当前目录下。您可以根据需要修改输出格式,例如将 `write()` 函数的第一个参数改为 `out.xyz` 以输出为 XYZ 格式的文件。