Skip to content

Commit 300c067

Browse files
committed
Record refreshed linearization column state
1 parent 75c6861 commit 300c067

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

freegsnke/nonlinear_solve.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1704,6 +1704,7 @@ def _build_dIydI_column(
17041704
starting_dI = float(self.starting_dI[j])
17051705
final_dI = float(self.final_dI_record[j])
17061706
self.starting_dI[j] = final_dI
1707+
self.current_at_last_linearization[j] = self.currents_vec[j]
17071708
perturbed_psi = np.copy(self.eq2.psi())
17081709
dRZdI = np.array(
17091710
(

freegsnke/tests/test_linearisation_perturbations.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,32 @@ def test_reused_starting_dI_uses_tighter_rescaling_guard():
7272
)
7373

7474

75+
def test_accepted_first_perturbation_records_current_linearization_point():
76+
solver = bare_solver()
77+
solver.approved_target_dIy = np.array([0.01])
78+
solver.starting_dI = np.array([10.0])
79+
solver.final_dI_record = np.array([10.0])
80+
solver.current_at_last_linearization = np.array([-1.0])
81+
solver.currents_vec = np.array([42.0])
82+
solver.R0 = 1.0
83+
solver.Z0 = 0.0
84+
solver.initial_plasma_descriptors = np.array([0.0])
85+
solver.eq2 = SimpleNamespace(
86+
psi=lambda: np.zeros((2, 2)),
87+
Rcurrent=lambda: 1.0,
88+
Zcurrent=lambda: 0.0,
89+
)
90+
solver.NK.initial_rel_residual = 0.0
91+
solver.NK.relative_change = 0.0
92+
solver._column_plasma_descriptor_function = lambda _: np.array([0.0])
93+
solver.prepare_build_dIydI_j = lambda *args, **kwargs: (np.ones(2), 0.01)
94+
95+
result = solver._build_dIydI_column(0, 1e-8, False, False)
96+
97+
assert result[-1] == solver.currents_vec[0]
98+
assert solver.current_at_last_linearization[0] == solver.currents_vec[0]
99+
100+
75101
def fake_column_builder(self, column, *args):
76102
"""Return enough information to identify one dispatched column."""
77103
return int(column)

0 commit comments

Comments
 (0)