diff --git a/include/crpropa/magneticField/turbulentField/TurbulentField.h b/include/crpropa/magneticField/turbulentField/TurbulentField.h index c7f79aeee0..8b478d89fc 100644 --- a/include/crpropa/magneticField/turbulentField/TurbulentField.h +++ b/include/crpropa/magneticField/turbulentField/TurbulentField.h @@ -49,7 +49,7 @@ class TurbulenceSpectrum : public Referenced { range */ TurbulenceSpectrum(double Brms, double lMin, double lMax, - double lBendover = 1, double sIndex = 5. / 3., + double lBendover = 1, double sIndex = (5. / 3.), double qIndex = 4) : Brms(Brms), lMin(lMin), lMax(lMax), lBendover(lBendover), sIndex(sIndex), qIndex(qIndex) { diff --git a/test/testPythonExtension.py b/test/testPythonExtension.py index 818f41151e..49738ca5a7 100644 --- a/test/testPythonExtension.py +++ b/test/testPythonExtension.py @@ -204,6 +204,16 @@ def testGridPropertiesConstructor(self): if hasattr(crp, 'GridTurbulence'): class testTurbulentField(unittest.TestCase): + #check problems brought up in https://github.com/CRPropa/CRPropa3/issues/322 + def testTurbulenceSpectrum(self): + spectrum = crp.TurbulenceSpectrum(1., 1., 10.) + self.assertEqual(spectrum.getBrms(), 1.) + self.assertEqual(spectrum.getLmin(), 1.) + self.assertEqual(spectrum.getLmax(), 10.) + self.assertEqual(spectrum.getLbendover(), 1.) + self.assertEqual(spectrum.getSindex(), 5./3.) + self.assertEqual(spectrum.getQindex(), 4.) + def testGridTurbulence(self): N = 64 boxSize = 1*crp.Mpc diff --git a/test/testTurbulentField.cpp b/test/testTurbulentField.cpp index 18d45e644f..2b04244d2d 100644 --- a/test/testTurbulentField.cpp +++ b/test/testTurbulentField.cpp @@ -13,6 +13,23 @@ using namespace crpropa; +//check problems brought up in https://github.com/CRPropa/CRPropa3/issues/322 +TEST(testTurbulenceSpectrum, constructor) { + double sIndex = 5./3.; + double qIndex = 4.; + double bendOver = 1.; + double lMin = 1.; + double lMax = 10.; + double brms = 1*muG; + auto spectrum = TurbulenceSpectrum(brms, lMin, lMax); + EXPECT_DOUBLE_EQ(spectrum.getBrms(), brms); + EXPECT_DOUBLE_EQ(spectrum.getLmin(), lMin); + EXPECT_DOUBLE_EQ(spectrum.getLmax(), lMax); + EXPECT_DOUBLE_EQ(spectrum.getLbendover(), bendOver); //default + EXPECT_DOUBLE_EQ(spectrum.getSindex(), sIndex); //default + EXPECT_DOUBLE_EQ(spectrum.getQindex(), qIndex); //default +} + TEST(testTurbulenceSpectrum, correlationLength) { double lMin = 0.00001; // not used for Lc double lMax = 9999999; // not used for Lc