コード例 #1
0
def test_compare_placzek_implementation_intensities(testdir):
    """Intensities of different Placzek implementations
    should be similar"""
    atoms = H2Morse()
    name = 'placzek'
    rmc = ResonantRamanCalculator(atoms,
                                  H2MorseExcitedStatesCalculator,
                                  overlap=lambda x, y: x.overlap(y),
                                  name=name,
                                  txt='-')
    rmc.run()

    om = 1
    gam = 0.1

    pz = Placzek(atoms, H2MorseExcitedStates, name=name, txt=None)
    pzi = pz.get_absolute_intensities(omega=om, gamma=gam)[-1]
    print(pzi, 'Placzek')

    # Profeta using frozenset
    pr = Profeta(atoms,
                 H2MorseExcitedStates,
                 approximation='Placzek',
                 name=name,
                 txt=None)
    pri = pr.get_absolute_intensities(omega=om, gamma=gam)[-1]
    print(pri, 'Profeta using frozenset')
    assert pzi == pytest.approx(pri, 1e-3)

    # Profeta using overlap
    pr = Profeta(atoms,
                 H2MorseExcitedStates,
                 approximation='Placzek',
                 overlap=True,
                 name=name,
                 txt=None)
    pro = pr.get_absolute_intensities(omega=om, gamma=gam)[-1]
    print(pro, 'Profeta using overlap')
    assert pro == pytest.approx(pri, 1e-3)
コード例 #2
0
def test_overlap():
    """Test equality with and without overlap"""
    atoms = H2Morse()
    name = 'profeta'
    name = 'rrmorse'
    nstates = 3
    po = Profeta(atoms, H2MorseExcitedStatesAndCalculator,
                 exkwargs={'nstates': nstates}, approximation='Placzek',
                 overlap=lambda x, y: x.overlap(y),
                 gsname=name, exname=name, txt='-')
    po.run()

    om = 1
    poi = po.absolute_intensity(omega=om)[-1]

    pr = Profeta(atoms, H2MorseExcitedStatesAndCalculator,
                 exkwargs={'nstates': nstates}, approximation='Placzek',
                 gsname=name, exname=name,
                 txt=None)
    pri = pr.absolute_intensity(omega=om)[-1]

    print('overlap', pri, poi, poi / pri)
    assert pri == pytest.approx(poi, 1e-4)
コード例 #3
0
def test_compare_placzek_implementation_intensities():
    """Intensities of different Placzek implementations
    should be similar"""
    atoms = H2Morse()
    name = 'placzek'
    pz = Placzek(atoms,
                 H2MorseExcitedStatesAndCalculator,
                 gsname=name,
                 exname=name,
                 txt=None)
    pz.run()
    om = 1
    pzi = pz.absolute_intensity(omega=om)[-1]

    # Profeta using frozenset
    pr = Profeta(atoms,
                 H2MorseExcitedStatesAndCalculator,
                 approximation='Placzek',
                 gsname=name,
                 exname=name,
                 txt=None)
    pri = pr.absolute_intensity(omega=om)[-1]
    assert pzi == pytest.approx(pri, 1e-3)

    # Profeta using overlap
    name = 'profeta'
    pr = Profeta(atoms,
                 H2MorseExcitedStatesAndCalculator,
                 approximation='Placzek',
                 gsname=name,
                 exname=name,
                 overlap=lambda x, y: x.overlap(y),
                 txt=None)
    pr.run()
    pro = pr.absolute_intensity(omega=om)[-1]
    assert pro == pytest.approx(pri, 1e-3)
コード例 #4
0
def test_profeta_run():
    atoms = H2Morse()
    name = 'profeta'
    pr = Profeta(atoms, H2MorseExcitedStatesAndCalculator,
                 gsname=name, exname=name, txt='-')
    pr.run()
コード例 #5
0
def test_placzek_run():
    atoms = H2Morse()
    name = 'placzek'
    pz = Placzek(atoms, H2MorseExcitedStatesAndCalculator,
                 gsname=name, exname=name, txt='-')
    pz.run()
コード例 #6
0
ファイル: test_albrecht.py プロジェクト: rashidrafeek/ase
def atoms():
    return H2Morse()
コード例 #7
0
from ase.calculators.h2morse import (H2Morse, H2MorseExcitedStatesCalculator)
from ase.vibrations.resonant_raman import ResonantRamanCalculator

atoms = H2Morse()
rmc = ResonantRamanCalculator(atoms,
                              H2MorseExcitedStatesCalculator,
                              overlap=lambda x, y: x.overlap(y))
rmc.run()