1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
from ase.build import molecule
from ase.vibrations import Vibrations, Infrared
from ase.utils import workdir
from ase.test.utils import RandomCalculator
def test_combine(testdir):
dirname = 'subdir'
vibname = 'ir'
with workdir(dirname, mkdir=True):
atoms = molecule('C2H6')
ir = Infrared(atoms)
assert ir.name == vibname
ir.calc = RandomCalculator()
ir.run()
freqs = ir.get_frequencies()
ints = ir.intensities
assert ir.combine() == 49
ir = Infrared(atoms)
assert (freqs == ir.get_frequencies()).all()
assert (ints == ir.intensities).all()
vib = Vibrations(atoms, name=vibname)
assert (freqs == vib.get_frequencies()).all()
# Read the data from other working directory
with workdir('..'):
ir = Infrared(atoms, name=f'{dirname}/{vibname}')
assert (freqs == ir.get_frequencies()).all()
ir = Infrared(atoms)
assert ir.split() == 1
assert (freqs == ir.get_frequencies()).all()
assert (ints == ir.intensities).all()
vib = Vibrations(atoms, name=vibname)
assert (freqs == vib.get_frequencies()).all()
assert ir.clean() == 49
|