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/22SBEND3D - Off Momentum beam2023-12-20T13:35:05+01:00adelmannSBEND3D - Off Momentum beam
I have some problems in understanding my result. In bold you can see the two questions I have for you. I will explain you briefly.
The configuration is the following:
- single field map from OPERA
- nominal energy: 185 MeV
- RING def...
I have some problems in understanding my result. In bold you can see the two questions I have for you. I will explain you briefly.
The configuration is the following:
- single field map from OPERA
- nominal energy: 185 MeV
- RING definition + Local Cartesian Offset
- Particle distribution from file
From this configuration, the beam envelope looks reasonable and agrees with COSY-Infinity.
However, the dispersion seems not to be completely suppressed at the end of the beamline. This means that I need to study more the dispersion and the off-momentum beam.
* 1st Analysis: Dispersion function
In the distribution file, I set one particle with 1% momentum shift (py = 1% p0) with respect to the nominal momentum. The tracking of this particle represents the dispersion function. The result is attached (Dispersion-Test1)
* 2nd Analysis: Off-Momentum Beam
The goal is to study the beamline behaviour with a beam that has 5% momentum shift from the nominal value. Then I have prepared a new distribution, where all the particles (except 2 particles) has a momentum shift of 5% (py = 5% p0).
In the OPAL input file, I let 185 MeV as nominal energy (EDES = 0.185), the shift in momentum comes from the beam distribution.
The two not-updated particles are:
1- reference particle: py = 0
2- dispersion function: py = 1% p0
Since the majority of the particles have a different energy, the mean beam energy has been updated to 202 MeV. Has this an influence in the tracking?
At the end of this “off-momentum run”, I displayed again the dispersion function, expecting to get the same result as in the first Analysis. The nominal energy, EDES, (185 MeV) did not change and the field map as well.
Instead I got a completely different trajectory (see Dispersion-Test2).
Which is the best way to perform this kind of analysis?
Thanks for your help
Regards
Valeria
Former #23
- Does SBEND3D use a local coordinate system, relative to the
beginning of the element? If so, how is this coordinate system
defined?
- Is the OPAL manual's description of the LENGTHUNITS correct? When
adding an SBEND3D, the diagnostic output from OPAL specifies the
lengths in both 'm' and 'mm,' it seems one of these is wrong and
confusing. I.e. `zini= -1.0000000000000000e+03 m; zfinal=
1.0000000000000000e+03 mm` for the input file attached.
As a test case, I have tried to propagate a beam through a simple π/6
sector (input files attached). However, the beam travels straight in
the initial direction, indicating to me that my element is either the
wrong size or placed incorrectly relative to the beam. Perhaps you can
shed some light on what I am misunderstanding about how this element
interacts with the global coordinate system.
[generate_fieldmap.py](/uploads/ff562c84c870b355ab03161318241823/generate_fieldmap.py)
[sbend3D_test.in](/uploads/4b28f17596b27c218f1c5e6487fb5d86/sbend3D_test.in)
[testbend.bmap](/uploads/302ca3d3632c4c0787bfde583922f037/testbend.bmap)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/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/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/276Specify trim coil range azimuthally2023-02-13T15:50:53+01:00snuverink_jjochem.snuverink@psi.chSpecify trim coil range azimuthallyFeature request from @matlocha_t: add an option to `TRIMCOIL` to specify besides the radial range also the azimuthal range.Feature request from @matlocha_t: add an option to `TRIMCOIL` to specify besides the radial range also the azimuthal range.snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://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/516pyopal - specification2022-07-18T10:19:57+02:00ext-rogers_cpyopal - specification### Summary
Specification for pyopal
[2020-04-20_PyOpal.docx](/uploads/7deccec6c3c38595bfcbe9cae0b4b05c/2020-04-20_PyOpal.docx)### Summary
Specification for pyopal
[2020-04-20_PyOpal.docx](/uploads/7deccec6c3c38595bfcbe9cae0b4b05c/2020-04-20_PyOpal.docx)2022.1ext-rogers_cext-rogers_chttps://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/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/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/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/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/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.1gsellgsell