From 000019905d9eaf5e0695e8c52de7d8b08e2f8777 Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@tu-dortmund.de> Date: Sun, 12 Jul 2020 23:51:37 +0200 Subject: [PATCH 1/2] use Vectors in magnetic field models --- Environment/IMagneticFieldModel.h | 3 ++- Environment/UniformMagneticField.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Environment/IMagneticFieldModel.h b/Environment/IMagneticFieldModel.h index a2666ba26..c34f1878b 100644 --- a/Environment/IMagneticFieldModel.h +++ b/Environment/IMagneticFieldModel.h @@ -10,6 +10,7 @@ #pragma once #include <corsika/geometry/Point.h> +#include <corsika/geometry/Vector.h> #include <corsika/units/PhysicalUnits.h> namespace corsika::environment { @@ -25,7 +26,7 @@ namespace corsika::environment { // a type-alias for a magnetic field vector using MagneticFieldVector = - corsika::geometry::QuantityVector<corsika::units::si::magnetic_flux_density_d>; + corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d>; public: /** diff --git a/Environment/UniformMagneticField.h b/Environment/UniformMagneticField.h index 31f2a1b94..e75c0420d 100644 --- a/Environment/UniformMagneticField.h +++ b/Environment/UniformMagneticField.h @@ -25,7 +25,7 @@ namespace corsika::environment { // a type-alias for a magnetic field vector using MagneticFieldVector = - corsika::geometry::QuantityVector<corsika::units::si::magnetic_flux_density_d>; + corsika::geometry::Vector<corsika::units::si::magnetic_flux_density_d>; MagneticFieldVector B_; ///< The constant magnetic field we use. -- GitLab From 5244de541d1cb6959bdf6932e6126af8ccbdddce Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@kit.edu> Date: Tue, 14 Jul 2020 13:18:18 +0200 Subject: [PATCH 2/2] update testEnvironment --- Environment/testEnvironment.cc | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/Environment/testEnvironment.cc b/Environment/testEnvironment.cc index ed2bf9a1a..8e59c7197 100644 --- a/Environment/testEnvironment.cc +++ b/Environment/testEnvironment.cc @@ -245,7 +245,7 @@ TEST_CASE("UniformMagneticField w/ Homogeneous Medium") { std::vector<float>{1.f}); // create a magnetic field vector - QuantityVector B0(0_T, 0_T, 0_T); + Vector B0(gCS, 0_T, 0_T, 0_T); // the constant density const auto density{19.2_g / cube(1_cm)}; @@ -254,20 +254,28 @@ TEST_CASE("UniformMagneticField w/ Homogeneous Medium") { AtmModel medium(B0, density, protonComposition); // and test at several locations - REQUIRE(B0 == medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km))); - REQUIRE(B0 == medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km))); - REQUIRE(B0 == medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m))); + REQUIRE(B0.GetComponents(gCS) == + medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km)).GetComponents(gCS)); + REQUIRE( + B0.GetComponents(gCS) == + medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km)).GetComponents(gCS)); + REQUIRE(B0.GetComponents(gCS) == + medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m)).GetComponents(gCS)); // create a new magnetic field vector - QuantityVector B1(23_T, 57_T, -4_T); + Vector B1(gCS, 23_T, 57_T, -4_T); // and update this atmospheric model medium.SetMagneticField(B1); // and test at several locations - REQUIRE(B1 == medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km))); - REQUIRE(B1 == medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km))); - REQUIRE(B1 == medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m))); + REQUIRE(B1.GetComponents(gCS) == + medium.GetMagneticField(Point(gCS, -10_m, 4_m, 35_km)).GetComponents(gCS)); + REQUIRE( + B1.GetComponents(gCS) == + medium.GetMagneticField(Point(gCS, 1000_km, -1000_km, 1000_km)).GetComponents(gCS)); + REQUIRE(B1.GetComponents(gCS) == + medium.GetMagneticField(Point(gCS, 0_m, 0_m, 0_m)).GetComponents(gCS)); // check the density and nuclear composition REQUIRE(density == medium.GetMassDensity(Point(gCS, 0_m, 0_m, 0_m))); -- GitLab