Skip to content

Newton solve crashing when calculating t_zero_margin #3674

@timothy-nunn

Description

@timothy-nunn

I get the following traceback

 **************************************************************************************************************
/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/physics.py:7255: RuntimeWarning: divide by zero encountered in divide
  * (neped / n_greenwald) ** -0.174
/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/superconductors.py:754: RuntimeWarning: invalid value encountered in scalar power
  b_critical = b_c20_eps * (1.0 - f_temp_conductor_critical_no_field**1.52)
Traceback (most recent call last):
  File "/home/ubuntu/PROCESS-convergence/.venv/bin/process", line 33, in <module>
    sys.exit(load_entry_point('process==3.1.0', 'console_scripts', 'process')())
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/main.py", line 740, in main
    Process(args)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/main.py", line 136, in __init__
    self.run_mode()
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/main.py", line 236, in run_mode
    self.run.run()
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/main.py", line 393, in run
    self.run_scan(self.solver)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/main.py", line 487, in run_scan
    self.scan = Scan(self.models, solver)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/scan.py", line 157, in __init__
    self.run_scan()
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/scan.py", line 171, in run_scan
    ifail = self.doopt()
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/scan.py", line 194, in doopt
    ifail = self.optimiser.run()
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/optimiser.py", line 54, in run
    ifail = self.solver.solve()
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/solver.py", line 211, in solve
    x, _, _, res = solve(
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/pyvmcon/vmcon.py", line 146, in solve
    result = problem(x)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/solver.py", line 133, in __call__
    objf, conf = self._evaluator.fcnvmc1(n, self.total_constraints, x, 0)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/evaluators.py", line 55, in fcnvmc1
    objf, conf = self.caller.call_models(xv, m)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/caller.py", line 75, in call_models
    self._call_models_once(xc)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/caller.py", line 270, in _call_models_once
    self.models.sctfcoil.run(output=False)
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/superconducting_tf_coil.py", line 306, in run
    ) = self.supercon(
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/process/superconducting_tf_coil.py", line 1111, in supercon
    t_zero_margin, root_result = optimize.newton(
  File "/home/ubuntu/PROCESS-convergence/.venv/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py", line 391, in newton
    raise RuntimeError(msg)
RuntimeError: Failed to converge after 50 iterations, value is nan.

when running fails_supercon.IN.DAT.txt

Anecdotally, a lot of people experience this crash, especially when doing Monte Carlo on the large tokamak.

We should try and find the cause of this crash and confirm there are no bugs at play here. We should also try and stop this from crashing the code, is there an estimation or alternative method we can fall back on?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions