src issueshttps://gitlab.psi.ch/OPAL/src/-/issues2023-03-31T14:12:22+02:00https://gitlab.psi.ch/OPAL/src/-/issues/748Improve error message for using protected keywords2023-03-31T14:12:22+02:00snuverink_jjochem.snuverink@psi.chImprove error message for using protected keywordsReported by @zhang_h:
An input like:
```
ring: Cyclotron, TYPE="RING", ...;
```
will generate an error:
```
Error>
Error> *** User error detected by function "OpalData::define()"
Error> You cannot replace the object "RING".
Error...Reported by @zhang_h:
An input like:
```
ring: Cyclotron, TYPE="RING", ...;
```
will generate an error:
```
Error>
Error> *** User error detected by function "OpalData::define()"
Error> You cannot replace the object "RING".
Error> You cannot replace the object "RING".
```
This is because `ring` is a protected keyword and can't be used as an object name. However, from the user perspective this seems not very clear.
The error message comes from OpalData.cpp:
```c++
if (oldObject->isBuiltin() || ! oldObject->canReplaceBy(newObject)) {
throw OpalException("OpalData::define()",
"You cannot replace the object \"" + name + "\".");
} else {
```
I propose to make a distinction between the two cases and change it to:
```c++
if (oldObject->isBuiltin()) {
throw OpalException("OpalData::define()",
"The keyword \"" + name + "\" is protected and can't be used to name an object.");
else if (! oldObject->canReplaceBy(newObject)) {
throw OpalException("OpalData::define()",
"You cannot replace the already defined object \"" + name + "\".");
} // else not needed
```
Also it might be good not to have "name" in uppercase letters if the user writes it in lowercase, but I couldn't quickly find out where this happens.2023.1snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/502Geometry: Switch from hardcoded globalInsideP0_m to auto-detect2022-09-12T13:49:22+02:00winklehner_dGeometry: Switch from hardcoded globalInsideP0_m to auto-detect@gsell, the SAAMG solver still has a hardcoded varible `globalInsideP0_m` that should automatically be determined by the geometry class during geometry loading. Making it an OPTION could be an intermittent fix, but really the geometry ha...@gsell, the SAAMG solver still has a hardcoded varible `globalInsideP0_m` that should automatically be determined by the geometry class during geometry loading. Making it an OPTION could be an intermittent fix, but really the geometry handler should be able to determine a point that is clearly inside the geometry on its own.
from ArbitraryDomain.cpp:
```cpp
// TODO: THis needs to be made into OPTION of the geometry.
// A user defined point that is INSIDE with 100% certainty. -DW
globalInsideP0_m = Vector_t(0.0, 0.0, -0.13);
```
@frey\_m how does the AMR solver handle this? Or is it not using an imported geometry?
Cheers,
DanielOPAL 2.4.0gselladelmannwinklehner_dgsellhttps://gitlab.psi.ch/OPAL/src/-/issues/664Replace in c++17 removed std::unary_function and std::binary_function2021-07-07T16:32:50+02:00snuverink_jjochem.snuverink@psi.chReplace in c++17 removed std::unary_function and std::binary_function[std::unary_function](https://en.cppreference.com/w/cpp/utility/functional/unary_function) and [std::binary_function](https://en.cppreference.com/w/cpp/utility/functional/binary_function) were removed in c++17. These should be replaced.[std::unary_function](https://en.cppreference.com/w/cpp/utility/functional/unary_function) and [std::binary_function](https://en.cppreference.com/w/cpp/utility/functional/binary_function) were removed in c++17. These should be replaced.OPAL 2021.1snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/656Logical error in Boundarygeometry2021-06-10T18:33:19+02:00snuverink_jjochem.snuverink@psi.chLogical error in Boundarygeometryclang 12.0.0 reports compiler warnings that sound like a serious bug:
```
src/Structure/BoundaryGeometry.cpp:600:50: warning:
operator '?:' has lower precedence than '|'; '|' will be evaluated first
[-Wbitwise-conditional-p...clang 12.0.0 reports compiler warnings that sound like a serious bug:
```
src/Structure/BoundaryGeometry.cpp:600:50: warning:
operator '?:' has lower precedence than '|'; '|' will be evaluated first
[-Wbitwise-conditional-parentheses]
(A[2] < EPS) ? 1 : 0 | (A[2] > -EPS) ? 8 : 0);
~~~~~~~~~~~~~~~~~ ^
```OPAL 2021.1snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/320Accept approval of merge requests by their committers.2021-06-10T17:55:55+02:00snuverink_jjochem.snuverink@psi.chAccept approval of merge requests by their committers.After adding commits to an MR one can't approve anymore. I think this is not ideal, since sometimes it is much more convenient when an approver makes a small change instead of adding a comment. Note that the author of the MR should still...After adding commits to an MR one can't approve anymore. I think this is not ideal, since sometimes it is much more convenient when an approver makes a small change instead of adding a comment. Note that the author of the MR should still not be able to approve.
This setting can be modified in gitlab, see https://docs.gitlab.com/ee/user/project/merge_requests/merge_request_approvals.html#prevent-approval-of-merge-requests-by-their-committersgsellgsellhttps://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.https://gitlab.psi.ch/OPAL/src/-/issues/284Check regular update of beam parameters2020-04-23T15:01:57+02:00frey_mCheck regular update of beam parametersIn the cyclotron tracker the beam parameters are only updated when dumping, initializing and finalizing. Please check if they are updated regularly at the right places. Might be something for #227In the cyclotron tracker the beam parameters are only updated when dumping, initializing and finalizing. Please check if they are updated regularly at the right places. Might be something for #227https://gitlab.psi.ch/OPAL/src/-/issues/291Review ippl/test directory2020-03-04T08:09:21+01:00snuverink_jjochem.snuverink@psi.chReview ippl/test directoryIdeally all relevant tests of `ippl/test` can be moved into the unit test directory. And the remaining files can be deleted.
**Unit Test**
- [x] adaTests/TestDot1.cpp (see !225)
- [x] adaTests/TestDot2.cpp (see !225)
- [x] Cartesian/Te...Ideally all relevant tests of `ippl/test` can be moved into the unit test directory. And the remaining files can be deleted.
**Unit Test**
- [x] adaTests/TestDot1.cpp (see !225)
- [x] adaTests/TestDot2.cpp (see !225)
- [x] Cartesian/TestCartesian-1.cpp (see !225)
- [x] ~~Hal/yfld_q1.cpp~~ (see !245)
- [x] ~~Hal/yfld_q2.cpp~~ (see !245)
- [x] particle/chsr-2.cpp (!260, !270)
- [x] simple/* (!225 !239 !270)
- [x] ~~2ddiffusion-1.cpp~~ (!270)
- [x] bc.cpp (!270)
- [x] bc2.cpp (!270)
- [x] ~~bc3.cpp~~ (!270)
- [x] bool.cpp (!270)
- [x] ctoc.cpp (!270)
- [x] cv.cpp (!270)
- [x] ~~doof2d_complex.cpp~~ (!270)
- [x] doof2d_file.cpp (!270)
- [x] ~~doof2d_simple.cpp~~ (!270)
- [x] ~~doof2d_vis.cpp~~ (!270)
- [x] doof3d_file.cpp (!270)
- [x] ~~doof3d_vis.cpp~~ (!270)
- [x] fivefields.cpp (!270)
- [x] float.cpp (!270)
- [x] flyercode.cpp (!270)
- [x] funcface.cpp (!270)
- [x] FVecOps.cpp (!270)
- [x] ~~gcprint.cpp~~ (!270)
- [x] left.cpp (!270)
- [x] minmax.cpp (!270)
- [x] reduce.cpp (!270)
- [x] repartition.cpp (!270)
- [x] ~~repartition.cpp.org~~ (!270)
- [x] single.cpp (!270)
- [x] subdivide.cpp (!270)
- [x] subreadtest.cpp (!270)
- [x] t.cpp (!270)
- [x] t2.cpp (!270)
- [x] t3.cpp (!270)
- [x] t4.cpp (!270)
- [x] t5.cpp (!270)
- [x] t6.cpp (!270)
- [x] t7.cpp (!270)
- [x] t8.cpp (!270)
- [x] TestFieldDebug2.cpp (!270)
- [x] TestParticleDebug.cpp (!270)
- [x] ~~TestParticleDebugParallel.cpp~~ (!270)
- [x] TestPeriodicBC.cpp (!270)
- [x] tv.cpp (!270)
- [x] vc.cpp (!270)
- [x] ~~simple-new/*~~ (see !245)
- [x] sindex/* (see !239)
**Application**
- [x] ~~6dtrack/*~~ (!260)
- [x] AMR/* (see #426)
- [x] ~~CavityTrack/cavitytrack.cpp~~ (!260)
- [x] FFT/* (!260)
- [x] FFT/SeaborgRes/* (!271)
- [x] nok/t3.cpp (!264)
- [x] parallel/2ddens.cpp (!264)
- [x] parallel/dualmpi.cpp (!264)
- [x] parallel/reduce-1.cpp (!264)
- [x] parallel/reduce-2.cpp (!264)
- [x] parallel/volley.cpp (!264)
- [x] particle/chsr-1.cpp (!264)
- [x] particle/p3m3d.cpp (!260)
- [x] particle/p3m3dHeating.cpp (!260)
- [x] particle/p3m3dMicrobunching.cpp (!260)
- [x] particle/p3m3dRegressionTests.cpp (!260)
- [x] ~~particle/p3m3dTwoStream.cpp~~ (!260)
- [x] particle/p3m3dTwoStreamParallel.cpp
- [x] particle/pbconds3D.cpp (!264)
- [x] particle/PIC3d.cpp (!260)
- [x] particle/salman-1.cpp (!260)
- [x] particle/test-scatter-1.cpp (!260)
- [x] PwrSpec (!260)
- [x] simple/fermi-dirac-field.cpp (!270)
- [x] simple/ScalarAdvection.cpp (!270)
- [x] sindex/TestSIndex.cpp (!270)
- [x] toyfdtf
- [x] ~~ttrack~~ (!260)
- [x] ~~twostream-1~~ (!260)
**Remove** (!219)
- [x] hdf5/*
- [x] particle/1dperiodic.cpp
- [x] particle/cref.cpp
- [x] particle/DiscParticle.cpp
- [x] particle/FFTFieldSolver.cpp
- [x] particle/FieldCompare.cpp
- [x] particle/interpolate.cpp
- [x] particle/neighNodeTest1.cpp
- [x] particle/PairTest.cpp
- [x] particle/parexp.cpp
- [x] particle/pbconds.cpp
- [x] particle/pbconds_vis.cpp
- [x] particle/pdbtest.cpp
- [x] particle/PIC2d.cpp
- [x] particle/PIC3dBCo-p.cpp
- [x] particle/PIC3d-timing-1.cpp
- [x] particle/PIC3dBCo-p.cpp.nok
- [x] particle/spatial.cpp
- [x] particle/spatial.cpp.org
- [x] particle/test-update-1.cpp
- [x] particle/typtest.cpp
- [x] particle/uniform.cpp
- [x] particle/vlasovBB1D.cpp
- [x] poissonsolvers/*
- [x] speed/*snuverink_jjochem.snuverink@psi.chfrey_msnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/403Description of the procedure to release a new version2020-01-06T15:06:45+01:00snuverink_jjochem.snuverink@psi.chDescription of the procedure to release a new versionThe following discussion from Manual-2.1!23 should be addressed:
- [ ] @kraus started a [discussion](https://gitlab.psi.ch/OPAL/Manual-2.1/merge_requests/23#note_15043): (+1 comment)
> A new version of the binary of Opal and in co...The following discussion from Manual-2.1!23 should be addressed:
- [ ] @kraus started a [discussion](https://gitlab.psi.ch/OPAL/Manual-2.1/merge_requests/23#note_15043): (+1 comment)
> A new version of the binary of Opal and in consequence of the manual as well. A few items that need to be done:
> - [ ] increase the version string in CMakeLists.txt
> - [ ] setup a repository for the new version of the manual
> - [ ] setup the regression-tests to run the new version
> - [ ] add links to the binaries in the wiki
> - [ ] compile the change log and publish it in the wiki
> - [ ] correct (the links to) the example input files, field maps aso in the manual
> - [ ] write e-mail to mailing list
>
> I guess there's a lot more to be done and as long as we don't write these steps down in a procedure that we follow we'll always have problems. We just had two e-mails from potential users of Opal that tried to run examples from the manual. Unfortunately they weren't updated when we released new versions.
\cc @gsellsnuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/399Follow-up from "Resolve "Cleanup in other CMakeLists.txt""2019-12-09T18:59:15+01:00snuverink_jjochem.snuverink@psi.chFollow-up from "Resolve "Cleanup in other CMakeLists.txt""The following discussion from !209 should be addressed:
- [x] @snuverink_j started a [discussion](https://gitlab.psi.ch/OPAL/src/merge_requests/209#note_14931): (+3 comments)
> @frey\_m : `AMR_HDRS` is not used anywhere else, this...The following discussion from !209 should be addressed:
- [x] @snuverink_j started a [discussion](https://gitlab.psi.ch/OPAL/src/merge_requests/209#note_14931): (+3 comments)
> @frey\_m : `AMR_HDRS` is not used anywhere else, this should be changed to `HDRS` I think.frey_mfrey_mhttps://gitlab.psi.ch/OPAL/src/-/issues/35Regression Tests for branch OPAL-1.62019-07-04T17:15:48+02:00krausRegression Tests for branch OPAL-1.6Currently we test branches master and OPAL-1.4. We should stop testing OPAL-1.4 but test OPAL-1.6 from now on. I don't think that any one is applying patches to OPAL-1.4 any more.
A branch OPAL-1.6 already exists in the repository of ...Currently we test branches master and OPAL-1.4. We should stop testing OPAL-1.4 but test OPAL-1.6 from now on. I don't think that any one is applying patches to OPAL-1.4 any more.
A branch OPAL-1.6 already exists in the repository of the regression test.OPAL 1.5.3gsellgsellhttps://gitlab.psi.ch/OPAL/src/-/issues/302Cleanup legacy code2019-05-15T22:43:30+02:00snuverink_jjochem.snuverink@psi.chCleanup legacy codeIn our source code there are several preprocessor checks for `__GNUC__ < 3`. We no longer support those systems and this legacy code can be safely removed.In our source code there are several preprocessor checks for `__GNUC__ < 3`. We no longer support those systems and this legacy code can be safely removed.snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/289Cleanup unused and outdated files2019-04-18T08:44:12+02:00snuverink_jjochem.snuverink@psi.chCleanup unused and outdated filesI propose to remove all unused and outdated files from the repo.
The following source files are affected:
* MPWriter/MPReader
* ~~bet/math/functions~~
* ~~bet/math/svdfit~~
* ~~bet/error.h/cpp (superseeded by BetError.h)~~
* ~~bet/erro...I propose to remove all unused and outdated files from the repo.
The following source files are affected:
* MPWriter/MPReader
* ~~bet/math/functions~~
* ~~bet/math/svdfit~~
* ~~bet/error.h/cpp (superseeded by BetError.h)~~
* ~~bet/error.C~~
* ~~bet/math/integrate (Leff,Leff2,Labs not used in profile)~~
* ~~bet/math/sort all except sort2~~
* Algorithms/AutophaseTracker
* ippl/src/Particle/ParticleSpatialLayout.hNudge and ippl/src/Particle/ParticleSpatialLayout.cppNudge
* ~~src/Classic/FixedAlgebra/ ComplexEigen and FComplexEigen~~
* ~~src/Classic/Algebra/NormalForm~~
* src/Classic/Utilities/Gauss
* src/Errors
* optimizer/Comm/Splitter/ReadSplitFromFile.h
* ~~ippl/test/ directory~~
* TaperDomain
* TracerParticles
* Elements/OpalBeamBeam3D
* Elements/OpalBeamBeam
Other files:
* src/Classic/ReadMe
* .gitattributes
More (added 16.04):
* Distribution/halton1d_sequence.cpp
* src/Classic/Main.cpp
* src/Classic/DipoleFieldTest.cpp
* Structure/PriEmissionPhysics.cppsnuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/290Cleanup tests directory from non-unit tests2019-04-05T14:40:28+02:00snuverink_jjochem.snuverink@psi.chCleanup tests directory from non-unit testsThe tests directory is polluted with other input files. These should be (re)moved.The tests directory is polluted with other input files. These should be (re)moved.snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/281FFAG -> FFA2019-03-19T17:14:02+01:00snuverink_jjochem.snuverink@psi.chFFAG -> FFAThe proper acronym is nowadays `FFA` and since OPAL will be used in the FFA workshop tutorial I think it would be good to update the name in the codebase and everywhere. This is a minor effort and I can do this if @ext-rogers_c agrees.The proper acronym is nowadays `FFA` and since OPAL will be used in the FFA workshop tutorial I think it would be good to update the name in the codebase and everywhere. This is a minor effort and I can do this if @ext-rogers_c agrees.ext-rogers_cext-rogers_chttps://gitlab.psi.ch/OPAL/src/-/issues/202Scan-1 regression test is broken2018-03-30T19:06:21+02:00snuverink_jjochem.snuverink@psi.chScan-1 regression test is brokenNow that the Scan option is fixed (issue #2) the regression test [Scan-1](https://gitlab.psi.ch/OPAL/regression-tests/tree/master/RegressionTests/Scan-1) looks [better](http://amas.web.psi.ch/opal/regressionTests/master/results_2018-01-0...Now that the Scan option is fixed (issue #2) the regression test [Scan-1](https://gitlab.psi.ch/OPAL/regression-tests/tree/master/RegressionTests/Scan-1) looks [better](http://amas.web.psi.ch/opal/regressionTests/master/results_2018-01-08.xml#Scan-1_rms_x), but is still broken.
@kraus: do you perhaps understand why?OPAL 2.0.0snuverink_jjochem.snuverink@psi.chsnuverink_jjochem.snuverink@psi.chhttps://gitlab.psi.ch/OPAL/src/-/issues/7New T7 Field normalisation2017-03-16T14:35:05+01:00adelmannNew T7 Field normalisationT7 Files are normalised differently since 1.5.0. Provide tool to determine conversion factor.T7 Files are normalised differently since 1.5.0. Provide tool to determine conversion factor.OPAL 1.5.1krauskraus