Skip to content

Commit 6893b94

Browse files
Merge pull request #132 from martinschwinzerl/feature/sc_interpol
Released SixTrackLib v0.6.0
2 parents 947643d + c2475f9 commit 6893b94

File tree

382 files changed

+75272
-17384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

382 files changed

+75272
-17384
lines changed

CMakeLists.txt

+7-1
Original file line numberDiff line numberDiff line change
@@ -106,16 +106,22 @@ message( STATUS "---- cmake_module_path: ${CMAKE_MODULE_PATH}" )
106106

107107
include(CheckLanguage)
108108

109+
include( SetupGit )
110+
include( SetupFeatures )
109111
include( SetupC99 )
110112
include( SetupCxx )
111113
include( SetupPython )
112-
include( SetupGit )
113114

114115
# ------------------------------------------------------------------------------
115116
# Unit-testing:
116117

117118
include( SetupUnitTesting )
118119

120+
# ------------------------------------------------------------------------------
121+
# toml:
122+
123+
include( SetupToml )
124+
119125
# ------------------------------------------------------------------------------
120126
# MPFR4:
121127

Settings.cmake.default

+20-13
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,20 @@ option( SIXTRACKL_BUILD_EXAMPLES "Build sixtracklib examples" OFF )
3232
option( SIXTRACKL_ENABLE_PROGRAMM_TESTS "Enable programmatic unit-tests" OFF )
3333
option( SIXTRACKL_ENABLE_BENCHMARK_TESTS "Enable benchmark tests" OFF )
3434

35+
# ------------------------------------------------------------------------------
36+
# ---- SixTrackLib Features:
37+
38+
# Track features: allowed values are enabled, disabled, or skip:
39+
40+
set( SIXTRACKL_TRACK_BEAMBEAM4D "enabled" CACHE STRING "" )
41+
set( SIXTRACKL_TRACK_BEAMBEAM6D "enabled" CACHE STRING "" )
42+
set( SIXTRACKL_TRACK_SPACECHARGE "enabled" CACHE STRING "" )
43+
set( SIXTRACKL_TRACK_TRICUB "disabled" CACHE STRING "" )
44+
45+
# Aperture check features: allowed values are always, never, conditional
46+
47+
set( SIXTRACKL_APERTURE_CHECK_AT_DRIFT "always" CACHE STRING "" )
48+
3549
# ------------------------------------------------------------------------------
3650
# CPU/System architecture settings:
3751

@@ -47,24 +61,15 @@ set( SIXTRACKL_DEFAULT_C99_FLAGS
4761
set( SIXTRACKL_DEFAULT_CXX_FLAGS
4862
"-Wall -Werror -pedantic -ansi -fno-fast-math" )
4963

50-
# ------------------------------------------------------------------------------
51-
# ---- SixTrackLib Features:
52-
53-
option( SIXTRACKL_ENABLE_APERTURE_CHECK "Enable xy - aperture check" ON )
54-
55-
5664
# ==============================================================================
5765
# ==== Detailed settings:
5866

5967
# ------------------------------------------------------------------------------
6068
# ---- SixTrackLib detailed features settings:
6169

62-
set( SIXTRACKL_APERTURE_X_LIMIT_VALUE "1.0"
63-
CACHE STRING "Aperture check x limit" FORCE )
64-
65-
set( SIXTRACKL_APERTURE_Y_LIMIT_VALUE "1.0"
66-
CACHE STRING "Aperture check y limit" FORCE )
67-
70+
set( SIXTRACKL_APERTURE_X_LIMIT_VALUE "1.0" CACHE STRING "" )
71+
set( SIXTRACKL_APERTURE_Y_LIMIT_VALUE "1.0" CACHE STRING "" )
72+
set( SIXTRACKL_APERTURE_CHECK_MIN_DRIFT_LENGTH "0.0" CACHE STRING "" )
6873

6974
# ------------------------------------------------------------------------------
7075
# Installation detailed setings
@@ -117,6 +122,9 @@ endif()
117122
# OpenCL 1.x related detailed settings
118123

119124
if( SIXTRACKL_ENABLE_OPENCL )
125+
set( SIXTRACKL_OPENCL_DEFAULT_COMPILER_FLAGS "-w -Werror" CACHE STRING
126+
"Default run-time compiler options for OpenCL" )
127+
120128
set( SIXTRACKL_MIN_OPENCL_VERSION "110" CACHE STRING
121129
"Minimal expected OpenCL 1.x version" )
122130

@@ -162,6 +170,5 @@ set( SIXTRACKL_CXX_NAMESPACE "sixtrack" CACHE STRING
162170
set( SIXTRACKL_C_NAMESPACE_PREFIX "st_" CACHE STRING
163171
"SixTrackLib C-Namespace prefix (default: st_)" )
164172

165-
166173
# ==============================================================================
167174
# end: Settings.cmake.default | Settings.cmake

cmake/SetupAutoVecSIMD.cmake

+50
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,63 @@ if( NOT SIXTRACKL_CMAKE_SETUP_AUTOVEC_SIMD_FINISHED )
88
# and track its state:
99

1010
list( APPEND SIXTRACKLIB_SUPPORTED_MODULES "AUTOVECTORIZATION" )
11+
set( SIXTRACKL_C_ENABLED_AUTOVEC_FLAGS )
12+
set( SIXTRACKL_C_DISABLED_AUTOVEC_FLAGS )
13+
14+
if( CMAKE_C_COMPILER_ID STREQUAL "Clang" )
15+
set( SIXTRACKL_C_DISABLED_AUTOVEC_FLAGS -fno-slp-vectorize )
16+
elseif( CMAKE_C_COMPILER_ID STREQUAL "GNU" )
17+
set( SIXTRACKL_C_ENABLED_AUTOVEC_FLAGS
18+
-ftree-vectorize -ftree-vectorizer-verbose=6
19+
-fopt-info-loop
20+
-fno-fast-math
21+
--param vect-max-version-for-alias-checks=150 )
22+
set( SIXTRACKL_DEFAULT_C_NOAUTOVEC_FLAGS -fno-tree-vectorize )
23+
endif()
24+
25+
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
26+
27+
set( SIXTRACKL_CXX_ENABLED_AUTOVEC_FLAGS )
28+
set( SIXTRACKL_CXX_DISABLED_AUTOVEC_FLAGS )
29+
30+
if( SIXTRACKL_ENABLE_CXX )
31+
if( CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
32+
set( SIXTRACKL_CXX_DISABLED_AUTOVEC_FLAGS -fno-slp-vectorize )
33+
elseif( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
34+
set( SIXTRACKL_CXX_ENABLED_AUTOVEC_FLAGS
35+
-ftree-vectorize -ftree-vectorizer-verbose=6
36+
-fopt-info-loop
37+
-fno-fast-math
38+
--param vect-max-version-for-alias-checks=150 )
39+
set( SIXTRACKL_CXX_DISABLED_AUTOVEC_FLAGS -fno-tree-vectorize )
40+
endif()
41+
endif()
42+
43+
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
44+
45+
set( SIXTRACKL_C99_AUTOVEC_FLAGS )
46+
set( SIXTRACKL_CXX_AUTOVEC_FLAGS )
1147

1248
if( SIXTRACKL_ENABLE_AUTOVECTORIZATION )
1349
list( APPEND SIXTRACKLIB_SUPPORTED_MODULES_VALUES "1" )
50+
set( SIXTRACKL_C99_AUTOVEC_FLAGS ${SIXTRACKL_C_ENABLED_AUTOVEC_FLAGS} )
51+
52+
if( SIXTRACKL_ENABLE_CXX )
53+
set( SIXTRACKL_CXX_AUTOVEC_FLAGS
54+
${SIXTRACKL_CXX_ENABLED_AUTOVEC_FLAGS} )
55+
endif()
1456
else()
1557
list( APPEND SIXTRACKLIB_SUPPORTED_MODULES_VALUES "0" )
58+
set( SIXTRACKL_C99_AUTOVEC_FLAGS
59+
${SIXTRACKL_C_DISABLED_AUTOVEC_FLAGS} )
60+
61+
if( SIXTRACKL_ENABLE_C99 )
62+
set( SIXTRACKL_C99_AUTOVEC_FLAGS
63+
${SIXTRACKL_C99_ENABLED_AUTOVEC_FLAGS} )
64+
endif()
1665
endif()
1766

67+
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1868

1969
list( APPEND SIXTRACKLIB_SUPPORTED_MODULES "MANUAL_SIMD" )
2070

cmake/SetupC99.cmake

+4-9
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,10 @@ if( NOT SETUP_C99_FINISHED )
66
# --------------------------------------------------------------------------
77
# Prepare default c99 compiler flags
88

9-
if( SIXTRACKL_DEFAULT_C99_FLAGS )
10-
string( REPLACE " " ";" SIXTRL_C99_FLAGS
11-
${SIXTRACKL_DEFAULT_C99_FLAGS} )
12-
13-
if( SIXTRL_C99_FLAGS )
14-
set( SIXTRACKLIB_C99_FLAGS
15-
${SIXTRACKLIB_C99_FLAGS} ${SIXTRL_C99_FLAGS} )
16-
endif()
9+
set( SIXTRACKLIB_C99_FLAGS )
1710

11+
if( SIXTRACKL_DEFAULT_C99_FLAGS )
12+
string( REPLACE " " ";"
13+
SIXTRACKLIB_C99_FLAGS ${SIXTRACKL_DEFAULT_C99_FLAGS} )
1814
endif()
19-
2015
endif()

cmake/SetupCxx.cmake

+4-10
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,13 @@ if( NOT SETUP_CXX_FINISHED )
1313
else()
1414
list( APPEND SIXTRACKLIB_SUPPORTED_BINDINGS_VALUES "0" )
1515
endif()
16-
16+
1717
# --------------------------------------------------------------------------
1818
# Prepare default cxx compiler flags
19-
19+
20+
set( SIXTRACKLIB_CXX_FLAGS )
2021
if( SIXTRACKL_DEFAULT_CXX_FLAGS )
21-
string( REPLACE " " ";" SIXTRL_CXX_FLAGS
22+
string( REPLACE " " ";" SIXTRACKLIB_CXX_FLAGS
2223
${SIXTRACKL_DEFAULT_CXX_FLAGS} )
23-
24-
if( SIXTRL_CXX_FLAGS )
25-
set( SIXTRACKLIB_CXX_FLAGS
26-
${SIXTRACKLIB_CXX_FLAGS} ${SIXTRL_CXX_FLAGS} )
27-
endif()
28-
2924
endif()
30-
3125
endif()

cmake/SetupFeatures.cmake

+157
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
if( NOT SETUP_SIXTRL_FEATURES_FINISHED )
2+
set( SETUP_SIXTRL_FEATURES_FINISHED 1 )
3+
4+
# -------------------------------------------------------------------------
5+
# Track features setup
6+
7+
set_property( CACHE SIXTRACKL_TRACK_BEAMBEAM4D
8+
SIXTRACKL_TRACK_BEAMBEAM6D
9+
SIXTRACKL_TRACK_SPACECHARGE
10+
SIXTRACKL_TRACK_TRICUB
11+
PROPERTY STRINGS enabled disabled skip )
12+
13+
set( SIXTRL_TRACK_MAP_ENABLED_VALUE "2" )
14+
set( SIXTRL_TRACK_MAP_SKIP_VALUE "1" )
15+
set( SIXTRL_TRACK_MAP_DISABLED_VALUE "0" )
16+
17+
set_property( CACHE SIXTRACKL_TRACK_BEAMBEAM4D PROPERTY HELPSTRING
18+
"Track over beam-beam 4D beam element" )
19+
20+
if( SIXTRACKL_TRACK_BEAMBEAM4D )
21+
if( "${SIXTRACKL_TRACK_BEAMBEAM4D}" STREQUAL "skip" )
22+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG "${SIXTRL_TRACK_MAP_SKIP_VALUE}" )
23+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG_STR "skip" )
24+
elseif( "${SIXTRACKL_TRACK_BEAMBEAM4D}" STREQUAL "disabled" )
25+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG "${SIXTRL_TRACK_MAP_DISABLED_VALUE}" )
26+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG_STR "disabled" )
27+
else()
28+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG "${SIXTRL_TRACK_MAP_ENABLED_VALUE}" )
29+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG_STR "enabled" )
30+
endif()
31+
endif()
32+
33+
set_property( CACHE SIXTRACKL_TRACK_BEAMBEAM6D PROPERTY HELPSTRING
34+
"Track over beam-beam 6D beam element" )
35+
36+
if( SIXTRACKL_TRACK_BEAMBEAM6D )
37+
if( "${SIXTRACKL_TRACK_BEAMBEAM6D}" STREQUAL "skip" )
38+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG "${SIXTRL_TRACK_MAP_SKIP_VALUE}" )
39+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG_STR "skip" )
40+
elseif( "${SIXTRACKL_TRACK_BEAMBEAM6D}" STREQUAL "disabled" )
41+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG "${SIXTRL_TRACK_MAP_DISABLED_VALUE}" )
42+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG_STR "disabled" )
43+
else()
44+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG "${SIXTRL_TRACK_MAP_ENABLED_VALUE}" )
45+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG_STR "enabled" )
46+
endif()
47+
endif()
48+
49+
set_property( CACHE SIXTRACKL_TRACK_SPACECHARGE PROPERTY HELPSTRING
50+
"Track over frozen space-charge beam element" )
51+
52+
if( SIXTRACKL_TRACK_SPACECHARGE )
53+
if( "${SIXTRACKL_TRACK_SPACECHARGE}" STREQUAL "skip" )
54+
set( SIXTRL_TRACK_SC_FLAG "${SIXTRL_TRACK_MAP_SKIP_VALUE}" )
55+
set( SIXTRL_TRACK_SC_FLAG_STR "skip" )
56+
elseif( "${SIXTRACKL_TRACK_SPACECHARGE}" STREQUAL "disabled" )
57+
set( SIXTRL_TRACK_SC_FLAG "${SIXTRL_TRACK_MAP_DISABLED_VALUE}" )
58+
set( SIXTRL_TRACK_SC_FLAG_STR "disabled" )
59+
else()
60+
set( SIXTRL_TRACK_SC_FLAG "${SIXTRL_TRACK_MAP_ENABLED_VALUE}" )
61+
set( SIXTRL_TRACK_SC_FLAG_STR "enabled" )
62+
endif()
63+
endif()
64+
65+
set_property( CACHE SIXTRACKL_TRACK_TRICUB PROPERTY HELPSTRING
66+
"Track over tri-cub interpolation beam elements" )
67+
68+
if( SIXTRACKL_TRACK_TRICUB )
69+
if( "${SIXTRACKL_TRACK_TRICUB}" STREQUAL "skip" )
70+
set( SIXTRL_TRACK_TRICUB_FLAG "${SIXTRL_TRACK_MAP_SKIP_VALUE}" )
71+
set( SIXTRL_TRACK_TRICUB_FLAG_STR "skip" )
72+
elseif( "${SIXTRACKL_TRACK_TRICUB}" STREQUAL "disabled" )
73+
set( SIXTRL_TRACK_TRICUB_FLAG "${SIXTRL_TRACK_MAP_DISABLED_VALUE}" )
74+
set( SIXTRL_TRACK_TRICUB_FLAG_STR "disabled" )
75+
else()
76+
set( SIXTRL_TRACK_TRICUB_FLAG "${SIXTRL_TRACK_MAP_ENABLED_VALUE}" )
77+
set( SIXTRL_TRACK_TRICUB_FLAG_STR "enabled" )
78+
endif()
79+
endif()
80+
81+
set( SIXTRL_TRACK_FEATURES_INSTALL_STR
82+
"set( SIXTRL_TRACK_MAP_ENABLED_VALUE \"${SIXTRL_TRACK_MAP_ENABLED_VALUE}\" )
83+
set( SIXTRL_TRACK_MAP_SKIP_VALUE \"${SIXTRL_TRACK_MAP_SKIP_VALUE}\" )
84+
set( SIXTRL_TRACK_MAP_DISABLED_VALUE \"${SIXTRL_TRACK_MAP_DISABLED_VALUE}\" )
85+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG \"${SIXTRL_TRACK_BEAMBEAM4D_FLAG}\" )
86+
set( SIXTRL_TRACK_BEAMBEAM4D_FLAG_STR \"${SIXTRL_TRACK_BEAMBEAM4D_FLAG_STR}\" )
87+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG \"${SIXTRL_TRACK_BEAMBEAM4D_FLAG}\" )
88+
set( SIXTRL_TRACK_BEAMBEAM6D_FLAG_STR \"${SIXTRL_TRACK_BEAMBEAM4D_FLAG_STR}\" )
89+
set( SIXTRL_TRACK_SPACECHARGE_FLAG \"${SIXTRL_TRACK_SPACECHARGE_FLAG}\" )
90+
set( SIXTRL_TRACK_SPACECHARGE_FLAG_STR \"${SIXTRL_TRACK_SPACECHARGE_FLAG_STR}\" )
91+
set( SIXTRL_TRACK_TRICUB_FLAG \"${SIXTRL_TRACK_TRICUB_FLAG}\"
92+
set( SIXTRL_TRACK_TRICUB_FLAG_STR \"${SIXTRL_TRACK_TRICUB_FLAG_STR}\" )" )
93+
94+
95+
# -------------------------------------------------------------------------
96+
# Aperture check features:
97+
98+
set_property( CACHE SIXTRACKL_APERTURE_CHECK_AT_DRIFT PROPERTY HELPSTRING
99+
"Perform an x-y aperture check at Drift and DriftExact beam elements" )
100+
101+
set_property( CACHE SIXTRACKL_APERTURE_CHECK_AT_DRIFT
102+
PROPERTY STRINGS always conditional never )
103+
104+
set( SIXTRL_GLOBAL_APERATURE_CHECK_ALWAYS_VALUE "2" )
105+
set( SIXTRL_GLOBAL_APERATURE_CHECK_CONDITIONAL_VALUE "1" )
106+
set( SIXTRL_GLOBAL_APERATURE_CHECK_NEVER_VALUE "0" )
107+
108+
if( SIXTRACKL_APERTURE_CHECK_AT_DRIFT )
109+
if( "${SIXTRACKL_APERTURE_CHECK_AT_DRIFT}" STREQUAL "never" )
110+
set( SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG
111+
"${SIXTRL_GLOBAL_APERATURE_CHECK_NEVER_VALUE}" )
112+
set( SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG_STR "never" )
113+
elseif( "${SIXTRACKL_APERTURE_CHECK_AT_DRIFT}" STREQUAL "conditional" )
114+
set( SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG
115+
"${SIXTRL_GLOBAL_APERATURE_CHECK_CONDITIONAL_VALUE}" )
116+
set( SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG_STR "conditional" )
117+
else()
118+
set( SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG
119+
"${SIXTRL_GLOBAL_APERATURE_CHECK_ALWAYS_VALUE}" )
120+
set( SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG_STR "always" )
121+
endif()
122+
endif()
123+
124+
set_property( CACHE SIXTRACKL_APERTURE_X_LIMIT_VALUE PROPERTY ADVANCED )
125+
set_property( CACHE SIXTRACKL_APERTURE_X_LIMIT_VALUE PROPERTY HELPSTRING
126+
"Global aperture check limit for x [m]" )
127+
128+
set_property( CACHE SIXTRACKL_APERTURE_Y_LIMIT_VALUE PROPERTY ADVANCED )
129+
set_property( CACHE SIXTRACKL_APERTURE_Y_LIMIT_VALUE PROPERTY HELPSTRING
130+
"Global aperture check limit for y [m]" )
131+
132+
set_property( CACHE SIXTRACKL_APERTURE_CHECK_MIN_DRIFT_LENGTH
133+
PROPERTY HELPSTRING
134+
"Perform conditional aperture checks for Drift and DriftExact elements with lengths larger than this [m]" )
135+
136+
set_property( CACHE SIXTRACKL_APERTURE_CHECK_MIN_DRIFT_LENGTH
137+
PROPERTY ADVANCED )
138+
139+
set( SIXTRL_APERTURE_CHECK_FEATURES_INSTALL_STR
140+
"set( SIXTRL_GLOBAL_APERATURE_CHECK_ALWAYS_VALUE
141+
\"${SIXTRL_GLOBAL_APERATURE_CHECK_ALWAYS_VALUE}\" )
142+
set( SIXTRL_GLOBAL_APERATURE_CHECK_ALWAYS_VALUE_STR
143+
\"${SIXTRL_GLOBAL_APERATURE_CHECK_ALWAYS_VALUE_STR}\" )
144+
set( SIXTRL_GLOBAL_APERATURE_CHECK_CONDITIONAL_VALUE
145+
\"${SIXTRL_GLOBAL_APERATURE_CHECK_CONDITIONAL_VALUE}\" )
146+
set( SIXTRL_GLOBAL_APERATURE_CHECK_NEVER_VALUE
147+
\"${SIXTRL_GLOBAL_APERATURE_CHECK_NEVER_VALUE}\" )
148+
set( SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG
149+
\"${SIXTRL_APERTURE_CHECK_AT_DRIFT_FLAG}\" )
150+
set( SIXTRACKL_APERTURE_X_LIMIT_VALUE
151+
\"${SIXTRACKL_APERTURE_X_LIMIT_VALUE}\" )
152+
set( SIXTRACKL_APERTURE_Y_LIMIT_VALUE
153+
\"${SIXTRACKL_APERTURE_Y_LIMIT_VALUE}\" )
154+
set( SIXTRACKL_APERTURE_CHECK_MIN_DRIFT_LENGTH
155+
\"${SIXTRACKL_APERTURE_CHECK_MIN_DRIFT_LENGTH}\" )" )
156+
157+
endif()

0 commit comments

Comments
 (0)