From 2137bb6b9959e2429d36e8cdaecb99a26452ce38 Mon Sep 17 00:00:00 2001 From: Dario Panici Date: Mon, 11 Nov 2024 14:57:58 -0600 Subject: [PATCH 1/9] add fill kwarg to plot_section --- desc/plotting.py | 8 ++++++-- tests/baseline/test_section_chi_contour.png | Bin 0 -> 114249 bytes tests/test_plotting.py | 8 ++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 tests/baseline/test_section_chi_contour.png diff --git a/desc/plotting.py b/desc/plotting.py index 3a6dcdd76a..def22fa14d 100644 --- a/desc/plotting.py +++ b/desc/plotting.py @@ -1354,6 +1354,8 @@ def plot_section( * ``phi``: float, int or array-like. Toroidal angles to plot. If an integer, plot that number equally spaced in [0,2pi/NFP). Default 1 for axisymmetry and 6 for non-axisymmetry + * ``fill`` : bool, Whether the contours are filled, i.e. whether to use + `contourf` or `contour`. Default to ``fill=True`` Returns ------- @@ -1442,7 +1444,7 @@ def plot_section( R = coords["R"].reshape((nt, nr, nz), order="F") Z = coords["Z"].reshape((nt, nr, nz), order="F") data = data.reshape((nt, nr, nz), order="F") - + op = "contour" + ("f" if kwargs.pop("fill", True) else "") contourf_kwargs = {} if log: data = np.abs(data) # ensure data is positive for log plot @@ -1474,7 +1476,9 @@ def plot_section( for i in range(nphi): divider = make_axes_locatable(ax[i]) - cntr = ax[i].contourf(R[:, :, i], Z[:, :, i], data[:, :, i], **contourf_kwargs) + cntr = getattr(ax[i], op)( + R[:, :, i], Z[:, :, i], data[:, :, i], **contourf_kwargs + ) cax = divider.append_axes("right", **cax_kwargs) cbar = fig.colorbar(cntr, cax=cax) cbar.update_ticks() diff --git a/tests/baseline/test_section_chi_contour.png b/tests/baseline/test_section_chi_contour.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8c342c185110620149b79be563c2a3c4344441 GIT binary patch literal 114249 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

HzEo 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 tr(=&?z;dEIi(p2DtA=|as_ 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 Date: Mon, 11 Nov 2024 16:01:11 -0500 Subject: [PATCH 2/9] Fix Benchmark cancelation rather than queueing --- .github/workflows/benchmark.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 4e9273c2cd..1379485e74 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -1,10 +1,9 @@ name: Benchmarks on: - pull_request: + pull_request_target: branches: - master - pull_request_target: types: [opened, synchronize] workflow_dispatch: inputs: From 056f0b72ff75462a6a52e0e1e5a70aa32efb47f1 Mon Sep 17 00:00:00 2001 From: Rory Conlin Date: Tue, 12 Nov 2024 11:19:51 -0500 Subject: [PATCH 3/9] Add action for checking changelog updates --- .github/workflows/changelog_update.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 .github/workflows/changelog_update.yml diff --git a/.github/workflows/changelog_update.yml b/.github/workflows/changelog_update.yml new file mode 100644 index 0000000000..41ca2f9043 --- /dev/null +++ b/.github/workflows/changelog_update.yml @@ -0,0 +1,19 @@ +name: Check changelog updated + +on: + pull_request: + branches: + - master + workflow_dispatch: + +jobs: + check_changelog_updated: + if: ${{contains(github.event.pull_request.labels.*.name, 'skip_changelog') == false}} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: danieljimeneznz/ensure-files-changed@v4.1.0 + with: + require-changes-to: | + CHANGELOG.md + token: ${{ secrets.GITHUB_TOKEN }} From 5ed344adb82808264fb8e81c35b827e35456977c Mon Sep 17 00:00:00 2001 From: Rory Conlin Date: Tue, 12 Nov 2024 11:27:28 -0500 Subject: [PATCH 4/9] Fix if syntax --- .github/workflows/changelog_update.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/changelog_update.yml b/.github/workflows/changelog_update.yml index 41ca2f9043..5c34f14594 100644 --- a/.github/workflows/changelog_update.yml +++ b/.github/workflows/changelog_update.yml @@ -8,7 +8,7 @@ on: jobs: check_changelog_updated: - if: ${{contains(github.event.pull_request.labels.*.name, 'skip_changelog') == false}} + if: contains(github.event.pull_request.labels.*.name, 'skip_changelog') == false runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 57f94f329de817e467224033c5e0ee5db6c2c833 Mon Sep 17 00:00:00 2001 From: Rory Conlin Date: Tue, 12 Nov 2024 11:50:11 -0500 Subject: [PATCH 5/9] Fix getting labels --- .github/workflows/changelog_update.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/changelog_update.yml b/.github/workflows/changelog_update.yml index 5c34f14594..0fc547767a 100644 --- a/.github/workflows/changelog_update.yml +++ b/.github/workflows/changelog_update.yml @@ -7,9 +7,26 @@ on: workflow_dispatch: jobs: + get_labels: + runs-on: ubuntu-latest + outputs: + labels: ${{ steps.step1.outputs.labels }} + steps: + - id: step1 + run: | + labels="$(gh api repos/$OWNER/$REPO_NAME/pulls/$PULL_REQUEST_NUMBER --jq '.labels.[].name')" + echo "$labels" + echo "$labels" >> "$GITHUB_OUTPUT" + shell: bash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + OWNER: ${{ github.repository_owner }} + REPO_NAME: ${{ github.event.repository.name }} + PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }} check_changelog_updated: - if: contains(github.event.pull_request.labels.*.name, 'skip_changelog') == false runs-on: ubuntu-latest + needs: get_labels + if: contains(${{needs.get_labels.outputs.labels}}, 'skip_changelog') == false steps: - uses: actions/checkout@v4 - uses: danieljimeneznz/ensure-files-changed@v4.1.0 From 9906f9ef151d98066daec4502498e243ca3ea861 Mon Sep 17 00:00:00 2001 From: Rory Conlin Date: Tue, 12 Nov 2024 11:57:50 -0500 Subject: [PATCH 6/9] Trying again --- .github/workflows/changelog_update.yml | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/.github/workflows/changelog_update.yml b/.github/workflows/changelog_update.yml index 0fc547767a..0e3f883d78 100644 --- a/.github/workflows/changelog_update.yml +++ b/.github/workflows/changelog_update.yml @@ -4,29 +4,12 @@ on: pull_request: branches: - master - workflow_dispatch: + types: [opened, synchronize, labeled, unlabeled] jobs: - get_labels: - runs-on: ubuntu-latest - outputs: - labels: ${{ steps.step1.outputs.labels }} - steps: - - id: step1 - run: | - labels="$(gh api repos/$OWNER/$REPO_NAME/pulls/$PULL_REQUEST_NUMBER --jq '.labels.[].name')" - echo "$labels" - echo "$labels" >> "$GITHUB_OUTPUT" - shell: bash - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - OWNER: ${{ github.repository_owner }} - REPO_NAME: ${{ github.event.repository.name }} - PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }} check_changelog_updated: + if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip_changelog') }} runs-on: ubuntu-latest - needs: get_labels - if: contains(${{needs.get_labels.outputs.labels}}, 'skip_changelog') == false steps: - uses: actions/checkout@v4 - uses: danieljimeneznz/ensure-files-changed@v4.1.0 From 318033b3aec2d82eeb34842338f348eb1badf7e0 Mon Sep 17 00:00:00 2001 From: Rory Conlin Date: Tue, 12 Nov 2024 12:06:38 -0500 Subject: [PATCH 7/9] Refactor to only skip step not whole job --- .github/workflows/changelog_update.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/changelog_update.yml b/.github/workflows/changelog_update.yml index 0e3f883d78..e5ca165dfc 100644 --- a/.github/workflows/changelog_update.yml +++ b/.github/workflows/changelog_update.yml @@ -8,11 +8,11 @@ on: jobs: check_changelog_updated: - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip_changelog') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: danieljimeneznz/ensure-files-changed@v4.1.0 + - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip_changelog') }} + uses: danieljimeneznz/ensure-files-changed@v4.1.0 with: require-changes-to: | CHANGELOG.md From 91dac74e311bcdf403df86ce023070294ff65e14 Mon Sep 17 00:00:00 2001 From: Rory Conlin Date: Wed, 13 Nov 2024 01:26:48 -0500 Subject: [PATCH 8/9] Refactor coil test to use parameterize --- tests/conftest.py | 4 +- tests/test_examples.py | 124 ++++++++++++++++++++++------------------- 2 files changed, 69 insertions(+), 59 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index ccab0e07a6..54e60554d6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -284,13 +284,13 @@ def DummyMixedCoilSet(tmpdir_factory): vf_coil, displacement=[0, 0, 2], n=3, endpoint=True ) xyz_coil = FourierXYZCoil(current=2) - phi = 2 * np.pi * np.linspace(0, 1, 20, endpoint=True) ** 2 + phi = 2 * np.pi * np.linspace(0, 1, 20, endpoint=True) spline_coil = SplineXYZCoil( current=1, X=np.cos(phi), Y=np.sin(phi), Z=np.zeros_like(phi), - knots=np.linspace(0, 2 * np.pi, len(phi)), + knots=phi, ) full_coilset = MixedCoilSet( (tf_coilset, vf_coilset, xyz_coil, spline_coil), check_intersection=False diff --git a/tests/test_examples.py b/tests/test_examples.py index 5b4e328981..839c685def 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -1324,7 +1324,20 @@ def test_second_stage_optimization_CoilSet(): @pytest.mark.slow @pytest.mark.unit -def test_optimize_with_all_coil_types(DummyCoilSet, DummyMixedCoilSet): +@pytest.mark.parametrize( + "coil_type", + [ + "FourierPlanarCoil", + "FourierRZCoil", + "FourierXYZCoil", + "SplineXYZCoil", + "CoilSet sym", + "CoilSet asym", + "MixedCoilSet", + "nested CoilSet", + ], +) +def test_optimize_with_all_coil_types(DummyCoilSet, DummyMixedCoilSet, coil_type): """Test optimizing for every type of coil and dummy coil sets.""" sym_coils = load(load_from=str(DummyCoilSet["output_path_sym"]), file_format="hdf5") asym_coils = load( @@ -1340,66 +1353,63 @@ def test_optimize_with_all_coil_types(DummyCoilSet, DummyMixedCoilSet): quad_eval_grid = LinearGrid(M=2, sym=True) quad_field_grid = LinearGrid(N=2) - def test(c, method): - target = 11 - rtol = 1e-3 - # first just check that quad flux works for a couple iterations - # as this is an expensive objective to compute - obj = ObjectiveFunction( - QuadraticFlux( - eq=eq, - field=c, - vacuum=True, - weight=1e-4, - eval_grid=quad_eval_grid, - field_grid=quad_field_grid, - ) - ) - optimizer = Optimizer(method) - (c,), _ = optimizer.optimize(c, obj, maxiter=2, ftol=0, xtol=1e-15) - - # now check with optimizing geometry and actually check result - objs = [ - CoilLength(c, target=target), - ] - extra_msg = "" - if isinstance(c, MixedCoilSet): - # just to check they work without error - objs.extend( - [ - CoilCurvature(c, target=0.5, weight=1e-2), - CoilTorsion(c, target=0, weight=1e-2), - ] - ) - rtol = 3e-2 - extra_msg = " with curvature and torsion obj" - - obj = ObjectiveFunction(objs) - - (c,), _ = optimizer.optimize(c, obj, maxiter=25, ftol=5e-3, xtol=1e-15) - flattened_coils = tree_leaves( - c, is_leaf=lambda x: isinstance(x, _Coil) and not isinstance(x, CoilSet) - ) - lengths = [coil.compute("length")["length"] for coil in flattened_coils] - np.testing.assert_allclose( - lengths, target, rtol=rtol, err_msg=f"lengths {c}" + extra_msg - ) - spline_coil = mixed_coils.coils[-1].copy() - # single coil - test(FourierPlanarCoil(), "fmintr") - test(FourierRZCoil(), "fmintr") - test(FourierXYZCoil(), "fmintr") - test(spline_coil, "fmintr") + types = { + "FourierPlanarCoil": (FourierPlanarCoil(), "fmintr"), + "FourierRZCoil": (FourierRZCoil(), "fmintr"), + "FourierXYZCoil": (FourierXYZCoil(), "fmintr"), + "SplineXYZCoil": (spline_coil, "fmintr"), + "CoilSet sym": (sym_coils, "lsq-exact"), + "CoilSet asym": (asym_coils, "lsq-exact"), + "MixedCoilSet": (mixed_coils, "lsq-exact"), + "nested CoilSet": (nested_coils, "lsq-exact"), + } + c, method = types[coil_type] + + target = 11 + rtol = 1e-3 + # first just check that quad flux works for a couple iterations + # as this is an expensive objective to compute + obj = ObjectiveFunction( + QuadraticFlux( + eq=eq, + field=c, + vacuum=True, + weight=1e-4, + eval_grid=quad_eval_grid, + field_grid=quad_field_grid, + ) + ) + optimizer = Optimizer(method) + (cc,), _ = optimizer.optimize(c, obj, maxiter=2, ftol=0, xtol=1e-8, copy=True) + + # now check with optimizing geometry and actually check result + objs = [ + CoilLength(c, target=target), + ] + extra_msg = "" + if isinstance(c, MixedCoilSet): + # just to check they work without error + objs.extend( + [ + CoilCurvature(c, target=0.5, weight=1e-2), + CoilTorsion(c, target=0, weight=1e-2), + ] + ) + rtol = 3e-2 + extra_msg = " with curvature and torsion obj" - # CoilSet - test(sym_coils, "lsq-exact") - test(asym_coils, "lsq-exact") + obj = ObjectiveFunction(objs) - # MixedCoilSet - test(mixed_coils, "lsq-exact") - test(nested_coils, "lsq-exact") + (c,), _ = optimizer.optimize(c, obj, maxiter=25, ftol=5e-3, xtol=1e-8) + flattened_coils = tree_leaves( + c, is_leaf=lambda x: isinstance(x, _Coil) and not isinstance(x, CoilSet) + ) + lengths = [coil.compute("length")["length"] for coil in flattened_coils] + np.testing.assert_allclose( + lengths, target, rtol=rtol, err_msg=f"lengths {c}" + extra_msg + ) @pytest.mark.unit From e6177b60e130957be34db0716f8045c4be378b84 Mon Sep 17 00:00:00 2001 From: Rory Conlin Date: Wed, 13 Nov 2024 12:51:36 -0500 Subject: [PATCH 9/9] Add filter --- .github/workflows/changelog_update.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/changelog_update.yml b/.github/workflows/changelog_update.yml index e5ca165dfc..c3b1691be6 100644 --- a/.github/workflows/changelog_update.yml +++ b/.github/workflows/changelog_update.yml @@ -10,8 +10,24 @@ jobs: check_changelog_updated: runs-on: ubuntu-latest steps: + - name: Filter changes + id: changes + uses: dorny/paths-filter@v3 + with: + filters: | + has_changes: + - 'desc/**' + - 'requirements.txt' + - 'requirements_conda.yml' + - '.github/workflows/changelog_update.yml' + + - name: Check for relevant changes + id: check_changes + run: echo "has_changes=${{ steps.changes.outputs.has_changes }}" >> $GITHUB_ENV + - uses: actions/checkout@v4 - - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip_changelog') }} + + - if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip_changelog') && env.has_changes == 'true'}} uses: danieljimeneznz/ensure-files-changed@v4.1.0 with: require-changes-to: |