From d7a05a5f2f77a6a16763e79ce39ada5b4eebe830 Mon Sep 17 00:00:00 2001 From: ralfulrich <ralf.ulrich@kit.edu> Date: Tue, 1 Jun 2021 09:07:59 +0200 Subject: [PATCH] another attempt to make cuved leap frog tracking more robust --- .../detail/modules/tracking/TrackingLeapFrogCurved.inl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/corsika/detail/modules/tracking/TrackingLeapFrogCurved.inl b/corsika/detail/modules/tracking/TrackingLeapFrogCurved.inl index 009be7c63..4542f2e56 100644 --- a/corsika/detail/modules/tracking/TrackingLeapFrogCurved.inl +++ b/corsika/detail/modules/tracking/TrackingLeapFrogCurved.inl @@ -106,7 +106,15 @@ namespace corsika { LengthType const gyroradius = convert_HEP_to_SI<MassType::dimension_type>(p_perp) * constants::c / (abs(charge) * magnitudeB); - double const maxRadians = 0.01; // maximal allowed deflection + if (gyroradius > 1e9_m) { + CORSIKA_LOG_WARN( + "CurvedLeapFrog is not very stable for extremely high gyroradius steps. " + "Rg={} -> straight tracking.", + gyroradius); + return getLinearTrajectory(particle); + } + + double const maxRadians = 0.01; LengthType const steplimit = 2 * cos(maxRadians) * sin(maxRadians) * gyroradius; TimeType const steplimit_time = steplimit / initialVelocity.getNorm(); CORSIKA_LOG_DEBUG("gyroradius {}, steplimit: {} = {}", gyroradius, steplimit, -- GitLab