Skip to content
Snippets Groups Projects

Development of new vector integration method

Merged John Apostolakis requested to merge japost/RollingIntegrationDriver into master
3 unresolved threads

New class RollingIntegration Driver keeps 'work' going in lanes.

New Dormand Prince stepper for vector and scalar work.

First benchmarks show vector improvement of 11-14% when using vector integration over non-basketised mode. ( All other baskets / vectors turned off.)

Merge request reports

Pipeline #933694 passed

Pipeline passed for 58343b3a on japost/RollingIntegrationDriver

Approval is optional

Merged by Andrei GheataAndrei Gheata 6 years ago (Jun 21, 2019 4:19pm UTC)

Merge details

  • Changes merged into master with 58343b3a.
  • Deleted the source branch.

Pipeline #933738 passed

Pipeline passed for 58343b3a on master

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
836 838 GEANT_FORCE_INLINE
837 839 void SetDirection(double dx, double dy, double dz)
838 840 {
841 assert ( dx != 0.0 || dz != 0.0 || dz != 0.0 );
  • 1055 1059 GEANT_FORCE_INLINE
    1056 void UpdateVolume() { fVolume = fPath->Top()->GetLogicalVolume(); }
    1060 void UpdateVolume() {
    1061 auto top= fPath->Top();
    1062 // const vecgeom::LogicalVolume* vol = nullptr;
    1063 // if( top ) vol = top->GetLogicalVolume();
    1064 auto * vol = ( top ) ? top->GetLogicalVolume(): nullptr;
    1065 fVolume = vol;
    1066 }
    1057 1067
    1058 1068 /** @brief Function to normalize direction */
    1059 1069 VECCORE_ATT_HOST_DEVICE
    1060 1070 GEANT_FORCE_INLINE
    1061 1071 void Normalize()
    1062 1072 {
    1063 double norm = 1. / Math::Sqrt(fXdir * fXdir + fYdir * fYdir + fZdir * fZdir);
    • Why adding tiny? If the direction is null, the normalization will fail anyway. Here it makes sense an assert rather than a FPE protection.

    • I agree that an assertion makes a lot of sense here. I will add one.

      But if there is no check then the value become NaN. The idea of adding kTiny is that the direction is still non-sense (0., 0., 0.) but one that can be more easily noticed and 'handled'.

    • Please register or sign in to reply
  • 14 14 --gun-set-primary-per-event 16 "# number of primary particles per event"\
    15 15 "### --gun-set-primary-direction x=0.1,y=0.9,z=0.1" "# primary particle direction(will be normalized)"\
    16 16 "### field configuration parameters: (not activated)"\
    17 --field-active 1 "# activate field"\
  • Andrei Gheata
  • John Apostolakis added 2 commits

    added 2 commits

    • 65644a7e - ErrorEstimatorSixVec: pass const Real_v arguments as references
    • 9ab4a62f - Changed arguments to const Real_v & , ie. references

    Compare with previous version

  • :negative_squared_cross_mark: Jenkins Build FAILURE

    Results available at: Jenkins [GeantV-gitlab #711]

  • I am having a hard time figuring out where to see the results.

  • 2 options.

    Either click on the 'red cross' on the right which brings down a menu with a red cross and the word 'jenkins', click on jenkins and then follow a few more (hopefully obvious) links.

    or click on the 'red cross' on the left which brings a new page, on that new page there is another red cross and the words jenkins, click on it and then follow a few more (hopefully obvious) links.

  • added 1 commit

    • 7bd6c812 - Fixes for compilation issues (warnings) and small cleanup

    Compare with previous version

  • :negative_squared_cross_mark: Jenkins Build FAILURE

    Results available at: Jenkins [GeantV-gitlab #712]

  • John Apostolakis added 2 commits

    added 2 commits

    • 2da754a8 - testVectorIntegrationDriver: take out include of deleted OldIntegrationDriver
    • 624c105e - Fixed issues with atomic. Kept its use for statistics-only runs.

    Compare with previous version

  • Found the location of errors from Jenkins log. Fixed missing include of ( Also hidden the relevant code under Statistics flag to avoid multi-threaded slowdown. Statistics flag 'DRIVER_PRINT_STATISTICS' currently prints out data per call to AccurateAdvance, and is not meant for 'performance' runs. )

  • :negative_squared_cross_mark: Jenkins Build FAILURE

    Results available at: Jenkins [GeantV-gitlab #713]

  • added 1 commit

    • 8eca4e3e - Fixes for compilation on gcc

    Compare with previous version

  • :negative_squared_cross_mark: Jenkins Build FAILURE

    Results available at: Jenkins [GeantV-gitlab #714]

  • John Apostolakis added 3 commits

    added 3 commits

    • 2d08d794 - Fix: added missing source file for mag field test.
    • 4ebc7ce3 - Fixes for unused variables
    • 58343b3a - Track: added assert in Normalize() to detect zero direction.

    Compare with previous version

  • :white_check_mark: Jenkins Build SUCCESS

    Results available at: Jenkins [GeantV-gitlab #715]

  • merged

  • Please register or sign in to reply
    Loading