1. 25 Sep, 2019 1 commit
  2. 24 Sep, 2019 1 commit
  3. 21 Sep, 2019 1 commit
  4. 17 Sep, 2019 2 commits
  5. 27 Aug, 2019 4 commits
  6. 26 Aug, 2019 1 commit
  7. 23 Aug, 2019 1 commit
  8. 11 Jul, 2019 1 commit
  9. 09 Jul, 2019 1 commit
  10. 07 Jul, 2019 1 commit
  11. 05 Jul, 2019 1 commit
  12. 03 Jul, 2019 3 commits
  13. 02 Jul, 2019 1 commit
  14. 28 Jun, 2019 1 commit
  15. 26 Jun, 2019 2 commits
  16. 21 Jun, 2019 7 commits
  17. 20 Jun, 2019 11 commits
    • John Apostolakis's avatar
      Changed arguments to const Real_v & , ie. references · 9ab4a62f
      John Apostolakis authored
       in ErrorEstimatorSixVec and AuxMethods
    • John Apostolakis's avatar
    • John Apostolakis's avatar
      SimpleIntegrationDriver: Protect debug code; use constants kPowerGrow/Shrink · adfa459c
      John Apostolakis authored
      Count trials only when debugging with CHECK_ONE_LANE
       - addresses MT scaling issue
    • John Apostolakis's avatar
      Drivers: fixed for power to grow / shrink step. Force use of DoPri5. No debug prints. · 20f7d4c9
      John Apostolakis authored
      FieldPropagationFactory: Force use of Rolling driver + Dormand Prince stepper
        - Use Dormand Prince for Scalar driver (instead of Cash-Karp) - GUFieldPropagator
      Improve options in FullCMS. Revised checkes vector vs scalar.
        - disentangle names of optarg flags [GHIJ]
        - revised checks vector vs scalar.
      GUFieldPropagator: Fix construction of Scalar propagators
       - In construction of Scalar propagators - added new parameter Epsilon
      ScalarIntegrationDriver: check value of epsilon in constructor. It must be > 0.1
        - Suppressed printout - commenting out #define options
        - Option to print Statistics at end of call to AccurateAdvance (for now.)
        - Revised call to laneStats -> Use SumAndResetLane
      TrialStats: Fixed method to SumAndReset Lane. Added method to check invariants.
      Created new Scalar Dormand Prince stepper.
       - to ensure consistency between scalar and vector, and ease comparisons with Geant4.
      Removed 'charge' argument from Scalar Stepper's DistChord (virtual) method
       - it was only needed by Cash Karp; replaced by data member fCharge
      Added DoPri to StepperFactory
      Suppressed debug printing
      ScalarIntegrationDriver: Commented out debug prints.
      FieldPropagationHandler: fix print of step size. Suspended checks.
       - Suppressed checks and debug printing.  FieldPropagationHandler (+fix in print)
       - Print stepSize[itr] not *stepSize for all tracks.
       - Refined code for reporting differences when checking
       - Commented out compilation flag CHECK_VS_RK
      BaseRkIntegrationDriver: Use correct powers to grow & shrink step (were reversed.)
        - (Re)Fix 'blend' to use kPowerGrow for 'good' steps (not kPowerShrink)
        - Deleted unused member variable & cosmetics
      CMSFieldConstruction: Revised description in comment about choice of drivers or steppers.
      testVectorIntegrationDriver: Fix for CHECK_ONE_LANE off
      BaseRkIntegrationDriver & SimpleIntegrationDriver:
        - Make kPowerGrow and kPowerShrink compile time constants. (again)
      Renamed sOrderMethod to kOrderMethod in flex/vector and scalar steppers
    • John Apostolakis's avatar
      GUFieldPropagator: Make RollingIntegrationDriver default. · 576cdd13
      John Apostolakis authored
      testScalarIntegrationDriver: Fix call to integration driver
    • John Apostolakis's avatar
      Rolling & Scalar IntegrationDriver: count only 'good' steps towards step number limit · ba267073
      John Apostolakis authored
      RollingIntegrationDriver: count only 'good' steps towards step number limit
       - Co-works with changes in ScalarIntegrationDriver.
      ScalarIntegrationDriver: changed while exit condition re number of iterations
      - Co-works with change in RollingIntegrationDriver that counts 'good' steps only
      - Suppressed old code for very small steps. [ Cleaned up if( true ) & else .]
         That 'branch' was not used in order to be compatible with vector code.
      Agreement shown in test case 3 of testVectorIntegrationDriver
      Small changes in aux classes: BaseRkIntegrationDriver, TrialsStats, FormattedReporter
       - BaseRkIntegrationDriver:  number of components: int -> unsigned & check it
       - FormattedReporter: small refinement in ReportOneLane - use separate ostream, then send to cout
       - TrialStats: Added method PrintSummary.  Fixed names in some printouts.
    • John Apostolakis's avatar
      Changes in 'techical' classes and tests · 22f34966
      John Apostolakis authored
      TrialStats:  Simple extensions.
      Others:      Small changes
      ScalarIntegrationDriver: added message to constructors (prints MaxNoSteps). MaxStepBase=250
      testVectorIntegrationDriver: reset s in yInput; small change in comparison prints.
    • John Apostolakis's avatar
      RollingIntegrationDriver: use number of trial 'steps'. Fixed Store values in break-out · a1c7b671
      John Apostolakis authored
      - Added lane statistics (to ensure each one stays < max number of steps )
      - Fixed Set/Get MaxNoSteps - use BaseRkIntegrationDriver methods  ( suppressed local variable fMaxNoSteps )
      - Print Max No Steps in constructor (to document parameter of run)
      KeepStepping  ( RollingIntegrationDriver )
      - Use number of steps (in lane/track) as condition for ending integration
      - Fix to update hStep/errMax 'LastActive' before updating the value of 'Active'
      - Revised StoreGoodValues in 'break out' to include lanes which either progressed or were active
             (i.e. include active that did not progress.)
        Fixes storing of tracks that were active but nevery progressed (in this call.)
      AccurateAdvance ( of RollingIntegrationDriver )
      - Renamed 'isDoneLane' to 'laneUnemployed' ( = done or not containing work )
      - Revised condition of loop -- uses tracks' number of steps & adds 'shortcut' in case
          all lanes are 'unemployed'
    • John Apostolakis's avatar
      Use current value of momentum^2 for normalisation of error · 1dbedd30
      John Apostolakis authored
      Syncs with RollingIntegrationDriver.  ( Using initial value caused un-syncing.)
    • John Apostolakis's avatar
      RollingIntegrationDriver: Reduce 'early' exit; corrections to stored values · 05c1788c
      John Apostolakis authored
       RollingIntegrationDriver: Experimental changes to reduce 'early' exit when lanes did not receive work
        - Identify lanes without work => var  finishedBeforeStart
            Trial use to detect false 'someDone' signals
        - Code to switch off 'allFinish' mode  ( which is trigerred by var mustFinalAllStill )
            this ignores 'lastBatch' argument
            it is meant only for testing vs older versions.
        - Renamed errmaxSqFallThru to errmaxSqBreakOut (better description)
        - Created 'bool toContinue' for while condition - to store values before exit & for printing
        - investigate why jumping out from KeepStepping and coming back in gives different errors and/or step sizes
      RollingIntegrationDriver: corrections to storing values; revised to divide by current momentum^2
      Error Estimation ( Simple / Rolling / Scalar Integration Driver )
        * Use the current value of momentum-square for normalisation of error,
            not the one from the call to KeepStepping (Rolling ID) or OneGoodStep (Simple ID)
          ( Because that value varied between these two, and also vs Scalar. )
          ==> Alternative: store track's initial value of momentum-square (or better its inverse),
                           e.g. at start of AccurateAdvance, and use during the whole step.
          This improved the agreement between scalar and rolling substantially. ( Simple & scalar
             already agreed for the test cases. )
      RollingIntegrationDriver's  KeepStepping() method:
        Scoring of final values: Corrected ( created 'ver 7.1' )
        - it is (for now) separate for 'break' and fall-through cases
           * identify fall-through case
        - no longer use 'BreakOut' values for fall-through case (error)
        - store and use 'last active' values for 'hStep' and 'errmax_sq' - during loop
      ScalarIntegrationDriver: changed base for max number of steps from 250 to 2500, for better comparisons. (to change BACK?)
    • John Apostolakis's avatar
      RollingIntegrationDriver: corrected/changed storing of values in KeepStepping... · a2720197
      John Apostolakis authored
      RollingIntegrationDriver: corrected/changed storing of values in KeepStepping - 2 options under study
      a) Must store new values for y only if some (sub)step succeeded.  => use 'progressedLane' to keep track
      b) Seek to store last good step's values of 'hStep' and errmaxSq ('try 5')
      c) Store value last good value of errmaxSq
      d) New argument 'lastBatch' for KeepStepping and 'mode'/flag to ensure it finishes the work (or gets to maxIter?)
      Many new prints to check new conditions.
      Use new method ComputeStepLengthWithinLimits3 - it uses 'PowerIf' and returns stretchFactor.
      Open issues:
       1) KeepStepping: Ensure that values 'stored' are the most useful, and contain information to avoid step duplication.
          Q: Does it require additional state about last bad values ... ??   Or just expect to use hNext from StepStart ?
       2) Pass work to serial version when only one lane is working.
      Other / unrelated:
      - testVectorIntegrationDriver: revised default run parameters and changed print for number of calls.
      - SimpleIntegrationDriverWithMaxPrints: Change to use PowerSameIf..