Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Continuation _solve_axisym and Surface from_input_file hotfix #711

Merged
merged 7 commits into from
Oct 20, 2023

Conversation

dpanici
Copy link
Collaborator

@dpanici dpanici commented Oct 18, 2023

  • let surface from_input_file method find a VMEC file if INDATA is not first line, change input.DSHAPE to have a comment line
  • fix bug in _solve_axisym method where if the resolution is low enough, the method does not run to the full resolution of the desired axisymmetric vacuum equilibrium

resolves #710
resolves #712

…first line, change input.DSHAPE to have a comment line
@github-actions
Copy link
Contributor

|             benchmark_name             |         dt(%)          |         dt(s)          |        t_new(s)        |        t_old(s)        | 
| -------------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
 test_build_transform_fft_lowres         |     -3.11 +/- 1.39     | -6.01e-04 +/- 2.68e-04 |  1.87e-02 +/- 2.0e-04  |  1.93e-02 +/- 1.8e-04  |
 test_build_transform_fft_midres         |     -2.12 +/- 0.78     | -2.42e-03 +/- 8.93e-04 |  1.12e-01 +/- 6.7e-04  |  1.14e-01 +/- 5.9e-04  |
 test_build_transform_fft_highres        |     -1.59 +/- 1.04     | -8.29e-03 +/- 5.40e-03 |  5.13e-01 +/- 3.7e-03  |  5.21e-01 +/- 4.0e-03  |
 test_equilibrium_init_lowres            |     -1.86 +/- 1.54     | -8.11e-03 +/- 6.72e-03 |  4.29e-01 +/- 5.1e-03  |  4.37e-01 +/- 4.4e-03  |
 test_equilibrium_init_medres            |     -2.08 +/- 1.29     | -1.16e-02 +/- 7.24e-03 |  5.48e-01 +/- 3.8e-03  |  5.60e-01 +/- 6.2e-03  |
 test_equilibrium_init_highres           |     -1.51 +/- 0.79     | -1.50e-02 +/- 7.89e-03 |  9.79e-01 +/- 3.8e-03  |  9.94e-01 +/- 6.9e-03  |
 test_objective_compile_dshape_current   |     -1.61 +/- 6.10     | -8.45e-02 +/- 3.19e-01 |  5.15e+00 +/- 2.3e-01  |  5.24e+00 +/- 2.2e-01  |
 test_objective_compile_atf              |     -0.77 +/- 4.58     | -1.16e-01 +/- 6.90e-01 |  1.49e+01 +/- 4.5e-01  |  1.51e+01 +/- 5.3e-01  |
 test_objective_compute_dshape_current   |     -1.87 +/- 1.14     | -6.28e-05 +/- 3.84e-05 |  3.29e-03 +/- 2.1e-05  |  3.36e-03 +/- 3.2e-05  |
 test_objective_compute_atf              |     -0.38 +/- 1.13     | -4.30e-05 +/- 1.27e-04 |  1.11e-02 +/- 1.1e-04  |  1.12e-02 +/- 5.8e-05  |
 test_objective_jac_dshape_current       |     +1.63 +/- 7.91     | +2.06e-03 +/- 9.99e-03 |  1.28e-01 +/- 5.5e-03  |  1.26e-01 +/- 8.3e-03  |
 test_objective_jac_atf                  |     +1.66 +/- 1.17     | +1.06e-01 +/- 7.46e-02 |  6.49e+00 +/- 5.8e-02  |  6.38e+00 +/- 4.6e-02  |
 test_perturb_1                          |     +0.29 +/- 13.97    | +2.50e-02 +/- 1.21e+00 |  8.66e+00 +/- 8.3e-01  |  8.64e+00 +/- 8.8e-01  |
 test_perturb_2                          |     -0.88 +/- 6.93     | -1.45e-01 +/- 1.14e+00 |  1.63e+01 +/- 6.8e-01  |  1.64e+01 +/- 9.1e-01  |

@codecov
Copy link

codecov bot commented Oct 18, 2023

Codecov Report

Merging #711 (f45bac0) into master (be530ca) will increase coverage by 0.01%.
The diff coverage is 100.00%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #711      +/-   ##
==========================================
+ Coverage   94.96%   94.97%   +0.01%     
==========================================
  Files          79       79              
  Lines       19317    19322       +5     
==========================================
+ Hits        18345    18352       +7     
+ Misses        972      970       -2     
Files Coverage Δ
desc/continuation.py 93.70% <100.00%> (+0.33%) ⬆️
desc/geometry/surface.py 96.15% <100.00%> (+0.07%) ⬆️

... and 1 file with indirect coverage changes

@dpanici dpanici changed the title Surface from_input_file hotfix Continuation _solve_axisym and Surface from_input_file hotfix Oct 18, 2023
@github-actions
Copy link
Contributor

|             benchmark_name             |         dt(%)          |         dt(s)          |        t_new(s)        |        t_old(s)        | 
| -------------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
 test_build_transform_fft_lowres         |     +2.16 +/- 1.87     | +4.21e-04 +/- 3.64e-04 |  1.99e-02 +/- 3.2e-04  |  1.94e-02 +/- 1.8e-04  |
+test_build_transform_fft_midres         |     -2.80 +/- 0.73     | -3.27e-03 +/- 8.56e-04 |  1.13e-01 +/- 5.5e-04  |  1.17e-01 +/- 6.5e-04  |
 test_build_transform_fft_highres        |     -1.85 +/- 1.00     | -9.80e-03 +/- 5.30e-03 |  5.20e-01 +/- 4.5e-03  |  5.30e-01 +/- 2.8e-03  |
 test_equilibrium_init_lowres            |     +0.67 +/- 1.86     | +2.96e-03 +/- 8.25e-03 |  4.46e-01 +/- 6.7e-03  |  4.44e-01 +/- 4.9e-03  |
 test_equilibrium_init_medres            |     +0.74 +/- 1.42     | +4.20e-03 +/- 8.04e-03 |  5.69e-01 +/- 4.9e-03  |  5.64e-01 +/- 6.4e-03  |
 test_equilibrium_init_highres           |     +0.40 +/- 1.23     | +3.99e-03 +/- 1.23e-02 |  1.00e+00 +/- 7.7e-03  |  1.00e+00 +/- 9.6e-03  |
 test_objective_compile_dshape_current   |     +3.38 +/- 6.28     | +1.79e-01 +/- 3.32e-01 |  5.46e+00 +/- 2.4e-01  |  5.28e+00 +/- 2.3e-01  |
 test_objective_compile_atf              |     +4.46 +/- 4.70     | +6.74e-01 +/- 7.11e-01 |  1.58e+01 +/- 5.9e-01  |  1.51e+01 +/- 4.0e-01  |
-test_objective_compute_dshape_current   |    +10.20 +/- 3.00     | +3.45e-04 +/- 1.02e-04 |  3.72e-03 +/- 7.6e-05  |  3.38e-03 +/- 6.7e-05  |
-test_objective_compute_atf              |     +7.19 +/- 2.03     | +8.12e-04 +/- 2.30e-04 |  1.21e-02 +/- 1.5e-04  |  1.13e-02 +/- 1.8e-04  |
 test_objective_jac_dshape_current       |     +1.46 +/- 9.66     | +1.91e-03 +/- 1.26e-02 |  1.33e-01 +/- 8.4e-03  |  1.31e-01 +/- 9.5e-03  |
-test_objective_jac_atf                  |     +5.74 +/- 1.22     | +3.73e-01 +/- 7.96e-02 |  6.87e+00 +/- 6.1e-02  |  6.50e+00 +/- 5.1e-02  |
 test_perturb_1                          |     +2.23 +/- 14.53    | +1.95e-01 +/- 1.27e+00 |  8.93e+00 +/- 9.1e-01  |  8.73e+00 +/- 8.9e-01  |
 test_perturb_2                          |     +0.73 +/- 6.59     | +1.21e-01 +/- 1.09e+00 |  1.67e+01 +/- 6.1e-01  |  1.66e+01 +/- 9.1e-01  |

@dpanici
Copy link
Collaborator Author

dpanici commented Oct 19, 2023

@f0uriest do we want to make a similar change to the _add_pressure function, where if pres_step is zero it will just solve with the entire pressure? right now it will just run through the function and not run anything if pres_step is zero, effectively skipping that step, which is fine but it is now different than the behavior of _solve_axisym if mres_step is 0 (where that function will now run the equilibrium at the full poloidal resolutoin in one step if mres_step is 0)

we could revert that behavior to skipping the axisym solve if mres_step is 0 by reverting the <= to < in that function's while loop, I think

@github-actions
Copy link
Contributor

|             benchmark_name             |         dt(%)          |         dt(s)          |        t_new(s)        |        t_old(s)        | 
| -------------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
+test_build_transform_fft_lowres         |    -10.94 +/- 2.35     | -2.31e-03 +/- 4.96e-04 |  1.88e-02 +/- 1.1e-04  |  2.12e-02 +/- 4.8e-04  |
+test_build_transform_fft_midres         |     -6.90 +/- 1.08     | -8.15e-03 +/- 1.28e-03 |  1.10e-01 +/- 1.0e-03  |  1.18e-01 +/- 7.7e-04  |
+test_build_transform_fft_highres        |     -4.74 +/- 1.01     | -2.55e-02 +/- 5.41e-03 |  5.13e-01 +/- 1.9e-03  |  5.38e-01 +/- 5.1e-03  |
 test_equilibrium_init_lowres            |     -7.71 +/- 2.96     | -3.65e-02 +/- 1.40e-02 |  4.37e-01 +/- 7.6e-03  |  4.73e-01 +/- 1.2e-02  |
+test_equilibrium_init_medres            |     -6.18 +/- 1.71     | -3.70e-02 +/- 1.02e-02 |  5.62e-01 +/- 6.0e-03  |  5.99e-01 +/- 8.3e-03  |
+test_equilibrium_init_highres           |     -3.87 +/- 1.06     | -4.00e-02 +/- 1.10e-02 |  9.93e-01 +/- 8.2e-03  |  1.03e+00 +/- 7.3e-03  |
 test_objective_compile_dshape_current   |    -11.06 +/- 5.52     | -6.50e-01 +/- 3.24e-01 |  5.22e+00 +/- 2.4e-01  |  5.87e+00 +/- 2.2e-01  |
 test_objective_compile_atf              |     -3.34 +/- 4.32     | -6.07e-01 +/- 7.86e-01 |  1.76e+01 +/- 7.2e-01  |  1.82e+01 +/- 3.1e-01  |
 test_objective_compute_dshape_current   |    -13.69 +/- 6.52     | -6.29e-04 +/- 3.00e-04 |  3.97e-03 +/- 2.5e-04  |  4.60e-03 +/- 1.7e-04  |
 test_objective_compute_atf              |     -2.69 +/- 2.65     | -3.41e-04 +/- 3.36e-04 |  1.23e-02 +/- 1.8e-04  |  1.27e-02 +/- 2.8e-04  |
 test_objective_jac_dshape_current       |     -2.28 +/- 7.67     | -3.27e-03 +/- 1.10e-02 |  1.40e-01 +/- 8.3e-03  |  1.43e-01 +/- 7.2e-03  |
 test_objective_jac_atf                  |     +8.51 +/- 6.81     | +6.91e-01 +/- 5.52e-01 |  8.81e+00 +/- 3.3e-01  |  8.11e+00 +/- 4.4e-01  |
 test_perturb_1                          |     +0.17 +/- 16.88    | +1.59e-02 +/- 1.58e+00 |  9.36e+00 +/- 1.1e+00  |  9.34e+00 +/- 1.1e+00  |
 test_perturb_2                          |     +3.80 +/- 6.44     | +6.67e-01 +/- 1.13e+00 |  1.82e+01 +/- 4.3e-01  |  1.75e+01 +/- 1.0e+00  |

@f0uriest
Copy link
Member

@f0uriest do we want to make a similar change to the _add_pressure function, where if pres_step is zero it will just solve with the entire pressure? right now it will just run through the function and not run anything if pres_step is zero, effectively skipping that step, which is fine but it is now different than the behavior of _solve_axisym if mres_step is 0 (where that function will now run the equilibrium at the full poloidal resolutoin in one step if mres_step is 0)

we could revert that behavior to skipping the axisym solve if mres_step is 0 by reverting the <= to < in that function's while loop, I think

I don't think that's necessary. In general neither step should ever be zero.

@github-actions
Copy link
Contributor

|             benchmark_name             |         dt(%)          |         dt(s)          |        t_new(s)        |        t_old(s)        | 
| -------------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
 test_build_transform_fft_lowres         |     -3.93 +/- 8.08     | -1.10e-03 +/- 2.27e-03 |  2.69e-02 +/- 1.2e-03  |  2.80e-02 +/- 1.9e-03  |
 test_build_transform_fft_midres         |     -2.38 +/- 4.53     | -3.78e-03 +/- 7.21e-03 |  1.55e-01 +/- 3.7e-03  |  1.59e-01 +/- 6.2e-03  |
 test_build_transform_fft_highres        |     -1.52 +/- 5.37     | -1.10e-02 +/- 3.90e-02 |  7.14e-01 +/- 3.0e-02  |  7.25e-01 +/- 2.5e-02  |
 test_equilibrium_init_lowres            |     -4.23 +/- 5.31     | -2.61e-02 +/- 3.27e-02 |  5.90e-01 +/- 2.2e-02  |  6.16e-01 +/- 2.4e-02  |
 test_equilibrium_init_medres            |     -3.63 +/- 5.07     | -2.77e-02 +/- 3.88e-02 |  7.37e-01 +/- 2.4e-02  |  7.65e-01 +/- 3.0e-02  |
 test_equilibrium_init_highres           |     -3.06 +/- 3.05     | -3.89e-02 +/- 3.87e-02 |  1.23e+00 +/- 2.2e-02  |  1.27e+00 +/- 3.1e-02  |
 test_objective_compile_dshape_current   |     -3.84 +/- 3.37     | -2.77e-01 +/- 2.43e-01 |  6.93e+00 +/- 1.8e-01  |  7.21e+00 +/- 1.7e-01  |
 test_objective_compile_atf              |     -1.28 +/- 4.35     | -2.47e-01 +/- 8.41e-01 |  1.91e+01 +/- 6.6e-01  |  1.93e+01 +/- 5.2e-01  |
 test_objective_compute_dshape_current   |     +1.11 +/- 8.20     | +4.08e-05 +/- 3.00e-04 |  3.70e-03 +/- 2.5e-04  |  3.66e-03 +/- 1.6e-04  |
 test_objective_compute_atf              |     +0.68 +/- 11.72    | +8.55e-05 +/- 1.47e-03 |  1.26e-02 +/- 6.9e-04  |  1.25e-02 +/- 1.3e-03  |
 test_objective_jac_dshape_current       |     -7.79 +/- 10.69    | -9.18e-03 +/- 1.26e-02 |  1.09e-01 +/- 1.0e-02  |  1.18e-01 +/- 7.5e-03  |
 test_objective_jac_atf                  |     +0.35 +/- 1.93     | +2.50e-02 +/- 1.36e-01 |  7.07e+00 +/- 9.9e-02  |  7.05e+00 +/- 9.4e-02  |
 test_perturb_1                          |     -3.49 +/- 11.66    | -4.22e-01 +/- 1.41e+00 |  1.17e+01 +/- 9.9e-01  |  1.21e+01 +/- 1.0e+00  |
 test_perturb_2                          |     -0.85 +/- 7.19     | -1.96e-01 +/- 1.65e+00 |  2.27e+01 +/- 1.0e+00  |  2.29e+01 +/- 1.3e+00  |

@github-actions
Copy link
Contributor

|             benchmark_name             |         dt(%)          |         dt(s)          |        t_new(s)        |        t_old(s)        | 
| -------------------------------------- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
 test_build_transform_fft_lowres         |     -3.90 +/- 2.95     | -7.84e-04 +/- 5.94e-04 |  1.93e-02 +/- 4.4e-04  |  2.01e-02 +/- 4.0e-04  |
+test_build_transform_fft_midres         |     -4.29 +/- 0.67     | -4.99e-03 +/- 7.79e-04 |  1.11e-01 +/- 5.4e-04  |  1.16e-01 +/- 5.6e-04  |
+test_build_transform_fft_highres        |     -3.76 +/- 0.88     | -2.01e-02 +/- 4.69e-03 |  5.13e-01 +/- 3.5e-03  |  5.33e-01 +/- 3.2e-03  |
 test_equilibrium_init_lowres            |     -1.29 +/- 1.53     | -5.71e-03 +/- 6.75e-03 |  4.36e-01 +/- 4.9e-03  |  4.42e-01 +/- 4.6e-03  |
 test_equilibrium_init_medres            |     -0.86 +/- 2.16     | -4.86e-03 +/- 1.22e-02 |  5.60e-01 +/- 1.1e-02  |  5.65e-01 +/- 6.1e-03  |
 test_equilibrium_init_highres           |     -0.56 +/- 0.93     | -5.59e-03 +/- 9.25e-03 |  9.90e-01 +/- 6.5e-03  |  9.95e-01 +/- 6.5e-03  |
 test_objective_compile_dshape_current   |     -1.12 +/- 7.00     | -5.97e-02 +/- 3.72e-01 |  5.26e+00 +/- 2.3e-01  |  5.32e+00 +/- 2.9e-01  |
 test_objective_compile_atf              |     +1.25 +/- 3.99     | +1.90e-01 +/- 6.04e-01 |  1.53e+01 +/- 4.4e-01  |  1.51e+01 +/- 4.1e-01  |
 test_objective_compute_dshape_current   |     -1.70 +/- 12.85    | -5.88e-05 +/- 4.43e-04 |  3.39e-03 +/- 9.1e-05  |  3.45e-03 +/- 4.3e-04  |
 test_objective_compute_atf              |     +0.52 +/- 2.75     | +5.89e-05 +/- 3.13e-04 |  1.14e-02 +/- 2.7e-04  |  1.14e-02 +/- 1.5e-04  |
 test_objective_jac_dshape_current       |     -2.07 +/- 14.49    | -2.78e-03 +/- 1.94e-02 |  1.31e-01 +/- 1.8e-02  |  1.34e-01 +/- 7.8e-03  |
 test_objective_jac_atf                  |     +1.20 +/- 1.29     | +7.77e-02 +/- 8.35e-02 |  6.54e+00 +/- 6.0e-02  |  6.46e+00 +/- 5.8e-02  |
 test_perturb_1                          |     -0.55 +/- 14.16    | -4.83e-02 +/- 1.23e+00 |  8.66e+00 +/- 8.6e-01  |  8.71e+00 +/- 8.8e-01  |
 test_perturb_2                          |     -1.63 +/- 6.42     | -2.73e-01 +/- 1.07e+00 |  1.64e+01 +/- 6.8e-01  |  1.67e+01 +/- 8.3e-01  |

@dpanici dpanici merged commit b0794c9 into master Oct 20, 2023
16 checks passed
@dpanici dpanici deleted the dp/io-hotfix branch October 20, 2023 03:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants