src issueshttps://gitlab.psi.ch/OPAL/src/-/issues2023-12-20T13:35:05+01:00https://gitlab.psi.ch/OPAL/src/-/issues/793OutputPlane2023-12-20T13:35:05+01:00ext-rogers_cOutputPlaneFor some precision work it is important to have accurate readout of particle positions at a particular plane. In the presence of fields, PROBE function interpolation is not accurate enough.
As registered in Issue #22 it would be useful ...For some precision work it is important to have accurate readout of particle positions at a particular plane. In the presence of fields, PROBE function interpolation is not accurate enough.
As registered in Issue #22 it would be useful to have a probe that can be perpendicular to a reference trajectory (for e.g. calculating dispersions/etc).
To meet these requirements I have implemented a new _PluginElement_ called OutputPlane. Features:
- detects hits using a RK4 stepping routine, iteratively finding correct step size to find the intersection of tracks with the plane and registering a hit at the exact point
- position can be specified in 2D using PROBE-style placement or 3D with a centre and normal vector
- position can be specified to update to be aligned with the position/momentum vector when a particle with user-defined ID crosses the plane.
- rectangular or circular apertures can be specified (maximum distance from PROBE centre to register hits)ext-rogers_cext-rogers_chttps://gitlab.psi.ch/OPAL/src/-/issues/786Unused degrader attributes2023-10-10T16:03:08+02:00ext-calvo_ppedro.calvo@ciemat.esUnused degrader attributesThe attributes of the degrader (`XSIZE` and `YSIZE`) are currently unused. A function should be added to verify that the particles are inside the element employing these attributes according to the [description](http://amas.web.psi.ch/op...The attributes of the degrader (`XSIZE` and `YSIZE`) are currently unused. A function should be added to verify that the particles are inside the element employing these attributes according to the [description](http://amas.web.psi.ch/opal/Documentation/master/#sec.elements.degrader-opal-t).2023.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.eshttps://gitlab.psi.ch/OPAL/src/-/issues/765Momentum tolerance in Opal-t2023-10-05T17:49:18+02:00ext-calvo_ppedro.calvo@ciemat.esMomentum tolerance in Opal-tPart of #727
A new parameter `MOMENTUM_TOLERANCE` has recently been introduced to control fractional tolerance to deviations in the distribution compared to the reference data at initialisation. This parameter should be extended to be ...Part of #727
A new parameter `MOMENTUM_TOLERANCE` has recently been introduced to control fractional tolerance to deviations in the distribution compared to the reference data at initialisation. This parameter should be extended to be useful in Opal-t.2023.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.eshttps://gitlab.psi.ch/OPAL/src/-/issues/764RingDefinition - Beam rotation and Momentum Tolerance2023-05-16T12:15:30+02:00ext-rogers_cRingDefinition - Beam rotation and Momentum Tolerance### Summary
I would like to be able to introduce an arbitrary rotation to beams in RingDefinition, independent of the azimuthal angle at which the ring is injected. At the moment, transverse "kicks" are enabled by `BEAM_PRINIT` but this...### Summary
I would like to be able to introduce an arbitrary rotation to beams in RingDefinition, independent of the azimuthal angle at which the ring is injected. At the moment, transverse "kicks" are enabled by `BEAM_PRINIT` but this does not permit full rotation through 360 degrees.
My use case:
We decided at a recent meeting that for consistency with the ring layout on the ground in the ring we are designing, the ring should start at "12 o'clock" and proceed in a clockwise direction. OPAL-Cycl mode currently supports element placements in clockwise or anticlockwise direction but beam can only proceed in an anti-clockwise direction.2023.1ext-rogers_cext-rogers_chttps://gitlab.psi.ch/OPAL/src/-/issues/758Quality of life improvements to PyOpal2023-05-05T12:02:53+02:00ext-rogers_cQuality of life improvements to PyOpalFollowing on from #745
Couple of extra "usability" features:
* It should be possible to pass multiple arguments to a "setup" function for PyOpal objects
* If an argument is passed that is not recognised, PyOpal should throw an error. A...Following on from #745
Couple of extra "usability" features:
* It should be possible to pass multiple arguments to a "setup" function for PyOpal objects
* If an argument is passed that is not recognised, PyOpal should throw an error. At the moment PyOpal quietly ignores unrecognised arguments - technically, this is consistent with "normal" python but it is not very nice
* It should be possible to define something as a required argument; if it is undefined, and user tries to use the class in anger (e.g. call to get_field_value) then PyOpal should throw an error.
* It should be possible to make PyOpal run silently (i.e. suppress output) or send output to a file. Bonus points if we can send PyOpal output to sys.stdout!
* In PyOpal/PyCore/Globals.cpp there is a hard coded constant for --processes (3). This should be user defined.2023.1ext-rogers_cext-rogers_chttps://gitlab.psi.ch/OPAL/src/-/issues/745PyOPAL - FFA lattice2023-04-20T16:54:05+02:00ext-rogers_cPyOPAL - FFA lattice### Summary
Implement supporting code to model our current FFA lattice in PyOPAL. That means writing API for following elements:
- ScalingFFAMagnet and EndFieldModels
- DumpEMFields
- LocalCartesianOffset (other offsets?)
- Probe
- Mult...### Summary
Implement supporting code to model our current FFA lattice in PyOPAL. That means writing API for following elements:
- ScalingFFAMagnet and EndFieldModels
- DumpEMFields
- LocalCartesianOffset (other offsets?)
- Probe
- MultipoleT
- VariableRFCavity and TimeDependence plugin
- General consideration of stability/etc
Maybe some other things I forgot.
Also (of course)
- Code
- Test
I will do Documentation in a separate feature when I am more happy with the whole framework.2023.1ext-rogers_cext-rogers_chttps://gitlab.psi.ch/OPAL/src/-/issues/737P3M solver2022-09-23T12:59:37+02:00muralikrishnanP3M solver### Summary
Complete the P3M solver initiated by Benjamin Ulmer in his Master's thesis so that it can be used in
scenarios where collisions might be important.### Summary
Complete the P3M solver initiated by Benjamin Ulmer in his Master's thesis so that it can be used in
scenarios where collisions might be important.2022.1muralikrishnanmuralikrishnanhttps://gitlab.psi.ch/OPAL/src/-/issues/729dumping 6D beam matrix at each time steps2022-09-23T12:59:28+02:00ext-piot_pdumping 6D beam matrix at each time steps### Summary
Introduce an option dumpBeamMarix that enable the 21 elements (upper triangle) of the 6D beam (sigma) matrix to be written in the stat file.### Summary
Introduce an option dumpBeamMarix that enable the 21 elements (upper triangle) of the 6D beam (sigma) matrix to be written in the stat file.2022.1ext-piot_pext-piot_phttps://gitlab.psi.ch/OPAL/src/-/issues/722Asymmetric Enge function for Scaling FFA Magnet2022-09-14T13:27:24+02:00ext-rogers_cAsymmetric Enge function for Scaling FFA Magnet### Summary
Request to add in a new end field model - using an asymmetric enge function - for Scaling FFA magnet.### Summary
Request to add in a new end field model - using an asymmetric enge function - for Scaling FFA magnet.2022.1https://gitlab.psi.ch/OPAL/src/-/issues/716Remove usage of IPPL:Tenzor class2023-08-23T16:29:38+02:00adelmannRemove usage of IPPL:Tenzor class### Summary
Remove IPPL `AppTypes/Tenzor.h` usage in
- Classic/AbsBeamline/Bend2D.cpp
- Classic/Algorithms/Quaternion.h:class
- Classic/Algorithms/CoordinateSystemTrafo.h
- Classic/Algorithms/Quaternion.cpp
- Classic/Utilities/MSLang.h
...### Summary
Remove IPPL `AppTypes/Tenzor.h` usage in
- Classic/AbsBeamline/Bend2D.cpp
- Classic/Algorithms/Quaternion.h:class
- Classic/Algorithms/CoordinateSystemTrafo.h
- Classic/Algorithms/Quaternion.cpp
- Classic/Utilities/MSLang.h
- Algorithms/ParallelCyclotronTracker.cpp
- Distribution/Distribution.cpp
- Distribution/Distribution.h
`Tenzor` is mostly used as matrix and in the `Classic/Algorithms/Quaternion.cpp`.
Maybe replacing `Quaternion` by Boost could also be an option.2023.1sadr_msadr_mhttps://gitlab.psi.ch/OPAL/src/-/issues/693Add option to compute percentiles2022-03-08T16:54:12+01:00krausAdd option to compute percentilesThe rms and max bunch size and the normalized emittance of the whole bunch give only an incomplete picture of the actual situation. By computing the 95 (2 sigmas for normal distribution), the 99.7 (3 sigmas) and the 99.99 (4 sigmas) perc...The rms and max bunch size and the normalized emittance of the whole bunch give only an incomplete picture of the actual situation. By computing the 95 (2 sigmas for normal distribution), the 99.7 (3 sigmas) and the 99.99 (4 sigmas) percentiles one can gain more details about the bunch.2022.1krauskraushttps://gitlab.psi.ch/OPAL/src/-/issues/684Beam stripping physics in OPAL-t2022-07-08T10:15:01+02:00ext-calvo_ppedro.calvo@ciemat.esBeam stripping physics in OPAL-tBeam stripping interactions are currently restricted to OPAL-cycl.
`VACUUM` element must be adapted to extend the beam stripping physics algorithm to beam lines in OPAL-t.Beam stripping interactions are currently restricted to OPAL-cycl.
`VACUUM` element must be adapted to extend the beam stripping physics algorithm to beam lines in OPAL-t.2022.1ext-calvo_ppedro.calvo@ciemat.esext-calvo_ppedro.calvo@ciemat.eshttps://gitlab.psi.ch/OPAL/src/-/issues/681Use ENABLEHDF5 in OPAL-T2022-02-13T11:50:30+01:00krausUse ENABLEHDF5 in OPAL-TThere is an option ENABLEHDF5 which should allow to disable all HDF5 output. This option doesn’t seem to be supported in OPAL-T.There is an option ENABLEHDF5 which should allow to disable all HDF5 output. This option doesn’t seem to be supported in OPAL-T.2022.1krauskraushttps://gitlab.psi.ch/OPAL/src/-/issues/680Remove interactive mode, replace it with additional help option.2022-02-04T16:05:23+01:00krausRemove interactive mode, replace it with additional help option.The interactive mode is presumably not used by anyone. I propose therefore to remove it and add instead an option to print the help for commands on the command line.
Additionally I noticed that Opal crashes while printing the help messa...The interactive mode is presumably not used by anyone. I propose therefore to remove it and add instead an option to print the help for commands on the command line.
Additionally I noticed that Opal crashes while printing the help messages. The reason is that the type names `predefined string`, `upper case string` and `upper case string array` are longer than 16 characters. However the user doesn't have to know what these types represent, they are simply strings and string arrays respectively.2022.1krauskraushttps://gitlab.psi.ch/OPAL/src/-/issues/673Add option to disable deletion of particles when exiting transversally2021-09-07T13:08:13+02:00krausAdd option to disable deletion of particles when exiting transversallyIn Opal-T all particles that exit an element transversally are deleted. With this feature request an option should be added with which the user can disable this behavior per element. This can be used e.g. for alpha magnets.In Opal-T all particles that exit an element transversally are deleted. With this feature request an option should be added with which the user can disable this behavior per element. This can be used e.g. for alpha magnets.2022.1krauskraushttps://gitlab.psi.ch/OPAL/src/-/issues/665Gas stripping for H2+ and deuterons2021-10-14T13:38:47+02:00ext-calvo_ppedro.calvo@ciemat.esGas stripping for H2+ and deuteronsBeam stripping interactions with the residual gas should be extended for `H2P` beams in `AIR` and `DEUTERON` beams.Beam stripping interactions with the residual gas should be extended for `H2P` beams in `AIR` and `DEUTERON` beams.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/607Increase C++ Standard to c++172021-07-07T16:32:50+02:00krausIncrease C++ Standard to c++17The current minimal version of gcc (7.3) and clang (9.0) support c++17 (with the only exception of [Matching template template parameters to compatible arguments (p0522r0)](https://wg21.link/p0522r0) in clang).The current minimal version of gcc (7.3) and clang (9.0) support c++17 (with the only exception of [Matching template template parameters to compatible arguments (p0522r0)](https://wg21.link/p0522r0) in clang).OPAL 2021.1gsellgsellhttps://gitlab.psi.ch/OPAL/src/-/issues/606Container support2021-06-10T17:42:42+02:00bellotti_rContainer supportI suggest to provide container images for OPAL. It is quite complicated to build it, and requires running specific scripts in a specific order. On the other hand, pulling (or building) an image is just one command. The system agnostic ap...I suggest to provide container images for OPAL. It is quite complicated to build it, and requires running specific scripts in a specific order. On the other hand, pulling (or building) an image is just one command. The system agnostic approach circumvents problems when clusters provide different versions of the dependencies, or change them.