xtrack 0.47.1__tar.gz → 0.47.2__tar.gz

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.
Files changed (139) hide show
  1. {xtrack-0.47.1/xtrack.egg-info → xtrack-0.47.2}/PKG-INFO +1 -1
  2. xtrack-0.47.2/xtrack/_version.py +1 -0
  3. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/line.py +32 -6
  4. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/mad_loader.py +9 -4
  5. {xtrack-0.47.1 → xtrack-0.47.2/xtrack.egg-info}/PKG-INFO +1 -1
  6. xtrack-0.47.1/xtrack/_version.py +0 -1
  7. {xtrack-0.47.1 → xtrack-0.47.2}/LICENSE +0 -0
  8. {xtrack-0.47.1 → xtrack-0.47.2}/MANIFEST.in +0 -0
  9. {xtrack-0.47.1 → xtrack-0.47.2}/README.md +0 -0
  10. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/__init__.py +0 -0
  11. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/base_classes.py +0 -0
  12. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/BB6D.py +0 -0
  13. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  14. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/__init__.py +0 -0
  15. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/beambeam.py +0 -0
  16. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/boost.py +0 -0
  17. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  18. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  19. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/qgauss.py +0 -0
  20. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/slicing.py +0 -0
  21. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/be_beamfields/spacecharge.py +0 -0
  22. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/elements.py +0 -0
  23. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/line.py +0 -0
  24. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/mathlibs.py +0 -0
  25. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/particles.py +0 -0
  26. {xtrack-0.47.1 → xtrack-0.47.2}/ducktrack/temp_pyparticles.py +0 -0
  27. {xtrack-0.47.1 → xtrack-0.47.2}/pyproject.toml +0 -0
  28. {xtrack-0.47.1 → xtrack-0.47.2}/setup.cfg +0 -0
  29. {xtrack-0.47.1 → xtrack-0.47.2}/setup.py +0 -0
  30. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/__init__.py +0 -0
  31. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/_temp/__init__.py +0 -0
  32. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/_temp/lhc_match/__init__.py +0 -0
  33. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  34. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  35. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  36. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/base_element.py +0 -0
  37. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/__init__.py +0 -0
  38. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/apertures.py +0 -0
  39. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  40. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  41. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  42. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  43. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  44. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  45. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/beam_interaction.py +0 -0
  46. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements.py +0 -0
  47. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/bend.h +0 -0
  48. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  49. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/combinedfunctionmagnet.h +0 -0
  50. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  51. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/drift.h +0 -0
  52. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
  53. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/elens.h +0 -0
  54. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  55. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  56. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/fringe.h +0 -0
  57. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/fringe_track.h +0 -0
  58. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/lineartransfermatrix.h +0 -0
  59. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  60. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/multipolar_kick.h +0 -0
  61. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  62. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  63. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  64. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  65. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  66. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  67. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  68. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  69. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  70. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/solenoid.h +0 -0
  71. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  72. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  73. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  74. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  75. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  76. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/wedge_track.h +0 -0
  77. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/wire.h +0 -0
  78. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  79. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  80. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  81. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  82. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/beam_elements/exciter.py +0 -0
  83. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/compounds.py +0 -0
  84. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/footprint.py +0 -0
  85. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/general.py +0 -0
  86. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/headers/atomicadd.h +0 -0
  87. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/headers/checks.h +0 -0
  88. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/headers/constants.h +0 -0
  89. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/headers/particle_states.h +0 -0
  90. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/headers/synrad_spectrum.h +0 -0
  91. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/internal_record.py +0 -0
  92. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/linear_normal_form.py +0 -0
  93. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/loss_location_refinement/__init__.py +0 -0
  94. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  95. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/lumi.py +0 -0
  96. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/match.py +0 -0
  97. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/__init__.py +0 -0
  98. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/beam_position_monitor.h +0 -0
  99. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/beam_position_monitor.py +0 -0
  100. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/beam_profile_monitor.h +0 -0
  101. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/beam_profile_monitor.py +0 -0
  102. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/beam_size_monitor.h +0 -0
  103. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/beam_size_monitor.py +0 -0
  104. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/last_turns_monitor.h +0 -0
  105. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/last_turns_monitor.py +0 -0
  106. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/particles_monitor.h +0 -0
  107. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/monitors/particles_monitor.py +0 -0
  108. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/multiline/__init__.py +0 -0
  109. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/multiline/multiline.py +0 -0
  110. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/multiline/shared_knobs.py +0 -0
  111. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/multisetter/__init__.py +0 -0
  112. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/multisetter/multisetter.py +0 -0
  113. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/pipeline/__init__.py +0 -0
  114. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/pipeline/core.py +0 -0
  115. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/pipeline/manager.py +0 -0
  116. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/pipeline/multitracker.py +0 -0
  117. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/prebuild_kernels.py +0 -0
  118. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/prebuilt_kernels/__init__.py +0 -0
  119. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/prebuilt_kernels/kernel_definitions.py +0 -0
  120. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/progress_indicator.py +0 -0
  121. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/random/__init__.py +0 -0
  122. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/random/random_generators.py +0 -0
  123. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/random/random_src/exponential.h +0 -0
  124. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  125. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/random/random_src/normal.h +0 -0
  126. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/random/random_src/rutherford.h +0 -0
  127. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/random/random_src/uniform.h +0 -0
  128. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/slicing.py +0 -0
  129. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/survey.py +0 -0
  130. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/tapering.py +0 -0
  131. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/targets.py +0 -0
  132. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/tracker.py +0 -0
  133. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/tracker_data.py +0 -0
  134. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/tracker_src/tracker.h +0 -0
  135. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack/twiss.py +0 -0
  136. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack.egg-info/SOURCES.txt +0 -0
  137. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack.egg-info/dependency_links.txt +0 -0
  138. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack.egg-info/requires.txt +0 -0
  139. {xtrack-0.47.1 → xtrack-0.47.2}/xtrack.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.47.1
3
+ Version: 0.47.2
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -0,0 +1 @@
1
+ __version__ = '0.47.2'
@@ -10,6 +10,7 @@ import json
10
10
  from contextlib import contextmanager
11
11
  from copy import deepcopy
12
12
  from pprint import pformat
13
+ from pathlib import Path
13
14
  from typing import List, Literal, Optional, Collection
14
15
 
15
16
  import numpy as np
@@ -3765,25 +3766,47 @@ class LineVars:
3765
3766
  self._cache_active = value
3766
3767
  self.line._xdeps_manager._tree_frozen = value
3767
3768
 
3768
- def load_madx_optics_file(self, filename):
3769
+ def set_from_madx_file(self, filename, mad_stdout=False):
3770
+
3771
+ '''
3772
+ Set variables veluas of expression from a MAD-X file.
3773
+
3774
+ Parameters
3775
+ ----------
3776
+ filename : str or list of str
3777
+ Path to the MAD-X file(s) to load.
3778
+ mad_stdout : bool, optional
3779
+ If True, the MAD-X output is printed to stdout.
3780
+
3781
+ Notes
3782
+ -----
3783
+ The MAD-X file is executed in a temporary MAD-X instance, and the
3784
+ variables are copied to the line after the execution.
3785
+ '''
3786
+
3769
3787
  from cpymad.madx import Madx
3770
- mad = Madx()
3788
+ mad = Madx(stdout=mad_stdout)
3771
3789
  mad.options.echo = False
3772
3790
  mad.options.info = False
3773
3791
  mad.options.warn = False
3774
- mad.call(str(filename))
3792
+ if isinstance(filename, (str, Path)):
3793
+ filename = [filename]
3794
+ else:
3795
+ assert isinstance(filename, (list, tuple))
3796
+ for ff in filename:
3797
+ mad.call(str(ff))
3775
3798
 
3776
3799
  assert self.cache_active is False, (
3777
3800
  'Cannot load optics file when cache is active')
3778
3801
 
3779
3802
  mad.input('''
3780
- elm: marker; seq: sequence, l=1; e:elm, at=0.5; endsequence;
3781
- beam; use,sequence=seq;''')
3803
+ elm: marker; dummy: sequence, l=1; e:elm, at=0.5; endsequence;
3804
+ beam; use,sequence=dummy;''')
3782
3805
 
3783
3806
  defined_vars = set(mad.globals.keys())
3784
3807
 
3785
3808
  xt.general._print.suppress = True
3786
- dummy_line = xt.Line.from_madx_sequence(mad.sequence.seq,
3809
+ dummy_line = xt.Line.from_madx_sequence(mad.sequence.dummy,
3787
3810
  deferred_expressions=True)
3788
3811
  xt.general._print.suppress = False
3789
3812
 
@@ -3805,6 +3828,9 @@ class LineVars:
3805
3828
 
3806
3829
  self.line._xdeps_vref._owner.default_factory = None
3807
3830
 
3831
+ def load_madx_optics_file(self, filename, mad_stdout=False):
3832
+ self.set_from_madx_file(filename, mad_stdout=mad_stdout)
3833
+
3808
3834
  class VarValues:
3809
3835
 
3810
3836
  def __init__(self, vars):
@@ -686,11 +686,16 @@ class MadLoader:
686
686
  madeval = None
687
687
  self.Builder = ElementBuilder
688
688
 
689
- for ii, el in enumerate(progress(
689
+ # Avoid progress bar if there are few elements
690
+ if len(self.sequence.expanded_elements) > 10:
691
+ _prog = progress(
690
692
  self.iter_elements(madeval=madeval),
691
693
  desc=f'Converting sequence "{self.sequence.name}"',
692
- total=len(self.sequence.expanded_elements)),
693
- ):
694
+ total=len(self.sequence.expanded_elements))
695
+ else:
696
+ _prog = self.iter_elements(madeval=madeval)
697
+
698
+ for ii, el in enumerate(_prog):
694
699
  # for each mad element create xtract elements in a buffer and add to a line
695
700
  converter = getattr(self, "convert_" + el.type, None)
696
701
  adder = getattr(self, "add_" + el.type, None)
@@ -827,7 +832,7 @@ class MadLoader:
827
832
  def _convert_quadrupole_thick(self, mad_el):
828
833
  if mad_el.k1s:
829
834
  tilt = -self.math.atan2(mad_el.k1s, mad_el.k1) / 2
830
- k1 = 0.5 * self.math.sqrt(mad_el.k1s ** 2 + mad_el.k1 ** 2)
835
+ k1 = self.math.sqrt(mad_el.k1s ** 2 + mad_el.k1 ** 2)
831
836
  else:
832
837
  tilt = None
833
838
  k1 = mad_el.k1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.47.1
3
+ Version: 0.47.2
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -1 +0,0 @@
1
- __version__ = '0.47.1'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes