Skip to content

Commit fbe2870

Browse files
committed
Save progress
1 parent 5fc5796 commit fbe2870

File tree

2 files changed

+33
-34
lines changed

2 files changed

+33
-34
lines changed

py/orbit/envelope/danilov_env_solver_lattice_modifications.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
from ..lattice import AccNode
66
from ..lattice import AccNodeBunchTracker
77

8-
from .danilov_envelope_solver_nodes import DanilovEnvelopeSolverNode20
9-
from .danilov_envelope_solver_nodes import DanilovEnvelopeSolverNode22
8+
from .danilov_env_solver_nodes import Danilov20EnvSolverNode
9+
from .danilov_env_solver_nodes import Danilov22EnvSolverNode
1010

1111

1212
class Parent:
@@ -30,9 +30,9 @@ def add_danilov_envolope_solver_nodes(
3030
lattice: AccLattice,
3131
path_length_max: float,
3232
path_length_min: float,
33-
solver_node_constructor: DanilovEnvelopeSolverNode20 | DanilovEnvelopeSolverNode22,
33+
solver_node_constructor: Danilov20EnvSolverNode | Danilov22EnvSolverNode,
3434
solver_node_constructor_kwargs: dict,
35-
) -> list[DanilovEnvelopeSolverNode20 | DanilovEnvelopeSolverNode22]:
35+
) -> list[Danilov20EnvSolverNode | Danilov22EnvSolverNode]:
3636

3737
nodes = lattice.getNodes()
3838
if not nodes:
@@ -102,7 +102,7 @@ def add_danilov_envelope_solver_nodes_20(
102102
lattice=lattice,
103103
path_length_max=path_length_max,
104104
path_length_min=path_length_min,
105-
solver_node_constructor=DanilovEnvelopeSolverNode20,
105+
solver_node_constructor=Danilov20EnvSolverNode,
106106
solver_node_constructor_kwargs=kwargs,
107107
)
108108
for solver_node in solver_nodes:
Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,36 @@
1+
from typing import Any
2+
13
from ..lattice import AccActionsContainer
24
from ..lattice import AccLattice
35
from ..lattice import AccNode
46
from ..lattice import AccNodeBunchTracker
57
from ..utils import orbitFinalize
68

7-
from orbit.core.envelope import Danilov20EnvelopeSolver
8-
from orbit.core.envelope import Danilov22EnvelopeSolver
9+
from orbit.core.envelope import EnvSolverDanilov20
10+
from orbit.core.envelope import EnvSolverDanilov22
911

1012

11-
class DanilovEnvelopeSolverNode(AccNodeBunchTracker):
13+
class EnvSolverNode(AccNodeBunchTracker):
1214
def __init__(
1315
self,
14-
solver: DanilovEnvelopeSolver20 | DanilovEnvelopeSolver22,
15-
name: str = None,
16+
solver: Any,
17+
name: str = "",
1618
kick_length: float = 0.0,
17-
perveance: float = 0.0,
1819
) -> None:
1920
super().__init__(name=name)
20-
self.setType("DanilovEnvSolver")
21+
self.setType("EnvSolver")
2122
self.setLength(0.0)
2223

23-
self.solver = solver
24+
self.solver = None
2425
self.kick_length = kick_length
25-
self.perveance = perveance
2626
self.active = True
2727

28-
def set_active(self, setting: bool) -> None:
28+
def setActive(self, setting: bool) -> None:
2929
self.active = setting
3030

31+
def setKickLength(self, kick_length: float) -> None:
32+
self.kick_length = kick_length
33+
3134
def isRFGap(self) -> bool:
3235
# In case this node is used in linac tracking
3336
return False
@@ -42,28 +45,24 @@ def track(self, params_dict: dict) -> None:
4245
bunch = params_dict["bunch"]
4346
self.solver.trackBunch(bunch, self.kick_length)
4447

45-
def set_perveance(self, perveance: float) -> None:
46-
self.solver.setPerveance(perveance)
4748

48-
def set_kick_length(self, kick_length: float) -> None:
49-
self.kick_length = kick_length
49+
class Danilov22EnvSolverNode(EnvSolverNode):
50+
def __init__(self, perveance: float, **kwargs) -> None:
51+
super().__init__(**kwargs)
52+
self.solver = EnvSolverDanilov22(perveance)
5053

54+
def setPerveance(self, perveance: float) -> None:
55+
self.solver.setPerveance(perveance)
5156

52-
class DanilovEnvelopeSolverNode20(DanilovEnvelopeSolverNode):
53-
def __init__(self, eps_x: float, eps_y: float, **kwargs) -> None:
54-
super().__init__(solver=None, **kwargs)
55-
self.eps_x = eps_x
56-
self.eps_y = eps_y
57-
self.solver = DanilovEnvelopeSolver20(self.perveance, self.eps_x, self.eps_y)
5857

59-
def set_emittances(self, eps_x: float, eps_y: float) -> None:
60-
self.eps_x = eps_x
61-
self.eps_y = eps_y
62-
self.solver.setEmittanceX(eps_x)
63-
self.solver.setEmittanceY(eps_y)
58+
class Danilov20EnvSolverNode(EnvSolverNode):
59+
def __init__(self, eps_x: float, eps_y: float, perveance: float, **kwargs) -> None:
60+
super().__init__(**kwargs)
61+
self.solver = EnvSolverDanilov20(perveance, eps_x, eps_y)
6462

63+
def setPerveance(self, perveance: float) -> None:
64+
self.solver.setPerveance(perveance)
6565

66-
class DanilovEnvelopeSolverNode22(DanilovEnvelopeSolverNode):
67-
def __init__(self, **kwargs) -> None:
68-
super().__init__(solver=None, **kwargs)
69-
self.solver = DanilovEnvelopeSolver22(self.perveance)
66+
def setEmittances(self, eps_x: float, eps_y: float) -> None:
67+
self.solver.setEmittanceX(eps_x)
68+
self.solver.setEmittanceY(eps_y)

0 commit comments

Comments
 (0)