xsuite 0.43.1__cp311-cp311-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of xsuite might be problematic. Click here for more details.

xsuite/__init__.py ADDED
@@ -0,0 +1,9 @@
1
+ # copyright ################################# #
2
+ # This file is part of the Xsuite Package. #
3
+ # Copyright (c) CERN, 2024. #
4
+ # ########################################### #
5
+
6
+ from importlib.metadata import version
7
+ __version__ = version(__name__)
8
+
9
+ from .prebuild_kernels import get_suitable_kernel, XSK_PREBUILT_KERNELS_LOCATION
xsuite/cli.py ADDED
@@ -0,0 +1,77 @@
1
+ # copyright ############################### #
2
+ # This file is part of the Xsuite project. #
3
+ # Copyright (c) CERN, 2024. #
4
+ # ######################################### #
5
+ import argparse
6
+ from importlib.metadata import version
7
+
8
+ from xsuite.prebuild_kernels import (
9
+ clear_kernels, regenerate_kernels, XSK_PREBUILT_KERNELS_LOCATION,
10
+ )
11
+
12
+
13
+ def regenerate_command(args):
14
+ n_threads = None if args.threads == 0 else args.threads
15
+ regenerate_kernels(n_threads=n_threads)
16
+
17
+
18
+ def clean_command(args):
19
+ clear_kernels(verbose=args.verbose)
20
+ print('Cleaned kernels.')
21
+
22
+
23
+ def info_command(args):
24
+ version_str = version("xsuite")
25
+ print(f'Xsuite version {version_str}')
26
+ print(f'Kernels location: {XSK_PREBUILT_KERNELS_LOCATION}')
27
+
28
+
29
+ def main():
30
+ parser = argparse.ArgumentParser(
31
+ prog='xsuite-prebuild',
32
+ description='Regenerate and clean precompiled kernels for Xsuite.',
33
+ )
34
+ subparsers = parser.add_subparsers(
35
+ title='commands',
36
+ required=True,
37
+ dest='command',
38
+ )
39
+
40
+ # `regenerate` commend
41
+ regenerate_parser = subparsers.add_parser(
42
+ 'regenerate',
43
+ aliases=['r'],
44
+ description='Regenerate the kernels.'
45
+ )
46
+ regenerate_parser.add_argument(
47
+ '-n', '--threads',
48
+ type=int,
49
+ help='specify the number of threads for kernel generation '
50
+ '(default or zero: let multiprocessing decide)',
51
+ )
52
+ regenerate_parser.set_defaults(func=regenerate_command)
53
+
54
+ # `clean` command
55
+ clean_parser = subparsers.add_parser(
56
+ 'clean',
57
+ aliases=['c'],
58
+ description='Clean the kernel directory.'
59
+ )
60
+ clean_parser.add_argument(
61
+ '-v', '--verbose',
62
+ help='list the files being deleted',
63
+ action='store_true',
64
+ )
65
+ clean_parser.set_defaults(func=clean_command)
66
+
67
+ # `info` command
68
+ info_parser = subparsers.add_parser(
69
+ 'info',
70
+ aliases=['i'],
71
+ description='Print additional info.',
72
+ )
73
+ info_parser.set_defaults(func=info_command)
74
+
75
+ # handle the right action
76
+ args = parser.parse_args()
77
+ args.func(args)
@@ -0,0 +1,43 @@
1
+ # copyright ############################### #
2
+ # This file is part of the Xsuite project. #
3
+ # Copyright (c) CERN, 2025. #
4
+ # ######################################### #
5
+ import logging
6
+
7
+ from xtrack.prebuilt_kernel_definitions import (ONLY_XTRACK_ELEMENTS,
8
+ NO_SYNRAD_ELEMENTS, NON_TRACKING_ELEMENTS)
9
+ from xcoll.prebuilt_kernel_definitions import DEFAULT_XCOLL_ELEMENTS, EXTRA_XCOLL_ELEMENTS
10
+ from xfields.prebuilt_kernel_definitions import DEFAULT_XFIELDS_ELEMENTS
11
+
12
+
13
+ LOGGER = logging.getLogger(__name__)
14
+
15
+ BASE_CONFIG = {
16
+ 'XTRACK_MULTIPOLE_NO_SYNRAD': True,
17
+ 'XFIELDS_BB3D_NO_BEAMSTR': True,
18
+ 'XFIELDS_BB3D_NO_BHABHA': True,
19
+ 'XTRACK_GLOBAL_XY_LIMIT': 1.0,
20
+ }
21
+
22
+ # These are enumerated in order specified below: the highest priority at the top
23
+ kernel_definitions = [
24
+ ('non_tracking_kernels', {
25
+ 'config': {},
26
+ 'classes': [],
27
+ 'extra_classes': NON_TRACKING_ELEMENTS
28
+ }),
29
+ ('default_no_config', {
30
+ 'config': {},
31
+ 'classes': ONLY_XTRACK_ELEMENTS + NO_SYNRAD_ELEMENTS + DEFAULT_XFIELDS_ELEMENTS + DEFAULT_XCOLL_ELEMENTS,
32
+ 'extra_classes': EXTRA_XCOLL_ELEMENTS,
33
+ }),
34
+ ('default_base_config', {
35
+ 'config': BASE_CONFIG,
36
+ 'classes': ONLY_XTRACK_ELEMENTS + NO_SYNRAD_ELEMENTS + DEFAULT_XFIELDS_ELEMENTS + DEFAULT_XCOLL_ELEMENTS,
37
+ 'extra_classes': EXTRA_XCOLL_ELEMENTS,
38
+ }),
39
+ ('only_xtrack_with_synrad', {
40
+ 'config': {**BASE_CONFIG, 'XTRACK_MULTIPOLE_NO_SYNRAD': False},
41
+ 'classes': ONLY_XTRACK_ELEMENTS,
42
+ }),
43
+ ]
xsuite/lib/__init__.py ADDED
File without changes