Optimise and view the structure of ammonia dimer

[9]:
from ase.collections import s22
[10]:
name='Ammonia_dimer'
initial = s22[name]
[11]:
import ase.visualize
ase.visualize.view(initial, viewer='x3d')
[11]:
ASE atomic visualization
[12]:
from pymolpro import Project
p = Project(name)
import ase.io
ase.io.write(p.filename() + '/initial.xyz', initial)
p.write_input("""
geometry=initial.xyz
basis,aug-cc-pvtz
df-rhf; df-lmp2; optg; put,xyz,final.xyz""")
p.run(wait=True)
assert p.status == 'completed'
method=p.xpath('//summary/@overall_method')[-1]
[13]:
final = ase.io.read(p.filename() + '/final.xyz')
[14]:
def closest_interatomic(atoms):
    distances = atoms.get_all_distances()
    n = len(distances) // 2
    result = 1000.0
    for i in range(n):
        for j in range(n):
            result = min(distances[i][j + n], result)
    return result
[15]:
print("Initial H-bond length:",closest_interatomic(initial),"\n"+method+" H-bond length:",closest_interatomic(final))
Initial H-bond length: 2.149250106516224
DF-LMP2/aug-cc-pVTZ//DF-LMP2/aug-cc-pVTZ H-bond length: 2.196265045752414
[16]:
ase.visualize.view(final, viewer='x3d')
[16]:
ASE atomic visualization