diff --git a/CHANGELOG b/CHANGELOG index d69a52d09..24f663f58 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -27,6 +27,8 @@ Bug fixes - Fixed bug resulting from the rotation of the fourth rank tensor with non-zero euler angles. +- Fixed bug causing a change in the spectral area as the sampling points change. Now the + area is constant. Other changes ''''''''''''' diff --git a/src/c_lib/base/base_model.pyx b/src/c_lib/base/base_model.pyx index 39c3b184a..7c64e6799 100644 --- a/src/c_lib/base/base_model.pyx +++ b/src/c_lib/base/base_model.pyx @@ -179,6 +179,8 @@ def one_d_spectrum(method, &incre[0], &magnetic_flux_density_in_T[0], &srfiH[0], &rair[0], &n_event[0], n_sequence, number_of_sidebands) +# normalization factor for the spectrum + norm = np.prod(incre) # create fftw scheme __________________________________________________________ @@ -386,7 +388,7 @@ def one_d_spectrum(method, interpolation, ) - temp = amp*abundance + temp = amp*abundance/norm ## reverse the spectrum if gyromagnetic ratio is positive. if gyromagnetic_ratio < 0: diff --git a/src/mrsimulator/__init__.py b/src/mrsimulator/__init__.py index 692c3737c..00e40a451 100644 --- a/src/mrsimulator/__init__.py +++ b/src/mrsimulator/__init__.py @@ -15,7 +15,7 @@ See https://mrsimulator.readthedocs.io/en/stable/ for complete documentation. """ # version has to be specified at the start. -__version__ = "0.3.0a1" +__version__ = "0.3.0a2" from .spin_system import Site # lgtm [py/import-own-module] from .spin_system import SpinSystem # lgtm [py/import-own-module] diff --git a/tests/test_amplitude.py b/tests/test_amplitude.py index cbac3bf4a..d827db2de 100644 --- a/tests/test_amplitude.py +++ b/tests/test_amplitude.py @@ -80,7 +80,7 @@ def test_with_configuration_setting(): err_msg="Integral error from νr, integration density, integration volume.", ) - sim.methods[0].spectral_dimensions[0].count = 256 + sim.config.number_of_sidebands = 256 sim.run() y_spinning_MAS_1 = sim.methods[0].simulation.dependent_variables[0].components[0] @@ -97,14 +97,17 @@ def test_number_of_points(): sim.methods[0].spectral_dimensions[0].count = 2048 sim.run() y_static = sim.methods[0].simulation.dependent_variables[0].components[0] + inc = sim.methods[0].simulation.dimensions[0].increment.to("Hz").value sim.methods[0].spectral_dimensions[0].count = 4096 sim.run() y_static_1 = sim.methods[0].simulation.dependent_variables[0].components[0] + inc_1 = sim.methods[0].simulation.dimensions[0].increment.to("Hz").value + print(inc, inc_1) np.testing.assert_almost_equal( - y_static.sum(), - y_static_1.sum(), + y_static.sum() * inc, + y_static_1.sum() * inc_1, decimal=8, err_msg="Integral error from number_of_points", )