xboa
|
Find the closed orbit given an ellipse. More...
Inherits object.
Public Member Functions | |
def | __init__ |
Initialise the closed orbit finder. More... | |
def | scan_generator |
Make a generator to scan over the variables, looking for closed orbits. More... | |
def | find_closed_orbit_generator |
Make a generator that finds the closed orbit. More... | |
def | check_closed_orbit |
Check whether test_variables fall on the closed orbit. More... | |
Public Attributes | |
tracking | |
seed | |
eps_max | |
use_seed | |
Private Member Functions | |
def | _get_points |
Find the closed orbit given an ellipse.
Definition at line 35 of file _ellipse_closed_orbit_finder.py.
def __init__ | ( | self, | |
tracking, | |||
seed_hit, | |||
eps_max = 1e6 , |
|||
use_seed = False |
|||
) |
Initialise the closed orbit finder.
Requires numpy
Definition at line 51 of file _ellipse_closed_orbit_finder.py.
def scan_generator | ( | self, | |
step_start_dict, | |||
step_end_dict, | |||
step_size_dict | |||
) |
Make a generator to scan over the variables, looking for closed orbits.
Returns an iterable of EllipseClosedOrbitFinderIterations, one iteration for each point in the scan; e.g. call next() against the return value to get the next element in the list, or put it in a loop like my_scan = [x for x in yield_scan(start, end, step)]
Definition at line 72 of file _ellipse_closed_orbit_finder.py.
References EllipseClosedOrbitFinder.eps_max, and EllipseClosedOrbitFinder.find_closed_orbit_generator().
def find_closed_orbit_generator | ( | self, | |
closed_orbit_variable_list, | |||
number_of_points, | |||
max_iterations = 100 |
|||
) |
Make a generator that finds the closed orbit.
Returns a generator object that will continue iterating until the tracking noise is large. If the closed orbit finder fails to fit an ellipse (for example because the test particle is going out of bounds or is singular) then find_closed_orbit raises a RuntimeError.
The caller is invited to break out of the loop early if, for example, she does not require convergence to the precision of the tracking.
Note that this can make a warning from numpy like "Warning: invalid value encountered in double_scalars"
Definition at line 121 of file _ellipse_closed_orbit_finder.py.
References EllipseClosedOrbitFinder._get_points(), and EllipseClosedOrbitFinder.eps_max.
Referenced by EllipseClosedOrbitFinder.scan_generator().
def check_closed_orbit | ( | self, | |
test_variable_dict, | |||
number_of_points | |||
) |
Check whether test_variables fall on the closed orbit.
Return is a EllipseClosedOrbitFinderIteration
Definition at line 164 of file _ellipse_closed_orbit_finder.py.
References EllipseClosedOrbitFinder._get_points(), and EllipseClosedOrbitFinder.eps_max.
|
private |
Definition at line 177 of file _ellipse_closed_orbit_finder.py.
References EllipseClosedOrbitFinder.use_seed.
Referenced by EllipseClosedOrbitFinder.check_closed_orbit(), and EllipseClosedOrbitFinder.find_closed_orbit_generator().
tracking |
Definition at line 53 of file _ellipse_closed_orbit_finder.py.
seed |
Definition at line 54 of file _ellipse_closed_orbit_finder.py.
eps_max |
Definition at line 55 of file _ellipse_closed_orbit_finder.py.
Referenced by EllipseClosedOrbitFinderIteration.calculate_ellipse(), EllipseClosedOrbitFinder.check_closed_orbit(), EllipseClosedOrbitFinder.find_closed_orbit_generator(), EllipseClosedOrbitFinderIteration.json_repr(), and EllipseClosedOrbitFinder.scan_generator().
use_seed |
Definition at line 56 of file _ellipse_closed_orbit_finder.py.
Referenced by EllipseClosedOrbitFinder._get_points().