예제 #1
0
def test_turbomole_h2o():
    from ase.calculators.turbomole import Turbomole
    from ase.build import molecule

    mol = molecule('H2O')

    params = {
        'title': 'water',
        'task': 'geometry optimization',
        'use redundant internals': True,
        'basis set name': 'def2-SV(P)',
        'total charge': 0,
        'multiplicity': 1,
        'use dft': True,
        'density functional': 'b3-lyp',
        'use resolution of identity': True,
        'ri memory': 1000,
        'force convergence': 0.001,
        'geometry optimization iterations': 50,
        'scf iterations': 100
    }

    calc = Turbomole(**params)
    mol.calc = calc
    calc.calculate(mol)
    assert calc.converged

    # use the get_property() method
    print(calc.get_property('energy', mol, False))
    print(calc.get_property('forces', mol, False))
    print(calc.get_property('dipole', mol, False))

    # use the get_results() method
    results = calc.get_results()
    print(results['molecular orbitals'])

    # use the __getitem__() method
    print(calc['results']['molecular orbitals'])
    print(calc['results']['geometry optimization history'])

    # perform a normal mode calculation with the optimized structure

    params.update({
        'task': 'normal mode analysis',
        'density convergence': 1.0e-7
    })

    calc = Turbomole(**params)
    mol.calc = calc
    calc.calculate(mol)

    print(calc['results']['vibrational spectrum'])
    print(calc.todict(skip_default=False))
예제 #2
0
}

calc = Turbomole(**params)
mol.set_calculator(calc)
calc.calculate(mol)
assert calc.converged

# use the get_property() method
print(calc.get_property('energy', mol, False))
print(calc.get_property('forces', mol, False))
print(calc.get_property('dipole', mol, False))

# use the get_results() method
results = calc.get_results()
print(results['molecular orbitals'])

# use the __getitem__() method
print(calc['results']['molecular orbitals'])
print(calc['results']['geometry optimization history'])

# perform a normal mode calculation with the optimized structure

params.update({'task': 'normal mode analysis', 'density convergence': 1.0e-7})

calc = Turbomole(**params)
mol.set_calculator(calc)
calc.calculate(mol)

print(calc['results']['vibrational spectrum'])
print(calc.todict(skip_default=False))