Skip to content

Commit

Permalink
Merge branch 'master' into ripple
Browse files Browse the repository at this point in the history
  • Loading branch information
unalmis committed Nov 16, 2024
2 parents 4527892 + 35ec831 commit e20e792
Show file tree
Hide file tree
Showing 81 changed files with 201 additions and 102 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: Benchmarks

on:
pull_request:
pull_request_target:
branches:
- master
types: [opened, synchronize]
workflow_dispatch:
inputs:
debug_enabled:
Expand Down Expand Up @@ -73,6 +74,7 @@ jobs:
source .venv-${{ matrix.python-version }}/bin/activate
python -m pip install --upgrade pip
pip install -r devtools/dev-requirements.txt
pip install matplotlib==3.9.2
- name: Benchmark with pytest-benchmark (PR)
if: env.has_changes == 'true'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cache_dependencies.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
source .venv-${{ matrix.python-version }}/bin/activate
python -m pip install --upgrade pip
pip install -r devtools/dev-requirements.txt
pip install matplotlib==3.7.2
pip install matplotlib==3.9.2
- name: Cache Python environment
id: cache-env
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/changelog_update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Check changelog updated

on:
pull_request:
branches:
- master
types: [opened, synchronize, labeled, unlabeled]

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') && env.has_changes == 'true'}}
uses: danieljimeneznz/[email protected]
with:
require-changes-to: |
CHANGELOG.md
token: ${{ secrets.GITHUB_TOKEN }}
1 change: 0 additions & 1 deletion .github/workflows/jax_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ jobs:
sed -i '1i\jax[cpu] == ${{ matrix.jax-version }}' ./requirements.txt
cat ./requirements.txt
pip install -r ./devtools/dev-requirements.txt
pip install matplotlib==3.7.2
- name: Verify dependencies
run: |
python --version
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/notebook_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
source .venv-${{ matrix.python-version }}/bin/activate
python -m pip install --upgrade pip
pip install -r devtools/dev-requirements.txt
pip install matplotlib==3.7.2
pip install matplotlib==3.9.2
- name: Test notebooks with pytest and nbmake
if: env.has_changes == 'true'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/regression_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
source .venv-${{ matrix.python-version }}/bin/activate
python -m pip install --upgrade pip
pip install -r devtools/dev-requirements.txt
pip install matplotlib==3.7.2
pip install matplotlib==3.9.2
- name: Set Swap Space
if: env.has_changes == 'true'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
source .venv-${{ matrix.combos.python_version }}/bin/activate
python -m pip install --upgrade pip
pip install -r devtools/dev-requirements.txt
pip install matplotlib==3.7.2
pip install matplotlib==3.9.2
- name: Set Swap Space
if: env.has_changes == 'true'
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/weekly_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -r devtools/dev-requirements.txt
pip install matplotlib==3.9.2
- name: Set Swap Space
uses: pierotofy/set-swap-space@master
with:
Expand Down
61 changes: 45 additions & 16 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,67 @@
Changelog
=========

New Features
- Add ``from_input_file`` method to ``Equilibrium`` class to generate an ``Equilibrium`` object with boundary, profiles, resolution and flux specified in a given DESC or VMEC input file


Bug Fixes

- Fixes bug that occurs when taking the gradient of ``root`` and ``root_scalar`` with newer versions of JAX (>=0.4.34) and unpins the JAX version


v0.12.3
-------

[Github Commits](https://github.com/PlasmaControl/DESC/compare/v0.12.2...v0.12.3)

New Features

- Add ``use_signed_distance`` flag to ``PlasmaVesselDistance`` which will use a signed distance as the target, which is positive when the plasma is inside of the vessel surface and negative if the plasma is outside of the vessel surface, to allow optimizer to distinguish if the equilbrium surface exits the vessel surface and guard against it by targeting a positive signed distance.
- Add ``VectorPotentialField`` class to allow calculation of magnetic fields from a user-specified
vector potential function.
- Add ``compute_magnetic_vector_potential`` methods to most ``MagneticField`` objects to allow vector potential
computation.
- Add ability to save and load vector potential information from ``mgrid`` files.
- Changes ``ToroidalFlux`` objective to default using a 1D loop integral of the vector potential
to compute the toroidal flux when possible, as opposed to a 2D surface integral of the magnetic field dotted with ``n_zeta``.
- Allow specification of Nyquist spectrum maximum modenumbers when using ``VMECIO.save`` to save a DESC .h5 file as a VMEC-format wout file
- Added and tested infinite-n ideal-ballooning stability solver implemented as a part of the BallooningStability Objective. DESC can use reverse-mode AD to now optimize equilibria against infinite-n ideal ballooning modes.
- Add infinite-n ideal-ballooning stability solver implemented as a part of the ``BallooningStability`` Objective. DESC can use reverse-mode AD to now optimize equilibria against infinite-n ideal ballooning modes.
- Add ``jac_chunk_size`` to ``ObjectiveFunction`` and ``_Objective`` to control the above chunk size for the ``fwd`` mode Jacobian calculation
- if ``None``, the chunk size is equal to ``dim_x``, so no chunking is done
- if an ``int``, this is the chunk size to be used.
- if ``"auto"`` for the ``ObjectiveFunction``, will use a heuristic for the maximum ``jac_chunk_size`` needed to fit the jacobian calculation on the available device memory, according to the formula: ``max_jac_chunk_size = (desc_config.get("avail_mem") / estimated_memory_usage - 0.22) / 0.85 * self.dim_x`` with ``estimated_memory_usage = 2.4e-7 * self.dim_f * self.dim_x + 1``
- the ``ObjectiveFunction`` ``jac_chunk_size`` is used if ``deriv_mode="batched"``, and the ``_Objective`` ``jac_chunk_size`` will be used if ``deriv_mode="blocked"``
- Add ``from_input_file`` method to ``Equilibrium`` class to generate an ``Equilibrium`` object with boundary, profiles, resolution and flux specified in a given DESC or VMEC input file


- Make naming of grids kwargs among free boundary objectives more uniform
- Add kwarg options to plot 3d without any axis visible
- Pin jax version temporarily to avoid JAX-related bug

Bug Fixes

- Fixes bugs that occur when saving asymmetric equilibria as wout files
- Fixes bug that occurs when using ``VMECIO.plot_vmec_comparison`` to compare to an asymmetric wout file
- Fixes bug that occurs when taking the gradient of ``root`` and ``root_scalar`` with newer versions of JAX (>=0.4.34) and unpins the JAX version
- Fix error that can occur when `get_NAE_constraints` is called for only fixing the axis
- Bug fix for `most_rational` with negative arguments
- Fix bug in `FixOmniBMax`

Deprecations

- ``deriv_mode="looped"`` in ``ObjectiveFunction`` is deprecated and will be removed in a future version in favored of ``deriv_mode="batched"`` with ``jac_chunk_size=1``,




v0.12.2
-------

[Github Commits](https://github.com/PlasmaControl/DESC/compare/v0.12.1...v0.12.2)

- Add Vector Potential Calculation to `Coil` classes and Most `MagneticField` Classes
- Add automatic intersection checking to `CoilSet` objects, and a method `is_self_intersecting` which check if the coils in the `CoilSet` intersect one another.
- Add `flip_theta` compatibility function to switch the zero-point of the poloidal angle between the inboard/outboard side of the plasma.
- Change field line integration to use `diffrax` package instead of the deprecated `jax.experimental.odeint` function, allowing for specifying the integration method, the step-size used, and more. See the documentation of [`field_line_integrate`](https://desc-docs.readthedocs.io/en/latest/_api/magnetic_fields/desc.magnetic_fields.field_line_integrate.html#desc.magnetic_fields.field_line_integrate) and [`diffrax`](https://docs.kidger.site/diffrax/api/diffeqsolve/) for more details.
- Add `use_signed_distance` keyword to `PlasmaVesselDistance` objective to allow for specifying the desired relative position of the plasma and surface.
- Vectorize Boozer transform over multiple surfaces, to allow for calculation of Boozer-related quantities on grids that contain multiple radial surfaces.
- Optimizer now automatically scales linearly-constrained optimization parameters to be of roughly the same magnitude, to improve optimization when parameter values range many orders of magnitude
- Add `HermiteSplineProfile` class, which allows for profile derivative information to be specified along with profile value information.
- Add installation instructions for RAVEN cluster at IPP to the docs
- Change optimizer printed output to be easier to read
- Add `HeatingPower` and `FusionPower` objectives
- Reduce `QuadratureGrid` number of radial points to match its intended functionality
- Fix some plotting issues that arose when NFP differs from 1 for objects, or when passed-in phi exceeds 2pi/nfp
- Update `VMECIO` to allow specification of Nyquist spectrum and fix some bugs with asymmetric wout files
- The code no longer mods non-periodic angles (such as the field line label $\alpha$) by $2\pi$, as in field-line-following contexts, functions may not be periodic in these angles.


v0.12.1
-------

Expand Down
4 changes: 3 additions & 1 deletion desc/basis.py
Original file line number Diff line number Diff line change
Expand Up @@ -1440,7 +1440,9 @@ def zernike_radial_coeffs(l, m, exact=True):
# hence they are all integers. So, we can use exact arithmetic with integer
# division instead of floating point division.
# [1]https://en.wikipedia.org/wiki/Zernike_polynomials#Other_representations
coeffs[ii, s] = ((-1) ** ((ll - s) // 2) * factorial((ll + s) // 2)) // (
coeffs[ii, s] = (
int((-1) ** ((ll - s) // 2)) * factorial((ll + s) // 2)
) // (
factorial((ll - s) // 2)
* factorial((s + mm) // 2)
* factorial((s - mm) // 2)
Expand Down
26 changes: 16 additions & 10 deletions desc/magnetic_fields/_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -1816,10 +1816,10 @@ def from_mgrid(cls, mgrid_file, extcur=None, method="cubic", extrap=False):
ir = int(mgrid["ir"][()]) # number of grid points in the R coordinate
jz = int(mgrid["jz"][()]) # number of grid points in the Z coordinate
kp = int(mgrid["kp"][()]) # number of grid points in the phi coordinate
Rmin = mgrid["rmin"][()] # Minimum R coordinate (m)
Rmax = mgrid["rmax"][()] # Maximum R coordinate (m)
Zmin = mgrid["zmin"][()] # Minimum Z coordinate (m)
Zmax = mgrid["zmax"][()] # Maximum Z coordinate (m)
Rmin = mgrid["rmin"][()].filled() # Minimum R coordinate (m)
Rmax = mgrid["rmax"][()].filled() # Maximum R coordinate (m)
Zmin = mgrid["zmin"][()].filled() # Minimum Z coordinate (m)
Zmax = mgrid["zmax"][()].filled() # Maximum Z coordinate (m)
nfp = int(mgrid["nfp"][()]) # Number of field periods
Rgrid = np.linspace(Rmin, Rmax, ir)
Zgrid = np.linspace(Zmin, Zmax, jz)
Expand All @@ -1831,9 +1831,15 @@ def from_mgrid(cls, mgrid_file, extcur=None, method="cubic", extrap=False):
bz = np.zeros([kp, jz, ir, nextcur])
for i in range(nextcur):
coil_id = "%03d" % (i + 1,)
br[:, :, :, i] += mgrid["br_" + coil_id][()] # B_R radial magnetic field
bp[:, :, :, i] += mgrid["bp_" + coil_id][()] # B_phi toroidal field (T)
bz[:, :, :, i] += mgrid["bz_" + coil_id][()] # B_Z vertical magnetic field
br[:, :, :, i] += mgrid["br_" + coil_id][
()
].filled() # B_R radial magnetic field
bp[:, :, :, i] += mgrid["bp_" + coil_id][
()
].filled() # B_phi toroidal field (T)
bz[:, :, :, i] += mgrid["bz_" + coil_id][
()
].filled() # B_Z vertical magnetic field

# shift axes to correct order
br = np.moveaxis(br, (0, 1, 2), (1, 2, 0))
Expand All @@ -1849,13 +1855,13 @@ def from_mgrid(cls, mgrid_file, extcur=None, method="cubic", extrap=False):
coil_id = "%03d" % (i + 1,)
ar[:, :, :, i] += mgrid["ar_" + coil_id][
()
] # A_R radial mag. vec. potential
].filled() # A_R radial mag. vec. potential
ap[:, :, :, i] += mgrid["ap_" + coil_id][
()
] # A_phi toroidal mag. vec. potential
].filled() # A_phi toroidal mag. vec. potential
az[:, :, :, i] += mgrid["az_" + coil_id][
()
] # A_Z vertical mag. vec. potential
].filled() # A_Z vertical mag. vec. potential

# shift axes to correct order
ar = np.moveaxis(ar, (0, 1, 2), (1, 2, 0))
Expand Down
8 changes: 5 additions & 3 deletions desc/optimize/optimizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,9 +209,11 @@ def optimize( # noqa: C901 - FIXME: simplify this
objective, nonlinear_constraints = _maybe_wrap_nonlinear_constraints(
eq, objective, nonlinear_constraints, self.method, options
)
if not isinstance(objective, ProximalProjection):
for t in things:
linear_constraints = maybe_add_self_consistency(t, linear_constraints)
is_prox = isinstance(objective, ProximalProjection)
for t in things:
if isinstance(t, Equilibrium) and is_prox:
continue # don't add Equilibrium self-consistency if proximal is used
linear_constraints = maybe_add_self_consistency(t, linear_constraints)
linear_constraint = _combine_constraints(linear_constraints)
nonlinear_constraint = _combine_constraints(nonlinear_constraints)

Expand Down
8 changes: 6 additions & 2 deletions desc/plotting.py
Original file line number Diff line number Diff line change
Expand Up @@ -1368,6 +1368,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
-------
Expand Down Expand Up @@ -1456,7 +1458,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
Expand Down Expand Up @@ -1488,7 +1490,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()
Expand Down
2 changes: 1 addition & 1 deletion devtools/dev-requirements_conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies:
- matplotlib >= 3.5.0, < 4.0.0
- mpmath >= 1.0.0, < 2.0
- netcdf4 >= 1.5.4, < 2.0
- numpy >= 1.20.0, < 2.0
- numpy >= 1.20.0
- psutil
- scipy >= 1.7.0, < 2.0
- termcolor
Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ interpax >= 0.3.3
matplotlib >= 3.5.0, < 4.0.0
mpmath >= 1.0.0, < 2.0
netcdf4 >= 1.5.4, < 2.0
numpy >= 1.20.0, < 2.0.0
numpy >= 1.20.0
nvgpu
orthax
plotly >= 5.16, < 6.0
psutil
pylatexenc >= 2.0, < 3.0
quadax >= 0.2.2
scipy >= 1.7.0, < 2.0.0
scipy >= 1.7.0
termcolor
2 changes: 1 addition & 1 deletion requirements_conda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dependencies:
- matplotlib >= 3.5.0, < 4.0.0
- mpmath >= 1.0.0, < 2.0
- netcdf4 >= 1.5.4, < 2.0
- numpy >= 1.20.0, < 2.0
- numpy >= 1.20.0
- psutil
- scipy >= 1.7.0, < 2.0
- termcolor
Expand Down
Binary file modified tests/baseline/test_1d_elongation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_1d_iota.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_1d_iota_radial.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_1d_logpsi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_1d_p.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_2d_g_rz.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_2d_g_tz.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_2d_logF.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_2d_plot_Bn.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_Redl_figures_2_3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_Redl_figures_4_5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_Redl_sfincs_QA.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_Redl_sfincs_QH.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_Redl_sfincs_tokamak_benchmark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_binormal_drift_bounce1d.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_bounce1d_checks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_fsa_I.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_1d_curve.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_1d_surface.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_2d_surface.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_b_mag.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_basis_doublefourierseries.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_basis_fourierseries.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_basis_fourierzernike.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_basis_powerseries.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified tests/baseline/test_plot_boozer_modes.png
Binary file modified tests/baseline/test_plot_boozer_modes_breaking_only.png
Binary file modified tests/baseline/test_plot_boozer_modes_max.png
Binary file modified tests/baseline/test_plot_boozer_modes_no_norm.png
Binary file modified tests/baseline/test_plot_boozer_surface.png
Binary file modified tests/baseline/test_plot_boundaries.png
Binary file modified tests/baseline/test_plot_boundary.png
Binary file modified tests/baseline/test_plot_boundary_surface.png
Binary file modified tests/baseline/test_plot_coefficients.png
Binary file modified tests/baseline/test_plot_comparison.png
Binary file modified tests/baseline/test_plot_comparison_different_NFPs.png
Binary file modified tests/baseline/test_plot_comparison_no_theta.png
Binary file modified tests/baseline/test_plot_con_basis.png
Binary file modified tests/baseline/test_plot_cov_basis.png
Binary file modified tests/baseline/test_plot_grid_cheb1.png
Binary file modified tests/baseline/test_plot_grid_cheb2.png
Binary file modified tests/baseline/test_plot_grid_jacobi.png
Binary file modified tests/baseline/test_plot_grid_linear.png
Binary file modified tests/baseline/test_plot_grid_ocs.png
Binary file modified tests/baseline/test_plot_grid_quad.png
Binary file modified tests/baseline/test_plot_logo.png
Binary file modified tests/baseline/test_plot_normF_2d.png
Binary file modified tests/baseline/test_plot_normF_section.png
Binary file modified tests/baseline/test_plot_omnigenous_field.png
Binary file modified tests/baseline/test_plot_poincare.png
Binary file modified tests/baseline/test_plot_qs_error.png
Binary file modified tests/baseline/test_plot_surfaces.png
Binary file modified tests/baseline/test_plot_surfaces_HELIOTRON.png
Binary file modified tests/baseline/test_plot_surfaces_no_theta.png
Binary file modified tests/baseline/test_plot_vmec_comparison.png
Binary file removed tests/baseline/test_qh_optimization3.png
Diff not rendered.
Binary file modified tests/baseline/test_section_F.png
Binary file modified tests/baseline/test_section_J.png
Binary file added tests/baseline/test_section_chi_contour.png
Binary file modified tests/baseline/test_section_logF.png
Binary file modified tests/baseline/test_trapped_fraction_Kim.png
4 changes: 2 additions & 2 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading

0 comments on commit e20e792

Please sign in to comment.