def test_get_spectrum_list_multi_ion_and_spectra(self): params = { 'ion0.B20': 0.37737, 'ion0.B22': 3.9770, 'ion0.B40': -0.031787, 'ion0.B42': -0.11611, 'ion0.B44': -0.12544, 'ion1.B20': 0.37737, 'ion1.B22': 3.9770, 'ion1.B40': -0.031787, 'ion1.B42': -0.11611, 'ion1.B44': -0.12544 } cfms = CrystalFieldMultiSite(Ions=['Ce', 'Pr'], Symmetries=['C2v', 'C2v'], Temperatures=[44.0, 50.0], FWHM=[1.1, 1.2], parameters=params) r = [0.0, 1.45, 2.4, 3.0, 3.85] x, y = cfms.getSpectrum(0, r) y = y / c_mbsr expected_y = [3.904037, 0.744519, 0.274897, 0.175713, 0.106540] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6) x, y = cfms.getSpectrum(1, r) y = y / c_mbsr expected_y = [3.704726, 0.785600, 0.296255, 0.190176, 0.115650] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6)
def test_get_spectrum_ws(self): from mantid.simpleapi import CreateWorkspace cfms = CrystalFieldMultiSite(['Ce'], ['C2v'], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068, Temperatures=[4.0], FWHM=[0.1], ToleranceIntensity=0.001*c_mbsr) x = np.linspace(0.0, 2.0, 30) y = np.zeros_like(x) e = np.ones_like(x) ws = CreateWorkspace(x, y, e) x, y = cfms.getSpectrum(0, ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474955, 6) self.assertAlmostEqual(y[1], 4.300416, 6) self.assertAlmostEqual(y[2], 1.452309, 6) self.assertAlmostEqual(y[3], 0.692266, 6) self.assertAlmostEqual(y[4], 0.401079, 6) self.assertAlmostEqual(y[15], 0.050130, 6) self.assertAlmostEqual(y[16], 0.054428, 6) x, y = cfms.getSpectrum(ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474955, 6) self.assertAlmostEqual(y[1], 4.300416, 6) ws = CreateWorkspace(x, y, e, 2) x, y = cfms.getSpectrum(ws, 1) y = y / c_mbsr self.assertAlmostEqual(y[0], 0.050130, 6) self.assertAlmostEqual(y[1], 0.054428, 6)
def test_get_spectrum_ws(self): from mantid.simpleapi import CreateWorkspace cfms = CrystalFieldMultiSite(['Ce'], ['C2v'], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068, Temperatures=[4.0], FWHM=[0.1], ToleranceIntensity=0.001 * c_mbsr) x = np.linspace(0.0, 2.0, 30) y = np.zeros_like(x) e = np.ones_like(x) ws = CreateWorkspace(x, y, e) x, y = cfms.getSpectrum(0, ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474955, 6) self.assertAlmostEqual(y[1], 4.300416, 6) self.assertAlmostEqual(y[2], 1.452309, 6) self.assertAlmostEqual(y[3], 0.692266, 6) self.assertAlmostEqual(y[4], 0.401079, 6) self.assertAlmostEqual(y[15], 0.050130, 6) self.assertAlmostEqual(y[16], 0.054428, 6) x, y = cfms.getSpectrum(ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474955, 6) self.assertAlmostEqual(y[1], 4.300416, 6) ws = CreateWorkspace(x, y, e, 2) x, y = cfms.getSpectrum(ws, 1) y = y / c_mbsr self.assertAlmostEqual(y[0], 0.050130, 6) self.assertAlmostEqual(y[1], 0.054428, 6)
def test_get_spectrum_ws_multi_spectra(self): from mantid.simpleapi import CreateWorkspace cfms = CrystalFieldMultiSite(['Ce'], ['C2v'], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068, Temperatures=[4.0, 50.0], FWHM=[0.1, 0.2]) x = np.linspace(0.0, 2.0, 30) y = np.zeros_like(x) e = np.ones_like(x) ws = CreateWorkspace(x, y, e) x, y = cfms.getSpectrum(0, ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474945990071641, 6) self.assertAlmostEqual(y[1], 4.3004130214544389, 6) self.assertAlmostEqual(y[2], 1.4523079303712476, 6) self.assertAlmostEqual(y[3], 0.6922657279528992, 6) self.assertAlmostEqual(y[4], 0.40107924259746491, 6) self.assertAlmostEqual(y[15], 0.050129858433581413, 6) self.assertAlmostEqual(y[16], 0.054427788297191478, 6) x, y = cfms.getSpectrum(1, ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 6.3046623789675627, 6) self.assertAlmostEqual(y[1], 4.2753024205094912, 6) self.assertAlmostEqual(y[2], 2.1778204115683644, 6) self.assertAlmostEqual(y[3], 1.2011173460849718, 6) self.assertAlmostEqual(y[4], 0.74036730921135963, 6) x, y = cfms.getSpectrum(ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474945990071641, 6) self.assertAlmostEqual(y[1], 4.3004130214544389, 6) ws = CreateWorkspace(x, y, e, 2) x, y = cfms.getSpectrum(ws, 1) y = y / c_mbsr self.assertAlmostEqual(y[0], 0.050129858433581413, 6) self.assertAlmostEqual(y[1], 0.054427788297191478, 6)
def test_get_spectrum_ws_multi_spectra(self): from mantid.simpleapi import CreateWorkspace cfms = CrystalFieldMultiSite(['Ce'], ['C2v'], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068, Temperatures=[4.0, 50.0], FWHM=[0.1, 0.2]) x = np.linspace(0.0, 2.0, 30) y = np.zeros_like(x) e = np.ones_like(x) ws = CreateWorkspace(x, y, e) x, y = cfms.getSpectrum(0, ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474945990071641, 6) self.assertAlmostEqual(y[1], 4.3004130214544389, 6) self.assertAlmostEqual(y[2], 1.4523079303712476, 6) self.assertAlmostEqual(y[3], 0.6922657279528992, 6) self.assertAlmostEqual(y[4], 0.40107924259746491, 6) self.assertAlmostEqual(y[15], 0.050129858433581413, 6) self.assertAlmostEqual(y[16], 0.054427788297191478, 6) x, y = cfms.getSpectrum(1, ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 6.3046623789675627, 6) self.assertAlmostEqual(y[1], 4.2753024205094912, 6) self.assertAlmostEqual(y[2], 2.1778204115683644, 6) self.assertAlmostEqual(y[3], 1.2011173460849718, 6) self.assertAlmostEqual(y[4], 0.74036730921135963, 6) x, y = cfms.getSpectrum(ws) y = y / c_mbsr self.assertAlmostEqual(y[0], 12.474945990071641, 6) self.assertAlmostEqual(y[1], 4.3004130214544389, 6) ws = CreateWorkspace(x, y, e, 2) x, y = cfms.getSpectrum(ws, 1) y = y / c_mbsr self.assertAlmostEqual(y[0], 0.050129858433581413, 6) self.assertAlmostEqual(y[1], 0.054427788297191478, 6)
def test_get_spectrum_from_list_multi_spectra(self): cfms = CrystalFieldMultiSite(Ions=['Ce'], Symmetries=['C2v'], Temperatures=[4.0, 50.0], FWHM=[0.1, 0.2], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068) r = [0.0, 1.45, 2.4, 3.0, 3.85] x, y = cfms.getSpectrum(0, r) y = y / c_mbsr expected_y = [12.474946, 1.190160, 0.122785, 0.042940, 10.837170] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6) x, y = cfms.getSpectrum(1, r) y = y / c_mbsr expected_y = [6.304662, 0.331218, 1.224681, 0.078540, 2.638049] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6)
def test_get_spectrum_from_list_multi_spectra(self): cfms = CrystalFieldMultiSite(Ions=['Ce'], Symmetries=['C2v'], Temperatures=[4.0, 50.0], FWHM=[0.1, 0.2], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068) r = [0.0, 1.45, 2.4, 3.0, 3.85] x, y = cfms.getSpectrum(0, r) y = y / c_mbsr expected_y = [12.474946, 1.190160, 0.122785, 0.042940, 10.837170] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6) x, y = cfms.getSpectrum(1, r) y = y / c_mbsr expected_y = [6.304662, 0.331218, 1.224681, 0.078540, 2.638049] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6)
def test_get_spectrum_list_multi_ion_and_spectra(self): params = {'ion0.B20': 0.37737, 'ion0.B22': 3.9770, 'ion0.B40': -0.031787, 'ion0.B42': -0.11611, 'ion0.B44': -0.12544, 'ion1.B20': 0.37737, 'ion1.B22': 3.9770, 'ion1.B40': -0.031787, 'ion1.B42': -0.11611, 'ion1.B44': -0.12544} cfms = CrystalFieldMultiSite(Ions=['Ce', 'Pr'], Symmetries=['C2v', 'C2v'], Temperatures=[44.0, 50.0], FWHM=[1.1, 1.2], parameters=params) r = [0.0, 1.45, 2.4, 3.0, 3.85] x, y = cfms.getSpectrum(0, r) y = y / c_mbsr expected_y = [3.904037, 0.744519, 0.274897, 0.175713, 0.106540] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6) x, y = cfms.getSpectrum(1, r) y = y / c_mbsr expected_y = [3.704726, 0.785600, 0.296255, 0.190176, 0.115650] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6)
def test_get_spectrum_from_list(self): cfms = CrystalFieldMultiSite(Ions=['Ce'], Symmetries=['C2v'], Temperatures=[4.0], FWHM=[0.1], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068, ToleranceIntensity=0.001*c_mbsr) r = [0.0, 1.45, 2.4, 3.0, 3.85] x, y = cfms.getSpectrum(r) y = y / c_mbsr expected_y = [12.474955, 1.190169, 0.122781, 0.042940, 10.837438] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6)
def test_get_spectrum_from_list(self): cfms = CrystalFieldMultiSite(Ions=['Ce'], Symmetries=['C2v'], Temperatures=[4.0], FWHM=[0.1], B20=0.035, B40=-0.012, B43=-0.027, B60=-0.00012, B63=0.0025, B66=0.0068, ToleranceIntensity=0.001*c_mbsr) r = [0.0, 1.45, 2.4, 3.0, 3.85] x, y = cfms.getSpectrum(r) y = y / c_mbsr expected_y = [12.474955, 1.190169, 0.122781, 0.042940, 10.837438] np.testing.assert_equal(x, r) np.testing.assert_almost_equal(y, expected_y, 6)