Skip to content

Commit d937ba6

Browse files
committed
Fix
1 parent 0ef9272 commit d937ba6

File tree

2 files changed

+33
-35
lines changed

2 files changed

+33
-35
lines changed

examples/bend_api/001_dev_rbend.py

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,33 @@
11
import xtrack as xt
22

3-
xt.RBend.from_dict({
4-
"__class__": "RBend",
5-
"edge_exit_angle_fdown": -7.065815087973354e-11,
6-
"edge_entry_angle_fdown": -7.065815087973354e-11,
7-
"extra": {
8-
"polarity": -1.0
9-
},
10-
"prototype": "mbxf",
11-
"order": 5,
12-
"model": "adaptive",
13-
"k0": -0.00023962580074486132,
14-
"h": -0.00023962580074486132,
15-
"length": 6.270000589737365,
16-
"k0_from_h": False,
17-
"angle": -0.001502453911986569,
18-
"length_straight": 6.27
19-
})
3+
bend1 = xt.RBend()
4+
bend1.angle = 0.1
5+
bend1.length_straight= 1.0
206

21-
breakpoint()
22-
bb = xt.RBend(**{
23-
# "__class__": "RBend",
24-
"edge_exit_angle_fdown": -7.065815087973354e-11,
25-
"edge_entry_angle_fdown": -7.065815087973354e-11,
26-
# "extra": {
27-
# "polarity": -1.0
28-
# },
29-
# "prototype": "mbxf",
30-
"order": 5,
31-
"model": "adaptive",
32-
"k0": -0.00023962580074486132,
33-
# "h": -0.00023962580074486132,
34-
# "length": 6.270000589737365,
35-
"k0_from_h": False,
36-
"angle": -0.001502453911986569,
37-
"length_straight": 6.27
38-
})
7+
bend2 = xt.RBend()
8+
bend2.length_straight= 1.0
9+
bend2.angle = 0.1
10+
11+
bend3 = xt.RBend(angle=0.1, length_straight=1.0)
12+
13+
bend1d = xt.RBend.from_dict(bend1.to_dict())
14+
bend2d = xt.RBend.from_dict(bend2.to_dict())
15+
bend3d = xt.RBend.from_dict(bend3.to_dict())
16+
17+
for bb in [bend1, bend2, bend3, bend1d, bend2d, bend3d]:
18+
assert bb.h == 0.1 / bb.length
19+
assert bb.k0 == 'from_h'
20+
assert bb.k0_from_h == True
21+
assert bb.length_straight == 1.0
22+
assert bb.length > 1.0
23+
assert bb.angle == 0.1
24+
25+
bend1.k0 = 0.2
26+
assert bend1.k0 == 0.2
27+
assert bend1.h == 0.1 / bend1.length
28+
assert bend1.k0_from_h == False
29+
30+
bend2.k0_from_h = False
31+
assert bend2.k0 == 0.
32+
assert bend2.h == 0.1 / bend2.length
33+
assert bend2.k0_from_h == False

xtrack/beam_elements/elements.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1838,6 +1838,9 @@ def _update_rbend_h_length_k0(self):
18381838
if abs(_angle) < 1e-10:
18391839
length = _length_straight
18401840
h = 0
1841+
elif abs(_length_straight) < 1e-10:
1842+
length = 0.0
1843+
h = 0
18411844
else:
18421845
h = (np.sin(theta_in) + np.sin(theta_out)) / _length_straight
18431846
length = _angle / h

0 commit comments

Comments
 (0)