OPAL issueshttps://gitlab.psi.ch/groups/OPAL/-/issues2021-06-10T18:03:26+02:00https://gitlab.psi.ch/OPAL/src/-/issues/165opt-pilot: objectives based on design variables2021-06-10T18:03:26+02:00snuverink_jjochem.snuverink@psi.chopt-pilot: objectives based on design variablesas mentioned in https://gitlab.psi.ch/OPAL/src/issues/8#note_3112 writing objectives like (where d1 and d2 are design variables):
```
//obj1:OBJECTIVE,EXPR="fabs(d1+d2)";
```
seem not to work (not sure if it ever did). Since the optimi...as mentioned in https://gitlab.psi.ch/OPAL/src/issues/8#note_3112 writing objectives like (where d1 and d2 are design variables):
```
//obj1:OBJECTIVE,EXPR="fabs(d1+d2)";
```
seem not to work (not sure if it ever did). Since the optimiser still tries to look in the output file:
```
Exception while getting value from SDDS file: unkown column name!
```
Still such an objective could potentially be useful.
I might have a look at this eventually, or if there is a direct need for it. Right now putting a low weight on it.snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/250Store stat files of Sampler (and Optimizer?) in a single file2021-06-10T17:58:47+02:00krausStore stat files of Sampler (and Optimizer?) in a single fileThe stat files should be stored into a single file such that all data from all runs can be evaluated in post processing. The data should be supplemented with the values of the design variables. File formats that come into considerations ...The stat files should be stored into a single file such that all data from all runs can be evaluated in post processing. The data should be supplemented with the values of the design variables. File formats that come into considerations are HDF5, SDDS, a NoSQL database, zip/tar gunzip etc.krausadelmanngsellkraushttps://gitlab.psi.ch/OPAL/src/-/issues/261Reintroduce methods to compute Schottky effect2021-06-10T17:58:09+02:00krausReintroduce methods to compute Schottky effectThis was once introduced by Zha into Opal but couldn't be maintained. It was therefore removed from the code.This was once introduced by Zha into Opal but couldn't be maintained. It was therefore removed from the code.https://gitlab.psi.ch/OPAL/src/-/issues/270Flexible Energy Bins2021-06-10T17:57:44+02:00krausFlexible Energy BinsCurrently the user has to define how many energy bins are used. They are then used for `MINSTEPFORREBIN` steps whether this is necessary or not (or sufficient). Instead the number of bins should be controlled by the difference in gamma. ...Currently the user has to define how many energy bins are used. They are then used for `MINSTEPFORREBIN` steps whether this is necessary or not (or sufficient). Instead the number of bins should be controlled by the difference in gamma. If all particles have the same gamma then only one energy bin should be used. On contrary if the energy spread is big many bins should be used.krauskraushttps://gitlab.psi.ch/OPAL/src/-/issues/279Trimcoil: PHIMIN and PHIMAX as arrays2021-06-10T17:57:30+02:00frey_mTrimcoil: PHIMIN and PHIMAX as arraysIn order to have one instance of a trim coil instead of multiple instances it is better having the arguments PHIMIN and PHIMAX as arrays. Otherwise one needs to specify the same trim coil n-times for n-sectors.In order to have one instance of a trim coil instead of multiple instances it is better having the arguments PHIMIN and PHIMAX as arrays. Otherwise one needs to specify the same trim coil n-times for n-sectors.snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/287Reference Particle Class for all Trackers2021-06-10T17:56:59+02:00snuverink_jjochem.snuverink@psi.chReference Particle Class for all TrackersThe cyclotron tracker has no good reference particle treatment. In addition, it would be nice to adapt the reference particle treatment of the t-tracker into a separate class. This can be used for all trackers.The cyclotron tracker has no good reference particle treatment. In addition, it would be nice to adapt the reference particle treatment of the t-tracker into a separate class. This can be used for all trackers.snuverink_jjochem.snuverink@psi.chkraussnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/297Suggestion for improvements to the Optimiser2021-06-10T17:56:24+02:00snuverink_jjochem.snuverink@psi.chSuggestion for improvements to the OptimiserSome suggestions and observations to improve usability of the optimiser by Michael Abo-Bakr (as far as not already covered in other issues):
* [ ] For 1 or 2 optimisation parameters there is no hypervolume calculation.
* [ ] It would be...Some suggestions and observations to improve usability of the optimiser by Michael Abo-Bakr (as far as not already covered in other issues):
* [ ] For 1 or 2 optimisation parameters there is no hypervolume calculation.
* [ ] It would be very nice to get at the end a final best solution in the output (defined with some cost function)
* [ ] .json format is not always ideal for reading or writing new generation files (as starting condition)
* [ ] Not all individuals appear to be really new.
* [ ] Option to adaptively change optimisation parameters (mutation, crossover etc.)snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/354Add Analytic model of a transverse deflecting cavity (TCAV)2021-06-10T17:54:19+02:00adelmannAdd Analytic model of a transverse deflecting cavity (TCAV)adelmannkrausext-neveu_nadelmannhttps://gitlab.psi.ch/OPAL/src/-/issues/555Move Distribution attribute from the TrackRun command to the Beam command.2021-06-10T17:47:27+02:00krausMove Distribution attribute from the TrackRun command to the Beam command.It seems more logic to have them together since the distribution describes the beam of particles.It seems more logic to have them together since the distribution describes the beam of particles.https://gitlab.psi.ch/OPAL/src/-/issues/608Use library to parse the command line arguments2021-06-10T17:40:49+02:00krausUse library to parse the command line argumentsCurrently the command line arguments are parsed with manually written `if ... else if ... `. Additionally the arguments are parsed in different locations. Instead we should use a library such as Boost Program_options.Currently the command line arguments are parsed with manually written `if ... else if ... `. Additionally the arguments are parsed in different locations. Instead we should use a library such as Boost Program_options.https://gitlab.psi.ch/OPAL/src/-/issues/619review and cleanup IPPL FieldLayout classes2021-06-10T17:34:40+02:00gsellreview and cleanup IPPL FieldLayout classesOnly layout constructors using NDIndex are used in OPAL. The layout constructors using 1 to 6 arguments of type index are not used and can be removedOnly layout constructors using NDIndex are used in OPAL. The layout constructors using 1 to 6 arguments of type index are not used and can be removedgsellgsellhttps://gitlab.psi.ch/OPAL/src/-/issues/623Unify styles of separator lines2021-06-10T17:29:34+02:00krausUnify styles of separator linesCurrently `-`, `=` and `*` are used to draw separator lines in the output and also the length of these lines vary. Do the different styles have different meanings or could they be unified both in the character and length?Currently `-`, `=` and `*` are used to draw separator lines in the output and also the length of these lines vary. Do the different styles have different meanings or could they be unified both in the character and length?https://gitlab.psi.ch/OPAL/src/-/issues/629Use separate classes for different distribution types2021-06-10T17:27:41+02:00krausUse separate classes for different distribution types![Distributions.svg](/uploads/bb44bdfd74954e672c75c1187c2de554/Distributions.svg)
- Use separate classes for each type for parsing and for the actual generation of a distribution.
- Move the `DISTRIBUTION` attribute from the `TRACKRUN` ...![Distributions.svg](/uploads/bb44bdfd74954e672c75c1187c2de554/Distributions.svg)
- Use separate classes for each type for parsing and for the actual generation of a distribution.
- Move the `DISTRIBUTION` attribute from the `TRACKRUN` command to `BEAM` command.krauskraushttps://gitlab.psi.ch/OPAL/src/-/issues/146Rewrite the ArbitraryDomain class.2021-06-09T18:40:56+02:00krausRewrite the ArbitraryDomain class.Currently the ArbitraryDomain class only works when it is partitioned in z-direction. Rewrite it such that the global linear indexing works also with PARFFTX=TRUE and/or PARFFTY=TRUE.Currently the ArbitraryDomain class only works when it is partitioned in z-direction. Rewrite it such that the global linear indexing works also with PARFFTX=TRUE and/or PARFFTY=TRUE.winklehner_dfrey_mwinklehner_dhttps://gitlab.psi.ch/OPAL/src/-/issues/651Printing info of DumpFields and DumpEMFields2021-05-11T10:45:39+02:00ext-calvo_ppedro.calvo@ciemat.esPrinting info of DumpFields and DumpEMFieldsDumpFields and DumpEMFields statements must print information about their attributes to stdout.DumpFields and DumpEMFields statements must print information about their attributes to stdout.OPAL 2021.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.eshttps://gitlab.psi.ch/OPAL/src/-/issues/647Add option to write VTK file2021-04-23T11:25:53+02:00ext-calvo_ppedro.calvo@ciemat.esAdd option to write VTK fileWriting the VTK file of the voxel mesh increases the time consumption. To speed up boundary geometry initialization I propose to add an option to disable VTK files. In addition, as @gsell suggested, VTK files should only be written if th...Writing the VTK file of the voxel mesh increases the time consumption. To speed up boundary geometry initialization I propose to add an option to disable VTK files. In addition, as @gsell suggested, VTK files should only be written if they do not exist or are older than the geometry file.OPAL 2021.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.eshttps://gitlab.psi.ch/OPAL/src/-/issues/634Reviewing physics behind particle matter interaction models2021-04-23T11:25:39+02:00ext-calvo_ppedro.calvo@ciemat.esReviewing physics behind particle matter interaction models- Extend the energy loss calculation and beam scattering for other incoming heavy ions. It is currently only valid for protons
- Add energy loss at very low energy region (1-10 keV) (see ICRU Report 49)
- Document stopping power at Ander...- Extend the energy loss calculation and beam scattering for other incoming heavy ions. It is currently only valid for protons
- Add energy loss at very low energy region (1-10 keV) (see ICRU Report 49)
- Document stopping power at Anderson-Ziegler region
- Update atomic weight of materials according to [database 2019](https://www.qmul.ac.uk/sbcs/iupac/AtWt/) and other [material properties](https://pdg.lbl.gov/2020/AtomicNuclearProperties/)
- Add alpha particle beams
- Review energy threshold for stripper gas interactionsOPAL 2021.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.eshttps://gitlab.psi.ch/OPAL/src/-/issues/646Extend the list of symbolic constant2021-04-16T09:57:33+02:00ext-calvo_ppedro.calvo@ciemat.esExtend the list of symbolic constantThe physical constants recognized by OPAL must include all the particle masses defined in the `Beam` command. This prevents the user from defining a value for the mass that differs from the value considered internally by OPAL.
- [x] Def...The physical constants recognized by OPAL must include all the particle masses defined in the `Beam` command. This prevents the user from defining a value for the mass that differs from the value considered internally by OPAL.
- [x] Define masses as standard constants (see !487)
- [x] Update documentation (see OPAL/documentation/manual!124)OPAL 2021.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.eshttps://gitlab.psi.ch/OPAL/src/-/issues/632Delete particles that move in the opposite direction than the bunch.2021-04-05T20:09:26+02:00krausDelete particles that move in the opposite direction than the bunch.### Summary
When running some simulations a drastic increase in overall compute time is noticed. This seems to originate from the evaluation of external fields.
### Steps to reproduce
Run the same simulation with Opal 2.2 and 2.4 and...### Summary
When running some simulations a drastic increase in overall compute time is noticed. This seems to originate from the evaluation of external fields.
### Steps to reproduce
Run the same simulation with Opal 2.2 and 2.4 and compare the timings.
### What is the current *bug* behavior?
The time to evaluate the external fields has regressed from Opal 2.2.
### What is the expected *correct* behavior?
The evaluation of the external fields shouldn't take longer as in Opal 2.2
### Relevant logs and/or screenshots
Timing for Opal 2.4
```
Timings{0}> -----------------------------------------------------------------
Timings{0}> Timing results for 16 nodes:
Timings{0}> -----------------------------------------------------------------
Timings{0}> mainTimer........... Wall tot = 1333.67, CPU tot = 1304.62
Timings{0}>
Timings{0}> Binaryrepart........ Wall max = 0.0760612, CPU max = 0.12
Timings{0}> Wall avg = 0.0748878, CPU avg = 0.076875
Timings{0}> Wall min = 0.0710163, CPU min = 0.04
Timings{0}>
Timings{0}> Boundingbox......... Wall max = 21.1333, CPU max = 21.51
Timings{0}> Wall avg = 20.492, CPU avg = 20.3581
Timings{0}> Wall min = 19.5912, CPU min = 18.98
Timings{0}>
Timings{0}> Boundingbox-bounds.. Wall max = 3.31469, CPU max = 3.25
Timings{0}> Wall avg = 2.33188, CPU avg = 2.32125
Timings{0}> Wall min = 1.45284, CPU min = 1.43
Timings{0}>
Timings{0}> Boundingbox-update.. Wall max = 12.3236, CPU max = 12.66
Timings{0}> Wall avg = 12.2843, CPU avg = 12.1619
Timings{0}> Wall min = 12.2186, CPU min = 11.72
Timings{0}>
Timings{0}> Compute Statistics.. Wall max = 24.9249, CPU max = 25.18
Timings{0}> Wall avg = 23.5228, CPU avg = 23.6244
Timings{0}> Wall min = 21.6156, CPU min = 21.35
Timings{0}>
Timings{0}> ComputePotential.... Wall max = 212.61, CPU max = 213.74
Timings{0}> Wall avg = 211.029, CPU avg = 210.689
Timings{0}> Wall min = 207.543, CPU min = 207.01
Timings{0}>
Timings{0}> Create Distr........ Wall max = 0.0197351, CPU max = 0.03
Timings{0}> Wall avg = 0.0186866, CPU avg = 0.020625
Timings{0}> Wall min = 0.0185006, CPU min = 0.01
Timings{0}>
Timings{0}> External field eval. Wall max = 711.153, CPU max = 711.74
Timings{0}> Wall avg = 361.201, CPU avg = 361.191
Timings{0}> Wall min = 2.25931, CPU min = 2.35
Timings{0}>
Timings{0}> Fast inside test.... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Histogram........... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Initialize geometry. Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Inside test......... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Load Distr.......... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Particle Inside..... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Ray tracing......... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> SelfField total..... Wall max = 380.273, CPU max = 380.01
Timings{0}> Wall avg = 344.384, CPU avg = 344.401
Timings{0}> Wall min = 317.067, CPU min = 318.26
Timings{0}>
Timings{0}> SF: GreensFTotal.... Wall max = 134.448, CPU max = 134.95
Timings{0}> Wall avg = 133.307, CPU avg = 132.716
Timings{0}> Wall min = 131.767, CPU min = 130.46
Timings{0}>
Timings{0}> TIntegration1....... Wall max = 20.5137, CPU max = 20.53
Timings{0}> Wall avg = 19.1446, CPU avg = 19.1488
Timings{0}> Wall min = 17.3008, CPU min = 17.47
Timings{0}>
Timings{0}> TIntegration2....... Wall max = 38.3021, CPU max = 38.52
Timings{0}> Wall avg = 36.8959, CPU avg = 36.8775
Timings{0}> Wall min = 35.997, CPU min = 35.53
Timings{0}>
Timings{0}> WakeField........... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Write H5-File....... Wall max = 49.9556, CPU max = 21.73
Timings{0}> Wall avg = 49.9353, CPU avg = 20.2519
Timings{0}> Wall min = 49.8026, CPU min = 17.74
Timings{0}>
Timings{0}> Write Stat.......... Wall max = 9.01406, CPU max = 2.07
Timings{0}> Wall avg = 0.833675, CPU avg = 0.405
Timings{0}> Wall min = 0.281822, CPU min = 0.22
Timings{0}>
Timings{0}> -----------------------------------------------------------------
```
Timing for Opal 2.2 and the same input file
```
Timings{0}> -----------------------------------------------------------------
Timings{0}> Timing results for 16 nodes:
Timings{0}> -----------------------------------------------------------------
Timings{0}> mainTimer........... Wall tot = 698.587, CPU tot = 672.33
Timings{0}>
Timings{0}> Binaryrepart........ Wall max = 0.0804251, CPU max = 0.13
Timings{0}> Wall avg = 0.0792938, CPU avg = 0.078125
Timings{0}> Wall min = 0.0762691, CPU min = 0.04
Timings{0}>
Timings{0}> Boundingbox......... Wall max = 21.9074, CPU max = 22.05
Timings{0}> Wall avg = 21.2645, CPU avg = 21.2381
Timings{0}> Wall min = 20.2972, CPU min = 19.86
Timings{0}>
Timings{0}> Boundingbox-bounds.. Wall max = 3.23519, CPU max = 3.3
Timings{0}> Wall avg = 2.29564, CPU avg = 2.33812
Timings{0}> Wall min = 1.43132, CPU min = 1.19
Timings{0}>
Timings{0}> Boundingbox-update.. Wall max = 13.0062, CPU max = 13.74
Timings{0}> Wall avg = 12.9693, CPU avg = 12.9756
Timings{0}> Wall min = 12.8177, CPU min = 12.44
Timings{0}>
Timings{0}> Compute Statistics.. Wall max = 26.1269, CPU max = 26.62
Timings{0}> Wall avg = 24.6571, CPU avg = 24.815
Timings{0}> Wall min = 22.6815, CPU min = 22.65
Timings{0}>
Timings{0}> ComputePotential.... Wall max = 221.744, CPU max = 222.57
Timings{0}> Wall avg = 219.925, CPU avg = 219.121
Timings{0}> Wall min = 215.744, CPU min = 214.95
Timings{0}>
Timings{0}> Create Distr........ Wall max = 0.0196037, CPU max = 0.03
Timings{0}> Wall avg = 0.01854, CPU avg = 0.019375
Timings{0}> Wall min = 0.0183704, CPU min = 0.01
Timings{0}>
Timings{0}> External field eval. Wall max = 83.0337, CPU max = 83.09
Timings{0}> Wall avg = 37.3202, CPU avg = 37.67
Timings{0}> Wall min = 2.13352, CPU min = 2.24
Timings{0}>
Timings{0}> Fast inside test.... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Histogram........... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Initialize geometry. Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Inside test......... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Load Distr.......... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Particle Inside..... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Ray tracing......... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Secondary emission.. Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> SelfField total..... Wall max = 398.178, CPU max = 399.5
Timings{0}> Wall avg = 359.377, CPU avg = 358.998
Timings{0}> Wall min = 330.56, CPU min = 330.17
Timings{0}>
Timings{0}> SF: GreensFTotal.... Wall max = 140.186, CPU max = 141.31
Timings{0}> Wall avg = 139.146, CPU avg = 138.486
Timings{0}> Wall min = 137.841, CPU min = 135.62
Timings{0}>
Timings{0}> TIntegration1....... Wall max = 21.4125, CPU max = 21.77
Timings{0}> Wall avg = 20.1085, CPU avg = 19.935
Timings{0}> Wall min = 18.3236, CPU min = 18.12
Timings{0}>
Timings{0}> TIntegration2....... Wall max = 40.1375, CPU max = 40.82
Timings{0}> Wall avg = 38.7925, CPU avg = 38.8013
Timings{0}> Wall min = 37.9342, CPU min = 37.21
Timings{0}>
Timings{0}> WakeField........... Wall max = 0, CPU max = 0
Timings{0}> Wall avg = 0, CPU avg = 0
Timings{0}> Wall min = 0, CPU min = 0
Timings{0}>
Timings{0}> Write H5-File....... Wall max = 47.1853, CPU max = 21.09
Timings{0}> Wall avg = 47.1643, CPU avg = 18.93
Timings{0}> Wall min = 47.0338, CPU min = 15.95
Timings{0}>
Timings{0}> Write Stat.......... Wall max = 9.99641, CPU max = 3.93
Timings{0}> Wall avg = 2.74196, CPU avg = 2.36437
Timings{0}> Wall min = 2.17362, CPU min = 2.09
Timings{0}>
Timings{0}> -----------------------------------------------------------------
```OPAL 2021.1krauskraushttps://gitlab.psi.ch/OPAL/src/-/issues/640Update time unit in loss output file of some elements2021-03-24T09:09:01+01:00ext-calvo_ppedro.calvo@ciemat.esUpdate time unit in loss output file of some elementsFrom a [discussion](https://gitlab.psi.ch/OPAL/src/-/merge_requests/477#note_30392) on MR !477, and in agreement with #357, the unit of time should be unified to `s` in some elements to avoid inconsistencies in the `LossDataSink` output ...From a [discussion](https://gitlab.psi.ch/OPAL/src/-/merge_requests/477#note_30392) on MR !477, and in agreement with #357, the unit of time should be unified to `s` in some elements to avoid inconsistencies in the `LossDataSink` output file.OPAL 2021.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.es