1. 27 Apr, 2012 1 commit
  2. 26 Apr, 2012 2 commits
  3. 20 Apr, 2012 2 commits
    • Matthias Toggweiler's avatar
      Speed up gap crossing check more: · b2719636
      Matthias Toggweiler authored
          - Prepare list of cavities to check against OUTSIDE particle loop
          - Integration timer reduced by 15 % wrt previous revision
      b2719636
    • Matthias Toggweiler's avatar
      Speed up gap crossing check in OPAL-CYCL with trivial changes: · bd41d12d
      Matthias Toggweiler authored
          - Inlined ParallelCyclotronTracker::checkGapCross into ::push
          - Convert perpendistance from mm to m, do calculations in m
          - Only compute distOld when necessary, stop if is already clear that
            no cross occurs
          - Integration timer for firstTurn.in example is more than 15 % smaller
            (LF and MTS profit from that, not yet RK4 because RK4 uses old function)
      bd41d12d
  4. 17 Apr, 2012 5 commits
    • adelmann's avatar
      In OPAL several different TRACK's can performed within one simulation (does... · 06df9215
      adelmann authored
      In OPAL several different TRACK's can performed within one simulation (does not hold for OPAL-cycl yet) this together with 
      the restart capabilities calls for a delicate logic.
      
      Different tracks, looks like: 
      
      .....
      
      TRACK, LINE= Injector, BEAM=beam1, MAXSTEPS=100, DT=1.0e-12, ZSTOP=0.14;  
       RUN, METHOD = "PARALLEL-T", BEAM = beam1, FIELDSOLVER = Fs1, DISTRIBUTION = Dist1;
      ENDTRACK;
      
      TRACK,LINE= Injector, BEAM=beam1, MAXSTEPS=50, DT=1.0e-11, ZSTOP=0.20;
       RUN, METHOD = "PARALLEL-T", BEAM=beam1, FIELDSOLVER=Fs1;
      ENDTRACK;
      STOP;
      
      A run with the arguments -restart -1 will continue a track from the last dump in the h5 file. Other the from the last track will
      at the moment certainly fail in the general case. 
      
      Changes: 
      
      - The h5 attribute TrackStep is not longer available anymore. Two new attributes: LocalTrackStep and GlobalTrackStep are introduced instead.
      
      - LocalTrackStep refers to the track step in a track command (0 ... 99 and 0... 49 in teh above example), where the GlobalTrackStep is the 
      accumulated number of steps i.e. 0 ... 149, shown in OPAL's screen output. Both local and global track steps are also written into the h5 file 
      in order to properly restart the simulation.
      
      - The PartBunch object has get/set and increment functions:
      
          inline void setGlobalTrackStep(long long n) {globalTrackStep_m = n;}
          inline long long getGlobalTrackStep() const {return globalTrackStep_m;}
      
          inline void setLocalTrackStep(long long n) {localTrackStep_m = n;}
          inline long long getLocalTrackStep() const {return localTrackStep_m;}
          inline void incLocalTrackStep() {localTrackStep_m++; globalTrackStep_m++;)
      
              
      - In OPAL-cyc getTrackStep is replace by getLocalTrackStep assuming we only have one TRACK in the simulation.
      
      - In the ParallelTTracker at the end of the main loop (in execute()) obsolet code is removed (cleanup monitors etc.)
        
      For details see the diff :-)
      
      Still some work todo: 
      
      a) Need to remove: setLastStep in ParallelTTracker.cpp and in general
      
          getInstance()->getLastStep()
          getInstance()->getRestartStep() maybe not!
      
      b) The get/set and increment functions could very well be in an other class!
      
      c) ParallelPlate tests are broken but maybe also because of other changes need to fix this 
         together with Chuang and Achim
      
      d) Make sure the restart works in OPAL-cycl we do not have yet a regression test for that.
      
      06df9215
    • Matthias Toggweiler's avatar
      Cleanup for CYCL · 7af55a0b
      Matthias Toggweiler authored
          - simplify checkNumPart
          - clean up function initDistInGlobalFrame
                - correct indentation
                - move AUTO mode stuff down where meanR is calculated already
          - referenceR is not used in Tracker_MTS body, so remove it
      7af55a0b
    • Matthias Toggweiler's avatar
      Deal with plugin elements in every substep of MTS tracking · 6d4e0374
      Matthias Toggweiler authored
          - Needed to add member variables turnnumber_m, eta_m
      6d4e0374
    • Jianjun Yang's avatar
      fix re-defining of flagNeedUpdate · 4c9326af
      Jianjun Yang authored
      4c9326af
    • Jianjun Yang's avatar
      d5a52cbb
  5. 16 Apr, 2012 2 commits
  6. 15 Apr, 2012 1 commit
  7. 13 Apr, 2012 2 commits
  8. 11 Apr, 2012 1 commit
  9. 10 Apr, 2012 1 commit
    • Matthias Toggweiler's avatar
      Changed MTS variant for OPAL-CYCL · 7f504ec2
      Matthias Toggweiler authored
          - Different splitting allows any positive integer for MTSSUBSTEPS option
          - Requires still one space charge solve per step, but one additional
            solve before main loop. Therefore, extract code to function
            evaluateSpaceCharge
          - TODO: correct location of bunch injection code?
      7f504ec2
  10. 07 Apr, 2012 1 commit
  11. 29 Mar, 2012 1 commit
  12. 28 Mar, 2012 1 commit
  13. 27 Mar, 2012 1 commit
  14. 26 Mar, 2012 2 commits
  15. 23 Mar, 2012 3 commits
  16. 22 Mar, 2012 2 commits
    • kraus's avatar
      Merge branch 'develop' into svn: removing intel compiler warnings · 50e28d82
      kraus authored
      - remove virtual functions from Component class which are specific for the Cyclotron class, then, in ParallelCyclotronTracker, cast pointers to instances of Component appropriately
      - remove unrecognised escape character
      50e28d82
    • Matthias Toggweiler's avatar
      Multiple time stepping (MTS) integrator for CYCLOTRON-T · 6f40a6de
      Matthias Toggweiler authored
          - Additional method ParallelCyclotronTracker::Tracker_MTS
          - If successfully tested, it should replace Tracker_LF
          - Detailed description and sample input file will follow
          - Brief usage guide:
              - Use 'TIMEINTEGRATOR="MTS"' instead of 'TIMEINTEGRATOR="LF-2"'
              - The outer, large step is for integration of space charge, the substeps
                for everything else.
              - Define number of substeps per step with 'Option, MTSSUBSTEPS=10;'.
                This must be an even number >= 2.
              - The input file has to be rewritten in units of the large step, so
                divide STEPSPERTURN, PSDUMPFREQ (and others) by MTSSUBSTEPS to
                maintain similar behaviour.
              - MTSSUBSTEPS and SCSOLVEFREQ both describe the frequency of space
                charge solves compared to the basic step. However, MTSSUBSTEPS
                can be chosen larger while maintaining accuracy. Try it :-)
      6f40a6de
  17. 15 Mar, 2012 1 commit