diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 48926a07f..b53322842 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -15,7 +15,7 @@ jobs: strategy: fail-fast: false matrix: - platform: [ubuntu-latest, macos-11] + platform: [ubuntu-latest, macos-12] python-version: ["3.9"] runs-on: ${{ matrix.platform }} diff --git a/.github/workflows/extensive_test.yml b/.github/workflows/extensive_test.yml index f60d2e15f..b7e07749e 100644 --- a/.github/workflows/extensive_test.yml +++ b/.github/workflows/extensive_test.yml @@ -98,7 +98,7 @@ jobs: - name: Install python dependencies run: | sudo apt-get install graphviz graphviz-dev - pip install wheel numpy scipy f90nml h5py scikit-build cmake qsc sympy pyevtk matplotlib ninja plotly networkx pygraphviz ground bentley_ottmann + pip install wheel "numpy<2.0.0" scipy f90nml h5py scikit-build cmake qsc sympy pyevtk matplotlib ninja plotly networkx pygraphviz ground bentley_ottmann - name: Install booz_xform if: contains(matrix.packages, 'vmec') || contains(matrix.packages, 'all') diff --git a/.github/workflows/non_simd_tests.yml b/.github/workflows/non_simd_tests.yml index f3ae7c6c3..121cc36ee 100644 --- a/.github/workflows/non_simd_tests.yml +++ b/.github/workflows/non_simd_tests.yml @@ -84,7 +84,7 @@ jobs: - name: Install python dependencies run: | sudo apt-get install graphviz graphviz-dev - pip install wheel numpy scipy f90nml h5py scikit-build cmake qsc sympy pyevtk matplotlib ninja plotly networkx pygraphviz + pip install wheel "numpy<2.0.0" scipy f90nml h5py scikit-build cmake qsc sympy pyevtk matplotlib ninja plotly networkx pygraphviz ground bentley_ottmann - name: Install booz_xform run: pip install -v git+https://github.com/hiddenSymmetries/booz_xform diff --git a/.github/workflows/singularity.yml b/.github/workflows/singularity.yml index 55f686e49..809197d44 100644 --- a/.github/workflows/singularity.yml +++ b/.github/workflows/singularity.yml @@ -12,6 +12,7 @@ on: # Do the builds on all pull requests (to test them) pull_request: [] + workflow_dispatch: jobs: build-containers: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 637981a4c..f91910245 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -93,7 +93,7 @@ jobs: - name: Install python dependencies run: | sudo apt-get install graphviz graphviz-dev - pip install numpy cmake scikit-build f90nml ninja wheel setuptools sympy qsc pyevtk matplotlib plotly networkx pygraphviz mpi4py py_spec pyoculus h5py + pip install "numpy<2.0.0" cmake scikit-build f90nml ninja wheel setuptools sympy qsc pyevtk matplotlib plotly networkx pygraphviz mpi4py py_spec pyoculus h5py ground bentley_ottmann - name: Install booz_xform run: pip install -v git+https://github.com/hiddenSymmetries/booz_xform diff --git a/.github/workflows/wheel.yml b/.github/workflows/wheel.yml index 8044ebfe4..159b78e8f 100644 --- a/.github/workflows/wheel.yml +++ b/.github/workflows/wheel.yml @@ -8,7 +8,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-11, ubuntu-20.04] + os: [macos-12, ubuntu-20.04] steps: - uses: actions/checkout@v4 diff --git a/CMakeLists.txt b/CMakeLists.txt index 98613e3e0..57b7a4c5b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -119,7 +119,7 @@ set(XTENSOR_USE_TBB 0) pybind11_add_module(${PROJECT_NAME} src/simsoptpp/python.cpp src/simsoptpp/python_surfaces.cpp src/simsoptpp/python_curves.cpp - src/simsoptpp/boozerresidual.cpp + src/simsoptpp/boozerresidual_py.cpp src/simsoptpp/python_magneticfield.cpp src/simsoptpp/python_tracing.cpp src/simsoptpp/python_distance.cpp src/simsoptpp/biot_savart_py.cpp src/simsoptpp/biot_savart_vjp_py.cpp diff --git a/LICENSE b/LICENSE index 47140c918..9c839b9b3 100644 --- a/LICENSE +++ b/LICENSE @@ -19,3 +19,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/ci/Dockerfile.ubuntu b/ci/Dockerfile.ubuntu index ee7fbfbfa..afac3239d 100644 --- a/ci/Dockerfile.ubuntu +++ b/ci/Dockerfile.ubuntu @@ -5,7 +5,7 @@ FROM --platform=linux/amd64 ubuntu:22.04 as intermediate RUN apt update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential gfortran git m4 wget cmake ninja-build \ libopenblas-dev libfftw3-dev libhdf5-dev libhdf5-serial-dev libnetcdf-dev libnetcdff-dev libgl1-mesa-dev \ - python3-dev python3-pip python3-venv + python3-dev python3-pip python3-venv libxrender1 # Install mpich manually WORKDIR /src @@ -40,20 +40,22 @@ RUN python3 -m pip install wheel RUN python3 -m venv /venv/ RUN /venv/bin/pip install -U pip -RUN /venv/bin/python -m pip install numpy scipy jax jaxlib f90nml mpi4py jupyter notebook ipython qsc sympy scikit-build ninja "pybind11[global]" cmake -RUN /venv/bin/pip install git+https://github.com/zhucaoxiang/f90wrap +RUN /venv/bin/python -m pip install numpy scipy jax jaxlib f90nml mpi4py jupyter notebook ipython qsc sympy scikit-build ninja "pybind11[global]" cmake f90wrap h5py ENV PATH="/venv/bin:${PATH}" RUN git clone --depth 1 https://github.com/PrincetonUniversity/SPEC.git /src/SPEC && \ cd /src/SPEC && \ - /venv/bin/pip install -v . 2>&1 | tee spec_build.log + /venv/bin/pip install -v . 2>&1 | tee spec_build.log && \ + cd Utilities/pythontools && \ + /venv/bin/pip install -r requirements.txt && \ + /venv/bin/pip install -v . RUN git clone --depth 1 https://github.com/hiddenSymmetries/VMEC2000.git /src/VMEC && \ cd /src/VMEC && \ cp cmake/machines/ubuntu.json cmake_config_file.json && \ /venv/bin/pip install -v . 2>&1 | tee vmec_build.log -RUN /venv/bin/pip install h5py pyoculus py_spec +RUN /venv/bin/pip install pyoculus RUN /venv/bin/pip install vtk==9.2.6 pyqt5 matplotlib pyevtk plotly RUN /venv/bin/pip install mayavi RUN /venv/bin/pip install git+https://github.com/hiddenSymmetries/booz_xform diff --git a/ci/singularity.def b/ci/singularity.def index 03ddd49f5..11a70ac81 100644 --- a/ci/singularity.def +++ b/ci/singularity.def @@ -8,7 +8,7 @@ Stage: devel libfabric-dev libfabric-bin \ libhwloc-dev libpmix-dev libevent-dev \ libopenblas-dev libfftw3-dev libhdf5-dev libhdf5-serial-dev libnetcdf-dev libnetcdff-dev libgl1-mesa-dev \ - python3-dev python3-pip python3-venv + python3-dev python3-pip python3-venv libxrender1 %post @@ -44,8 +44,7 @@ Stage: devel python3 -m venv /venv/ . /venv/bin/activate /venv/bin/pip install -U pip - /venv/bin/pip install numpy scipy jax jaxlib f90nml jupyter notebook ipython qsc sympy scikit-build ninja "pybind11[global]" cmake - /venv/bin/pip install git+https://github.com/zhucaoxiang/f90wrap + /venv/bin/pip install numpy scipy jax jaxlib f90nml jupyter notebook ipython qsc sympy scikit-build ninja "pybind11[global]" cmake f90wrap h5py PATH="/usr/local/bin:/venv/bin:${PATH}" LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH}" @@ -60,7 +59,10 @@ Stage: devel cd SPEC && \ /venv/bin/python setup.py bdist_wheel && \ /venv/bin/pip install -v dist/*.whl && \ - cd .. && \ + cd Utilities/pythontools && \ + /venv/bin/pip install -r requirements.txt && \ + /venv/bin/pip install . && \ + cd ../../.. && \ rm -rf SPEC git clone --depth 1 https://github.com/hiddenSymmetries/VMEC2000.git && \ @@ -70,7 +72,7 @@ Stage: devel cd .. && \ rm -rf VMEC2000 - /venv/bin/pip install h5py pyoculus py_spec + /venv/bin/pip install pyoculus /venv/bin/pip install vtk==9.2.6 pyqt5 matplotlib pyevtk plotly /venv/bin/pip install mayavi /venv/bin/pip install git+https://github.com/hiddenSymmetries/booz_xform diff --git a/docs/source/containers.rst b/docs/source/containers.rst index a9f28effd..9bc0043f0 100644 --- a/docs/source/containers.rst +++ b/docs/source/containers.rst @@ -130,7 +130,7 @@ issues associated with Docker containers. Shifter allows to you use the simsopt Docker image files hosted on Docker Hub. Detailed instructions for using Shifter can be found at the `NERSC page on the simsopt wiki -`_. +`_. .. _singularity_doc: diff --git a/docs/source/simsopt.geo.rst b/docs/source/simsopt.geo.rst index 772632540..cda20ddc0 100644 --- a/docs/source/simsopt.geo.rst +++ b/docs/source/simsopt.geo.rst @@ -84,6 +84,14 @@ simsopt.geo.curvecws module :undoc-members: :show-inheritance: +simsopt.geo.curvexyzfouriersymmetries module +-------------------------------------------- + +.. automodule:: simsopt.geo.curvexyzfouriersymmetries + :members: + :undoc-members: + :show-inheritance: + simsopt.geo.finitebuild module ------------------------------ diff --git a/examples/2_Intermediate/boozer.py b/examples/2_Intermediate/boozer.py index 222a763d7..3b847d2fc 100755 --- a/examples/2_Intermediate/boozer.py +++ b/examples/2_Intermediate/boozer.py @@ -50,6 +50,8 @@ print(f"After LBFGS: iota={res['iota']:.3f}, tf={tf.J():.3f}, area={s.area():.3f}, ||residual||={np.linalg.norm(boozer_surface_residual(s, res['iota'], res['G'], bs, derivatives=0)):.3e}") if "DISPLAY" in os.environ: s.plot() + +boozer_surface.need_to_run_code = True # now drive the residual down using a specialised least squares algorithm res = boozer_surface.minimize_boozer_penalty_constraints_ls(tol=1e-10, maxiter=100, constraint_weight=100., iota=res['iota'], G=res['G'], method='manual') print(f"After Lev-Mar: iota={res['iota']:.3f}, tf={tf.J():.3f}, area={s.area():.3f}, ||residual||={np.linalg.norm(boozer_surface_residual(s, res['iota'], res['G'], bs, derivatives=0)):.3e}") diff --git a/examples/2_Intermediate/boozerQA_ls_mpi.py b/examples/2_Intermediate/boozerQA_ls_mpi.py index b984b28c7..f754fb170 100755 --- a/examples/2_Intermediate/boozerQA_ls_mpi.py +++ b/examples/2_Intermediate/boozerQA_ls_mpi.py @@ -1,51 +1,89 @@ -#!/usr/bin/env python3 -from simsopt.geo import SurfaceXYZTensorFourier, SurfaceRZFourier, BoozerSurface, curves_to_vtk, boozer_surface_residual, \ - ToroidalFlux, Volume, MajorRadius, CurveLength, CurveCurveDistance, NonQuasiSymmetricRatio, Iotas, BoozerResidual, \ - LpCurveCurvature, MeanSquaredCurvature, ArclengthVariation +#!/usr/bin/env python + +r""" +This example optimizes the NCSX coils and currents for QA on potentially multiple surfaces using the BoozerLS approach. +For a single surface, the objective is: + + J = ( \int_S B_nonQA**2 dS )/(\int_S B_QA dS) + + \int \int BoozerResidual(varphi, theta)^2 d\varphi d\theta + + 0.5*(iota - iota_0)**2 + + 0.5*(major_radius - target_major_radius)**2 + + 0.5*max(\sum_{coils} CurveLength - CurveLengthTarget, 0)**2 + + other coil regularization penalties on curvature, mean squared curvature, + coil-to-coil distance, and coil arclength. + +We first load surfaces in the NCSX equilibrium, then optimize for QA on them. +The first term the objective minimizes the deviation from quasi-axisymmetry on the loaded surfaces. +The second term minimizes the Boozer residual on the surfaces, which pushes the optimizer to heal +islands and generalized chaos. It is typically a good idea to weight this penalty term to be ~ the +same order of magnitude of the first term in the objective. + +The objective also includes penalty terms on the rotational transform, major radius, total coil length, curvature, +mean squared curvature, and coil arclength. The rotational transform and major radius penalty ensures +that the surfaces' rotational transform and aspect ratio do not stray too far from the value in the initial configuration. +There are also a few coil regularization penalties to prevent the coils from becoming too complex. The BFGS +optimizer is used, and quasisymmetry is improved substantially on the surface. Surface solves using the BoozerLS +approach can be costly, so this script supports distributing the solves across multiple MPI ranks. + +You can change the value of the variable `nsurfaces` below to optimize for nested surfaces and QS on up to 10 surfaces. +The BoozerSurface solves can be distributed to Nranks ranks using: + mpirun -np Nranks ./boozerQA_ls_mpi.py +where `nsurfaces` is the number of surfaces your optimizing on. For example, if you want one surface solve per rank, +and nsurfaces=Nranks=2, then the proper call is: + mpirun -np 2 ./boozerQA_ls_mpi.py + +More details on this work can be found at +A Giuliani et al, "Direct stellarator coil optimization for nested magnetic surfaces with precise +quasi-symmetry", Physics of Plasmas 30, 042511 (2023) doi:10.1063/5.0129716 +or arxiv:2210.03248. +""" + +import os +import numpy as np +from scipy.optimize import minimize +from simsopt.geo import curves_to_vtk, MajorRadius, CurveLength, CurveCurveDistance, NonQuasiSymmetricRatio, Iotas,\ + BoozerResidual, LpCurveCurvature, MeanSquaredCurvature, ArclengthVariation from simsopt._core import load from simsopt.objectives import MPIObjective, MPIOptimizable -from simsopt.field import BiotSavart, coils_via_symmetries -from simsopt.configs import get_ncsx_data +from simsopt.field import BiotSavart from simsopt.objectives import QuadraticPenalty -from scipy.optimize import minimize -import numpy as np -import os +from simsopt.util import proc0_print, in_github_actions try: from mpi4py import MPI comm = MPI.COMM_WORLD rank = comm.rank size = comm.size - def pprint(*args, **kwargs): - if comm.rank == 0: # only print on rank 0 - print(*args, **kwargs) - except ImportError: comm = None size = 1 - pprint = print + rank = 0 # Directory for output IN_DIR = "./inputs/input_ncsx/" OUT_DIR = "./output/" os.makedirs(OUT_DIR, exist_ok=True) -pprint("Running 2_Intermediate/boozerQA.py") -pprint("================================") +proc0_print("Running 2_Intermediate/boozerQA_ls_mpi.py") +proc0_print("=========================================") + +base_curves, base_currents, coils, curves, surfaces, boozer_surfaces, ress = load(IN_DIR + "ncsx_init.json") -base_curves, base_currents, coils, curves, surfaces, boozer_surfaces, ress = load(IN_DIR + f"ncsx_init.json") +# you can optimize for QA on up to 10 surfaces, by changing nsurfaces below. nsurfaces = 2 +assert nsurfaces <= 10 + surfaces = surfaces[:nsurfaces] boozer_surfaces = boozer_surfaces[:nsurfaces] ress = ress[:nsurfaces] - for boozer_surface, res in zip(boozer_surfaces, ress): - boozer_surface.run_code('ls', res['iota'], res['G'], verbose=False) + boozer_surface.run_code(res['iota'], res['G']) mpi_surfaces = MPIOptimizable(surfaces, ["x"], comm) mpi_boozer_surfaces = MPIOptimizable(boozer_surfaces, ["res", "need_to_run_code"], comm) mrs = [MajorRadius(boozer_surface) for boozer_surface in boozer_surfaces] +mrs_equality = [len(mrs)*QuadraticPenalty(mr, mr.J(), 'identity') if idx == len(mrs)-1 else 0*QuadraticPenalty(mr, mr.J(), 'identity') for idx, mr in enumerate(mrs)] iotas = [Iotas(boozer_surface) for boozer_surface in boozer_surfaces] nonQSs = [NonQuasiSymmetricRatio(boozer_surface, BiotSavart(coils)) for boozer_surface in boozer_surfaces] brs = [BoozerResidual(boozer_surface, BiotSavart(coils)) for boozer_surface in boozer_surfaces] @@ -68,7 +106,7 @@ def pprint(*args, **kwargs): Jiotas = QuadraticPenalty(mean_iota, IOTAS_TARGET, 'identity') JnonQSRatio = MPIObjective(nonQSs, comm, needs_splitting=True) JBoozerResidual = MPIObjective(brs, comm, needs_splitting=True) -Jmajor_radius = MPIObjective([len(mrs)*QuadraticPenalty(mr, mr.J(), 'identity') if idx == 0 else 0*QuadraticPenalty(mr, mr.J(), 'identity') for idx, mr in enumerate(mrs)], comm, needs_splitting=True) +Jmajor_radius = MPIObjective(mrs_equality, comm, needs_splitting=True) ls = [CurveLength(c) for c in base_curves] Jls = QuadraticPenalty(sum(ls), float(sum(ls).J()), 'max') @@ -86,15 +124,16 @@ def pprint(*args, **kwargs): # let's fix the coil current base_currents[0].fix_all() -boozer_surface.surface.to_vtk(OUT_DIR + f"surf_init_{rank}") -if comm is None or comm.rank == 0: - curves_to_vtk(curves, OUT_DIR + f"curves_init") +if comm is None or rank == 0: + curves_to_vtk(curves, OUT_DIR + "curves_init") +for idx, surface in enumerate(mpi_surfaces): + if comm is None or rank == 0: + surface.to_vtk(OUT_DIR + f"surf_init_{idx}") # dictionary used to save the last accepted surface dofs in the line search, in case Newton's method fails prevs = {'sdofs': [surface.x.copy() for surface in mpi_surfaces], 'iota': [boozer_surface.res['iota'] for boozer_surface in mpi_boozer_surfaces], 'G': [boozer_surface.res['G'] for boozer_surface in mpi_boozer_surfaces], 'J': JF.J(), 'dJ': JF.dJ().copy(), 'it': 0} - def fun(dofs): # initialize to last accepted surface values for idx, surface in enumerate(mpi_surfaces): @@ -103,15 +142,20 @@ def fun(dofs): boozer_surface.res['iota'] = prevs['iota'][idx] boozer_surface.res['G'] = prevs['G'][idx] - alldofs = MPI.COMM_WORLD.allgather(dofs) - assert np.all(np.norm(alldofs[0]-d) == 0 for d in alldofs) - + # this check makes sure that all ranks have exactly the same dofs + if comm is not None: + alldofs = comm.allgather(dofs) + assert np.all(np.all(alldofs[0]-d == 0) for d in alldofs) + JF.x = dofs J = JF.J() grad = JF.dJ() - success = np.all([boozer_surface.res['success'] for boozer_surface in mpi_boozer_surfaces]) - if not success: + # check to make sure that all the surface solves succeeded + success1 = np.all([boozer_surface.res['success'] for boozer_surface in mpi_boozer_surfaces]) + # check to make sure that the surfaces are not self-intersecting + success2 = np.all([not surface.is_self_intersecting() for surface in mpi_surfaces]) + if not (success1 and success2): J = prevs['J'] grad = -prevs['dJ'] for idx, boozer_surface in enumerate(mpi_boozer_surfaces): @@ -139,12 +183,12 @@ def callback(x): outstr += f"{'nonQS ratio':{width}}" + ", ".join([f'{np.sqrt(nonqs.J()):.6e}' for nonqs in nonQSs]) + "\n" outstr += f"{'Boozer Residual':{width}}" + ", ".join([f'{br.J():.6e}' for br in brs]) + "\n" outstr += f"{'<ι>':{width}} {mean_iota.J():.6f} \n" - outstr += f"{'ι on surfaces':{width}}" + ", ".join([f"{boozer_surface.res['iota']:.6f}" for boozer_surface in boozer_surfaces]) + "\n" - outstr += f"{'major radius on surfaces':{width}}" + ', '.join([f'{surface.major_radius():.6f}' for surface in surfaces]) + "\n" - outstr += f"{'minor radius on surfaces':{width}}" + ', '.join([f'{surface.minor_radius():.6f}' for surface in surfaces]) + "\n" - outstr += f"{'aspect ratio radius on surfaces':{width}}" + ', '.join([f'{surface.aspect_ratio():.6f}' for surface in surfaces]) + "\n" - outstr += f"{'volume':{width}}" + ', '.join([f'{surface.volume():.6f}' for surface in surfaces]) + "\n" - outstr += f"{'surfaces are self-intersecting':{width}}" + ', '.join([f'{surface.is_self_intersecting()}' for surface in surfaces]) + "\n" + outstr += f"{'ι on surfaces':{width}}" + ", ".join([f"{boozer_surface.res['iota']:.6f}" for boozer_surface in mpi_boozer_surfaces]) + "\n" + outstr += f"{'major radius on surfaces':{width}}" + ', '.join([f'{surface.major_radius():.6f}' for surface in mpi_surfaces]) + "\n" + outstr += f"{'minor radius on surfaces':{width}}" + ', '.join([f'{surface.minor_radius():.6f}' for surface in mpi_surfaces]) + "\n" + outstr += f"{'aspect ratio radius on surfaces':{width}}" + ', '.join([f'{surface.aspect_ratio():.6f}' for surface in mpi_surfaces]) + "\n" + outstr += f"{'volume':{width}}" + ', '.join([f'{surface.volume():.6f}' for surface in mpi_surfaces]) + "\n" + outstr += f"{'surfaces are self-intersecting':{width}}" + ', '.join([f'{surface.is_self_intersecting()}' for surface in mpi_surfaces]) + "\n" outstr += f"{'shortest coil to coil distance':{width}} {Jccdist.shortest_distance():.3f} \n" outstr += f"{'coil lengths':{width}}" + ', '.join([f'{J.J():5.6f}' for J in ls]) + "\n" outstr += f"{'coil length sum':{width}} {sum(J.J() for J in ls):.3f} \n" @@ -152,25 +196,27 @@ def callback(x): outstr += f"{'∫ κ^2 dl / ∫ dl':{width}}" + ', '.join([f'{Jmsc.J():.6f}' for Jmsc in msc_list]) + "\n" outstr += "\n\n" - pprint(outstr) + proc0_print(outstr) prevs['it'] += 1 dofs = JF.x callback(dofs) -pprint(""" +proc0_print(""" ################################################################################ ### Run the optimization ####################################################### ################################################################################ """) # Number of iterations to perform: -ci = "CI" in os.environ and os.environ['CI'].lower() in ['1', 'true'] -MAXITER = 50 if ci else 1e3 +MAXITER = 50 if in_github_actions else 1e3 res = minimize(fun, dofs, jac=True, method='BFGS', options={'maxiter': MAXITER}, tol=1e-15, callback=callback) -curves_to_vtk(curves, OUT_DIR + f"curves_opt") -boozer_surface.surface.to_vtk(OUT_DIR + "surf_opt") - -pprint("End of 2_Intermediate/boozerQA_ls.py") -pprint("================================") +if comm is None or rank == 0: + curves_to_vtk(curves, OUT_DIR + "curves_opt") +for idx, surface in enumerate(mpi_surfaces): + if comm is None or rank == 0: + surface.to_vtk(OUT_DIR + f"surf_opt_{idx}") + +proc0_print("End of 2_Intermediate/boozerQA_ls_mpi.py") +proc0_print("========================================") diff --git a/examples/2_Intermediate/inputs/input_ncsx/ncsx_init.json b/examples/2_Intermediate/inputs/input_ncsx/ncsx_init.json index 40adef205..557585731 100644 --- a/examples/2_Intermediate/inputs/input_ncsx/ncsx_init.json +++ b/examples/2_Intermediate/inputs/input_ncsx/ncsx_init.json @@ -19639,8 +19639,7 @@ "value": "Volume2" }, "targetlabel": -0.2960004452246598, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart2": { "@module": "simsopt.field.biotsavart", @@ -21380,8 +21379,7 @@ "value": "Volume3" }, "targetlabel": -0.6985426179774754, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart3": { "@module": "simsopt.field.biotsavart", @@ -23121,8 +23119,7 @@ "value": "Volume4" }, "targetlabel": -1.101084790730291, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart4": { "@module": "simsopt.field.biotsavart", @@ -24862,8 +24859,7 @@ "value": "Volume5" }, "targetlabel": -1.5036269634831068, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart5": { "@module": "simsopt.field.biotsavart", @@ -26603,8 +26599,7 @@ "value": "Volume6" }, "targetlabel": -1.9061691362359223, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart6": { "@module": "simsopt.field.biotsavart", @@ -28344,8 +28339,7 @@ "value": "Volume7" }, "targetlabel": -2.308711308988738, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart7": { "@module": "simsopt.field.biotsavart", @@ -30085,8 +30079,7 @@ "value": "Volume8" }, "targetlabel": -2.7112534817415535, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart8": { "@module": "simsopt.field.biotsavart", @@ -31826,8 +31819,7 @@ "value": "Volume9" }, "targetlabel": -3.113795654494369, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart9": { "@module": "simsopt.field.biotsavart", @@ -33567,8 +33559,7 @@ "value": "Volume10" }, "targetlabel": -3.5163378272471846, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 }, "BiotSavart10": { "@module": "simsopt.field.biotsavart", @@ -35308,8 +35299,7 @@ "value": "Volume11" }, "targetlabel": -3.91888, - "constraint_weight": 100.0, - "reg": null + "constraint_weight": 100.0 } } -} \ No newline at end of file +} diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_0.json b/examples/2_Intermediate/inputs/input_ncsx/surface_0.json deleted file mode 100644 index 15dffe388..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_0.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface1" - }, - { - "iota": -0.40631610013137615, - "G": 13.88747927294629 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.638555384855393, - 0.0, - 0.0 - ], - [ - 1.6320046060004947, - 0.00914340729162326, - -0.08295822399845987 - ], - [ - 1.6140444801159073, - 0.01822262319139582, - -0.15765927660150708 - ], - [ - 1.5894200473821325, - 0.026733828254299038, - -0.2162382227584297 - ], - [ - 1.5648995337320422, - 0.03346213093683796, - -0.25202031670064196 - ], - [ - 1.5474434569028597, - 0.03672677607787672, - -0.26036002538206104 - ], - [ - 1.5418642189065443, - 0.03493458745684996, - -0.23834108850594773 - ], - [ - 1.5481699199303507, - 0.027369071570533754, - -0.18447103473368662 - ], - [ - 1.5595068898491926, - 0.014968227190756826, - -0.10139465991565853 - ], - [ - 1.5651095696310926, - 5.400188259376037e-18, - -3.6754349253959105e-17 - ], - [ - 1.5595068898491926, - -0.014968227190756815, - 0.10139465991565848 - ], - [ - 1.5481699199303505, - -0.027369071570533737, - 0.18447103473368653 - ], - [ - 1.5418642189065443, - -0.03493458745684995, - 0.23834108850594765 - ], - [ - 1.5474434569028597, - -0.03672677607787672, - 0.26036002538206104 - ], - [ - 1.564899533732042, - -0.03346213093683797, - 0.25202031670064207 - ], - [ - 1.5894200473821325, - -0.026733828254299048, - 0.2162382227584298 - ], - [ - 1.6140444801159073, - -0.01822262319139583, - 0.1576592766015072 - ], - [ - 1.6320046060004947, - -0.009143407291623284, - 0.08295822399846005 - ], - [ - 1.6226871137507008, - 0.1820858670625909, - 0.008141613332533196 - ], - [ - 1.621791362735948, - 0.19125489133074713, - -0.07299648567715147 - ], - [ - 1.6095068368043206, - 0.19897938970373724, - -0.14518691756498145 - ], - [ - 1.5900373038024056, - 0.20498120270955858, - -0.2004586868089292 - ], - [ - 1.5695274569180595, - 0.20846280597968295, - -0.23209923550010486 - ], - [ - 1.5541928308848754, - 0.20828802699338184, - -0.2355609231102378 - ], - [ - 1.547893807474122, - 0.20341974804663196, - -0.2081633638272415 - ], - [ - 1.549595171229208, - 0.19354051290652075, - -0.14919040363771274 - ], - [ - 1.5521927554184383, - 0.17958646777178755, - -0.0629810401887963 - ], - [ - 1.5467230098618456, - 0.16352348568011543, - 0.037822034913934904 - ], - [ - 1.5311231405664585, - 0.14794301735173188, - 0.13469446925914352 - ], - [ - 1.5134694072254733, - 0.13593820291077097, - 0.2109951775764715 - ], - [ - 1.5048788500945536, - 0.13013470449763131, - 0.2580242226408799 - ], - [ - 1.5111573666394884, - 0.13124150240660107, - 0.2744610527708378 - ], - [ - 1.531149448424876, - 0.13800281601569822, - 0.26214204947249126 - ], - [ - 1.5592619594704633, - 0.1482930577543002, - 0.22395176247426204 - ], - [ - 1.5881317198649367, - 0.16000284649339425, - 0.1644214818207289 - ], - [ - 1.6108627174667585, - 0.17155678023089035, - 0.08996975094317773 - ], - [ - 1.5762847575421937, - 0.35759128262067086, - 0.015518629279982822 - ], - [ - 1.580234399751114, - 0.36800560834751783, - -0.06094001469003677 - ], - [ - 1.5733258051578176, - 0.37561353452777346, - -0.12809227520878988 - ], - [ - 1.558944396056383, - 0.3799976160041568, - -0.17807767656838522 - ], - [ - 1.54218869213224, - 0.38059325236618025, - -0.2043306483457884 - ], - [ - 1.5281983946882407, - 0.3767813330751487, - -0.20261585569221535 - ], - [ - 1.519814266292255, - 0.36806880254256175, - -0.17081176050428015 - ], - [ - 1.5153863386856297, - 0.3545212759647579, - -0.10944014153920659 - ], - [ - 1.5086989784685734, - 0.33732123437131956, - -0.024605178446917935 - ], - [ - 1.4936315236743867, - 0.3187708422798549, - 0.07035241384620904 - ], - [ - 1.4711547725013547, - 0.3019732878546931, - 0.15838513528457268 - ], - [ - 1.4504499874125834, - 0.29039469025110204, - 0.2254593883284215 - ], - [ - 1.4418493663436378, - 0.2865772948855142, - 0.2649041269537688 - ], - [ - 1.4498387411022267, - 0.2907710204946833, - 0.27621769493622006 - ], - [ - 1.4722555174915155, - 0.30115646313401767, - 0.2612336679534447 - ], - [ - 1.50299782759172, - 0.31513108318134514, - 0.2226209622416821 - ], - [ - 1.534634038519224, - 0.3302718644619936, - 0.1646440875277168 - ], - [ - 1.56052458548653, - 0.34479354716615823, - 0.09326901363102057 - ], - [ - 1.5029866200503534, - 0.5218554350505877, - 0.021222108126255947 - ], - [ - 1.5101898388747432, - 0.5336804283819246, - -0.04818316489419016 - ], - [ - 1.507297261437279, - 0.541514783741956, - -0.10831382382398552 - ], - [ - 1.4968985421504684, - 0.5445894997475598, - -0.15160863006755165 - ], - [ - 1.4829095654480609, - 0.5422967813736566, - -0.17185579272481338 - ], - [ - 1.4692622999954346, - 0.5343722864969254, - -0.1653947943926757 - ], - [ - 1.4578921075241607, - 0.5209044144506049, - -0.13100132529402378 - ], - [ - 1.4471279741520566, - 0.5026435517620698, - -0.0706744369348434 - ], - [ - 1.4325012131707258, - 0.48154934770380736, - 0.008186640899027263 - ], - [ - 1.4109038928709043, - 0.46061859617400686, - 0.09291783561035653 - ], - [ - 1.385332700285414, - 0.44328633459839867, - 0.16925408732975286 - ], - [ - 1.364750521958894, - 0.4329207731970006, - 0.22605631476004315 - ], - [ - 1.3580238248136356, - 0.43167371241516594, - 0.2581904776834478 - ], - [ - 1.3682889047153035, - 0.4392748847302019, - 0.26542852609544565 - ], - [ - 1.3926431591136021, - 0.45339685596423457, - 0.2493242816942946 - ], - [ - 1.4248281810682715, - 0.4710329381566305, - 0.21225220829869418 - ], - [ - 1.4576609111122072, - 0.4894892448841586, - 0.15813646539557977 - ], - [ - 1.484997207169361, - 0.5068339515362503, - 0.09234926081025738 - ], - [ - 1.4078578477099184, - 0.6737649064848256, - 0.024307792509068022 - ], - [ - 1.4166430978862397, - 0.6861058149345451, - -0.03668287047733509 - ], - [ - 1.416038317577801, - 0.6933636002768198, - -0.08870482144760054 - ], - [ - 1.4079347184674191, - 0.6944607853616265, - -0.12469419343935062 - ], - [ - 1.3952180104962617, - 0.688664069381561, - -0.13910800896691175 - ], - [ - 1.3808288590424311, - 0.6760485433506997, - -0.12915567931411967 - ], - [ - 1.366137480731372, - 0.6574799343994665, - -0.09466234513432181 - ], - [ - 1.3499559795470109, - 0.6347287137711873, - -0.03883779487693172 - ], - [ - 1.329825512213804, - 0.6106772485733342, - 0.030581760032938686 - ], - [ - 1.3051366136641318, - 0.5887389073654695, - 0.10274221633360084 - ], - [ - 1.2798654069000786, - 0.5722251638209279, - 0.16659718939148827 - ], - [ - 1.2619160871799793, - 0.5641208948569396, - 0.21358619331228607 - ], - [ - 1.2583627900191456, - 0.566087639375891, - 0.2395621530935762 - ], - [ - 1.271077103251216, - 0.5773573712401351, - 0.24413843983431646 - ], - [ - 1.296730546669087, - 0.5952183585735008, - 0.22841915301373586 - ], - [ - 1.329238258282934, - 0.6163497837526005, - 0.194481200301495 - ], - [ - 1.3619028558716904, - 0.6377638442681381, - 0.14586759334550445 - ], - [ - 1.3892080508677995, - 0.657333950521263, - 0.08728295416351624 - ], - [ - 1.2954508844340629, - 0.8141778928244755, - 0.02399177691466328 - ], - [ - 1.3042647446708695, - 0.8258513767697385, - -0.028313158617015333 - ], - [ - 1.3042666452904257, - 0.8312588155148407, - -0.0720855527082241 - ], - [ - 1.29676076597788, - 0.8291251524071, - -0.10106279050948742 - ], - [ - 1.2839237774198018, - 0.8188006323175061, - -0.11073049357727645 - ], - [ - 1.2681297254364476, - 0.8009998291296261, - -0.09927718170466276 - ], - [ - 1.2505901271386175, - 0.7776405721509883, - -0.06732725184156398 - ], - [ - 1.230864762403623, - 0.751578840397086, - -0.018579068989095046 - ], - [ - 1.2082321588524392, - 0.7263502312328335, - 0.039914480479270306 - ], - [ - 1.1836708151842839, - 0.7053064216984948, - 0.09960906851992062 - ], - [ - 1.1612394474221837, - 0.691218039755721, - 0.15226352786744868 - ], - [ - 1.1474249134564796, - 0.6864506650828798, - 0.19117673108176023 - ], - [ - 1.1475566910435113, - 0.6921207114890748, - 0.21269843796217933 - ], - [ - 1.1624608604778306, - 0.707078960310108, - 0.2160542119969352 - ], - [ - 1.1886471518025468, - 0.7284139499267177, - 0.2018700793718865 - ], - [ - 1.2204015202114946, - 0.7526010295685303, - 0.17195326974631964 - ], - [ - 1.2516457113085349, - 0.7763670506533111, - 0.12946265161658746 - ], - [ - 1.277574486893216, - 0.7973556205019062, - 0.07849657456029567 - ], - [ - 1.1694183680187078, - 0.9433538416580577, - 0.020264659855346027 - ], - [ - 1.1767603031042293, - 0.9531181913943334, - -0.024007086928293453 - ], - [ - 1.1758307131660688, - 0.9552709414828682, - -0.060349223665873454 - ], - [ - 1.1675849688365312, - 0.9485105049752044, - -0.08361732967362852 - ], - [ - 1.1538692140216178, - 0.9327054954821805, - -0.0904600096573003 - ], - [ - 1.1368273982453327, - 0.9096268539699434, - -0.07978367865704092 - ], - [ - 1.1177330459731476, - 0.8823714790694308, - -0.0524764657220679 - ], - [ - 1.0968675364029052, - 0.8546942706677535, - -0.011969448925892776 - ], - [ - 1.0746663093483044, - 0.8303911548651973, - 0.03602594377682832 - ], - [ - 1.0527547324376558, - 0.8122951086241418, - 0.0851631356849922 - ], - [ - 1.0346837085543894, - 0.8022615384003178, - 0.12916037352601734 - ], - [ - 1.0255375840532583, - 0.8018380921741484, - 0.16237730283965263 - ], - [ - 1.0291973682221012, - 0.8115906482686784, - 0.18130873847250922 - ], - [ - 1.0457343892235815, - 0.8301024047519692, - 0.18475326970858377 - ], - [ - 1.071665121710705, - 0.8543842387250467, - 0.17291261724772258 - ], - [ - 1.1016977099758276, - 0.8808121871885549, - 0.14732232657225935 - ], - [ - 1.1304000804063976, - 0.9059384229840312, - 0.1107744562527541 - ], - [ - 1.1536993071421182, - 0.9272701471897596, - 0.06692259946530392 - ], - [ - 1.0328310330619934, - 1.0617112387317982, - 0.014248508121768548 - ], - [ - 1.0374040945611063, - 1.068019010779002, - -0.02352233225553281 - ], - [ - 1.0343759429201471, - 1.0653257365004907, - -0.05439146945858681 - ], - [ - 1.0246923630374587, - 1.0526833711088668, - -0.07432485691820791 - ], - [ - 1.0101100374231857, - 1.0309534192256853, - -0.08079266879192736 - ], - [ - 0.9926093666277078, - 1.0031737906678204, - -0.07289515758360153 - ], - [ - 0.9735006297720203, - 0.9734920272076855, - -0.05130049732384522 - ], - [ - 0.9535641729387689, - 0.946219341817484, - -0.018738231053827395 - ], - [ - 0.9338353592882697, - 0.9249601236231115, - 0.020546622675539788 - ], - [ - 0.9159881466385641, - 0.9116234581413379, - 0.06187322668567007 - ], - [ - 0.9028460103820016, - 0.9069453454345874, - 0.1000498688605168 - ], - [ - 0.8982717992373163, - 0.9116385651302865, - 0.12992519144514658 - ], - [ - 0.9050182235567603, - 0.9257704490383738, - 0.14801455745252845 - ], - [ - 0.9226314365401006, - 0.9476933784738156, - 0.15276565055825672 - ], - [ - 0.9477058880262387, - 0.9743602166653276, - 0.14398858609440174 - ], - [ - 0.9753551170239951, - 1.0021048849486718, - 0.12288604104863514 - ], - [ - 1.0007405922363204, - 1.0274172825974923, - 0.09187218045539916 - ], - [ - 1.0204472200619186, - 1.0477800379572664, - 0.0542661561592562 - ], - [ - 0.8870494921179659, - 1.1702679322998037, - 0.007268979860060467 - ], - [ - 0.8880756073074626, - 1.171358341523124, - -0.0264345415115381 - ], - [ - 0.882578947586328, - 1.1623459612451947, - -0.05478356199777975 - ], - [ - 0.8716524530056686, - 1.143116392736364, - -0.0743620232225025 - ], - [ - 0.8569064884145863, - 1.1157261521387274, - -0.08282485076575251 - ], - [ - 0.8400329159460485, - 1.0843419789939506, - -0.07901180445210902 - ], - [ - 0.8222703821602239, - 1.0538724451442374, - -0.06312236883605978 - ], - [ - 0.8046488384049088, - 1.028823621484977, - -0.037082039874215905 - ], - [ - 0.7884146432930279, - 1.012234865497902, - -0.003959940873644552 - ], - [ - 0.7750555207615841, - 1.0048799122506498, - 0.032500425626644486 - ], - [ - 0.7667393802158297, - 1.0063775751337485, - 0.06752618160322345 - ], - [ - 0.7663448806175952, - 1.0166856499793187, - 0.09620695825610852 - ], - [ - 0.775698633842408, - 1.035407507212013, - 0.11510715257443753 - ], - [ - 0.7938911034437937, - 1.060640304306767, - 0.12236150871866945 - ], - [ - 0.817576662648942, - 1.0892612928857894, - 0.1173390006083735 - ], - [ - 0.8422488997104679, - 1.117587365289762, - 0.10083181583639055 - ], - [ - 0.8636250056788233, - 1.1420619283995748, - 0.07485520073769422 - ], - [ - 0.8789094167606091, - 1.1601220933920826, - 0.042395493533104976 - ], - [ - 0.7321950723753204, - 1.268199066405626, - 2.609239737498941e-18 - ], - [ - 0.7298350555585253, - 1.2627403617406865, - -0.03279591448173221 - ], - [ - 0.7225232848565059, - 1.2467860726009767, - -0.06185995394114709 - ], - [ - 0.7113118601926944, - 1.2212301615495098, - -0.08374750474203659 - ], - [ - 0.6974534644956215, - 1.1891213689605176, - -0.09584508603247537 - ], - [ - 0.6822540551633787, - 1.155417545600495, - -0.0965604584826825 - ], - [ - 0.6668186696315086, - 1.125515480901797, - -0.0855760657712594 - ], - [ - 0.6522346114453441, - 1.1039103692313952, - -0.06409474720750231 - ], - [ - 0.6397383619824913, - 1.0929536939082332, - -0.03442570577993494 - ], - [ - 0.6306356150916351, - 1.092292926401162, - -8.405962558080531e-19 - ], - [ - 0.626656483093326, - 1.1005065202063988, - 0.03442570577993494 - ], - [ - 0.6298971175327758, - 1.1168069273548378, - 0.06409474720750227 - ], - [ - 0.6413156639978614, - 1.1402396480695278, - 0.08557606577125937 - ], - [ - 0.6594939188866045, - 1.168558116406683, - 0.0965604584826825 - ], - [ - 0.681082581454926, - 1.1985731026909348, - 0.0958450860324754 - ], - [ - 0.7019604136733024, - 1.2266292217147932, - 0.08374750474203663 - ], - [ - 0.7184867695288225, - 1.2491165558120025, - 0.061859953941147135 - ], - [ - 0.7286477038721237, - 1.2634258795564532, - 0.03279591448173228 - ], - [ - 0.569957012546935, - 1.3533413607381442, - -0.007268979860060445 - ], - [ - 0.5652404959888223, - 1.341218929236093, - -0.04239549353310487 - ], - [ - 0.557242139849665, - 1.3189521584611281, - -0.07485520073769412 - ], - [ - 0.5467345994342194, - 1.288202626103638, - -0.10083181583639043 - ], - [ - 0.5345396196737048, - 1.2526728058381784, - -0.1173390006083734 - ], - [ - 0.521595896085421, - 1.217850015574168, - -0.12236150871866938 - ], - [ - 0.5088398875935188, - 1.189478476194415, - -0.11510715257443743 - ], - [ - 0.49730316023638665, - 1.1720169596646495, - -0.09620695825610846 - ], - [ - 0.4881788557568941, - 1.167204568915718, - -0.06752618160322334 - ], - [ - 0.4827237713809485, - 1.1736577264482337, - -0.03250042562664441 - ], - [ - 0.4824137864709939, - 1.1889045425563594, - 0.003959940873644638 - ], - [ - 0.48866297301704137, - 1.2112581459267786, - 0.037082039874215926 - ], - [ - 0.50154511876322, - 1.2390432623024108, - 0.06312236883605982 - ], - [ - 0.5190512422256294, - 1.2696608347213711, - 0.07901180445210906 - ], - [ - 0.5377939472115063, - 1.2999658637041105, - 0.08282485076575258 - ], - [ - 0.5541416090892863, - 1.3264313639421121, - 0.07436202322250254 - ], - [ - 0.5653316566314175, - 1.3455087700776918, - 0.054783561997779805 - ], - [ - 0.5703882770401028, - 1.3547752071711174, - 0.026434541511538196 - ], - [ - 0.4030533876941856, - 1.425313531814511, - -0.014248508121768541 - ], - [ - 0.397180520418257, - 1.407623234773464, - -0.054266156159256104 - ], - [ - 0.38939917089844395, - 1.380375416773684, - -0.09187218045539912 - ], - [ - 0.3801707291100345, - 1.3457347515282598, - -0.12288604104863504 - ], - [ - 0.36996775605596444, - 1.3079174826794773, - -0.1439885860944017 - ], - [ - 0.35941082248657485, - 1.2728689516107652, - -0.15276565055825672 - ], - [ - 0.34923161516177886, - 1.2466539970072057, - -0.14801455745252845 - ], - [ - 0.34036625685376476, - 1.2337454802078147, - -0.1299251914451466 - ], - [ - 0.3340147037994052, - 1.2353602534135362, - -0.1000498688605168 - ], - [ - 0.3314950001169366, - 1.249080733625091, - -0.061873226685670094 - ], - [ - 0.3341212849010748, - 1.271205205907366, - -0.0205466226755398 - ], - [ - 0.34266790109674805, - 1.2989204688124136, - 0.01873823105382735 - ], - [ - 0.35631851105745754, - 1.3298222895865621, - 0.05130049732384517 - ], - [ - 0.3724693038152113, - 1.361211822867887, - 0.07289515758360152 - ], - [ - 0.3877768324562789, - 1.3902576626389713, - 0.08079266879192734 - ], - [ - 0.3993043600029913, - 1.4137513030087794, - 0.07432485691820795 - ], - [ - 0.40541117965471857, - 1.4284587118825753, - 0.05439146945858687 - ], - [ - 0.406229547778789, - 1.432427805269413, - 0.02352233225553289 - ], - [ - 0.232259207624167, - 1.4844229351853693, - -0.020264659855346017 - ], - [ - 0.22618985006620845, - 1.4627679819084596, - -0.06692259946530377 - ], - [ - 0.21936564836538447, - 1.431924397563928, - -0.11077445625275402 - ], - [ - 0.21195687508030917, - 1.3945042977244848, - -0.14732232657225922 - ], - [ - 0.2040858944735664, - 1.3552813391137364, - -0.17291261724772247 - ], - [ - 0.19602257564596698, - 1.32068374905461, - -0.1847532697085837 - ], - [ - 0.18825943476350615, - 1.2971063905227658, - -0.18130873847250917 - ], - [ - 0.1816433655182318, - 1.289060646412915, - -0.1623773028396526 - ], - [ - 0.17743701845666557, - 1.2971931456901542, - -0.12916037352601734 - ], - [ - 0.17709083321951913, - 1.3178598965573702, - -0.0851631356849922 - ], - [ - 0.1818066805170068, - 1.3458839019194961, - -0.036025943776828356 - ], - [ - 0.19175318266583496, - 1.3772622864452448, - 0.011969448925892684 - ], - [ - 0.20528959346240244, - 1.409170951996821, - 0.05247646572206779 - ], - [ - 0.21934626437982252, - 1.4393348335835987, - 0.07978367865704089 - ], - [ - 0.23081204632611146, - 1.4656327997285943, - 0.09046000965730026 - ], - [ - 0.23764170864666773, - 1.4854134965769004, - 0.08361732967362855 - ], - [ - 0.23937354623820745, - 1.4959347388932231, - 0.06034922366587349 - ], - [ - 0.23704441500445697, - 1.495663412350505, - 0.024007086928293526 - ], - [ - 0.05737329616864867, - 1.528982321687155, - -0.02399177691466328 - ], - [ - 0.05174297975834723, - 1.5050897711273474, - -0.07849657456029555 - ], - [ - 0.04653073287270025, - 1.4721405078576904, - -0.12946265161658738 - ], - [ - 0.041570850414923526, - 1.4331992341045674, - -0.17195326974631953 - ], - [ - 0.03650140920623034, - 1.3936056045603826, - -0.20187007937188645 - ], - [ - 0.03111791187112726, - 1.3602601162339731, - -0.2160542119969352 - ], - [ - 0.025615773113143517, - 1.3398736024710285, - -0.21269843796217938 - ], - [ - 0.020771257678257778, - 1.3369244565299123, - -0.1911767310817602 - ], - [ - 0.01799265827144486, - 1.3512718812220756, - -0.15226352786744865 - ], - [ - 0.018977871051054786, - 1.3777422065170724, - -0.09960906851992066 - ], - [ - 0.024921672866115588, - 1.409534858851944, - -0.039914480479270334 - ], - [ - 0.035453987528915154, - 1.4417495730631775, - 0.01857906898909494 - ], - [ - 0.04816142692691287, - 1.4718631058995477, - 0.06732725184156389 - ], - [ - 0.05962133773502715, - 1.498732472086962, - 0.09927718170466276 - ], - [ - 0.06714025951182119, - 1.5213109239271783, - 0.11073049357727645 - ], - [ - 0.06966306191225323, - 1.5375903421713613, - 0.10106279050948748 - ], - [ - 0.06775792871040147, - 1.5451574558876364, - 0.07208555270822416 - ], - [ - 0.06307589969751279, - 1.5424520905302663, - 0.028313158617015437 - ], - [ - -0.12043139866065335, - 1.5561231142764853, - -0.024307792509068022 - ], - [ - -0.12533612551250262, - 1.5317564384540108, - -0.08728295416351609 - ], - [ - -0.12863173718441473, - 1.4983243928055296, - -0.14586759334550434 - ], - [ - -0.13084455879466952, - 1.4593289912315022, - -0.19448120030149485 - ], - [ - -0.1328910540110165, - 1.4206107745654624, - -0.22841915301373578 - ], - [ - -0.13553240106944775, - 1.3894637472043565, - -0.24413843983431643 - ], - [ - -0.13893511854168691, - 1.3728179630215889, - -0.23956215309357623 - ], - [ - -0.14241501783826957, - 1.3749118363705906, - -0.21358619331228607 - ], - [ - -0.14437117489640344, - 1.3945085377108395, - -0.16659718939148827 - ], - [ - -0.1427054568572758, - 1.4246509165250694, - -0.1027422163336009 - ], - [ - -0.13605074532921013, - 1.4570013004644744, - -0.030581760032938773 - ], - [ - -0.12528679913623542, - 1.486460529164011, - 0.03883779487693154 - ], - [ - -0.11367441469722168, - 1.5118497305751755, - 0.0946623451343217 - ], - [ - -0.10493921678804413, - 1.533857141884777, - 0.1291556793141196 - ], - [ - -0.10120842649012962, - 1.5526262755981264, - 0.13910800896691172 - ], - [ - -0.10254667717844843, - 1.5665376257436898, - 0.12469419343935066 - ], - [ - -0.10754866688973544, - 1.5730069558929622, - 0.08870482144760056 - ], - [ - -0.11413648352557874, - 1.5699018183326412, - 0.03668287047733519 - ], - [ - -0.2995532461683874, - 1.5625523120370097, - -0.021222108126255947 - ], - [ - -0.3035675260538366, - 1.5394622817257346, - -0.09234926081025721 - ], - [ - -0.30492033460716006, - 1.5071160015688212, - -0.15813646539557968 - ], - [ - -0.3044876000712692, - 1.4694538699114121, - -0.2122522082986941 - ], - [ - -0.30366838429577975, - 1.4327627821811109, - -0.24932428169429455 - ], - [ - -0.3037212429368158, - 1.404610393564939, - -0.26542852609544565 - ], - [ - -0.30517151130934594, - 1.3919199874406993, - -0.2581904776834478 - ], - [ - -0.3074548735648431, - 1.398369008442975, - -0.22605631476004323 - ], - [ - -0.30876912323000494, - 1.4213764784396616, - -0.16925408732975292 - ], - [ - -0.3065445406932365, - 1.4521879116115646, - -0.09291783561035659 - ], - [ - -0.29921663829803996, - 1.4813571154097795, - -0.00818664089902733 - ], - [ - -0.2882619022016374, - 1.504571364023826, - 0.07067443693484325 - ], - [ - -0.2778295979043986, - 1.5230238083180598, - 0.13100132529402367 - ], - [ - -0.27185117481300364, - 1.539604619867262, - 0.1653947943926757 - ], - [ - -0.27181199366390785, - 1.5553857458797913, - 0.17185579272481338 - ], - [ - -0.27682092965958816, - 1.5686469142639767, - 0.15160863006755174 - ], - [ - -0.28468307147326893, - 1.5761151113303762, - 0.10831382382398559 - ], - [ - -0.29291411095606296, - 1.574702979193618, - 0.04818316489419031 - ], - [ - -0.47845924384973454, - 1.5438982849400695, - -0.015518629279982843 - ], - [ - -0.4816623218364234, - 1.5238507078445949, - -0.0932690136310204 - ], - [ - -0.48129319448027424, - 1.4941679951009517, - -0.1646440875277167 - ], - [ - -0.47858739023870756, - 1.459199842117926, - -0.22262096224168199 - ], - [ - -0.47531861115782625, - 1.4255889105764663, - -0.2612336679534446 - ], - [ - -0.4731042801183914, - 1.4009826914327195, - -0.27621769493622006 - ], - [ - -0.47274146565313885, - 1.391966827126843, - -0.2649041269537687 - ], - [ - -0.4737358148247238, - 1.4013238811436677, - -0.2254593883284216 - ], - [ - -0.4740608477042018, - 1.425044049812236, - -0.15838513528457285 - ], - [ - -0.47075211443707593, - 1.4529082645352045, - -0.07035241384620923 - ], - [ - -0.462220731032799, - 1.475232259203076, - 0.02460517844691773 - ], - [ - -0.4506687381752605, - 1.4896237038320232, - 0.10944014153920627 - ], - [ - -0.44115019980375014, - 1.500232164914381, - 0.17081176050427993 - ], - [ - -0.4377969912292751, - 1.5118492983601888, - 0.20261585569221524 - ], - [ - -0.44149092100806553, - 1.5258712109987083, - 0.2043306483457883 - ], - [ - -0.450384609191067, - 1.5400842580742953, - 0.17807767656838525 - ], - [ - -0.4613720396725931, - 1.5503468829601628, - 0.12809227520878994 - ], - [ - -0.47141499431145933, - 1.5525259382922774, - 0.06094001469003688 - ], - [ - -0.6536525703290299, - 1.4963311964330517, - -0.008141613332533236 - ], - [ - -0.6568588288619635, - 1.480826425450893, - -0.08996975094317755 - ], - [ - -0.6554993301913663, - 1.4553638372056041, - -0.16442148182072885 - ], - [ - -0.6512054245151341, - 1.4245069969332733, - -0.2239517624742619 - ], - [ - -0.6460607797490526, - 1.395015727334323, - -0.2621420494724912 - ], - [ - -0.6419202082047905, - 1.3743214198290925, - -0.2744610527708378 - ], - [ - -0.6397394650383462, - 1.3683306660486132, - -0.25802422264088 - ], - [ - -0.6390087665472047, - 1.3786720559632213, - -0.21099517757647168 - ], - [ - -0.6374391589441066, - 1.3999630447286309, - -0.13469446925914375 - ], - [ - -0.6317460122165613, - 1.421263161998345, - -0.03782203491393514 - ], - [ - -0.6205699344429351, - 1.4340315916484272, - 0.06298104018879604 - ], - [ - -0.6071865847760861, - 1.4387590403194512, - 0.14919040363771244 - ], - [ - -0.597780234297247, - 1.4422252336565247, - 0.20816336382724124 - ], - [ - -0.5967136927620293, - 1.4501144874226448, - 0.23556092311023763 - ], - [ - -0.6042296427364368, - 1.463482052618067, - 0.23209923550010472 - ], - [ - -0.6174997230564367, - 1.479503299412578, - 0.20045868680892914 - ], - [ - -0.6324322120891992, - 1.493363503089145, - 0.1451869175649815 - ], - [ - -0.645264086877514, - 1.5001399654328882, - 0.07299648567715158 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.46855350080303, - 0.10885907179087682, - 0.001063516755472813, - -0.0006461718830387663, - -0.00011134663559380221, - -6.595950617135923e-05, - 3.468090462025979e-05, - 0.07193408688149867, - -0.03138657220581287, - -0.00033480778239255955, - 0.00027298717552230473, - 6.776308623563073e-05, - -6.503892240242274e-05, - -1.720768935810681e-05, - 0.009437833998917473, - 0.011169533387605369, - 0.0029094209756365874, - -0.00011432276479625831, - 4.990230029863758e-05, - -1.5821962089705287e-05, - 7.235609025966455e-06, - -0.001947060387053358, - -0.0011600393383437622, - -0.00048406507925431594, - -4.772181674406972e-05, - 2.9534593131139377e-05, - -1.3118299948281696e-06, - -3.09762886930019e-07, - 0.00022471903439034714, - 0.0002900313609933661, - 0.00012718190783794867, - 2.4442135287249818e-05, - 1.54283255691951e-05, - 4.579695439486621e-07, - 8.53787716061948e-07, - -7.50645833403012e-05, - -2.1275205414708093e-05, - -3.093419223257907e-05, - -8.228996602443203e-06, - -1.0608482235241774e-06, - -1.073695974851291e-06, - 3.0821179401346685e-07, - 1.4974887009099306e-05, - -4.415144174970952e-06, - 2.8949661376707803e-06, - 3.921760310619993e-06, - 7.11441873797778e-07, - 1.2774379723054856e-07, - 7.329315701760449e-08, - 0.07075451442878902, - 0.0017194347259494995, - 0.00022335553667715902, - 3.9968148431262596e-05, - 1.2469756197824699e-05, - -1.0646939378598767e-05, - -0.008585608729042887, - -0.0021846222441528986, - 0.00021139547014008189, - -6.153140178887092e-05, - 1.0829265217113755e-06, - -1.2437675807953241e-06, - 0.0009640150609280265, - 0.0005241938997718694, - 0.00011834265211815907, - 1.077647199412823e-06, - 6.9822978103379945e-06, - 3.7353275575040515e-07, - -0.0001169981325575714, - -0.00011741970841212746, - -2.119421995437428e-05, - -1.9541696068505665e-05, - 7.818234731539757e-07, - -3.6492038316393457e-07, - -1.5111260641921128e-05, - 2.662743775584343e-05, - 1.1604467586237973e-05, - 3.574967499533016e-06, - 1.7626385185007257e-06, - 1.1210195843006657e-07, - 9.583822472768207e-06, - -1.7232870587106826e-06, - -4.795946452965562e-06, - -1.1766553567149514e-06, - -2.0561812280157258e-07, - -1.997241970377709e-07, - -0.03950441743696766, - 0.003742987347466362, - 0.0007329784709402334, - 0.00019177880398720692, - -0.00010212332378626435, - -4.3828059500343815e-05, - 0.014468873167376797, - -4.276092578780327e-05, - -0.0003698711232151676, - 3.0662873280396434e-05, - -5.856395500173107e-05, - 3.2193597007652456e-05, - -0.0058162393714656, - -0.0004590680920159008, - 0.0002319942594883885, - 0.00014376848850681273, - 2.5635463719070695e-05, - -2.4976503620412403e-06, - 0.0003096961461784939, - 0.00023951822677213455, - -3.080172972274953e-05, - -1.4094439525472437e-05, - -1.3426783061402316e-05, - 1.8080198844630623e-07, - -3.5015708650911324e-05, - -1.8772936290309538e-05, - -1.3022304429600124e-06, - 1.5339170430450555e-05, - 7.426505121323719e-06, - 2.6842858844488075e-06, - 1.97846294197715e-06, - 4.4406177787821835e-06, - 1.4720667677140285e-06, - -9.260863634146162e-07, - -1.6830101039901726e-06, - -8.710476370733436e-07, - 3.857961241984364e-06, - 4.213368942150025e-07, - -4.824009906491425e-07, - 6.328674356897564e-07, - 5.219906679524811e-07, - 3.9300995575722347e-07, - 0.013656113201176141, - 0.02411124739603273, - -0.001618288221491656, - -0.0005325521075867246, - -0.00010129757817670953, - 1.7212653639949963e-05, - 4.1217011872316364e-05, - 0.0008192697420615711, - -0.005014201230434793, - -0.0004784254047269628, - -2.3924940317833553e-05, - 5.929421223418001e-06, - 2.3963395817244558e-05, - 7.332230845520765e-06, - -0.00027309624060928994, - 0.00015450212097394188, - 0.00016936281979102025, - -0.00010511337897278106, - -2.3218754568158265e-05, - -1.2101234835534153e-05, - -3.784817264480561e-06, - 4.510525991883723e-05, - 5.375744556112898e-05, - -2.2160169360176834e-05, - -1.3565337053579426e-05, - 4.487304840626748e-06, - 4.926902175649076e-06, - 2.1023415377541553e-06, - -1.648290234233873e-05, - -1.5081641096610996e-05, - 2.2672067479577504e-06, - 1.673540626843115e-06, - -8.230568175204095e-08, - -1.8975219489540075e-06, - -1.0204321687231934e-06, - 2.2095750117382083e-06, - 6.741086987731593e-06, - 1.8733537284709906e-06, - -5.985690715433127e-07, - 1.505570116475656e-07, - 2.961589902448659e-07, - 2.942860387519519e-07, - 0.057753998910337404, - 0.00028888103717561865, - 5.479317095949965e-05, - -9.486631490095862e-05, - -5.430489039751829e-07, - -4.70006145202736e-06, - -0.03896744761196523, - -0.0013426538615572072, - -0.00020457038178381802, - 7.678944729699289e-05, - 2.598346423496191e-05, - -6.692978218063212e-06, - 0.005527835923895802, - 0.002060468117918188, - -0.00035254079990252094, - 4.0341015967558634e-05, - 1.3383007079192748e-06, - -5.839518316441021e-06, - -0.0004720723760084336, - -0.0004978433496690715, - -0.00010672743058346078, - 1.9746677567021184e-05, - 1.4850664319189002e-06, - 1.0148351082635055e-06, - 0.00012622298024049056, - 0.00012638506748488066, - 1.187295598105266e-05, - 1.7163988235772435e-05, - -1.9901809843280144e-06, - 1.973939623012395e-07, - 3.447611472890403e-05, - -2.721381040742848e-05, - -8.0399185488916e-06, - -2.0496102732707136e-06, - -1.1623774445419372e-06, - 1.8927104368752415e-07, - -2.5443759280679488e-05, - 2.8659928520010928e-06, - 4.414241040540377e-06, - 9.809729588773607e-07, - 6.229592085702438e-08, - 1.5174658402691218e-07, - -0.17722655392090608, - -0.08266349611508506, - -0.0031370911913935562, - 0.000290441947256058, - 0.0002155256264555718, - 2.098363388667433e-05, - 1.7700715317718193e-06, - 0.005216438091686312, - 0.006339350464257255, - 0.002049028985847243, - -0.00020849186406803833, - -1.412863628852419e-05, - -5.888260180402124e-07, - 7.087661720359001e-06, - -0.0009414727489213521, - -0.0012150665002617516, - -0.0005286658230733393, - -6.990847932796645e-05, - 3.6482114291275345e-05, - 2.0953422266370744e-06, - 2.440737705350068e-06, - 0.00020949944212106576, - 0.0002751837587062734, - 0.000131622010755458, - 4.272481968009884e-06, - 8.959293470897377e-06, - -1.8741098732200699e-06, - -6.248920357775795e-08, - -9.405174519624665e-06, - 2.2700204333695387e-07, - -3.201371782968914e-05, - -5.165254213487304e-06, - -8.10109618952807e-08, - -8.929265106849079e-07, - 3.9886026040190554e-07, - 3.8069700028069534e-06, - -1.724829363794602e-05, - 2.9795119389688718e-06, - 3.278215154044178e-06, - 4.113498352796076e-07, - -7.723996833893412e-08, - -4.3410543568648205e-09 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface1": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -0.2960004452246598, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_0.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_0.vts deleted file mode 100644 index 8b6e88eec..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_0.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_1.json b/examples/2_Intermediate/inputs/input_ncsx/surface_1.json deleted file mode 100644 index 89033d84e..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_1.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface2" - }, - { - "iota": -0.41509506700914495, - "G": 13.887479123477052 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.662952534612172, - 0.0, - 0.0 - ], - [ - 1.6508713767953567, - 0.011913579348016548, - -0.11918728437628201 - ], - [ - 1.6175954531570012, - 0.024656796792833467, - -0.22685806329631258 - ], - [ - 1.5713604670548977, - 0.03826359156862629, - -0.3118076479442066 - ], - [ - 1.5249059155610156, - 0.05059181224706913, - -0.36404222264082436 - ], - [ - 1.4920692985888613, - 0.05821646586204786, - -0.3779985349249035 - ], - [ - 1.4828080684860667, - 0.05758386253159119, - -0.35160442623296084 - ], - [ - 1.500273162729909, - 0.046116072397720864, - -0.27972708145145014 - ], - [ - 1.5319862575670187, - 0.02527749692130171, - -0.15796515643795456 - ], - [ - 1.5483953138163278, - 9.092410384572367e-18, - -5.790568637816655e-17 - ], - [ - 1.5319862575670187, - -0.02527749692130169, - 0.15796515643795447 - ], - [ - 1.5002731627299088, - -0.046116072397720836, - 0.2797270814514499 - ], - [ - 1.4828080684860665, - -0.05758386253159117, - 0.35160442623296073 - ], - [ - 1.4920692985888613, - -0.05821646586204786, - 0.3779985349249035 - ], - [ - 1.5249059155610156, - -0.05059181224706913, - 0.3640422226408243 - ], - [ - 1.5713604670548975, - -0.03826359156862632, - 0.3118076479442068 - ], - [ - 1.617595453157001, - -0.02465679679283348, - 0.22685806329631272 - ], - [ - 1.6508713767953564, - -0.011913579348016573, - 0.11918728437628229 - ], - [ - 1.6474591347997791, - 0.18717945607183073, - 0.00125399907170301 - ], - [ - 1.6427357717415338, - 0.198969239209936, - -0.1157386006436188 - ], - [ - 1.6171582872687866, - 0.20935829664829722, - -0.22046277506417286 - ], - [ - 1.5782374623296582, - 0.21877236870158884, - -0.3012874604830226 - ], - [ - 1.5381449920724741, - 0.225723746123842, - -0.34798894403830943 - ], - [ - 1.5097369458556593, - 0.2277027654305265, - -0.35530291273884096 - ], - [ - 1.5015394284982706, - 0.22211197714291211, - -0.32094781907847425 - ], - [ - 1.514154266924209, - 0.2073421131681766, - -0.23978066440984822 - ], - [ - 1.5322839918409163, - 0.18487398601175603, - -0.11071651515278384 - ], - [ - 1.5289027833127546, - 0.15828523044304263, - 0.04720507308239605 - ], - [ - 1.4952989147486766, - 0.13169611059861103, - 0.19663657075471347 - ], - [ - 1.4551075957597737, - 0.11124180620566637, - 0.30611679756430227 - ], - [ - 1.4366023285193585, - 0.10285762374614868, - 0.3672335839011004 - ], - [ - 1.4487404634254528, - 0.10718036151584039, - 0.38602817661562344 - ], - [ - 1.4863024461255272, - 0.12046240671794733, - 0.3669552388135826 - ], - [ - 1.5381062582471103, - 0.13827476432983893, - 0.3117077289888074 - ], - [ - 1.5898177673049705, - 0.15664583348583516, - 0.22585977997515308 - ], - [ - 1.6288857435826067, - 0.1731407875425639, - 0.11887498120671386 - ], - [ - 1.602103483698172, - 0.368166289926263, - 0.002550924155378454 - ], - [ - 1.6040197745458122, - 0.38181845671375186, - -0.10851079089104608 - ], - [ - 1.586470536823882, - 0.3917877460593424, - -0.20702271586169074 - ], - [ - 1.5557128602884305, - 0.39813501678964336, - -0.2811040498991551 - ], - [ - 1.5223360090735827, - 0.4000095359273983, - -0.3203824653863047 - ], - [ - 1.4975200337057935, - 0.39607164378319076, - -0.3201752224447225 - ], - [ - 1.4881162837454618, - 0.3847428613257043, - -0.27828763697780684 - ], - [ - 1.4922135780822445, - 0.36494604204515935, - -0.19079311477435126 - ], - [ - 1.4941084385473646, - 0.3380777342491973, - -0.06139453271813575 - ], - [ - 1.4729497340626714, - 0.3078117634518021, - 0.08738803628359484 - ], - [ - 1.4281404603118075, - 0.2793423245705371, - 0.2215222962235685 - ], - [ - 1.3850732165776378, - 0.25983278139012955, - 0.3160518429892253 - ], - [ - 1.3686090708338234, - 0.2549976312842741, - 0.36630095924340716 - ], - [ - 1.3846664489438292, - 0.26447569762020257, - 0.37855692013456543 - ], - [ - 1.4264036384864427, - 0.2834955775901128, - 0.35626457415314094 - ], - [ - 1.4818224677679341, - 0.30681134810491717, - 0.30070164129820176 - ], - [ - 1.5366103453146516, - 0.3300779256068752, - 0.21734640663653965 - ], - [ - 1.578920152860832, - 0.350794876640907, - 0.11478254677178457 - ], - [ - 1.5304297823405826, - 0.5383786759338419, - 0.003723893144888875 - ], - [ - 1.5369518478914896, - 0.5544039568465656, - -0.09822816758736484 - ], - [ - 1.526033971400064, - 0.5649673908569054, - -0.1879210294042228 - ], - [ - 1.502745878219287, - 0.5692512168561017, - -0.2532363972252388 - ], - [ - 1.4753383491717285, - 0.5663404540610703, - -0.28383411580724455 - ], - [ - 1.4527122209354142, - 0.5557864845780764, - -0.2760287545320182 - ], - [ - 1.4399269551387042, - 0.5370863935604696, - -0.22832958184121063 - ], - [ - 1.4335094223483842, - 0.5100391787964488, - -0.13933249099464132 - ], - [ - 1.420114050233014, - 0.4771402593327499, - -0.017514705251373615 - ], - [ - 1.3865163437904038, - 0.4433163676053931, - 0.11451037101646308 - ], - [ - 1.3374818017131467, - 0.4143974782948352, - 0.22947227043762053 - ], - [ - 1.2966169814423332, - 0.39725451155258196, - 0.3087690660292567 - ], - [ - 1.2845655818126143, - 0.39675377281198504, - 0.34945873126966287 - ], - [ - 1.3048053160479622, - 0.4116087117954319, - 0.35689195039340194 - ], - [ - 1.3494544845828276, - 0.43630698730694717, - 0.33333175954980226 - ], - [ - 1.4063702240996159, - 0.46502604100202927, - 0.2799040581879691 - ], - [ - 1.4617865290217726, - 0.4930144809929714, - 0.202038985343607 - ], - [ - 1.5049032706395638, - 0.5176994241191472, - 0.10717657215370267 - ], - [ - 1.437457355685758, - 0.6965819735262209, - 0.0043062892084104925 - ], - [ - 1.446417859556583, - 0.7138134624508834, - -0.08659203233808048 - ], - [ - 1.4399304451000674, - 0.7243344937430175, - -0.16566826851560484 - ], - [ - 1.4218992815274885, - 0.7262924356674382, - -0.22070101526140037 - ], - [ - 1.3982325771803392, - 0.717969578443991, - -0.24218082049761824 - ], - [ - 1.3757952787291607, - 0.6995702232819034, - -0.22808408192399865 - ], - [ - 1.3582310974861755, - 0.6722082159962934, - -0.17811287558531821 - ], - [ - 1.3417243464693813, - 0.6375644075762813, - -0.09362079202925953 - ], - [ - 1.3168126315927398, - 0.5999095225941471, - 0.014035356608733512 - ], - [ - 1.277125351893103, - 0.5648828635633899, - 0.12535343612167413 - ], - [ - 1.2299334441166931, - 0.5378377047694329, - 0.22075702186254959 - ], - [ - 1.1951532254438884, - 0.5247494297856159, - 0.2865439897163892 - ], - [ - 1.189010956166625, - 0.5293772392809025, - 0.31997009929130693 - ], - [ - 1.2130329315430703, - 0.5495702256489949, - 0.32460411723790356 - ], - [ - 1.2590955086009008, - 0.5796369468902715, - 0.3015464305246232 - ], - [ - 1.3155762113697929, - 0.613506370691144, - 0.252220586486146 - ], - [ - 1.3695885743959497, - 0.6458226539684334, - 0.1819591167806367 - ], - [ - 1.4115681037927785, - 0.6737289105470581, - 0.09688814166834547 - ], - [ - 1.3273045723552341, - 0.8436725480979675, - 0.003597776697883043 - ], - [ - 1.3368288180395975, - 0.8605665823434728, - -0.07543635752575714 - ], - [ - 1.3324491344382055, - 0.8693800627230879, - -0.14277719996519633 - ], - [ - 1.316780771712821, - 0.8670939713221004, - -0.1869150681347516 - ], - [ - 1.2941222372159011, - 0.8513762161333632, - -0.20047190216881527 - ], - [ - 1.2702784515878998, - 0.8238273743201263, - -0.1832500216838074 - ], - [ - 1.2480456261254973, - 0.7879575392096708, - -0.1357210663732642 - ], - [ - 1.224123261730487, - 0.7476084605103623, - -0.06100177774506028 - ], - [ - 1.193021690700259, - 0.7083240398003776, - 0.029241012373977738 - ], - [ - 1.1531122075576938, - 0.6754256023850322, - 0.12026613521825177 - ], - [ - 1.111929786744419, - 0.6529168871638416, - 0.19882377360790965 - ], - [ - 1.0852692578514702, - 0.6454220594495217, - 0.25416599201035533 - ], - [ - 1.0853430016966368, - 0.6555324686685209, - 0.28290856746823034 - ], - [ - 1.1122769826739523, - 0.6806567776123488, - 0.2865730926515407 - ], - [ - 1.1583463114051316, - 0.7154773594793283, - 0.26540206386002324 - ], - [ - 1.2127235524248727, - 0.7538728786078585, - 0.22137265219730923 - ], - [ - 1.2635607707113523, - 0.7898068277427719, - 0.15949180849859046 - ], - [ - 1.3027298278138453, - 0.8199702424681088, - 0.0847201870112579 - ], - [ - 1.2029191114798818, - 0.9797155420900417, - 0.001506582484096205 - ], - [ - 1.2110362468100522, - 0.9947462382774598, - -0.06580328508306695 - ], - [ - 1.2063401382248842, - 0.9995190515283334, - -0.12146554348283777 - ], - [ - 1.1904659858959885, - 0.9900288918817716, - -0.1560495798771775 - ], - [ - 1.1671566332280103, - 0.9646959845560097, - -0.16493959946853515 - ], - [ - 1.1417894604457404, - 0.9277100892598364, - -0.1487221030343577 - ], - [ - 1.1165282466793307, - 0.8850054802829059, - -0.10769449427761782 - ], - [ - 1.0890625747191611, - 0.8419910288794358, - -0.045615255301773606 - ], - [ - 1.0571121837842727, - 0.8047723522443118, - 0.027522791097654736 - ], - [ - 1.0213985047638834, - 0.7774975473614887, - 0.10183986242670542 - ], - [ - 0.9883177115537216, - 0.7620319956146212, - 0.16799610325857967 - ], - [ - 0.9700391004191199, - 0.761340936057924, - 0.21638154149711056 - ], - [ - 0.9756596074602121, - 0.777132914962774, - 0.2427576643050202 - ], - [ - 1.004506289177899, - 0.8068106758041306, - 0.246992773766208 - ], - [ - 1.049466218759809, - 0.8455656053687487, - 0.22887148303767577 - ], - [ - 1.1004083932175992, - 0.8872707013306311, - 0.19071805647771264 - ], - [ - 1.146575307436067, - 0.9254215080673817, - 0.13692239326366806 - ], - [ - 1.1813686031567474, - 0.9564643258624514, - 0.07173536934634321 - ], - [ - 1.0670704916185643, - 1.104618733222995, - -0.0006371179079207086 - ], - [ - 1.0715899868819883, - 1.1155114112423106, - -0.05771919873546776 - ], - [ - 1.0643801384746032, - 1.1131848781437512, - -0.10416970766630941 - ], - [ - 1.0469709624280281, - 1.0937392711777758, - -0.13316025771673945 - ], - [ - 1.0230491739609269, - 1.057885341616058, - -0.14181826609542195 - ], - [ - 0.9973144436179906, - 1.0126670526671633, - -0.13007483342184198 - ], - [ - 0.9712925345927637, - 0.9657746261296768, - -0.09763491684797812 - ], - [ - 0.9437998133242198, - 0.9235672522606061, - -0.04820295008782418 - ], - [ - 0.914726417585408, - 0.8919701676164488, - 0.010834515242433946 - ], - [ - 0.8855179431105301, - 0.8731064296680882, - 0.07336929000833779 - ], - [ - 0.8609763501532682, - 0.8663600066478461, - 0.131603979969253 - ], - [ - 0.8504163463407146, - 0.8732809382992168, - 0.17603716682365106 - ], - [ - 0.860695952629239, - 0.8950555355764692, - 0.20200804281523183 - ], - [ - 0.8906727426967559, - 0.9291489463915751, - 0.2083760493676952 - ], - [ - 0.9337579657953384, - 0.9710943714130563, - 0.1945622589104747 - ], - [ - 0.9804617479349307, - 1.0147574190388018, - 0.16276897918197417 - ], - [ - 1.0210727574375074, - 1.05341926345363, - 0.11658225400584597 - ], - [ - 1.0502777959124603, - 1.0835842030743934, - 0.05993679700582449 - ], - [ - 0.920557010737879, - 1.2189691170029997, - -0.0011632129163232853 - ], - [ - 0.9197869121700983, - 1.2224489213074512, - -0.05150095732001021 - ], - [ - 0.9092703730994007, - 1.2100753610009793, - -0.0937434773333207 - ], - [ - 0.8908253326193702, - 1.1795054940783047, - -0.12243614778086218 - ], - [ - 0.8675929467934324, - 1.1339971964934676, - -0.13476273318875034 - ], - [ - 0.8431137670190988, - 1.0826332692432625, - -0.12946446074087034 - ], - [ - 0.818462331615338, - 1.034305124355787, - -0.1057641340289576 - ], - [ - 0.7934226306267659, - 0.9959097277962834, - -0.06676665640526994 - ], - [ - 0.769027736796707, - 0.9724270146858319, - -0.01735119970678565 - ], - [ - 0.7467648544743356, - 0.9635081586784359, - 0.038293003069697164 - ], - [ - 0.7302211407521504, - 0.9663112007521857, - 0.09227915073116845 - ], - [ - 0.7266062983403543, - 0.9813875358272456, - 0.13527015740201448 - ], - [ - 0.7409133588979693, - 1.0095074954798189, - 0.16286201583157622 - ], - [ - 0.7714351657596467, - 1.047998956148846, - 0.1731374600497644 - ], - [ - 0.8119589871522978, - 1.092602915967702, - 0.16489271368102296 - ], - [ - 0.8536950318759747, - 1.1372933444902615, - 0.1398720808319168 - ], - [ - 0.8879091855857523, - 1.17519748960291, - 0.10089621741125893 - ], - [ - 0.9102630785452833, - 1.2027075077715932, - 0.05174086137450909 - ], - [ - 0.7625935816098193, - 1.3208508288741296, - -5.388169235372019e-19 - ], - [ - 0.7567152759988356, - 1.3141381995405348, - -0.04891040729976081 - ], - [ - 0.7441569260811612, - 1.2906633558050948, - -0.09257866265877211 - ], - [ - 0.7263986061094783, - 1.249961304895067, - -0.12525820374096666 - ], - [ - 0.705426123729081, - 1.196848805235005, - -0.14351849333482153 - ], - [ - 0.6836317138123776, - 1.1415509219866677, - -0.1452098828525243 - ], - [ - 0.6619386737378566, - 1.0939005159694397, - -0.12911199617881924 - ], - [ - 0.6407351763644534, - 1.0611005097359527, - -0.09736352590190447 - ], - [ - 0.6214033519441915, - 1.046919083544848, - -0.05301502567511143 - ], - [ - 0.6054412107695709, - 1.0486549380489139, - -5.7024613347499266e-18 - ], - [ - 0.595956846084466, - 1.061610630552896, - 0.053015025675111446 - ], - [ - 0.5985724092177256, - 1.0854431946978953, - 0.09736352590190445 - ], - [ - 0.6163762991735116, - 1.1202059651890826, - 0.12911199617881922 - ], - [ - 0.6467962412478135, - 1.1628178919875458, - 0.14520988285252437 - ], - [ - 0.683788407958028, - 1.209341346260071, - 0.14351849333482156 - ], - [ - 0.7192989407319353, - 1.2540602986119476, - 0.12525820374096672 - ], - [ - 0.7456687908203055, - 1.2897904802909714, - 0.09257866265877217 - ], - [ - 0.7597194268862294, - 1.3124037522170116, - 0.04891040729976091 - ], - [ - 0.5953797163843443, - 1.4067103154323672, - 0.0011632129163232831 - ], - [ - 0.5864437157798285, - 1.3896647040330414, - -0.051740861374508965 - ], - [ - 0.5737962876669432, - 1.3565506557722684, - -0.10089621741125884 - ], - [ - 0.5580774119455464, - 1.307968256934291, - -0.1398720808319167 - ], - [ - 0.5402423879008358, - 1.2494785676888236, - -0.16489271368102282 - ], - [ - 0.5218761362846517, - 1.1920819289949365, - -0.17313746004976432 - ], - [ - 0.5038024569473434, - 1.1464035385488083, - -0.16286201583157614 - ], - [ - 0.48660338781362894, - 1.1199532808261448, - -0.13527015740201442 - ], - [ - 0.4717394774367624, - 1.1155456586479071, - -0.09227915073116835 - ], - [ - 0.46104011493192587, - 1.128471413967382, - -0.038293003069697094 - ], - [ - 0.4576326296458406, - 1.152211063623717, - 0.017351199706785725 - ], - [ - 0.46577180883424385, - 1.1850790179583977, - 0.06676665640526991 - ], - [ - 0.4865033471488656, - 1.2259617333974193, - 0.10576413402895762 - ], - [ - 0.516031030637314, - 1.2714745751405652, - 0.12946446074087037 - ], - [ - 0.5482739065869607, - 1.3183561303140467, - 0.13476273318875034 - ], - [ - 0.5760690554654428, - 1.3612301154222493, - 0.12243614778086223 - ], - [ - 0.5933208165707733, - 1.3924889225131247, - 0.09374347733332072 - ], - [ - 0.598778364596088, - 1.4077832926614768, - 0.05150095732001031 - ], - [ - 0.42309263865801744, - 1.4764195199819243, - 0.0006371179079207137 - ], - [ - 0.4132725490457107, - 1.4513593538281158, - -0.05993679700582435 - ], - [ - 0.40175146426798247, - 1.4109845787799227, - -0.1165822540058459 - ], - [ - 0.3885748295988681, - 1.3564834906699461, - -0.16276897918197408 - ], - [ - 0.3741134122181187, - 1.2942053050713722, - -0.19456225891047468 - ], - [ - 0.35933022012627175, - 1.235919694829539, - -0.20837604936769516 - ], - [ - 0.34479285529248943, - 1.1929123276996036, - -0.20200804281523177 - ], - [ - 0.3310753040374757, - 1.1731226288742131, - -0.1760371668236511 - ], - [ - 0.3198015995032558, - 1.1788073946142594, - -0.13160397996925305 - ], - [ - 0.3133733767448308, - 1.2034342490747065, - -0.07336929000833779 - ], - [ - 0.3151056157810046, - 1.2381613989499203, - -0.010834515242433961 - ], - [ - 0.3279327958989661, - 1.2791382405560883, - 0.04820295008782408 - ], - [ - 0.3507390932623369, - 1.3240513225283472, - 0.09763491684797804 - ], - [ - 0.37833817137628234, - 1.370033170067905, - 0.13007483342184198 - ], - [ - 0.4046309931502223, - 1.4149292447788773, - 0.1418182660954219 - ], - [ - 0.423720512742617, - 1.4535730860762033, - 0.13316025771673948 - ], - [ - 0.43185631434387184, - 1.4783726782744804, - 0.10416970766630947 - ], - [ - 0.43026622690627725, - 1.4857798567019909, - 0.05771919873546789 - ], - [ - 0.24699899219247787, - 1.5316162802844038, - -0.0015065824840962043 - ], - [ - 0.23763810243206698, - 1.5013273844983062, - -0.07173536934634303 - ], - [ - 0.22815088147682508, - 1.455674097625278, - -0.1369223932636679 - ], - [ - 0.21819477077716254, - 1.3966169737293725, - -0.19071805647771248 - ], - [ - 0.20754818543579975, - 1.3316472085439661, - -0.22887148303767563 - ], - [ - 0.19646539670191868, - 1.2733333025913633, - -0.24699277376620798 - ], - [ - 0.1851870427447084, - 1.2335124629882843, - -0.24275766430502022 - ], - [ - 0.1743210413576264, - 1.2207489716561242, - -0.21638154149711053 - ], - [ - 0.16578021092195339, - 1.2369242430229348, - -0.1679961032585796 - ], - [ - 0.16263337501320244, - 1.2733058261937082, - -0.10183986242670542 - ], - [ - 0.1683972094147963, - 1.3178721819293806, - -0.02752279109765478 - ], - [ - 0.18465433340860793, - 1.3641513704573995, - 0.04561525530177344 - ], - [ - 0.2081731050737795, - 1.4094445658086516, - 0.10769449427761767 - ], - [ - 0.2325257744232775, - 1.4526737231492568, - 0.14872210303435768 - ], - [ - 0.2518729129403398, - 1.4931352868489787, - 0.16493959946853515 - ], - [ - 0.2621571779021774, - 1.5259882320680989, - 0.15604957987717746 - ], - [ - 0.2624388210776221, - 1.5444807310717474, - 0.12146554348283779 - ], - [ - 0.25595738926226264, - 1.5461612737799966, - 0.06580328508306707 - ], - [ - 0.06698957295077178, - 1.571315752267857, - -0.0035977766978830417 - ], - [ - 0.05875014641774554, - 1.5381822463885717, - -0.0847201870112577 - ], - [ - 0.05221239155196464, - 1.4891791405328614, - -0.15949180849859032 - ], - [ - 0.0465112878860715, - 1.4271858434715785, - -0.22137265219730912 - ], - [ - 0.04044841343914361, - 1.3608960117965083, - -0.26540206386002324 - ], - [ - 0.033327569333373365, - 1.3035885118465207, - -0.2865730926515407 - ], - [ - 0.025036270024147454, - 1.267700845623205, - -0.28290856746823034 - ], - [ - 0.016317270720420954, - 1.2625817769704186, - -0.2541659920103554 - ], - [ - 0.009477717471535335, - 1.289417886127201, - -0.19882377360790968 - ], - [ - 0.008379626252998512, - 1.3363372663514332, - -0.12026613521825182 - ], - [ - 0.016915767228217513, - 1.3873491113124743, - -0.029241012373977793 - ], - [ - 0.03538628802090572, - 1.4339260722772493, - 0.06100177774506009 - ], - [ - 0.058368432996299284, - 1.4748179869115714, - 0.13572106637326406 - ], - [ - 0.0783162087003116, - 1.5120070961151455, - 0.18325002168380738 - ], - [ - 0.09025231274141295, - 1.5464308410980034, - 0.20047190216881525 - ], - [ - 0.09253502077686405, - 1.5739125851792306, - 0.18691506813475164 - ], - [ - 0.08668065264280037, - 1.5886248310356161, - 0.14277719996519642 - ], - [ - 0.07685811293760188, - 1.5880110081051526, - 0.07543635752575731 - ], - [ - -0.11547099295087213, - 1.5931655736437802, - -0.004306289208410493 - ], - [ - -0.12231770009862317, - 1.5593182923299043, - -0.09688814166834521 - ], - [ - -0.1254954625218243, - 1.5090098251440227, - -0.1819591167806365 - ], - [ - -0.1264760032827727, - 1.4460756050062986, - -0.25222058648614576 - ], - [ - -0.12756743332142367, - 1.3802271696844037, - -0.3015464305246231 - ], - [ - -0.13057468919595905, - 1.325302447167906, - -0.32460411723790344 - ], - [ - -0.13605134068077737, - 1.294402313058774, - -0.31997009929130693 - ], - [ - -0.143130275906202, - 1.2974077695421251, - -0.2865439897163893 - ], - [ - -0.14918560661490257, - 1.3340724599538607, - -0.22075702186254964 - ], - [ - -0.14935976593815659, - 1.3884644303382625, - -0.12535343612167416 - ], - [ - -0.13886942925764367, - 1.440347952280625, - -0.014035356608733628 - ], - [ - -0.1187151997248551, - 1.4807495727066982, - 0.09362079202925923 - ], - [ - -0.09696615705768044, - 1.5123667426311926, - 0.17811287558531802 - ], - [ - -0.08205205427129987, - 1.5412587734270973, - 0.22808408192399854 - ], - [ - -0.07733639451326896, - 1.569889721459155, - 0.24218082049761816 - ], - [ - -0.08196194089926745, - 1.594547117259365, - 0.22070101526140043 - ], - [ - -0.09267315013123975, - 1.6091835920108004, - 0.16566826851560493 - ], - [ - -0.10502833773249688, - 1.6095413420889548, - 0.08659203233808063 - ], - [ - -0.2989652809557542, - 1.5945804081821544, - -0.003723893144888876 - ], - [ - -0.30411078250802587, - 1.5621341746717239, - -0.10717657215370242 - ], - [ - -0.3039301995373726, - 1.5124515095392193, - -0.20203898534360687 - ], - [ - -0.3004607471207465, - 1.450465361697296, - -0.2799040581879689 - ], - [ - -0.2968743074349428, - 1.3868153585530385, - -0.3333317595498022 - ], - [ - -0.2959390571901495, - 1.3357989065882345, - -0.35689195039340194 - ], - [ - -0.29868394460380826, - 1.3108433130828543, - -0.3494587312696629 - ], - [ - -0.30427599194865185, - 1.3215305006836477, - -0.30876906602925686 - ], - [ - -0.3098621573890354, - 1.3654919565303838, - -0.2294722704376206 - ], - [ - -0.3093349356354906, - 1.4224165602875045, - -0.11451037101646316 - ], - [ - -0.2968414393660504, - 1.4684249734393755, - 0.01751470525137354 - ], - [ - -0.2750478254111139, - 1.496475165716281, - 0.1393324909946411 - ], - [ - -0.25483301671901826, - 1.515556519524328, - 0.22832958184121055 - ], - [ - -0.2450308957430447, - 1.5359789300072189, - 0.2760287545320182 - ], - [ - -0.24720395417816346, - 1.5608507165906487, - 0.28383411580724455 - ], - [ - -0.2583869241770549, - 1.5860417143983097, - 0.2532363972252389 - ], - [ - -0.27374087290813953, - 1.6040678816989633, - 0.18792102940422292 - ], - [ - -0.28834801335800714, - 1.608241323090749, - 0.09822816758736506 - ], - [ - -0.48221038195587496, - 1.571545461337297, - -0.00255092415537846 - ], - [ - -0.4856628017419618, - 1.5427824012451434, - -0.11478254677178426 - ], - [ - -0.48244930385330137, - 1.4957825575639048, - -0.21734640663653945 - ], - [ - -0.47520481225575784, - 1.4367015750380374, - -0.3007016412982016 - ], - [ - -0.4676874471896408, - 1.3770495757748704, - -0.35626457415314083 - ], - [ - -0.4632905516492072, - 1.331394169363446, - -0.3785569201345654 - ], - [ - -0.4634701088198725, - 1.3127490388340446, - -0.3663009592434071 - ], - [ - -0.4675148188689978, - 1.3294249823527249, - -0.3160518429892255 - ], - [ - -0.4721526807256202, - 1.3764770810876956, - -0.22152229622356862 - ], - [ - -0.4699020602983883, - 1.4295177699217076, - -0.08738803628359505 - ], - [ - -0.4542703129599927, - 1.4629747309153174, - 0.06139453271813545 - ], - [ - -0.43005424561943006, - 1.4747678875138774, - 0.19079311477435085 - ], - [ - -0.41086105003995704, - 1.4811179361717137, - 0.2782876369778065 - ], - [ - -0.4057519116179923, - 1.4949262137569417, - 0.3201752224447224 - ], - [ - -0.41474958466763995, - 1.5183864249172396, - 0.3203824653863046 - ], - [ - -0.4330613914682396, - 1.5463543663987538, - 0.2811040498991552 - ], - [ - -0.4539371274331034, - 1.5698176602746887, - 0.20702271586169083 - ], - [ - -0.47134540412502735, - 1.5800311012861372, - 0.10851079089104626 - ], - [ - -0.6616274033751298, - 1.5203311904692558, - -0.0012539990717030187 - ], - [ - -0.6644985513481979, - 1.4972268275761247, - -0.11887498120671358 - ], - [ - -0.6592496124567641, - 1.4551454906168795, - -0.22585977997515289 - ], - [ - -0.6493036705116075, - 1.4011764755267455, - -0.31170772898880716 - ], - [ - -0.6388277186440073, - 1.3474068794106324, - -0.3669552388135825 - ], - [ - -0.631549315853208, - 1.3082362255748028, - -0.38602817661562344 - ], - [ - -0.6292238491226123, - 1.2955629235067168, - -0.36723358390110056 - ], - [ - -0.6312155677429137, - 1.3157810462704949, - -0.30611679756430255 - ], - [ - -0.6335972800163354, - 1.3608149017229612, - -0.19663657075471375 - ], - [ - -0.6273723610488277, - 1.4032112654871016, - -0.04720507308239637 - ], - [ - -0.6060364275353879, - 1.4194338557523392, - 0.11071651515278351 - ], - [ - -0.5775135961841149, - 1.414967116989057, - 0.23978066440984774 - ], - [ - -0.558415099558584, - 1.411427278434926, - 0.320947819078474 - ], - [ - -0.5576720935530239, - 1.421321930858196, - 0.3553029127388408 - ], - [ - -0.5735899976555998, - 1.4449345109004976, - 0.3479889440383094 - ], - [ - -0.5996563022231567, - 1.4761799199325645, - 0.30128746048302274 - ], - [ - -0.6272695402439286, - 1.5051793070394508, - 0.22046277506417297 - ], - [ - -0.6490554701432988, - 1.5221355296385717, - 0.11573860064361903 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.458803217421266, - 0.09524489301963378, - -0.00028925395012368383, - -0.0005805372576363148, - -0.00010043767117880813, - -5.736010213394601e-05, - 3.991455732626351e-05, - 0.1147043634857272, - -0.046426505699410744, - 1.642135669775652e-05, - 0.00040456798180695067, - 6.11095108932041e-05, - -0.00010601573886083885, - -2.141061327853883e-05, - 0.020877690262968127, - 0.02324470531089845, - 0.005934767062367284, - -0.0004652378531056875, - 3.114723895928361e-05, - -3.8918077810710744e-05, - 1.2050057708330363e-05, - -0.005726190823227153, - -0.0033680007732399364, - -0.0013012300642914379, - -0.00013443789875111558, - 0.00010983530371942829, - -4.825508194446402e-06, - 2.537070147780927e-07, - 0.0007743662434930776, - 0.0013880263744365951, - 0.0004979146143561534, - 5.904949885648703e-05, - 7.672756878090779e-05, - -5.839396856425933e-07, - 1.3999336223996207e-06, - -0.00042452905277648364, - -0.000258594542269186, - -0.00020552431309454295, - -3.4347990667948434e-05, - -9.003996078787817e-07, - -8.72005157596389e-06, - 3.2925213089733324e-06, - 0.0001476391334323123, - -9.610559588980877e-06, - 4.058758816633506e-05, - 3.470119851584835e-05, - 5.922982826693376e-06, - 4.3830505043567426e-07, - 7.052528490180884e-07, - 0.10545016880476472, - 0.0014695225123373496, - 8.767788901935659e-05, - -2.494688411022622e-05, - -1.0117264363491108e-05, - -2.026895221822412e-05, - -0.019027973328087526, - -0.004750582932599316, - 0.0006535574303041383, - -9.016291802735316e-05, - 7.10673157907773e-06, - -4.915508264823578e-06, - 0.003186596802692545, - 0.0015416548021554783, - 0.0003628710610980786, - -4.609912432651343e-05, - 6.9714253139862035e-06, - -3.932702587945546e-06, - -0.0006948375311296792, - -0.0004931870594394739, - -3.775713808600026e-05, - -9.392403879167822e-05, - 8.760006484183058e-06, - 1.0372929843489506e-06, - 5.6541207227863016e-05, - 0.0001908446497782025, - 5.671081996768981e-05, - 1.4462404384626633e-05, - 1.1207891971519313e-05, - -1.9883485416230794e-06, - 4.862052207034508e-05, - -2.897691407639691e-05, - -4.047947374600066e-05, - -8.761606935594105e-06, - -2.6350641236237945e-07, - -1.2460392656083095e-06, - -0.03307910037778778, - 0.0036748273758423437, - 0.0005635814155135416, - 9.314903657725635e-05, - -0.00013075201960906327, - -3.4073655870287934e-05, - 0.02152074148540347, - -0.00016718793874496402, - -0.0005479933119024389, - 6.836319700735327e-05, - -7.96473060277361e-05, - 5.0002074596866715e-05, - -0.012686804461991958, - -0.0008225786729605058, - 0.0004716179631769061, - 0.00019590111774371005, - -2.242542742999712e-06, - -1.2019958821729129e-05, - 0.0009340866431949169, - 0.0007101004386471178, - -0.00010647910819111615, - -3.603516886845411e-05, - -2.739496601125627e-05, - 6.776192108550091e-06, - -0.00021005047700530804, - -4.1929001516376825e-05, - -6.352976525857003e-06, - 5.903534190084967e-05, - 2.388306898579489e-05, - 7.641739478452303e-06, - 4.449748907765932e-05, - 3.185727377077323e-05, - 6.024751154733752e-06, - -5.980893544541959e-08, - -7.526774926581363e-06, - -4.128972876664602e-06, - 2.227552091568576e-05, - -3.3129436838971246e-06, - -5.038540923306082e-06, - 5.8357962625935646e-06, - 3.747561364037653e-06, - 2.867936110228371e-06, - 0.021196644999740562, - 0.036771428134149894, - -0.002446985946575579, - -0.0004322179238741288, - -2.0261856116912727e-06, - 4.6226083000269995e-05, - 6.10612094686437e-05, - 0.0019163709914696715, - -0.011901860079855308, - -0.0009838828754932815, - 1.468595308221622e-05, - 8.034666427589723e-06, - 3.313597759184457e-05, - 1.0614876370873894e-05, - -0.0008332212101939086, - 0.0005398011546011466, - 0.000554800432337863, - -0.00034501656070280723, - -5.564922395451519e-05, - -1.936003849180452e-05, - -3.8464477049241235e-06, - 0.0001999929075547355, - 0.00019303373972936092, - -0.00010492593483076677, - -7.881993556004867e-05, - 1.5782691764885116e-05, - 1.9481398425254725e-05, - 7.11828379447001e-06, - -0.00010537181032873143, - -5.537432930930083e-05, - 2.413017301625708e-05, - 4.848364760646964e-06, - 3.690326346868689e-06, - -9.821112107031594e-06, - -5.524667981598303e-06, - 2.8246249599898527e-05, - 5.128658104367177e-05, - 1.1793227616014924e-05, - -6.690718537481581e-06, - 1.410749025709442e-06, - 2.15426583716881e-06, - 2.386752630460326e-06, - 0.05206797892123079, - -0.0007838874045073067, - 0.00036544407155671875, - -7.495434037564496e-05, - -1.5660511111607338e-05, - 4.8866785123099574e-06, - -0.05943032033706149, - -0.0011500328108437004, - -0.00024407687384724933, - 0.00010668017554210475, - 2.5962220562081697e-05, - -1.0513873162093075e-05, - 0.0112675122144377, - 0.0045362984577213845, - -0.0009005067800839599, - 3.1898185899907825e-05, - -5.835629574029273e-07, - -1.2361226371659574e-05, - -0.0015539780125162592, - -0.0014829773712844666, - -0.0003494667078605429, - 9.380498199134555e-05, - 1.0985310203436818e-05, - 3.753240040217114e-06, - 0.0008069257355451419, - 0.0005548220925570809, - -8.4354424292162e-06, - 8.337961274114233e-05, - -1.4015807845868624e-05, - -1.6955804057685313e-06, - 6.731986074722303e-05, - -0.00018825032169986217, - -3.531639736033173e-05, - -4.167342271264457e-06, - -8.901516962329864e-06, - 2.628517460495016e-06, - -0.00020878687338414604, - 3.756855083070813e-05, - 3.700392492543802e-05, - 6.735012360567871e-06, - -9.511352736660086e-07, - 1.3092229994970955e-06, - -0.26240895166736217, - -0.11867265418967902, - -0.0030476562182664697, - 0.0004279531871253991, - 0.00019309483435349254, - 7.863524367649859e-06, - 7.556675682830684e-06, - 0.009794909619919114, - 0.012162331423668024, - 0.004409168245002939, - -0.0005109421848153889, - -5.104031943394624e-05, - 1.1230304330508579e-05, - 1.3257484464788033e-05, - -0.0030253688628121816, - -0.0034934490296629, - -0.0014260007478840782, - -0.0002265014566943645, - 0.0001290571746617574, - 9.745366163340597e-06, - 7.959266894835176e-06, - 0.0009586599803288112, - 0.0013233710500476607, - 0.0005534299240544677, - -2.785881748788178e-05, - 5.492717517093931e-05, - -8.73896762511762e-06, - -1.5564292449235474e-06, - -0.00010171745547309499, - -0.0001268933834450726, - -0.0002203328561182326, - -2.113865521327789e-05, - 3.8758330869849496e-06, - -8.587333363543953e-06, - 3.139606583431266e-06, - 4.127940572753324e-05, - -0.0001375613090898817, - 3.91915692580563e-05, - 2.8485508818408667e-05, - 3.3882205349180594e-06, - -1.1960283895913718e-06, - 4.6385442560166606e-07 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface2": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -0.6985426179774754, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_1.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_1.vts deleted file mode 100644 index 5eb1e377d..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_1.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_2.json b/examples/2_Intermediate/inputs/input_ncsx/surface_2.json deleted file mode 100644 index b1df468fc..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_2.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface3" - }, - { - "iota": -0.42145063872985117, - "G": 13.887479020465854 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.6823511299700216, - 0.0, - 0.0 - ], - [ - 1.6656243294316084, - 0.01324928335501738, - -0.1436839017943719 - ], - [ - 1.6194177686194065, - 0.028306129741135014, - -0.27362059857069243 - ], - [ - 1.5544014364243677, - 0.04608886475724044, - -0.3758869285011543 - ], - [ - 1.4888818654508216, - 0.0634560830694565, - -0.43754665096222073 - ], - [ - 1.4434380727537952, - 0.0751922192945975, - -0.45303149709668017 - ], - [ - 1.430923947356372, - 0.07607729578769809, - -0.4235802861290252 - ], - [ - 1.4575974520412909, - 0.06158076713545835, - -0.34266481994691295 - ], - [ - 1.5089652197425227, - 0.03364463030437447, - -0.19726760909532678 - ], - [ - 1.5366061510061466, - 1.2047891156701813e-17, - -7.292015238373829e-17 - ], - [ - 1.5089652197425227, - -0.03364463030437445, - 0.19726760909532665 - ], - [ - 1.4575974520412909, - -0.061580767135458306, - 0.3426648199469127 - ], - [ - 1.4309239473563724, - -0.07607729578769808, - 0.4235802861290251 - ], - [ - 1.4434380727537952, - -0.0751922192945975, - 0.45303149709668017 - ], - [ - 1.4888818654508216, - -0.06345608306945655, - 0.43754665096222073 - ], - [ - 1.5544014364243677, - -0.046088864757240486, - 0.3758869285011545 - ], - [ - 1.6194177686194062, - -0.028306129741135038, - 0.2736205985706926 - ], - [ - 1.6656243294316084, - -0.013249283355017403, - 0.14368390179437224 - ], - [ - 1.6670743875766918, - 0.1909979328233626, - -0.0037708288399925555 - ], - [ - 1.6585704359902427, - 0.20392683893274668, - -0.14514812826851653 - ], - [ - 1.6211062040379558, - 0.2157768690943609, - -0.27193361453873316 - ], - [ - 1.5645274184863547, - 0.22801376561775782, - -0.36949762442372314 - ], - [ - 1.5070346878552976, - 0.23832639206624925, - -0.42458495033554017 - ], - [ - 1.467859007520592, - 0.24269445433360987, - -0.43245417646208834 - ], - [ - 1.458125324532024, - 0.23706772539873155, - -0.39383424098502084 - ], - [ - 1.4808653410262633, - 0.21851764104626684, - -0.3006338379781224 - ], - [ - 1.5156612566331042, - 0.1892307761151738, - -0.14403384664088525 - ], - [ - 1.5162209280826306, - 0.15434743013848548, - 0.054045859088592475 - ], - [ - 1.4655391616826403, - 0.11870499964150558, - 0.23930140800413924 - ], - [ - 1.4048847008539083, - 0.09102748279503277, - 0.3679646609433889 - ], - [ - 1.3788296947636296, - 0.08073901442414565, - 0.4356347269694033 - ], - [ - 1.3960298263348212, - 0.08828133625868456, - 0.4566002588339094 - ], - [ - 1.4479886485184403, - 0.10741096922639394, - 0.435388594866656 - ], - [ - 1.5201293505524922, - 0.13171389542317846, - 0.3702162215626687 - ], - [ - 1.5911869669467333, - 0.15533005380942277, - 0.26705037361795647 - ], - [ - 1.643459323699208, - 0.17506188805358308, - 0.13812438882187442 - ], - [ - 1.6223343766610094, - 0.3760666961869454, - -0.006996117210326947 - ], - [ - 1.6215602506067477, - 0.39127918612964147, - -0.14187624514639746 - ], - [ - 1.5937778276800012, - 0.4022204341560822, - -0.26192653838655844 - ], - [ - 1.547405364396518, - 0.40984058406999047, - -0.3518959563374569 - ], - [ - 1.4988992536633032, - 0.41313073695760383, - -0.39806561675468505 - ], - [ - 1.4651230920322045, - 0.40981523348258236, - -0.3970392571293972 - ], - [ - 1.4554322706618772, - 0.39712470575748343, - -0.349137309846548 - ], - [ - 1.4689152748921956, - 0.37289636639682977, - -0.24627468632240243 - ], - [ - 1.482287064299522, - 0.33884896606456194, - -0.08700322380082882 - ], - [ - 1.4579550478689747, - 0.29961997095143683, - 0.09974053964290322 - ], - [ - 1.3926602615322687, - 0.2615348094065577, - 0.26456369379857386 - ], - [ - 1.3299184223580387, - 0.2351098190900006, - 0.37418459172037816 - ], - [ - 1.3077813398027924, - 0.22954196446363426, - 0.4291634819636824 - ], - [ - 1.3306985607771713, - 0.24388703918913554, - 0.44301354191712133 - ], - [ - 1.3883424991507276, - 0.27048292176420413, - 0.41821379674094933 - ], - [ - 1.4648335787081588, - 0.30171060012077816, - 0.35259458186831877 - ], - [ - 1.5389471422933, - 0.3312621391962402, - 0.25251064667251394 - ], - [ - 1.59405244410479, - 0.3560545745229173, - 0.12887570296370515 - ], - [ - 1.5516460607446305, - 0.5506602781324357, - -0.009310300831525415 - ], - [ - 1.556285343637364, - 0.5690052700228216, - -0.13408677227519436 - ], - [ - 1.537081691001489, - 0.5806744252726596, - -0.2446786542055186 - ], - [ - 1.5011908633764435, - 0.5853035479135681, - -0.3247738067251294 - ], - [ - 1.461449103059182, - 0.5820412376902653, - -0.36020673836507855 - ], - [ - 1.431365541714213, - 0.5701066217878815, - -0.349678115534443 - ], - [ - 1.4184999916707564, - 0.5482548424483984, - -0.2937386920748534 - ], - [ - 1.4187921763719191, - 0.5152620791431418, - -0.18659869165296264 - ], - [ - 1.4106657614421236, - 0.4739347499901897, - -0.035152836140159065 - ], - [ - 1.3685761572422226, - 0.43043748879337307, - 0.13000374053050842 - ], - [ - 1.2983599222071058, - 0.39204397672754443, - 0.27018381204713837 - ], - [ - 1.2397930001492081, - 0.3688893752879442, - 0.36161896625135137 - ], - [ - 1.2240306682379833, - 0.3689319879470208, - 0.4061246748916627 - ], - [ - 1.2526853088312475, - 0.39003056368573435, - 0.41489539020365374 - ], - [ - 1.3141494272086112, - 0.42373158267757965, - 0.38843531227206524 - ], - [ - 1.3921656932326467, - 0.46172293145377946, - 0.32492307011746846 - ], - [ - 1.466256981487665, - 0.49704199322115616, - 0.23131662840489203 - ], - [ - 1.521285522504285, - 0.5265571960190064, - 0.11666942508337104 - ], - [ - 1.46007180764826, - 0.713442631207463, - -0.010839611828941245 - ], - [ - 1.4676587643043257, - 0.7336265945817245, - -0.12327103183995841 - ], - [ - 1.4548128511288114, - 0.7460459326817379, - -0.22220193711614222 - ], - [ - 1.4272212876376031, - 0.7483716188103139, - -0.2900175830435961 - ], - [ - 1.3935277928020133, - 0.7379707640719426, - -0.3135530087065599 - ], - [ - 1.3643545840588527, - 0.7153045404859985, - -0.2947617585192165 - ], - [ - 1.345913041956919, - 0.6819287043674273, - -0.23488545563136598 - ], - [ - 1.3325215720208576, - 0.6391143064899868, - -0.13135273555863794 - ], - [ - 1.3073837263495378, - 0.5918660777640088, - 0.002964056912448287 - ], - [ - 1.2564166366797433, - 0.547234767863363, - 0.14129973118074787 - ], - [ - 1.189631895998666, - 0.5117953934240059, - 0.2572233842201347 - ], - [ - 1.1400419153618035, - 0.4943139453868053, - 0.3335736662051312 - ], - [ - 1.1321189691027371, - 0.5008352441902544, - 0.37085625355592 - ], - [ - 1.1654986236156393, - 0.5280776526639489, - 0.37679323111096374 - ], - [ - 1.2285057322116786, - 0.5680886484244235, - 0.35025383377175817 - ], - [ - 1.305492574649259, - 0.6124978071915784, - 0.29089884066270466 - ], - [ - 1.377053066080424, - 0.6531906240670086, - 0.2061550486212699 - ], - [ - 1.4298129249509637, - 0.6866227867245536, - 0.10281020360038319 - ], - [ - 1.3515118400450052, - 0.8654321728485556, - -0.012210642520453233 - ], - [ - 1.360165778613561, - 0.8858111215889497, - -0.11100181336189875 - ], - [ - 1.3510418643458304, - 0.8974673341517525, - -0.19596530031753703 - ], - [ - 1.3277175292736865, - 0.8952767260554777, - -0.24962320943786165 - ], - [ - 1.2959951123799045, - 0.874691771388772, - -0.262608657869608 - ], - [ - 1.265472684859396, - 0.8389927620531274, - -0.23993961645762463 - ], - [ - 1.2412784703481436, - 0.7940219758927846, - -0.1824166797710812 - ], - [ - 1.2172484291855559, - 0.7437990455468149, - -0.08999692297304633 - ], - [ - 1.1822612975093156, - 0.6948017005340916, - 0.02224026311313613 - ], - [ - 1.1305828818325787, - 0.6535820063604789, - 0.13448021363097176 - ], - [ - 1.0727381237542686, - 0.6246880905368895, - 0.23022152778276328 - ], - [ - 1.0345417908607721, - 0.6147560408761562, - 0.2956730951050242 - ], - [ - 1.0344586939531675, - 0.6278376749257082, - 0.32890182895815023 - ], - [ - 1.071013463708978, - 0.6603141044108393, - 0.33381160958331946 - ], - [ - 1.1336250496814693, - 0.7056885424718883, - 0.30852029373167644 - ], - [ - 1.2074775631278702, - 0.7557464059537468, - 0.25479905750289744 - ], - [ - 1.2743339093671815, - 0.8010708062268455, - 0.17980476437393508 - ], - [ - 1.3230242399218926, - 0.8374218561316996, - 0.08828498388920031 - ], - [ - 1.2284378631116122, - 1.006709948293738, - -0.013529535200276758 - ], - [ - 1.236102950163345, - 1.0258295974722231, - -0.09799181414459161 - ], - [ - 1.227535948852175, - 1.0335391913624303, - -0.16770515402381425 - ], - [ - 1.2045001607897923, - 1.0220215414783167, - -0.2084343784698062 - ], - [ - 1.172267547143265, - 0.9876719493268439, - -0.21587967688742835 - ], - [ - 1.1403405033884342, - 0.9387661309758862, - -0.1952241648836396 - ], - [ - 1.1122487389129805, - 0.8848297134383258, - -0.14540665717224754 - ], - [ - 1.0823704380401167, - 0.8313599141190574, - -0.06842882836138325 - ], - [ - 1.0448664052199366, - 0.7855861305560277, - 0.021744812404612453 - ], - [ - 0.9985031821695326, - 0.7524686031107077, - 0.11298079588486422 - ], - [ - 0.9520084165563445, - 0.733182482309973, - 0.19453074153263378 - ], - [ - 0.9250942875518646, - 0.7318639415416757, - 0.2531383764310293 - ], - [ - 0.9317110056264915, - 0.7514171283133536, - 0.28457887122983416 - ], - [ - 0.9701512465111527, - 0.7886761549469881, - 0.28991190592638616 - ], - [ - 1.031101059933968, - 0.8385019338892936, - 0.26742500552108184 - ], - [ - 1.1001992386461583, - 0.8927161838047115, - 0.22038555953656397 - ], - [ - 1.1605506729118513, - 0.9409851406459288, - 0.154784042041404 - ], - [ - 1.2034656510082307, - 0.9787215506863501, - 0.07420499752637626 - ], - [ - 1.0933720887900484, - 1.1369037923354783, - -0.013112496993122674 - ], - [ - 1.0971055897265614, - 1.1520751045634454, - -0.08412421025936163 - ], - [ - 1.0858420683069347, - 1.1510581328419611, - -0.1412002266764009 - ], - [ - 1.0612111134709985, - 1.1257076957260874, - -0.17479861325275103 - ], - [ - 1.028853911299876, - 1.0765718956391888, - -0.183250594739715 - ], - [ - 0.9971284542332866, - 1.0166941163029852, - -0.16894117794278207 - ], - [ - 0.9677143154642579, - 0.9574642429595064, - -0.1293952600987554 - ], - [ - 0.9364739749261307, - 0.9052513829561364, - -0.06830553906351482 - ], - [ - 0.9016307846409007, - 0.8673712537815074, - 0.003735069950658553 - ], - [ - 0.863607262665753, - 0.8458142590235722, - 0.08082499134573345 - ], - [ - 0.8285713946775775, - 0.8378198831671338, - 0.15374965398211712 - ], - [ - 0.8116980963702448, - 0.845705592532285, - 0.20841542718182002 - ], - [ - 0.823907040135387, - 0.8720679205551519, - 0.23974690143778424 - ], - [ - 0.863441694443935, - 0.9141802098351967, - 0.24735597419777697 - ], - [ - 0.9218318691524919, - 0.9677153860880974, - 0.22967899069387682 - ], - [ - 0.9852160561751789, - 1.0244478659581238, - 0.19030095496673224 - ], - [ - 1.0381538942316293, - 1.0735223611291034, - 0.13360452870438777 - ], - [ - 1.0739951246870143, - 1.1106186415992958, - 0.06282875908717728 - ], - [ - 0.9464976313884446, - 1.2562025010484825, - -0.008530111820960177 - ], - [ - 0.9434962713258178, - 1.2625778554869702, - -0.07025848644378009 - ], - [ - 0.9283310279573187, - 1.2482928555911044, - -0.121848272611851 - ], - [ - 0.9032043614585116, - 1.2078283923374002, - -0.15593824832061062 - ], - [ - 0.8728011034895298, - 1.145850152352009, - -0.1702273700667534 - ], - [ - 0.843196556516351, - 1.0780069894683257, - -0.1642272892466967 - ], - [ - 0.8149834854523267, - 1.0169033130549567, - -0.13525307298602218 - ], - [ - 0.7857770655242343, - 0.9697891764236966, - -0.0874350264313162 - ], - [ - 0.7560880741494052, - 0.9429003816469205, - -0.027406160578747257 - ], - [ - 0.726724649551588, - 0.9344464757903965, - 0.04196384754346673 - ], - [ - 0.702150362603417, - 0.9383409081938053, - 0.11018893332716606 - ], - [ - 0.6943729515758192, - 0.9559645057155431, - 0.16310918653568157 - ], - [ - 0.7116269730709063, - 0.9897401498992222, - 0.1964965476907892 - ], - [ - 0.7516314223017545, - 1.036865062806896, - 0.20881316980044454 - ], - [ - 0.8065466588187717, - 1.0935490342576566, - 0.19790304179814464 - ], - [ - 0.8633850646738448, - 1.1517752014822356, - 0.1669610069434356 - ], - [ - 0.9081220817466271, - 1.2003021946674377, - 0.11894220918114103 - ], - [ - 0.935359055748825, - 1.2348278312001308, - 0.05727758355228221 - ], - [ - 0.7860552663004561, - 1.3614876587894733, - -3.3939822855268905e-18 - ], - [ - 0.776443372077041, - 1.3545604289713788, - -0.05998148596525217 - ], - [ - 0.759364903953762, - 1.3257396805421724, - -0.11414035638602617 - ], - [ - 0.7362692927306436, - 1.2723479488714893, - -0.1540805256944155 - ], - [ - 0.7097174719558952, - 1.2007471063391761, - -0.17639386833536636 - ], - [ - 0.6837342566968659, - 1.12775227463687, - -0.1791394964149477 - ], - [ - 0.6587498412653043, - 1.0673536660187912, - -0.15956493101872343 - ], - [ - 0.6336306446150545, - 1.0275264135343338, - -0.12095477636364205 - ], - [ - 0.6095865234045647, - 1.0128777760884076, - -0.06680712550294271 - ], - [ - 0.5877653830938002, - 1.018039506448647, - -9.678477605874886e-18 - ], - [ - 0.5723846233189652, - 1.0343563031171938, - 0.06680712550294267 - ], - [ - 0.5730486548727206, - 1.0625034416201136, - 0.12095477636364202 - ], - [ - 0.5949804689620726, - 1.1041709302841156, - 0.15956493101872346 - ], - [ - 0.6347949906627818, - 1.1560073730555913, - 0.17913949641494775 - ], - [ - 0.6850187616324339, - 1.215006913393063, - 0.17639386833536636 - ], - [ - 0.733750999810412, - 1.273801885966883, - 0.1540805256944156 - ], - [ - 0.7684417901777069, - 1.320499137837374, - 0.11414035638602622 - ], - [ - 0.7848620564118407, - 1.3496998993044598, - 0.05998148596525228 - ], - [ - 0.6146544625113118, - 1.4477922439284334, - 0.008530111820960154 - ], - [ - 0.6017127432449437, - 1.427458619538373, - -0.057277583552282074 - ], - [ - 0.5854311519269024, - 1.3866078898639067, - -0.11894220918114093 - ], - [ - 0.5657740515956343, - 1.3236009999967382, - -0.16696100694343544 - ], - [ - 0.5437679145416845, - 1.245264413003345, - -0.19790304179814447 - ], - [ - 0.5221357735364426, - 1.169364437399397, - -0.20881316980044443 - ], - [ - 0.5013266264226919, - 1.1111571116472405, - -0.19649654769078903 - ], - [ - 0.4807030712779854, - 1.0793268686232131, - -0.16310918653568152 - ], - [ - 0.46155188260428887, - 1.0772505053879167, - -0.11018893332716598 - ], - [ - 0.4458920617355301, - 1.0965852459632168, - -0.041963847543466645 - ], - [ - 0.4385316466695733, - 1.1262416705352973, - 0.027406160578747337 - ], - [ - 0.44697353033599296, - 1.1653974886670242, - 0.08743502643131623 - ], - [ - 0.4731723595719894, - 1.2142480585939786, - 0.13525307298602215 - ], - [ - 0.5119831600785785, - 1.2692331330608837, - 0.16422728924669674 - ], - [ - 0.5559347891223445, - 1.3287930042490277, - 0.17022737006675343 - ], - [ - 0.5944078904470508, - 1.3861121180006732, - 0.15593824832061062 - ], - [ - 0.6168878103258569, - 1.428104681127912, - 0.121848272611851 - ], - [ - 0.6216763614444855, - 1.4483806670875385, - 0.0702584864437802 - ], - [ - 0.43790152142636823, - 1.515339900848776, - 0.013112496993122672 - ], - [ - 0.424826395198048, - 1.4854163823192386, - -0.06282875908717714 - ], - [ - 0.41062068915264116, - 1.435828826006886, - -0.13360452870438774 - ], - [ - 0.39458984868490143, - 1.3654460658430838, - -0.19030095496673213 - ], - [ - 0.37715017340911267, - 1.2821875097481994, - -0.2296789906938767 - ], - [ - 0.35998243813230174, - 1.2048525469927271, - -0.24735597419777697 - ], - [ - 0.3432794529585379, - 1.149558387391666, - -0.23974690143778427 - ], - [ - 0.3265534790704079, - 1.1258039679262442, - -0.20841542718182005 - ], - [ - 0.3112876052796598, - 1.1364738182234515, - -0.15374965398211712 - ], - [ - 0.30069300386464864, - 1.1708129578730688, - -0.08082499134573347 - ], - [ - 0.30035014796669457, - 1.21452079122387, - -0.0037350699506585932 - ], - [ - 0.3157337069879443, - 1.2636359437470888, - 0.06830553906351472 - ], - [ - 0.34533119988603966, - 1.3167973022776691, - 0.12939526009875532 - ], - [ - 0.3819187054799127, - 1.3718856303538278, - 0.16894117794278207 - ], - [ - 0.4179116549739691, - 1.4292995717882686, - 0.18325059473971503 - ], - [ - 0.4442859049989358, - 1.4818896309072989, - 0.17479861325275103 - ], - [ - 0.4539245501203542, - 1.5158958820726238, - 0.14120022667640098 - ], - [ - 0.44917351275627665, - 1.5261588636188328, - 0.08412421025936175 - ], - [ - 0.25761745790909, - 1.5672133705721962, - 0.013529535200276756 - ], - [ - 0.24586490062156324, - 1.5315926016982804, - -0.07420499752637601 - ], - [ - 0.2346416999271219, - 1.4755589354437526, - -0.1547840420414038 - ], - [ - 0.22301527422129952, - 1.3991585817942276, - -0.22038555953656377 - ], - [ - 0.21061344590352435, - 1.3122106787165242, - -0.26742500552108167 - ], - [ - 0.19793796228754773, - 1.2345137024652915, - -0.28991190592638616 - ], - [ - 0.18489081914486982, - 1.1825939640147642, - -0.2845788712298341 - ], - [ - 0.1712656217129683, - 1.167087124686619, - -0.2531383764310294 - ], - [ - 0.15895044701199929, - 1.1910547145093788, - -0.19453074153263372 - ], - [ - 0.15240533475929696, - 1.24096342307377, - -0.11298079588486423 - ], - [ - 0.1579043433122704, - 1.2976739157594044, - -0.021744812404612502 - ], - [ - 0.17879358629509462, - 1.3530402527075607, - 0.06842882836138305 - ], - [ - 0.21016064040440507, - 1.4056505199450093, - 0.14540665717224738 - ], - [ - 0.2428250659433302, - 1.456946910386662, - 0.19522416488363953 - ], - [ - 0.26921522515071117, - 1.5090494505215615, - 0.21587967688742826 - ], - [ - 0.2828465377402576, - 1.5541385088455595, - 0.2084343784698062 - ], - [ - 0.2813032211006035, - 1.579846911445834, - 0.16770515402381422 - ], - [ - 0.2703430162832379, - 1.583411355270458, - 0.09799181414459175 - ], - [ - 0.07373032691671205, - 1.603159673418703, - 0.012210642520453223 - ], - [ - 0.06371648113342322, - 1.5644835296608066, - -0.08828498388920009 - ], - [ - 0.05658071373893907, - 1.5041409415293385, - -0.179804764373935 - ], - [ - 0.05075680481079683, - 1.4235794471453374, - -0.2547990575028973 - ], - [ - 0.04433168009953454, - 1.334592362626493, - -0.30852029373167633 - ], - [ - 0.036342057042468165, - 1.2576819195725577, - -0.33381160958331946 - ], - [ - 0.02649402896203601, - 1.2097863455919686, - -0.32890182895815034 - ], - [ - 0.015123453098310279, - 1.2033174926001544, - -0.29567309510502426 - ], - [ - 0.004626693969405571, - 1.2413625120476963, - -0.2302215277827633 - ], - [ - 0.0007271800482880897, - 1.3059044999310727, - -0.1344802136309718 - ], - [ - 0.010585274500493735, - 1.371269167821265, - -0.022240263113136247 - ], - [ - 0.035524654161382514, - 1.4260675851648021, - 0.08999692297304608 - ], - [ - 0.06700396711219482, - 1.4719896764385738, - 0.18241667977108103 - ], - [ - 0.09385270309958338, - 1.5154278739100997, - 0.2399396164576246 - ], - [ - 0.10950773831393501, - 1.5597105761958518, - 0.26260865786960796 - ], - [ - 0.11147362354416233, - 1.59747547242866, - 0.24962320943786165 - ], - [ - 0.10170857826920014, - 1.6187702431756545, - 0.1959653003175371 - ], - [ - 0.08705204494403643, - 1.6208436784320592, - 0.11100181336189893 - ], - [ - -0.11217646105565429, - 1.6211805923765907, - 0.010839611828941248 - ], - [ - -0.12027368635475362, - 1.5815657090291442, - -0.10281020360038286 - ], - [ - -0.12284685908437128, - 1.5191582496184026, - -0.2061550486212697 - ], - [ - -0.12230762653445937, - 1.436838637694, - -0.29089884066270444 - ], - [ - -0.12227366496872163, - 1.347961497002328, - -0.350253833771758 - ], - [ - -0.12542064942998463, - 1.2733902424589156, - -0.3767932311109637 - ], - [ - -0.13232343997202534, - 1.2308614094443469, - -0.37085625355592 - ], - [ - -0.1419325235310146, - 1.2344622327757933, - -0.3335736662051313 - ], - [ - -0.15158813575429242, - 1.2861491397990947, - -0.25722338422013474 - ], - [ - -0.15428910753611896, - 1.3617061090337421, - -0.14129973118074796 - ], - [ - -0.14112080419288112, - 1.4281605583950667, - -0.002964056912448443 - ], - [ - -0.11277156066802652, - 1.4735546857058313, - 0.13135273555863758 - ], - [ - -0.08238893942645907, - 1.5065592378031964, - 0.2348854556313657 - ], - [ - -0.0627053885261971, - 1.539217999807717, - 0.2947617585192163 - ], - [ - -0.05766246746449162, - 1.5758158514821723, - 0.3135530087065598 - ], - [ - -0.06550181045778522, - 1.6101957013212582, - 0.29001758304359615 - ], - [ - -0.08131169547196528, - 1.6329278531704878, - 0.2222019371161423 - ], - [ - -0.09849011435252202, - 1.637843071265286, - 0.12327103183995862 - ], - [ - -0.29893724065462124, - 1.61909504535312, - 0.009310300831525413 - ], - [ - -0.3046308529541804, - 1.580750506907697, - -0.11666942508337073 - ], - [ - -0.30267749786665843, - 1.5183367910551855, - -0.2313166284048919 - ], - [ - -0.2962190584675292, - 1.4365123223435357, - -0.3249230701174683 - ], - [ - -0.2901123986197353, - 1.349952579670216, - -0.3884353122720652 - ], - [ - -0.2885662780114134, - 1.2798725822382826, - -0.41489539020365374 - ], - [ - -0.29251086028817713, - 1.2445076476788457, - -0.4061246748916628 - ], - [ - -0.30042892988907277, - 1.2581369212073106, - -0.3616189662513515 - ], - [ - -0.309659917856824, - 1.3204346642507132, - -0.27018381204713854 - ], - [ - -0.31151827858487047, - 1.4004404635821377, - -0.13000374053050848 - ], - [ - -0.2948933474933307, - 1.4586397606528925, - 0.035152836140158954 - ], - [ - -0.2631660380412107, - 1.4863411070002646, - 0.18659869165296233 - ], - [ - -0.23444737452723016, - 1.502584449279089, - 0.2937386920748532 - ], - [ - -0.22195595352307404, - 1.524652232120124, - 0.349678115534443 - ], - [ - -0.22666205363968442, - 1.5566726684323662, - 0.36020673836507855 - ], - [ - -0.24370769026990918, - 1.5927211975698783, - 0.3247738067251295 - ], - [ - -0.2656620418866925, - 1.6214890047355617, - 0.2446786542055187 - ], - [ - -0.2853696530916943, - 1.6322852781387631, - 0.1340867722751946 - ], - [ - -0.485483875915325, - 1.593016131714699, - 0.006996117210326968 - ], - [ - -0.4886739153818886, - 1.5585171988208806, - -0.12887570296370482 - ], - [ - -0.4825921432907288, - 1.4983983899055837, - -0.2525106466725137 - ], - [ - -0.4711277450584367, - 1.4194383915381266, - -0.35259458186831844 - ], - [ - -0.4599261680377236, - 1.3375813343002074, - -0.4182137967409493 - ], - [ - -0.4541369087970228, - 1.2743622780069888, - -0.44301354191712117 - ], - [ - -0.45510149744130357, - 1.2473428450962845, - -0.4291634819636824 - ], - [ - -0.4613481351679148, - 1.269298048267984, - -0.3741845917203783 - ], - [ - -0.4698343418461336, - 1.3368465700313035, - -0.26456369379857403 - ], - [ - -0.46949901760938717, - 1.412436094506008, - -0.0997405396429035 - ], - [ - -0.4476917194917589, - 1.4531227364167247, - 0.08700322380082849 - ], - [ - -0.41151991116753317, - 1.4585661272620587, - 0.24627468632240204 - ], - [ - -0.38379605167453734, - 1.4590036727595965, - 0.3491373098465476 - ], - [ - -0.3776511429623345, - 1.4737414341123867, - 0.39703925712939697 - ], - [ - -0.3916679135421797, - 1.5046501998647581, - 0.398065616754685 - ], - [ - -0.4187703248917948, - 1.5450126475546964, - 0.35189595633745696 - ], - [ - -0.4485557999396267, - 1.5813623038372995, - 0.26192653838655855 - ], - [ - -0.47192241014300407, - 1.5999519638573252, - 0.14187624514639774 - ], - [ - -0.6681281318929996, - 1.539227736051482, - 0.0037708288399925733 - ], - [ - -0.6701216195607328, - 1.510808468436699, - -0.13812438882187397 - ], - [ - -0.661073710903202, - 1.4556733624512928, - -0.2670503736179562 - ], - [ - -0.6459970958083661, - 1.3823275823283885, - -0.37021622156266837 - ], - [ - -0.6309736962640538, - 1.307700438621663, - -0.4353885948666558 - ], - [ - -0.6215610332873529, - 1.2531379621760759, - -0.4566002588339093 - ], - [ - -0.6194928098139859, - 1.2344710503697196, - -0.43563472696940353 - ], - [ - -0.6236102378839042, - 1.2621795817251027, - -0.36796466094338925 - ], - [ - -0.629968035595553, - 1.3285466440788694, - -0.23930140800413952 - ], - [ - -0.6244416685325426, - 1.3902595565384197, - -0.05404585908859285 - ], - [ - -0.5939519690229655, - 1.4072165398337013, - 0.14403384664088487 - ], - [ - -0.551190842192015, - 1.391725825435784, - 0.30063383797812193 - ], - [ - -0.5237559896533167, - 1.3813074356455282, - 0.3938342409850205 - ], - [ - -0.523749940949787, - 1.3925504168534517, - 0.43245417646208817 - ], - [ - -0.5471206340059863, - 1.424293520100165, - 0.4245849503355401 - ], - [ - -0.5847979958056476, - 1.46892737213535, - 0.3694976244237233 - ], - [ - -0.6236848518341912, - 1.5118075894766099, - 0.2719336145387332 - ], - [ - -0.6526793949659047, - 1.5383275509997565, - 0.1451481282685168 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.4493535496003798, - 0.08325147988782641, - -0.0011494991500039988, - -0.00041319079884620454, - -6.155927889576924e-05, - -5.332073531606106e-05, - 4.239962021934183e-05, - 0.147989354758979, - -0.05683903073857911, - 0.0004295280569777099, - 0.0004773732328517161, - 2.792777478429475e-05, - -0.00013257924732847345, - -2.470062519829713e-05, - 0.032270038271179774, - 0.03307289504821164, - 0.008451927113977156, - -0.0009216105986820785, - -5.7453232240979744e-05, - -5.0037052279139516e-05, - 1.8975990502208598e-05, - -0.009708703356894355, - -0.005154415297131473, - -0.0019409541906424913, - -0.0002684008808912313, - 0.00021506813814514938, - -1.1333901816291265e-05, - 4.0629387826377814e-07, - 0.001193158834728476, - 0.0028335790313630997, - 0.0008666212640681613, - 2.572577832344851e-05, - 0.00017847212785997285, - -3.685344378884824e-06, - -1.3081674898566334e-06, - -0.0009552839550063532, - -0.0007106602283719055, - -0.0004760891472440242, - -4.265161945565775e-05, - 1.3406227566167038e-05, - -2.6998181636485175e-05, - 1.1226368951627446e-05, - 0.0004009932372981402, - -4.6685146316322666e-06, - 0.0001246078196868825, - 9.332760192948551e-05, - 1.6570443321182836e-05, - -1.4987566058863372e-06, - 2.1504465796822353e-06, - 0.12955397842317515, - 0.0006486800050074572, - -0.00015485403654202644, - -9.700366645264526e-05, - -1.4623291276584433e-05, - -2.2004588728503653e-05, - -0.02823148475141716, - -0.007141640393643781, - 0.0011961216040503938, - -6.839701641414605e-05, - 1.3906053679200137e-05, - -1.70746478216404e-05, - 0.005374337737530619, - 0.002505578592565698, - 0.000671636654113925, - -0.00015266273024483232, - -2.6252754132296384e-06, - -8.611853961489912e-06, - -0.0014885506315896002, - -0.0009076093593669751, - 2.2864462477555485e-05, - -0.00022025733650921252, - 2.399533480222319e-05, - 5.561666007695647e-06, - 0.000288599204150171, - 0.0004744383094247833, - 0.00010597569908482235, - 1.537413197299124e-05, - 3.0252867369998624e-05, - -1.001584900990688e-05, - 7.631330028116267e-05, - -9.001136923494332e-05, - -0.00010653021723705718, - -2.185606243410953e-05, - 3.439517018268934e-06, - -2.766948549926675e-06, - -0.0274190782986448, - 0.0034212326837745333, - 0.00045675089193134347, - 7.552844625090575e-05, - -0.00012888435983663462, - -2.913190639510925e-05, - 0.026369234032602523, - -0.00022527451595417714, - -0.0006630945471038989, - 9.928164392893598e-05, - -9.895070073005569e-05, - 5.836700555699283e-05, - -0.01867606699728206, - -0.0010484407057275197, - 0.0006465688815920653, - 0.00015925079302565417, - -6.0220731852433096e-05, - -1.6745435395126382e-05, - 0.0014506197703188744, - 0.0011728439887011167, - -0.0001968099616707447, - -6.963216937847807e-05, - -2.7575314965798237e-05, - 2.0298185233279393e-05, - -0.0004678800796003005, - 1.9819890056919078e-05, - -1.598747362090031e-05, - 0.00010449800507656954, - 3.5313167649741656e-05, - 1.1627074541469276e-05, - 0.0001356755701469291, - 7.512298582643416e-05, - 6.411857481616069e-06, - 1.2163092653749355e-05, - -1.1773809024522087e-05, - -9.067691156922598e-06, - 3.157821568661448e-05, - -1.6630278869267405e-05, - -1.3863909779582313e-05, - 1.6940279036488818e-05, - 8.29563769859082e-06, - 6.982729196297152e-06, - 0.02688569303958676, - 0.046395638501152865, - -0.003030600587690146, - -0.00021989630441359318, - 0.0001125735382740016, - 4.298487202820317e-05, - 7.08887813194455e-05, - 0.0031123385307896033, - -0.018819968958826067, - -0.0013608676204555086, - 0.0001506316275099254, - 2.5956882426493875e-05, - 2.34549589355703e-05, - 9.846738568730781e-06, - -0.0014672716594779638, - 0.0008198808749199534, - 0.0009930261504175252, - -0.0006180875005689887, - -7.871214710591496e-05, - -1.2029364200514969e-05, - 3.7946761342429052e-06, - 0.0004082147792561953, - 0.000384099014174492, - -0.0002120611374988894, - -0.00020183578876873032, - 2.7137677382252443e-05, - 3.7281996718364064e-05, - 1.238434569431264e-05, - -0.00025204921146895743, - -7.313536701112505e-05, - 6.477166051328089e-05, - -4.861940970784689e-06, - 2.0179945437207578e-05, - -1.7552665402768574e-05, - -1.2736257322618096e-05, - 8.207017069967471e-05, - 0.0001168388170464562, - 2.9037579343171604e-05, - -2.2595077909890958e-05, - 3.766329786989072e-06, - 4.5194289123798055e-06, - 6.3628843016666744e-06, - 0.04701992770005098, - -0.0017961844930162887, - 0.0006821881870725348, - -2.7616701285037306e-05, - -3.512353613149333e-05, - 1.4343895082901577e-05, - -0.07427293732946055, - -0.0004504881347213861, - -0.00024336822246996066, - 0.000113859331819959, - 1.1489815883296356e-05, - -1.2642848429815675e-05, - 0.015089978402473272, - 0.00688386868578505, - -0.0014670738785944278, - -2.0452161120466673e-05, - 5.104214980089241e-06, - -1.1117198522838905e-05, - -0.002510146901066237, - -0.0024639947234872945, - -0.0006759483395403726, - 0.00020990911753752012, - 2.6982294437713682e-05, - 6.130115198277204e-06, - 0.0018771172979451297, - 0.001093804193476947, - -0.00013600521090708902, - 0.000196919422384342, - -3.431126559250331e-05, - -7.2702566183380945e-06, - 5.6836044180162034e-05, - -0.00044812938555360837, - -5.780963617524435e-05, - 9.73209437525741e-06, - -2.7833801897773328e-05, - 9.202520758695822e-06, - -0.0005080385385322326, - 0.00011569066264907672, - 9.681887669242846e-05, - 1.6239602848207794e-05, - -6.9855648809125325e-06, - 4.0353508510655934e-06, - -0.3198481608452442, - -0.14108529973154624, - -0.002308365218503719, - 0.00044984158184431636, - 9.314143391675952e-05, - -2.2614412307898978e-05, - 1.9213211978934572e-05, - 0.011907317261862269, - 0.01546505667551466, - 0.006620347901938856, - -0.0008053940210493824, - -0.00012255309743329596, - 3.489197263065744e-05, - 1.9892470517015898e-05, - -0.0051682983075053, - -0.005384843223051991, - -0.002122928346874864, - -0.000443166388948808, - 0.0002520022345210494, - 2.483093528294158e-05, - 1.3914644792680282e-05, - 0.0018777902963215082, - 0.0026803740287078383, - 0.0010547921340934045, - -0.0001518385753927334, - 0.00014836916964325013, - -1.8655813556282743e-05, - -7.044940844641953e-06, - -0.00022891089684964596, - -0.0003605537753093528, - -0.0005192546944023529, - -2.4838439286763356e-05, - 2.2574845423083476e-05, - -2.8018991623479383e-05, - 9.369547200810535e-06, - 0.00013910408293547796, - -0.0003317722555313199, - 0.00011562779290535079, - 7.44284978050918e-05, - 1.0437652922335508e-05, - -5.5926765978954235e-06, - 2.449612536107737e-06 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface3": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -1.101084790730291, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_2.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_2.vts deleted file mode 100644 index c0b7ec8cd..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_2.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_3.json b/examples/2_Intermediate/inputs/input_ncsx/surface_3.json deleted file mode 100644 index d0914caa4..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_3.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface4" - }, - { - "iota": -0.4271751366039177, - "G": 13.887478977083509 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.6994002310970135, - 0.0, - 0.0 - ], - [ - 1.6783018259696605, - 0.013989715741971059, - -0.1636315863473969 - ], - [ - 1.6198439756699088, - 0.030964741074693672, - -0.3117520392562631 - ], - [ - 1.5367401587040257, - 0.0527383043076104, - -0.42721424309952216 - ], - [ - 1.4533793559794126, - 0.07505412701363659, - -0.4945960106143317 - ], - [ - 1.3977674246586664, - 0.09067971038199396, - -0.5090677526726153 - ], - [ - 1.3837646497917107, - 0.09273754020340279, - -0.47573267424024956 - ], - [ - 1.4189984558088469, - 0.07524290291647664, - -0.3885884328666778 - ], - [ - 1.488625413157553, - 0.04091589310339855, - -0.22685351074773188 - ], - [ - 1.5270112900117823, - 1.4598835763232583e-17, - -8.440277459175405e-17 - ], - [ - 1.488625413157553, - -0.04091589310339852, - 0.22685351074773175 - ], - [ - 1.4189984558088469, - -0.07524290291647659, - 0.38858843286667755 - ], - [ - 1.3837646497917109, - -0.09273754020340276, - 0.4757326742402494 - ], - [ - 1.3977674246586664, - -0.09067971038199396, - 0.5090677526726153 - ], - [ - 1.4533793559794128, - -0.07505412701363659, - 0.49459601061433184 - ], - [ - 1.5367401587040257, - -0.05273830430761048, - 0.42721424309952244 - ], - [ - 1.6198439756699088, - -0.030964741074693686, - 0.31175203925626327 - ], - [ - 1.6783018259696605, - -0.013989715741971097, - 0.16363158634739727 - ], - [ - 1.6842772255112095, - 0.19420224105350636, - -0.008055394996668203 - ], - [ - 1.6719250026284131, - 0.2076610322571218, - -0.16941311833921388 - ], - [ - 1.6227864154581646, - 0.2206024842412186, - -0.31413843035654115 - ], - [ - 1.5487656244550263, - 0.2355770905626783, - -0.4242336639374951 - ], - [ - 1.4749965147846282, - 0.24938195108033903, - -0.48414562579857334 - ], - [ - 1.427415008114949, - 0.25617741122630683, - -0.49028096131961496 - ], - [ - 1.417531244922719, - 0.25036618867897314, - -0.44709020590910264 - ], - [ - 1.449857747751978, - 0.22821675068372424, - -0.34548387414448184 - ], - [ - 1.5008383928838258, - 0.19296872639831852, - -0.1691261555542676 - ], - [ - 1.5058746112585182, - 0.15101838177786614, - 0.05948757176482956 - ], - [ - 1.4394473334126232, - 0.10744940820632023, - 0.2712899633567697 - ], - [ - 1.3602366419035334, - 0.07311260656762869, - 0.4125782417924735 - ], - [ - 1.3271492061036625, - 0.06069761265402513, - 0.48470135297904066 - ], - [ - 1.3473158465725596, - 0.070900447379398, - 0.5090193438473741 - ], - [ - 1.411166020759621, - 0.09551547943751455, - 0.48840106433464026 - ], - [ - 1.502334977107431, - 0.12608729030002952, - 0.4170359355005629 - ], - [ - 1.5917782209822333, - 0.15461353411260095, - 0.3004963236744969 - ], - [ - 1.6562451150262758, - 0.17704661510806263, - 0.15362341656536094 - ], - [ - 1.6399617322798796, - 0.382699232250926, - -0.015204138966055217 - ], - [ - 1.6361505248748751, - 0.3987930493198212, - -0.16979531952817206 - ], - [ - 1.5978425230103812, - 0.4101130655877241, - -0.3073413704096919 - ], - [ - 1.5355880119871803, - 0.4187567508438983, - -0.4090439665994181 - ], - [ - 1.4729755157787348, - 0.4238105353437439, - -0.4587089313771028 - ], - [ - 1.4324002016749848, - 0.42149571720479945, - -0.4548578000784214 - ], - [ - 1.4234877567638013, - 0.4075325092120673, - -0.4013186407197054 - ], - [ - 1.4462789995286485, - 0.3793699063595553, - -0.2874893545009086 - ], - [ - 1.4717610827746987, - 0.33941052493685775, - -0.10618203212219983 - ], - [ - 1.4456510033743932, - 0.2927423529583782, - 0.10953452054650564 - ], - [ - 1.3616543320485146, - 0.24619005557556925, - 0.2966303539283297 - ], - [ - 1.2812220262271168, - 0.21313098435175326, - 0.4156629340605351 - ], - [ - 1.2536342632692783, - 0.2062594460551207, - 0.47387548565056 - ], - [ - 1.2811061865047602, - 0.2247249545340336, - 0.49073063977543124 - ], - [ - 1.3521896547180359, - 0.2584444372097102, - 0.46619885566257085 - ], - [ - 1.4484457509781394, - 0.29729739057458465, - 0.39409351747290633 - ], - [ - 1.5408080527207988, - 0.3327083909847875, - 0.28096023640178674 - ], - [ - 1.6074722082140225, - 0.36085709100968216, - 0.14007464690003416 - ], - [ - 1.5699644076507298, - 0.5609430567921626, - -0.020618195772928002 - ], - [ - 1.5721346535028642, - 0.5808468211291525, - -0.16456788714055914 - ], - [ - 1.5440945641725337, - 0.5927057827190801, - -0.29239303403286043 - ], - [ - 1.4952524414497743, - 0.5971540307560984, - -0.3833427864981317 - ], - [ - 1.4440767716845355, - 0.5940011175304036, - -0.4202671979396572 - ], - [ - 1.4082273401581493, - 0.5813420777607314, - -0.4052912689425985 - ], - [ - 1.3961624699153694, - 0.5567915189770487, - -0.3422397146029258 - ], - [ - 1.4037571382962626, - 0.5189502465561905, - -0.22183297750954292 - ], - [ - 1.4024526238428119, - 0.4710498657980357, - -0.048149649880064295 - ], - [ - 1.3537854792583164, - 0.41968367380214866, - 0.1422047905077062 - ], - [ - 1.2642248156551643, - 0.3729564495280606, - 0.30035501759371114 - ], - [ - 1.18957231463363, - 0.34385158749364614, - 0.3991916630590425 - ], - [ - 1.1699125319170942, - 0.34354021762793435, - 0.446495419438404 - ], - [ - 1.204674909948544, - 0.36982459620419345, - 0.45811607371369506 - ], - [ - 1.28070261322415, - 0.41184964549777375, - 0.4313718214953074 - ], - [ - 1.378614214386285, - 0.45874170397609787, - 0.36096794004115507 - ], - [ - 1.470272653305162, - 0.5008920293658823, - 0.2549468731809324 - ], - [ - 1.5358449597337283, - 0.5343349461581237, - 0.12405579224915278 - ], - [ - 1.47943263840522, - 0.7274983324633081, - -0.024153647921828485 - ], - [ - 1.4848836328153898, - 0.74986090717152, - -0.1550865912955078 - ], - [ - 1.4652570522641715, - 0.7633561358585721, - -0.27082274356984937 - ], - [ - 1.4281152698920623, - 0.7655858469925065, - -0.34769821045564725 - ], - [ - 1.3850829515396341, - 0.753429779596402, - -0.3698209414628336 - ], - [ - 1.350208237301702, - 0.727063640870112, - -0.34498701408167254 - ], - [ - 1.3317468267390018, - 0.6885142574366762, - -0.2770841720763705 - ], - [ - 1.3227108234300677, - 0.6393422705520097, - -0.1594287439742389 - ], - [ - 1.29945130143365, - 0.5848613836156326, - -0.004984187713953002 - ], - [ - 1.2393329304317604, - 0.5325920660943073, - 0.15368042101712426 - ], - [ - 1.1546002243735143, - 0.4899549214292477, - 0.2842042913561131 - ], - [ - 1.091246269869086, - 0.46809954567368006, - 0.36738245415242793 - ], - [ - 1.0809366305893418, - 0.47528492630419295, - 0.40788994698457315 - ], - [ - 1.1214155059041317, - 0.5079940127364853, - 0.4165553904093905 - ], - [ - 1.1993658498030404, - 0.5568978318990657, - 0.3887264716237439 - ], - [ - 1.2958231756104137, - 0.6113394613821291, - 0.3219901301123801 - ], - [ - 1.3838571152594126, - 0.659813182044889, - 0.22568607237733873 - ], - [ - 1.4459947451523711, - 0.6977329991752353, - 0.10723325371267761 - ], - [ - 1.372142384271262, - 0.8835202499329097, - -0.02638763074471772 - ], - [ - 1.3791552589154634, - 0.9067693106694855, - -0.14254741906745022 - ], - [ - 1.3651915825627357, - 0.9210842485784534, - -0.2425116294476678 - ], - [ - 1.3345134594365777, - 0.918843462322586, - -0.3019479595009338 - ], - [ - 1.2940571128142813, - 0.8932121452088223, - -0.3110022689237121 - ], - [ - 1.2574480219683042, - 0.8495905565769875, - -0.28224996276748004 - ], - [ - 1.2323790951748657, - 0.7968666821705338, - -0.21713038520368647 - ], - [ - 1.2099789863223431, - 0.7392616975737065, - -0.11146908601899103 - ], - [ - 1.1734238098900842, - 0.6831869349668819, - 0.01728174348417251 - ], - [ - 1.1120660618846032, - 0.6356585670553434, - 0.14525134885241506 - ], - [ - 1.0389203687908508, - 0.6015934216909348, - 0.25356905443616035 - ], - [ - 0.9897052411246712, - 0.5891372383587713, - 0.3264238070222187 - ], - [ - 0.9884030038742997, - 0.6035741267018994, - 0.3637840816310097 - ], - [ - 1.0322619459886482, - 0.6413013044542528, - 0.37096231887975123 - ], - [ - 1.1096893850505247, - 0.6958390615182914, - 0.34308517980832454 - ], - [ - 1.202215588988796, - 0.7568904492000438, - 0.2817735027633683 - ], - [ - 1.2840782689724393, - 0.8109092079606037, - 0.19620068299593066 - ], - [ - 1.3409404467719361, - 0.8523334925181535, - 0.09069227787291592 - ], - [ - 1.2502538664690575, - 1.0292521373915045, - -0.027426592570212075 - ], - [ - 1.256941095358689, - 1.052229590730932, - -0.12699365670345827 - ], - [ - 1.2446279580842534, - 1.0632951843849379, - -0.20809838917967785 - ], - [ - 1.2146225729651223, - 1.04961346893345, - -0.25136689819756436 - ], - [ - 1.1735031793764026, - 1.005543982961032, - -0.25480786139485395 - ], - [ - 1.1356590371522042, - 0.9450001733029407, - -0.22988406555090737 - ], - [ - 1.1061879124536702, - 0.8818951153276099, - -0.17359600563416452 - ], - [ - 1.0758410568850862, - 0.820923005849376, - -0.08534430411690223 - ], - [ - 1.0350138022481514, - 0.7692629544813058, - 0.017401850617693983 - ], - [ - 0.9798507919612658, - 0.7322324093172012, - 0.12116090418432483 - ], - [ - 0.9209149041900989, - 0.7101145757129373, - 0.21466226502849456 - ], - [ - 0.8853211985256927, - 0.7077132652623788, - 0.28157757475460077 - ], - [ - 0.8914292083068057, - 0.7290388251204014, - 0.3176863999834083 - ], - [ - 0.9372024508963027, - 0.7714676545557816, - 0.3245104825844057 - ], - [ - 1.0128045306767095, - 0.8307688330784709, - 0.29858297114931937 - ], - [ - 1.0994960047446458, - 0.8967100648346599, - 0.24436833114403392 - ], - [ - 1.173083068525992, - 0.9543440150367465, - 0.1691693890539075 - ], - [ - 1.2228842218421325, - 0.9976259907082258, - 0.07554565895538257 - ], - [ - 1.1160721466297001, - 1.1642692035837445, - -0.02512721406814269 - ], - [ - 1.1187826695059224, - 1.1839965128922867, - -0.10782874302834074 - ], - [ - 1.1035917458414257, - 1.1848081907687937, - -0.17273751778101537 - ], - [ - 1.0717675882630793, - 1.1531746735709283, - -0.20806712977603087 - ], - [ - 1.0310662558452146, - 1.0900675158418494, - -0.21480863498130903 - ], - [ - 0.9942894248877221, - 1.016349081961585, - -0.1983864109643031 - ], - [ - 0.9631243156206923, - 0.9474115818784362, - -0.15348389702925708 - ], - [ - 0.9299886236306047, - 0.8882618935270896, - -0.08352860947752197 - ], - [ - 0.891341386402659, - 0.8466103888480658, - -0.0020869773980715617 - ], - [ - 0.845988295155644, - 0.8240320761086896, - 0.08612594453816622 - ], - [ - 0.8009135479675108, - 0.8153023156841509, - 0.17114439569961204 - ], - [ - 0.7771260902898445, - 0.823202537272848, - 0.23438372067921795 - ], - [ - 0.7895303641786381, - 0.8519004424534806, - 0.27031067788381624 - ], - [ - 0.8365903963318256, - 0.8994511099875337, - 0.2790290010096959 - ], - [ - 0.9092902505904025, - 0.9628631999173825, - 0.2580389861972914 - ], - [ - 0.9889604459032256, - 1.0318698538509965, - 0.21254216504650802 - ], - [ - 1.053363306683564, - 1.0905460906651514, - 0.14726613686132548 - ], - [ - 1.0947997857919431, - 1.1334411904691026, - 0.06424601735685824 - ], - [ - 0.969069291645036, - 1.2883099019968638, - -0.015897707201191248 - ], - [ - 0.9635974802732213, - 1.298131013363764, - -0.08641688385891148 - ], - [ - 0.9439004472794146, - 1.2823400125074071, - -0.14488587568104352 - ], - [ - 0.9122846717628605, - 1.2317699267530093, - -0.18241626798149946 - ], - [ - 0.8750794542821766, - 1.1531463250137057, - -0.19766700605182588 - ], - [ - 0.8414811191884496, - 1.0701160832754817, - -0.19117628234262732 - ], - [ - 0.811327489649873, - 0.9990996367815337, - -0.158098020908346 - ], - [ - 0.7795965104164222, - 0.9462491111207345, - -0.10361813816781541 - ], - [ - 0.7462326668013561, - 0.9181683752340059, - -0.035877500064915434 - ], - [ - 0.7107906732322347, - 0.911414736312963, - 0.04450828418002611 - ], - [ - 0.6781578922646787, - 0.9163064609223585, - 0.12474054465430301 - ], - [ - 0.6653031454498792, - 0.935042192032603, - 0.18570632175167526 - ], - [ - 0.6837352599493333, - 0.9720251606545622, - 0.22367672892582316 - ], - [ - 0.731349955033474, - 1.0250589590674866, - 0.23757299748098523 - ], - [ - 0.7998355770437744, - 1.0920459871344435, - 0.22431065605496744 - ], - [ - 0.8715260272296552, - 1.1630545233596028, - 0.18872583618416677 - ], - [ - 0.9261623640939791, - 1.221354424099197, - 0.13332703552087935 - ], - [ - 0.957570860423425, - 1.2619597390584323, - 0.060742988002651585 - ], - [ - 0.8064582886961086, - 1.3968267302067092, - -6.347491830740043e-18 - ], - [ - 0.7927706352632612, - 1.3901406076212797, - -0.06854591368434065 - ], - [ - 0.7714532715053678, - 1.3565763834625832, - -0.13135252311966725 - ], - [ - 0.7434590189105229, - 1.2909258942340487, - -0.17700631818295226 - ], - [ - 0.7118576885393798, - 1.2011640618789248, - -0.20229892591273496 - ], - [ - 0.6828587030071869, - 1.1119740038373975, - -0.20600708353194308 - ], - [ - 0.6561253980040709, - 1.0417796673764446, - -0.18372234044595792 - ], - [ - 0.6285190078958866, - 0.9977878131555104, - -0.139906278642292 - ], - [ - 0.6009547946673108, - 0.9845353340578062, - -0.07829336456386192 - ], - [ - 0.5737796224875098, - 0.9938154584960567, - -1.3256724137797602e-17 - ], - [ - 0.5521552128838036, - 1.0127097857368552, - 0.0782933645638619 - ], - [ - 0.5498500898312496, - 1.0432073341769845, - 0.1399062786422919 - ], - [ - 0.5741449580920682, - 1.089111096427923, - 0.18372234044595787 - ], - [ - 0.6215683841674879, - 1.1473599859182158, - 0.20600708353194308 - ], - [ - 0.6843097474303625, - 1.2170688730938357, - 0.20229892591273496 - ], - [ - 0.7462451093545682, - 1.2893173441661923, - 0.1770063181829524 - ], - [ - 0.7891029744999337, - 1.3463863226875539, - 0.1313525231196673 - ], - [ - 0.8075117634007333, - 1.381629813322951, - 0.0685459136843408 - ], - [ - 0.6311744572538069, - 1.483393575590424, - 0.015897707201191203 - ], - [ - 0.6141037623660716, - 1.460260560579625, - -0.06074298800265144 - ], - [ - 0.5946427762474283, - 1.412757347384037, - -0.13332703552087927 - ], - [ - 0.5714717496009905, - 1.336290941320011, - -0.18872583618416655 - ], - [ - 0.5458217784373954, - 1.238700922137716, - -0.22431065605496728 - ], - [ - 0.5220521214125398, - 1.1458971196493388, - -0.2375729974809851 - ], - [ - 0.4999308522698348, - 1.0781446849065606, - -0.22367672892582305 - ], - [ - 0.47711871918558246, - 1.0436905211935905, - -0.18570632175167523 - ], - [ - 0.4544657266782363, - 1.0454551929393012, - -0.12474054465430297 - ], - [ - 0.43391297841440446, - 1.0712701479486404, - -0.044508284180026 - ], - [ - 0.422040804503454, - 1.1053406342007857, - 0.03587750006491553 - ], - [ - 0.42967751333078924, - 1.148274938282688, - 0.1036181381678154 - ], - [ - 0.4595819215396772, - 1.2021800352162126, - 0.15809802090834593 - ], - [ - 0.5060071535206463, - 1.2638020676598989, - 0.1911762823426273 - ], - [ - 0.5611142846014479, - 1.3344142002450405, - 0.19766700605182583 - ], - [ - 0.6106017123043732, - 1.40594666460629, - 0.1824162679814995 - ], - [ - 0.6385888034809621, - 1.4586117722411704, - 0.14488587568104355 - ], - [ - 0.6424156948768459, - 1.4835654036211658, - 0.0864168838589116 - ], - [ - 0.4502506338325494, - 1.5486814332294234, - 0.025127214068142688 - ], - [ - 0.43418897174594806, - 1.5148450217881357, - -0.06424601735685803 - ], - [ - 0.41775896517204697, - 1.4575124283349208, - -0.1472661368613254 - ], - [ - 0.3991452838826863, - 1.3723997964156778, - -0.21254216504650786 - ], - [ - 0.3792188662024269, - 1.2689000563834985, - -0.2580389861972913 - ], - [ - 0.3606523125454029, - 1.17423409077922, - -0.27902900100969585 - ], - [ - 0.34300224257059864, - 1.1097035736646204, - -0.2703106778838163 - ], - [ - 0.32435126459317054, - 1.0846122047711089, - -0.23438372067921803 - ], - [ - 0.30561574316299944, - 1.1012626366170664, - -0.17114439569961207 - ], - [ - 0.2906385638655353, - 1.1446633929634202, - -0.08612594453816623 - ], - [ - 0.28751541064891745, - 1.1952294784931772, - 0.002086977398071511 - ], - [ - 0.3042630531928256, - 1.2495247200581734, - 0.08352860947752183 - ], - [ - 0.3389203399359804, - 1.3077959152692393, - 0.1534838970292569 - ], - [ - 0.3830394116478643, - 1.3692544416477792, - 0.19838641096430307 - ], - [ - 0.42849303263663036, - 1.4379633284677857, - 0.21480863498130903 - ], - [ - 0.4627947681817119, - 1.5047652951740715, - 0.20806712977603092 - ], - [ - 0.47427811889694227, - 1.5481425826898911, - 0.17273751778101543 - ], - [ - 0.46597972340394866, - 1.5608924695520416, - 0.10782874302834086 - ], - [ - 0.26623156464594555, - 1.5973776782376736, - 0.027426592570212086 - ], - [ - 0.2525273405078759, - 1.5578617973565652, - -0.0755456589553823 - ], - [ - 0.23994462670846486, - 1.493091745611284, - -0.16916938905390727 - ], - [ - 0.2268256936036837, - 1.4005465038856892, - -0.24436833114403372 - ], - [ - 0.21306464877995507, - 1.2924988691732417, - -0.2985829711493192 - ], - [ - 0.19950936159515342, - 1.197374958243127, - -0.3245104825844055 - ], - [ - 0.1856515387460257, - 1.1365197526293447, - -0.31768639998340825 - ], - [ - 0.17023706704960895, - 1.1205672810633258, - -0.2815775747546008 - ], - [ - 0.15451981006996263, - 1.1525929896088065, - -0.2146622650284945 - ], - [ - 0.1442064719623487, - 1.2146918824153576, - -0.12116090418432485 - ], - [ - 0.1486943596470074, - 1.2809797232550753, - -0.017401850617694038 - ], - [ - 0.17301964917409793, - 1.3421671886214719, - 0.08534430411690201 - ], - [ - 0.2106496171202824, - 1.3989343912079597, - 0.1735960056341643 - ], - [ - 0.25056463808494184, - 1.4560096628626547, - 0.22988406555090726 - ], - [ - 0.2840750441786392, - 1.5190555562422876, - 0.2548078613948539 - ], - [ - 0.3016806417681154, - 1.5767007386645389, - 0.2513668981975644 - ], - [ - 0.29852666235688846, - 1.6095270221537858, - 0.20809838917967785 - ], - [ - 0.2827870085073456, - 1.6146577150067292, - 0.12699365670345847 - ], - [ - 0.07907978906424543, - 1.6300702873547164, - 0.026387630744717717 - ], - [ - 0.06767223363106677, - 1.5874552381256284, - -0.09069227787291562 - ], - [ - 0.060228839770381716, - 1.517499005357982, - -0.1962006829959305 - ], - [ - 0.054378562394655314, - 1.4195944654899904, - -0.2817735027633681 - ], - [ - 0.047769611695101064, - 1.3089387285228316, - -0.3430851798083244 - ], - [ - 0.0392522481431576, - 1.2146157208132555, - -0.3709623188797512 - ], - [ - 0.028509024853702623, - 1.1577691738829419, - -0.3637840816310097 - ], - [ - 0.01535519417176863, - 1.1516785002519538, - -0.3264238070222188 - ], - [ - 0.001535001538528688, - 1.2005281427274415, - -0.25356905443616035 - ], - [ - -0.005536563739160019, - 1.2809067438062554, - -0.14525134885241517 - ], - [ - 0.004945336269905037, - 1.357808296253775, - -0.01728174348417257 - ], - [ - 0.035229916982467226, - 1.4175033889873456, - 0.11146908601899079 - ], - [ - 0.07391724260166962, - 1.465704944599581, - 0.21713038520368624 - ], - [ - 0.1070429938268796, - 1.5137772092515378, - 0.28224996276748 - ], - [ - 0.12651585231249446, - 1.5672924062495237, - 0.31100226892371197 - ], - [ - 0.12848505075432048, - 1.615144288725623, - 0.30194795950093384 - ], - [ - 0.11508656701327388, - 1.6428327158212368, - 0.2425116294476679 - ], - [ - 0.09570762895414685, - 1.6477681453184383, - 0.1425474190674504 - ], - [ - -0.10968428207856765, - 1.644975414278412, - 0.024153647921828485 - ], - [ - -0.1187428702317248, - 1.6011346826283765, - -0.10723325371267727 - ], - [ - -0.12051358022698579, - 1.528362008044946, - -0.22568607237733856 - ], - [ - -0.11847608391238704, - 1.4278855195823064, - -0.32199013011237987 - ], - [ - -0.1173952551644532, - 1.3171302103104772, - -0.3887264716237438 - ], - [ - -0.12077203295187375, - 1.2251713226789986, - -0.4165553904093903 - ], - [ - -0.1288594950794247, - 1.1737610451236213, - -0.40788994698457326 - ], - [ - -0.1402370368811816, - 1.1790967643284773, - -0.36738245415242804 - ], - [ - -0.15298670351981986, - 1.2448905862372996, - -0.28420429135611314 - ], - [ - -0.1584282061241691, - 1.33958983454767, - -0.1536804210171244 - ], - [ - -0.1432208348131711, - 1.4177885298301067, - 0.004984187713952829 - ], - [ - -0.10766876370376978, - 1.4651723102270757, - 0.15942874397423845 - ], - [ - -0.06960257556156053, - 1.4975837120836268, - 0.27708417207637004 - ], - [ - -0.045448535489328035, - 1.5328464543373375, - 0.3449870140816723 - ], - [ - -0.0400521466716222, - 1.5762319121802544, - 0.36982094146283345 - ], - [ - -0.05104084267269405, - 1.619577026755249, - 0.34769821045564725 - ], - [ - -0.07154272034383691, - 1.6506278982643618, - 0.27082274356984937 - ], - [ - -0.09304322149231362, - 1.660877401267612, - 0.155086591295508 - ], - [ - -0.2991912665668548, - 1.6401005884590016, - 0.020618195772928002 - ], - [ - -0.30517484236413855, - 1.5972482244827588, - -0.12405579224915245 - ], - [ - -0.3013511046685857, - 1.5237394829347621, - -0.25494687318093223 - ], - [ - -0.29202513777448075, - 1.423285783664898, - -0.3609679400411549 - ], - [ - -0.28367905107138736, - 1.315045820494117, - -0.4313718214953073 - ], - [ - -0.2820599597171182, - 1.2281913734192667, - -0.45811607371369506 - ], - [ - -0.28744171027112114, - 1.1849440816599435, - -0.44649541943840404 - ], - [ - -0.2970019474157096, - 1.2021256378582017, - -0.39919166305904286 - ], - [ - -0.30912264803103273, - 1.2813290312161014, - -0.30035501759371114 - ], - [ - -0.3134360165629157, - 1.3822544532132675, - -0.14220479050770632 - ], - [ - -0.2932851616910564, - 1.4500845327510345, - 0.04814964988006416 - ], - [ - -0.25245447233027246, - 1.4751644657864038, - 0.2218329775095426 - ], - [ - -0.2158856349118351, - 1.487507926245661, - 0.34223971460292557 - ], - [ - -0.20065666244945252, - 1.5102316897611128, - 0.4052912689425985 - ], - [ - -0.20761832818459214, - 1.5476077280590304, - 0.42026719793965733 - ], - [ - -0.23047566011783183, - 1.5935036147442576, - 0.3833427864981318 - ], - [ - -0.25874901728160354, - 1.6335780097784152, - 0.2923930340328605 - ], - [ - -0.2830392239461499, - 1.6519319586679024, - 0.16456788714055937 - ], - [ - -0.4885536090018366, - 1.6115981375141735, - 0.015204138966055252 - ], - [ - -0.49122469615687303, - 1.5725403136956537, - -0.14007464690003377 - ], - [ - -0.4822701077153274, - 1.5007331115042382, - -0.28096023640178647 - ], - [ - -0.46675578277265456, - 1.40303951163799, - -0.39409351747290594 - ], - [ - -0.4522753792686361, - 1.3002528103251827, - -0.4661988556625707 - ], - [ - -0.44593557376160353, - 1.2218329797255438, - -0.4907306397754312 - ], - [ - -0.448191211580398, - 1.188808842073344, - -0.47387548565056 - ], - [ - -0.4560341663313562, - 1.2161363147767326, - -0.4156629340605353 - ], - [ - -0.46762032373671114, - 1.3023222705149293, - -0.2966303539283299 - ], - [ - -0.4693031872616102, - 1.398341670407877, - -0.10953452054650593 - ], - [ - -0.44194240448021854, - 1.4442877484526102, - 0.10618203212219947 - ], - [ - -0.3945955234256253, - 1.4421993077315292, - 0.287489354500908 - ], - [ - -0.3588103725362344, - 1.4365428139396097, - 0.401318640719705 - ], - [ - -0.35117410215179395, - 1.4512428216388897, - 0.4548578000784213 - ], - [ - -0.3694570678902022, - 1.487539483488743, - 0.45870893137710267 - ], - [ - -0.4051400217565432, - 1.539236603549691, - 0.4090439665994183 - ], - [ - -0.4437529282823074, - 1.5888287489678738, - 0.30734137040969195 - ], - [ - -0.4727103508738113, - 1.6163444436167955, - 0.16979531952817234 - ], - [ - -0.6739545385313982, - 1.5557279848350325, - 0.008055394996668238 - ], - [ - -0.6747956911755091, - 1.522873652060666, - -0.15362341656536058 - ], - [ - -0.6619898621807113, - 1.4558271436177146, - -0.30049632367449663 - ], - [ - -0.6419726920595458, - 1.364103900318963, - -0.4170359355005624 - ], - [ - -0.6228641787322718, - 1.2698633626539875, - -0.4884010643346401 - ], - [ - -0.6122563347160386, - 1.2022599737428727, - -0.5090193438473741 - ], - [ - -0.6110089285443768, - 1.1796937334251338, - -0.48470135297904077 - ], - [ - -0.6168009463273025, - 1.2145557903307105, - -0.41257824179247377 - ], - [ - -0.6266697495780335, - 1.3003226622482607, - -0.27128996335677 - ], - [ - -0.6221515505712095, - 1.3796348591528258, - -0.05948757176482997 - ], - [ - -0.5833033772450396, - 1.3962485384115626, - 0.16912615555426716 - ], - [ - -0.5272873702147435, - 1.3697220167687656, - 0.3454838741444812 - ], - [ - -0.49194214281668025, - 1.3528011631007426, - 0.4470902059091022 - ], - [ - -0.4918513580597592, - 1.36426636438387, - 0.49028096131961485 - ], - [ - -0.5215271525114118, - 1.4020754278371672, - 0.48414562579857334 - ], - [ - -0.5703670672506057, - 1.4590589205674618, - 0.42423366393749534 - ], - [ - -0.62034585223823, - 1.5156755028236684, - 0.3141384303565412 - ], - [ - -0.6561227720034385, - 1.551760041627131, - 0.1694131183392142 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.4396784976662238, - 0.07232256637643669, - -0.0017168784604873716, - -0.00017591785195430736, - -1.4713432097432976e-05, - -6.318454351696858e-05, - 3.9299166971699546e-05, - 0.17655866899125044, - -0.0656036574895566, - 0.0007959457181250228, - 0.0005379381755404229, - -1.984374673756674e-05, - -0.00014203386343491044, - -3.073880724298774e-05, - 0.04439060025501837, - 0.04146943438862737, - 0.010751294094100984, - -0.0014194507660624516, - -0.0001946438745373209, - -3.9321575804151604e-05, - 3.0582923587384204e-05, - -0.013580129107756545, - -0.0061469441447517155, - -0.0023387484100976996, - -0.0005012637408009066, - 0.00033236306330178223, - -2.2780849338490352e-05, - -2.8429337897055636e-06, - 0.0012985766038578564, - 0.004341999021161757, - 0.0011473640768298434, - -0.00011364509312266224, - 0.0003193475479129732, - -4.786873624144241e-06, - -8.446523592593317e-06, - -0.0015720127137336347, - -0.0012881646177589452, - -0.0007869914216321488, - -1.6361133818130227e-05, - 5.55417368277998e-05, - -5.8830169072226763e-05, - 2.535600709221514e-05, - 0.0007135287891833859, - 6.188316596345133e-06, - 0.0002479502659434782, - 0.0001702275636113531, - 3.483517136079659e-05, - -1.0184276958365754e-05, - 4.641598732067948e-06, - 0.14921824094299405, - -0.00043448018286282964, - -0.00044777968407376913, - -0.00016863171812403466, - -4.955111890369024e-06, - -1.982466743665499e-05, - -0.03641559887142441, - -0.009560213725251095, - 0.0018000090155919418, - 7.375262912627103e-06, - 2.221419667767416e-05, - -4.281306228397052e-05, - 0.007045624332852643, - 0.003291725820297764, - 0.0010589601698750434, - -0.000307494722222267, - -1.4825821763999563e-05, - -8.783572537259268e-06, - -0.002246967504088654, - -0.0012551705019901867, - 0.0001851457881549044, - -0.00040514699197309503, - 4.2493466956557895e-05, - 1.3748920703286263e-05, - 0.0006632293691167362, - 0.0008489334566164892, - 0.00014768029719319477, - -1.1851386432420375e-05, - 6.184094152166256e-05, - -2.574660175175791e-05, - 5.212056630362284e-05, - -0.000173023558144979, - -0.0001925083797543852, - -4.1735327622644494e-05, - 1.5088284178548434e-05, - -4.809284814326903e-06, - -0.02235093143565873, - 0.0030434994371424284, - 0.00040606751536435674, - 0.00010550024750185843, - -0.00010660165001437607, - -3.198837110832411e-05, - 0.0303518880046735, - -0.0002009142276002284, - -0.000741235763578501, - 0.00012736212766935548, - -0.00012484420802568642, - 5.670271682412382e-05, - -0.024008822127762747, - -0.0012400158372468768, - 0.000765092358010478, - 7.833148937094587e-05, - -0.00012921782486968535, - -1.78650775845365e-05, - 0.0017345249869115662, - 0.0015692037522975664, - -0.0002900814692255432, - -0.00012945785489652153, - -1.002576783342721e-05, - 4.14555519743603e-05, - -0.0007515407932780015, - 0.00020826078113116375, - -3.513831270613622e-05, - 0.00013764185309997776, - 3.841852596417541e-05, - 1.636904486771199e-05, - 0.0002494907915368058, - 0.00013481094843538125, - -4.038908945904893e-06, - 3.748940901436102e-05, - -1.1361730720758814e-05, - -1.688223957884492e-05, - -1.2171105952534395e-05, - -3.6391622781640864e-05, - -2.2576699946186432e-05, - 3.3100727940570355e-05, - 1.3045548943149944e-05, - 1.236298201798866e-05, - 0.031735068346156525, - 0.05509793324984616, - -0.00348614822378161, - -2.2519602656728635e-05, - 0.00019991951421581347, - 5.553007609817959e-06, - 8.119966536863101e-05, - 0.004507776681422563, - -0.02575250912508862, - -0.0016382048105159314, - 0.0003882011075955719, - 6.966652104884665e-05, - -1.2137417557027789e-06, - 4.525825964309204e-06, - -0.002151242544861001, - 0.0007792694641628402, - 0.0014381981246847078, - -0.0008792840026122963, - -9.755073305400306e-05, - 2.0324023592375216e-06, - 1.934537631903572e-05, - 0.0006273042732522928, - 0.0006327831238223836, - -0.0003218202374152053, - -0.00037923191175175634, - 3.8914781173360224e-05, - 5.5466893929468935e-05, - 1.8395147475562628e-05, - -0.000406465891166161, - -5.288122438744325e-05, - 0.00010848790133383144, - -4.147743366814909e-05, - 5.5381854095208204e-05, - -1.8991926315466896e-05, - -2.356531215480636e-05, - 0.00014990819894626173, - 0.0001586373701189229, - 5.065758976004906e-05, - -5.289712137411078e-05, - 6.851972536623415e-06, - 6.801298353256237e-06, - 1.228674057278291e-05, - 0.04247239411121721, - -0.0027910199321829502, - 0.0010019722065819437, - 3.624429390114166e-05, - -6.39104844849195e-05, - 2.2718420425829372e-05, - -0.08677434343513618, - 0.0005225853305023255, - -0.0002304466580093873, - 0.00010408259469834521, - -1.0234804232440391e-05, - -1.3060654074118569e-05, - 0.017201333270546026, - 0.009273392139903094, - -0.0020198979332276277, - -0.00010695148956120309, - 1.9181308238144256e-05, - -1.0397565889116764e-06, - -0.0031963456552044603, - -0.00336246353538785, - -0.0010864667553729611, - 0.0003608586931257558, - 4.5569477299700553e-05, - 7.1631684158345195e-06, - 0.0031296425527932515, - 0.0016539870377959452, - -0.0004072256120136085, - 0.0003614783204108866, - -5.607672926381748e-05, - -1.6056555976507773e-05, - 4.770079512505175e-05, - -0.0007507135840394342, - -7.524433609752762e-05, - 5.3898778220150815e-05, - -6.185986386908952e-05, - 2.0661889362180527e-05, - -0.0007689122530416373, - 0.00022613790371628083, - 0.0001724335249330347, - 3.1464445850586494e-05, - -2.2528034317789985e-05, - 9.10067681285232e-06, - -0.36446617409781856, - -0.15752133149232983, - -0.0014484688876732568, - 0.00035952931084106733, - -3.3060831216160415e-05, - -6.351752668209927e-05, - 3.640772373529825e-05, - 0.011876472797505084, - 0.016734337277909125, - 0.008892127331055674, - -0.0010795301309463664, - -0.0002388227145048703, - 6.75607551165389e-05, - 3.1225132462668316e-05, - -0.007191917582474914, - -0.006750026752440994, - -0.002551654280575772, - -0.000741805584365676, - 0.0003943781375121578, - 4.6926080059704625e-05, - 1.9802609822934572e-05, - 0.002764559319924977, - 0.004083135092309606, - 0.0015740852024771683, - -0.0003987550330652069, - 0.0002956113427070349, - -2.932816632883742e-05, - -1.8066589184135155e-05, - -0.00035859252346187885, - -0.0006310198447643578, - -0.0008481810436568666, - -7.084926063796922e-06, - 6.790638858448879e-05, - -6.228612421967779e-05, - 1.92880624985156e-05, - 0.0003074895340054883, - -0.0005030654407130155, - 0.00021409083830304754, - 0.00013027445746624053, - 2.5925215374653425e-05, - -1.6398921020322178e-05, - 6.666553143728353e-06 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface4": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -1.5036269634831068, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_3.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_3.vts deleted file mode 100644 index 2f016463f..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_3.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_4.json b/examples/2_Intermediate/inputs/input_ncsx/surface_4.json deleted file mode 100644 index 8dfa52f87..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_4.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface5" - }, - { - "iota": -0.43321785577303545, - "G": 13.887479145271556 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.7148017576411465, - 0.0, - 0.0 - ], - [ - 1.6893371389219671, - 0.014405409877117682, - -0.18174471814505588 - ], - [ - 1.6185722718851223, - 0.033297460040003266, - -0.34583710968684167 - ], - [ - 1.5171611685451056, - 0.059178825107246806, - -0.47164543955304256 - ], - [ - 1.4165313199002365, - 0.08656185996101444, - -0.5422756759317021 - ], - [ - 1.3531855838893394, - 0.1058594197509796, - -0.5540386133525302 - ], - [ - 1.3401077660165892, - 0.10837640672328284, - -0.5156869953026777 - ], - [ - 1.3838417331647905, - 0.08761628291486845, - -0.42349790659009473 - ], - [ - 1.470230732483197, - 0.047483863145518584, - -0.25005216825452087 - ], - [ - 1.5186346891690274, - 1.6921195380258708e-17, - -9.356675841712921e-17 - ], - [ - 1.470230732483197, - -0.04748386314551856, - 0.2500521682545207 - ], - [ - 1.3838417331647908, - -0.08761628291486838, - 0.4234979065900944 - ], - [ - 1.3401077660165892, - -0.10837640672328282, - 0.5156869953026775 - ], - [ - 1.3531855838893394, - -0.1058594197509796, - 0.5540386133525304 - ], - [ - 1.4165313199002363, - -0.08656185996101447, - 0.5422756759317023 - ], - [ - 1.5171611685451056, - -0.05917882510724686, - 0.4716454395530429 - ], - [ - 1.6185722718851219, - -0.033297460040003286, - 0.3458371096868418 - ], - [ - 1.6893371389219674, - -0.01440540987711771, - 0.1817447181450562 - ], - [ - 1.6998197175932614, - 0.19697799580259026, - -0.012071085041897921 - ], - [ - 1.683445738798562, - 0.21066443831069714, - -0.19161851725439494 - ], - [ - 1.6221988912248553, - 0.22467580154421415, - -0.3518677159814101 - ], - [ - 1.5302239168809049, - 0.24251326995660005, - -0.4715298583124625 - ], - [ - 1.4409882418934774, - 0.26008588205902994, - -0.5340332134860634 - ], - [ - 1.3876110152937393, - 0.2692783049549639, - -0.5368099565069716 - ], - [ - 1.3795171500890875, - 0.262719217067761, - -0.48802101223247984 - ], - [ - 1.4210872830417567, - 0.2368372076530192, - -0.37978810950023345 - ], - [ - 1.4872861846408505, - 0.19628108230696337, - -0.18874034231471545 - ], - [ - 1.4968407141547067, - 0.1480177912087433, - 0.06408925135334903 - ], - [ - 1.4159950214302073, - 0.09727238568191596, - 0.2963356044249911 - ], - [ - 1.319993350837632, - 0.056739389374177926, - 0.4461422002804904 - ], - [ - 1.2796735059449418, - 0.04167313197503191, - 0.5219778754195742 - ], - [ - 1.3000896515380995, - 0.05364419585315769, - 0.5508364601568314 - ], - [ - 1.3734977668352397, - 0.08346612426374829, - 0.5326085428424946 - ], - [ - 1.4832261346186324, - 0.12042350483248497, - 0.4576429272150495 - ], - [ - 1.5910888856040197, - 0.15395508700120872, - 0.330383874339251 - ], - [ - 1.6675475600919072, - 0.1789886055586195, - 0.16760813053808638 - ], - [ - 1.6558504015286337, - 0.3884918598090443, - -0.022953640307863548 - ], - [ - 1.6486767654877106, - 0.40515247987242997, - -0.19556347761486267 - ], - [ - 1.5990023409877945, - 0.41654496371629446, - -0.34801424444292806 - ], - [ - 1.5201075669481459, - 0.4261960626012216, - -0.4584656879066645 - ], - [ - 1.4444852427038712, - 0.43358182394513134, - -0.5096210749179503 - ], - [ - 1.3997179450797248, - 0.43248083206773774, - -0.5013434980568076 - ], - [ - 1.3929240493382031, - 0.4167707231542857, - -0.4413971527238261 - ], - [ - 1.4246393870225633, - 0.38475003610998415, - -0.3190826850113037 - ], - [ - 1.462055773737041, - 0.3397670288426954, - -0.12102238642033329 - ], - [ - 1.4348938365654385, - 0.286579865949061, - 0.11779780327548729 - ], - [ - 1.3338071044556559, - 0.2323323675163715, - 0.32159839232490767 - ], - [ - 1.2374378064214404, - 0.19282388608243395, - 0.446469420026217 - ], - [ - 1.2039071750202102, - 0.18379438000878284, - 0.5075305395003883 - ], - [ - 1.233062573095451, - 0.2053810355030261, - 0.5286239048609469 - ], - [ - 1.315419557034238, - 0.24595632411565096, - 0.5061962295716291 - ], - [ - 1.4310798887825797, - 0.2926204639072107, - 0.430138284190814 - ], - [ - 1.54161290470994, - 0.33399706167300225, - 0.3063485048699233 - ], - [ - 1.6194487801125284, - 0.3652518706881523, - 0.1500911036901203 - ], - [ - 1.5864015656640158, - 0.5699410837312531, - -0.03137167600564611 - ], - [ - 1.5856218517504053, - 0.5910490474048744, - -0.19300730410516517 - ], - [ - 1.5477578623943136, - 0.6023472305373898, - -0.3355333455979296 - ], - [ - 1.4852995260951807, - 0.6063477439533513, - -0.4343719803127519 - ], - [ - 1.4238509028995474, - 0.6041337407158122, - -0.4707662567394468 - ], - [ - 1.384371827873494, - 0.5911624131221191, - -0.44979443782728684 - ], - [ - 1.373966747246669, - 0.5635904743368646, - -0.37938686660406545 - ], - [ - 1.388817863776166, - 0.5214156830280835, - -0.248790919112712 - ], - [ - 1.3949252486976784, - 0.4682435310116745, - -0.0579747696384829 - ], - [ - 1.3408327014863, - 0.41010115214190296, - 0.1524512423079327 - ], - [ - 1.2335034751693217, - 0.3558270929486938, - 0.32369153702421666 - ], - [ - 1.1441328936026745, - 0.3207772698121725, - 0.4268695581672609 - ], - [ - 1.119716163251638, - 0.31900527335930984, - 0.4768545614774736 - ], - [ - 1.1578390967083003, - 0.34928143814502527, - 0.49260405733647256 - ], - [ - 1.2466547324061068, - 0.39922816504641345, - 0.46736317294967583 - ], - [ - 1.3642461319057038, - 0.45521766944213216, - 0.3923553635034455 - ], - [ - 1.4733006499426642, - 0.5042925842217066, - 0.2759788017659639 - ], - [ - 1.5489154544737307, - 0.5412567588594569, - 0.13053957867456398 - ], - [ - 1.496724035954601, - 0.7397875969431369, - -0.036955319537355376 - ], - [ - 1.4994298472878285, - 0.7639913440674261, - -0.18525775039059694 - ], - [ - 1.4723572474584345, - 0.7777429956332498, - -0.3155641989520872 - ], - [ - 1.4255007083078777, - 0.7795075685816807, - -0.3984350026775887 - ], - [ - 1.3739917016752614, - 0.7662639762183083, - -0.4168218970003704 - ], - [ - 1.3346912259520283, - 0.736473820385731, - -0.3846470224377511 - ], - [ - 1.3168275915672119, - 0.6927121421213083, - -0.30923963418730377 - ], - [ - 1.3125892519657865, - 0.6383369517979727, - -0.18080670878177113 - ], - [ - 1.2923018612360855, - 0.5783377529140005, - -0.010768644385223526 - ], - [ - 1.2243805101661955, - 0.5196299196381602, - 0.16394434216261733 - ], - [ - 1.1230702952356826, - 0.47069634386063597, - 0.30497566823361744 - ], - [ - 1.0467987740275015, - 0.4445180089503004, - 0.39253034567231093 - ], - [ - 1.032931716260483, - 0.4510322708361304, - 0.43639460582151407 - ], - [ - 1.0779860268625592, - 0.487636841850235, - 0.44900766310987045 - ], - [ - 1.1695012380681395, - 0.5447612478989327, - 0.4214227419174349 - ], - [ - 1.2853369016825578, - 0.6093373456682444, - 0.3491868626914112 - ], - [ - 1.389600276100641, - 0.6656170231704361, - 0.24301650815823025 - ], - [ - 1.4605927173042033, - 0.7075195486563874, - 0.11093710071995454 - ], - [ - 1.3905060894461412, - 0.8992959375264421, - -0.04026356463703809 - ], - [ - 1.395274546293489, - 0.9252802438037098, - -0.17301887187024514 - ], - [ - 1.3763648943021491, - 0.9419861376663018, - -0.2859066233245807 - ], - [ - 1.3385992686299897, - 0.9393612378426499, - -0.3478458539167908 - ], - [ - 1.289739952429321, - 0.908605263180637, - -0.35061076001231556 - ], - [ - 1.2476119804476733, - 0.8569427568224133, - -0.31509269802002715 - ], - [ - 1.2223153295907907, - 0.7969562777464713, - -0.2435236340601566 - ], - [ - 1.2023834272369598, - 0.7337814790509094, - -0.12775285844492731 - ], - [ - 1.1655945089674176, - 0.6725603604560196, - 0.01375714675564051 - ], - [ - 1.095931772118045, - 0.6199687279422068, - 0.15395257986748903 - ], - [ - 1.0086266651209275, - 0.5817279133029738, - 0.27160662266223945 - ], - [ - 0.9488107564097968, - 0.5667580523033237, - 0.3502306293009379 - ], - [ - 0.944804605127463, - 0.5809358834013884, - 0.39207672028767465 - ], - [ - 0.9935472843872164, - 0.6220372126655997, - 0.4023488427701436 - ], - [ - 1.0847680193999587, - 0.6848680413991216, - 0.3728900322063846 - ], - [ - 1.1960051680204293, - 0.7568479594885265, - 0.30543237251089606 - ], - [ - 1.2925759329341562, - 0.8194917188744579, - 0.21065016037922787 - ], - [ - 1.357131793774725, - 0.8654498636344744, - 0.09242195805960032 - ], - [ - 1.269776946035242, - 1.0490065142663094, - -0.041398609882023964 - ], - [ - 1.2750861254324322, - 1.0760639763515383, - -0.15529623183677793 - ], - [ - 1.2592010909794868, - 1.0907340477178882, - -0.24549831995268354 - ], - [ - 1.2224206318411746, - 1.0743709907962835, - -0.28820441224864757 - ], - [ - 1.1723669060364246, - 1.0197795879860643, - -0.28598249127176434 - ], - [ - 1.1290411217496885, - 0.9474513911467587, - -0.2567604897618606 - ], - [ - 1.0990448903368308, - 0.8763652352576347, - -0.1952307642492227 - ], - [ - 1.0692671736065362, - 0.8101088854106135, - -0.09827398321614639 - ], - [ - 1.0264689674518317, - 0.7544939433693107, - 0.014065632273292808 - ], - [ - 0.9637472784249353, - 0.714777103139748, - 0.1275373581454164 - ], - [ - 0.8932000231638035, - 0.6906779543607358, - 0.23058926708782873 - ], - [ - 0.8488443933957246, - 0.6869020808166677, - 0.30490488676371474 - ], - [ - 0.8526336218624047, - 0.7081850263807147, - 0.345968229995663 - ], - [ - 0.9035636629363737, - 0.7538402740053344, - 0.35448745655818903 - ], - [ - 0.9932514087361296, - 0.821649727145621, - 0.3256256126543515 - ], - [ - 1.0976906026310314, - 0.899102902198041, - 0.2653634918326017 - ], - [ - 1.1841727909328352, - 0.9659554073842263, - 0.18169252237574476 - ], - [ - 1.2404556555170922, - 1.0142298400035197, - 0.07607300279469709 - ], - [ - 1.1366445589396217, - 1.1887221088048046, - -0.03763680385498749 - ], - [ - 1.1381275660795152, - 1.2135162688463033, - -0.130667173302071 - ], - [ - 1.1190676736051919, - 1.2162511057563123, - -0.2009735568951292 - ], - [ - 1.0800433073931637, - 1.1775366104185854, - -0.23586619627525196 - ], - [ - 1.0309927388519182, - 1.0996340857952454, - -0.2401263276339476 - ], - [ - 0.9897919806220684, - 1.0123258403601465, - -0.22170921514468234 - ], - [ - 0.9578626601107781, - 0.9353595870573335, - -0.1723952139214957 - ], - [ - 0.9238757114266697, - 0.871596114539019, - -0.09557048244810548 - ], - [ - 0.8826524043151226, - 0.8279862157437023, - -0.007042594851245445 - ], - [ - 0.8309643053827412, - 0.8054770532598351, - 0.09010580429206089 - ], - [ - 0.7762290315220867, - 0.7965044062195734, - 0.18545862308830502 - ], - [ - 0.7449141936020176, - 0.803781532569799, - 0.2565739716143911 - ], - [ - 0.7556121548972673, - 0.8329713188780904, - 0.29696973229158863 - ], - [ - 0.8084525334577157, - 0.884005079252962, - 0.30657390897978676 - ], - [ - 0.8952586971592326, - 0.9562328697104419, - 0.28255673583080776 - ], - [ - 0.991402021311683, - 1.0372566437175632, - 0.23189495813738026 - ], - [ - 1.0669031123769115, - 1.1052767253864637, - 0.1589896084976914 - ], - [ - 1.1136514125025534, - 1.1534432803877508, - 0.06446462669807895 - ], - [ - 0.9897288507923936, - 1.3175881536683958, - -0.02380303019605738 - ], - [ - 0.9814565953975646, - 1.3312795021287553, - -0.1010999357983156 - ], - [ - 0.9571787528230166, - 1.3136843760838903, - -0.16453133429405484 - ], - [ - 0.9192048736018438, - 1.2524261264829615, - -0.20443532487208715 - ], - [ - 0.87542761691771, - 1.1567830555938727, - -0.22017225950345243 - ], - [ - 0.8385975116843343, - 1.0591036962772296, - -0.2130951763730983 - ], - [ - 0.8075046443103796, - 0.9800982559349172, - -0.17661585003717017 - ], - [ - 0.7742031901379035, - 0.9238380994131705, - -0.11699107920988214 - ], - [ - 0.7381911395715667, - 0.896165953975269, - -0.04331296578117384 - ], - [ - 0.6973293896121424, - 0.8919297370840727, - 0.04635935346531709 - ], - [ - 0.6566007567844303, - 0.8978712896353938, - 0.13712847856340563 - ], - [ - 0.6378273587833553, - 0.9167833883051008, - 0.20519242463813844 - ], - [ - 0.6556798331863928, - 0.9551390210560056, - 0.24713573399928843 - ], - [ - 0.7094410701270288, - 1.0120734148057677, - 0.26221411102847647 - ], - [ - 0.7914008213772904, - 1.088262828937981, - 0.24683346050143343 - ], - [ - 0.8781129789244222, - 1.1718039752215417, - 0.20744805922720677 - ], - [ - 0.942383432119524, - 1.2394625170693214, - 0.14541440948794432 - ], - [ - 0.9779228796141081, - 1.2858175122364455, - 0.06248421063440795 - ], - [ - 0.8251994884874251, - 1.4292874404400686, - -9.596835853467427e-18 - ], - [ - 0.8068744923335605, - 1.4228397655142564, - -0.07520137112258288 - ], - [ - 0.7814035401280459, - 1.3843079164084577, - -0.14563346543925423 - ], - [ - 0.7488323657015366, - 1.3064474566726083, - -0.19638305501603562 - ], - [ - 0.7124989560970517, - 1.1984535757592736, - -0.22399640156895415 - ], - [ - 0.6813274172701419, - 1.0936776900439082, - -0.22844835879732905 - ], - [ - 0.6538754763373621, - 1.0158127142351907, - -0.20399388952254524 - ], - [ - 0.6246175131513028, - 0.9700038511970867, - -0.1560307110405205 - ], - [ - 0.5942469085117901, - 0.9595192613893544, - -0.08828939152916251 - ], - [ - 0.5619780620544832, - 0.97337455621746, - -1.653764142487148e-17 - ], - [ - 0.5338446015277671, - 0.9943925495862544, - 0.08828939152916249 - ], - [ - 0.5277392203297663, - 1.025936559636232, - 0.15603071104052044 - ], - [ - 0.5527818778462167, - 1.0741791305374013, - 0.20399388952254519 - ], - [ - 0.6064889544952371, - 1.1368856966727374, - 0.22844835879732905 - ], - [ - 0.6816417638153035, - 1.2162689840295768, - 0.22399640156895415 - ], - [ - 0.7570005033372803, - 1.3017315802098333, - 0.19638305501603584 - ], - [ - 0.8081440522056067, - 1.368869274562209, - 0.14563346543925426 - ], - [ - 0.8287781362832601, - 1.4101936907836639, - 0.07520137112258303 - ], - [ - 0.6462003874060691, - 1.515924404478789, - 0.02380303019605732 - ], - [ - 0.6245891904206159, - 1.4898148128060709, - -0.062484210634407754 - ], - [ - 0.6022143107608742, - 1.4358592508557368, - -0.14541440948794418 - ], - [ - 0.5757555213352353, - 1.34637013475215, - -0.20744805922720655 - ], - [ - 0.5467628451659657, - 1.229504630357595, - -0.24683346050143337 - ], - [ - 0.5217607526531464, - 1.1204306966209079, - -0.2622141110284763 - ], - [ - 0.49933473978710463, - 1.045404902816562, - -0.24713573399928832 - ], - [ - 0.47504402464811357, - 1.0107663900876678, - -0.20519242463813842 - ], - [ - 0.4492789677607317, - 1.0175685803371008, - -0.13712847856340551 - ], - [ - 0.4237691158995115, - 1.0498698347516482, - -0.04635935346531698 - ], - [ - 0.40700691236351605, - 1.0873752567051955, - 0.04331296578117393 - ], - [ - 0.4129656680067877, - 1.1323986800569632, - 0.11699107920988211 - ], - [ - 0.44503766568927106, - 1.1893686636141643, - 0.17661585003717017 - ], - [ - 0.49791195037591207, - 1.2557985968076655, - 0.21309517637309838 - ], - [ - 0.5640897043528253, - 1.3365340832221442, - 0.22017225950345243 - ], - [ - 0.6250304050966654, - 1.4222678350631408, - 0.20443532487208724 - ], - [ - 0.6590946658318514, - 1.485783303949383, - 0.16453133429405475 - ], - [ - 0.66219357068222, - 1.515606095390454, - 0.10109993579831575 - ], - [ - 0.4611412647953598, - 1.5787241175174735, - 0.03763680385498749 - ], - [ - 0.44208547638897283, - 1.5411720543815095, - -0.06446462669807868 - ], - [ - 0.423746166207899, - 1.4766035613883217, - -0.15898960849769134 - ], - [ - 0.4025895930477531, - 1.377207657677941, - -0.23189495813738006 - ], - [ - 0.3804926085233218, - 1.2534332095540757, - -0.28255673583080765 - ], - [ - 0.36134458897868343, - 1.1421429713547517, - -0.3065739089797867 - ], - [ - 0.3435682453236211, - 1.070864980988381, - -0.29696973229158863 - ], - [ - 0.3236381294972264, - 1.0470053815838463, - -0.2565739716143912 - ], - [ - 0.3016785342513475, - 1.0704862635629055, - -0.18545862308830502 - ], - [ - 0.28208143759707816, - 1.1223747247294618, - -0.09010580429206094 - ], - [ - 0.2757308946598281, - 1.1783925127201609, - 0.007042594851245393 - ], - [ - 0.29288652131726695, - 1.2358978933044262, - 0.09557048244810538 - ], - [ - 0.33111383400958394, - 1.2972131905211397, - 0.17239521392149557 - ], - [ - 0.38180390434828304, - 1.3633479198608995, - 0.2217092151446823 - ], - [ - 0.43681468374000043, - 1.4426829458606796, - 0.24012632763394762 - ], - [ - 0.479754964812133, - 1.5241132465991378, - 0.23586619627525202 - ], - [ - 0.4937705181632846, - 1.5772665867742044, - 0.2009735568951292 - ], - [ - 0.481872133686848, - 1.5924055193953643, - 0.13066717330207106 - ], - [ - 0.27357781707236634, - 1.6241623495394963, - 0.04139860988202396 - ], - [ - 0.25812097896072883, - 1.58138102994764, - -0.07607300279469678 - ], - [ - 0.2444555262512692, - 1.508501423110268, - -0.18169252237574463 - ], - [ - 0.22980065260430363, - 1.4001793984729438, - -0.2653634918326015 - ], - [ - 0.21494383235259576, - 1.2710058158829802, - -0.32562561265435136 - ], - [ - 0.20106299621625495, - 1.1594292230420868, - -0.354487456558189 - ], - [ - 0.18698941249424966, - 1.0924948898439348, - -0.34596822999566296 - ], - [ - 0.17045245520176372, - 1.0785718489490237, - -0.30490488676371474 - ], - [ - 0.15154464272836468, - 1.1188728879010705, - -0.23058926708782865 - ], - [ - 0.1371414901500041, - 1.1920181775139824, - -0.1275373581454164 - ], - [ - 0.14017643823340498, - 1.2661951736943236, - -0.014065632273292874 - ], - [ - 0.16694128779381995, - 1.3310669784813525, - 0.09827398321614618 - ], - [ - 0.20943211155822206, - 1.3899834125599948, - 0.19523076424922248 - ], - [ - 0.25599641270915574, - 1.451503988925889, - 0.2567604897618605 - ], - [ - 0.2969715764385476, - 1.5251893171767397, - 0.2859824912717643 - ], - [ - 0.3192222551980517, - 1.5958328166828235, - 0.2882044122486475 - ], - [ - 0.3150028486065759, - 1.6358671571202594, - 0.2454983199526835 - ], - [ - 0.29435567690151376, - 1.6422889648133272, - 0.15529623183677807 - ], - [ - 0.08356008269497199, - 1.653861566340536, - 0.040263564637038105 - ], - [ - 0.07093567072187068, - 1.6080355415096927, - -0.09242195805960005 - ], - [ - 0.06341268026917829, - 1.5291494536785795, - -0.2106501603792278 - ], - [ - 0.05744697570926506, - 1.4141948383074314, - -0.30543237251089583 - ], - [ - 0.05072911239175275, - 1.281870682712856, - -0.3728900322063845 - ], - [ - 0.04192638607406468, - 1.1714557944731714, - -0.40234884277014354 - ], - [ - 0.030702930431825592, - 1.1086927313536024, - -0.39207672028767476 - ], - [ - 0.016421492889169616, - 1.1050732445864748, - -0.35023062930093807 - ], - [ - -0.0005221815495766724, - 1.1643602715805896, - -0.27160662266223956 - ], - [ - -0.011057218109147851, - 1.2590891194398286, - -0.15395257986748914 - ], - [ - -0.0003428967503766728, - 1.3457146355054421, - -0.013757146755640638 - ], - [ - 0.03428168806612666, - 1.40818533260206, - 0.12775285844492695 - ], - [ - 0.07902671743853577, - 1.4570342657340092, - 0.24352363406015634 - ], - [ - 0.11832820677344386, - 1.508935047544706, - 0.3150926980200271 - ], - [ - 0.14200526371201685, - 1.5712501946698438, - 0.3506107600123155 - ], - [ - 0.14421106098713635, - 1.6289415910421658, - 0.34784585391679074 - ], - [ - 0.12760147808072847, - 1.6629600321758953, - 0.2859066233245809 - ], - [ - 0.10367892360712735, - 1.6709833242458236, - 0.1730188718702454 - ], - [ - -0.10768716561990054, - 1.666094836063026, - 0.036955319537355376 - ], - [ - -0.11756645584156969, - 1.6186701720961767, - -0.11093710071995415 - ], - [ - -0.11835888679334738, - 1.5362376517942435, - -0.2430165081582301 - ], - [ - -0.11496683001799937, - 1.4178030821127994, - -0.3491868626914109 - ], - [ - -0.11297353935628171, - 1.2851984058738282, - -0.42142274191743473 - ], - [ - -0.11668712056776118, - 1.177381705112748, - -0.44900766310987034 - ], - [ - -0.1258604536595691, - 1.120061242074303, - -0.4363946058215142 - ], - [ - -0.13843549882311187, - 1.1288133354333725, - -0.39253034567231104 - ], - [ - -0.1539001563660748, - 1.2079555778401085, - -0.3049756682336175 - ], - [ - -0.16217754410998447, - 1.3201595855215564, - -0.16394434216261747 - ], - [ - -0.14529574462691053, - 1.4083351176453627, - 0.010768644385223312 - ], - [ - -0.10347860955152614, - 1.4559041128357708, - 0.18080670878177066 - ], - [ - -0.05850748319661647, - 1.4867622177621387, - 0.3092396341873035 - ], - [ - -0.029540575299793218, - 1.5241134180755183, - 0.384647022437751 - ], - [ - -0.02339178142770057, - 1.5730437063489404, - 0.4168218970003703 - ], - [ - -0.03767699731996261, - 1.6242736107981735, - 0.39843500267758875 - ], - [ - -0.06263343189541304, - 1.66397027756176, - 0.3155641989520874 - ], - [ - -0.08807901141010538, - 1.6805400109775948, - 0.1852577503905972 - ], - [ - -0.29961732566030874, - 1.6588345983340713, - 0.03137167600564611 - ], - [ - -0.30571562409454744, - 1.6120285113182982, - -0.13053957867456362 - ], - [ - -0.2999201360952306, - 1.5280620823733255, - -0.2759788017659637 - ], - [ - -0.28789299996441814, - 1.4090806419660618, - -0.3923553635034453 - ], - [ - -0.2775856333666127, - 1.279248750534987, - -0.4673631729496756 - ], - [ - -0.2764329498501952, - 1.177358790316728, - -0.4926040573364726 - ], - [ - -0.28359141095545715, - 1.1292052790836162, - -0.47685456147747374 - ], - [ - -0.2942651821873805, - 1.1512367860714001, - -0.426869558167261 - ], - [ - -0.30859643573632517, - 1.246158891627367, - -0.3236915370242168 - ], - [ - -0.31525833486699484, - 1.366245757783004, - -0.1524512423079328 - ], - [ - -0.29195183133500247, - 1.4421624672583526, - 0.05797476963848278 - ], - [ - -0.24284970445414814, - 1.4634593927738375, - 0.24879091911271167 - ], - [ - -0.19889970551668798, - 1.4716853442391207, - 0.37938686660406523 - ], - [ - -0.18022424641048057, - 1.4944823777830034, - 0.4497944378272868 - ], - [ - -0.18873028470655887, - 1.5351579234703236, - 0.4707662567394469 - ], - [ - -0.21753721325660563, - 1.5894809938040895, - 0.43437198031275204 - ], - [ - -0.25223092765257527, - 1.6415712430092697, - 0.33553334559792974 - ], - [ - -0.28094743593998833, - 1.6687133281140114, - 0.19300730410516548 - ], - [ - -0.4914813810062213, - 1.6282544424949823, - 0.02295364030786359 - ], - [ - -0.49340699126053505, - 1.5851097190492451, - -0.1500911036901198 - ], - [ - -0.48155651215679174, - 1.5020744691172285, - -0.30634850486992304 - ], - [ - -0.4621231889804576, - 1.3856617704843288, - -0.43013828419081357 - ], - [ - -0.4447053536115257, - 1.262164915084349, - -0.5061962295716288 - ], - [ - -0.43866609234655074, - 1.1705540305079798, - -0.5286239048609469 - ], - [ - -0.44278298534968785, - 1.1345113873702517, - -0.5075305395003883 - ], - [ - -0.4517285194068953, - 1.1680645190054746, - -0.44646942002621726 - ], - [ - -0.46569781983726727, - 1.2712770199649477, - -0.3215983923249077 - ], - [ - -0.46926147415769315, - 1.3859444471739168, - -0.1177978032754876 - ], - [ - -0.436781008522386, - 1.4360609562273388, - 0.12102238642033283 - ], - [ - -0.3791163881330551, - 1.4261489184484228, - 0.3190826850113031 - ], - [ - -0.33552799086387863, - 1.414692973846316, - 0.44139715272382574 - ], - [ - -0.3253195853193695, - 1.4284317146058625, - 0.5013434980568074 - ], - [ - -0.3467497471962594, - 1.4677518275458485, - 0.5096210749179503 - ], - [ - -0.39095716626851157, - 1.5295498007626596, - 0.45846568790666453 - ], - [ - -0.43876265009711857, - 1.5930491298643648, - 0.34801424444292817 - ], - [ - -0.47346604276806686, - 1.630372201477732, - 0.195563477614863 - ], - [ - -0.6793219104450424, - 1.5705760551907504, - 0.01207108504189797 - ], - [ - -0.6787651006442356, - 1.5336328518376592, - -0.16760813053808588 - ], - [ - -0.662215426417119, - 1.4549009381127582, - -0.33038387433925076 - ], - [ - -0.6373232529116255, - 1.344723264552976, - -0.45764292721504907 - ], - [ - -0.6144650994497847, - 1.231217020252388, - -0.5326085428424944 - ], - [ - -0.603587589394627, - 1.1527327633558324, - -0.5508364601568314 - ], - [ - -0.603746762026831, - 1.1290663306857323, - -0.5219778754195742 - ], - [ - -0.6108589228255603, - 1.171517469339023, - -0.44614220028049073 - ], - [ - -0.6237571536278459, - 1.2749238530318079, - -0.29633560442499146 - ], - [ - -0.6202331896785201, - 1.3703109794811894, - -0.06408925135334943 - ], - [ - -0.5736586887602902, - 1.3861681597500919, - 0.188740342314715 - ], - [ - -0.5054366031319933, - 1.3491162919356787, - 0.37978810950023273 - ], - [ - -0.4622370590015039, - 1.326056505467341, - 0.48802101223247957 - ], - [ - -0.46060365486785737, - 1.336345542292978, - 0.5368099565069716 - ], - [ - -0.49525313991793457, - 1.3779753650639421, - 0.5340332134860631 - ], - [ - -0.5550893059032025, - 1.4464694204756912, - 0.4715298583124627 - ], - [ - -0.6165244938595064, - 1.5172033505637812, - 0.35186771598141037 - ], - [ - -0.6592821141482372, - 1.5632389948475671, - 0.19161851725439533 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.4294334490674496, - 0.06211623836294424, - -0.0020992167481603064, - 0.00011399265413059905, - 2.3217153058813136e-05, - -9.619722272512663e-05, - 2.9176534572300715e-05, - 0.20197069906136192, - -0.07380648487377739, - 0.0010890856317489028, - 0.000622719937841421, - -8.091808540057688e-05, - -0.00012895435886341525, - -4.019059378974189e-05, - 0.05746624943422227, - 0.048929075457438555, - 0.012975038612487924, - -0.00191574638890013, - -0.0003634626653687531, - 2.1899693595361495e-06, - 4.762249030554052e-05, - -0.017100611698806233, - -0.0062495021935566365, - -0.0024932347558619975, - -0.0008772754184898598, - 0.000454205288844004, - -4.251903298056293e-05, - -1.4351619968203108e-05, - 0.0010571123556512676, - 0.005758322706961897, - 0.0013476566231188443, - -0.0003927185433880054, - 0.0004969202505670528, - 2.649196371230162e-06, - -2.173874933406853e-05, - -0.002194693155191858, - -0.0020211235106914727, - -0.0011231291346698769, - 3.8760896746955706e-05, - 0.00013921520478389542, - -0.00010456754467033983, - 4.6404191450236495e-05, - 0.0010643711004666469, - 2.8335094819775582e-05, - 0.00041649780603789533, - 0.0002549927594735047, - 6.665656935622904e-05, - -3.079761489682612e-05, - 8.33713906622897e-06, - 0.1666658923460983, - -0.0016743904409309365, - -0.0007597184379581217, - -0.00024079314074101338, - 4.242145501578102e-06, - -1.4909087922261948e-05, - -0.04381139061584406, - -0.012131453025855261, - 0.002439815365073662, - 0.00014866856599237655, - 3.225222534814971e-05, - -8.823377299986273e-05, - 0.008024761597249363, - 0.003847950052138041, - 0.001531688441433922, - -0.0004936502391808819, - -2.4944694720048975e-05, - -7.95941347709355e-07, - -0.002819868092720041, - -0.001519290786345621, - 0.0004621366397293514, - -0.0006509552298005272, - 5.9576744363097805e-05, - 2.7774135361468154e-05, - 0.0012558670819094056, - 0.0013251723394530522, - 0.00018425196245982136, - -8.490782665628263e-05, - 0.00010888571108050734, - -5.07042582076298e-05, - -5.295757130336753e-05, - -0.00026975444524519567, - -0.00029065256956523755, - -7.558381740471509e-05, - 3.8748498920870515e-05, - -7.594526396630609e-06, - -0.017748644865295312, - 0.002571801522916167, - 0.00041331336383479287, - 0.00015831343417262614, - -6.591533981519593e-05, - -4.090247189449646e-05, - 0.033965032198327916, - -9.171211719436307e-05, - -0.0007858881324029156, - 0.00015506770995182072, - -0.00016375361772571448, - 4.262193186621419e-05, - -0.028854347347127194, - -0.001452574664224222, - 0.0008317315523530162, - -1.6990871959380407e-05, - -0.00020189689133028897, - -2.306857249367945e-05, - 0.001762225418402025, - 0.0018500895958383902, - -0.0003787459134455493, - -0.00022191976647441646, - 3.398832995672553e-05, - 7.121758707845226e-05, - -0.00102242211010635, - 0.000522385949023877, - -7.14734479217999e-05, - 0.0001501004672682474, - 3.293355806300553e-05, - 2.3649215875639542e-05, - 0.00037550294345433185, - 0.0002324576281904514, - -3.260317437700248e-05, - 6.91769288663947e-05, - -5.848377133179428e-06, - -2.9649381740953362e-05, - -0.0001582554213695247, - -5.601815204500063e-05, - -2.471550365789018e-05, - 4.985710300374838e-05, - 1.9006654718949053e-05, - 1.959218991178331e-05, - 0.036104419221012166, - 0.06369904349251124, - -0.0038568079475752295, - 0.00010489543974493791, - 0.00023998065342247063, - -6.120662206396881e-05, - 0.00010174004047511264, - 0.006167327890200743, - -0.032697269688888614, - -0.001831565180650986, - 0.0007194475542912513, - 0.00013784258813517262, - -3.4410361743442354e-05, - -8.601125706875085e-06, - -0.0028833478941941207, - 0.00031276037930676854, - 0.0018712091780173515, - -0.0010902003193091207, - -0.00012070279919234449, - 1.529923183115449e-05, - 4.3946504792835105e-05, - 0.0008140424612343317, - 0.000922944504182917, - -0.00043640119545139807, - -0.000591899677458796, - 5.253536154973493e-05, - 6.91305261651331e-05, - 2.6656684912319212e-05, - -0.0005039360373165858, - 8.116350913688713e-06, - 0.00014083046294822662, - -0.00011143770180552444, - 0.00011169102553813432, - -1.055224889274651e-05, - -4.0705775344917655e-05, - 0.0002382090472860589, - 0.00013183158363440413, - 6.593727368223074e-05, - -0.000103410064322589, - 1.0037503743138952e-05, - 1.0280079790292349e-05, - 2.1008499699773567e-05, - 0.0383031550743632, - -0.003799569927755617, - 0.0013253099034300953, - 0.00011203718965486363, - -0.0001025849783952083, - 3.0249949567803302e-05, - -0.09813750611647926, - 0.0016968744496200032, - -0.00022387470800981873, - 7.363600381921985e-05, - -3.0062936372532143e-05, - -1.2152805721175476e-05, - 0.017822969566651612, - 0.011830378312698389, - -0.0025388583632048266, - -0.00022784765248132699, - 3.817967115682744e-05, - 1.6694572227457116e-05, - -0.0037605290506282202, - -0.004168845045490884, - -0.0015624751412720438, - 0.0005443562601394128, - 5.923846834888851e-05, - 5.9505627731051e-06, - 0.004379935079795735, - 0.00221612428486899, - -0.0008465358793241793, - 0.0005789183452678994, - -7.182496953286212e-05, - -2.7229994425065062e-05, - -1.7657464258695615e-05, - -0.001066361219454378, - -0.00010937644777879002, - 0.00014116829827342964, - -0.00011214916933250967, - 3.770300354486976e-05, - -0.000875506832094303, - 0.0003616898576756144, - 0.0002519787119243776, - 5.896929481528794e-05, - -5.199168227017997e-05, - 1.7494533776882777e-05, - -0.40140339377999656, - -0.17057080089147952, - -0.000623180962242225, - 0.00014551560431050803, - -0.00014541220213060965, - -0.0001064024511432245, - 5.566767704910102e-05, - 0.010055574612474059, - 0.016307162747713315, - 0.011334576263437502, - -0.0013255748948435811, - -0.00040460828674291575, - 0.00010579710405388799, - 4.982914703007093e-05, - -0.00916120341168678, - -0.007792964903074305, - -0.0027208403783570098, - -0.0011436691998600273, - 0.0005464377929219673, - 7.359207355275956e-05, - 2.6488923887655434e-05, - 0.003520165824759033, - 0.00540947705969704, - 0.0021405374947637465, - -0.000800929694410864, - 0.0004987185210189292, - -3.7805766607881594e-05, - -3.481081367929095e-05, - -0.0005605160312131695, - -0.001004169411481148, - -0.0011408984853994043, - 2.5582319730948182e-05, - 0.00014936041421973473, - -0.00011364547809746048, - 3.292671020669509e-05, - 0.0005189526095239373, - -0.0006054886989537355, - 0.00032941300007991136, - 0.00018709080626324665, - 5.7356221112589885e-05, - -3.704885151638695e-05, - 1.345084587648121e-05 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface5": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -1.9061691362359223, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_4.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_4.vts deleted file mode 100644 index adb051c80..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_4.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_5.json b/examples/2_Intermediate/inputs/input_ncsx/surface_5.json deleted file mode 100644 index 5860afa77..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_5.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface6" - }, - { - "iota": -0.44036349933892144, - "G": 13.887479671261115 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.7285299218050043, - 0.0, - 0.0 - ], - [ - 1.6986129088641524, - 0.014763128800843956, - -0.19986267748382605 - ], - [ - 1.6153831365495086, - 0.03555138497452026, - -0.3777429434998411 - ], - [ - 1.4951345414144526, - 0.06586528542058585, - -0.511244738743401 - ], - [ - 1.3772005651720878, - 0.09875389000596112, - -0.5838233041697775 - ], - [ - 1.308455792224901, - 0.12140571238489885, - -0.591832107144694 - ], - [ - 1.2991020493857721, - 0.12344372755364738, - -0.547302404003783 - ], - [ - 1.3514067785074904, - 0.09909668413225432, - -0.4507740342069802 - ], - [ - 1.4531289543611317, - 0.05361881584975457, - -0.2688754471538454 - ], - [ - 1.5109392907200152, - 1.91192039565256e-17, - -1.0115326887638435e-16 - ], - [ - 1.4531289543611317, - -0.05361881584975453, - 0.26887544715384526 - ], - [ - 1.3514067785074906, - -0.09909668413225424, - 0.45077403420698 - ], - [ - 1.2991020493857723, - -0.12344372755364735, - 0.5473024040037828 - ], - [ - 1.308455792224901, - -0.12140571238489883, - 0.591832107144694 - ], - [ - 1.3772005651720876, - -0.09875389000596119, - 0.5838233041697777 - ], - [ - 1.4951345414144523, - -0.06586528542058595, - 0.5112447387434013 - ], - [ - 1.6153831365495086, - -0.0355513849745203, - 0.3777429434998413 - ], - [ - 1.6986129088641522, - -0.014763128800843994, - 0.19986267748382652 - ], - [ - 1.7137185866726377, - 0.19940136816031037, - -0.016219556732380402 - ], - [ - 1.6931538748453778, - 0.21326414812781233, - -0.213756145309942 - ], - [ - 1.6192224754372946, - 0.2283042816191382, - -0.38694266149464224 - ], - [ - 1.5084855862101436, - 0.24936223779713032, - -0.5136095677728862 - ], - [ - 1.4042765412039535, - 0.271233148498531, - -0.5778439563296336 - ], - [ - 1.3478854733791976, - 0.2826367427446172, - -0.5761326503675643 - ], - [ - 1.3438197034059614, - 0.2745367521346716, - -0.5204069569087475 - ], - [ - 1.3942121471527966, - 0.24467832086741229, - -0.4066700668181612 - ], - [ - 1.474565470544758, - 0.1992874396420736, - -0.204522265752983 - ], - [ - 1.488535666429233, - 0.1451693670814594, - 0.06823092647473684 - ], - [ - 1.3942820619447032, - 0.08770875938709854, - 0.31668575508718766 - ], - [ - 1.2831590856147375, - 0.04138302059529247, - 0.4720890521708611 - ], - [ - 1.2352367129097859, - 0.023145990105399354, - 0.5512364836001236 - ], - [ - 1.2528195530305901, - 0.03573761799251318, - 0.5856833795363803 - ], - [ - 1.3337360039280979, - 0.07044383997592378, - 0.5709036739366246 - ], - [ - 1.4622539377956711, - 0.11433040080748787, - 0.4939216083288637 - ], - [ - 1.5888078987800314, - 0.15315128829184155, - 0.35852966979234013 - ], - [ - 1.6771601303694745, - 0.18065101180126278, - 0.18166364895560164 - ], - [ - 1.6701066821888164, - 0.39365401038425607, - -0.031002307722630764 - ], - [ - 1.6593180245462447, - 0.4107779063539699, - -0.2212084131360132 - ], - [ - 1.5972352178026306, - 0.42189640592234245, - -0.38561704410192943 - ], - [ - 1.5007401851190525, - 0.4329127411076675, - -0.5024705116286102 - ], - [ - 1.4132759236245473, - 0.44347878458461343, - -0.5546759570303664 - ], - [ - 1.367293422647679, - 0.4435069984009597, - -0.5406456017231615 - ], - [ - 1.3640249854603899, - 0.42525719331384493, - -0.47286946977599886 - ], - [ - 1.4039462091500408, - 0.3892939418289319, - -0.3437499912251675 - ], - [ - 1.4528464856893044, - 0.3399060330933463, - -0.13274238723171783 - ], - [ - 1.4249779986215954, - 0.28074914484635366, - 0.1252238757083945 - ], - [ - 1.3080051303034974, - 0.21927821972060554, - 0.3417733966683308 - ], - [ - 1.1974227876721573, - 0.17348654709094774, - 0.46987465901780445 - ], - [ - 1.157288417389543, - 0.16146537675765454, - 0.5336454785491027 - ], - [ - 1.1849344105724293, - 0.1849319747368849, - 0.5599759827200805 - ], - [ - 1.2768180880332254, - 0.2321808505980931, - 0.5407289974837797 - ], - [ - 1.4122291537959701, - 0.2873684340842064, - 0.4624136472164773 - ], - [ - 1.5410034510093273, - 0.3349430664975377, - 0.3303656708274282 - ], - [ - 1.629742189376118, - 0.36903225242237364, - 0.16019273071619453 - ], - [ - 1.6011790998622442, - 0.5780258684635016, - -0.042607157604874185 - ], - [ - 1.597083533073046, - 0.600130321045256, - -0.22137612084611819 - ], - [ - 1.5481412496659348, - 0.6100127428975839, - -0.37550796011412807 - ], - [ - 1.4712542048028907, - 0.6138366412371967, - -0.4799898643060066 - ], - [ - 1.4010184501205047, - 0.6137984714638389, - -0.5154885983426731 - ], - [ - 1.3604678600681042, - 0.6005331120856047, - -0.4871093591409985 - ], - [ - 1.352446239870155, - 0.569147449111363, - -0.4082356172915998 - ], - [ - 1.3740543446170503, - 0.522871408480811, - -0.26966828592195685 - ], - [ - 1.3877704652375105, - 0.46533993046163075, - -0.06543501599798225 - ], - [ - 1.328849119530496, - 0.4010753661098671, - 0.16163247813404683 - ], - [ - 1.2049287746360509, - 0.3397614073667642, - 0.34235955024619286 - ], - [ - 1.1022251609114655, - 0.29881723266544286, - 0.44753014307371924 - ], - [ - 1.0719704935446874, - 0.2945425593430243, - 0.5002555221032181 - ], - [ - 1.1104963060995905, - 0.32743910636856616, - 0.5211764260206274 - ], - [ - 1.2109312948114266, - 0.3851196545753221, - 0.4985621649711218 - ], - [ - 1.3486634893922507, - 0.45096268004549966, - 0.42058378052606066 - ], - [ - 1.4749860291627472, - 0.5070808955280717, - 0.29591794828159995 - ], - [ - 1.5602780784163692, - 0.5471631111728567, - 0.13704163871150202 - ], - [ - 1.5122864809775132, - 0.7508708802004874, - -0.050456239687305955 - ], - [ - 1.5117851644139197, - 0.7766727294732811, - -0.21562116907046353 - ], - [ - 1.4763585712076537, - 0.7895816053427507, - -0.3575153824732411 - ], - [ - 1.4195148949793852, - 0.7909839919790247, - -0.4439531522356314 - ], - [ - 1.3607473923732123, - 0.7778675856332965, - -0.4579032026266945 - ], - [ - 1.318631261310142, - 0.7446187966309462, - -0.4172138979573287 - ], - [ - 1.3017327573660553, - 0.6950055697645968, - -0.33391863535402166 - ], - [ - 1.3022490743018516, - 0.6361643915915637, - -0.1972061481079386 - ], - [ - 1.2855448712124748, - 0.5719192623794108, - -0.014865710263604724 - ], - [ - 1.2105335207048429, - 0.5074960429358153, - 0.17303229140376541 - ], - [ - 1.0937108994567646, - 0.45294967109962897, - 0.32141329826766823 - ], - [ - 1.0054359070498606, - 0.42266566711534287, - 0.411404708151113 - ], - [ - 0.9865942940337685, - 0.42729120870246107, - 0.4589349549265712 - ], - [ - 1.0336406806597793, - 0.4661346205558961, - 0.47652349220914497 - ], - [ - 1.1380835677636427, - 0.5311377862298124, - 0.4501621904726553 - ], - [ - 1.273767062081793, - 0.6064511906367164, - 0.37381433779074785 - ], - [ - 1.393950720910487, - 0.6704737081695045, - 0.2594385906927262 - ], - [ - 1.4734519898000045, - 0.7159098466033665, - 0.11450940177134425 - ], - [ - 1.4070266301841814, - 0.9135000599303298, - -0.05510825186619249 - ], - [ - 1.4091261132006965, - 0.9421951823315647, - -0.20402708523091467 - ], - [ - 1.385066360013944, - 0.9605910487589013, - -0.3269966579673773 - ], - [ - 1.3404789209903696, - 0.9574812128339649, - -0.3887715876454948 - ], - [ - 1.2838226219235203, - 0.9221005878682549, - -0.38435584221839725 - ], - [ - 1.2368729860166312, - 0.8621008902732549, - -0.34144104231970646 - ], - [ - 1.211615380231216, - 0.7946602806760207, - -0.2636931043316747 - ], - [ - 1.1944721087718564, - 0.7272167637827096, - -0.14017509467843672 - ], - [ - 1.158255599014506, - 0.6623284645622654, - 0.011403755173770137 - ], - [ - 1.081056799038071, - 0.6054376837918118, - 0.16144788250599476 - ], - [ - 0.9805675945432168, - 0.5638809230286895, - 0.28587611941660906 - ], - [ - 0.9106855791447213, - 0.5466265224327487, - 0.36912359328079175 - ], - [ - 0.9022577758208902, - 0.5590428751529881, - 0.41609258946280075 - ], - [ - 0.9535456485397901, - 0.6017384347146896, - 0.43007672535838154 - ], - [ - 1.058325538469531, - 0.672488693675007, - 0.399493220673988 - ], - [ - 1.1887151137728524, - 0.7557180542856876, - 0.3269618156256767 - ], - [ - 1.2995454671104594, - 0.8267360818449099, - 0.22425135650472813 - ], - [ - 1.371529697836476, - 0.8768142710509345, - 0.09376797795196291 - ], - [ - 1.287528121677088, - 1.0668793476194496, - -0.05663084511579066 - ], - [ - 1.291169224579225, - 1.0983143272306968, - -0.1841391908896443 - ], - [ - 1.271809527047259, - 1.1163535414130257, - -0.28058599265309125 - ], - [ - 1.2285803122625627, - 1.0969441548845613, - -0.32036276091152777 - ], - [ - 1.1698157472434974, - 1.0315853678023057, - -0.3119866015653452 - ], - [ - 1.1213701428051746, - 0.9471325500448887, - -0.2782844660030998 - ], - [ - 1.0912119123079564, - 0.8684604735003028, - -0.21197498731312764 - ], - [ - 1.0625422209330007, - 0.798540774627243, - -0.10827113608761119 - ], - [ - 1.0185988311728873, - 0.7404540450597551, - 0.011565757866655079 - ], - [ - 0.9490467259105597, - 0.6988445045294955, - 0.13281283517561002 - ], - [ - 0.8676696486950697, - 0.6735419270512343, - 0.24354283881937613 - ], - [ - 0.8145207013792357, - 0.6683182117353986, - 0.32490771028755655 - ], - [ - 0.8139379385542442, - 0.6878976979467527, - 0.37159307832463156 - ], - [ - 0.8681290985808571, - 0.7351700680445572, - 0.38176177754879487 - ], - [ - 0.9721844117106202, - 0.8111581830295044, - 0.3499233971326694 - ], - [ - 1.0947773568873853, - 0.9001475824393663, - 0.28447311918358265 - ], - [ - 1.1935974494112205, - 0.9757997870946894, - 0.1932908853921724 - ], - [ - 1.2562178044818408, - 1.0287181969808106, - 0.0758396425844891 - ], - [ - 1.1557115153249313, - 1.2113856004267247, - -0.051556655859400974 - ], - [ - 1.155722700938836, - 1.241528949785402, - -0.15333851305322227 - ], - [ - 1.1326227772099067, - 1.2457010894298226, - -0.22642412881807503 - ], - [ - 1.0866322957827907, - 1.1994637878876868, - -0.25960000857952653 - ], - [ - 1.0295687643536904, - 1.1065249737075349, - -0.2613614944127363 - ], - [ - 0.9843540945580121, - 1.0054922843589043, - -0.24077335417338147 - ], - [ - 0.9521346691133248, - 0.9212563955376977, - -0.18748232600568593 - ], - [ - 0.9179229386373956, - 0.8545873992724299, - -0.105347725893018 - ], - [ - 0.8748489145863237, - 0.8104405507497182, - -0.011319977422966705 - ], - [ - 0.8174241093342032, - 0.7887494145509223, - 0.09325270140512265 - ], - [ - 0.7534175368401681, - 0.7800224539574135, - 0.19763321955871874 - ], - [ - 0.7138881530410128, - 0.7863493707245922, - 0.2764715233864518 - ], - [ - 0.7207927112003099, - 0.814486671941075, - 0.3215855855596981 - ], - [ - 0.7781746346005641, - 0.8675165262779504, - 0.33165376729025214 - ], - [ - 0.8797375982001768, - 0.9481516603698948, - 0.3044718950410338 - ], - [ - 0.9926471080725584, - 1.0410170906760496, - 0.249433962580674 - ], - [ - 1.0785975889564594, - 1.117760568688611, - 0.16958020696703968 - ], - [ - 1.1306660408199174, - 1.171025141274554, - 0.06337397164427329 - ], - [ - 1.0091547347824557, - 1.3453280692486413, - -0.03273480719178818 - ], - [ - 0.9976313787882324, - 1.3626774622852416, - -0.11446494270985139 - ], - [ - 0.9683923767670247, - 1.3423213420837334, - -0.18122017182532218 - ], - [ - 0.9244805266821662, - 1.2704124389973224, - -0.2233336768176132 - ], - [ - 0.8746631370258461, - 1.1579121276586253, - -0.2394427305738658 - ], - [ - 0.8350427168774187, - 1.045495568056963, - -0.23145017240865776 - ], - [ - 0.8035569591953682, - 0.9594856445266793, - -0.19205019802856252 - ], - [ - 0.7692906577907072, - 0.9016114869725346, - -0.12845281752810828 - ], - [ - 0.7312035722394381, - 0.8756270930403235, - -0.05000689634703722 - ], - [ - 0.6853098625194607, - 0.8744827165736181, - 0.047762694961277385 - ], - [ - 0.6364805528816195, - 0.8816251191278918, - 0.1480295249121173 - ], - [ - 0.6108732106955445, - 0.9002142557031371, - 0.2227322284207314 - ], - [ - 0.6263888568612199, - 0.9385353310299354, - 0.26837194441292134 - ], - [ - 0.6854372350191822, - 0.9979046597957487, - 0.28415917411360203 - ], - [ - 0.7814935440037132, - 1.082839693229459, - 0.2666923368296104 - ], - [ - 0.8833556322976438, - 1.178589389767076, - 0.22425888062944238 - ], - [ - 0.956613634439109, - 1.2547376503120395, - 0.15588171645455456 - ], - [ - 0.9965261475254428, - 1.3070240921056921, - 0.06230934998180537 - ], - [ - 0.8430300165791524, - 1.4601708210207245, - -1.3306241490524765e-17 - ], - [ - 0.8193262214208942, - 1.4531354062834727, - -0.07980241664009487 - ], - [ - 0.7894371301150194, - 1.4088214785888094, - -0.1575078079803755 - ], - [ - 0.7528635179293597, - 1.3194800209291004, - -0.21345262979184493 - ], - [ - 0.7122686589615929, - 1.1935042879263709, - -0.24285787195855668 - ], - [ - 0.6794568042418153, - 1.0729505969775088, - -0.24779996762127154 - ], - [ - 0.6520067413994801, - 0.9886767721879257, - -0.22167296542517181 - ], - [ - 0.6215962838363172, - 0.9429949670128602, - -0.17029794780961488 - ], - [ - 0.5887068147783582, - 0.9363924971872077, - -0.09725559348817209 - ], - [ - 0.5514419235878177, - 0.9551254290776146, - -1.959038912553878e-17 - ], - [ - 0.5165862830880916, - 0.978031305572682, - 0.09725559348817205 - ], - [ - 0.5058594551558473, - 1.009815656206683, - 0.1702979478096148 - ], - [ - 0.530215830146604, - 1.058992787584624, - 0.2216729654251717 - ], - [ - 0.5894740718672941, - 1.1249021517363567, - 0.24779996762127152 - ], - [ - 0.6774707033890979, - 1.2135948969433992, - 0.24285787195855665 - ], - [ - 0.7662714589459438, - 1.3117389425738961, - 0.21345262979184504 - ], - [ - 0.8253566247975541, - 1.3880833486646924, - 0.15750780798037547 - ], - [ - 0.8487890662696623, - 1.4361250248789446, - 0.07980241664009503 - ], - [ - 0.6605109170023663, - 1.5466176712952748, - 0.03273480719178808 - ], - [ - 0.6336529933591003, - 1.5165290053453189, - -0.0623093499818052 - ], - [ - 0.6083278630354676, - 1.4558205341868484, - -0.15588171645455448 - ], - [ - 0.5790105360202659, - 1.3543031130293635, - -0.22425888062944216 - ], - [ - 0.5470199105610037, - 1.2182131086154775, - -0.26669233682961035 - ], - [ - 0.5214921684283954, - 1.0925583881242509, - -0.28415917411360186 - ], - [ - 0.49960101059055206, - 1.011736328204279, - -0.2683719444129212 - ], - [ - 0.4741718089400454, - 0.9791388468052739, - -0.22273222842073132 - ], - [ - 0.44526947333842687, - 0.9920208873741932, - -0.1480295249121171 - ], - [ - 0.41466931646345045, - 1.0307371086926829, - -0.0477626949612773 - ], - [ - 0.3927135206951214, - 1.0710544154174446, - 0.05000689634703731 - ], - [ - 0.3961731231667238, - 1.1170309960270604, - 0.12845281752810825 - ], - [ - 0.4291604631289056, - 1.1756435623143036, - 0.19205019802856257 - ], - [ - 0.4879043630426631, - 1.2459159900895025, - 0.23145017240865776 - ], - [ - 0.5654497493895363, - 1.3364365602474841, - 0.23944273057386578 - ], - [ - 0.6379691821143464, - 1.4358298409094339, - 0.2233336768176132 - ], - [ - 0.6782881939030228, - 1.5098130701533017, - 0.1812201718253221 - ], - [ - 0.6812976101094147, - 1.5453128487857262, - 0.11446494270985141 - ], - [ - 0.47123494608574346, - 1.6065683319309616, - 0.05155665585940098 - ], - [ - 0.44880450040406655, - 1.5646980851836982, - -0.06337397164427301 - ], - [ - 0.4287102533546486, - 1.4929731968412454, - -0.16958020696703965 - ], - [ - 0.4052236922629486, - 1.380166157922018, - -0.2494339625806737 - ], - [ - 0.3812546254206359, - 1.235950938890608, - -0.3044718950410337 - ], - [ - 0.3622040326592537, - 1.1076772652837368, - -0.3316537672902521 - ], - [ - 0.3449697933446584, - 1.0314681347326662, - -0.3215855855596982 - ], - [ - 0.324054454776898, - 1.0114199613565664, - -0.2764715233864518 - ], - [ - 0.29881049222931394, - 1.0424899535389907, - -0.19763321955871885 - ], - [ - 0.2743649755541006, - 1.1022847516247496, - -0.09325270140512269 - ], - [ - 0.2644376479131457, - 1.1628616598798576, - 0.01131997742296666 - ], - [ - 0.2811329282053017, - 1.2222382832126641, - 0.10534772589301783 - ], - [ - 0.3217641073778688, - 1.2852010090448789, - 0.1874823260056858 - ], - [ - 0.37860481428505177, - 1.3552217943859202, - 0.24077335417338136 - ], - [ - 0.4434943549757882, - 1.4448951917270179, - 0.2613614944127363 - ], - [ - 0.495449963338851, - 1.540783066664346, - 0.25960000857952636 - ], - [ - 0.5124974003632242, - 1.603730642683573, - 0.22642412881807505 - ], - [ - 0.49733425957855504, - 1.6216496936360987, - 0.15333851305322244 - ], - [ - 0.2801805569728685, - 1.6484717352689446, - 0.05663084511579066 - ], - [ - 0.2627871896797861, - 1.6022756298579928, - -0.07583964258448873 - ], - [ - 0.24826867992583762, - 1.5215856066297733, - -0.1932908853921722 - ], - [ - 0.2321619951039462, - 1.3981787937721424, - -0.28447311918358226 - ], - [ - 0.21639138713586825, - 1.2475154892193794, - -0.3499233971326693 - ], - [ - 0.20261140573809258, - 1.1194068871577862, - -0.38176177754879465 - ], - [ - 0.1887679123496004, - 1.0488397808652892, - -0.3715930783246315 - ], - [ - 0.17152019848502498, - 1.039554725170436, - -0.3249077102875566 - ], - [ - 0.14946959499275939, - 1.0881949213882667, - -0.24354283881937602 - ], - [ - 0.13069373126241274, - 1.1713208262817396, - -0.1328128351756101 - ], - [ - 0.13195259777025176, - 1.2523594865907342, - -0.011565757866655164 - ], - [ - 0.16028548631839615, - 1.3194589432351376, - 0.10827113608761085 - ], - [ - 0.20650287607994633, - 1.3792474737210385, - 0.2119749873131274 - ], - [ - 0.2595557776874228, - 1.4447013057371094, - 0.27828446600309964 - ], - [ - 0.3084712610673618, - 1.5288828387610975, - 0.311986601565345 - ], - [ - 0.3356913485316008, - 1.6124538384510778, - 0.3203627609115277 - ], - [ - 0.33088576294477434, - 1.6595961299045114, - 0.2805859926530912 - ], - [ - 0.3055834964325861, - 1.6673425126856127, - 0.18413919088964448 - ], - [ - 0.0876009431661823, - 1.6752708355058785, - 0.05510825186619247 - ], - [ - 0.07357858421260599, - 1.6261866958966507, - -0.09376797795196257 - ], - [ - 0.06620171554767341, - 1.5388074288130273, - -0.22425135650472797 - ], - [ - 0.06011347622352691, - 1.4073165135326435, - -0.32696181562567644 - ], - [ - 0.0532295232456024, - 1.2527811486259628, - -0.39949322067398785 - ], - [ - 0.04434794662651029, - 1.1266639726609107, - -0.4300767253583815 - ], - [ - 0.0330164437767351, - 1.0608995921994298, - -0.41609258946280087 - ], - [ - 0.018049665236744283, - 1.0619901076158467, - -0.36912359328079175 - ], - [ - -0.001948593219345346, - 1.1311369085165695, - -0.28587611941660895 - ], - [ - -0.016203984946916272, - 1.2389414927967644, - -0.16144788250599487 - ], - [ - -0.005534523546789821, - 1.3342430051032568, - -0.01140375517377025 - ], - [ - 0.03255213710780586, - 1.3980515721997515, - 0.14017509467843642 - ], - [ - 0.08238830032829825, - 1.4466198392341854, - 0.26369310433167437 - ], - [ - 0.12816477859350414, - 1.5022138722817446, - 0.34144104231970634 - ], - [ - 0.15665122297671374, - 1.5728732984730407, - 0.38435584221839714 - ], - [ - 0.15896359346536393, - 1.6396294052321954, - 0.38877158764549485 - ], - [ - 0.13936307086617317, - 1.679798178078769, - 0.3269966579673774 - ], - [ - 0.11140190662209819, - 1.6914366023336123, - 0.20402708523091495 - ], - [ - -0.10586998327315233, - 1.685113950426542, - 0.05045623968730594 - ], - [ - -0.11672988092206597, - 1.6340017777252167, - -0.11450940177134385 - ], - [ - -0.11632809661089838, - 1.542433590016866, - -0.25943859069272585 - ], - [ - -0.11168139379418042, - 1.4063402295850613, - -0.37381433779074746 - ], - [ - -0.10906296809697502, - 1.2511781744278496, - -0.4501621904726552 - ], - [ - -0.11313591734506351, - 1.1282263981143552, - -0.47652349220914497 - ], - [ - -0.12325210546679431, - 1.0680613262132477, - -0.45893495492657127 - ], - [ - -0.13667874849554623, - 1.0820658709399, - -0.411404708151113 - ], - [ - -0.15458952792029726, - 1.1736562588753001, - -0.3214132982676682 - ], - [ - -0.16576229484992705, - 1.302100802530917, - -0.17303229140376555 - ], - [ - -0.14747582547200971, - 1.3992741473645027, - 0.014865710263604516 - ], - [ - -0.1001900130495601, - 1.445862976195954, - 0.19720614810793818 - ], - [ - -0.048973899495208854, - 1.474836421699667, - 0.3339186353540212 - ], - [ - -0.014456836637272957, - 1.5142775688343724, - 0.4172138979573286 - ], - [ - -0.006720606247703917, - 1.567375602745281, - 0.4579032026266944 - ], - [ - -0.0247452164490303, - 1.6248279560920587, - 0.44395315223563137 - ], - [ - -0.05438155701610561, - 1.6733548304321002, - 0.35751538247324116 - ], - [ - -0.08327426805649932, - 1.6975807221835295, - 0.2156211690704638 - ], - [ - -0.30000446379716716, - 1.6756747107211547, - 0.042607157604874185 - ], - [ - -0.3062818849187616, - 1.6248220084629725, - -0.13704163871150166 - ], - [ - -0.2983480772803005, - 1.5309158192461096, - -0.2959179482815997 - ], - [ - -0.28378660761800883, - 1.393458182993004, - -0.4205837805260604 - ], - [ - -0.2719422430467964, - 1.24125709083194, - -0.4985621649711217 - ], - [ - -0.2716775687421418, - 1.1254375650753083, - -0.5211764260206273 - ], - [ - -0.28090390788559894, - 1.0756249591885536, - -0.5002555221032182 - ], - [ - -0.29232926587889396, - 1.1039636063724412, - -0.44753014307371936 - ], - [ - -0.3082223773128542, - 1.2133796322690567, - -0.3423595502461929 - ], - [ - -0.31708310388195854, - 1.351354778364927, - -0.16163247813404694 - ], - [ - -0.2908890314436987, - 1.4345144427482484, - 0.06543501599798211 - ], - [ - -0.23420724965159265, - 1.4514016728591486, - 0.26966828592195646 - ], - [ - -0.18332697050552624, - 1.4558265255359784, - 0.4082356172915996 - ], - [ - -0.1601569991541907, - 1.4784662838940332, - 0.4871093591409985 - ], - [ - -0.16894415596850987, - 1.5202168047069777, - 0.5154885983426731 - ], - [ - -0.20402897731631817, - 1.5810618374025749, - 0.47998986430600676 - ], - [ - -0.2457840928514342, - 1.6457360223060784, - 0.37550796011412824 - ], - [ - -0.27881366293002013, - 1.6831800721296903, - 0.2213761208461185 - ], - [ - -0.49413896780001876, - 1.6431818189977867, - 0.031002307722630806 - ], - [ - -0.49527978927449146, - 1.5959142638301747, - -0.16019273071619405 - ], - [ - -0.48043252109633494, - 1.5020196691423349, - -0.33036567082742796 - ], - [ - -0.45724621273530797, - 1.3667105401944148, - -0.4624136472164769 - ], - [ - -0.43733452912638426, - 1.2218473255472957, - -0.5407289974837794 - ], - [ - -0.4323114171920497, - 1.118649288742506, - -0.5599759827200803 - ], - [ - -0.43881109059101664, - 1.0829738573436596, - -0.5336454785491027 - ], - [ - -0.448467636840472, - 1.1237418267399415, - -0.4698746590178046 - ], - [ - -0.4641020563770779, - 1.242404780983506, - -0.341773396668331 - ], - [ - -0.469353107783098, - 1.3744417190633849, - -0.1252238757083948 - ], - [ - -0.43205598328621986, - 1.4281549809525558, - 0.13274238723171736 - ], - [ - -0.36483466141178356, - 1.4105000535852616, - 0.34374999122516675 - ], - [ - -0.313728960178335, - 1.3939088854623198, - 0.4728694697759983 - ], - [ - -0.29955838395242357, - 1.4058643376407431, - 0.5406456017231612 - ], - [ - -0.32257406832255126, - 1.4456722447080805, - 0.5546759570303663 - ], - [ - -0.37545666113832976, - 1.5161354953470942, - 0.5024705116286105 - ], - [ - -0.43324460360721473, - 1.5941944773974204, - 0.38561704410192954 - ], - [ - -0.47391491005719866, - 1.6424005153914434, - 0.2212084131360136 - ], - [ - -0.6841726429601156, - 1.5838245150762238, - 0.01621955673238047 - ], - [ - -0.6821316997454804, - 1.5427887850150175, - -0.1816636489556012 - ], - [ - -0.6617710431069658, - 1.4525236462228028, - -0.3585296697923398 - ], - [ - -0.6321139373736937, - 1.3235142573186267, - -0.4939216083288633 - ], - [ - -0.6058618470047725, - 1.190271181331637, - -0.5709036739366244 - ], - [ - -0.5954600914630341, - 1.1028423682786135, - -0.5856833795363803 - ], - [ - -0.5975733410278727, - 1.0813193681197588, - -0.5512364836001237 - ], - [ - -0.6057407956865102, - 1.1319398755368204, - -0.47208905217086145 - ], - [ - -0.6211830172087066, - 1.2513380653786104, - -0.31668575508718805 - ], - [ - -0.618547473470764, - 1.3616943851076453, - -0.0682309264747373 - ], - [ - -0.5646947498871849, - 1.3766548768561522, - 0.2045222657529825 - ], - [ - -0.4852084319498988, - 1.3297622981328763, - 0.40667006681816065 - ], - [ - -0.43415405008188335, - 1.3010503773229694, - 0.5204069569087469 - ], - [ - -0.42917213742987265, - 1.3086214327107077, - 0.5761326503675642 - ], - [ - -0.4672434736538112, - 1.3517557328704344, - 0.5778439563296336 - ], - [ - -0.5382887604282198, - 1.4310679577992103, - 0.5136095677728866 - ], - [ - -0.6118939300437164, - 1.5164399389169911, - 0.38694266149464246 - ], - [ - -0.6618847674275551, - 1.5729463421960617, - 0.21375614530994247 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.4183334474213871, - 0.052387569279206764, - -0.002365350613567475, - 0.0004439294866110132, - 3.847069713097867e-05, - -0.0001647361973672425, - 1.1040231266559642e-05, - 0.22501241323579801, - -0.08196116395940344, - 0.0012937900172803757, - 0.0007614684721251686, - -0.00015985537302605002, - -8.684427753126741e-05, - -4.9575034365979875e-05, - 0.07134638199956524, - 0.05587238316565995, - 0.015205940922876237, - -0.002371268952681312, - -0.0005497472898352344, - 8.508370218929298e-05, - 7.27492498130951e-05, - -0.020200519246911606, - -0.005478918166746679, - -0.0024315165337560523, - -0.0014283902274618632, - 0.0005807667995924284, - -7.816896384167008e-05, - -4.23124896032637e-05, - 0.000561423951143783, - 0.006837384703272365, - 0.0015077347653355006, - -0.000842153176718733, - 0.0007039577295623424, - 2.6285526985462738e-05, - -4.5282388903226576e-05, - -0.0026830434904545736, - -0.0030714707318825166, - -0.0014774746941369804, - 0.000106945561230201, - 0.0002742362102704643, - -0.0001598464309079722, - 7.479486622767683e-05, - 0.0014921661710570664, - 9.27681172089181e-05, - 0.0006574582708065803, - 0.00033042146980678897, - 0.00012048617077141834, - -6.633407640338113e-05, - 1.2395926329742647e-05, - 0.18303928632153815, - -0.0030243128728945313, - -0.0010693661934002053, - -0.00031235361655354403, - -9.439777903971796e-06, - -3.4842514617026226e-06, - -0.05071878189748229, - -0.014922079793963868, - 0.003088625133249179, - 0.00037330848198598393, - 4.094473993745899e-05, - -0.00016118307240133622, - 0.008251799566418609, - 0.004175906771417146, - 0.0020805267401470123, - -0.000689043329783529, - -3.278473978081429e-05, - 2.001379523979194e-05, - -0.0030170738751734718, - -0.0017244272138914926, - 0.0008571332532676319, - -0.0009469279065301034, - 6.799950119760239e-05, - 5.239196421691887e-05, - 0.002246940473737618, - 0.0019204641729435752, - 0.000216277804549954, - -0.00021423514731181654, - 0.0001732593132270218, - -8.772431457357215e-05, - -0.00026985125019818166, - -0.0003869414548404122, - -0.00039450956635891693, - -0.00013292849982498217, - 7.711229600255198e-05, - -1.1050260787157224e-05, - -0.013503099456005526, - 0.002012574521858745, - 0.0004842225325187824, - 0.00021124066546592037, - -3.124518660075071e-06, - -4.9024826975072124e-05, - 0.037463475314116375, - 0.00011533821979579776, - -0.0007962419169864703, - 0.00018020209518361004, - -0.00022548439871986252, - 1.4905774331272691e-05, - -0.033384165755092045, - -0.0017110799464190756, - 0.0008506142221672871, - -0.00010240972124609714, - -0.0002793859236695322, - -4.4728560753831786e-05, - 0.0015610568469049467, - 0.0019527177358610753, - -0.0004512577851105132, - -0.00034401978898028593, - 0.00011943204586966553, - 0.00010941161243749911, - -0.0012062903594664285, - 0.0009267097012744703, - -0.0001340920041430472, - 0.00014177274029079118, - 1.969121854553187e-05, - 3.31657005651231e-05, - 0.000565045401497968, - 0.00039661264813274573, - -8.916819523063751e-05, - 9.468554310536906e-05, - 3.9127569064174596e-06, - -5.1400588113984286e-05, - -0.00037567536189979676, - -7.195471452361394e-05, - -1.1270476482385197e-05, - 5.5443124474619804e-05, - 2.9506322238461604e-05, - 2.9882070773230358e-05, - 0.040203048141142554, - 0.07267377547050853, - -0.004175759899315237, - 0.00012993196569624735, - 0.00021959127063992076, - -0.0001500081549257967, - 0.00014373470313936289, - 0.00813011275127179, - -0.039685947731062494, - -0.001951633730951176, - 0.0011248103950259444, - 0.00022053690122369928, - -6.0164708858643484e-05, - -3.71873462290079e-05, - -0.0037186982760082066, - -0.0005832298284775897, - 0.0022822710076538253, - -0.0012183275550965791, - -0.00016293162623716225, - 2.5169331711028195e-05, - 7.915607690426625e-05, - 0.000918519846650231, - 0.001265047061497063, - -0.0005755863356141508, - -0.0008010891498502416, - 6.722417535381997e-05, - 6.934662088927672e-05, - 3.999337653646465e-05, - -0.00046195488347652587, - 0.00013752144801752424, - 0.00014961347059713352, - -0.00020531858792590513, - 0.0001867711604501237, - 8.863248124106529e-06, - -6.87919595968061e-05, - 0.00038559862346186754, - 7.073292678291582e-05, - 5.006451997730643e-05, - -0.0001755047824648728, - 1.0292073149871342e-05, - 1.686770952905448e-05, - 3.4121745930988073e-05, - 0.03439950578009933, - -0.004861408894612787, - 0.0016555103557182832, - 0.00020109942676342624, - -0.00014902958012748637, - 3.733729757761701e-05, - -0.10898528758941871, - 0.0030527066000663816, - -0.0002462185093631748, - 1.2245254724796129e-05, - -3.318281188892664e-05, - -1.1246314144648673e-05, - 0.017222913745123997, - 0.014671439265498413, - -0.0030115093530430114, - -0.0003944910569573231, - 5.874650927742484e-05, - 3.9630969064942235e-05, - -0.00444459926294435, - -0.004904825464970526, - -0.002062007907809263, - 0.000760683820141647, - 5.388258441420983e-05, - 1.1130412058819574e-06, - 0.005284757966110396, - 0.0027943709485117414, - -0.0014628038309768712, - 0.0008475892864238522, - -7.46972614529083e-05, - -4.000679338631137e-05, - -0.000371957611725127, - -0.0013666587769438727, - -0.00018774160708365446, - 0.00027951771355731655, - -0.0001759599938280632, - 6.127191845301726e-05, - -0.0008196926997911618, - 0.0005241166070605024, - 0.00032091504507440944, - 0.00010651608049730805, - -9.903153432319753e-05, - 2.985533204454452e-05, - -0.4331811555788784, - -0.18144382976526027, - 0.00012218835066672986, - -0.00020391471331167055, - -0.0001992548907811752, - -0.00014128451203311243, - 6.911579595193833e-05, - 0.0068668873405491005, - 0.01445003352969158, - 0.013997607867936438, - -0.0015263495692325571, - -0.0006206497636833785, - 0.00014568639563191193, - 7.526501052071507e-05, - -0.011112446695702624, - -0.00876864635552171, - -0.002690996955230556, - -0.0016662664456678323, - 0.0007005586984359808, - 0.00010094297552649102, - 3.498332830747639e-05, - 0.004022710731593716, - 0.006469707224580876, - 0.0028149588403165705, - -0.0013966401916595927, - 0.0007560588880635656, - -3.9641553680658656e-05, - -5.657587223162801e-05, - -0.0010033037254028622, - -0.0017017065443636088, - -0.0013191469191981009, - 6.173463755108067e-05, - 0.0002679698057375694, - -0.00018275794121493176, - 5.155318824087058e-05, - 0.0006913051481714409, - -0.0007064310254757037, - 0.0004831507824289577, - 0.0002366675931254131, - 0.00011085916298014592, - -7.050658736856433e-05, - 2.2923533132770614e-05 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface6": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -2.308711308988738, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_5.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_5.vts deleted file mode 100644 index 4a977522c..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_5.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_6.json b/examples/2_Intermediate/inputs/input_ncsx/surface_6.json deleted file mode 100644 index 26b82c11b..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_6.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface7" - }, - { - "iota": -0.4495474245205908, - "G": 13.887480382084156 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.7402302347007024, - 0.0, - 0.0 - ], - [ - 1.7058570041562326, - 0.015574951416036105, - -0.2193798075397688 - ], - [ - 1.6104140498881088, - 0.03756549611469929, - -0.4080067105276916 - ], - [ - 1.4709187504983297, - 0.07287643767952254, - -0.5464582762261487 - ], - [ - 1.3348616585259394, - 0.11240528312761051, - -0.6209214412116206 - ], - [ - 1.2625072382215734, - 0.13774086524011123, - -0.6246545878330929 - ], - [ - 1.2599605289780382, - 0.1382578392998912, - -0.5729727150195244 - ], - [ - 1.3211684968049722, - 0.11011914603684952, - -0.47246202072520826 - ], - [ - 1.4368888565470295, - 0.05933059111366294, - -0.28412841775886427 - ], - [ - 1.5035774432167162, - 2.111505465038396e-17, - -1.0735424551160511e-16 - ], - [ - 1.4368888565470295, - -0.0593305911136629, - 0.2841284177588641 - ], - [ - 1.3211684968049724, - -0.11011914603684944, - 0.47246202072520804 - ], - [ - 1.259960528978038, - -0.13825783929989116, - 0.5729727150195242 - ], - [ - 1.2625072382215734, - -0.13774086524011123, - 0.6246545878330929 - ], - [ - 1.3348616585259392, - -0.11240528312761058, - 0.6209214412116207 - ], - [ - 1.4709187504983294, - -0.07287643767952266, - 0.5464582762261492 - ], - [ - 1.6104140498881085, - -0.03756549611469933, - 0.40800671052769194 - ], - [ - 1.7058570041562322, - -0.01557495141603613, - 0.21937980753976938 - ], - [ - 1.7256376665488444, - 0.2016012300898992, - -0.02090027466329247 - ], - [ - 1.7008254909730414, - 0.2159174352161673, - -0.23726777902971893 - ], - [ - 1.6140375239526754, - 0.23132358742080497, - -0.4197528510582566 - ], - [ - 1.483763956051522, - 0.2564142621684157, - -0.5511234280453176 - ], - [ - 1.3644955506075578, - 0.28362843273312255, - -0.6176993443866384 - ], - [ - 1.3077057972003576, - 0.29661727896712897, - -0.6107876702509323 - ], - [ - 1.3101619621933136, - 0.28617222143336873, - -0.5466802982944274 - ], - [ - 1.3689728770050793, - 0.252059262104719, - -0.42791121851444797 - ], - [ - 1.4623816125018634, - 0.20184425230102127, - -0.21700610344350782 - ], - [ - 1.480574440522177, - 0.14239017923258776, - 0.07209281417258916 - ], - [ - 1.3737088284165382, - 0.07855991704171869, - 0.33337198149113956 - ], - [ - 1.249025822658004, - 0.026522214339931665, - 0.49256752476858623 - ], - [ - 1.1928334118888628, - 0.0048478591487777865, - 0.5747482077572273 - ], - [ - 1.2043512331596042, - 0.016683574015398456, - 0.615557729381082 - ], - [ - 1.2914971053681954, - 0.05572592592991116, - 0.6046919937729073 - ], - [ - 1.439744814078288, - 0.10793020032286406, - 0.5261718572244019 - ], - [ - 1.5850016725600584, - 0.15232987205978096, - 0.38556032083316105 - ], - [ - 1.684790902389834, - 0.1814988917911921, - 0.1970338023020704 - ], - [ - 1.6824290511842894, - 0.3984812114723389, - -0.0401075443383495 - ], - [ - 1.6679481935133171, - 0.4160385548393808, - -0.24812441208369487 - ], - [ - 1.5927656368679763, - 0.42603073057910945, - -0.42036392819148355 - ], - [ - 1.4777071299903843, - 0.4395514328909597, - -0.541978671156464 - ], - [ - 1.3793493488297306, - 0.4544824340664603, - -0.5965567526507904 - ], - [ - 1.33525350362928, - 0.45491400122647374, - -0.5756426680052781 - ], - [ - 1.3369525560988966, - 0.4333284751212648, - -0.4980434321618357 - ], - [ - 1.3841188054845486, - 0.3932031184128618, - -0.3628993542176371 - ], - [ - 1.4439007266878636, - 0.3395544058389125, - -0.14161366666903966 - ], - [ - 1.4154144649857465, - 0.27505447340067063, - 0.1321472383828179 - ], - [ - 1.283497786902354, - 0.20662099606223255, - 0.3583059408519841 - ], - [ - 1.1603626755982182, - 0.15444828979623348, - 0.4879613009337175 - ], - [ - 1.1126883915842478, - 0.13886195324020395, - 0.5542909832443509 - ], - [ - 1.1356536152223764, - 0.16269146433669449, - 0.5865694120697543 - ], - [ - 1.2362060299039181, - 0.2164939999755274, - 0.5709436041428654 - ], - [ - 1.3922841110860231, - 0.28184933885870206, - 0.4911152456242783 - ], - [ - 1.53902508551775, - 0.3355762098690725, - 0.3536964905257767 - ], - [ - 1.6380721140671306, - 0.3716797424631452, - 0.17140360320598433 - ], - [ - 1.6140427661855599, - 0.585647125018574, - -0.05539379781744868 - ], - [ - 1.6065246588366635, - 0.6083587079005164, - -0.25095212495071145 - ], - [ - 1.545463804355573, - 0.6156342127092158, - -0.4122613089410039 - ], - [ - 1.4532364238396036, - 0.620665409534236, - -0.5211460539728151 - ], - [ - 1.3757962351328958, - 0.6242987736845237, - -0.5573538795497162 - ], - [ - 1.3370259803663291, - 0.6100067569224906, - -0.5201882285188424 - ], - [ - 1.3319366849296335, - 0.5739042940319335, - -0.4308196456988431 - ], - [ - 1.3594509452115475, - 0.5234024291000147, - -0.28548277998556965 - ], - [ - 1.3807472567647636, - 0.4619257431236637, - -0.0705923898228142 - ], - [ - 1.3172020986588422, - 0.392277485047036, - 0.17017164278576027 - ], - [ - 1.1776328488327157, - 0.32414986827130615, - 0.35749616899591413 - ], - [ - 1.0628954620435764, - 0.27720009943735924, - 0.4629945490356855 - ], - [ - 1.025390761244579, - 0.26967347591324403, - 0.5183964394305318 - ], - [ - 1.0616075977629063, - 0.303564946726764, - 0.5453024050461416 - ], - [ - 1.1735432269366282, - 0.3691304374827709, - 0.5258724110436973 - ], - [ - 1.332329500760001, - 0.44648618320167976, - 0.4458102358040153 - ], - [ - 1.4753871484342704, - 0.5092080157920826, - 0.3154809945204026 - ], - [ - 1.5696680653371482, - 0.5516099281572171, - 0.14431534691705616 - ], - [ - 1.5259204811764402, - 0.7613436620413225, - -0.06595789602193514 - ], - [ - 1.5221185981947405, - 0.7881064816032654, - -0.2472794142417303 - ], - [ - 1.4774739228954403, - 0.7987167343506226, - -0.3962828228208106 - ], - [ - 1.410182998359604, - 0.8010256401908309, - -0.48491945395813446 - ], - [ - 1.3457395269013355, - 0.7896634328304655, - -0.49575719954976044 - ], - [ - 1.3027601045826078, - 0.7523606803442766, - -0.4454031588797432 - ], - [ - 1.2868251965241788, - 0.6959103095276455, - -0.35279624136077087 - ], - [ - 1.2916685978389075, - 0.6326934766882801, - -0.20930897714010424 - ], - [ - 1.2788718440951823, - 0.5650520981423461, - -0.017222620825935418 - ], - [ - 1.197021852049817, - 0.4957178474155704, - 0.18137339595018268 - ], - [ - 1.0656128236692484, - 0.4359509160852478, - 0.3345404293790567 - ], - [ - 0.9661553399008728, - 0.40182875965171677, - 0.425495699019192 - ], - [ - 0.9405966592507751, - 0.4036786515537175, - 0.4768749240226683 - ], - [ - 0.9875179707844186, - 0.4428895366834234, - 0.5003263205159295 - ], - [ - 1.1053377066470058, - 0.5159748895190525, - 0.4756424482830472 - ], - [ - 1.2616327646360548, - 0.6033620230089682, - 0.39600521025985747 - ], - [ - 1.3969795178917792, - 0.6742624453494092, - 0.2756543022868004 - ], - [ - 1.484299452704361, - 0.7225686938134969, - 0.11840570186691095 - ], - [ - 1.4215532865277005, - 0.9268565931866678, - -0.0723315698221223 - ], - [ - 1.421063761587728, - 0.9577641146584395, - -0.23645544525362477 - ], - [ - 1.3916321778024625, - 0.9766374320042472, - -0.36526698534834584 - ], - [ - 1.3403624455304748, - 0.9739117637976664, - -0.4252864912506175 - ], - [ - 1.2770538349064329, - 0.9350802632905045, - -0.4146145643670294 - ], - [ - 1.2261240747141857, - 0.8661634693739361, - -0.3636095889523993 - ], - [ - 1.2005533162058675, - 0.7904290644028269, - -0.2789297402791997 - ], - [ - 1.18615343548747, - 0.7191861365909772, - -0.149181676993644 - ], - [ - 1.1509996184291396, - 0.6518229653586853, - 0.010291694165370758 - ], - [ - 1.06658869761164, - 0.5914448419406754, - 0.1681066574950465 - ], - [ - 0.9539017334705615, - 0.5471876098923234, - 0.297259035193847 - ], - [ - 0.8743963348421129, - 0.5280189731778528, - 0.3844394812739406 - ], - [ - 0.859557085686704, - 0.5373856860257885, - 0.4372331613292714 - ], - [ - 0.9116901763897614, - 0.5798615172140976, - 0.4553656238445187 - ], - [ - 1.03079954992947, - 0.6589812558262546, - 0.42343921031549914 - ], - [ - 1.1809261420225101, - 0.7542915217511955, - 0.3465166816725625 - ], - [ - 1.3051065534880697, - 0.8324714946708515, - 0.2376967735368004 - ], - [ - 1.383852088260522, - 0.8862100261533068, - 0.09488177288830879 - ], - [ - 1.3034457437615763, - 1.083675972220169, - -0.07444581585190804 - ], - [ - 1.3055812598179881, - 1.1192555248493006, - -0.21408099497190458 - ], - [ - 1.2827296366829364, - 1.1399521370950119, - -0.31299145352454605 - ], - [ - 1.2334848395370597, - 1.1180564955378625, - -0.34861370028154376 - ], - [ - 1.166893047776198, - 1.0424766384747108, - -0.33488456154866825 - ], - [ - 1.1135138471570736, - 0.9453044392612738, - -0.29624761075225237 - ], - [ - 1.0828078256387446, - 0.8584871890149435, - -0.22476120524412738 - ], - [ - 1.055527892768143, - 0.7856022385304074, - -0.11566013589020135 - ], - [ - 1.0109086795702906, - 0.7263688002610805, - 0.009908655472009973 - ], - [ - 0.9348933195028933, - 0.6836893081104073, - 0.13726038371482424 - ], - [ - 0.8435903253439936, - 0.6577510613674155, - 0.2542919239702618 - ], - [ - 0.7813338064317306, - 0.6511321986403572, - 0.34287811617174124 - ], - [ - 0.7740301007455208, - 0.6674700035055989, - 0.39609862572462934 - ], - [ - 0.8304781617358217, - 0.7150143844779059, - 0.4075793793707672 - ], - [ - 0.950211995534766, - 0.7999292566808192, - 0.3719149707920161 - ], - [ - 1.0913811705120164, - 0.9007230844594116, - 0.3019462797450627 - ], - [ - 1.2014756490943759, - 0.9836898736288169, - 0.20463156411619002 - ], - [ - 1.2698987066856737, - 1.0410232583816386, - 0.07470098679936467 - ], - [ - 1.173341785769199, - 1.2331377817383493, - -0.0678506715866868 - ], - [ - 1.1718927345516112, - 1.2680420490111741, - -0.1759374357465704 - ], - [ - 1.1442188961677688, - 1.2728596311772937, - -0.24889536568504442 - ], - [ - 1.0918596260388407, - 1.2198833301720806, - -0.28018406933254525 - ], - [ - 1.0279034705183085, - 1.1124500086435716, - -0.2801027789367992 - ], - [ - 0.978656377197632, - 0.9970723041173372, - -0.2568256028599403 - ], - [ - 0.9459208061635801, - 0.9051217033416749, - -0.19944520725589976 - ], - [ - 0.9119899906533269, - 0.8363433662550539, - -0.11318249922069373 - ], - [ - 0.8673740365144367, - 0.7930937966188915, - -0.015044168169712505 - ], - [ - 0.8045722620788492, - 0.7730099473537863, - 0.09573805517239561 - ], - [ - 0.7318117729503928, - 0.7648279067682047, - 0.20833645160620473 - ], - [ - 0.6828323072324797, - 0.7701257168500281, - 0.29515456111661764 - ], - [ - 0.6836484680508297, - 0.7958781150177584, - 0.3454663012151366 - ], - [ - 0.7455000388829833, - 0.8498646716595732, - 0.3553121164270347 - ], - [ - 0.8634800161752264, - 0.9396132833833367, - 0.32416656283005996 - ], - [ - 0.993364500719075, - 1.0440554248583778, - 0.2655475098211498 - ], - [ - 1.0885371344662567, - 1.1277799140738574, - 0.17961440212123794 - ], - [ - 1.1455685494212022, - 1.186365330485529, - 0.06062289076104869 - ], - [ - 1.0275744396241633, - 1.3724251594190378, - -0.043151157718258816 - ], - [ - 1.0125823603626276, - 1.3920019131859702, - -0.12621229866290176 - ], - [ - 0.977396598158005, - 1.367783132085871, - -0.194947542947465 - ], - [ - 0.9284279364402485, - 1.2867501513386326, - -0.23999626758803197 - ], - [ - 0.8738438170322024, - 1.1582569455746559, - -0.2565579562696111 - ], - [ - 0.8312497737000512, - 1.0302748083322488, - -0.24712756736600594 - ], - [ - 0.7993608464022512, - 0.9369275842696574, - -0.20504421816617951 - ], - [ - 0.7647095456914907, - 0.8784598049924632, - -0.1384099301892158 - ], - [ - 0.7246768287746658, - 0.8555931928647699, - -0.05623789319811258 - ], - [ - 0.6740317941202304, - 0.8581467435706501, - 0.04880011500334062 - ], - [ - 0.617169662514404, - 0.866521060913295, - 0.1579895100202265 - ], - [ - 0.5832397784371627, - 0.8846699056227635, - 0.2390747151792601 - ], - [ - 0.5947873145928388, - 0.9218496222732231, - 0.2882880537116749 - ], - [ - 0.6594660173646497, - 0.9827823490893004, - 0.304201589980261 - ], - [ - 0.7709872184839537, - 1.0770742116563525, - 0.2843499131055834 - ], - [ - 0.8879864980629963, - 1.1843086606161113, - 0.23974773697380766 - ], - [ - 0.9688702233936695, - 1.2669810698709838, - 0.16517590043878475 - ], - [ - 1.012973244796695, - 1.3260176421797045, - 0.05978651564612899 - ], - [ - 0.8604071817241601, - 1.4902689539433929, - -1.7598949661357686e-17 - ], - [ - 0.8307973676825338, - 1.480722212223664, - -0.08190713716927991 - ], - [ - 0.7954545898106665, - 1.4298073238307822, - -0.1672217133352955 - ], - [ - 0.7559380743582361, - 1.3311000452917796, - -0.2289945146899045 - ], - [ - 0.7120665403294911, - 1.187913326687164, - -0.2595881023516155 - ], - [ - 0.6774670270610709, - 1.0504626727306139, - -0.2648033294921933 - ], - [ - 0.6504867607087785, - 0.9597107087735838, - -0.23745139739522442 - ], - [ - 0.6193776393585214, - 0.915534603037563, - -0.18323595855709218 - ], - [ - 0.5837338667895391, - 0.9141382047814168, - -0.10560714264370179 - ], - [ - 0.5415882611442585, - 0.9380583850847367, - -2.2575521202496584e-17 - ], - [ - 0.4997999745158391, - 0.9625974600797705, - 0.10560714264370177 - ], - [ - 0.48318740459497067, - 0.9941640717392971, - 0.18323595855709204 - ], - [ - 0.5058904737275035, - 1.043193413986043, - 0.23745139739522442 - ], - [ - 0.5709938467814754, - 1.111934992026514, - 0.2648033294921934 - ], - [ - 0.6727298482404218, - 1.2106243764538178, - 0.25958810235161556 - ], - [ - 0.7747974170221803, - 1.3202115987280119, - 0.2289945146899047 - ], - [ - 0.8405221700491677, - 1.4037875442483583, - 0.16722171333529565 - ], - [ - 0.8669443678923193, - 1.4598527319221464, - 0.08190713716928008 - ], - [ - 0.6747678330377133, - 1.5761181487036027, - 0.04315115771825871 - ], - [ - 0.6418783415956207, - 1.540269384437743, - -0.059786515646128774 - ], - [ - 0.6128026809254244, - 1.4725567613647137, - -0.16517590043878452 - ], - [ - 0.5816481369839777, - 1.3611731958481916, - -0.23974773697380758 - ], - [ - 0.5472800198135221, - 1.2062316230283836, - -0.2843499131055832 - ], - [ - 0.5213814720199559, - 1.0625054985149864, - -0.3042015899802609 - ], - [ - 0.5009515340612813, - 0.9760257354227373, - -0.2882880537116748 - ], - [ - 0.47452672301431403, - 0.9474354174355721, - -0.2390747151792601 - ], - [ - 0.4418444204079547, - 0.9677451366391898, - -0.15798951002022638 - ], - [ - 0.40616098304695847, - 1.0128020284518469, - -0.04880011500334052 - ], - [ - 0.3786270259385968, - 1.0553851396851912, - 0.05623789319811266 - ], - [ - 0.3784137344812518, - 1.101487795581519, - 0.1384099301892158 - ], - [ - 0.4117226662827829, - 1.1607305919098083, - 0.2050442181661794 - ], - [ - 0.47661927004484556, - 1.2350208250804344, - 0.24712756736600588 - ], - [ - 0.5661580304613207, - 1.3358994172771756, - 0.25655795626961103 - ], - [ - 0.6501443511626027, - 1.4474172542097354, - 0.23999626758803208 - ], - [ - 0.6958366401752086, - 1.530341849620258, - 0.194947542947465 - ], - [ - 0.6992178387542773, - 1.5729230040910294, - 0.12621229866290176 - ], - [ - 0.4812577524672017, - 1.6327126846670994, - 0.0678506715866868 - ], - [ - 0.4546382396589883, - 1.5852741308180152, - -0.06062289076104843 - ], - [ - 0.4324174882326637, - 1.5065907684474245, - -0.17961440212123778 - ], - [ - 0.407496270526773, - 1.3823066052695536, - -0.26554750982114955 - ], - [ - 0.3819889650556633, - 1.2176022713596124, - -0.32416656283005985 - ], - [ - 0.36325437599461985, - 1.0705543080247373, - -0.3553121164270347 - ], - [ - 0.3474264318960376, - 0.9899959980992121, - -0.3454663012151366 - ], - [ - 0.32553228128358624, - 0.9764129830130823, - -0.29515456111661764 - ], - [ - 0.2964545103093453, - 1.016181539547672, - -0.20833645160620481 - ], - [ - 0.267160120747026, - 1.0832849918174878, - -0.09573805517239566 - ], - [ - 0.25315235719859064, - 1.1477148485139992, - 0.015044168169712456 - ], - [ - 0.2682996061368062, - 1.2079781830304404, - 0.11318249922069355 - ], - [ - 0.31089798552874287, - 1.2717522997767532, - 0.1994452072558996 - ], - [ - 0.3741617561766815, - 1.3460774362874637, - 0.2568256028599402 - ], - [ - 0.44945823266639695, - 1.4464155224288295, - 0.2801027789367991 - ], - [ - 0.5105201405627615, - 1.555519838602253, - 0.2801840693325452 - ], - [ - 0.5302193279673434, - 1.6273524471601237, - 0.24889536568504453 - ], - [ - 0.5122102602347435, - 1.648909903137696, - 0.1759374357465706 - ], - [ - 0.2867680495326781, - 1.6706551126623115, - 0.07444581585190803 - ], - [ - 0.26660323434611394, - 1.6202761694136165, - -0.07470098679936434 - ], - [ - 0.2511625954608719, - 1.5323533709585364, - -0.2046315641161898 - ], - [ - 0.234358487660919, - 1.3955253611051084, - -0.3019462797450625 - ], - [ - 0.21765305974860946, - 1.2228723554542227, - -0.37191497079201585 - ], - [ - 0.20398154016124972, - 1.0767223775903763, - -0.4075793793707671 - ], - [ - 0.19103092892717694, - 1.0040647322922494, - -0.39609862572462934 - ], - [ - 0.17323012202869956, - 1.0022210245256504, - -0.34287811617174124 - ], - [ - 0.14783396583836247, - 1.0594461828183857, - -0.25429192397026174 - ], - [ - 0.12464564936797248, - 1.151486018573071, - -0.1372603837148242 - ], - [ - 0.12359949375737533, - 1.238656997544595, - -0.009908655472010091 - ], - [ - 0.15258754945318342, - 1.3069150888054721, - 0.11566013589020108 - ], - [ - 0.20206780169106175, - 1.3669826789272153, - 0.22476120524412718 - ], - [ - 0.2619007351319303, - 1.4369834987344055, - 0.29624761075225226 - ], - [ - 0.3193647278828068, - 1.5317973421109918, - 0.334884561548668 - ], - [ - 0.3515229082334621, - 1.6272574539909974, - 0.34861370028154354 - ], - [ - 0.34586269148117327, - 1.680852520102112, - 0.31299145352454605 - ], - [ - 0.3165130879365854, - 1.6902943001319195, - 0.2140809949719048 - ], - [ - 0.09190471210090319, - 1.6945295555595816, - 0.0723315698221223 - ], - [ - 0.07555435160697468, - 1.6415560765904105, - -0.09488177288830844 - ], - [ - 0.06838818556732464, - 1.5464911773016488, - -0.23769677353680024 - ], - [ - 0.06277254868450298, - 1.3998577998602417, - -0.34651668167256217 - ], - [ - 0.05529473319857377, - 1.2221892243616141, - -0.423439210315499 - ], - [ - 0.04632971638951558, - 1.0794776117412979, - -0.4553656238445186 - ], - [ - 0.03561111288510922, - 1.0130911152204976, - -0.4372331613292714 - ], - [ - 0.020079677031138506, - 1.0212589255382, - -0.3844394812739406 - ], - [ - -0.0030724959324393286, - 1.0996969388456803, - -0.29725903519384705 - ], - [ - -0.021088090747922963, - 1.2194153284913765, - -0.1681066574950466 - ], - [ - -0.01100456244384393, - 1.3227063919851727, - -0.01029169416537087 - ], - [ - 0.029756746593636453, - 1.3868320762138238, - 0.1491816769936436 - ], - [ - 0.08425499155948052, - 1.4349242026333464, - 0.2789297402791995 - ], - [ - 0.13705753095080048, - 1.494936331581142, - 0.3636095889523993 - ], - [ - 0.17127634513380208, - 1.5735011946745616, - 0.4146145643670294 - ], - [ - 0.17325110572805186, - 1.64774381000686, - 0.42528649125061746 - ], - [ - 0.14997673750124438, - 1.693507534702919, - 0.36526698534834595 - ], - [ - 0.11891617333345676, - 1.7095593752616647, - 0.23645544525362513 - ], - [ - -0.10361728825016032, - 1.702157731874433, - 0.06595789602193516 - ], - [ - -0.11638688153035223, - 1.6467253797720636, - -0.11840570186691048 - ], - [ - -0.1145613524554844, - 1.5469509737355234, - -0.27565430228680005 - ], - [ - -0.10828954271348974, - 1.3942870359261017, - -0.39600521025985713 - ], - [ - -0.10582149128513427, - 1.215237978476665, - -0.4756424482830471 - ], - [ - -0.1102053955540444, - 1.0766604177346772, - -0.5003263205159295 - ], - [ - -0.12070236241442137, - 1.0164199274028054, - -0.4768749240226683 - ], - [ - -0.13508375612085802, - 1.0376294481820032, - -0.425495699019192 - ], - [ - -0.15526184370170137, - 1.1408232339386606, - -0.33454042937905665 - ], - [ - -0.1692066770536863, - 1.2845102564680244, - -0.18137339595018273 - ], - [ - -0.15008645059462145, - 1.3900615542422525, - 0.017222620825935234 - ], - [ - -0.09790567529870572, - 1.4349645573432592, - 0.20930897714010366 - ], - [ - -0.040736591455656376, - 1.462378465183664, - 0.3527962413607705 - ], - [ - 0.0001834096953832881, - 1.5044036857775487, - 0.44540315887974313 - ], - [ - 0.010998829820142261, - 1.5602763335886412, - 0.49575719954976033 - ], - [ - -0.01138294569184893, - 1.621767120659742, - 0.48491945395813446 - ], - [ - -0.047027979072333644, - 1.6788883178318137, - 0.3962828228208107 - ], - [ - -0.07853906514176884, - 1.7122466144110362, - 0.24727941424173056 - ], - [ - -0.2998360951733736, - 1.6906256008204885, - 0.05539379781744869 - ], - [ - -0.3071258219047147, - 1.635177384169751, - -0.14431534691705572 - ], - [ - -0.29670649673052396, - 1.5323267588572023, - -0.31548099452040235 - ], - [ - -0.27949637328859284, - 1.3770742854704396, - -0.44581023580401496 - ], - [ - -0.2670952772981708, - 1.2008834657076721, - -0.5258724110436973 - ], - [ - -0.26790884331760556, - 1.0711616218766307, - -0.5453024050461416 - ], - [ - -0.27915129975456915, - 1.0228511860002913, - -0.5183964394305319 - ], - [ - -0.2913854029774625, - 1.0590945214156153, - -0.4629945490356856 - ], - [ - -0.3080944038600273, - 1.1819348975558244, - -0.3574961689959142 - ], - [ - -0.31887878194601754, - 1.3368692218802516, - -0.17017164278576039 - ], - [ - -0.29033420017528394, - 1.426725072125792, - 0.070592389822814 - ], - [ - -0.2264456726026775, - 1.439020268301974, - 0.28548277998556926 - ], - [ - -0.16895264449218828, - 1.440443152397459, - 0.43081964569884296 - ], - [ - -0.14023164220812856, - 1.4629018429782803, - 0.5201882285188424 - ], - [ - -0.1472395200041784, - 1.5036238768983388, - 0.557353879549716 - ], - [ - -0.1891062000128808, - 1.5688723655170638, - 0.5211460539728152 - ], - [ - -0.2395770345327728, - 1.6462280215558778, - 0.41226130894100416 - ], - [ - -0.2764082337630074, - 1.6954705203089369, - 0.25095212495071184 - ], - [ - -0.4961196735262996, - 1.6562669041267137, - 0.040107544338349566 - ], - [ - -0.4971519579884234, - 1.604451935244589, - -0.17140360320598375 - ], - [ - -0.4788950201065597, - 1.5006229260544268, - -0.35369649052577634 - ], - [ - -0.4520533680515267, - 1.346678078915283, - -0.49111524562427794 - ], - [ - -0.4306137112062442, - 1.1788328261960623, - -0.570943604142865 - ], - [ - -0.42693186651672027, - 1.0648506128505633, - -0.5865694120697541 - ], - [ - -0.43608621666698, - 1.0330473902281079, - -0.554290983244351 - ], - [ - -0.4464251952645095, - 1.0821276995694549, - -0.4879613009337176 - ], - [ - -0.4628098619060388, - 1.214852187189661, - -0.35830594085198425 - ], - [ - -0.46950307110334116, - 1.3633121202619518, - -0.13214723838281825 - ], - [ - -0.4278876219205021, - 1.4202319127739578, - 0.14161366666903918 - ], - [ - -0.3515355133494751, - 1.3952836066118224, - 0.36289935421763647 - ], - [ - -0.2932028104112597, - 1.3744991147968169, - 0.4980434321618354 - ], - [ - -0.27365967021528825, - 1.3838204552483708, - 0.575642668005278 - ], - [ - -0.2960813409395241, - 1.4217927938133004, - 0.5965567526507903 - ], - [ - -0.3581908578417697, - 1.4995076303705468, - 0.541978671156464 - ], - [ - -0.42742938295963484, - 1.5923908690921222, - 0.4203639281914838 - ], - [ - -0.4736741393119889, - 1.6525047851985857, - 0.24812441208369534 - ], - [ - -0.6882270465823768, - 1.595246672003549, - 0.02090027466329256 - ], - [ - -0.685212800145021, - 1.549821167430101, - -0.19703380230206982 - ], - [ - -0.6605792973210246, - 1.4488166495077257, - -0.38556032083316066 - ], - [ - -0.6264021117239997, - 1.3008206841201337, - -0.5261718572244014 - ], - [ - -0.5974884851793839, - 1.146332265127881, - -0.6046919937729069 - ], - [ - -0.5877272176565483, - 1.0513405500030322, - -0.6155577293810819 - ], - [ - -0.5922183367676205, - 1.0354479667530112, - -0.5747482077572276 - ], - [ - -0.6015439999460048, - 1.0949491995745544, - -0.49256752476858656 - ], - [ - -0.6188195303309421, - 1.2289467013325397, - -0.33337198149113995 - ], - [ - -0.6169737077962474, - 1.3534101673024315, - -0.07209281417258961 - ], - [ - -0.5563885561503713, - 1.3673817526043759, - 0.21700610344350738 - ], - [ - -0.4661967142606924, - 1.3115949196306285, - 0.42791121851444747 - ], - [ - -0.40724856747793337, - 1.2777196530481614, - 0.546680298294427 - ], - [ - -0.39697479981322903, - 1.280815080535256, - 0.610787670250932 - ], - [ - -0.4366183473213281, - 1.3235020265435415, - 0.6176993443866383 - ], - [ - -0.5198207130952689, - 1.4131844102445232, - 0.551123428045318 - ], - [ - -0.6066866587753692, - 1.5134592921147538, - 0.4197528510582569 - ], - [ - -0.6634227614693381, - 1.580916800194878, - 0.23726777902971946 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.406258963977428, - 0.04295097851840034, - -0.002561310463938891, - 0.0007989227366976135, - 2.2543520945711195e-05, - -0.00028892287799783, - -1.6684013875857696e-05, - 0.24626556604581293, - -0.09038345777288276, - 0.0013962490589759578, - 0.0009726593174076946, - -0.0002633747215592735, - -7.436829921981472e-06, - -4.863800779382658e-05, - 0.08560054473145134, - 0.06276731622862239, - 0.01751176981009032, - -0.002749473185477003, - -0.0007401399414573232, - 0.00022355997237510615, - 0.00011592974625896148, - -0.02311472344042543, - -0.003858202118640215, - -0.002206313785237374, - -0.0021758292232522867, - 0.0007250969391782909, - -0.00014805022711856863, - -9.925340393764767e-05, - -2.0663156544842605e-05, - 0.007170344472513412, - 0.001660080080589182, - -0.0014755034713530746, - 0.0009266432734855827, - 7.212907013801047e-05, - -8.640481700829985e-05, - -0.0028392188734555684, - -0.004611972624183941, - -0.0018146057209778806, - 0.00018086768770647662, - 0.00045983614809892514, - -0.00021484062806856796, - 0.0001120379222678716, - 0.002059028464668953, - 0.00022762062987144232, - 0.0010006701183455553, - 0.0003722233867389176, - 0.00020503925702097187, - -0.00011499743538359502, - 1.3630326104209359e-05, - 0.19897955452616903, - -0.0044659990354148525, - -0.0013596864480935704, - -0.00037765276564353373, - -7.762264018275258e-05, - 2.6504959396566405e-05, - -0.05751346667142594, - -0.017951882197926195, - 0.003711371801445263, - 0.0007023078506876504, - 4.3942141403155366e-05, - -0.00027318904220267296, - 0.007653964046286689, - 0.0043433740406934465, - 0.002679354885711715, - -0.0008722754587014892, - -4.279095217223719e-05, - 6.135307718901577e-05, - -0.0025551202946962376, - -0.001893861063495939, - 0.001356851015248003, - -0.0012663164283912322, - 5.431291116243608e-05, - 9.657396771453867e-05, - 0.0037834357289587635, - 0.0026163095705066587, - 0.000227925254830098, - -0.0003916328932614321, - 0.00025593323292367163, - -0.00014370553946030845, - -0.0006167212871765763, - -0.000538479424186674, - -0.0005023476313143821, - -0.00021684986411474468, - 0.0001290855662294289, - -1.5270750427133104e-05, - -0.009513832700093733, - 0.0013520916796041062, - 0.0006254049585417375, - 0.00023932730940158864, - 9.212419131132556e-05, - -4.14860583944361e-05, - 0.04102255072309463, - 0.0004509465941488149, - -0.0007768357787799466, - 0.00019749727382769257, - -0.0003269223164798194, - -2.4198825193406168e-05, - -0.037799322894848705, - -0.0020174682677388763, - 0.0008272819657541414, - -0.00015201707025305517, - -0.00037323943359663373, - -0.00010086416926990942, - 0.0011703693002562234, - 0.0017978110212705635, - -0.0004822850160628523, - -0.000485861314533565, - 0.00026744335002549656, - 0.00015623893102179414, - -0.0011612315155666564, - 0.0013690142110910294, - -0.000234341920032412, - 0.00012389654419267746, - -2.167962664550075e-06, - 4.2251949329651374e-05, - 0.0009748855204375539, - 0.0006445572933191273, - -0.00018516537452718478, - 9.98101795756474e-05, - 1.574447101771992e-05, - -9.070955871409554e-05, - -0.00039683851818690717, - -8.75827939070776e-05, - 3.061153429706257e-05, - 2.9565996728849588e-05, - 5.1656507749056926e-05, - 4.443454026130757e-05, - 0.044203755873270724, - 0.08230932956725114, - -0.004480356838857705, - 3.006559723220991e-05, - 0.00013249958970657112, - -0.0002539953777435535, - 0.00022371854034226453, - 0.010440489230858031, - -0.04680174396454428, - -0.002008812893606749, - 0.001573901857679378, - 0.00030427083292534527, - -4.6847587167997824e-05, - -9.774951344130324e-05, - -0.0048095057590845265, - -0.0018315349770661193, - 0.0026625985421280863, - -0.0012386364535208216, - -0.00024742706111867955, - 3.524615635376639e-05, - 0.0001261118682532047, - 0.0008893276224414975, - 0.001753671323188433, - -0.0007623289813681504, - -0.0009528818397139852, - 7.774088146081922e-05, - 4.1110676119974126e-05, - 6.483810608870124e-05, - -0.00019225022387033298, - 0.00043241024469760977, - 0.00012249042445684188, - -0.00029338170578360024, - 0.0002711029043287161, - 4.0998036993231005e-05, - -0.00011478437884237744, - 0.0006406084806885246, - 0.00023374055087257495, - -3.0253136803766137e-05, - -0.0002605453188625945, - -3.1077533714312803e-07, - 2.889008663547656e-05, - 5.4214713648939503e-05, - 0.03062977966620271, - -0.006032502395003948, - 0.0019998370621691344, - 0.0003143547726694803, - -0.00019993541082625096, - 4.450222471583974e-05, - -0.11974439280454989, - 0.0045961133213577405, - -0.000326598355237115, - -9.60518978013122e-05, - 4.258848685383921e-06, - -1.3212028571938621e-05, - 0.015736914649712573, - 0.017931879494302815, - -0.003434064274252471, - -0.0006350469136993644, - 7.953593720664445e-05, - 6.366649876647115e-05, - -0.0054169372609551006, - -0.00562341046061577, - -0.002527640511583512, - 0.0010114478483572616, - 5.746935740830996e-06, - -8.831473520271327e-06, - 0.005290176540463956, - 0.003413153349656131, - -0.0022440562877789824, - 0.0011612545008709767, - -5.5855771090187666e-05, - -5.3688027629861904e-05, - -0.0013029251295502116, - -0.0015909347902231773, - -0.0003229535115397038, - 0.00046719039154972887, - -0.0002448113989290334, - 9.240086782869513e-05, - -0.0007335102440339875, - 0.0007065226310007519, - 0.0003660237376009781, - 0.00017798470772705882, - -0.00016689782001723554, - 4.479314533340742e-05, - -0.4611801275190255, - -0.19076693360116903, - 0.000803935588738174, - -0.0006873712763186186, - -0.00013682253772492685, - -0.0001557713447880891, - 6.243444143791703e-05, - 0.00271416813642511, - 0.011373256571074089, - 0.016900127180192757, - -0.0016418274525676153, - -0.0008900962457272901, - 0.00018213441349437237, - 0.00010327795338892219, - -0.012924419959006743, - -0.009803435645321773, - -0.0025938362394300227, - -0.0023306240281902517, - 0.0008488220509905624, - 0.0001232103477872181, - 4.501255578576383e-05, - 0.0041004787113504545, - 0.0069552800404799825, - 0.003649638003106337, - -0.0022285704098195243, - 0.0010652088072614747, - -2.591353283246865e-05, - -8.319943803311588e-05, - -0.001869041289089502, - -0.0029483319183411143, - -0.0012697383304758785, - 0.00010480287293521418, - 0.0004128026285357575, - -0.00026599156179524756, - 7.8625484279717e-05, - 0.0007029116640618813, - -0.0010076760771096215, - 0.0007054167229323628, - 0.0002722708485283385, - 0.00018597853009729237, - -0.00011854785325776304, - 3.453618249531067e-05 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface7": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -2.7112534817415535, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_6.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_6.vts deleted file mode 100644 index 50bab7950..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_6.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_7.json b/examples/2_Intermediate/inputs/input_ncsx/surface_7.json deleted file mode 100644 index 7fe371d57..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_7.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface8" - }, - { - "iota": -0.46234266441864263, - "G": 13.887480473705342 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.7499402073293184, - 0.0, - 0.0 - ], - [ - 1.7112329454055244, - 0.0175069501184205, - -0.24092930336339846 - ], - [ - 1.6035524331893802, - 0.039082824665151096, - -0.43750839347041953 - ], - [ - 1.444380080395193, - 0.08025848019338519, - -0.5783003405980436 - ], - [ - 1.2902364361740568, - 0.12814293847762973, - -0.6539922640822703 - ], - [ - 1.2158296073409671, - 0.1546875242708954, - -0.6527138562248416 - ], - [ - 1.2224801163540528, - 0.15275109905759388, - -0.5940178610898287 - ], - [ - 1.2934926539556355, - 0.12093360417952322, - -0.4894750754769963 - ], - [ - 1.421883569539514, - 0.06421043116529992, - -0.29511553090616055 - ], - [ - 1.496374743648688, - 2.2587609713637522e-17, - -1.1162620878528584e-16 - ], - [ - 1.421883569539514, - -0.06421043116529987, - 0.29511553090616033 - ], - [ - 1.2934926539556355, - -0.12093360417952319, - 0.4894750754769959 - ], - [ - 1.222480116354053, - -0.1527510990575938, - 0.5940178610898282 - ], - [ - 1.2158296073409671, - -0.15468752427089544, - 0.6527138562248416 - ], - [ - 1.2902364361740566, - -0.12814293847762984, - 0.6539922640822701 - ], - [ - 1.4443800803951927, - -0.08025848019338531, - 0.578300340598044 - ], - [ - 1.60355243318938, - -0.039082824665151124, - 0.4375083934704198 - ], - [ - 1.7112329454055242, - -0.017506950118420527, - 0.24092930336339902 - ], - [ - 1.7355909639645355, - 0.20384994830298317, - -0.02642789521806766 - ], - [ - 1.706455970676085, - 0.21921888912472035, - -0.26297185198650164 - ], - [ - 1.6064717694387995, - 0.23344249580407714, - -0.45129372159479203 - ], - [ - 1.4560812588580658, - 0.2639691096145159, - -0.5852434274274605 - ], - [ - 1.3225186173320944, - 0.2978925882506383, - -0.6542618624365352 - ], - [ - 1.2677520540411742, - 0.31100649466912467, - -0.641438449786711 - ], - [ - 1.2787433649422484, - 0.29773087454899855, - -0.5683284974033874 - ], - [ - 1.3459707261688705, - 0.2591645468917783, - -0.4439853985424011 - ], - [ - 1.451009761791502, - 0.2034325286866563, - -0.2252637426716535 - ], - [ - 1.4727737601137023, - 0.13971693071661112, - 0.07559952066526271 - ], - [ - 1.3546591515364002, - 0.07010490205803452, - 0.34601878345836773 - ], - [ - 1.2177527400000379, - 0.011909790767414543, - 0.5087651075526518 - ], - [ - 1.1522368427977625, - -0.012920790717665248, - 0.5936438337823693 - ], - [ - 1.1554064558877648, - -0.0032962582719183076, - 0.6406254231431059 - ], - [ - 1.2475380467630308, - 0.03881072406782417, - 0.6344831586100065 - ], - [ - 1.4154776280479617, - 0.10141577808376925, - 0.5552354052981364 - ], - [ - 1.579656207227546, - 0.151678803795341, - 0.4121543875734462 - ], - [ - 1.6907541320002581, - 0.18091679320087206, - 0.21413811518367223 - ], - [ - 1.6927787879985945, - 0.403516113611156, - -0.050869786008884324 - ], - [ - 1.6744825506014311, - 0.42135429992838425, - -0.27729279995439793 - ], - [ - 1.58550791381934, - 0.42867548303000247, - -0.45333434962594776 - ], - [ - 1.4512618367836456, - 0.446847192887926, - -0.5784368959148231 - ], - [ - 1.3437430146810263, - 0.46731980320979283, - -0.6365770137558286 - ], - [ - 1.30446984282204, - 0.4664033772668712, - -0.6076815585388958 - ], - [ - 1.3122156961442764, - 0.4411241263972732, - -0.5183853706626764 - ], - [ - 1.3658115788963667, - 0.3965472151021099, - -0.3765134210114338 - ], - [ - 1.4353032138750295, - 0.3381015444643914, - -0.14661410482387235 - ], - [ - 1.4059926868020376, - 0.269536552486855, - 0.13845410187524657 - ], - [ - 1.260620848033821, - 0.19448216574676744, - 0.37110941028347666 - ], - [ - 1.1262446922515588, - 0.1353569407298275, - 0.5020096636782378 - ], - [ - 1.0700186438899904, - 0.11622697242278278, - 0.5704330970049247 - ], - [ - 1.0862345349631093, - 0.1387375513433141, - 0.6086262325793149 - ], - [ - 1.1943487842301541, - 0.19852545004957745, - 0.5973842648381088 - ], - [ - 1.371019948918705, - 0.27642276948701133, - 0.5168762379230943 - ], - [ - 1.5358748066697918, - 0.33594503107802254, - 0.37683278054434005 - ], - [ - 1.6448940373031293, - 0.37271079077746644, - 0.18393736715729853 - ], - [ - 1.6248769630838082, - 0.593556373888745, - -0.07061137769877669 - ], - [ - 1.6138670909658352, - 0.6159541037286893, - -0.2828569035694967 - ], - [ - 1.539794484156041, - 0.619126194047121, - -0.4468287023760544 - ], - [ - 1.4315645571582118, - 0.628207548916672, - -0.559289811251092 - ], - [ - 1.349074735063076, - 0.6367347947142478, - -0.5980213572849772 - ], - [ - 1.3148571959072834, - 0.6195522972765561, - -0.5507493314952971 - ], - [ - 1.3130271355699425, - 0.5782170456114033, - -0.44838211523681615 - ], - [ - 1.3455352940143426, - 0.5229625943451132, - -0.2958040157385958 - ], - [ - 1.3737242414318376, - 0.4572970192236761, - -0.07246720448551863 - ], - [ - 1.3056444093061206, - 0.3837275455235093, - 0.17791701671319907 - ], - [ - 1.151825938506677, - 0.3089203947202541, - 0.3692157428865124 - ], - [ - 1.025880742699105, - 0.2555098878300413, - 0.4744083990235 - ], - [ - 0.9798399492757041, - 0.24467857231653964, - 0.5318906859451857 - ], - [ - 1.0121940028576915, - 0.2777128063812547, - 0.565106242187985 - ], - [ - 1.1351577333090834, - 0.35109401226665793, - 0.549786409927315 - ], - [ - 1.3151035142811516, - 0.442313169139232, - 0.4685105847599744 - ], - [ - 1.474955334618099, - 0.5106603478514994, - 0.33502706198890564 - ], - [ - 1.577629707824527, - 0.5543448014990762, - 0.15236696303559955 - ], - [ - 1.53743188750437, - 0.7720858713998304, - -0.08458657100104461 - ], - [ - 1.5305006733270545, - 0.7983437766054404, - -0.28147647398737935 - ], - [ - 1.4759548001929963, - 0.8051711405622372, - -0.4326779239989646 - ], - [ - 1.3977755327844585, - 0.8112024192427214, - -0.5223041496152004 - ], - [ - 1.32971111546133, - 0.8029024827511526, - -0.5318170993563036 - ], - [ - 1.2878988289759619, - 0.7601072829590703, - -0.4708870569432678 - ], - [ - 1.2726988018596381, - 0.6960133791922183, - -0.3667611607545245 - ], - [ - 1.2811552984845993, - 0.6276635752036808, - -0.21641775160381121 - ], - [ - 1.2719698844001277, - 0.5569632991762298, - -0.017040704389614136 - ], - [ - 1.183562752051142, - 0.48427064640079415, - 0.1887735224652019 - ], - [ - 1.0388271486231666, - 0.4194530226208639, - 0.34459294587266975 - ], - [ - 0.9285745631052131, - 0.3817114290316768, - 0.4356852256839198 - ], - [ - 0.8949525443379324, - 0.38069165195113963, - 0.4904640611782772 - ], - [ - 0.9407044304226361, - 0.41808780421185876, - 0.5204453101037515 - ], - [ - 1.071836161534244, - 0.49939687901278584, - 0.4982614214141691 - ], - [ - 1.2489319924910711, - 0.6007222488966982, - 0.4160665676424798 - ], - [ - 1.3993752116860223, - 0.6769442998584922, - 0.2918849410625876 - ], - [ - 1.493653483957688, - 0.7275128439730075, - 0.12243471628155861 - ], - [ - 1.4338586068486183, - 0.9403453129399083, - -0.09324898406054104 - ], - [ - 1.4314944976764579, - 0.9721356063713215, - -0.2716620474618095 - ], - [ - 1.3966883255411517, - 0.9903154717686496, - -0.4014133646449697 - ], - [ - 1.338723999798641, - 0.9899995618813882, - -0.45802439807494216 - ], - [ - 1.270345038292974, - 0.9486788030020595, - -0.4425874815260103 - ], - [ - 1.2162620066562209, - 0.8699029439850663, - -0.3830424919298929 - ], - [ - 1.1895545430658072, - 0.7849288083344499, - -0.28971884799780223 - ], - [ - 1.1774679274193194, - 0.7092225277440505, - -0.15398896645951385 - ], - [ - 1.1433994703644337, - 0.6402663941097373, - 0.010954737042945499 - ], - [ - 1.0522190407086085, - 0.5778818253082405, - 0.17371339846295247 - ], - [ - 0.9285869259733424, - 0.5312764085914219, - 0.30606726899417874 - ], - [ - 0.8396054608972326, - 0.5106206333394009, - 0.396965984277606 - ], - [ - 0.8169936687092597, - 0.5162274370506674, - 0.45582825354240203 - ], - [ - 0.8691939558923393, - 0.5564681145718335, - 0.4784071870871594 - ], - [ - 1.0027250277874247, - 0.6447003739670215, - 0.44503718592757 - ], - [ - 1.1728515999402533, - 0.7532886579522967, - 0.3642752410232103 - ], - [ - 1.3102163616969609, - 0.8367008939780521, - 0.25113793962502107 - ], - [ - 1.3945494792909001, - 0.8939200325883697, - 0.09541279997802458 - ], - [ - 1.3173044295472043, - 1.1004202611802938, - -0.09618007203209801 - ], - [ - 1.3188920585718535, - 1.139270260420614, - -0.2463585322746188 - ], - [ - 1.2927279944114158, - 1.1621952268206868, - -0.3433912280772909 - ], - [ - 1.2377730785644157, - 1.1391525513900589, - -0.37360721777310607 - ], - [ - 1.1646516120508574, - 1.053661287629678, - -0.355736235898692 - ], - [ - 1.1062633654290197, - 0.9430611232621067, - -0.31171410868936994 - ], - [ - 1.07400322675785, - 0.8471202632444296, - -0.23369601775198895 - ], - [ - 1.0481079757257856, - 0.770681458781463, - -0.11972193623648866 - ], - [ - 1.0029353374832997, - 0.7114843079583464, - 0.009340095655600877 - ], - [ - 0.9209829698025049, - 0.669110685032291, - 0.14066656198528596 - ], - [ - 0.8208649186858176, - 0.6428131617311685, - 0.26322874439266003 - ], - [ - 0.7487682120740025, - 0.6348710302604434, - 0.3595985138558833 - ], - [ - 0.7329547924568023, - 0.6467645200970167, - 0.4200125766863557 - ], - [ - 0.7916112664118192, - 0.6933140898709041, - 0.43232662130009586 - ], - [ - 0.9278541262583472, - 0.7885683022581669, - 0.39184011865747714 - ], - [ - 1.0879316034283202, - 0.9016290278335501, - 0.3179052110745859 - ], - [ - 1.208893428749856, - 0.9897655484497561, - 0.21583074229166682 - ], - [ - 1.2818593363937307, - 1.051702652518113, - 0.07215361068142309 - ], - [ - 1.1894037930649415, - 1.25495896450858, - -0.08750958797494943 - ], - [ - 1.187212047539922, - 1.293294931535956, - -0.19918157933170916 - ], - [ - 1.154317712694875, - 1.2986358932675586, - -0.2688535049066602 - ], - [ - 1.0961770910406587, - 1.2404986662771955, - -0.2981740931676977 - ], - [ - 1.0269998658328898, - 1.1187558859902553, - -0.2970999237253895 - ], - [ - 0.9732740859634665, - 0.9882802071973554, - -0.27049830471248293 - ], - [ - 0.9391906138988161, - 0.8874883852778253, - -0.2081500722034456 - ], - [ - 0.9059251069179836, - 0.8160584826315241, - -0.11853614281845068 - ], - [ - 0.8597778173964256, - 0.7752142129249134, - -0.018256100021450852 - ], - [ - 0.7921326635121146, - 0.7579907449932335, - 0.09739448322387538 - ], - [ - 0.7112167179091876, - 0.7503137873745999, - 0.218018830786631 - ], - [ - 0.6509100882080883, - 0.7546970882659048, - 0.3131330091076563 - ], - [ - 0.6438682840038875, - 0.7771136960880657, - 0.3688617842046168 - ], - [ - 0.7112010765697021, - 0.8312304959993269, - 0.37781615440523947 - ], - [ - 0.8470327391790095, - 0.9315112518217588, - 0.34180353971930916 - ], - [ - 0.994213619495266, - 1.047195162979918, - 0.2803392229894346 - ], - [ - 1.0978514661114227, - 1.1355966238790258, - 0.18913428670648133 - ], - [ - 1.1586132308442558, - 1.200342921252171, - 0.05565650288927792 - ], - [ - 1.045128230841876, - 1.3998067657677289, - -0.05548841585009928 - ], - [ - 1.0271979142564394, - 1.4192781537830765, - -0.13649131774169335 - ], - [ - 0.9844518763792747, - 1.390943753990956, - -0.20591901661777956 - ], - [ - 0.9313171852839375, - 1.3030885845853384, - -0.25477931459982717 - ], - [ - 0.8739049775890982, - 1.1590985240492715, - -0.27197078503107897 - ], - [ - 0.827517998923627, - 1.0146168428749895, - -0.26047708655233265 - ], - [ - 0.7946673374953628, - 0.912794124999675, - -0.21537686577090576 - ], - [ - 0.7602826875523288, - 0.853480739959338, - -0.14654813450593132 - ], - [ - 0.7181860839758155, - 0.835375730127251, - -0.062262306829185106 - ], - [ - 0.6632441420689759, - 0.842594267268064, - 0.04939024298284942 - ], - [ - 0.5983728719892272, - 0.8518984733423478, - 0.1674398526873756 - ], - [ - 0.554076900790906, - 0.8698310127790149, - 0.2543168037493084 - ], - [ - 0.5608362829544955, - 0.905214021716594, - 0.3066993936757162 - ], - [ - 0.6324406703259405, - 0.9671671212848711, - 0.3224260006661195 - ], - [ - 0.760478288305525, - 1.0720763627271435, - 0.2999856233624233 - ], - [ - 0.8929342795386694, - 1.1898030405262603, - 0.2540892407742409 - ], - [ - 0.9802781335209853, - 1.2766685125722317, - 0.17333167383436068 - ], - [ - 1.0272923043108317, - 1.344016506232241, - 0.05451271868809381 - ], - [ - 0.8778066438848778, - 1.520405706430128, - -2.2548679558943728e-17 - ], - [ - 0.8425018395128583, - 1.5058933991508456, - -0.0813400766937707 - ], - [ - 0.7995955179557175, - 1.4483313999032523, - -0.1748680801070263 - ], - [ - 0.7582949671400504, - 1.3427534918187203, - -0.2432729919234531 - ], - [ - 0.7127121514978154, - 1.1828450655091802, - -0.27448390723923777 - ], - [ - 0.675392221322747, - 1.0273904259195006, - -0.2796142468501147 - ], - [ - 0.6491024571962196, - 0.9292261401668921, - -0.25104231425917223 - ], - [ - 0.6179051762953469, - 0.8867750528848539, - -0.19469950228163513 - ], - [ - 0.578915899699396, - 0.8921165739261083, - -0.11371056826804597 - ], - [ - 0.5322007695301249, - 0.9217987726534305, - -2.5761398942889587e-17 - ], - [ - 0.4831376663074502, - 0.947414162757455, - 0.11371056826804594 - ], - [ - 0.45901713509289915, - 0.978509106244099, - 0.19469950228163507 - ], - [ - 0.4801822146469784, - 1.0267522876742732, - 0.2510423142591721 - ], - [ - 0.5520500977898286, - 1.098602034143651, - 0.2796142468501147 - ], - [ - 0.6680177997231109, - 1.2086493615375615, - 0.2744839072392378 - ], - [ - 0.783711151365247, - 1.328079451014529, - 0.24327299192345325 - ], - [ - 0.854494026437037, - 1.4166357312534534, - 0.17486808010702642 - ], - [ - 0.8828910192995032, - 1.4825746953286778, - 0.08134007669377087 - ], - [ - 0.6897041041232489, - 1.605010981005216, - 0.05548841585009912 - ], - [ - 0.6503062853473117, - 1.5616694857615552, - -0.054512718688093605 - ], - [ - 0.6154882973387533, - 1.4872800226896832, - -0.17333167383436057 - ], - [ - 0.583932518826373, - 1.3682052902535733, - -0.2540892407742408 - ], - [ - 0.5482062207657646, - 1.1946316980626632, - -0.2999856233624232 - ], - [ - 0.5213709615747939, - 1.0312932475311596, - -0.32242600066611915 - ], - [ - 0.5035201971912014, - 0.9383054792609277, - -0.3066993936757161 - ], - [ - 0.47625730367072105, - 0.9147601781245823, - -0.2543168037493082 - ], - [ - 0.43857928336504043, - 0.9441553447492985, - -0.16743985268737552 - ], - [ - 0.3980859695027908, - 0.9956834095769802, - -0.049390242982849365 - ], - [ - 0.3643635620072653, - 1.0396552584311456, - 0.06226230682918524 - ], - [ - 0.35899465866936286, - 1.085164491457492, - 0.14654813450593135 - ], - [ - 0.3931692319272254, - 1.1445991643285631, - 0.21537686577090578 - ], - [ - 0.4649249615754918, - 1.2239600305942195, - 0.2604770865523325 - ], - [ - 0.5668562785211682, - 1.336373173110465, - 0.27197078503107885 - ], - [ - 0.6628492249904415, - 1.4580886337295773, - 0.25477931459982733 - ], - [ - 0.7123666880018235, - 1.5480322107431874, - 0.20591901661777945 - ], - [ - 0.7155319790842021, - 1.599218565352004, - 0.13649131774169337 - ], - [ - 0.49212444743897354, - 1.6575333824060992, - 0.08750958797494943 - ], - [ - 0.4602208476350764, - 1.6035599516979755, - -0.05565650288927755 - ], - [ - 0.43452979167536765, - 1.5185655711739963, - -0.18913428670648125 - ], - [ - 0.4097908041131619, - 1.3846118327613353, - -0.28033922298943437 - ], - [ - 0.3831960383991821, - 1.1993074958770207, - -0.341803539719309 - ], - [ - 0.36426618765090535, - 1.0315334475078675, - -0.3778161544052394 - ], - [ - 0.3510660604391411, - 0.9461631386824934, - -0.3688617842046169 - ], - [ - 0.3281318064963765, - 0.9410532161007268, - -0.3131330091076564 - ], - [ - 0.2941824417215257, - 0.9910886389928474, - -0.21801883078663103 - ], - [ - 0.2603729092415753, - 1.0650023822655386, - -0.0973944832238754 - ], - [ - 0.2414662930695214, - 1.1321965379380996, - 0.01825610002145084 - ], - [ - 0.2537648234736903, - 1.192583397832869, - 0.11853614281845054 - ], - [ - 0.2989921802648201, - 1.2571071232711895, - 0.20815007220344547 - ], - [ - 0.36923872250852524, - 1.337020186888119, - 0.2704983047124831 - ], - [ - 0.4553710849844834, - 1.4487859164896202, - 0.2970999237253896 - ], - [ - 0.5262148128364366, - 1.5695665410263355, - 0.2981740931676979 - ], - [ - 0.5474928174885653, - 1.648986409865888, - 0.26885350490666027 - ], - [ - 0.5264202415258337, - 1.6748032586164896, - 0.19918157933170935 - ], - [ - 0.29433968624763934, - 1.6910292310957942, - 0.09618007203209801 - ], - [ - 0.2698715461112987, - 1.6359740756542893, - -0.07215361068142269 - ], - [ - 0.25271539437319857, - 1.5418151939903266, - -0.21583074229166657 - ], - [ - 0.23686784117916107, - 1.3929909200656376, - -0.3179052110745856 - ], - [ - 0.2189931192455649, - 1.1978293954750268, - -0.3918401186574769 - ], - [ - 0.204621981423981, - 1.0322125115700587, - -0.43232662130009575 - ], - [ - 0.1936371084420666, - 0.9581397301416499, - -0.4200125766863559 - ], - [ - 0.17543033429534213, - 0.965887808332562, - -0.35959851385588343 - ], - [ - 0.1462600686032783, - 1.0322964535229495, - -0.26322874439266003 - ], - [ - 0.1189753662803197, - 1.1321499908179509, - -0.140666561985286 - ], - [ - 0.11469581634426904, - 1.2243096345928297, - -0.009340095655600941 - ], - [ - 0.14337573366750372, - 1.2930288622783448, - 0.1197219362364884 - ], - [ - 0.196626054651312, - 1.3536742097409715, - 0.23369601775198862 - ], - [ - 0.2635832073519623, - 1.4295827393686518, - 0.3117141086893698 - ], - [ - 0.3301716360460947, - 1.5354485264093793, - 0.35573623589869174 - ], - [ - 0.3676485090074415, - 1.641519205852285, - 0.3736072177731059 - ], - [ - 0.36012659337802466, - 1.700632896753937, - 0.34339122807729094 - ], - [ - 0.3271909580144382, - 1.7118291577830853, - 0.246358532274619 - ], - [ - 0.09743362591127945, - 1.7119306354358212, - 0.09324898406054107 - ], - [ - 0.07688271752789157, - 1.6546752921944654, - -0.09541279997802417 - ], - [ - 0.0694960487056632, - 1.553031100672615, - -0.2511379396250209 - ], - [ - 0.06594131419924928, - 1.3923636093936316, - -0.36427524102321 - ], - [ - 0.05696438779105627, - 1.1907355340578782, - -0.4450371859275698 - ], - [ - 0.04731854566906791, - 1.0309781039045731, - -0.47840718708715935 - ], - [ - 0.03856924026178053, - 0.9656509903586, - -0.45582825354240225 - ], - [ - 0.0224077097198044, - 0.9824299749628461, - -0.3969659842776061 - ], - [ - -0.0041945967151384225, - 1.069818071810725, - -0.3060672689941789 - ], - [ - -0.025649179252046683, - 1.2001893322534674, - -0.17371339846295253 - ], - [ - -0.017212772693724954, - 1.3103461850641405, - -0.010954737042945634 - ], - [ - 0.02547076225290195, - 1.3743284011585668, - 0.1539889664595135 - ], - [ - 0.08499101664697663, - 1.4226488576494036, - 0.28971884799780184 - ], - [ - 0.14522704498982858, - 1.4882652674146581, - 0.3830424919298928 - ], - [ - 0.18640742428510965, - 1.5744904762342606, - 0.4425874815260103 - ], - [ - 0.18800277042542624, - 1.6543687734222303, - 0.45802439807494205 - ], - [ - 0.15929419354184599, - 1.7047253069721122, - 0.4014133646449698 - ], - [ - 0.1261468822027251, - 1.725778403551117, - 0.27166204746180983 - ], - [ - -0.10006996521688656, - 1.717498006866959, - 0.08458657100104461 - ], - [ - -0.11678213751875469, - 1.6572982835449945, - -0.12243471628155808 - ], - [ - -0.11343664521848616, - 1.5503666326755685, - -0.29188494106258733 - ], - [ - -0.10422526808247631, - 1.381967957544733, - -0.41606656764247935 - ], - [ - -0.10342769697138554, - 1.1779357840898501, - -0.49826142141416885 - ], - [ - -0.10827755575139356, - 1.023717836304503, - -0.5204453101037514 - ], - [ - -0.11778763057061523, - 0.9653974645537384, - -0.4904640611782773 - ], - [ - -0.1337154870963133, - 0.9950248754729895, - -0.43568522568392 - ], - [ - -0.15615660102774614, - 1.1093772121590464, - -0.3445929458726697 - ], - [ - -0.17239069393537199, - 1.2671307334497084, - -0.18877352246520188 - ], - [ - -0.1536405761378563, - 1.3800398823273807, - 0.017040704389613928 - ], - [ - -0.09700504808574763, - 1.423344822282538, - 0.21641775160381077 - ], - [ - -0.033584133175506604, - 1.4501961833725732, - 0.366761160754524 - ], - [ - 0.014322802156140582, - 1.495406744876948, - 0.47088705694326766 - ], - [ - 0.03047838909343044, - 1.553014847059631, - 0.5318170993563033 - ], - [ - 0.003634136283362288, - 1.61611032980103, - 0.5223041496152004 - ], - [ - -0.04067873797550942, - 1.6807999220858387, - 0.43267792399896476 - ], - [ - -0.07386434517000681, - 1.7246243519131377, - 0.2814764739873797 - ], - [ - -0.2984035831760763, - 1.7039629149990598, - 0.07061137769877669 - ], - [ - -0.30873817335822146, - 1.6434398054906, - -0.152366963035599 - ], - [ - -0.2952328333642527, - 1.532678963152401, - -0.33502706198890536 - ], - [ - -0.27449731623759765, - 1.3600696365432854, - -0.468510584759974 - ], - [ - -0.26352253291501043, - 1.1586224404813559, - -0.5497864099273149 - ], - [ - -0.26559065614641, - 1.0154421232236468, - -0.5651062421879849 - ], - [ - -0.27802211525002074, - 0.9709055738738853, - -0.5318906859451857 - ], - [ - -0.2916623175706243, - 1.0161937283456928, - -0.4744083990235002 - ], - [ - -0.30838005967848214, - 1.151970720844762, - -0.3692157428865125 - ], - [ - -0.32050440209785136, - 1.3225849995299823, - -0.17791701671319918 - ], - [ - -0.29083128499331445, - 1.4183286004863167, - 0.07246720448551847 - ], - [ - -0.21986875507528703, - 1.4267490434775405, - 0.2958040157385953 - ], - [ - -0.1557629173843106, - 1.426223378067586, - 0.4483821152368158 - ], - [ - -0.12088056953913548, - 1.448475882642758, - 0.5507493314952973 - ], - [ - -0.12310885983552988, - 1.4867003895255089, - 0.5980213572849772 - ], - [ - -0.1717385823681122, - 1.5538750481147665, - 0.5592898112510923 - ], - [ - -0.23371822988483956, - 1.643064236909847, - 0.44682870237605454 - ], - [ - -0.27350164408859723, - 1.7056269509724489, - 0.2828569035694971 - ], - [ - -0.4969341887756681, - 1.667747490199794, - 0.05086978600888439 - ], - [ - -0.49967000557369157, - 1.6108754182267921, - -0.18393736715729794 - ], - [ - -0.4770004721461752, - 1.4980791151475645, - -0.3768327805443397 - ], - [ - -0.44612083389915036, - 1.3255494896023483, - -0.5168762379230939 - ], - [ - -0.42524630907440386, - 1.1335991131471614, - -0.5973842648381086 - ], - [ - -0.4229670235593963, - 1.0100754774176857, - -0.6086262325793149 - ], - [ - -0.4343538112219114, - 0.9847768143430975, - -0.5704330970049247 - ], - [ - -0.4458997968752038, - 1.0430349847321505, - -0.502009663678238 - ], - [ - -0.46188392789719374, - 1.1889707618109548, - -0.3711094102834769 - ], - [ - -0.46957084169892427, - 1.3523936605491296, - -0.1384541018752469 - ], - [ - -0.4248470803725976, - 1.4120598175814205, - 0.14661410482387183 - ], - [ - -0.33948582736978383, - 1.3811011316582427, - 0.3765134210114331 - ], - [ - -0.27408314838988174, - 1.3569741913042621, - 0.5183853706626759 - ], - [ - -0.2483177482870518, - 1.3629057109880165, - 0.6076815585388957 - ], - [ - -0.26716068606928745, - 1.3973754884765512, - 0.6365770137558282 - ], - [ - -0.338649897741113, - 1.4802532146414658, - 0.5784368959148234 - ], - [ - -0.42151009862612226, - 1.5874278727838183, - 0.45333434962594793 - ], - [ - -0.4723377475689265, - 1.6608215769787933, - 0.2772927999543984 - ], - [ - -0.6912562481917389, - 1.6049908395235015, - 0.02642789521806778 - ], - [ - -0.6886985271169573, - 1.5546944264661682, - -0.21413811518367148 - ], - [ - -0.6584704063113711, - 1.4438618066025006, - -0.41215438757344586 - ], - [ - -0.6199101738588708, - 1.2765474734199607, - -0.555235405298136 - ], - [ - -0.5901579503995111, - 1.0998050027183168, - -0.6344831586100061 - ], - [ - -0.5805578713447979, - 0.9989632133593903, - -0.6406254231431057 - ], - [ - -0.587308154397361, - 0.9914059816804065, - -0.5936438337823695 - ], - [ - -0.5985621886416802, - 1.0605597037518468, - -0.5087651075526521 - ], - [ - -0.6166169496561216, - 1.208221689728613, - -0.3460187834583681 - ], - [ - -0.6153884687174751, - 1.3453179556439006, - -0.07559952066526322 - ], - [ - -0.5493271430969997, - 1.3583275791939762, - 0.22526374267165297 - ], - [ - -0.4485422817158716, - 1.2952271150583199, - 0.4439853985424005 - ], - [ - -0.38152918162073324, - 1.256289676235282, - 0.568328497403387 - ], - [ - -0.36453650189517506, - 1.2534087318341223, - 0.6414384497867108 - ], - [ - -0.40327675964189585, - 1.2942810137127838, - 0.654261862436535 - ], - [ - -0.4994366746885021, - 1.3929879149527684, - 0.5852434274274607 - ], - [ - -0.6010687530302259, - 1.5079666106985767, - 0.45129372159479236 - ], - [ - -0.6633788583666296, - 1.5874436656074828, - 0.2629718519865022 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.3935833054748779, - 0.03367855433508838, - -0.0027100027782158624, - 0.0011694640153465461, - -2.886476381035134e-05, - -0.0004970981756504008, - -5.6989458377595333e-05, - 0.2661453220934769, - -0.0996171757167879, - 0.001402293952620096, - 0.0012792555084721697, - -0.0004046198608392856, - 0.00011757160390348919, - -1.767683846045312e-05, - 0.099750480793973, - 0.06980590262785433, - 0.01997325095472911, - -0.0030229835209854717, - -0.0009236199143820177, - 0.0004330638379181938, - 0.0001991729410671585, - -0.025892542078739356, - -0.0012327725128567703, - -0.0018648484828409039, - -0.0031501549702631793, - 0.0009201606907152495, - -0.0002840158324598215, - -0.00020157088049644177, - -0.0004992014457739254, - 0.006734039391906835, - 0.0018631841348141687, - -0.002303216674007684, - 0.0011538833520005022, - 0.00014164729518890298, - -0.00015401903138295705, - -0.0026999719053370664, - -0.006516123892280384, - -0.0020430179055072363, - 0.0002493994364597026, - 0.0006884895935102179, - -0.0002575548814060107, - 0.0001622847194327685, - 0.0027154705097574305, - 0.0002563393254583692, - 0.0013762086781683941, - 0.0003517626386402681, - 0.0003342088988844129, - -0.00017244405975790598, - 5.976105673531481e-06, - 0.21470785223306638, - -0.006034035782997997, - -0.0015928568598988046, - -0.00041874243500479233, - -0.0002410785670689545, - 9.998638532089128e-05, - -0.06423708263232955, - -0.02127233067169912, - 0.004273583767509793, - 0.0011537952669807966, - 3.934361991632935e-05, - -0.0004417367365747857, - 0.006089529337956915, - 0.004398040190685163, - 0.003307022811040421, - -0.0010276734580812836, - -6.561664652311605e-05, - 0.00013097005061761345, - -0.001490838256595877, - -0.002071831962231027, - 0.0019486752280123616, - -0.001574234673393823, - -3.6205966836249655e-06, - 0.00017440844396746964, - 0.005694944884082119, - 0.0033436913421276914, - 0.0001972632628672553, - -0.0005942207641857619, - 0.00036176012411006704, - -0.00022952396356326854, - -0.0009277756204035792, - -0.000642806674918653, - -0.0006194750835045547, - -0.0003236910425696474, - 0.0001898574388631799, - -2.140357439285245e-05, - -0.005707209339776268, - 0.0005654368831159546, - 0.0008453670023149416, - 0.00021159858263849863, - 0.00023451663134768237, - 7.88136986978279e-06, - 0.04488116551174798, - 0.0009267298898052272, - -0.0007312214639382173, - 0.00020449594975951728, - -0.0004939496056196684, - -6.815133812993619e-05, - -0.042192850613885384, - -0.0023738009691196956, - 0.0007784873690317058, - -0.0001282978784256653, - -0.0005067013809473529, - -0.00021769515963345626, - 0.0005644076686684879, - 0.001321581493080325, - -0.00043554022889639706, - -0.0006375393239817441, - 0.0005012173302153554, - 0.00021547944392435778, - -0.0008056310425837026, - 0.0017968859607188177, - -0.0003943242067782711, - 0.00011076439433382473, - -3.6925686570263034e-05, - 4.8750907455279843e-05, - 0.0018281043242679084, - 0.0009520763404100411, - -0.0003327728641954332, - 7.150973343962254e-05, - 2.6912697784573533e-05, - -0.00015959740996259578, - 0.00024023937071146408, - -6.304209249699852e-05, - 0.00011541717147470947, - -5.300463885443751e-05, - 9.712531841573951e-05, - 6.504505911713008e-05, - 0.048264096407750555, - 0.09255849625273085, - -0.004808049520678366, - -0.00019655671707030658, - -1.4114989950300534e-05, - -0.00036696040319206746, - 0.0003700702427985889, - 0.013227387844362436, - -0.0540028322261902, - -0.002014882152357146, - 0.002028484425805209, - 0.00037126323770697155, - 5.507128937617315e-05, - -0.0002171443659949242, - -0.006262866187486417, - -0.0033556432894935578, - 0.0030134093697496496, - -0.0011279460537506612, - -0.0004078207613477054, - 4.8068268784846676e-05, - 0.00018374416920220225, - 0.0007268904181207221, - 0.0024207622312216372, - -0.0010086930977791318, - -0.0009833774969659295, - 7.205290922524961e-05, - -4.044027510228012e-05, - 0.00011378637950003728, - 0.0002872713509929669, - 0.0010522442525695238, - 1.4709680532237341e-05, - -0.00033514447467450153, - 0.00034970861736163795, - 9.646464840901786e-05, - -0.00018641610711611655, - 0.001001903083877908, - 0.0010653943987866835, - -0.0001695981014257736, - -0.0003470196807583644, - -3.214749952179759e-05, - 5.2275292062812584e-05, - 8.478533305387176e-05, - 0.026748861977765163, - -0.007334533285517018, - 0.002367460296744541, - 0.0004686494262630281, - -0.0002491828159404064, - 5.3860761877920706e-05, - -0.13102384328656372, - 0.0063524336635722815, - -0.00048703596970488147, - -0.00027784350032716024, - 0.00011882212204708822, - -2.297951224571298e-05, - 0.013474845586520602, - 0.02177549467608995, - -0.0038121115954015336, - -0.0009957751224194047, - 9.916989774799465e-05, - 7.99729382347139e-05, - -0.006766695087858672, - -0.006342553970019607, - -0.0029226649720025437, - 0.001298920179291993, - -0.00012055964202742354, - -2.55245554653924e-05, - 0.003968642891130499, - 0.0041008130877826345, - -0.0031704753327574985, - 0.001514521684902436, - 6.817098132717988e-07, - -6.66256932390977e-05, - -0.0026290181911428102, - -0.0016570767351746377, - -0.000517393039519207, - 0.0007039600336263637, - -0.000302117384778287, - 0.00013254208479802405, - -0.0007828031058697964, - 0.0008540363918738188, - 0.0003707647860435933, - 0.0002740885710998406, - -0.0002597347022325164, - 5.7202773794152084e-05, - -0.4860306145934521, - -0.1989485658304093, - 0.001527957307683659, - -0.0012840610916513427, - 0.00012006194310655988, - -0.0001305728867847136, - 1.173260994329541e-05, - -0.002554046072933398, - 0.007030884100507967, - 0.020093417210290544, - -0.0016448427046013051, - -0.0012199612827543877, - 0.00020966511455308858, - 0.0001253187038933302, - -0.014536081629675594, - -0.010960459823087479, - -0.002547754192697819, - -0.003201618458199248, - 0.0009745795134792232, - 0.00013226373893438287, - 5.48527234733726e-05, - 0.0036376359954130486, - 0.006627728705566801, - 0.004715222926177117, - -0.0033453277114073514, - 0.0014271673848790484, - 1.8858343811817247e-05, - -0.00011536526240996109, - -0.0030956165364849067, - -0.004461033409747968, - -0.000855927725209568, - 0.00017381777387309605, - 0.0005768283015559462, - -0.00035340705732046904, - 0.0001195054321609797, - 0.00048399472620950856, - -0.0017126778469045917, - 0.0009809600198699487, - 0.00028430951074457327, - 0.00028050076391594975, - -0.00018131032325401997, - 4.534518014350084e-05 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface8": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -3.113795654494369, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_7.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_7.vts deleted file mode 100644 index 107e4a7bd..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_7.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_8.json b/examples/2_Intermediate/inputs/input_ncsx/surface_8.json deleted file mode 100644 index ea7e85d3f..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_8.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface9" - }, - { - "iota": -0.48069815477980943, - "G": 13.887479122211442 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.7588414480736, - 0.0, - 0.0 - ], - [ - 1.7155472528969302, - 0.020836225298695343, - -0.26484949139151126 - ], - [ - 1.592461562622708, - 0.04077747547880802, - -0.4697706835013006 - ], - [ - 1.4121835135801513, - 0.08888074002352611, - -0.6103612636113791 - ], - [ - 1.2458916889731118, - 0.14578928433687138, - -0.6824740252302766 - ], - [ - 1.1734600398785981, - 0.1707609297072946, - -0.6740337128048814 - ], - [ - 1.1882822510229625, - 0.16579691402683375, - -0.6104268168611261 - ], - [ - 1.2692795446890817, - 0.13130293268583557, - -0.5021642324846014 - ], - [ - 1.4090561746559793, - 0.06811283133176542, - -0.301260551585781 - ], - [ - 1.489284100533596, - 2.3437677537758572e-17, - -1.1357504956326988e-16 - ], - [ - 1.4090561746559798, - -0.06811283133176538, - 0.30126055158578074 - ], - [ - 1.269279544689082, - -0.13130293268583537, - 0.5021642324846011 - ], - [ - 1.1882822510229625, - -0.16579691402683377, - 0.6104268168611258 - ], - [ - 1.1734600398785981, - -0.1707609297072946, - 0.6740337128048816 - ], - [ - 1.2458916889731115, - -0.14578928433687144, - 0.6824740252302766 - ], - [ - 1.4121835135801506, - -0.08888074002352626, - 0.6103612636113797 - ], - [ - 1.5924615626227079, - -0.04077747547880805, - 0.46977068350130075 - ], - [ - 1.71554725289693, - -0.020836225298695367, - 0.2648494913915118 - ], - [ - 1.7447216394291423, - 0.2064202514326965, - -0.033113672532758605 - ], - [ - 1.7103338265106847, - 0.22355446079141508, - -0.2917701511668801 - ], - [ - 1.5937336784065803, - 0.2352828580264856, - -0.4856431573272354 - ], - [ - 1.4229594232538576, - 0.2727461733017649, - -0.6194975052899334 - ], - [ - 1.281591553331697, - 0.3137247393387758, - -0.6865915235158722 - ], - [ - 1.2323014428631636, - 0.32444447204030846, - -0.6661809663348721 - ], - [ - 1.2508505442827609, - 0.3083955207920205, - -0.5855360174787579 - ], - [ - 1.3264263485680932, - 0.2659257348100183, - -0.45498374095819605 - ], - [ - 1.4412197978244068, - 0.20391041935129886, - -0.22849551863677955 - ], - [ - 1.465089178980134, - 0.13714294136085656, - 0.07875347615938508 - ], - [ - 1.3381166119410817, - 0.062498567749623576, - 0.35430521134845816 - ], - [ - 1.189999133659246, - -0.0020258052299134705, - 0.5212092483975064 - ], - [ - 1.1156591941518887, - -0.02855542044276091, - 0.6078263236853985 - ], - [ - 1.111455652345811, - -0.022313728280998854, - 0.6593386412348754 - ], - [ - 1.2034734020892206, - 0.01990899055789432, - 0.6604305825536602 - ], - [ - 1.3856182983962473, - 0.09380429824961098, - 0.5845727756610063 - ], - [ - 1.571016665827491, - 0.1505813519073939, - 0.441037040765989 - ], - [ - 1.6961997827070288, - 0.17888873167036579, - 0.2327774911592113 - ], - [ - 1.702232995572307, - 0.4092955354634234, - -0.06388001019318085 - ], - [ - 1.6787492090932803, - 0.4270578938416505, - -0.31021831654657195 - ], - [ - 1.5727499519331827, - 0.43033750840985563, - -0.4891098605082969 - ], - [ - 1.420047309186123, - 0.4556185644458015, - -0.615416002840236 - ], - [ - 1.3097007932895712, - 0.4817600947076162, - -0.6739285809181627 - ], - [ - 1.2779618006282984, - 0.476632377462082, - -0.6353152355179483 - ], - [ - 1.2908415998415923, - 0.4480048145826182, - -0.5342066521065756 - ], - [ - 1.3504076217782115, - 0.3994112180728517, - -0.3843855959690518 - ], - [ - 1.427487634399804, - 0.3354034763220363, - -0.14682068165171466 - ], - [ - 1.3966998362984853, - 0.26416164793585406, - 0.14416318827927407 - ], - [ - 1.2402894643233402, - 0.1829777983265331, - 0.3800649626692487 - ], - [ - 1.0955982945388185, - 0.116753195194792, - 0.5126408243001626 - ], - [ - 1.0322528547792673, - 0.09554942883811161, - 0.5820555908634439 - ], - [ - 1.0423127087576194, - 0.11519959177472074, - 0.6251345306405948 - ], - [ - 1.1518822379187321, - 0.17832542612988922, - 0.620678066318622 - ], - [ - 1.3445223368707615, - 0.26987457468850296, - 0.5427673190280521 - ], - [ - 1.5305410164778481, - 0.3354486585717333, - 0.40169452423756946 - ], - [ - 1.6516794313840408, - 0.3723936779355605, - 0.1971766473366787 - ], - [ - 1.6345752776377356, - 0.6025230014204319, - -0.08912168119729112 - ], - [ - 1.6186239282096968, - 0.6231729861447095, - -0.3192739456718181 - ], - [ - 1.5289916981668104, - 0.6211074628296241, - -0.4840768423440807 - ], - [ - 1.4058524066176212, - 0.6378567741204841, - -0.5974983309707099 - ], - [ - 1.3234237445622368, - 0.6513893512961206, - -0.6365016503908328 - ], - [ - 1.295705196812271, - 0.6281125953813773, - -0.5777030117693314 - ], - [ - 1.2966245661691715, - 0.5817767650448361, - -0.4612253517359411 - ], - [ - 1.3335684452254222, - 0.5218634682897358, - -0.300148370622395 - ], - [ - 1.3667701782969273, - 0.45130625012671804, - -0.07013065773095929 - ], - [ - 1.2942389104965908, - 0.3753155047233611, - 0.18488232654949197 - ], - [ - 1.1281888240692206, - 0.29411935796343736, - 0.3775035999024549 - ], - [ - 0.9917042846194166, - 0.2344141272931471, - 0.48233436515068906 - ], - [ - 0.9389909383290257, - 0.22185360914995558, - 0.5406768244746656 - ], - [ - 0.9675336553413606, - 0.2520204318433222, - 0.5798337207712556 - ], - [ - 1.0953878882091872, - 0.3307448097930269, - 0.5711517802104551 - ], - [ - 1.2933467595770562, - 0.43708067344196294, - 0.4913911583496361 - ], - [ - 1.4734879427855987, - 0.5110269154939187, - 0.35578463541863053 - ], - [ - 1.5858674713264718, - 0.5560109618799668, - 0.16024274482028256 - ], - [ - 1.5474185723386207, - 0.7839503561263416, - -0.10747244894286112 - ], - [ - 1.536482609277321, - 0.8075905730294711, - -0.3211908771177854 - ], - [ - 1.4707497952174868, - 0.8097482186460888, - -0.4714248717163822 - ], - [ - 1.3826810991745462, - 0.8231469787271862, - -0.5579623077089879 - ], - [ - 1.3143246957827326, - 0.8179523571812022, - -0.5645928388259167 - ], - [ - 1.2749519472278676, - 0.7670367983672334, - -0.4928380928412976 - ], - [ - 1.2602952270224999, - 0.6954351261559515, - -0.3759941119634386 - ], - [ - 1.2716320002408315, - 0.6216301915689839, - -0.21782440959101387 - ], - [ - 1.2646473989495923, - 0.5474776581627537, - -0.013499419488562966 - ], - [ - 1.1702999080908572, - 0.4729364227177768, - 0.19520099288436332 - ], - [ - 1.0137162433835663, - 0.4034771619920836, - 0.35159062905975264 - ], - [ - 0.8934593904287125, - 0.3630965517298157, - 0.4422953129899749 - ], - [ - 0.8540125161266747, - 0.36069132735460874, - 0.4992323357014795 - ], - [ - 0.8978495748664332, - 0.3936966848288534, - 0.5360254687955043 - ], - [ - 1.0363399064180387, - 0.4808926305257247, - 0.5189836615564327 - ], - [ - 1.2325276271361396, - 0.5971294528894723, - 0.43628943883014665 - ], - [ - 1.4016456245062434, - 0.6783773463993574, - 0.30862647093451934 - ], - [ - 1.5032658233027454, - 0.7317385286853187, - 0.12545388007411865 - ], - [ - 1.4443254850383394, - 0.9549157413540155, - -0.11936367759912278 - ], - [ - 1.4406343007455955, - 0.986150085658442, - -0.31348014090758725 - ], - [ - 1.4009162240617226, - 1.0032730607753655, - -0.43991924838040736 - ], - [ - 1.336734852201346, - 1.0072776861294996, - -0.4879891173011722 - ], - [ - 1.264546951478171, - 0.9627054082404717, - -0.46685054935289105 - ], - [ - 1.207684028834978, - 0.872580362417408, - -0.3992566420075185 - ], - [ - 1.179493902759347, - 0.7787479703081072, - -0.29602314481319075 - ], - [ - 1.168876303560559, - 0.6981269005382225, - -0.1537545483283787 - ], - [ - 1.1351443868935762, - 0.6274574333566467, - 0.014014380728582682 - ], - [ - 1.0381473381089634, - 0.564427373415775, - 0.17818363861040315 - ], - [ - 0.9047161976342234, - 0.5161683720508291, - 0.3123625282217346 - ], - [ - 0.8074343549227753, - 0.4950882882495305, - 0.40670282565973687 - ], - [ - 0.779343812118978, - 0.49744032905691676, - 0.4708503016058371 - ], - [ - 0.8299976710870101, - 0.533011352409624, - 0.49825400634838113 - ], - [ - 0.972374377458581, - 0.6288465955478116, - 0.4654070393570656 - ], - [ - 1.1620675407588583, - 0.7513042771869958, - 0.38203384398092904 - ], - [ - 1.316108919817421, - 0.8396582156530564, - 0.264488455578077 - ], - [ - 1.4053938670402757, - 0.9012468003377239, - 0.09427221929089202 - ], - [ - 1.3292632875034684, - 1.1182189939247134, - -0.12362686855778043 - ], - [ - 1.3317408700581963, - 1.1603777606772916, - -0.2849208563229141 - ], - [ - 1.3034994729509515, - 1.1862946805372188, - -0.37558429485482453 - ], - [ - 1.2428038661424037, - 1.1620571029235027, - -0.3959947494483343 - ], - [ - 1.1632696016244133, - 1.0645215190875448, - -0.3735897978478025 - ], - [ - 1.0997474378647127, - 0.9398678268725477, - -0.32440406952590234 - ], - [ - 1.0654783606967848, - 0.8354896762361277, - -0.23844382940023004 - ], - [ - 1.0403228204816652, - 0.7548150394039034, - -0.11957472092597797 - ], - [ - 0.994417241392628, - 0.6955826321718425, - 0.01024933143283745 - ], - [ - 0.9075340454496398, - 0.6547164028723611, - 0.14293729879959838 - ], - [ - 0.7993447155765937, - 0.6287219175078289, - 0.2704597027822265 - ], - [ - 0.7181381281090307, - 0.619983273169846, - 0.3746678347711377 - ], - [ - 0.6952543288041184, - 0.6270856162647066, - 0.44185725516541274 - ], - [ - 0.7543808201270049, - 0.6709549905945267, - 0.45521865928476063 - ], - [ - 0.9030918110941151, - 0.7760214371147964, - 0.410931588472266 - ], - [ - 1.082762338839584, - 0.9016422185158072, - 0.3335782973251188 - ], - [ - 1.2175528378391507, - 0.9947993772294859, - 0.22642673402530503 - ], - [ - 1.293741330409987, - 1.0623212350444782, - 0.06717212725992378 - ], - [ - 1.2039814721807462, - 1.2779401835296915, - -0.11197948315380311 - ], - [ - 1.2022025237242746, - 1.3195301465655775, - -0.22578995168151444 - ], - [ - 1.1642831208531548, - 1.3267755806774693, - -0.28848017166459355 - ], - [ - 1.1003259892439914, - 1.2632140585755183, - -0.3136562603471165 - ], - [ - 1.0266004195085165, - 1.1245148638368703, - -0.31172940733931853 - ], - [ - 0.9682807962107625, - 0.9787710936681305, - -0.28154473512645095 - ], - [ - 0.9323385492185771, - 0.869995034269605, - -0.21298955774788333 - ], - [ - 0.8994818617636618, - 0.7949169961733259, - -0.12056907700138549 - ], - [ - 0.8519636759992638, - 0.7565354022601487, - -0.020758263998508757 - ], - [ - 0.7802609577376826, - 0.7432947665163755, - 0.09817736516421441 - ], - [ - 0.6912766959142693, - 0.7364400644061118, - 0.22674211799922284 - ], - [ - 0.6195549372771054, - 0.7404937294189927, - 0.32956420382313467 - ], - [ - 0.6054293975115901, - 0.7593951672447923, - 0.3900357717660785 - ], - [ - 0.6769646915696689, - 0.8122508065369644, - 0.3985405207666668 - ], - [ - 0.8283203998180504, - 0.9227157248049099, - 0.3584115647300705 - ], - [ - 0.9943159377091622, - 1.0494890903876566, - 0.2944075408666625 - ], - [ - 1.1084856287963658, - 1.1424073555093759, - 0.19742460469846237 - ], - [ - 1.1712916645642253, - 1.2147586886964337, - 0.04754756882551616 - ], - [ - 1.0622218267742274, - 1.4285892384847478, - -0.07038033900627721 - ], - [ - 1.042348227272043, - 1.4462969865697626, - -0.14639605306376516 - ], - [ - 0.9905544636448262, - 1.4149336522034404, - -0.21467406241067125 - ], - [ - 0.9332431266595307, - 1.32066736973931, - -0.26736066135941233 - ], - [ - 0.8744631885811368, - 1.1590118814955765, - -0.28544678375022126 - ], - [ - 0.823856428774097, - 0.9984031478897047, - -0.2712735848656629 - ], - [ - 0.7893738962377299, - 0.8893135447302586, - -0.22219901932030744 - ], - [ - 0.7555347822224578, - 0.8280095330859067, - -0.15206386699759208 - ], - [ - 0.711777059204575, - 0.8146442703880011, - -0.06797029146516104 - ], - [ - 0.6529559275922944, - 0.8274822417781701, - 0.049537418726818036 - ], - [ - 0.5796620693833904, - 0.8376970089610671, - 0.17633254063955864 - ], - [ - 0.524997216343526, - 0.8561141590700947, - 0.2674207717360207 - ], - [ - 0.5280594387026603, - 0.8898237662739372, - 0.32196250679559824 - ], - [ - 0.6053242262095566, - 0.9515138623091731, - 0.33830431170951336 - ], - [ - 0.7481612322403296, - 1.0666861781249983, - 0.3142433891760898 - ], - [ - 0.8981226277403549, - 1.1944754417780608, - 0.2674232614760669 - ], - [ - 0.992964940930936, - 1.2854659244885625, - 0.1796859575829984 - ], - [ - 1.0408555528859487, - 1.3632027229304033, - 0.04596230087962062 - ], - [ - 0.8959163488682248, - 1.5517726355713684, - -2.8197732111392804e-17 - ], - [ - 0.8558166341852275, - 1.530631777560869, - -0.07818633646918759 - ], - [ - 0.8026749708800681, - 1.4672165246871332, - -0.18014330359439204 - ], - [ - 0.7596365522187756, - 1.3548609333849886, - -0.25610676886056816 - ], - [ - 0.7139027844416573, - 1.1764526752300333, - -0.28779463464562377 - ], - [ - 0.6731551042513766, - 1.0041582705743026, - -0.2918954216267141 - ], - [ - 0.647298078762146, - 0.9002388132396468, - -0.26121482486985925 - ], - [ - 0.6166137341001607, - 0.8582660030520621, - -0.20377118982411094 - ], - [ - 0.5743751357934146, - 0.8699495825051607, - -0.12146593079963343 - ], - [ - 0.5231269042601143, - 0.9060823769847375, - -2.9187410149788376e-17 - ], - [ - 0.46621087056442884, - 0.9323982501518142, - 0.12146593079963337 - ], - [ - 0.434973294797538, - 0.9631361595791528, - 0.2037711898241108 - ], - [ - 0.4559806423572158, - 1.0106959866487013, - 0.2612148248698592 - ], - [ - 0.533049019611906, - 1.0850485562560055, - 0.29189542162671417 - ], - [ - 0.661886510878544, - 1.2064842847739379, - 0.2877946346456237 - ], - [ - 0.7935257107971083, - 1.3352950185571775, - 0.25610676886056827 - ], - [ - 0.8693092977913417, - 1.4287451781076401, - 0.18014330359439223 - ], - [ - 0.8976576861148314, - 1.506474834966135, - 0.07818633646918778 - ], - [ - 0.7060836587137441, - 1.6342057056831683, - 0.070380339006277 - ], - [ - 0.6601404121228749, - 1.58300871193453, - -0.04596230087962038 - ], - [ - 0.6167636758408763, - 1.5026658261577863, - -0.17968595758299824 - ], - [ - 0.5853847629062642, - 1.3750347322258134, - -0.26742326147606665 - ], - [ - 0.5496967120018169, - 1.181269722309294, - -0.3142433891760896 - ], - [ - 0.5213730637080144, - 0.9999830885782208, - -0.33830431170951325 - ], - [ - 0.5065802671330468, - 0.9022247717616244, - -0.321962506795598 - ], - [ - 0.47891800212249147, - 0.8827180058046562, - -0.2674207717360206 - ], - [ - 0.43563585574283004, - 0.9208505821768077, - -0.17633254063955855 - ], - [ - 0.3901426787642454, - 0.9792175417356445, - -0.049537418726817946 - ], - [ - 0.34961410360116074, - 1.0237391502961426, - 0.06797029146516113 - ], - [ - 0.3393098991168581, - 1.068317081390345, - 0.15206386699759208 - ], - [ - 0.37548117354712746, - 1.128274619591304, - 0.22219901932030744 - ], - [ - 0.4527142749037878, - 1.212682170334345, - 0.27127358486566294 - ], - [ - 0.5665021383726002, - 1.3368132767333945, - 0.2854467837502213 - ], - [ - 0.6771099288136528, - 1.4685459404640255, - 0.2673606613594123 - ], - [ - 0.730091255655262, - 1.5653121554502083, - 0.2146740624106711 - ], - [ - 0.7313558181502745, - 1.6258485376921463, - 0.14639605306376516 - ], - [ - 0.5047379273632878, - 1.6816486323591595, - 0.11197948315380311 - ], - [ - 0.46636605159687183, - 1.6217476811017972, - -0.04754756882551578 - ], - [ - 0.4351109769431375, - 1.5311803920223082, - -0.19742460469846224 - ], - [ - 0.4117262444157529, - 1.3858474066377093, - -0.29440754086666227 - ], - [ - 0.38493505824339824, - 1.1787043711177707, - -0.35841156473007046 - ], - [ - 0.36494748692057627, - 0.9923940236329131, - -0.3985405207666667 - ], - [ - 0.3549408075893278, - 0.9040148220653408, - -0.39003577176607857 - ], - [ - 0.3315089123813756, - 0.9067971794315441, - -0.32956420382313484 - ], - [ - 0.29213745618320647, - 0.9668832119089835, - -0.2267421179992228 - ], - [ - 0.25358167143436305, - 1.0473731942401971, - -0.09817736516421442 - ], - [ - 0.22919703921993623, - 1.1160898876470116, - 0.020758263998508747 - ], - [ - 0.23867738170428676, - 1.1764326406173167, - 0.12056907700138533 - ], - [ - 0.2872685262345025, - 1.2424263856856177, - 0.2129895577478832 - ], - [ - 0.36350023350109817, - 1.327941314349208, - 0.281544735126451 - ], - [ - 0.4605582292616702, - 1.451319474748572, - 0.31172940733931853 - ], - [ - 0.5438124705220471, - 1.5845172884172982, - 0.31365626034711647 - ], - [ - 0.5668797975609612, - 1.6716865501949945, - 0.28848017166459344 - ], - [ - 0.5416453661230568, - 1.7009029993217752, - 0.22578995168151458 - ], - [ - 0.30377441198134464, - 1.7102852722583786, - 0.12362686855778043 - ], - [ - 0.27312651132318444, - 1.6515734755831648, - -0.06717212725992326 - ], - [ - 0.2527451134300985, - 1.5518313766332827, - -0.2264267340253048 - ], - [ - 0.23946389693945727, - 1.388520800954038, - -0.3335782973251184 - ], - [ - 0.22050837287566452, - 1.1701111689145993, - -0.4109315884722658 - ], - [ - 0.20387365658730697, - 0.9887904496549886, - -0.4552186592847606 - ], - [ - 0.1954449096309972, - 0.9156507189678194, - -0.44185725516541274 - ], - [ - 0.17785220043199884, - 0.9319174989535475, - -0.3746678347711376 - ], - [ - 0.14481679468954733, - 1.0066137888240911, - -0.2704597027822264 - ], - [ - 0.11323401443701195, - 1.1133057395948298, - -0.14293729879959846 - ], - [ - 0.10518360919574876, - 1.2089819090931795, - -0.010249331432837502 - ], - [ - 0.1335275890414998, - 1.2783535103757517, - 0.11957472092597765 - ], - [ - 0.19081610387172987, - 1.340476165664078, - 0.2384438294002297 - ], - [ - 0.26407569533894476, - 1.4223431323739637, - 0.3244040695259023 - ], - [ - 0.34026787759280824, - 1.5396817860007177, - 0.3735897978478023 - ], - [ - 0.3849690387086998, - 1.6573282714625872, - 0.39599474944833396 - ], - [ - 0.37561159324410115, - 1.7220109976637603, - 0.3755842948548245 - ], - [ - 0.3390461837039364, - 1.7335103050670353, - 0.28492085632291425 - ], - [ - 0.10481854796705836, - 1.7282804320534906, - 0.1193636775991228 - ], - [ - 0.07780569065177306, - 1.66773019134859, - -0.09427221929089154 - ], - [ - 0.06911088534314917, - 1.5596128665357119, - -0.26448845557807676 - ], - [ - 0.06961481963641486, - 1.3820321498039785, - -0.38203384398092877 - ], - [ - 0.05840993809847283, - 1.1565242106421159, - -0.46540703935706557 - ], - [ - 0.04660253614872955, - 0.9853047444480838, - -0.4982540063483811 - ], - [ - 0.041124055770691566, - 0.9236517041057005, - -0.47085030160583713 - ], - [ - 0.025041857278858767, - 0.9468028073761893, - -0.40670282565973687 - ], - [ - -0.005343175991035946, - 1.0415913963919146, - -0.3123625282217347 - ], - [ - -0.0302652250850948, - 1.1812756543814424, - -0.1781836386104033 - ], - [ - -0.02417811636655054, - 1.2967925926914718, - -0.01401438072858279 - ], - [ - 0.02015747915111328, - 1.3613400230342056, - 0.1537545483283782 - ], - [ - 0.08466857405271709, - 1.4108456685525, - 0.2960231448131904 - ], - [ - 0.15183474627941873, - 1.4821752299245337, - 0.39925664200751854 - ], - [ - 0.20145386415783195, - 1.5764824883784998, - 0.46685054935289094 - ], - [ - 0.20396063875268206, - 1.661285183195152, - 0.4879891173011722 - ], - [ - 0.16840184553317444, - 1.7148655689989072, - 0.43991924838040747 - ], - [ - 0.13371387575161353, - 1.7407009448381372, - 0.3134801409075876 - ], - [ - -0.0947883624580406, - 1.732078971996264, - 0.10747244894286113 - ], - [ - -0.11792875688203816, - 1.6677356559637657, - -0.1254538800741181 - ], - [ - -0.11333079691940198, - 1.5530493911253902, - -0.30862647093451906 - ], - [ - -0.09913453801788344, - 1.3659649624107886, - -0.4362894388301463 - ], - [ - -0.1017047186810176, - 1.1379430011764722, - -0.5189836615564326 - ], - [ - -0.10797345698571378, - 0.9744088830258163, - -0.5360254687955042 - ], - [ - -0.11463840564951705, - 0.919942197792873, - -0.49923233570147973 - ], - [ - -0.13227885738980508, - 0.9553068052259317, - -0.442295312989975 - ], - [ - -0.1574366495597894, - 1.0796425999951387, - -0.3515906290597527 - ], - [ - -0.17557499759689782, - 1.2499776618121643, - -0.1952009928843635 - ], - [ - -0.15819413950143837, - 1.368955603401638, - 0.013499419488562724 - ], - [ - -0.09746846246228862, - 1.4120807122582708, - 0.21782440959101335 - ], - [ - -0.027883127576160037, - 1.4391652459477364, - 0.3759941119634382 - ], - [ - 0.02679737940957251, - 1.4876591740873872, - 0.4928380928412976 - ], - [ - 0.05120517251291788, - 1.5472147539597014, - 0.5645928388259166 - ], - [ - 0.02152564503887945, - 1.6090104465813404, - 0.5579623077089878 - ], - [ - -0.034112369592034175, - 1.678580794592149, - 0.4714248717163824 - ], - [ - -0.06884735253830625, - 1.7344282586218949, - 0.32119087711778577 - ], - [ - -0.29548741322432615, - 1.7168452155424967, - 0.08912168119729112 - ], - [ - -0.31141411789256335, - 1.6514069981440977, - -0.16024274482028197 - ], - [ - -0.2941816805574621, - 1.5315914483693591, - -0.35578463541863037 - ], - [ - -0.26815041308457765, - 1.3386114864169971, - -0.4913911583496358 - ], - [ - -0.2612605366539801, - 1.1140061430834585, - -0.571151780210455 - ], - [ - -0.2655107314216385, - 0.9639189404636964, - -0.5798337207712556 - ], - [ - -0.27736460771938753, - 0.9241168110913018, - -0.5406768244746659 - ], - [ - -0.2928435530678837, - 0.9760481671688616, - -0.48233436515068917 - ], - [ - -0.30937957629350443, - 1.124099860891356, - -0.377503599902455 - ], - [ - -0.32208669372368615, - 1.3085015274180225, - -0.18488232654949205 - ], - [ - -0.2925424116520317, - 1.4093108206034848, - 0.0701306577309591 - ], - [ - -0.21483720176674492, - 1.4158358853954, - 0.3001483706223947 - ], - [ - -0.1444788252242269, - 1.4137981959958965, - 0.46122535173594087 - ], - [ - -0.10389113436888645, - 1.4361699139456314, - 0.5777030117693314 - ], - [ - -0.0975921463040118, - 1.4718132584104848, - 0.6365016503908328 - ], - [ - -0.15052603294447847, - 1.5364322851625918, - 0.59749833097071 - ], - [ - -0.22660100779285158, - 1.6346993842027788, - 0.4840768423440809 - ], - [ - -0.2696283271513219, - 1.7133559340753117, - 0.3192739456718186 - ], - [ - -0.49665616641927374, - 1.6788247850574136, - 0.06388001019318096 - ], - [ - -0.503337330391104, - 1.6165931854545963, - -0.19717664733667806 - ], - [ - -0.47476344825038996, - 1.4932117310897404, - -0.4016945242375691 - ], - [ - -0.438542930919616, - 1.2993277870299507, - -0.5427673190280514 - ], - [ - -0.4215067697901963, - 1.086721993270638, - -0.6206780663186218 - ], - [ - -0.42139058139630403, - 0.9602690803588292, - -0.6251345306405945 - ], - [ - -0.4333781946987351, - 0.9417319097869105, - -0.5820555908634444 - ], - [ - -0.4466879142577158, - 1.0071925530109183, - -0.5126408243001628 - ], - [ - -0.4616813104823462, - 1.1656110833134719, - -0.38006496266924894 - ], - [ - -0.46957922033123173, - 1.3416583636639823, - -0.14416318827927446 - ], - [ - -0.4232758861874059, - 1.4039422931394017, - 0.14682068165171416 - ], - [ - -0.32930354948152984, - 1.369192914960485, - 0.3843855959690511 - ], - [ - -0.2574372494745114, - 1.3419040250158751, - 0.534206652106575 - ], - [ - -0.22620515316581238, - 1.3450635731412517, - 0.6353152355179481 - ], - [ - -0.23763391609839257, - 1.3751142056992092, - 0.6739285809181627 - ], - [ - -0.3154464033471995, - 1.4576063265538188, - 0.6154160028402362 - ], - [ - -0.41369176148235637, - 1.577210166379819, - 0.4891098605082971 - ], - [ - -0.4695316195930924, - 1.6673684085786409, - 0.3102183165465726 - ], - [ - -0.693595638118284, - 1.614183387994419, - 0.033113672532758744 - ], - [ - -0.6931777052761988, - 1.5583964675531148, - -0.2327774911592106 - ], - [ - -0.6551010568257375, - 1.435831018329033, - -0.44103704076598854 - ], - [ - -0.6115722439297878, - 1.2468827954845232, - -0.584572775661006 - ], - [ - -0.5844950094577686, - 1.0521930342670969, - -0.66043058255366 - ], - [ - -0.575052081717393, - 0.9513919659707781, - -0.6593386412348755 - ], - [ - -0.5825593165951204, - 0.951911493879831, - -0.6078263236853988 - ], - [ - -0.5967539656218468, - 1.0295565776154234, - -0.5212092483975067 - ], - [ - -0.6149329585992234, - 1.1900922630417519, - -0.3543052113484586 - ], - [ - -0.613775318321845, - 1.3373759184869103, - -0.07875347615938563 - ], - [ - -0.5440182956576401, - 1.3500881670286586, - 0.22849551863677905 - ], - [ - -0.4329147324185267, - 1.2816817815140111, - 0.45498374095819544 - ], - [ - -0.35834691672215824, - 1.2374661080824731, - 0.5855360174787573 - ], - [ - -0.3351735665272444, - 1.2294265906598727, - 0.6661809663348722 - ], - [ - -0.3691021826028168, - 1.2667532121301974, - 0.6865915235158722 - ], - [ - -0.47527459676260636, - 1.3686920957431765, - 0.6194975052899337 - ], - [ - -0.5931059070773452, - 1.4978552813801602, - 0.4856431573272357 - ], - [ - -0.6615630710806435, - 1.5929697731058068, - 0.29177015116688076 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.3811326661850898, - 0.02448244356343087, - -0.002830447249048559, - 0.0016098629516795799, - -0.00012693769295465338, - -0.0008081108512745523, - -0.00010116550435315649, - 0.2844601632312015, - -0.11064835168998781, - 0.0013289062044977928, - 0.001769896721364001, - -0.000623385312415337, - 0.00027389994449362223, - 8.0231441521585e-05, - 0.11353806443952061, - 0.07613485613812707, - 0.02264537258153299, - -0.0031668335274072893, - -0.0011157211797280862, - 0.0007035294449001908, - 0.00035054236552418467, - -0.027153509541833258, - 0.002900077467060187, - -0.001402887083933869, - -0.004400920182544234, - 0.0012112055924743946, - -0.0005039058676451317, - -0.00035758997930735955, - -0.0007355745307802166, - 0.007166015481108517, - 0.002379910200932624, - -0.0034019391938605505, - 0.0014123568052263526, - 0.0002334153042404234, - -0.00025739966130925953, - -0.0028966262041676535, - -0.008322861648202173, - -0.002048930338260883, - 0.00020855358642181903, - 0.000971434007877387, - -0.0002817737500145236, - 0.00021504717140184652, - 0.0032306824543586994, - -0.0004232272225387029, - 0.0015224514551124976, - 0.00020908444286002004, - 0.0005262543243252864, - -0.00022933594363605878, - -1.804127748026717e-05, - 0.2300486034921893, - -0.007859593284410169, - -0.0016990523241952648, - -0.00037841557716980024, - -0.0005389954382825479, - 0.0002532270866895827, - -0.06988970835272597, - -0.025102631410956994, - 0.004756882044005857, - 0.0017665579136541423, - -1.1406237394592485e-06, - -0.0006720143875246866, - 0.0034580648327663293, - 0.004183111222119428, - 0.003966255358872766, - -0.0011128295924487134, - -0.0001472099178421518, - 0.0002261775183119312, - -0.0013006936515008224, - -0.0024863836478352056, - 0.0026535092591935525, - -0.0018170655191923515, - -0.00013773917337013666, - 0.00029830374531614667, - 0.007565497635764069, - 0.00404715668989351, - 0.00014020938960207982, - -0.0008051899677703314, - 0.0004970388844870179, - -0.0003367232954883513, - -0.0006308508652569744, - -0.00040333650397185076, - -0.0007461787010372589, - -0.0004525254651366259, - 0.00025266737855478695, - -3.012045040843106e-05, - -0.0020416197292635148, - -0.0003495317985105897, - 0.0011663722608696813, - 9.278140933081674e-05, - 0.00041754997080649484, - 0.00013545466709419894, - 0.049429341194476686, - 0.0014312780073575328, - -0.0006030257532588873, - 0.00019494965177286323, - -0.0007584066856589742, - -9.252930724318059e-05, - -0.04624601389097408, - -0.002851105255080838, - 0.0007480969839141016, - 1.9227126003597117e-05, - -0.0007025375410129719, - -0.0004126187595215216, - -0.00039978335699845317, - 0.0005791070117796877, - -0.0003044058853432315, - -0.0007826211780843478, - 0.0008247258844624956, - 0.00028142442622312207, - -0.00044490951053858185, - 0.0020866493519219047, - -0.0006415743825804805, - 0.00010395065945623699, - -7.948266440632746e-05, - 4.3495451140307386e-05, - 0.0033562270379838724, - 0.0011918760524910524, - -0.0005607233284846007, - 1.919539842301449e-06, - 4.485370055190845e-05, - -0.0002625320986599554, - 0.001635277705803326, - 0.00019266236961042543, - 0.00024039714896450894, - -0.00021135395787220292, - 0.00017233063594159265, - 9.105249317051247e-05, - 0.05250363998920236, - 0.10285196575967044, - -0.005173641928745492, - -0.0004991210581259668, - -0.00021287241704597142, - -0.0004573223170278472, - 0.0006166734226666022, - 0.016715470013882787, - -0.06070866890882583, - -0.001991260468037734, - 0.0024527610709208746, - 0.00036863070510259794, - 0.00030902105569256995, - -0.000410654594509358, - -0.007673892311640518, - -0.005158232879871336, - 0.0033992277420724273, - -0.0008513108810175304, - -0.0007097190875179632, - 6.744425613779714e-05, - 0.0002415099869852849, - 0.0004909764346481123, - 0.002776402315315485, - -0.001350326841518264, - -0.0007916257428287475, - 1.8381201314918053e-05, - -0.00019344397456574916, - 0.00019250924770593508, - 0.0006532901225544868, - 0.0022333353079212926, - -0.00032530149832245335, - -0.0002844503734357783, - 0.0004046657509103282, - 0.00018948508431952207, - -0.00027991506591093317, - 0.0014276636365315799, - 0.0026530836598983158, - -0.0002690023682302062, - -0.00042193616278779695, - -9.163899538739768e-05, - 9.31128946151891e-05, - 0.00012616723226187656, - 0.02236051962756462, - -0.00863176292606751, - 0.0027495175272335744, - 0.0006455608092370358, - -0.0002677925753307976, - 7.010546569205235e-05, - -0.14386803873968534, - 0.008342280513282447, - -0.0007037475816376946, - -0.0005850756426881015, - 0.00036684969176461595, - -4.852651470927419e-05, - 0.009670042594392534, - 0.026324961691259884, - -0.0041362262999389, - -0.0015204787162155342, - 0.00011729867137330496, - 6.74864870675413e-05, - -0.008941371188522979, - -0.006840028276305798, - -0.0032636083512546997, - 0.001599973650381018, - -0.0003600551876431872, - -5.6100628872548886e-05, - 0.0016885289098471866, - 0.004908140372480334, - -0.004212685136955856, - 0.0019083439904902001, - 9.832820691762187e-05, - -7.448456393358958e-05, - -0.003561339351190498, - -0.001606692070174365, - -0.0008212059808706245, - 0.0010283590848846056, - -0.00032895307765388955, - 0.0001826496409730601, - -0.000920111811764803, - 0.0008970326725869421, - 0.0002809816487367133, - 0.00039566958995572297, - -0.0003670132179938746, - 6.256355520928102e-05, - -0.5080577506953411, - -0.20661009635990735, - 0.0024736635706574064, - -0.001967670697636021, - 0.0006519511703533562, - -3.8244803146363185e-05, - -0.0001188715670170747, - -0.010100794868308094, - 0.0009174831646416852, - 0.023713092773250843, - -0.001648236934550094, - -0.0015725442134146678, - 0.00023755820276267673, - 0.00011477753092802907, - -0.016544477238294338, - -0.012803232231848136, - -0.0024051727889748474, - -0.004418921641916007, - 0.0010544930179243338, - 0.0001267627015678787, - 5.369372462833654e-05, - 0.0027789391551945168, - 0.005650788763831649, - 0.00620618122044694, - -0.004792183212916292, - 0.0018271508925651382, - 0.0001038440447451111, - -0.00015123239494420986, - -0.004253475216029981, - -0.005316051806309542, - -1.6686249389078527e-05, - 0.00020210327316631867, - 0.0007899403901454753, - -0.00042878058433706086, - 0.00017825769500408572, - 0.00012932051172802805, - -0.002704919646583892, - 0.0012798733816245468, - 0.00023839100771304436, - 0.00039741168658185454, - -0.00024464051131811476, - 5.3395079680768744e-05 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface9": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -3.5163378272471846, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_8.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_8.vts deleted file mode 100644 index 7f80bf98d..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_8.vts and /dev/null differ diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_9.json b/examples/2_Intermediate/inputs/input_ncsx/surface_9.json deleted file mode 100644 index b53e34c2b..000000000 --- a/examples/2_Intermediate/inputs/input_ncsx/surface_9.json +++ /dev/null @@ -1,7022 +0,0 @@ -{ - "@module": "simsopt._core.json", - "@class": "SIMSON", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "graph": [ - { - "$type": "ref", - "value": "BoozerSurface10" - }, - { - "iota": -0.5014295841164587, - "G": 13.88748188997289 - } - ], - "simsopt_objs": { - "140342738246336": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738246336", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.506387961733893, - 0.1058930714809362, - 0.7258942274042265, - -0.001249592121112775, - 0.2763105569564668, - 0.01482550301512887, - -0.1280092780227772, - 0.005921392096802394, - 0.01864241438718947, - -0.01034831723350223, - 0.0001022108294955593, - 0.01892666378143068, - -0.007192153616853929, - -0.007355339046239706, - -0.01884714563379878, - -0.002596706082945131, - 0.01131859363705868, - 0.00964754529816095, - -0.0113260687651076, - -0.006628855789771619, - 0.000322284209286623, - 0.001842953924532827, - -0.0004161340928027646, - 0.00176264188836799, - 0.001814459617914206, - -0.001883356200860781, - -0.003584967425237995, - 0.0003165409191237933, - 0.00198839685289703, - 0.0007998064690618334, - 0.0005809753916376526, - 4.996792424044994e-05, - -0.0009656219012175038, - -0.001300735471703214, - -0.0004500391754653399, - 0.002413016477450284, - 0.00190334965179141, - -0.001622873850792805, - -0.001817132111793323, - 0.0005008124937015768, - 0.0009410326413637304, - 0.0005073038161052906, - -0.0001747050570155717, - -0.0004010070348672179, - 0.0002171330554898199, - 0.0001868680753017027, - -0.00049371483741256, - -1.263882515020243e-05, - 0.0005663593123846766, - 0.0001291744509577553, - -0.0002415255915965764, - 0.2855239540187146, - 0.02831674064739627, - 0.1230646086878452, - -0.1881027707999307, - -0.03092022550185042, - 0.07598032813641656, - 0.032842960392996, - -0.02022733960800226, - 0.03368541189764687, - -0.02527069889002642, - 0.03990545352197854, - 0.03266977475756579, - 0.007041509561223136, - -0.01843202758194484, - -0.003255107459418295, - 0.001087406605704745, - 0.02057587403483786, - 0.004332699549632209, - -0.003239348172858322, - -0.008060517809116506, - 0.0008303250764389791, - 0.002593682135814645, - 0.005122620691996364, - 0.002329497971206275, - -0.007021762243403233, - -0.002076255998522319, - 0.005455573755227739, - 0.0004034355313731426, - -0.002121189074115063, - -0.001155709211846629, - 0.0007060503790857225, - 0.001458108819397405, - 0.0007612900914783658, - -0.001579374591052191, - -0.0005648184298353118, - -3.483600030825498e-05, - 0.0006434230018098444, - 0.0002266872576160417, - -0.0005870263149471541, - -0.0004782734366555642, - 0.0004131000234993432, - -0.0002086017812282408, - -0.0002217317708794842, - 0.0004459870616389726, - 0.0002232186481886098, - -0.000550989811641543, - -0.0004679750418668452, - 0.0001971289820931924, - 0.0006305703105299488, - 1.94634036466225e-05, - -0.0005071137243856577, - 0.0009455853398023695, - -1.066704925256128, - 0.01954765252843791, - -0.03091192279856904, - -0.009251669123731003, - 0.03622032973711591, - 0.01289395028459556, - -0.01341289215090563, - -0.01055557464591715, - -0.007044726977866961, - -0.007171173731457627, - 0.01327231838496817, - 0.003220259676106272, - -0.006043809337864334, - -0.006228107449831786, - -0.0004722020937025503, - -0.0007632924616726337, - 0.0002557840887866895, - -0.0008300983337148277, - 0.001290373849098229, - 0.0002249498117545818, - -0.0003276137574950353, - -0.001560853624251917, - -0.003125967131907846, - 0.0007111137798287738, - 0.001688245514976161, - 0.00083638883723687, - -3.216802700299113e-05, - -0.003601309499252412, - -0.003364173533240832, - 0.003283863928203238, - 0.003620244544063828, - -0.001109032285114347, - -0.002277398193829699, - -0.0015519788484098, - 0.0002155015553257128, - 0.002349143532954114, - 0.000703914196138795, - -0.001628934087145739, - -0.0005728748367786014, - 0.000379102967651227, - 3.674770297429017e-05, - 0.0003644795696035227, - 0.0001196573774128766, - -0.0004826910821886253, - 1.895960151025164e-05, - 0.0002282029938596129, - -3.982416558199763e-05, - -0.0001869395233315697, - -0.0002051724761620464, - 0.0001303574263284748 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier1": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738246336" - } - }, - "140342738367104": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367104", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 652271.9419853 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current1": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 652271.9419853, - "dofs": { - "$type": "ref", - "value": "140342738367104" - } - }, - "Coil1": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "140342738247296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738247296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.268960636199869, - 0.2234285580503567, - 0.5468300987692021, - -0.07598922426224614, - 0.2314838962751658, - 0.01035784318060333, - -0.08314304549672957, - -0.04624738986383844, - 0.05377747860630284, - -0.001074456865203822, - -0.02151604922154927, - -0.01446679290684195, - 0.008416712252875694, - -0.009228184118107326, - 0.005277266362275169, - 0.01142201731157229, - 0.01681398796325401, - 0.009993706195866578, - 0.001370286955930781, - -0.008399573830195455, - -0.005099919856215084, - 0.005334309041669094, - -0.001419513324650316, - -0.003333508834690296, - 0.0002887180426140212, - -0.0001690909516323616, - -0.001592036575525169, - -4.507713399549196e-05, - 0.005287560419413426, - 0.001265480827581528, - -0.001229918688675425, - 0.001129035262308468, - -0.002142778995712242, - -0.001748186446934164, - 0.000763477629872682, - 0.0006002693299791978, - -0.0003618301004192371, - 0.000988040168005559, - 0.0007880569343915778, - -0.001135722890360471, - -0.0008706368325040781, - 0.0005507322770281398, - 0.0009555809731928289, - -0.0001476990895937402, - -0.001054028588515068, - -1.482885559572655e-05, - -0.0001592869344899095, - -0.0004579572172035079, - 0.0006274586578504227, - 0.0005393401407410331, - -3.182089243244368e-05, - 0.7629396044020591, - 0.189701305549749, - 0.2946730680990991, - -0.1569360429309221, - -0.08805875862294558, - -0.03077704895086764, - 0.1149783480591024, - 0.1301411562027019, - -0.001461622206151801, - 0.04030157913855995, - 0.0006901390690664732, - -0.02740323125842794, - -0.02323299800745342, - 0.006389595554305861, - 0.003627095782551136, - -0.01015301262258172, - -0.00621023311542419, - -0.003238881121248944, - -0.006852312518149265, - 0.005609446955056436, - 0.004762124576622897, - 0.006665063843140196, - -6.70526269177163e-05, - -0.003587348009623233, - -0.00322170321999071, - -0.004203038352780501, - 0.0006017815497404605, - 0.001489961187320675, - 0.002190828148742953, - -0.001018226063168117, - -0.002311412742654803, - 0.0005349636274747352, - 0.0005836793424641873, - 0.0003330260000362103, - 0.0006191475972028521, - 0.0004562062905476333, - -0.0003998259903290102, - -0.001606870160409875, - -0.0001005634411503442, - 0.0003784623778643909, - 0.0003873441313675419, - 0.0004934685418203405, - 0.0004248568990090018, - -0.0001368925780341768, - -0.0005224641202364183, - 7.402330001924084e-06, - 0.0001942482764948633, - 3.004761739695799e-05, - 0.0001571480542442944, - -1.517325817427362e-05, - -0.0001596571201453762, - -0.004342453367498795, - -0.8322915538683627, - 0.01842619538559772, - -0.1445740110997678, - -0.03919221672360253, - 0.0181885023851906, - 0.007857938792447916, - -0.0008409533080505334, - 0.0679882056193599, - -0.008440199737942872, - -0.05052693032193879, - 0.0111459982531894, - -0.002854468104354866, - -0.01157234174126346, - -0.002254287431014864, - 0.01222589681633306, - 0.007524606302699996, - -0.006381505382857464, - 0.003239076046582923, - 0.00341366498860203, - -0.00384676331619515, - 0.0004019843766106519, - 0.003278371413101953, - -0.001659157168404143, - -0.008498109023400214, - -0.0005869360684358228, - 0.001643969359882166, - -0.001687685453312147, - 0.001913710312578008, - 0.00307704389234268, - -0.001526906838827543, - -0.002096608532065649, - 0.002116359835823416, - 0.0002080593023590777, - -0.001289011271870523, - 0.0003465163727308783, - 0.0003373949660992973, - -0.0005853247790129025, - -0.0007569823284455652, - -3.821511752005806e-05, - 0.0008610335506290439, - 0.0002833895542749826, - -4.205984435378816e-05, - 0.0001112528084110792, - -0.0002379239249443648, - -0.0002104661224579025, - 0.0001263747200842462, - -0.0001533284829536013, - 0.0001522993485716547, - 0.0003185888026784711, - -0.0001603437887349448 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier2": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738247296" - } - }, - "140342738367296": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367296", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 651868.5693674 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current2": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 651868.5693674, - "dofs": { - "$type": "ref", - "value": "140342738367296" - } - }, - "Coil2": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "140342738366624": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738366624", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.8980851593547453, - 0.1942559921705813, - 0.3889755333770718, - -0.1446923384557668, - 0.2616477438027761, - 0.03731920597998046, - -0.03289705406442186, - 0.02547136484396155, - 0.0532217952204826, - 0.050428478861979, - -0.03624366941253683, - -0.005451626158324006, - -0.01668041626206209, - 0.008182439166261426, - 0.003842296843932926, - 0.01470476196344816, - 0.01901860245900076, - 0.0218942171541043, - -0.00945061997881808, - 0.002564135600286371, - -0.006766476390874592, - -0.001269140258791196, - 0.002139997339095541, - 0.001657675366985779, - 0.0002979912903074711, - 0.006328865782046154, - 0.0004567550240531948, - -0.0008525115686061069, - -0.000977103914377314, - 0.0005522046297053057, - -0.0009600861596635313, - -0.001340814451660981, - -0.001495132545615355, - 0.0006434008787568705, - 0.000495245187218385, - -0.00134743162348104, - 0.0002393656261548005, - 0.0003132890671380592, - 0.0006144326019911972, - -0.0005029044211924421, - -0.000783957033721161, - -0.0004002250154653492, - 0.0002391300413782915, - -0.0003806672575232206, - -0.000145466845504183, - -7.221379723120868e-05, - 0.0006927366534479363, - -0.0001275371930022123, - -0.0001401106599127933, - -0.0002158625680600062, - -7.139828388354475e-05, - 1.129181984052873, - 0.2708936854358476, - 0.468646640557997, - 0.02081652240284051, - -0.1928735276123626, - -0.03518255586981031, - 0.01192001522947444, - -0.06439441858177399, - -0.004172035660790115, - -0.016589458610143, - 0.001628354566592241, - 0.003299047220307412, - 0.02371335634022325, - -0.02489732104888577, - 0.01517053799913132, - -0.007490250276888437, - -0.02121728304870823, - -0.006509759115093021, - 0.002045879344162137, - 0.0002421911767798572, - 0.005286626183968976, - -0.002423351884665077, - 0.003037404376098953, - -0.001045524131070646, - -0.001371894636819662, - 0.0002683048956511064, - 0.0006396825080884871, - 0.0006110891778951719, - -0.001898949452431453, - -0.001413075309279682, - -0.000175565426273192, - 0.00025798969577147, - 0.001643409441239691, - 7.18696208370806e-05, - -0.0001583133254478763, - 0.001580406281910882, - -0.002161287927547965, - -0.0003891297580205399, - 0.0004807171148380796, - -0.0003779554431875909, - -0.000203599914921071, - 0.0002418121495980502, - -0.0001924002563136939, - 0.0004205862222447268, - -0.0003081775538974041, - -1.457104090324735e-05, - -0.0001305465480840895, - -2.931233724533855e-05, - 3.39235991969411e-05, - -8.787891234509293e-05, - -0.0002714497625897205, - 0.01443108431390148, - -0.5884600992390547, - 0.1639153375972931, - -0.02326901782799053, - -0.09503676743509344, - -0.001882227773385535, - -0.1358423641287697, - -0.04946480830906624, - 0.01080325660372903, - -0.004462853204566593, - 0.02204832208587066, - -0.01988057349197482, - 0.006713767349457029, - 0.009816410920710776, - -0.004595941635687146, - 0.01307328931917959, - 0.0183731152740804, - -0.002049019816619709, - -0.009421893063595877, - 0.0003683472428279665, - 0.005559370162880608, - -0.001158799750525409, - 0.002656529580593774, - 0.005458828901239469, - 0.003685058507882478, - 0.005539080181031877, - 0.0003319744004354147, - 0.003297209047830778, - -0.001172958360845208, - -6.403055114502017e-05, - -0.0028127900802783, - -7.412199662635927e-05, - -1.404234804116165e-06, - 0.002212349409834762, - 0.001726905111358576, - 0.0009310945379894919, - -0.0002426222281296402, - 0.0007504861042380895, - -0.001511448440947522, - -0.0002060956498950368, - -0.000206480198377301, - 8.668234567299965e-05, - 0.0001267761162311387, - 1.493158313140079e-05, - 0.0001119337013982711, - 0.0003201242558262467, - 0.00016404919743365, - -0.0002679743018523173, - -0.000169663995881007, - 0.0002693900147788098, - -0.0001731877336642894 - ] - }, - "names": [ - "xc(0)", - "xs(1)", - "xc(1)", - "xs(2)", - "xc(2)", - "xs(3)", - "xc(3)", - "xs(4)", - "xc(4)", - "xs(5)", - "xc(5)", - "xs(6)", - "xc(6)", - "xs(7)", - "xc(7)", - "xs(8)", - "xc(8)", - "xs(9)", - "xc(9)", - "xs(10)", - "xc(10)", - "xs(11)", - "xc(11)", - "xs(12)", - "xc(12)", - "xs(13)", - "xc(13)", - "xs(14)", - "xc(14)", - "xs(15)", - "xc(15)", - "xs(16)", - "xc(16)", - "xs(17)", - "xc(17)", - "xs(18)", - "xc(18)", - "xs(19)", - "xc(19)", - "xs(20)", - "xc(20)", - "xs(21)", - "xc(21)", - "xs(22)", - "xc(22)", - "xs(23)", - "xc(23)", - "xs(24)", - "xc(24)", - "xs(25)", - "xc(25)", - "yc(0)", - "ys(1)", - "yc(1)", - "ys(2)", - "yc(2)", - "ys(3)", - "yc(3)", - "ys(4)", - "yc(4)", - "ys(5)", - "yc(5)", - "ys(6)", - "yc(6)", - "ys(7)", - "yc(7)", - "ys(8)", - "yc(8)", - "ys(9)", - "yc(9)", - "ys(10)", - "yc(10)", - "ys(11)", - "yc(11)", - "ys(12)", - "yc(12)", - "ys(13)", - "yc(13)", - "ys(14)", - "yc(14)", - "ys(15)", - "yc(15)", - "ys(16)", - "yc(16)", - "ys(17)", - "yc(17)", - "ys(18)", - "yc(18)", - "ys(19)", - "yc(19)", - "ys(20)", - "yc(20)", - "ys(21)", - "yc(21)", - "ys(22)", - "yc(22)", - "ys(23)", - "yc(23)", - "ys(24)", - "yc(24)", - "ys(25)", - "yc(25)", - "zc(0)", - "zs(1)", - "zc(1)", - "zs(2)", - "zc(2)", - "zs(3)", - "zc(3)", - "zs(4)", - "zc(4)", - "zs(5)", - "zc(5)", - "zs(6)", - "zc(6)", - "zs(7)", - "zc(7)", - "zs(8)", - "zc(8)", - "zs(9)", - "zc(9)", - "zs(10)", - "zc(10)", - "zs(11)", - "zc(11)", - "zs(12)", - "zc(12)", - "zs(13)", - "zc(13)", - "zs(14)", - "zc(14)", - "zs(15)", - "zc(15)", - "zs(16)", - "zc(16)", - "zs(17)", - "zc(17)", - "zs(18)", - "zc(18)", - "zs(19)", - "zc(19)", - "zs(20)", - "zc(20)", - "zs(21)", - "zc(21)", - "zs(22)", - "zc(22)", - "zs(23)", - "zc(23)", - "zs(24)", - "zc(24)", - "zs(25)", - "zc(25)" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "CurveXYZFourier3": { - "@module": "simsopt.geo.curvexyzfourier", - "@class": "CurveXYZFourier", - "@name": "CurveXYZFourier3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "quadpoints": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.004, - 0.008, - 0.012, - 0.016, - 0.02, - 0.024, - 0.028, - 0.032, - 0.036000000000000004, - 0.04, - 0.044, - 0.048, - 0.052000000000000005, - 0.056, - 0.06, - 0.064, - 0.068, - 0.07200000000000001, - 0.076, - 0.08, - 0.084, - 0.088, - 0.092, - 0.096, - 0.1, - 0.10400000000000001, - 0.108, - 0.112, - 0.116, - 0.12, - 0.124, - 0.128, - 0.132, - 0.136, - 0.14, - 0.14400000000000002, - 0.148, - 0.152, - 0.156, - 0.16, - 0.164, - 0.168, - 0.17200000000000001, - 0.176, - 0.18, - 0.184, - 0.188, - 0.192, - 0.196, - 0.2, - 0.20400000000000001, - 0.20800000000000002, - 0.212, - 0.216, - 0.22, - 0.224, - 0.228, - 0.232, - 0.23600000000000002, - 0.24, - 0.244, - 0.248, - 0.252, - 0.256, - 0.26, - 0.264, - 0.268, - 0.272, - 0.276, - 0.28, - 0.28400000000000003, - 0.28800000000000003, - 0.292, - 0.296, - 0.3, - 0.304, - 0.308, - 0.312, - 0.316, - 0.32, - 0.324, - 0.328, - 0.332, - 0.336, - 0.34, - 0.34400000000000003, - 0.34800000000000003, - 0.352, - 0.356, - 0.36, - 0.364, - 0.368, - 0.372, - 0.376, - 0.38, - 0.384, - 0.388, - 0.392, - 0.396, - 0.4, - 0.404, - 0.40800000000000003, - 0.41200000000000003, - 0.41600000000000004, - 0.42, - 0.424, - 0.428, - 0.432, - 0.436, - 0.44, - 0.444, - 0.448, - 0.452, - 0.456, - 0.46, - 0.464, - 0.468, - 0.47200000000000003, - 0.47600000000000003, - 0.48, - 0.484, - 0.488, - 0.492, - 0.496, - 0.5, - 0.504, - 0.508, - 0.512, - 0.516, - 0.52, - 0.524, - 0.528, - 0.532, - 0.536, - 0.54, - 0.544, - 0.548, - 0.552, - 0.556, - 0.56, - 0.5640000000000001, - 0.5680000000000001, - 0.5720000000000001, - 0.5760000000000001, - 0.58, - 0.584, - 0.588, - 0.592, - 0.596, - 0.6, - 0.604, - 0.608, - 0.612, - 0.616, - 0.62, - 0.624, - 0.628, - 0.632, - 0.636, - 0.64, - 0.644, - 0.648, - 0.652, - 0.656, - 0.66, - 0.664, - 0.668, - 0.672, - 0.676, - 0.68, - 0.684, - 0.6880000000000001, - 0.6920000000000001, - 0.6960000000000001, - 0.7000000000000001, - 0.704, - 0.708, - 0.712, - 0.716, - 0.72, - 0.724, - 0.728, - 0.732, - 0.736, - 0.74, - 0.744, - 0.748, - 0.752, - 0.756, - 0.76, - 0.764, - 0.768, - 0.772, - 0.776, - 0.78, - 0.784, - 0.788, - 0.792, - 0.796, - 0.8, - 0.804, - 0.808, - 0.812, - 0.8160000000000001, - 0.8200000000000001, - 0.8240000000000001, - 0.8280000000000001, - 0.8320000000000001, - 0.836, - 0.84, - 0.844, - 0.848, - 0.852, - 0.856, - 0.86, - 0.864, - 0.868, - 0.872, - 0.876, - 0.88, - 0.884, - 0.888, - 0.892, - 0.896, - 0.9, - 0.904, - 0.908, - 0.912, - 0.916, - 0.92, - 0.924, - 0.928, - 0.932, - 0.936, - 0.9400000000000001, - 0.9440000000000001, - 0.9480000000000001, - 0.9520000000000001, - 0.9560000000000001, - 0.96, - 0.964, - 0.968, - 0.972, - 0.976, - 0.98, - 0.984, - 0.988, - 0.992, - 0.996 - ] - }, - "order": 25, - "dofs": { - "$type": "ref", - "value": "140342738366624" - } - }, - "140342738367776": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738367776", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 537743.5886473 - ] - }, - "names": [ - "x0" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity - ] - } - }, - "Current3": { - "@module": "simsopt.field.coil", - "@class": "Current", - "@name": "Current3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current": 537743.5886473, - "dofs": { - "$type": "ref", - "value": "140342738367776" - } - }, - "Coil3": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve1": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent1": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil4": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve1" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent1" - } - }, - "RotatedCurve2": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent2": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent2", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil5": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve2" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent2" - } - }, - "RotatedCurve3": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 0.0, - "flip": true - }, - "ScaledCurrent3": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent3", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil6": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve3" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent3" - } - }, - "RotatedCurve4": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil7": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve4" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve5": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil8": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve5" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve6": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": false - }, - "Coil9": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve6" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve7": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent4": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent4", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil10": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve7" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent4" - } - }, - "RotatedCurve8": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent5": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent5", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil11": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve8" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent5" - } - }, - "RotatedCurve9": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 2.0943951023931953, - "flip": true - }, - "ScaledCurrent6": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent6", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil12": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve9" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent6" - } - }, - "RotatedCurve10": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil13": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve10" - }, - "current": { - "$type": "ref", - "value": "Current1" - } - }, - "RotatedCurve11": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve11", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil14": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve11" - }, - "current": { - "$type": "ref", - "value": "Current2" - } - }, - "RotatedCurve12": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve12", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": false - }, - "Coil15": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve12" - }, - "current": { - "$type": "ref", - "value": "Current3" - } - }, - "RotatedCurve13": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve13", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier1" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent7": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent7", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current1" - }, - "scale": -1.0 - }, - "Coil16": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil16", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve13" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent7" - } - }, - "RotatedCurve14": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve14", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier2" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent8": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent8", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current2" - }, - "scale": -1.0 - }, - "Coil17": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil17", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve14" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent8" - } - }, - "RotatedCurve15": { - "@module": "simsopt.geo.curve", - "@class": "RotatedCurve", - "@name": "RotatedCurve15", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "CurveXYZFourier3" - }, - "phi": 4.1887902047863905, - "flip": true - }, - "ScaledCurrent9": { - "@module": "simsopt.field.coil", - "@class": "ScaledCurrent", - "@name": "ScaledCurrent9", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "current_to_scale": { - "$type": "ref", - "value": "Current3" - }, - "scale": -1.0 - }, - "Coil18": { - "@module": "simsopt.field.coil", - "@class": "Coil", - "@name": "Coil18", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "curve": { - "$type": "ref", - "value": "RotatedCurve15" - }, - "current": { - "$type": "ref", - "value": "ScaledCurrent9" - } - }, - "BiotSavart1": { - "@module": "simsopt.field.biotsavart", - "@class": "BiotSavart", - "@name": "BiotSavart1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "coils": [ - { - "$type": "ref", - "value": "Coil1" - }, - { - "$type": "ref", - "value": "Coil2" - }, - { - "$type": "ref", - "value": "Coil3" - }, - { - "$type": "ref", - "value": "Coil4" - }, - { - "$type": "ref", - "value": "Coil5" - }, - { - "$type": "ref", - "value": "Coil6" - }, - { - "$type": "ref", - "value": "Coil7" - }, - { - "$type": "ref", - "value": "Coil8" - }, - { - "$type": "ref", - "value": "Coil9" - }, - { - "$type": "ref", - "value": "Coil10" - }, - { - "$type": "ref", - "value": "Coil11" - }, - { - "$type": "ref", - "value": "Coil12" - }, - { - "$type": "ref", - "value": "Coil13" - }, - { - "$type": "ref", - "value": "Coil14" - }, - { - "$type": "ref", - "value": "Coil15" - }, - { - "$type": "ref", - "value": "Coil16" - }, - { - "$type": "ref", - "value": "Coil17" - }, - { - "$type": "ref", - "value": "Coil18" - } - ], - "points": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - [ - 1.7680722478252928, - 0.0, - 0.0 - ], - [ - 1.7209247675770682, - 0.024695920948230445, - -0.2871985408189701 - ], - [ - 1.58001575500593, - 0.04268423059962205, - -0.5012545980793669 - ], - [ - 1.3784170338245367, - 0.09779852889333147, - -0.6405105274688647 - ], - [ - 1.2086808867601821, - 0.1628599872097202, - -0.7054517324786512 - ], - [ - 1.1401684171288364, - 0.18460450609915924, - -0.6898775248859494 - ], - [ - 1.155580070148073, - 0.17754120361731043, - -0.6251104565576596 - ], - [ - 1.2444770704753965, - 0.14237632072469178, - -0.5146683947981974 - ], - [ - 1.3964584856126678, - 0.07275107017858914, - -0.30655843731572224 - ], - [ - 1.4815680648673304, - 2.4529231771759414e-17, - -1.1499982286092568e-16 - ], - [ - 1.3964584856126678, - -0.07275107017858909, - 0.3065584373157221 - ], - [ - 1.2444770704753965, - -0.14237632072469167, - 0.5146683947981968 - ], - [ - 1.1555800701480732, - -0.17754120361731043, - 0.6251104565576593 - ], - [ - 1.1401684171288364, - -0.1846045060991593, - 0.6898775248859494 - ], - [ - 1.2086808867601817, - -0.16285998720972023, - 0.7054517324786513 - ], - [ - 1.3784170338245363, - -0.09779852889333168, - 0.6405105274688649 - ], - [ - 1.5800157550059295, - -0.042684230599622106, - 0.5012545980793671 - ], - [ - 1.7209247675770678, - -0.02469592094823047, - 0.2871985408189706 - ], - [ - 1.754051856520195, - 0.20918923172603887, - -0.04009835568961519 - ], - [ - 1.7141608064493685, - 0.22830829434705927, - -0.3191823551708279 - ], - [ - 1.578190392445102, - 0.23721674838593013, - -0.5191125631376396 - ], - [ - 1.3887201148795254, - 0.281824232268786, - -0.6515943590208377 - ], - [ - 1.2481128032491002, - 0.3289502458789051, - -0.7135596327733066 - ], - [ - 1.2044887913637978, - 0.3361149974607934, - -0.6863937660022384 - ], - [ - 1.2242081254228512, - 0.31862947417230175, - -0.6019190791090401 - ], - [ - 1.3072015319851868, - 0.27364597192709195, - -0.46576140290372475 - ], - [ - 1.4317108031629406, - 0.20480990826641646, - -0.23058262246625574 - ], - [ - 1.4567694760801877, - 0.1342308206031571, - 0.08202421637710015 - ], - [ - 1.321523209720005, - 0.05383991948111207, - 0.3619548738904281 - ], - [ - 1.1614329844567277, - -0.016355218276540767, - 0.5332177308882257 - ], - [ - 1.0823415420451266, - -0.041706039535744574, - 0.61974340755493 - ], - [ - 1.0779841411036202, - -0.03806549241065234, - 0.6730776682164475 - ], - [ - 1.1656180936984921, - 0.0020483168654304505, - 0.6819813064037555 - ], - [ - 1.354049160893743, - 0.08618528316207082, - 0.6122844417584006 - ], - [ - 1.5621781037696407, - 0.14946971349728325, - 0.46881799944766206 - ], - [ - 1.7031279228212948, - 0.17655862965590785, - 0.24955315997837343 - ], - [ - 1.7116676006639935, - 0.41537276166518167, - -0.07742800132185333 - ], - [ - 1.681802689990416, - 0.43261707498031865, - -0.3420283374297781 - ], - [ - 1.5564864526116695, - 0.43160367048376863, - -0.5241698352379243 - ], - [ - 1.388371036911217, - 0.4651591154285038, - -0.6507625046159534 - ], - [ - 1.2820848378593281, - 0.4962451104250306, - -0.7075662105198588 - ], - [ - 1.2569705210219697, - 0.4853629003433239, - -0.6603996766695123 - ], - [ - 1.270791867692402, - 0.4546651589682246, - -0.5498992397654674 - ], - [ - 1.3359073501901473, - 0.4032263596062831, - -0.3917173059818337 - ], - [ - 1.419660716141146, - 0.3328322187836187, - -0.14568836126282997 - ], - [ - 1.386770201635739, - 0.2580928010043199, - 0.15009337272599313 - ], - [ - 1.2193953258160606, - 0.1699147426808685, - 0.3883556059396122 - ], - [ - 1.064233975858743, - 0.09751899249402102, - 0.5224135569949871 - ], - [ - 0.9999716888030086, - 0.07784036334279866, - 0.5914745582505492 - ], - [ - 1.009811912963917, - 0.09550838437283843, - 0.6376765883025264 - ], - [ - 1.1145336313512793, - 0.15936582508439334, - 0.6404322025750467 - ], - [ - 1.3166447381785107, - 0.26331454840536767, - 0.5670798336352831 - ], - [ - 1.5261845351670618, - 0.3348670314623818, - 0.425190904863415 - ], - [ - 1.660264229355289, - 0.37190670626128974, - 0.20834609655897782 - ], - [ - 1.64368304037421, - 0.6118132485611744, - -0.10843861002741617 - ], - [ - 1.6211911854876186, - 0.6295560740683873, - -0.35505529541965036 - ], - [ - 1.514531056638536, - 0.6224615584496106, - -0.5204847509951354 - ], - [ - 1.379851854810507, - 0.6495309627730746, - -0.6334105919498286 - ], - [ - 1.302218840560934, - 0.667712868096011, - -0.6718144357371896 - ], - [ - 1.2798325833253084, - 0.6361637449049504, - -0.6034632004907471 - ], - [ - 1.281446654149259, - 0.5856872140414803, - -0.47423094393890725 - ], - [ - 1.3225600927033563, - 0.521913546302192, - -0.30364342234017 - ], - [ - 1.3595205859751085, - 0.44520477347884996, - -0.06642207221812069 - ], - [ - 1.2821682152221385, - 0.365757477079884, - 0.19212002656798796 - ], - [ - 1.1031002295008714, - 0.2774961217863611, - 0.3847907200338494 - ], - [ - 0.9565944669364895, - 0.21309940844474146, - 0.48867414627408207 - ], - [ - 0.9049055009942245, - 0.20269232679134633, - 0.5472133620270453 - ], - [ - 0.9339359188953229, - 0.23032108659614134, - 0.5912270501902529 - ], - [ - 1.0593497998564867, - 0.3115485981004461, - 0.5895900924652928 - ], - [ - 1.2707758728561056, - 0.43200911071499076, - 0.5130346716810242 - ], - [ - 1.4740535950609974, - 0.5115294223116441, - 0.3751012410189239 - ], - [ - 1.5958991128737805, - 0.5577947207325618, - 0.1658212181153926 - ], - [ - 1.5559408540770292, - 0.7957380130712147, - -0.13154938099716484 - ], - [ - 1.5398798542593344, - 0.8149905752646446, - -0.361113214679157 - ], - [ - 1.4625386175552766, - 0.8127792053676645, - -0.5085317153853542 - ], - [ - 1.3677043074899553, - 0.8367589743886225, - -0.5892134229914564 - ], - [ - 1.3020441738251485, - 0.8350495814355556, - -0.5934925755901909 - ], - [ - 1.264129516008067, - 0.7743753577953667, - -0.5140029374361951 - ], - [ - 1.2492266387459874, - 0.6959427536889674, - -0.3853106960493632 - ], - [ - 1.2629367738602766, - 0.6169229409461704, - -0.2181861725957825 - ], - [ - 1.2568571287952393, - 0.5375396324123799, - -0.008681130327320987 - ], - [ - 1.1562908297728687, - 0.4600322166010081, - 0.20169800381803343 - ], - [ - 0.9866011411546383, - 0.3862570483974544, - 0.3572249217057805 - ], - [ - 0.8579987419384898, - 0.3457385457662895, - 0.4469514679738313 - ], - [ - 0.8210423406728821, - 0.3451317242171014, - 0.505466286584031 - ], - [ - 0.8650885466363889, - 0.37323718897574937, - 0.5483128445552922 - ], - [ - 1.0031622317169981, - 0.46371467657119103, - 0.5373715193713036 - ], - [ - 1.215910581856729, - 0.5940146203994715, - 0.45547226947116326 - ], - [ - 1.4065941223119867, - 0.68008745002744, - 0.323455452607952 - ], - [ - 1.5140680970330784, - 0.7361696650516472, - 0.1260338438039452 - ], - [ - 1.4527691866755628, - 0.9690610568548097, - -0.1473912621348829 - ], - [ - 1.448174931011679, - 0.9987000095929328, - -0.35699422223079585 - ], - [ - 1.4046887822237273, - 1.014872020921697, - -0.4771601195468688 - ], - [ - 1.3365564770089529, - 1.0253627789925666, - -0.5134270873349986 - ], - [ - 1.261555954473149, - 0.9782467163485575, - -0.48769798852027096 - ], - [ - 1.200837601102099, - 0.8761031957375435, - -0.4149329224009639 - ], - [ - 1.170750357390383, - 0.7742346578050538, - -0.3021740314901848 - ], - [ - 1.1606848560256202, - 0.6885817944457319, - -0.1523200809575562 - ], - [ - 1.1262513031272277, - 0.6138344662214583, - 0.018088485529077186 - ], - [ - 1.0234070285169812, - 0.5492294198539395, - 0.1822477214008732 - ], - [ - 0.8790706750621735, - 0.5007151250306213, - 0.31758490272433815 - ], - [ - 0.7762535324180768, - 0.4813466807840149, - 0.41536402425551433 - ], - [ - 0.7505717896659181, - 0.4822386023036034, - 0.48355814119332957 - ], - [ - 0.799656713843975, - 0.5127483802885304, - 0.5150123483423211 - ], - [ - 0.9433884948889466, - 0.6143430779188004, - 0.4841787560175849 - ], - [ - 1.1519771763973745, - 0.7499438696728989, - 0.3987418464229427 - ], - [ - 1.3253478985445515, - 0.8430490472705313, - 0.2755729153169847 - ], - [ - 1.4168461257268834, - 0.9085786413069763, - 0.09086817159177078 - ], - [ - 1.3385386475195313, - 1.135451191726052, - -0.15348216581811622 - ], - [ - 1.3431069157206852, - 1.1816279856151182, - -0.3257405583944725 - ], - [ - 1.315007660973004, - 1.211599121307774, - -0.4073853980747419 - ], - [ - 1.2504165945114365, - 1.1873282223304962, - -0.41541009827917613 - ], - [ - 1.16423967730412, - 1.0773406707215134, - -0.389161410581851 - ], - [ - 1.0946326414560064, - 0.9380243357904737, - -0.3366577673034683 - ], - [ - 1.0581147325750313, - 0.8263850061564209, - -0.24269631108473716 - ], - [ - 1.0325260254413866, - 0.7408471779878933, - -0.11808814329922007 - ], - [ - 0.9854012798244418, - 0.6785297005433786, - 0.01166175700653285 - ], - [ - 0.8937489890122365, - 0.6386541616015479, - 0.14448861207601063 - ], - [ - 0.7761292763287888, - 0.6147115361000631, - 0.27755103484909316 - ], - [ - 0.6886723382157068, - 0.60627772536458, - 0.38966131559533074 - ], - [ - 0.665393993438627, - 0.6096222008686576, - 0.4616866647665 - ], - [ - 0.7237563206695984, - 0.6510392250916778, - 0.4757149461228547 - ], - [ - 0.8790035125749528, - 0.764803875775301, - 0.42912393966438317 - ], - [ - 1.07906306229287, - 0.9026168526729031, - 0.3479980448536496 - ], - [ - 1.2294655611830145, - 1.0005771712783673, - 0.23452518387938867 - ], - [ - 1.3053714544015873, - 1.0726047880228389, - 0.0598569432349431 - ], - [ - 1.215452745775397, - 1.299532943880838, - -0.13798771244674438 - ], - [ - 1.2144588010254316, - 1.344775275291624, - -0.25286314130723037 - ], - [ - 1.1733747987151142, - 1.3567043234111271, - -0.30664003145239926 - ], - [ - 1.1058096405530404, - 1.2899085971804438, - -0.32632565593620977 - ], - [ - 1.0277872797832526, - 1.1327392783139016, - -0.3244926425709145 - ], - [ - 0.9645393567303252, - 0.9710406873889953, - -0.29206371844146384 - ], - [ - 0.9264342986025836, - 0.8559399700940715, - -0.2168306849823443 - ], - [ - 0.8928160527037219, - 0.775618719994372, - -0.12131501592080657 - ], - [ - 0.8441713349470346, - 0.7362799482289287, - -0.023406334758914217 - ], - [ - 0.7682837175535356, - 0.7271103651541142, - 0.09839080279846833 - ], - [ - 0.6691527368702893, - 0.7227133372720203, - 0.23594600205806765 - ], - [ - 0.5887950454091017, - 0.7274355570741424, - 0.34559443998804756 - ], - [ - 0.5730886732911219, - 0.7440170558907081, - 0.40877371579057675 - ], - [ - 0.6469580730325103, - 0.7957660352946686, - 0.41722168012921845 - ], - [ - 0.8099873338952917, - 0.9155409035860799, - 0.3741997049833415 - ], - [ - 0.9966089501204827, - 1.0529546231470763, - 0.306744689186155 - ], - [ - 1.1217811776149107, - 1.14965470936722, - 0.20275828232814458 - ], - [ - 1.1829607423668453, - 1.2285126095194567, - 0.03693621845263564 - ], - [ - 1.076944801169051, - 1.4551475105413565, - -0.08547397474399784 - ], - [ - 1.055519742004532, - 1.4698386740002358, - -0.15475299575659204 - ], - [ - 0.9953065117417849, - 1.4390579378749127, - -0.2203846875534553 - ], - [ - 0.9353930104751851, - 1.341939097790177, - -0.2768224729358256 - ], - [ - 0.8761926892926568, - 1.1611215285093817, - -0.2974778161096089 - ], - [ - 0.8213356899748697, - 0.9844617648980184, - -0.2813332370887146 - ], - [ - 0.7842930594607062, - 0.8702441587938653, - -0.22740964387439155 - ], - [ - 0.7502897919985411, - 0.8042677099579103, - -0.15648873252961748 - ], - [ - 0.7059104437374021, - 0.7920225578603564, - -0.07419445952873198 - ], - [ - 0.6424091640183707, - 0.8110719436508862, - 0.04945728863852943 - ], - [ - 0.5585158801786818, - 0.8235950577408283, - 0.18571175669907405 - ], - [ - 0.4969671050361561, - 0.8436952515813781, - 0.2793921560473084 - ], - [ - 0.5008553825113218, - 0.8772232621355395, - 0.33442825510717367 - ], - [ - 0.5812603219216935, - 0.9385174035323885, - 0.35223022689965194 - ], - [ - 0.7365969270562933, - 1.0631610911842186, - 0.3275617663342745 - ], - [ - 0.9062599714309366, - 1.2003736265598748, - 0.2787444474867998 - ], - [ - 1.0076717017945591, - 1.2944116526898963, - 0.18290793490410737 - ], - [ - 1.052852600082172, - 1.3818192853594857, - 0.03524245047290434 - ], - [ - 0.9125663698545683, - 1.5806113178668033, - -3.338663530972138e-17 - ], - [ - 0.869113927810831, - 1.552315187114308, - -0.0730391988830628 - ], - [ - 0.8050922446292604, - 1.4865577073137994, - -0.1821578073419472 - ], - [ - 0.7607447042748242, - 1.3703268801756467, - -0.2664502784477747 - ], - [ - 0.7161939046876921, - 1.1719848280815819, - -0.30012461375351196 - ], - [ - 0.6718532945207347, - 0.9841099726290903, - -0.3028133950505102 - ], - [ - 0.6450973122416518, - 0.876888728596458, - -0.26903874595351446 - ], - [ - 0.615084928235879, - 0.8316634352990808, - -0.21167698228798143 - ], - [ - 0.5708233416635586, - 0.8457791366426325, - -0.12970490800073575 - ], - [ - 0.513422675094356, - 0.8892741590213524, - -3.300827316471772e-17 - ], - [ - 0.44705454749161067, - 0.917237083275082, - 0.1297049080007357 - ], - [ - 0.4126991982497006, - 0.9485108909867399, - 0.21167698228798135 - ], - [ - 0.4368592591359447, - 0.9971150246125614, - 0.2690387459535143 - ], - [ - 0.5163375891540336, - 1.0738970069857696, - 0.3028133950505102 - ], - [ - 0.656871681624742, - 1.2062345295359032, - 0.30012461375351196 - ], - [ - 0.8063655375833723, - 1.3439876797843004, - 0.2664502784477749 - ], - [ - 0.8848506164106728, - 1.4405091898956748, - 0.18215780734194728 - ], - [ - 0.9097874228159699, - 1.528832333824208, - 0.07303919888306297 - ], - [ - 0.7217223097979737, - 1.6602353115566573, - 0.08547397474399765 - ], - [ - 0.6702643045194876, - 1.6027067407914022, - -0.03524245047290406 - ], - [ - 0.6171575232867713, - 1.5198751187737345, - -0.18290793490410723 - ], - [ - 0.5864240689182385, - 1.3850309709720885, - -0.27874444748679955 - ], - [ - 0.5524260497525711, - 1.169492196772413, - -0.3275617663342746 - ], - [ - 0.5221497523920133, - 0.972644906762302, - -0.3522302268996516 - ], - [ - 0.5092699385443726, - 0.8723651159447469, - -0.3344282551071734 - ], - [ - 0.482177968403699, - 0.8522337635972099, - -0.2793921560473083 - ], - [ - 0.43399630234552855, - 0.8954864695221786, - -0.18571175669907378 - ], - [ - 0.3812043254893032, - 0.9618786274892761, - -0.049457288638529315 - ], - [ - 0.3329564336086983, - 1.007347656003514, - 0.0741944595287321 - ], - [ - 0.32137137226781454, - 1.0519038750498335, - 0.1564887325296175 - ], - [ - 0.3615070192801532, - 1.1143397929017231, - 0.2274096438743915 - ], - [ - 0.4419010524687128, - 1.2035284550020662, - 0.28133323708871444 - ], - [ - 0.5674643959238133, - 1.3393658917923366, - 0.29747781610960883 - ], - [ - 0.6944568437802707, - 1.4810436584890019, - 0.27682247293582585 - ], - [ - 0.7486074758464304, - 1.581489692657916, - 0.2203846875534552 - ], - [ - 0.7451577601467724, - 1.6490262477720388, - 0.1547529957565919 - ], - [ - 0.5177021695678847, - 1.702379426881462, - 0.13798771244674438 - ], - [ - 0.47244275752993964, - 1.6387303593291151, - -0.03693621845263522 - ], - [ - 0.43473959508497306, - 1.5463183519853465, - -0.2027582823281444 - ], - [ - 0.41358097761739715, - 1.3895659800168152, - -0.30674468918615466 - ], - [ - 0.38788801376165916, - 1.1592400596899914, - -0.37419970498334154 - ], - [ - 0.3656745655177523, - 0.9581651440769164, - -0.41722168012921834 - ], - [ - 0.3577933346046991, - 0.8683178776365865, - -0.40877371579057686 - ], - [ - 0.3355801493377417, - 0.8736292454837653, - -0.34559443998804756 - ], - [ - 0.29131174129625614, - 0.9408599377775649, - -0.23594600205806768 - ], - [ - 0.2455541888016748, - 1.0289083992923675, - -0.09839080279846844 - ], - [ - 0.2155514719898264, - 1.0992137953252183, - 0.023406334758914158 - ], - [ - 0.2252974888140346, - 1.1610107425451552, - 0.12131501592080639 - ], - [ - 0.27804860891466676, - 1.2302856225740915, - 0.21683068498234412 - ], - [ - 0.35867622502201096, - 1.3208359295728602, - 0.29206371844146384 - ], - [ - 0.46708735099266385, - 1.456459533135752, - 0.32449264257091437 - ], - [ - 0.5641887934416925, - 1.6026135390588934, - 0.32632565593620994 - ], - [ - 0.5882530101406579, - 1.6945245455533047, - 0.30664003145239926 - ], - [ - 0.5573801502710428, - 1.724139811183426, - 0.2528631413072303 - ], - [ - 0.3140602530323106, - 1.7269340685622043, - 0.1534821658181162 - ], - [ - 0.2762172674478079, - 1.6667872348982344, - -0.05985694323494258 - ], - [ - 0.25179246818233225, - 1.5650369947017657, - -0.23452518387938837 - ], - [ - 0.24215759315225516, - 1.3858044505675073, - -0.34799804485364927 - ], - [ - 0.22283782904673244, - 1.143641309793314, - -0.4291239396643829 - ], - [ - 0.20193834745472922, - 0.9523109723952671, - -0.47571494612285464 - ], - [ - 0.19525131594392406, - 0.8810592022777558, - -0.46168666476649994 - ], - [ - 0.1807157428065183, - 0.8995466024607207, - -0.38966131559533085 - ], - [ - 0.14429116809761539, - 0.9795034379715943, - -0.2775510348490932 - ], - [ - 0.10621623367347442, - 1.0933364098920297, - -0.14448861207601063 - ], - [ - 0.09492331798059271, - 1.1926473915213534, - -0.011661757006532934 - ], - [ - 0.1253294637388338, - 1.264617357094764, - 0.11808814329921967 - ], - [ - 0.18661304235050435, - 1.329546741606765, - 0.24269631108473685 - ], - [ - 0.26503658343457165, - 1.416991843207801, - 0.3366577673034682 - ], - [ - 0.35088455072293656, - 1.546931471999921, - 0.38916141058185094 - ], - [ - 0.4030481059127095, - 1.6765566473257771, - 0.41541009827917597 - ], - [ - 0.39177178776893423, - 1.744629601227663, - 0.40738539807474183 - ], - [ - 0.3517663955049831, - 1.7539787018202373, - 0.3257405583944725 - ], - [ - 0.11284689971668031, - 1.7426655499236994, - 0.14739126213488293 - ], - [ - 0.07842912184434947, - 1.68131405878653, - -0.09086817159177023 - ], - [ - 0.06742794230027274, - 1.5693094726271684, - -0.2755729153169845 - ], - [ - 0.07348185435044971, - 1.3726134341764438, - -0.3987418464229423 - ], - [ - 0.06034246467233084, - 1.124169941171194, - -0.4841787560175849 - ], - [ - 0.044224766157204116, - 0.9488972186399309, - -0.5150123483423211 - ], - [ - 0.04234498544746258, - 0.8911335383664374, - -0.48355814119332974 - ], - [ - 0.02873168737723759, - 0.9129286192434686, - -0.41536402425551444 - ], - [ - -0.005903319195467008, - 1.0116550988410884, - -0.31758490272433815 - ], - [ - -0.036056884159189534, - 1.1609111950342208, - -0.18224772140087325 - ], - [ - -0.03152941009736973, - 1.2822794726642366, - -0.01808848552907728 - ], - [ - 0.01598689856066813, - 1.3494734683289362, - 0.1523200809575559 - ], - [ - 0.0851317034543369, - 1.4010168798923086, - 0.3021740314901844 - ], - [ - 0.15830882329439386, - 1.4780074662427536, - 0.4149329224009639 - ], - [ - 0.2164085302899863, - 1.5816628630435503, - 0.48769798852027085 - ], - [ - 0.21971197619809535, - 1.6701732521786685, - 0.5134270873349985 - ], - [ - 0.17656056059637865, - 1.7239321802776228, - 0.4771601195468688 - ], - [ - 0.14081211356140313, - 1.7535062841763571, - 0.3569942222307963 - ], - [ - -0.08884109296188875, - 1.745353312952371, - 0.13154938099716493 - ], - [ - -0.11949241708633121, - 1.6793062676160324, - -0.12603384380394453 - ], - [ - -0.11432405263725025, - 1.5581899677497768, - -0.3234554526079517 - ], - [ - -0.09352353944305204, - 1.350016762817982, - -0.4554722694711628 - ], - [ - -0.09999242584016277, - 1.1006213150696078, - -0.5373715193713033 - ], - [ - -0.10931138602810207, - 0.9358072523979467, - -0.5483128445552922 - ], - [ - -0.11162832951250609, - 0.8836093867139043, - -0.5054662865840311 - ], - [ - -0.12958100726814917, - 0.9159179798169653, - -0.4469514679738314 - ], - [ - -0.15879215427432808, - 1.0475501758413608, - -0.3572249217057805 - ], - [ - -0.17974582875069584, - 1.2313933410467963, - -0.20169800381803354 - ], - [ - -0.16290558718754963, - 1.3572400186704374, - 0.00868113032732074 - ], - [ - -0.09719744789334772, - 1.402196800009647, - 0.2181861725957819 - ], - [ - -0.021909215098651576, - 1.4298333810827542, - 0.38531069604936274 - ], - [ - 0.03856397391141826, - 1.4819559534343967, - 0.5140029374361949 - ], - [ - 0.07215206403017953, - 1.5451281220998778, - 0.5934925755901906 - ], - [ - 0.040802374920182224, - 1.602846162346016, - 0.5892134229914563 - ], - [ - -0.027381869261511274, - 1.6729851995024754, - 0.5085317153853545 - ], - [ - -0.0641373851055912, - 1.7410703601967847, - 0.3611132146791575 - ], - [ - -0.2919957045612447, - 1.729377893014296, - 0.10843861002741617 - ], - [ - -0.3148851581856451, - 1.660986533992024, - -0.16582121811539202 - ], - [ - -0.2940293230254364, - 1.5323325710184257, - -0.37510124101892367 - ], - [ - -0.26125707188254665, - 1.3165287437672275, - -0.513034671681024 - ], - [ - -0.25986589945982863, - 1.0731981372199013, - -0.5895900924652929 - ], - [ - -0.26750404742816736, - 0.9239727745681834, - -0.5912270501902529 - ], - [ - -0.276916046343629, - 0.8850173152809562, - -0.5472133620270455 - ], - [ - -0.29374773222366246, - 0.9349848137090038, - -0.4886741462740822 - ], - [ - -0.3112314238317865, - 1.0940608825613796, - -0.3847907200338496 - ], - [ - -0.32432884083578517, - 1.2932689848472676, - -0.19212002656798807 - ], - [ - -0.29420164926877357, - 1.3999817511617747, - 0.06642207221812052 - ], - [ - -0.20928965667475394, - 1.4063274114637043, - 0.3036434223401696 - ], - [ - -0.13350332104297372, - 1.40260896310857, - 0.47423094393890686 - ], - [ - -0.0889823276083237, - 1.4264494022032566, - 0.6034632004907471 - ], - [ - -0.07285311407555328, - 1.461611031260492, - 0.6718144357371895 - ], - [ - -0.12741561309920602, - 1.5197522411115127, - 0.6334105919498287 - ], - [ - -0.21819800582265275, - 1.6228531490942657, - 0.5204847509951355 - ], - [ - -0.2653840394937881, - 1.7187707880578815, - 0.3550552954196508 - ], - [ - -0.49611043668984994, - 1.6900340058423673, - 0.0774280013218535 - ], - [ - -0.5080514592175702, - 1.6237843527469202, - -0.20834609655897707 - ], - [ - -0.4730889114472251, - 1.489148094048812, - -0.4251909048634147 - ], - [ - -0.4302852809841794, - 1.271905065224386, - -0.5670798336352828 - ], - [ - -0.4192519626574873, - 1.0448973506645258, - -0.6404322025750464 - ], - [ - -0.42219326934067125, - 0.9222769618573319, - -0.637676588302526 - ], - [ - -0.4325741123068293, - 0.9049210672400321, - -0.591474558250549 - ], - [ - -0.4476630630780849, - 0.9704131549111967, - -0.5224135569949873 - ], - [ - -0.4625471792689019, - 1.1409847007531448, - -0.3883556059396124 - ], - [ - -0.4698701786142465, - 1.3300246243299785, - -0.15009337272599355 - ], - [ - -0.4215892014060189, - 1.395878354324851, - 0.1456883612628295 - ], - [ - -0.318749404200513, - 1.3585428821701635, - 0.3917173059818329 - ], - [ - -0.2416443559640283, - 1.3278706198284065, - 0.5498992397654667 - ], - [ - -0.20814865875917135, - 1.33124985318485, - 0.6603996766695122 - ], - [ - -0.21128154679777358, - 1.3584405946055476, - 0.7075662105198587 - ], - [ - -0.2913459076926256, - 1.4349441455579086, - 0.6507625046159535 - ], - [ - -0.4044634833002827, - 1.5637586438499143, - 0.5241698352379246 - ], - [ - -0.46624396795133416, - 1.6727923911748646, - 0.3420283374297787 - ], - [ - -0.6958627393871972, - 1.6236480831647655, - 0.040098355689615374 - ], - [ - -0.6986597028712619, - 1.5632313618858185, - -0.24955315997837266 - ], - [ - -0.6516444828997909, - 1.4276207798489546, - -0.4688179994476616 - ], - [ - -0.6023859357961623, - 1.2157336128880203, - -0.6122844417584001 - ], - [ - -0.5810351524087823, - 1.0104790386863998, - -0.6819813064037552 - ], - [ - -0.571957753986998, - 0.9145289048671577, - -0.6730776682164473 - ], - [ - -0.5772892607517555, - 0.9164822512144299, - -0.6197434075549298 - ], - [ - -0.594880526740287, - 0.9976528601944324, - -0.5332177308882261 - ], - [ - -0.6141348668516501, - 1.1713926310488303, - -0.36195487389042846 - ], - [ - -0.6121374374269277, - 1.3287147840447684, - -0.0820242163771007 - ], - [ - -0.5384848180759927, - 1.3423028805449368, - 0.2305826224662552 - ], - [ - -0.4166164026604487, - 1.2688927205286555, - 0.46576140290372403 - ], - [ - -0.3361628436837344, - 1.219510073221667, - 0.6019190791090397 - ], - [ - -0.3111602692879093, - 1.2111753906250606, - 0.6863937660022382 - ], - [ - -0.3391771321122803, - 1.2453725173417827, - 0.7135596327733067 - ], - [ - -0.45029311289294693, - 1.3435790143665063, - 0.6515943590208383 - ], - [ - -0.5836594659171932, - 1.485361346058956, - 0.51911256313764 - ], - [ - -0.6593596204254351, - 1.5986609517303034, - 0.3191823551708286 - ] - ] - } - }, - "140342738037920": { - "@module": "simsopt._core.optimizable", - "@class": "DOFs", - "@name": "140342738037920", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "x": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 1.370099855687832, - 0.015612104788396806, - -0.0030179159583515573, - 0.0022063231165241233, - -0.0002734200030295804, - -0.0012226452716094548, - -0.00012178648431735264, - 0.302178979912302, - -0.12156392591290117, - 0.0012148068343540656, - 0.0024845973069276355, - -0.0009487053589635161, - 0.0004469862881796634, - 0.0002992063541037181, - 0.1241420996623515, - 0.08220801224462833, - 0.025309097692454787, - -0.0031679568382928184, - -0.0013474404453579255, - 0.0009710588963599626, - 0.0005845501908979165, - -0.02737035264952027, - 0.007743839909994162, - -0.0013009390202269758, - -0.005854489156318461, - 0.0016323167346173676, - -0.0008185001665246053, - -0.0005601663845150453, - -0.00041703968348957377, - 0.009715551251600117, - 0.0034738909595454425, - -0.004628805893661069, - 0.001721825690142954, - 0.0003574623490250821, - -0.00037456983620028675, - -0.003736833065050284, - -0.01016814768720632, - -0.0017419346739122477, - 8.708763937825734e-05, - 0.0012876399842537878, - -0.0003032498621445788, - 0.0002438744521539715, - 0.003652537623916706, - -0.0022177509081757166, - 0.0013410346476269732, - -0.00016191436665664405, - 0.0007036290317634967, - -0.0002558836694448717, - -7.17481281678613e-05, - 0.24380061368439773, - -0.010071642778727529, - -0.0016413303536336132, - -0.00020008214586538937, - -0.000977543126554361, - 0.0005227777071488129, - -0.07532560018495471, - -0.029234761183654038, - 0.005149253916889585, - 0.0025866007924868245, - -0.0001237964826232096, - -0.0009387954093402702, - 0.0008358444806667871, - 0.004131411992662826, - 0.004561235738609085, - -0.0011363027830899508, - -0.00036748515008869806, - 0.000363271160005206, - -0.0032611172270354915, - -0.0033784135399489105, - 0.003345765376819986, - -0.0018953074691629482, - -0.0003644439218137425, - 0.000446852131551194, - 0.009407172358681739, - 0.004643726438496215, - -1.364165151881822e-05, - -0.0009393275408625786, - 0.0006568500390140209, - -0.00043863298497605146, - 0.000666509713260929, - 0.00016454371967560447, - -0.000839294819472734, - -0.0005309840083991336, - 0.00028118212419470773, - -2.2543594072121704e-05, - 0.0016005424841288197, - -0.0013167858251726071, - 0.0015837852943506104, - -0.00014551651703067006, - 0.0006088991759239378, - 0.00038090445854628357, - 0.05411995175479992, - 0.0019028436139005983, - -0.00031689636950124394, - 0.00014140201140625986, - -0.001171734282778547, - -4.695552401219802e-05, - -0.050185506265380264, - -0.0035356767910498317, - 0.0007677138370074986, - 0.0003301685139897476, - -0.0009514214980598781, - -0.0006549569679681475, - -0.0012673984853303494, - -0.00013167230908013553, - -0.0001298201636444754, - -0.0008681585906736584, - 0.001223799781827021, - 0.00034502885311922754, - -0.00042650206758509853, - 0.002121814701090765, - -0.000977955837388021, - 0.000128627762124797, - -0.00015421976933677287, - -1.1665717889056904e-05, - 0.005664897925133099, - 0.0011231455211457417, - -0.0008794922303261419, - -0.00010517917170814688, - 8.523817163794135e-05, - -0.00038164229933544675, - 0.0031885447442114687, - 0.000829944975154068, - 0.0003906218182780436, - -0.00041242411159952877, - 0.0002635215060608244, - 0.00013075266274608068, - 0.05704950067130263, - 0.11220000845768416, - -0.005613396564839782, - -0.0008240667339965433, - -0.00046797669484346233, - -0.0004538894102919448, - 0.00098101877217381, - 0.02030435442281452, - -0.06722620471295754, - -0.0018973232126689187, - 0.0027854299923622725, - 0.00024726719780385426, - 0.0007812902562423288, - -0.0006754902369012465, - -0.008809283098389178, - -0.0063800263981638565, - 0.00400257435845095, - -0.0004745582480581115, - -0.001232673003785594, - 9.769518797490552e-05, - 0.0002953001808185349, - 0.0003914211957151875, - 0.0023686618423507813, - -0.001883144164243817, - -0.000298665520308543, - -8.611335457180634e-05, - -0.000399939025124226, - 0.0002665574506677008, - 0.0005486001062539296, - 0.004125035999562045, - -0.0010305402562355407, - -0.00011085384281944096, - 0.0004221189570385646, - 0.0003212658486506654, - -0.0003718969988800435, - 0.0018727911828621494, - 0.004415287227056264, - -0.00019890675976168027, - -0.00047637387336616844, - -0.00018687675562060067, - 0.00013239353304179193, - 0.00019448474294613542, - 0.0175675766383604, - -0.009875661448489406, - 0.0031092216570921915, - 0.0008065176224734124, - -0.00021018625813556578, - 9.767400469461835e-05, - -0.15699810147530688, - 0.010542112770075144, - -0.0009778732920278038, - -0.0010665830996924525, - 0.0008076979618913867, - -9.558224834579981e-05, - 0.005507988349817701, - 0.031164894454736115, - -0.004337126740459847, - -0.002189475702997216, - 0.00012222177543344588, - 1.8701403892307008e-06, - -0.012155652521718045, - -0.007307663714583059, - -0.003496836786738803, - 0.001894522794969929, - -0.0007271320162097899, - -0.00011309139004382258, - -0.0008203454995776989, - 0.005901570605144783, - -0.005177967958134056, - 0.002274563799914917, - 0.00021692204657530121, - -6.005266463510737e-05, - -0.0038755797133734043, - -0.001736609933790854, - -0.0011128238951791224, - 0.001416949885327378, - -0.00032934036935998434, - 0.00024169315081806641, - -0.0009920572988003178, - 0.0009188383324148919, - 5.2379111989037965e-05, - 0.0004650767044931138, - -0.0004263242200192872, - 5.4080572130627756e-05, - -0.5277395180216956, - -0.21374199990615314, - 0.003688150207258406, - -0.002646015924012413, - 0.0014927176517076598, - 0.0001357116524985605, - -0.0003647241855285567, - -0.01721757933817644, - -0.005424390529843613, - 0.027461991686469317, - -0.0017157228405142476, - -0.0018674306686356156, - 0.0002884181715804734, - 2.8217353950113614e-05, - -0.018692141898086215, - -0.015351256146304566, - -0.0024519249779179596, - -0.006007666179938757, - 0.0011177211558422253, - 0.00012110942323144351, - 1.2344548019734355e-05, - 0.0019332259380344435, - 0.004465561443084816, - 0.008183032304722553, - -0.006333298313922966, - 0.0021692008087801735, - 0.00020888542073621628, - -0.00018186868048159936, - -0.00520572306839542, - -0.005246404590234969, - 0.0009477592515354704, - 0.00024395982816618396, - 0.0010133539694583613, - -0.00047891769880890943, - 0.0002569096021071273, - -0.00019681207193257658, - -0.003623535740686089, - 0.001599108044503654, - 7.012928016346378e-05, - 0.0004852460112548447, - -0.00024396321544820784, - 5.689747926156211e-05 - ] - }, - "names": [ - "x0", - "x1", - "x2", - "x3", - "x4", - "x5", - "x6", - "x7", - "x8", - "x9", - "x10", - "x11", - "x12", - "x13", - "x14", - "x15", - "x16", - "x17", - "x18", - "x19", - "x20", - "x21", - "x22", - "x23", - "x24", - "x25", - "x26", - "x27", - "x28", - "x29", - "x30", - "x31", - "x32", - "x33", - "x34", - "x35", - "x36", - "x37", - "x38", - "x39", - "x40", - "x41", - "x42", - "x43", - "x44", - "x45", - "x46", - "x47", - "x48", - "x49", - "x50", - "x51", - "x52", - "x53", - "x54", - "x55", - "x56", - "x57", - "x58", - "x59", - "x60", - "x61", - "x62", - "x63", - "x64", - "x65", - "x66", - "x67", - "x68", - "x69", - "x70", - "x71", - "x72", - "x73", - "x74", - "x75", - "x76", - "x77", - "x78", - "x79", - "x80", - "x81", - "x82", - "x83", - "x84", - "x85", - "x86", - "x87", - "x88", - "x89", - "x90", - "x91", - "x92", - "x93", - "x94", - "x95", - "x96", - "x97", - "x98", - "x99", - "x100", - "x101", - "x102", - "x103", - "x104", - "x105", - "x106", - "x107", - "x108", - "x109", - "x110", - "x111", - "x112", - "x113", - "x114", - "x115", - "x116", - "x117", - "x118", - "x119", - "x120", - "x121", - "x122", - "x123", - "x124", - "x125", - "x126", - "x127", - "x128", - "x129", - "x130", - "x131", - "x132", - "x133", - "x134", - "x135", - "x136", - "x137", - "x138", - "x139", - "x140", - "x141", - "x142", - "x143", - "x144", - "x145", - "x146", - "x147", - "x148", - "x149", - "x150", - "x151", - "x152", - "x153", - "x154", - "x155", - "x156", - "x157", - "x158", - "x159", - "x160", - "x161", - "x162", - "x163", - "x164", - "x165", - "x166", - "x167", - "x168", - "x169", - "x170", - "x171", - "x172", - "x173", - "x174", - "x175", - "x176", - "x177", - "x178", - "x179", - "x180", - "x181", - "x182", - "x183", - "x184", - "x185", - "x186", - "x187", - "x188", - "x189", - "x190", - "x191", - "x192", - "x193", - "x194", - "x195", - "x196", - "x197", - "x198", - "x199", - "x200", - "x201", - "x202", - "x203", - "x204", - "x205", - "x206", - "x207", - "x208", - "x209", - "x210", - "x211", - "x212", - "x213", - "x214", - "x215", - "x216", - "x217", - "x218", - "x219", - "x220", - "x221", - "x222", - "x223", - "x224", - "x225", - "x226", - "x227", - "x228", - "x229", - "x230", - "x231", - "x232", - "x233", - "x234", - "x235", - "x236", - "x237", - "x238", - "x239", - "x240", - "x241", - "x242", - "x243", - "x244", - "x245", - "x246", - "x247", - "x248", - "x249", - "x250", - "x251", - "x252" - ], - "free": { - "@module": "numpy", - "@class": "array", - "dtype": "bool", - "data": [ - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true, - true - ] - }, - "lower_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity, - -Infinity - ] - }, - "upper_bounds": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity, - Infinity - ] - } - }, - "SurfaceXYZTensorFourier1": { - "@module": "simsopt.geo.surfacexyztensorfourier", - "@class": "SurfaceXYZTensorFourier", - "@name": "SurfaceXYZTensorFourier1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "nfp": 3, - "stellsym": true, - "mpol": 6, - "ntor": 6, - "clamped_dims": [ - false, - false, - false - ], - "quadpoints_phi": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.018518518518518517, - 0.037037037037037035, - 0.05555555555555555, - 0.07407407407407407, - 0.09259259259259259, - 0.1111111111111111, - 0.12962962962962962, - 0.14814814814814814, - 0.16666666666666666, - 0.18518518518518517, - 0.2037037037037037, - 0.2222222222222222, - 0.24074074074074073, - 0.25925925925925924, - 0.2777777777777778, - 0.2962962962962963, - 0.31481481481481477 - ] - }, - "quadpoints_theta": { - "@module": "numpy", - "@class": "array", - "dtype": "float64", - "data": [ - 0.0, - 0.05555555555555555, - 0.1111111111111111, - 0.16666666666666666, - 0.2222222222222222, - 0.2777777777777778, - 0.3333333333333333, - 0.38888888888888884, - 0.4444444444444444, - 0.5, - 0.5555555555555556, - 0.611111111111111, - 0.6666666666666666, - 0.7222222222222222, - 0.7777777777777777, - 0.8333333333333333, - 0.8888888888888888, - 0.9444444444444444 - ] - }, - "dofs": { - "$type": "ref", - "value": "140342738037920" - } - }, - "Volume1": { - "@module": "simsopt.geo.surfaceobjectives", - "@class": "Volume", - "@name": "Volume1", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "range": null, - "nphi": null, - "ntheta": null - }, - "BoozerSurface10": { - "@module": "simsopt.geo.boozersurface", - "@class": "BoozerSurface", - "@name": "BoozerSurface10", - "@version": "0.13.0.post3+g0f8c1278.d20230501.dirty", - "biotsavart": { - "$type": "ref", - "value": "BiotSavart1" - }, - "surface": { - "$type": "ref", - "value": "SurfaceXYZTensorFourier1" - }, - "label": { - "$type": "ref", - "value": "Volume1" - }, - "targetlabel": -3.91888, - "constraint_weight": 1000.0, - "reg": null - } - } -} \ No newline at end of file diff --git a/examples/2_Intermediate/inputs/input_ncsx/surface_9.vts b/examples/2_Intermediate/inputs/input_ncsx/surface_9.vts deleted file mode 100644 index fa28e6e8a..000000000 Binary files a/examples/2_Intermediate/inputs/input_ncsx/surface_9.vts and /dev/null differ diff --git a/pyproject.toml b/pyproject.toml index 14966b351..b89247f2c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,9 @@ [build-system] requires = [ - "scikit-build-core>=0.3.3", + "scikit-build-core", "pybind11", - "oldest-supported-numpy", + "numpy >= 2.0.0; python_version > '3.8'", + "oldest-supported-numpy; python_version <= '3.8'", "setuptools_scm>=8.0", 'tomli; python_version < "3.11"',] build-backend = "scikit_build_core.build" @@ -52,12 +53,11 @@ keywords = [ "magnetostatics" ] dependencies = [ - "numpy>=1.21", + "numpy>=1.21,<2.0.0", "jax>=0.2.5", "jaxlib>=0.1.56", "scipy>=1.5.4", "Deprecated>=1.2.10", - "nptyping>=1.3.0", "monty>=2021.6.10", "ruamel.yaml", "sympy", @@ -71,7 +71,7 @@ dynamic = ["version"] [project.optional-dependencies] SPEC = ["py_spec>=3.0.1", "pyoculus>=0.1.1", "h5py>=3.1.0"] MPI = ["mpi4py>=3.0.3"] -VIS = ["vtk >= 8.1.2", "PyQt5", "mayavi", "plotly", "networkx"] +VIS = ["vtk >= 8.1.2", "PyQt5", "plotly", "networkx"] DOCS = ["sphinx", "sphinx-rtd-theme"] [project.urls] diff --git a/src/simsopt/_core/derivative.py b/src/simsopt/_core/derivative.py index c3acfce6e..6b62d848a 100644 --- a/src/simsopt/_core/derivative.py +++ b/src/simsopt/_core/derivative.py @@ -173,22 +173,38 @@ def __call__(self, optim, as_derivative=False): Args: optim: An Optimizable object + as_derivative: if True return as a Derivative object. The keys + of the returned Derivative dictionary can include `optim`, the ancestors of `optim` + or Optimizables that share DOFs with ancestors of `optim`. The values are numpy arrays + corresponding to the derivatives with respect to all degrees of freedom, both free and fixed. + If False, return as a numpy array. The entries of the array correspond only to free + DOFs, and fixed ones are removed out. """ from .optimizable import Optimizable # Import here to avoid circular import assert isinstance(optim, Optimizable) derivs = [] - keys = [] - for k in optim.unique_dof_lineage: - if np.any(k.dofs_free_status): - local_derivs = np.zeros(k.local_dof_size) - for opt in k.dofs.dep_opts(): - local_derivs += self.data[opt][opt.local_dofs_free_status] - keys.append(opt) - derivs.append(local_derivs) if as_derivative: + keys = [] + + for k in optim.unique_dof_lineage: + for opt in k.dofs.dep_opts(): + # the next if-statament is there to avoid the dictionary from accumulating + # empty values e.g. if there are no local DOFs to opt, then self.data[opt] + # returns np.array([]). + if opt.local_full_dof_size > 0: + derivs.append(self.data[opt]) + keys.append(opt) + return Derivative({k: d for k, d in zip(keys, derivs)}) + else: + for k in optim.unique_dof_lineage: + if np.any(k.dofs_free_status): + local_derivs = np.zeros(k.local_dof_size) + for opt in k.dofs.dep_opts(): + local_derivs += self.data[opt][opt.local_dofs_free_status] + derivs.append(local_derivs) return np.concatenate(derivs) # https://stackoverflow.com/questions/11624955/avoiding-python-sum-default-start-arg-behavior diff --git a/src/simsopt/_core/types.py b/src/simsopt/_core/types.py index ac473e5b3..ad634f2a4 100644 --- a/src/simsopt/_core/types.py +++ b/src/simsopt/_core/types.py @@ -6,14 +6,15 @@ This module contains small utility functions and classes. """ -from typing import Union, Sequence, Any +from typing import Union, Sequence # , Any from numbers import Integral, Real -from nptyping import NDArray, Float, Int, Bool +import numpy as np +from numpy.typing import NDArray -RealArray = Union[Sequence[Real], NDArray[Any, Float]] -IntArray = Union[Sequence[Integral], NDArray[Any, Int]] +RealArray = Union[Sequence[Real], NDArray[np.double]] +IntArray = Union[Sequence[Integral], NDArray[np.int_]] StrArray = Sequence[str] -BoolArray = Union[Sequence[bool], NDArray[Any, Bool]] +BoolArray = Union[Sequence[bool], NDArray[bool]] Key = Union[Integral, str] diff --git a/src/simsopt/field/magneticfieldclasses.py b/src/simsopt/field/magneticfieldclasses.py index 101fe80e7..915ced98b 100644 --- a/src/simsopt/field/magneticfieldclasses.py +++ b/src/simsopt/field/magneticfieldclasses.py @@ -359,14 +359,44 @@ def __init__(self, r0=0.1, center=[0, 0, 0], I=5e5/np.pi, normal=[0, 0]): self.Inorm = I*4e-7 self.center = center self.normal = normal - if len(normal) == 2: - theta = normal[0] - phi = normal[1] - else: - theta = np.arctan2(normal[1], normal[0]) - phi = np.arctan2(np.sqrt(normal[0]**2+normal[1]**2), normal[2]) - self.rotMatrix = np.array([ + super().__init__(x0=self.get_dofs(), names=self._make_names(),external_dof_setter=CircularCoil.set_dofs_impl) + + def _make_names(self): + if len(self.normal)==2: + normal_names = ['theta', 'phi'] + elif len(self.normal)==3: + normal_names = ['x', 'y', 'z'] + return ['r0', 'x0', 'y0', 'z0', 'Inorm'] + normal_names + + def num_dofs(self): + return 5+len(self.normal) + + def get_dofs(self): + return np.concatenate([np.array([self.r0]), np.array(self.center), np.array([self.Inorm]), np.array(self.normal)]) + + def set_dofs_impl(self, dofs): + self.r0 = dofs[0] + self.center = dofs[1:4].tolist() + self.Inorm = dofs[4] + self.normal = dofs[5:].tolist() + + @property + def I(self): + return self.Inorm * 25e5 + + def _rotmat(self): + if len(self.normal) == 2: + theta = self.get('theta') + phi = self.get('phi') + else: + xn = self.get('x') + yn = self.get('y') + zn = self.get('z') + theta = np.arctan2(yn, xn) + phi = np.arctan2(np.sqrt(xn**2+yn**2), zn) + + m = np.array([ [np.cos(phi) * np.cos(theta)**2 + np.sin(theta)**2, -np.sin(phi / 2)**2 * np.sin(2 * theta), np.cos(theta) * np.sin(phi)], @@ -377,16 +407,16 @@ def __init__(self, r0=0.1, center=[0, 0, 0], I=5e5/np.pi, normal=[0, 0]): -np.sin(phi) * np.sin(theta), np.cos(phi)] ]) + return m - self.rotMatrixInv = np.array(self.rotMatrix.T) - - @property - def I(self): - return self.Inorm * 25e5 + def _rotmatinv(self): + m = self._rotmat() + minv = np.array(m.T) + return minv def _B_impl(self, B): points = self.get_points_cart_ref() - points = np.array(np.dot(self.rotMatrixInv, np.array(np.subtract(points, self.center)).T).T) + points = np.array(np.dot(self._rotmatinv(), np.array(np.subtract(points, self.center)).T).T) rho = np.sqrt(np.square(points[:, 0]) + np.square(points[:, 1])) r = np.sqrt(np.square(points[:, 0]) + np.square(points[:, 1]) + np.square(points[:, 2])) alpha = np.sqrt(self.r0**2 + np.square(r) - 2*self.r0*rho) @@ -394,14 +424,14 @@ def _B_impl(self, B): k = np.sqrt(1-np.divide(np.square(alpha), np.square(beta))) ellipek2 = ellipe(k**2) ellipkk2 = ellipk(k**2) - B[:] = np.dot(self.rotMatrix, np.array( + B[:] = np.dot(self._rotmat(), np.array( [self.Inorm*points[:, 0]*points[:, 2]/(2*alpha**2*beta*rho**2+1e-31)*((self.r0**2+r**2)*ellipek2-alpha**2*ellipkk2), self.Inorm*points[:, 1]*points[:, 2]/(2*alpha**2*beta*rho**2+1e-31)*((self.r0**2+r**2)*ellipek2-alpha**2*ellipkk2), self.Inorm/(2*alpha**2*beta+1e-31)*((self.r0**2-r**2)*ellipek2+alpha**2*ellipkk2)])).T def _dB_by_dX_impl(self, dB): points = self.get_points_cart_ref() - points = np.array(np.dot(self.rotMatrixInv, np.array(np.subtract(points, self.center)).T).T) + points = np.array(np.dot(self._rotmatinv(), np.array(np.subtract(points, self.center)).T).T) rho = np.sqrt(np.square(points[:, 0]) + np.square(points[:, 1])) r = np.sqrt(np.square(points[:, 0]) + np.square(points[:, 1]) + np.square(points[:, 2])) alpha = np.sqrt(self.r0**2 + np.square(r) - 2*self.r0*rho) @@ -459,19 +489,19 @@ def _dB_by_dX_impl(self, dB): [dBxdz, dBydz, dBzdz]]) dB[:] = np.array([ - [np.dot(self.rotMatrixInv[:, 0], np.dot(self.rotMatrix[0, :], dB_by_dXm)), - np.dot(self.rotMatrixInv[:, 1], np.dot(self.rotMatrix[0, :], dB_by_dXm)), - np.dot(self.rotMatrixInv[:, 2], np.dot(self.rotMatrix[0, :], dB_by_dXm))], - [np.dot(self.rotMatrixInv[:, 0], np.dot(self.rotMatrix[1, :], dB_by_dXm)), - np.dot(self.rotMatrixInv[:, 1], np.dot(self.rotMatrix[1, :], dB_by_dXm)), - np.dot(self.rotMatrixInv[:, 2], np.dot(self.rotMatrix[1, :], dB_by_dXm))], - [np.dot(self.rotMatrixInv[:, 0], np.dot(self.rotMatrix[2, :], dB_by_dXm)), - np.dot(self.rotMatrixInv[:, 1], np.dot(self.rotMatrix[2, :], dB_by_dXm)), - np.dot(self.rotMatrixInv[:, 2], np.dot(self.rotMatrix[2, :], dB_by_dXm))]]).T + [np.dot(self._rotmatinv()[:, 0], np.dot(self._rotmat()[0, :], dB_by_dXm)), + np.dot(self._rotmatinv()[:, 1], np.dot(self._rotmat()[0, :], dB_by_dXm)), + np.dot(self._rotmatinv()[:, 2], np.dot(self._rotmat()[0, :], dB_by_dXm))], + [np.dot(self._rotmatinv()[:, 0], np.dot(self._rotmat()[1, :], dB_by_dXm)), + np.dot(self._rotmatinv()[:, 1], np.dot(self._rotmat()[1, :], dB_by_dXm)), + np.dot(self._rotmatinv()[:, 2], np.dot(self._rotmat()[1, :], dB_by_dXm))], + [np.dot(self._rotmatinv()[:, 0], np.dot(self._rotmat()[2, :], dB_by_dXm)), + np.dot(self._rotmatinv()[:, 1], np.dot(self._rotmat()[2, :], dB_by_dXm)), + np.dot(self._rotmatinv()[:, 2], np.dot(self._rotmat()[2, :], dB_by_dXm))]]).T def _A_impl(self, A): points = self.get_points_cart_ref() - points = np.array(np.dot(self.rotMatrixInv, np.array(np.subtract(points, self.center)).T).T) + points = np.array(np.dot(self._rotmatinv(), np.array(np.subtract(points, self.center)).T).T) rho = np.sqrt(np.square(points[:, 0]) + np.square(points[:, 1])) r = np.sqrt(np.square(points[:, 0]) + np.square(points[:, 1]) + np.square(points[:, 2])) alpha = np.sqrt(self.r0**2 + np.square(r) - 2*self.r0*rho) @@ -484,7 +514,7 @@ def _A_impl(self, A): denom = ((points[:, 0]**2+points[:, 1]**2+1e-31)*np.sqrt(self.r0**2+points[:, 0]**2+points[:, 1]**2+2*self.r0*np.sqrt(points[:, 0]**2+points[:, 1]**2)+points[:, 2]**2+1e-31)) fak = num/denom pts = fak[:, None]*np.concatenate((-points[:, 1][:, None], points[:, 0][:, None], np.zeros((points.shape[0], 1))), axis=-1) - A[:] = -self.Inorm/2*np.dot(self.rotMatrix, pts.T).T + A[:] = -self.Inorm/2*np.dot(self._rotmat(), pts.T).T def as_dict(self, serial_objs_dict): d = super().as_dict(serial_objs_dict=serial_objs_dict) @@ -499,6 +529,44 @@ def from_dict(cls, d, serial_objs_dict, recon_objs): field.set_points_cart(xyz) return field + def gamma(self, points=64): + """Export points of the coil.""" + + angle_points = np.linspace(0, 2*np.pi, points+1)[:-1] + + x = self.r0 * np.cos(angle_points) + y = self.r0 * np.sin(angle_points) + z = 0 * angle_points + + coords = np.add(np.dot(self._rotmat(), np.column_stack([x,y,z]).T).T, self.center) + return coords + + def to_vtk(self, filename, close=False): + """ + Export circular coil to VTK format + + Args: + filename: Name of the file to write. + close: Whether to draw the segment from the last quadrature point back to the first. + """ + from pyevtk.hl import polyLinesToVTK + + def wrap(data): + return np.concatenate([data, [data[0]]]) + + # get the coordinates + if close: + x = wrap(self.gamma()[:, 0]) + y = wrap(self.gamma()[:, 1]) + z = wrap(self.gamma()[:, 2]) + ppl = np.asarray([self.gamma().shape[0]+1]) + else: + x = self.gamma()[:, 0] + y = self.gamma()[:, 1] + z = self.gamma()[:, 2] + ppl = np.asarray([self.gamma().shape[0]]) + + polyLinesToVTK(str(filename), x, y, z, pointsPerLine=ppl) class DipoleField(MagneticField): r""" @@ -675,10 +743,7 @@ def _toVTK(self, vtkname): mtheta_normalized = np.ascontiguousarray(mtheta / self.m_maxima) # Save all the data to a vtk file which can be visualized nicely with ParaView - data = {"m": (mx, my, mz), "m_normalized": (mx_normalized, my_normalized, mz_normalized), - "m_rphiz": (mr, mphi, mz), "m_rphiz_normalized": (mr_normalized, mphi_normalized, mz_normalized), - "m_rphitheta": (mrminor, mphi, mtheta), - "m_rphitheta_normalized": (mrminor_normalized, mphi_normalized, mtheta_normalized)} + data = {"m": (mx, my, mz), "m_normalized": (mx_normalized, my_normalized, mz_normalized), "m_rphiz": (mr, mphi, mz), "m_rphiz_normalized": (mr_normalized, mphi_normalized, mz_normalized), "m_rphitheta": (mrminor, mphi, mtheta), "m_rphitheta_normalized": (mrminor_normalized, mphi_normalized, mtheta_normalized)} from pyevtk.hl import pointsToVTK pointsToVTK(str(vtkname), ox, oy, oz, data=data) diff --git a/src/simsopt/geo/__init__.py b/src/simsopt/geo/__init__.py index abc2bef50..0f150ca5e 100644 --- a/src/simsopt/geo/__init__.py +++ b/src/simsopt/geo/__init__.py @@ -6,6 +6,7 @@ from .curvehelical import * from .curverzfourier import * from .curvexyzfourier import * +from .curvexyzfouriersymmetries import * from .curveperturbed import * from .curveobjectives import * from .curveplanarfourier import * @@ -32,6 +33,7 @@ __all__ = (curve.__all__ + curvehelical.__all__ + curverzfourier.__all__ + curvexyzfourier.__all__ + + curvexyzfouriersymmetries.__all__ + curveperturbed.__all__ + curveobjectives.__all__ + curveplanarfourier.__all__ + finitebuild.__all__ + plotting.__all__ + diff --git a/src/simsopt/geo/boozersurface.py b/src/simsopt/geo/boozersurface.py index 0f3126167..ba0fc3a87 100644 --- a/src/simsopt/geo/boozersurface.py +++ b/src/simsopt/geo/boozersurface.py @@ -1,10 +1,11 @@ import numpy as np from scipy.linalg import lu from scipy.optimize import minimize, least_squares - import simsoptpp as sopp + from .surfaceobjectives import boozer_surface_residual, boozer_surface_dexactresidual_dcoils_dcurrents_vjp, boozer_surface_dlsqgrad_dcoils_vjp from .._core.optimizable import Optimizable +from functools import partial __all__ = ['BoozerSurface'] @@ -23,10 +24,13 @@ class BoozerSurface(Optimizable): to a magnetic surface of the field and :math:`(\phi,\theta)` that parametrize the surface correspond to Boozer angles, and the constraints are satisfied. - The surface label can be area, volume, or toroidal flux. The label on the computed surface will be equal or close - to the user-provided ``targetlabel``, depending on how the label constraint is imposed. This - constrained least squares problem can be solved by scalarizing and adding the constraint as - an additional penalty term to the objective. This is done in + There are two approaches for computing these surfaces, called BoozerLS or BoozerExact surfaces. + + For BoozerLS surfaces, the objective mentioned above is minimized :math:`J(x)`, subject to + the surface label constraint. The surface label can be area, volume, or toroidal flux. The label + on the computed surface will be equal or close to the user-provided ``targetlabel``, depending on + how the label constraint is imposed. This constrained least squares problem can be solved by + scalarizing and adding the constraint as an additional penalty term to the objective. This is done in #. :mod:`minimize_boozer_penalty_constraints_LBFGS` #. :mod:`minimize_boozer_penalty_constraints_newton` @@ -39,46 +43,124 @@ class BoozerSurface(Optimizable): #. :mod:`minimize_boozer_exact_constraints_newton` where Newton is used to solve the first order necessary conditions for optimality. + + For BoozerExact surfaces, we try to find surfaces such that the residual :math:`\mathbf r(x)` + is exactly equal to zero at a specific set of colocation points on the surface. The colocation + points are chosen such that the number of colocation points is equal to the number of unknowns + in on the surface, so that the resulting nonlinear system of equations can be solved using + Newton's method. This is done in: + + #. :mod:`solve_residual_equation_exactly_newton` + + Note that there are specific requirements on the set of colocation points, i.e. + :mod:`surface.quadpoints_phi` and :mod:`surface.quadpoints_theta`, for stellarator + symmetric BoozerExact surfaces, see `solve_residual_equation_exactly_newton` + and `SurfaceXYZTensorFourier.get_stellsym_mask()` for more information. + + Alternatively, the user can use the default solvers in + + #. :mod:`run_code(iota_guess, G=G_guess)` + + for BoozerExact or BoozerLS surfaces. """ - def __init__(self, biotsavart, surface, label, targetlabel, constraint_weight=None, reg=None): + def __init__(self, biotsavart, surface, label, targetlabel, constraint_weight=None, options=None): super().__init__(depends_on=[biotsavart]) + + from simsopt.geo import SurfaceXYZFourier, SurfaceXYZTensorFourier + if not isinstance(surface, SurfaceXYZTensorFourier) and not isinstance(surface, SurfaceXYZFourier): + raise Exception("The input surface must be a SurfaceXYZTensorFourier or SurfaceXYZFourier.") + self.biotsavart = biotsavart self.surface = surface self.label = label self.targetlabel = targetlabel self.constraint_weight = constraint_weight - self.reg = reg + self.boozer_type = 'ls' if constraint_weight else 'exact' self.need_to_run_code = True + + if options is None: + options={} + + # set the default options now + if 'verbose' not in options: + options['verbose'] = True + + # default solver options for the BoozerExact and BoozerLS solvers + if self.boozer_type == 'exact': + if 'newton_tol' not in options: + options['newton_tol'] = 1e-13 + if 'newton_maxiter' not in options: + options['newton_maxiter'] = 40 + elif self.boozer_type == 'ls': + if 'bfgs_tol' not in options: + options['bfgs_tol'] = 1e-10 + if 'newton_tol' not in options: + options['newton_tol'] = 1e-11 + if 'newton_maxiter' not in options: + options['newton_maxiter'] = 40 + if 'bfgs_maxiter' not in options: + options['bfgs_maxiter'] = 1500 + if 'limited_memory' not in options: + options['limited_memory'] = False + if 'weight_inv_modB' not in options: + options['weight_inv_modB'] = True + self.options = options def recompute_bell(self, parent=None): self.need_to_run_code = True - def run_code(self, boozer_type, iota, G=None, verbose=True): + def run_code(self, iota, G=None): """ - Run the default solvers. + Run the default solvers, i.e., run Newton's method directly if you are computing a BoozerExact surface, + and run BFGS followed by Newton if you are computing a BoozerLS surface. + + Args: + boozer_type: either 'exact' or 'ls', to indicate whether a BoozerExact or a BoozerLS surface is to be computed. + iota: guess for value of rotational transform on the surface, + G: guess for value of G on surface, defaults to None. Note that if None is used, then the coil currents must be fixed. + options: dictionary of solver options. If keyword is not specified, then a default + value is used. Possible keywords are: + `verbose`: display convergence information + `newton_tol`: tolerance for newton solver + `bfgs_tol`: tolerance for bfgs solver + `newton_maxiter`: maximum number of iterations for Newton solver + `bfgs_maxiter`: maximum number of iterations for BFGS solver + `limited_memory`: True if L-BFGS solver is desired, False if the BFGS solver otherwise. + `weight_inv_modB`: for BoozerLS surfaces, weight the residual by modB so that it does not scale with coil currents. Defaults to True. """ if not self.need_to_run_code: return + + # for coil optimizations, the gradient calculations of the objective assume that the coil currents are fixed when G is None. + if G is None: + assert np.all([c.current.dofs.all_fixed() for c in self.biotsavart.coils]) - if boozer_type == 'exact': - res = self.solve_residual_equation_exactly_newton(tol=1e-13, maxiter=40, iota=iota, G=G, verbose=verbose) + # BoozerExact default solver + if self.boozer_type == 'exact': + res = self.solve_residual_equation_exactly_newton(iota=iota, G=G, tol=self.options['newton_tol'], maxiter=self.options['newton_maxiter'], verbose=self.options['verbose']) return res - - elif boozer_type == 'ls': - # first try BFGS - #res = self.minimize_boozer_penalty_constraints_ls(tol=1e-10, maxiter=100, constraint_weight=self.constraint_weight, iota=iota, G=G, method='manual') - res = self.compute_boozerls_BFGS(tol=1e-10, maxiter=1500, constraint_weight=self.constraint_weight, iota=iota, G=G, verbose=verbose) + + # BoozerLS default solver + elif self.boozer_type == 'ls': + # you need a label constraint for a BoozerLS surface + assert self.constraint_weight is not None + + # first try BFGS. You could also try L-BFGS by setting limited_memory=True in the options dictionary, which might be faster. However, BFGS appears + # to generally result in solutions closer to optimality. + res = self.minimize_boozer_penalty_constraints_LBFGS(constraint_weight=self.constraint_weight, iota=iota, G=G, \ + tol=self.options['bfgs_tol'], maxiter=self.options['bfgs_maxiter'], verbose=self.options['verbose'], limited_memory=self.options['limited_memory'],\ + weight_inv_modB=self.options['weight_inv_modB']) iota, G = res['iota'], res['G'] ## polish off using Newton's method self.need_to_run_code = True - res = self.compute_boozerls_newton(tol=1e-11, maxiter=40, constraint_weight=self.constraint_weight, iota=iota, G=G, verbose=verbose) + res = self.minimize_boozer_penalty_constraints_newton(constraint_weight=self.constraint_weight, iota=iota, G=G, \ + verbose=self.options['verbose'], tol=self.options['newton_tol'], maxiter=self.options['newton_maxiter'],\ + weight_inv_modB=self.options['weight_inv_modB']) return res - else: - raise Exception(f"boozer_type not supported: {boozer_type}") - def boozer_penalty_constraints(self, x, derivatives=0, constraint_weight=1., scalarize=True, optimize_G=False, weight_inv_modB=False): + def boozer_penalty_constraints(self, x, derivatives=0, constraint_weight=1., scalarize=True, optimize_G=False, weight_inv_modB=True): r""" Define the residual @@ -98,6 +180,10 @@ def boozer_penalty_constraints(self, x, derivatives=0, constraint_weight=1., sca J(x) = \frac{1}{2}\mathbf r(x)^T \mathbf r(x), i.e. the least squares residual and optionally the gradient and the Hessian of :math:`J(x)`. + + If ``weight_inv_modB=True``, the Boozer residuals are weighted by the inverse of the field strength + (i.e. multiplied by :math:`1/\|\mathbf B \|`), otherwise, they are unweighted (multiplied by 1). Setting + this to True is useful to prevent the least squares residual from scaling with the coil currents. """ assert derivatives in [0, 1, 2] @@ -109,17 +195,18 @@ def boozer_penalty_constraints(self, x, derivatives=0, constraint_weight=1., sca sdofs = x[:-1] iota = x[-1] G = None - nsurfdofs = sdofs.size s = self.surface + num_res = 3 * s.quadpoints_phi.size * s.quadpoints_theta.size biotsavart = self.biotsavart s.set_dofs(sdofs) boozer = boozer_surface_residual(s, iota, G, biotsavart, derivatives=derivatives, weight_inv_modB=weight_inv_modB) + # normalizing the residuals here + boozer = tuple([b/np.sqrt(num_res) for b in boozer]) r = boozer[0] - l = self.label.J() rl = (l-self.targetlabel) rz = (s.gamma()[0, 0, 2] - 0.) @@ -160,7 +247,7 @@ def boozer_penalty_constraints(self, x, derivatives=0, constraint_weight=1., sca d2l = np.zeros((x.shape[0], x.shape[0])) d2l[:nsurfdofs, :nsurfdofs] = self.label.d2J_by_dsurfacecoefficientsdsurfacecoefficients() - + H = np.concatenate(( H, np.sqrt(constraint_weight) * d2l[None, :, :], @@ -168,6 +255,102 @@ def boozer_penalty_constraints(self, x, derivatives=0, constraint_weight=1., sca d2val = J.T @ J + np.sum(r[:, None, None] * H, axis=0) return val, dval, d2val + def boozer_penalty_constraints_vectorized(self, dofs, derivatives=0, constraint_weight=1., optimize_G=False, weight_inv_modB=True): + """ + This function returns the same thing as `boozer_penalty_constraints` when `scalarized=True`. It + is much faster and uses less memory since it calls a vectorized implementation in cpp. This is + especially true when `derivatives=2`, i.e., when the Hessian is requested. + """ + + assert derivatives in [0, 1, 2] + if optimize_G: + sdofs = dofs[:-2] + iota = dofs[-2] + G = dofs[-1] + else: + sdofs = dofs[:-1] + iota = dofs[-1] + G = 2. * np.pi * np.sum(np.abs([coil.current.get_value() for coil in self.biotsavart._coils])) * (4 * np.pi * 10**(-7) / (2 * np.pi)) + + s = self.surface + nphi = s.quadpoints_phi.size + ntheta = s.quadpoints_theta.size + nsurfdofs = sdofs.size + + s.set_dofs(sdofs) + + surface = self.surface + biotsavart = self.biotsavart + x = surface.gamma() + xphi = surface.gammadash1() + xtheta = surface.gammadash2() + nphi = x.shape[0] + ntheta = x.shape[1] + + xsemiflat = x.reshape((x.size//3, 3)).copy() + biotsavart.set_points(xsemiflat) + biotsavart.compute(derivatives) + B = biotsavart.B().reshape((nphi, ntheta, 3)) + + if derivatives >= 1: + dx_dc = surface.dgamma_by_dcoeff() + dxphi_dc = surface.dgammadash1_by_dcoeff() + dxtheta_dc = surface.dgammadash2_by_dcoeff() + dB_dx = biotsavart.dB_by_dX().reshape((nphi, ntheta, 3, 3)) + + if derivatives == 2: + d2B_by_dXdX = biotsavart.d2B_by_dXdX().reshape((nphi, ntheta, 3, 3, 3)) + + num_res = 3 * s.quadpoints_phi.size * s.quadpoints_theta.size + if derivatives == 0: + val = sopp.boozer_residual(G, iota, xphi, xtheta, B, weight_inv_modB) + boozer = val, + elif derivatives == 1: + val, dval = sopp.boozer_residual_ds(G, iota, B, dB_dx, xphi, xtheta, dx_dc, dxphi_dc, dxtheta_dc, weight_inv_modB) + boozer = val, dval + elif derivatives == 2: + val, dval, d2val = sopp.boozer_residual_ds2(G, iota, B, dB_dx, d2B_by_dXdX, xphi, xtheta, dx_dc, dxphi_dc, dxtheta_dc, weight_inv_modB) + boozer = val, dval, d2val + + # normalizing the residuals here + boozer = tuple([b/num_res for b in boozer]) + + lab = self.label.J() + + rnl = boozer[0] + rl = np.sqrt(constraint_weight) * (lab-self.targetlabel) + rz = np.sqrt(constraint_weight) * (s.gamma()[0, 0, 2] - 0.) + r = rnl + 0.5*rl**2 + 0.5*rz**2 + + if derivatives == 0: + return r + + dl = np.zeros(dofs.shape) + drz = np.zeros(dofs.shape) + dl[:nsurfdofs] = self.label.dJ(partials=True)(s) + drz[:nsurfdofs] = s.dgamma_by_dcoeff()[0, 0, 2, :] + + Jnl = boozer[1] + if not optimize_G: + Jnl = Jnl[:-1] + + drl = np.sqrt(constraint_weight) * dl + drz = np.sqrt(constraint_weight) * drz + J = Jnl + rl * drl + rz * drz + + if derivatives == 1: + return r, J + + Hnl = boozer[2] + if not optimize_G: + Hnl = Hnl[:-1, :-1] + + d2rl = np.zeros((dofs.shape[0], dofs.shape[0])) + d2rl[:nsurfdofs, :nsurfdofs] = np.sqrt(constraint_weight)*self.label.d2J_by_dsurfacecoefficientsdsurfacecoefficients() + H = Hnl + drl[:, None] @ drl[None, :] + drz[:, None] @ drz[None, :] + rl * d2rl + + return r, J, H + def boozer_exact_constraints(self, xl, derivatives=0, optimize_G=True): r""" This function returns the optimality conditions corresponding to the minimization problem @@ -234,7 +417,7 @@ def boozer_exact_constraints(self, xl, derivatives=0, optimize_G=True): dres[-1, :-2] = drz return res, dres - def minimize_boozer_penalty_constraints_LBFGS(self, tol=1e-3, maxiter=1000, constraint_weight=1., iota=0., G=None): + def minimize_boozer_penalty_constraints_LBFGS(self, tol=1e-3, maxiter=1000, constraint_weight=1., iota=0., G=None, vectorize=True, limited_memory=True, weight_inv_modB=True, verbose=False): r""" This function tries to find the surface that approximately solves @@ -255,14 +438,22 @@ def minimize_boozer_penalty_constraints_LBFGS(self, tol=1e-3, maxiter=1000, cons x = np.concatenate((s.get_dofs(), [iota])) else: x = np.concatenate((s.get_dofs(), [iota, G])) - fun = lambda x: self.boozer_penalty_constraints( - x, derivatives=1, constraint_weight=constraint_weight, optimize_G=G is not None) + + fun_name = self.boozer_penalty_constraints_vectorized if vectorize else self.boozer_penalty_constraints + fun = lambda x: fun_name(x, derivatives=1, constraint_weight=constraint_weight, optimize_G=G is not None, weight_inv_modB=weight_inv_modB) + + method = 'L-BFGS-B' if limited_memory else 'BFGS' + options = {'maxiter': maxiter, 'gtol': tol} + if limited_memory: + options['maxcor'] = 200 + options['ftol'] = tol + res = minimize( - fun, x, jac=True, method='L-BFGS-B', - options={'maxiter': maxiter, 'ftol': tol, 'gtol': tol, 'maxcor': 200}) + fun, x, jac=True, method=method, + options=options) resdict = { - "fun": res.fun, "gradient": res.jac, "iter": res.nit, "info": res, "success": res.success, "G": None, + "fun": res.fun, "gradient": res.jac, "iter": res.nit, "info": res, "success": res.success, "G": None, 'weight_inv_modB':weight_inv_modB, 'type':'ls' } if G is None: s.set_dofs(res.x[:-1]) @@ -277,9 +468,13 @@ def minimize_boozer_penalty_constraints_LBFGS(self, tol=1e-3, maxiter=1000, cons self.res = resdict self.need_to_run_code = False + + if verbose: + print(f"{method} solve - {resdict['success']} iter={resdict['iter']}, iota={resdict['iota']:.16f}, ||grad||_inf = {np.linalg.norm(resdict['gradient'], ord=np.inf):.3e}", flush=True) + return resdict - def minimize_boozer_penalty_constraints_newton(self, tol=1e-12, maxiter=10, constraint_weight=1., iota=0., G=None, stab=0.): + def minimize_boozer_penalty_constraints_newton(self, tol=1e-12, maxiter=10, constraint_weight=1., iota=0., G=None, stab=0., vectorize=True, weight_inv_modB=True, verbose=False): """ This function does the same as :mod:`minimize_boozer_penalty_constraints_LBFGS`, but instead of LBFGS it uses Newton's method. @@ -293,9 +488,10 @@ def minimize_boozer_penalty_constraints_newton(self, tol=1e-12, maxiter=10, cons else: x = np.concatenate((s.get_dofs(), [iota, G])) i = 0 - - val, dval, d2val = self.boozer_penalty_constraints( - x, derivatives=2, constraint_weight=constraint_weight, optimize_G=G is not None) + + fun_name = self.boozer_penalty_constraints_vectorized if vectorize else self.boozer_penalty_constraints + val, dval, d2val = fun_name(x, derivatives=2, constraint_weight=constraint_weight, optimize_G=G is not None, weight_inv_modB=weight_inv_modB) + norm = np.linalg.norm(dval) while i < maxiter and norm > tol: d2val += stab*np.identity(d2val.shape[0]) @@ -303,15 +499,18 @@ def minimize_boozer_penalty_constraints_newton(self, tol=1e-12, maxiter=10, cons if norm < 1e-9: dx += np.linalg.solve(d2val, dval - d2val@dx) x = x - dx - val, dval, d2val = self.boozer_penalty_constraints( - x, derivatives=2, constraint_weight=constraint_weight, optimize_G=G is not None) + val, dval, d2val = fun_name(x, derivatives=2, constraint_weight=constraint_weight, optimize_G=G is not None, weight_inv_modB=weight_inv_modB) norm = np.linalg.norm(dval) i = i+1 - + r = self.boozer_penalty_constraints( - x, derivatives=0, constraint_weight=constraint_weight, scalarize=False, optimize_G=G is not None) + x, derivatives=0, constraint_weight=constraint_weight, scalarize=False, optimize_G=G is not None, weight_inv_modB=weight_inv_modB) + + P, L, U = lu(d2val) res = { - "residual": r, "jacobian": dval, "hessian": d2val, "iter": i, "success": norm <= tol, "G": None, + "residual": r, "jacobian": dval, "hessian": d2val, "iter": i, "success": norm <= tol, "G": None, + "PLU" : (P, L, U), "vjp": partial(boozer_surface_dlsqgrad_dcoils_vjp, weight_inv_modB=weight_inv_modB),\ + "type": "ls", "weight_inv_modB": weight_inv_modB } if G is None: s.set_dofs(x[:-1]) @@ -321,11 +520,14 @@ def minimize_boozer_penalty_constraints_newton(self, tol=1e-12, maxiter=10, cons iota = x[-2] G = x[-1] res['G'] = G - res['s'] = s res['iota'] = iota self.res = res self.need_to_run_code = False + + if verbose: + print(f"NEWTON solve - {res['success']} iter={res['iter']}, iota={res['iota']:.16f}, ||grad||_inf = {np.linalg.norm(res['jacobian'], ord=np.inf):.3e}", flush=True) + return res def minimize_boozer_penalty_constraints_ls(self, tol=1e-12, maxiter=10, constraint_weight=1., iota=0., G=None, method='lm'): @@ -562,7 +764,7 @@ def solve_residual_equation_exactly_newton(self, tol=1e-10, maxiter=10, iota=0., label = self.label if G is None: - G = 2. * np.pi * np.sum(np.abs(self.biotsavart.coil_currents)) * (4 * np.pi * 10**(-7) / (2 * np.pi)) + G = 2. * np.pi * np.sum(np.abs([c.current.get_value() for c in self.biotsavart.coils])) * (4 * np.pi * 10**(-7) / (2 * np.pi)) x = np.concatenate((s.get_dofs(), [iota, G])) i = 0 r, J = boozer_surface_residual(s, iota, G, self.biotsavart, derivatives=1) @@ -609,7 +811,7 @@ def solve_residual_equation_exactly_newton(self, tol=1e-10, maxiter=10, iota=0., P, L, U = lu(J) res = { - "residual": r, "jacobian": J, "iter": i, "success": norm <= tol, "G": G, "iota": iota, "PLU": (P, L, U), + "residual": r, "jacobian": J, "iter": i, "success": norm <= tol, "G": G, "s": s, "iota": iota, "PLU": (P, L, U), "mask": mask, 'type': 'exact', "vjp": boozer_surface_dexactresidual_dcoils_dcurrents_vjp } @@ -619,203 +821,3 @@ def solve_residual_equation_exactly_newton(self, tol=1e-10, maxiter=10, iota=0., self.res = res self.need_to_run_code = False return res - - def boozerls_penalty(self, dofs, derivatives=0, constraint_weight=1., optimize_G=False): - """ - This function returns the same thing as `boozer_penalty_constraints` when `scalarized=True` and `weight_inv_modB=True`. It - is much faster since it calls a vectorized implementation in cpp. - """ - - # this is essentially the scalarize option in previous implementation. This should be merged in that case... - assert derivatives in [0, 1, 2] - if optimize_G: - sdofs = dofs[:-2] - iota = dofs[-2] - G = dofs[-1] - else: - sdofs = dofs[:-1] - iota = dofs[-1] - G = 2. * np.pi * np.sum(np.abs([coil.current.get_value() for coil in self.biotsavart._coils])) * (4 * np.pi * 10**(-7) / (2 * np.pi)) - - s = self.surface - nphi = s.quadpoints_phi.size - ntheta = s.quadpoints_theta.size - nsurfdofs = sdofs.size - - s.set_dofs(sdofs) - - surface = self.surface - biotsavart = self.biotsavart - x = surface.gamma() - xphi = surface.gammadash1() - xtheta = surface.gammadash2() - nphi = x.shape[0] - ntheta = x.shape[1] - - xsemiflat = x.reshape((x.size//3, 3)).copy() - biotsavart.set_points(xsemiflat) - biotsavart.compute(derivatives) - B = biotsavart.B().reshape((nphi, ntheta, 3)) - - if derivatives >= 1: - dx_dc = surface.dgamma_by_dcoeff() - dxphi_dc = surface.dgammadash1_by_dcoeff() - dxtheta_dc = surface.dgammadash2_by_dcoeff() - dB_dx = biotsavart.dB_by_dX().reshape((nphi, ntheta, 3, 3)) - - if derivatives == 2: - d2B_by_dXdX = biotsavart.d2B_by_dXdX().reshape((nphi, ntheta, 3, 3, 3)) - - if derivatives == 0: - val = sopp.boozer_residual(G, iota, xphi, xtheta, B) - boozer = val, - elif derivatives == 1: - val, dval = sopp.boozer_residual_ds(G, iota, B, dB_dx, xphi, xtheta, dx_dc, dxphi_dc, dxtheta_dc) - boozer = val, dval - elif derivatives == 2: - val, dval, d2val = sopp.boozer_residual_ds2(G, iota, B, dB_dx, d2B_by_dXdX, xphi, xtheta, dx_dc, dxphi_dc, dxtheta_dc) - boozer = val, dval, d2val - - lab = self.label.J() - - rnl = boozer[0] - rl = np.sqrt(constraint_weight) * (lab-self.targetlabel) - rz = np.sqrt(constraint_weight) * (s.gamma()[0, 0, 2] - 0.) - r = rnl + 0.5*rl**2 + 0.5*rz**2 - - if self.reg is not None: - r += self.reg.J() - - if derivatives == 0: - return r - - dl = np.zeros(dofs.shape) - drz = np.zeros(dofs.shape) - dl[:nsurfdofs] = self.label.dJ(partials=True)(s) - drz[:nsurfdofs] = s.dgamma_by_dcoeff()[0, 0, 2, :] - - Jnl = boozer[1] - if not optimize_G: - Jnl = Jnl[:-1] - - drl = np.sqrt(constraint_weight) * dl - drz = np.sqrt(constraint_weight) * drz - J = Jnl + rl * drl + rz * drz - if self.reg is not None: - J[:nsurfdofs] += self.reg.dJ() - - if derivatives == 1: - return r, J - - Hnl = boozer[2] - if not optimize_G: - Hnl = Hnl[:-1, :-1] - - d2rl = np.zeros((dofs.shape[0], dofs.shape[0])) - d2rl[:nsurfdofs, :nsurfdofs] = np.sqrt(constraint_weight)*self.label.d2J_by_dsurfacecoefficientsdsurfacecoefficients() - H = Hnl + drl[:, None] @ drl[None, :] + drz[:, None] @ drz[None, :] + rl * d2rl - if self.reg is not None: - H[:nsurfdofs, :nsurfdofs] += self.reg.d2J() - - return r, J, H - - def compute_boozerls_BFGS(self, tol=1e-3, maxiter=1000, constraint_weight=1., iota=0., G=None, hessian=False, verbose=False): - r""" - """ - if not self.need_to_run_code: - return self.res - - s = self.surface - if G is None: - x = np.concatenate((s.get_dofs(), [iota])) - else: - x = np.concatenate((s.get_dofs(), [iota, G])) - - fun = lambda x: self.boozerls_penalty( - x, derivatives=1, constraint_weight=constraint_weight, optimize_G=G is not None) - res = minimize( - fun, x, jac=True, method='BFGS', - options={'maxiter': maxiter, 'gtol': tol}) - - resdict = { - "residual": res.fun, "gradient": res.jac, "iter": res.nit, "info": res, "success": res.success, "G": None, 'type': 'ls', 'solver': 'BFGS', - "firstorderop": res.jac, "constraint_weight": constraint_weight, "labelerr": np.abs((self.label.J()-self.targetlabel)/self.targetlabel), - "vjp": boozer_surface_dlsqgrad_dcoils_vjp - } - - if G is None: - s.set_dofs(res.x[:-1]) - iota = res.x[-1] - else: - s.set_dofs(res.x[:-2]) - iota = res.x[-2] - G = res.x[-1] - resdict['G'] = G - resdict['s'] = s - resdict['iota'] = iota - - if hessian: - val, dval, d2val = self.boozerls_penalty( - x, derivatives=2, constraint_weight=constraint_weight, optimize_G=G is not None) - P, L, U = lu(d2val) - resdict["PLU"] = (P, L, U) - - self.res = resdict - self.need_to_run_code = False - - if verbose: - print(f"BFGS solve - {resdict['success']} iter={resdict['iter']}, iota={resdict['iota']:.16f}, ||grad||_inf = {np.linalg.norm(resdict['firstorderop'], ord=np.inf):.3e}", flush=True) - return resdict - - def compute_boozerls_newton(self, tol=1e-12, maxiter=10, constraint_weight=1., iota=0., G=None, stab=0., verbose=False): - """ - """ - if not self.need_to_run_code: - return self.res - - s = self.surface - if G is None: - x = np.concatenate((s.get_dofs(), [iota])) - else: - x = np.concatenate((s.get_dofs(), [iota, G])) - i = 0 - - val, dval, d2val = self.boozerls_penalty( - x, derivatives=2, constraint_weight=constraint_weight, optimize_G=G is not None) - norm = np.linalg.norm(dval, ord=np.inf) - - while i < maxiter and norm > tol: - d2val += stab*np.identity(d2val.shape[0]) - dx = np.linalg.solve(d2val, dval) - if norm < 1e-9: - dx += np.linalg.solve(d2val, dval - d2val@dx) - x = x - dx - val, dval, d2val = self.boozerls_penalty( - x, derivatives=2, constraint_weight=constraint_weight, optimize_G=G is not None) - norm = np.linalg.norm(dval, ord=np.inf) - - if norm > 1e1: - break - - i = i+1 - - P, L, U = lu(d2val) - if G is None: - s.set_dofs(x[:-1]) - iota = x[-1] - else: - s.set_dofs(x[:-2]) - iota = x[-2] - G = x[-1] - - res = { - "residual": val, "jacobian": dval, "hessian": d2val, "iter": i, "success": norm <= tol, "firstorderop": dval, - "PLU": (P, L, U), 'iota': iota, "G": G, "type": "ls", "vjp": boozer_surface_dlsqgrad_dcoils_vjp - } - - self.res = res - self.need_to_run_code = False - - if verbose: - print(f"NEWTON solve - {res['success']} iter={res['iter']}, iota={res['iota']:.16f}, ||grad||_inf = {np.linalg.norm(res['firstorderop'], ord=np.inf):.3e}", flush=True) - return res diff --git a/src/simsopt/geo/curvexyzfouriersymmetries.py b/src/simsopt/geo/curvexyzfouriersymmetries.py new file mode 100644 index 000000000..b537e94f3 --- /dev/null +++ b/src/simsopt/geo/curvexyzfouriersymmetries.py @@ -0,0 +1,142 @@ +import jax.numpy as jnp +import numpy as np +from .curve import JaxCurve +from math import gcd + +__all__ = ['CurveXYZFourierSymmetries'] + + +def jaxXYZFourierSymmetriescurve_pure(dofs, quadpoints, order, nfp, stellsym, ntor): + + theta, m = jnp.meshgrid(quadpoints, jnp.arange(order + 1), indexing='ij') + + if stellsym: + xc = dofs[:order+1] + ys = dofs[order+1:2*order+1] + zs = dofs[2*order+1:] + + xhat = np.sum(xc[None, :] * jnp.cos(2 * jnp.pi * nfp*m*theta), axis=1) + yhat = np.sum(ys[None, :] * jnp.sin(2 * jnp.pi * nfp*m[:, 1:]*theta[:, 1:]), axis=1) + + z = jnp.sum(zs[None, :] * jnp.sin(2*jnp.pi*nfp * m[:, 1:]*theta[:, 1:]), axis=1) + else: + xc = dofs[0 : order+1] + xs = dofs[order+1 : 2*order+1] + yc = dofs[2*order+1: 3*order+2] + ys = dofs[3*order+2: 4*order+2] + zc = dofs[4*order+2: 5*order+3] + zs = dofs[5*order+3: ] + + xhat = np.sum(xc[None, :] * jnp.cos(2*jnp.pi*nfp*m*theta), axis=1) + np.sum(xs[None, :] * jnp.sin(2*jnp.pi*nfp*m[:, 1:]*theta[:, 1:]), axis=1) + yhat = np.sum(yc[None, :] * jnp.cos(2*jnp.pi*nfp*m*theta), axis=1) + np.sum(ys[None, :] * jnp.sin(2*jnp.pi*nfp*m[:, 1:]*theta[:, 1:]), axis=1) + + z = np.sum(zc[None, :] * jnp.cos(2*jnp.pi*nfp*m*theta), axis=1) + np.sum(zs[None, :] * jnp.sin(2*jnp.pi*nfp*m[:, 1:]*theta[:, 1:]), axis=1) + + angle = 2 * jnp.pi * quadpoints * ntor + x = jnp.cos(angle) * xhat - jnp.sin(angle) * yhat + y = jnp.sin(angle) * xhat + jnp.cos(angle) * yhat + + gamma = jnp.zeros((len(quadpoints),3)) + gamma = gamma.at[:, 0].add(x) + gamma = gamma.at[:, 1].add(y) + gamma = gamma.at[:, 2].add(z) + return gamma + + +class CurveXYZFourierSymmetries(JaxCurve): + r'''A curve representation that allows for stellarator and discrete rotational symmetries. This class can be used to + represent a helical coil that does not lie on a torus. The coordinates of the curve are given by: + + .. math:: + x(\theta) &= \hat x(\theta) \cos(2 \pi \theta n_{\text{tor}}) - \hat y(\theta) \sin(2 \pi \theta n_{\text{tor}})\\ + y(\theta) &= \hat x(\theta) \sin(2 \pi \theta n_{\text{tor}}) + \hat y(\theta) \cos(2 \pi \theta n_{\text{tor}})\\ + z(\theta) &= \sum_{m=1}^{\text{order}} z_{s,m} \sin(2 \pi n_{\text{fp}} m \theta) + + where + + .. math:: + \hat x(\theta) &= x_{c, 0} + \sum_{m=1}^{\text{order}} x_{c,m} \cos(2 \pi n_{\text{fp}} m \theta)\\ + \hat y(\theta) &= \sum_{m=1}^{\text{order}} y_{s,m} \sin(2 \pi n_{\text{fp}} m \theta)\\ + + + if the coil is stellarator symmetric. When the coil is not stellarator symmetric, the formulas above + become + + .. math:: + x(\theta) &= \hat x(\theta) \cos(2 \pi \theta n_{\text{tor}}) - \hat y(\theta) \sin(2 \pi \theta n_{\text{tor}})\\ + y(\theta) &= \hat x(\theta) \sin(2 \pi \theta n_{\text{tor}}) + \hat y(\theta) \cos(2 \pi \theta n_{\text{tor}})\\ + z(\theta) &= z_{c, 0} + \sum_{m=1}^{\text{order}} \left[ z_{c, m} \cos(2 \pi n_{\text{fp}} m \theta) + z_{s, m} \sin(2 \pi n_{\text{fp}} m \theta) \right] + + where + + .. math:: + \hat x(\theta) &= x_{c, 0} + \sum_{m=1}^{\text{order}} \left[ x_{c, m} \cos(2 \pi n_{\text{fp}} m \theta) + x_{s, m} \sin(2 \pi n_{\text{fp}} m \theta) \right] \\ + \hat y(\theta) &= y_{c, 0} + \sum_{m=1}^{\text{order}} \left[ y_{c, m} \cos(2 \pi n_{\text{fp}} m \theta) + y_{s, m} \sin(2 \pi n_{\text{fp}} m \theta) \right] \\ + + Args: + quadpoints: number of grid points/resolution along the curve, + order: how many Fourier harmonics to include in the Fourier representation, + nfp: discrete rotational symmetry number, + stellsym: stellaratory symmetry if True, not stellarator symmetric otherwise, + ntor: the number of times the curve wraps toroidally before biting its tail. Note, + it is assumed that nfp and ntor are coprime. If they are not coprime, + then then the curve actually has nfp_new:=nfp // gcd(nfp, ntor), + and ntor_new:=ntor // gcd(nfp, ntor). The operator `//` is integer division. + To avoid confusion, we assert that ntor and nfp are coprime at instantiation. + ''' + + def __init__(self, quadpoints, order, nfp, stellsym, ntor=1, **kwargs): + if isinstance(quadpoints, int): + quadpoints = np.linspace(0, 1, quadpoints, endpoint=False) + pure = lambda dofs, points: jaxXYZFourierSymmetriescurve_pure( + dofs, points, order, nfp, stellsym, ntor) + + if gcd(ntor, nfp) != 1: + raise Exception('nfp and ntor must be coprime') + + self.order = order + self.nfp = nfp + self.stellsym = stellsym + self.ntor = ntor + self.coefficients = np.zeros(self.num_dofs()) + if "dofs" not in kwargs: + if "x0" not in kwargs: + kwargs["x0"] = self.coefficients + else: + self.set_dofs_impl(kwargs["x0"]) + + super().__init__(quadpoints, pure, names=self._make_names(order), **kwargs) + + def _make_names(self, order): + if self.stellsym: + x_cos_names = [f'xc({i})' for i in range(0, order + 1)] + x_names = x_cos_names + y_sin_names = [f'ys({i})' for i in range(1, order + 1)] + y_names = y_sin_names + z_sin_names = [f'zs({i})' for i in range(1, order + 1)] + z_names = z_sin_names + else: + x_names = ['xc(0)'] + x_cos_names = [f'xc({i})' for i in range(1, order + 1)] + x_sin_names = [f'xs({i})' for i in range(1, order + 1)] + x_names += x_cos_names + x_sin_names + y_names = ['yc(0)'] + y_cos_names = [f'yc({i})' for i in range(1, order + 1)] + y_sin_names = [f'ys({i})' for i in range(1, order + 1)] + y_names += y_cos_names + y_sin_names + z_names = ['zc(0)'] + z_cos_names = [f'zc({i})' for i in range(1, order + 1)] + z_sin_names = [f'zs({i})' for i in range(1, order + 1)] + z_names += z_cos_names + z_sin_names + + return x_names + y_names + z_names + + def num_dofs(self): + return (self.order+1) + self.order + self.order if self.stellsym else 3*(2*self.order+1) + + def get_dofs(self): + return self.coefficients + + def set_dofs_impl(self, dofs): + self.coefficients[:] = dofs[:] + diff --git a/src/simsopt/geo/surface.py b/src/simsopt/geo/surface.py index ef12cb80d..9da6fba97 100644 --- a/src/simsopt/geo/surface.py +++ b/src/simsopt/geo/surface.py @@ -518,7 +518,7 @@ def minor_radius(self): Return the minor radius of the surface using the formula .. math:: - R_{\text{minor}} &= \sqrt{ \overline{A} / \pi } + R_{\text{minor}} = \sqrt{ \overline{A} / \pi } where :math:`\overline{A}` is the average cross sectional area. diff --git a/src/simsopt/geo/surfaceobjectives.py b/src/simsopt/geo/surfaceobjectives.py index 792307566..8eb814776 100644 --- a/src/simsopt/geo/surfaceobjectives.py +++ b/src/simsopt/geo/surfaceobjectives.py @@ -1,11 +1,9 @@ -from typing import Any - import numpy as np -from nptyping import NDArray, Float import simsoptpp as sopp from .._core.optimizable import Optimizable from .._core.derivative import Derivative, derivative_dec +from .._core.types import RealArray from .surface import Surface from .surfacexyztensorfourier import SurfaceXYZTensorFourier from ..objectives.utilities import forward_backward @@ -22,7 +20,7 @@ class AspectRatio(Optimizable): """ - Wrapper class for surface area label. + Wrapper class for surface aspect ratio. """ def __init__(self, surface, range=None, nphi=None, ntheta=None): @@ -50,7 +48,7 @@ def __init__(self, surface, range=None, nphi=None, ntheta=None): def J(self): """ - Compute the area of a surface. + Compute the aspect ratio of a surface. """ return self.surface.aspect_ratio() @@ -349,7 +347,7 @@ def boozer_surface_residual(surface, iota, G, biotsavart, derivatives=0, weight_ residual .. math:: - G\mathbf B_\text{BS}(\mathbf x) - ||\mathbf B_\text{BS}(\mathbf x)||^2 (\mathbf x_\varphi + \iota \mathbf x_\theta) + G\mathbf B_\text{BS}(\mathbf x) - \|\mathbf B_\text{BS}(\mathbf x)\|^2 (\mathbf x_\varphi + \iota \mathbf x_\theta) as well as the derivatives of this residual with respect to surface dofs, iota, and G. In the above, :math:`\mathbf x` are points on the surface, :math:`\iota` is the @@ -365,7 +363,7 @@ def boozer_surface_residual(surface, iota, G, biotsavart, derivatives=0, weight_ G: a constant that is a function of the coil currents in vacuum field biotsavart: the Biot-Savart magnetic field derivatives: how many spatial derivatives of the residual to compute - weight_inv_modB: whether or not to weight the residual by :math:`\|\mathbf B\|`. This + weight_inv_modB: whether or not to weight the residual by :math:`1/\|\mathbf B\|`. This is useful to activate so that the residual does not scale with the coil currents. @@ -521,8 +519,8 @@ def boozer_surface_residual(surface, iota, G, biotsavart, derivatives=0, weight_ def parameter_derivatives(surface: Surface, - shape_gradient: NDArray[Any, Float] - ) -> NDArray[Any, Float]: + shape_gradient: RealArray + ) -> RealArray: r""" Converts the shape gradient of a given figure of merit, :math:`f`, to derivatives with respect to parameters defining a surface. For @@ -663,7 +661,7 @@ def recompute_bell(self, parent=None): def compute(self): if self.boozer_surface.need_to_run_code: res = self.boozer_surface.res - res = self.boozer_surface.run_code(res['type'], res['iota'], G=res['G']) + res = self.boozer_surface.run_code(res['iota'], G=res['G']) surface = self.surface self._J = surface.major_radius() @@ -751,7 +749,7 @@ def dJ(self): def compute(self): if self.boozer_surface.need_to_run_code: res = self.boozer_surface.res - res = self.boozer_surface.run_code(res['type'], res['iota'], G=res['G']) + res = self.boozer_surface.run_code(res['iota'], G=res['G']) self.biotsavart.set_points(self.surface.gamma().reshape((-1, 3))) axis = self.axis @@ -786,9 +784,11 @@ def compute(self): dJ_by_dB = self.dJ_by_dB().reshape((-1, 3)) dJ_by_dcoils = self.biotsavart.B_vjp(dJ_by_dB) - + # tack on dJ_diota = dJ_dG = 0 to the end of dJ_ds - dJ_ds = np.concatenate((self.dJ_by_dsurfacecoefficients(), [0., 0.])) + dJ_ds = np.zeros(L.shape[0]) + dj_ds = self.dJ_by_dsurfacecoefficients() + dJ_ds[:dj_ds.size] = dj_ds adj = forward_backward(P, L, U, dJ_ds) adj_times_dg_dcoil = dconstraint_dcoils_vjp(adj, booz_surf, iota, G) @@ -907,13 +907,14 @@ def dJ(self): def recompute_bell(self, parent=None): self._J = None + self._dJ = None self._dJ_by_dcoefficients = None self._dJ_by_dcoilcurrents = None def compute(self): if self.boozer_surface.need_to_run_code: res = self.boozer_surface.res - res = self.boozer_surface.run_code(res['type'], res['iota'], G=res['G']) + res = self.boozer_surface.run_code(res['iota'], G=res['G']) self._J = self.boozer_surface.res['iota'] @@ -923,9 +924,14 @@ def compute(self): P, L, U = booz_surf.res['PLU'] dconstraint_dcoils_vjp = self.boozer_surface.res['vjp'] - # tack on dJ_diota = dJ_dG = 0 to the end of dJ_ds dJ_ds = np.zeros(L.shape[0]) - dJ_ds[-2] = 1. + if G is not None: + # tack on dJ_diota = 1, and dJ_dG = 0 to the end of dJ_ds + dJ_ds[-2] = 1. + else: + # tack on dJ_diota = 1 to the end of dJ_ds + dJ_ds[-1] = 1. + adj = forward_backward(P, L, U, dJ_ds) adj_times_dg_dcoil = dconstraint_dcoils_vjp(adj, booz_surf, iota, G) @@ -1030,7 +1036,7 @@ def recompute_bell(self, parent=None): def compute(self): if self.boozer_surface.need_to_run_code: res = self.boozer_surface.res - res = self.boozer_surface.run_code(res['type'], res['iota'], G=res['G']) + res = self.boozer_surface.run_code(res['iota'], G=res['G']) self.surface.set_dofs(self.in_surface.get_dofs()) self.biotsavart.set_points(self.surface.gamma().reshape((-1, 3))) @@ -1043,7 +1049,7 @@ def compute(self): surface = self.surface iota = self.boozer_surface.res['iota'] G = self.boozer_surface.res['G'] - r, J = boozer_surface_residual(surface, iota, G, self.biotsavart, derivatives=1, weight_inv_modB=True) + r, J = boozer_surface_residual(surface, iota, G, self.biotsavart, derivatives=1, weight_inv_modB=self.boozer_surface.res['weight_inv_modB']) rtil = np.concatenate((r/np.sqrt(num_points), [np.sqrt(self.constraint_weight)*(self.boozer_surface.label.J()-self.boozer_surface.targetlabel)])) self._J = 0.5*np.sum(rtil**2) @@ -1056,16 +1062,11 @@ def compute(self): # dJ_diota, dJ_dG to the end of dJ_ds are on the end dl = np.zeros((J.shape[1],)) - dl[:-2] = self.boozer_surface.label.dJ_by_dsurfacecoefficients() + dlabel_dsurface = self.boozer_surface.label.dJ_by_dsurfacecoefficients() + dl[:dlabel_dsurface.size] = dlabel_dsurface Jtil = np.concatenate((J/np.sqrt(num_points), np.sqrt(self.constraint_weight) * dl[None, :]), axis=0) dJ_ds = Jtil.T@rtil - if booz_surf.res['type'] == 'lscons': - if booz_surf.surface.stellsym: - dJ_ds = np.concatenate((dJ_ds, [0.])) - else: - dJ_ds = np.concatenate((dJ_ds, [0., 0.])) - adj = forward_backward(P, L, U, dJ_ds) adj_times_dg_dcoil = dconstraint_dcoils_vjp(adj, booz_surf, iota, G) @@ -1077,10 +1078,11 @@ def dJ_by_dB(self): """ surface = self.surface + res = self.boozer_surface.res nphi = self.surface.quadpoints_phi.size ntheta = self.surface.quadpoints_theta.size num_points = 3 * nphi * ntheta - r, r_dB = boozer_surface_residual_dB(surface, self.boozer_surface.res['iota'], self.boozer_surface.res['G'], self.biotsavart, derivatives=0, weight_inv_modB=True) + r, r_dB = boozer_surface_residual_dB(surface, self.boozer_surface.res['iota'], self.boozer_surface.res['G'], self.biotsavart, derivatives=0, weight_inv_modB=res['weight_inv_modB']) r /= np.sqrt(num_points) r_dB /= np.sqrt(num_points) @@ -1100,8 +1102,6 @@ def boozer_surface_dexactresidual_dcoils_dcurrents_vjp(lm, booz_surf, iota, G): \lambda^T \frac{d\mathbf{r}}{d\text{currents}} &= [G\lambda - 2\lambda\|\mathbf B(\mathbf x)\| (\mathbf{x}_\varphi + \iota \mathbf{x}_\theta) ]^T \frac{d\mathbf B}{d\text{currents}} where :math:`\mathbf{r}` is the Boozer residual. - G is known for exact boozer surfaces, so if G=None is passed, then that - value is used instead. Args: lm: adjoint variable, @@ -1111,9 +1111,9 @@ def boozer_surface_dexactresidual_dcoils_dcurrents_vjp(lm, booz_surf, iota, G): """ surface = booz_surf.surface biotsavart = booz_surf.biotsavart - user_provided_G = G is not None - if not user_provided_G: - G = 2. * np.pi * np.sum(np.abs(biotsavart.coil_currents)) * (4 * np.pi * 10**(-7) / (2 * np.pi)) + + # G must be provided here + assert G is not None res, dres_dB = boozer_surface_residual_dB(surface, iota, G, biotsavart) dres_dB = dres_dB.reshape((-1, 3, 3)) @@ -1130,7 +1130,7 @@ def boozer_surface_dexactresidual_dcoils_dcurrents_vjp(lm, booz_surf, iota, G): return lm_times_dres_dcoils+lm_times_dlabel_dcoils -def boozer_surface_dlsqgrad_dcoils_vjp(lm, booz_surf, iota, G): +def boozer_surface_dlsqgrad_dcoils_vjp(lm, booz_surf, iota, G, weight_inv_modB=True): """ For a given surface with points x on it, this function computes the vector-Jacobian product of \lm^T * dlsqgrad_dcoils, \lm^T * dlsqgrad_dcurrents: @@ -1140,20 +1140,14 @@ def boozer_surface_dlsqgrad_dcoils_vjp(lm, booz_surf, iota, G): G is known for exact boozer surfaces, so if G=None is passed, then that value is used instead. """ - - if booz_surf.res['type'] == 'lscons': - if booz_surf.surface.stellsym: - lm = lm[:-1] - else: - lm = lm[:-2] - + surface = booz_surf.surface biotsavart = booz_surf.biotsavart nphi = surface.quadpoints_phi.size ntheta = surface.quadpoints_theta.size num_points = 3 * nphi * ntheta # r, dr_dB, J, d2residual_dsurfacedB, d2residual_dsurfacedgradB - boozer = boozer_surface_residual_dB(surface, iota, G, biotsavart, derivatives=1, weight_inv_modB=True) + boozer = boozer_surface_residual_dB(surface, iota, G, biotsavart, derivatives=1, weight_inv_modB=weight_inv_modB) r = boozer[0]/np.sqrt(num_points) dr_dB = boozer[1].reshape((-1, 3, 3))/np.sqrt(num_points) dr_ds = boozer[2]/np.sqrt(num_points) @@ -1180,7 +1174,7 @@ def boozer_surface_residual_dB(surface, iota, G, biotsavart, derivatives=0, weig user_provided_G = G is not None if not user_provided_G: - G = 2. * np.pi * np.sum(np.abs(biotsavart.coil_currents)) * (4 * np.pi * 10**(-7) / (2 * np.pi)) + G = 2. * np.pi * np.sum(np.abs([c.current.get_value() for c in biotsavart.coils])) * (4 * np.pi * 10**(-7) / (2 * np.pi)) x = surface.gamma() xphi = surface.gammadash1() diff --git a/src/simsopt/geo/surfacerzfourier.py b/src/simsopt/geo/surfacerzfourier.py index 684a02e65..bf0437ff8 100644 --- a/src/simsopt/geo/surfacerzfourier.py +++ b/src/simsopt/geo/surfacerzfourier.py @@ -718,6 +718,43 @@ def write_nml(self, filename: str): with open(filename, 'w') as f: f.write(self.get_nml()) + def make_rotating_ellipse(self, major_radius, minor_radius, elongation, torsion=0): + """ + Set the surface shape to be a rotating ellipse with the given + parameters. + + Values of ``elongation`` larger than 1 will result in the elliptical + cross-section at :math:`\phi=0` being taller than it is wide. + Values of ``elongation`` less than 1 will result in the elliptical + cross-section at :math:`\phi=0` being wider than it is tall. + + The sign convention is such that both the rotating elongation and + positive ``torsion`` will contribute positively to iota according to + VMEC's sign convention. + + Args: + major_radius: Average major radius of the surface. + minor_radius: Average minor radius of the surface. + elongation: Elongation of the elliptical cross-section. + torsion: Value to use for the (m,n)=(0,1) mode of RC and -ZS, which + controls the torsion of the magnetic axis. + """ + + self.local_full_x = np.zeros_like(self.local_full_x) + self.set_rc(0, 0, major_radius) + self.set_rc(0, 1, torsion) + self.set_zs(0, 1, -torsion) + + sqrt_elong = np.sqrt(elongation) + amplitude = 0.5 * minor_radius * (1 / sqrt_elong - sqrt_elong) + self.set_rc(1, 1, amplitude) + self.set_zs(1, 1, -amplitude) + + amplitude = 0.5 * minor_radius * (1 / sqrt_elong + sqrt_elong) + self.set_rc(1, 0, amplitude) + self.set_zs(1, 0, amplitude) + + return_fn_map = {'area': sopp.SurfaceRZFourier.area, 'volume': sopp.SurfaceRZFourier.volume, 'aspect-ratio': Surface.aspect_ratio} diff --git a/src/simsopt/geo/surfacexyztensorfourier.py b/src/simsopt/geo/surfacexyztensorfourier.py index 7f4eeac20..8244d2f04 100644 --- a/src/simsopt/geo/surfacexyztensorfourier.py +++ b/src/simsopt/geo/surfacexyztensorfourier.py @@ -159,14 +159,12 @@ def npsame(a, b): npsame(thetas, np.linspace(0, 1, 2*mpol+1, endpoint=False)): mask[:, mpol+1:] = False mask[ntor+1:, 0] = False - if npsame(phis, np.linspace(0, 1/self.nfp, 2*ntor+1, endpoint=False)) and \ + elif npsame(phis, np.linspace(0, 1/self.nfp, 2*ntor+1, endpoint=False)) and \ npsame(thetas, np.linspace(0, 0.5, mpol+1, endpoint=False)): mask[ntor+1:, 0] = False - if npsame(phis, np.linspace(0, 1/(2*self.nfp), ntor+1, endpoint=False)) and \ - npsame(thetas, np.linspace(0, 1, 2*mpol+1, endpoint=False)): - mask[0, mpol+1:] = False - if npsame(phis, np.linspace(0, 1/self.nfp, 2*ntor+1, endpoint=False)[:ntor+1]) and \ + elif npsame(phis, np.linspace(0, 1/(2*self.nfp), ntor+1, endpoint=False)) and \ npsame(thetas, np.linspace(0, 1, 2*mpol+1, endpoint=False)): mask[0, mpol+1:] = False - + else: + raise Exception('Stellarator symmetric BoozerExact surfaces require a specific set of quadrature points on the surface. See the SurfaceXYZTensorFourier.get_stellsym_mask() docstring for more information.') return mask diff --git a/src/simsopt/mhd/spec.py b/src/simsopt/mhd/spec.py index 05e304a52..ec7444417 100644 --- a/src/simsopt/mhd/spec.py +++ b/src/simsopt/mhd/spec.py @@ -141,6 +141,12 @@ def __init__(self, filename = f"{filename}.sp" logger.info(f"Initializing a SPEC object from file: {filename}") + # If spec has run before, clear the f90wrap array caches. + # See https://github.com/hiddenSymmetries/simsopt/pull/431 + # This addresses the issue https://github.com/hiddenSymmetries/simsopt/issues/357 + if spec.allglobal._arrays: + self._clear_f90wrap_array_caches() + if tolerance <= 0: raise ValueError( 'tolerance should be greater than zero' @@ -716,6 +722,18 @@ def set_dofs(self, x): if p is not None: p.phiedge = x[0] + def _clear_f90wrap_array_caches(self): + """ + Clear the f90wrap array caches. This is necessary when a new file is + read after SPEC has run before. + + See https://github.com/hiddenSymmetries/simsopt/pull/431 + + This function is for addressing the issue https://github.com/hiddenSymmetries/simsopt/issues/357 + """ + spec.allglobal._arrays = {} + spec.inputlist._arrays = {} + def init(self, filename: str): """ Initialize SPEC fortran state from an input file. diff --git a/src/simsopt/mhd/vmec.py b/src/simsopt/mhd/vmec.py index 6e190d7d8..250d6733e 100644 --- a/src/simsopt/mhd/vmec.py +++ b/src/simsopt/mhd/vmec.py @@ -754,7 +754,11 @@ def run(self): # Delete the previous output file, if desired: for filename in self.files_to_delete: - os.remove(filename) + try: + os.remove(filename) + except FileNotFoundError: + logger.debug(f"Tried to delete the file {filename} but it was not found") + self.files_to_delete = [] # Record the latest output file to delete if we run again: diff --git a/src/simsopt/mhd/vmec_diagnostics.py b/src/simsopt/mhd/vmec_diagnostics.py index 716524595..4f4e640b1 100644 --- a/src/simsopt/mhd/vmec_diagnostics.py +++ b/src/simsopt/mhd/vmec_diagnostics.py @@ -720,15 +720,23 @@ def vmec_splines(vmec): """ vmec.run() results = Struct() - if vmec.wout.lasym: - raise ValueError("vmec_splines is not yet set up for non-stellarator-symmetric cases.") - + stellsym = not vmec.wout.lasym rmnc = [] zmns = [] lmns = [] d_rmnc_d_s = [] d_zmns_d_s = [] d_lmns_d_s = [] + + # for stellarator non-symmetric configs + rmns = [] + zmnc = [] + lmnc = [] + d_rmns_d_s = [] + d_zmnc_d_s = [] + d_lmnc_d_s = [] + + for jmn in range(vmec.wout.mnmax): rmnc.append(InterpolatedUnivariateSpline(vmec.s_full_grid, vmec.wout.rmnc[jmn, :])) zmns.append(InterpolatedUnivariateSpline(vmec.s_full_grid, vmec.wout.zmns[jmn, :])) @@ -736,7 +744,22 @@ def vmec_splines(vmec): d_rmnc_d_s.append(rmnc[-1].derivative()) d_zmns_d_s.append(zmns[-1].derivative()) d_lmns_d_s.append(lmns[-1].derivative()) + if vmec.wout.lasym: + # stellarator non-symmetric + rmns.append(InterpolatedUnivariateSpline(vmec.s_full_grid, vmec.wout.rmns[jmn, :])) + zmnc.append(InterpolatedUnivariateSpline(vmec.s_full_grid, vmec.wout.zmnc[jmn, :])) + lmnc.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.lmnc[jmn, 1:])) + else: + # if stellarator symmetric, set modes to zero + rmns.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + zmnc.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + lmnc.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + + d_rmns_d_s.append(rmns[-1].derivative()) + d_zmnc_d_s.append(zmnc[-1].derivative()) + d_lmnc_d_s.append(lmnc[-1].derivative()) + # nyquist quantities gmnc = [] bmnc = [] bsupumnc = [] @@ -747,6 +770,20 @@ def vmec_splines(vmec): d_bmnc_d_s = [] d_bsupumnc_d_s = [] d_bsupvmnc_d_s = [] + + # for stellarator non-symmetric configs + gmns = [] + bmns = [] + bsupumns = [] + bsupvmns = [] + bsubsmnc = [] + bsubumns = [] + bsubvmns = [] + d_bmns_d_s = [] + d_bsupumns_d_s = [] + d_bsupvmns_d_s = [] + + for jmn in range(vmec.wout.mnmax_nyq): gmnc.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.gmnc[jmn, 1:])) bmnc.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.bmnc[jmn, 1:])) @@ -759,7 +796,31 @@ def vmec_splines(vmec): d_bmnc_d_s.append(bmnc[-1].derivative()) d_bsupumnc_d_s.append(bsupumnc[-1].derivative()) d_bsupvmnc_d_s.append(bsupvmnc[-1].derivative()) - + if vmec.wout.lasym: + # stellarator non-symmetric + gmns.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.gmns[jmn, 1:])) + bmns.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.bmns[jmn, 1:])) + bsupumns.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.bsupumns[jmn, 1:])) + bsupvmns.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.bsupvmns[jmn, 1:])) + # Note that bsubsmns is on the full mesh, unlike the other components: + bsubsmnc.append(InterpolatedUnivariateSpline(vmec.s_full_grid, vmec.wout.bsubsmnc[jmn, :])) + bsubumns.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.bsubumns[jmn, 1:])) + bsubvmns.append(InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.bsubvmns[jmn, 1:])) + else: + # if stellarator symmetric, set modes to zero + gmns.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + bmns.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + bsupumns.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + bsupvmns.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + bsubsmnc.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + bsubumns.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + bsubvmns.append(InterpolatedUnivariateSpline([0, 1], [0, 0], k=1)) + + d_bmns_d_s.append(bmns[-1].derivative()) + d_bsupumns_d_s.append(bsupumns[-1].derivative()) + d_bsupvmns_d_s.append(bsupvmns[-1].derivative()) + + # Handle 1d profiles: results.pressure = InterpolatedUnivariateSpline(vmec.s_half_grid, vmec.wout.pres[1:]) results.d_pressure_d_s = results.pressure.derivative() @@ -774,7 +835,12 @@ def vmec_splines(vmec): variables = ['rmnc', 'zmns', 'lmns', 'd_rmnc_d_s', 'd_zmns_d_s', 'd_lmns_d_s', 'gmnc', 'bmnc', 'd_bmnc_d_s', 'bsupumnc', 'bsupvmnc', 'd_bsupumnc_d_s', 'd_bsupvmnc_d_s', - 'bsubsmns', 'bsubumnc', 'bsubvmnc'] + 'bsubsmns', 'bsubumnc', 'bsubvmnc', 'stellsym'] + # stellarator non-symmetric + variables = variables + \ + ['rmns', 'zmnc', 'lmnc', 'd_rmns_d_s', 'd_zmnc_d_s', 'd_lmnc_d_s', + 'gmns', 'bmns', 'd_bmns_d_s', 'bsupumns', 'bsupvmns', 'd_bsupumns_d_s', 'd_bsupvmns_d_s', + 'bsubsmnc', 'bsubumns', 'bsubvmns'] for v in variables: results.__setattr__(v, eval(v)) @@ -833,6 +899,7 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): - ``grad_alpha_dot_grad_alpha``: :math:`|\nabla\alpha|^2 = \nabla\alpha\cdot\nabla\alpha`. - ``grad_alpha_dot_grad_psi``: :math:`\nabla\alpha\cdot\nabla\psi`. - ``grad_psi_dot_grad_psi``: :math:`|\nabla\psi|^2 = \nabla\psi\cdot\nabla\psi`. + - ``L_grad_B``: The scale length of the magnetic field, from Kappel et al, PPCF 66 025018 (2024). - ``iota``: The rotational transform :math:`\iota`. This array has shape ``(ns,)``. - ``shat``: The magnetic shear :math:`\hat s= (x/q) (d q / d x)` where :math:`x = \mathrm{Aminor_p} \, \sqrt{s}` and :math:`q=1/\iota`. This array has shape ``(ns,)``. @@ -880,6 +947,8 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): # If given a Vmec object, convert it to vmec_splines: if isinstance(vs, Vmec): vs = vmec_splines(vs) + if not vs.stellsym: + raise NotImplementedError("vmec_compute_geometry() does not yet support non-stellarator-symmetric configurations.") # Make sure s is an array: try: @@ -959,6 +1028,8 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): bsubsmns = np.zeros((ns, mnmax_nyq)) bsubumnc = np.zeros((ns, mnmax_nyq)) bsubvmnc = np.zeros((ns, mnmax_nyq)) + d_bsupumnc_d_s = np.zeros((ns, mnmax_nyq)) + d_bsupvmnc_d_s = np.zeros((ns, mnmax_nyq)) for jmn in range(mnmax_nyq): gmnc[:, jmn] = vs.gmnc[jmn](s) bmnc[:, jmn] = vs.bmnc[jmn](s) @@ -968,6 +1039,8 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): bsubsmns[:, jmn] = vs.bsubsmns[jmn](s) bsubumnc[:, jmn] = vs.bsubumnc[jmn](s) bsubvmnc[:, jmn] = vs.bsubvmnc[jmn](s) + d_bsupumnc_d_s[:, jmn] = vs.d_bsupumnc_d_s[jmn](s) + d_bsupvmnc_d_s[:, jmn] = vs.d_bsupvmnc_d_s[jmn](s) # Now that we know theta_vmec, compute all the geometric quantities angle = xm[:, None, None, None] * theta_vmec[None, :, :, :] - xn[:, None, None, None] * phi[None, :, :, :] @@ -975,24 +1048,40 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): sinangle = np.sin(angle) mcosangle = xm[:, None, None, None] * cosangle ncosangle = xn[:, None, None, None] * cosangle + mncosangle = xm[:, None, None, None] * xn[:, None, None, None] * cosangle + m2cosangle = xm[:, None, None, None]**2 * cosangle + n2cosangle = xn[:, None, None, None]**2 * cosangle msinangle = xm[:, None, None, None] * sinangle nsinangle = xn[:, None, None, None] * sinangle + mnsinangle = xm[:, None, None, None] * xn[:, None, None, None] * sinangle + m2sinangle = xm[:, None, None, None]**2 * sinangle + n2sinangle = xn[:, None, None, None]**2 * sinangle # Order of indices in cosangle and sinangle: mn, s, theta, phi # Order of indices in rmnc, bmnc, etc: s, mn R = np.einsum('ij,jikl->ikl', rmnc, cosangle) d_R_d_s = np.einsum('ij,jikl->ikl', d_rmnc_d_s, cosangle) - d_R_d_theta_vmec = -np.einsum('ij,jikl->ikl', rmnc, msinangle) + d_R_d_theta_vmec = np.einsum('ij,jikl->ikl', -rmnc, msinangle) d_R_d_phi = np.einsum('ij,jikl->ikl', rmnc, nsinangle) - + d2_R_d_phi2 = np.einsum('ij,jikl->ikl', -rmnc, n2cosangle) + d2_R_d_theta_vmec2 = np.einsum('ij,jikl->ikl', -rmnc, m2cosangle) + d2_R_d_theta_vmec_d_phi = np.einsum('ij,jikl->ikl', rmnc, mncosangle) + d2_R_d_s_d_theta_vmec = np.einsum('ij,jikl->ikl', -d_rmnc_d_s, msinangle) + d2_R_d_s_d_phi = np.einsum('ij,jikl->ikl', d_rmnc_d_s, nsinangle) + Z = np.einsum('ij,jikl->ikl', zmns, sinangle) d_Z_d_s = np.einsum('ij,jikl->ikl', d_zmns_d_s, sinangle) d_Z_d_theta_vmec = np.einsum('ij,jikl->ikl', zmns, mcosangle) - d_Z_d_phi = -np.einsum('ij,jikl->ikl', zmns, ncosangle) + d_Z_d_phi = np.einsum('ij,jikl->ikl', -zmns, ncosangle) + d2_Z_d_theta_vmec2 = np.einsum('ij,jikl->ikl', -zmns, m2sinangle) + d2_Z_d_phi2 = np.einsum('ij,jikl->ikl', -zmns, n2sinangle) + d2_Z_d_theta_vmec_d_phi = np.einsum('ij,jikl->ikl', zmns, mnsinangle) + d2_Z_d_s_d_theta_vmec = np.einsum('ij,jikl->ikl', d_zmns_d_s, mcosangle) + d2_Z_d_s_d_phi = np.einsum('ij,jikl->ikl', -d_zmns_d_s, ncosangle) lambd = np.einsum('ij,jikl->ikl', lmns, sinangle) d_lambda_d_s = np.einsum('ij,jikl->ikl', d_lmns_d_s, sinangle) d_lambda_d_theta_vmec = np.einsum('ij,jikl->ikl', lmns, mcosangle) - d_lambda_d_phi = -np.einsum('ij,jikl->ikl', lmns, ncosangle) + d_lambda_d_phi = np.einsum('ij,jikl->ikl', -lmns, ncosangle) theta_pest = theta_vmec + lambd # Now handle the Nyquist quantities: @@ -1007,7 +1096,7 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): sqrt_g_vmec = np.einsum('ij,jikl->ikl', gmnc, cosangle) modB = np.einsum('ij,jikl->ikl', bmnc, cosangle) d_B_d_s = np.einsum('ij,jikl->ikl', d_bmnc_d_s, cosangle) - d_B_d_theta_vmec = -np.einsum('ij,jikl->ikl', bmnc, msinangle) + d_B_d_theta_vmec = np.einsum('ij,jikl->ikl', -bmnc, msinangle) d_B_d_phi = np.einsum('ij,jikl->ikl', bmnc, nsinangle) B_sup_theta_vmec = np.einsum('ij,jikl->ikl', bsupumnc, cosangle) @@ -1016,6 +1105,12 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): B_sub_theta_vmec = np.einsum('ij,jikl->ikl', bsubumnc, cosangle) B_sub_phi = np.einsum('ij,jikl->ikl', bsubvmnc, cosangle) B_sup_theta_pest = iota[:, None, None] * B_sup_phi + d_B_sup_phi_d_theta_vmec = np.einsum('ij,jikl->ikl', -bsupvmnc, msinangle) + d_B_sup_phi_d_phi = np.einsum('ij,jikl->ikl', bsupvmnc, nsinangle) + d_B_sup_theta_vmec_d_theta_vmec = np.einsum('ij,jikl->ikl', -bsupumnc, msinangle) + d_B_sup_theta_vmec_d_phi = np.einsum('ij,jikl->ikl', bsupumnc, nsinangle) + d_B_sup_theta_vmec_d_s = np.einsum('ij,jikl->ikl', d_bsupumnc_d_s, cosangle) + d_B_sup_phi_d_s = np.einsum('ij,jikl->ikl', d_bsupvmnc_d_s, cosangle) sqrt_g_vmec_alt = R * (d_Z_d_s * d_R_d_theta_vmec - d_R_d_s * d_Z_d_theta_vmec) @@ -1154,6 +1249,119 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): cvdrift0 = gbdrift0 + # Quantities related to the grad \vec{B} tensor. + # See Appendix C of Kappel et al, "The Magnetic Gradient Scale Length + # Explains Why Certain Plasmas Require Close External Magnetic Coils" + # Plasma Phys. Control. Fusion 66 (2024) 025018 + # https://doi.org/10.1088/1361-6587/ad1a3e + + d_B_X_d_s = ( + d_B_sup_theta_vmec_d_s * d_R_d_theta_vmec * cosphi + + B_sup_theta_vmec * d2_R_d_s_d_theta_vmec * cosphi + + d_B_sup_phi_d_s * d_R_d_phi * cosphi + + B_sup_phi * d2_R_d_s_d_phi * cosphi + - d_B_sup_phi_d_s * R * sinphi + - B_sup_phi * d_R_d_s * sinphi + ) + + d_B_X_d_theta = ( + d_B_sup_theta_vmec_d_theta_vmec * d_R_d_theta_vmec * cosphi + + B_sup_theta_vmec * d2_R_d_theta_vmec2 * cosphi + + d_B_sup_phi_d_theta_vmec * d_R_d_phi * cosphi + + B_sup_phi * d2_R_d_theta_vmec_d_phi * cosphi + - d_B_sup_phi_d_theta_vmec * R * sinphi + - B_sup_phi * d_R_d_theta_vmec * sinphi + ) + + d_B_X_d_phi = ( + d_B_sup_theta_vmec_d_phi * d_R_d_theta_vmec * cosphi + + B_sup_theta_vmec * d2_R_d_theta_vmec_d_phi * cosphi + - B_sup_theta_vmec * d_R_d_theta_vmec * sinphi + + d_B_sup_phi_d_phi * d_R_d_phi * cosphi + + B_sup_phi * d2_R_d_phi2 * cosphi + - B_sup_phi * d_R_d_phi * sinphi + - d_B_sup_phi_d_phi * R * sinphi + - B_sup_phi * d_R_d_phi * sinphi + - B_sup_phi * R * cosphi + ) + + d_B_Y_d_s = ( + d_B_sup_theta_vmec_d_s * d_R_d_theta_vmec * sinphi + + B_sup_theta_vmec * d2_R_d_s_d_theta_vmec * sinphi + + d_B_sup_phi_d_s * d_R_d_phi * sinphi + + B_sup_phi * d2_R_d_s_d_phi * sinphi + + d_B_sup_phi_d_s * R * cosphi + + B_sup_phi * d_R_d_s * cosphi + ) + + d_B_Y_d_theta = ( + d_B_sup_theta_vmec_d_theta_vmec * d_R_d_theta_vmec * sinphi + + B_sup_theta_vmec * d2_R_d_theta_vmec2 * sinphi + + d_B_sup_phi_d_theta_vmec * d_R_d_phi * sinphi + + B_sup_phi * d2_R_d_theta_vmec_d_phi * sinphi + + d_B_sup_phi_d_theta_vmec * R * cosphi + + B_sup_phi * d_R_d_theta_vmec * cosphi + ) + + d_B_Y_d_phi = ( + d_B_sup_theta_vmec_d_phi * d_R_d_theta_vmec * sinphi + + B_sup_theta_vmec * d2_R_d_theta_vmec_d_phi * sinphi + + B_sup_theta_vmec * d_R_d_theta_vmec * cosphi + + d_B_sup_phi_d_phi * d_R_d_phi * sinphi + + B_sup_phi * d2_R_d_phi2 * sinphi + + B_sup_phi * d_R_d_phi * cosphi + + d_B_sup_phi_d_phi * R * cosphi + + B_sup_phi * d_R_d_phi * cosphi + - B_sup_phi * R * sinphi + ) + + d_B_Z_d_s = ( + d_B_sup_theta_vmec_d_s * d_Z_d_theta_vmec + + B_sup_theta_vmec * d2_Z_d_s_d_theta_vmec + + d_B_sup_phi_d_s * d_Z_d_phi + + B_sup_phi * d2_Z_d_s_d_phi + ) + + d_B_Z_d_theta = ( + d_B_sup_theta_vmec_d_theta_vmec * d_Z_d_theta_vmec + + B_sup_theta_vmec * d2_Z_d_theta_vmec2 + + d_B_sup_phi_d_theta_vmec * d_Z_d_phi + + B_sup_phi * d2_Z_d_theta_vmec_d_phi + ) + + d_B_Z_d_phi = ( + d_B_sup_theta_vmec_d_phi * d_Z_d_theta_vmec + + B_sup_theta_vmec * d2_Z_d_theta_vmec_d_phi + + d_B_sup_phi_d_phi * d_Z_d_phi + + B_sup_phi * d2_Z_d_phi2 + ) + + grad_B__XX = d_B_X_d_s * grad_s_X + d_B_X_d_theta * grad_theta_vmec_X + d_B_X_d_phi * grad_phi_X + grad_B__XY = d_B_X_d_s * grad_s_Y + d_B_X_d_theta * grad_theta_vmec_Y + d_B_X_d_phi * grad_phi_Y + grad_B__XZ = d_B_X_d_s * grad_s_Z + d_B_X_d_theta * grad_theta_vmec_Z + d_B_X_d_phi * grad_phi_Z + + grad_B__YX = d_B_Y_d_s * grad_s_X + d_B_Y_d_theta * grad_theta_vmec_X + d_B_Y_d_phi * grad_phi_X + grad_B__YY = d_B_Y_d_s * grad_s_Y + d_B_Y_d_theta * grad_theta_vmec_Y + d_B_Y_d_phi * grad_phi_Y + grad_B__YZ = d_B_Y_d_s * grad_s_Z + d_B_Y_d_theta * grad_theta_vmec_Z + d_B_Y_d_phi * grad_phi_Z + + grad_B__ZX = d_B_Z_d_s * grad_s_X + d_B_Z_d_theta * grad_theta_vmec_X + d_B_Z_d_phi * grad_phi_X + grad_B__ZY = d_B_Z_d_s * grad_s_Y + d_B_Z_d_theta * grad_theta_vmec_Y + d_B_Z_d_phi * grad_phi_Y + grad_B__ZZ = d_B_Z_d_s * grad_s_Z + d_B_Z_d_theta * grad_theta_vmec_Z + d_B_Z_d_phi * grad_phi_Z + + grad_B_double_dot_grad_B = ( + grad_B__XX * grad_B__XX + + grad_B__XY * grad_B__XY + + grad_B__XZ * grad_B__XZ + + grad_B__YX * grad_B__YX + + grad_B__YY * grad_B__YY + + grad_B__YZ * grad_B__YZ + + grad_B__ZX * grad_B__ZX + + grad_B__ZY * grad_B__ZY + + grad_B__ZZ * grad_B__ZZ + ) + norm_grad_B = np.sqrt(grad_B_double_dot_grad_B) + L_grad_B = modB * np.sqrt(2 / grad_B_double_dot_grad_B) + # Package results into a structure to return: results = Struct() variables = ['ns', 'ntheta', 'nphi', 's', 'iota', 'd_iota_d_s', 'd_pressure_d_s', 'shat', @@ -1161,6 +1369,10 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): 'd_lambda_d_s', 'd_lambda_d_theta_vmec', 'd_lambda_d_phi', 'sqrt_g_vmec', 'sqrt_g_vmec_alt', 'modB', 'd_B_d_s', 'd_B_d_theta_vmec', 'd_B_d_phi', 'B_sup_theta_vmec', 'B_sup_theta_pest', 'B_sup_phi', 'B_sub_s', 'B_sub_theta_vmec', 'B_sub_phi', 'edge_toroidal_flux_over_2pi', 'sinphi', 'cosphi', + 'd2_R_d_phi2', 'd2_R_d_theta_vmec2', 'd2_R_d_theta_vmec_d_phi', 'd2_R_d_s_d_theta_vmec', 'd2_R_d_s_d_phi', + 'd2_Z_d_theta_vmec2', 'd2_Z_d_phi2', 'd2_Z_d_theta_vmec_d_phi', 'd2_Z_d_s_d_theta_vmec', 'd2_Z_d_s_d_phi', + 'd_B_sup_phi_d_theta_vmec', 'd_B_sup_phi_d_phi', 'd_B_sup_theta_vmec_d_theta_vmec', + 'd_B_sup_theta_vmec_d_phi', 'd_B_sup_theta_vmec_d_s', 'd_B_sup_phi_d_s', 'R', 'd_R_d_s', 'd_R_d_theta_vmec', 'd_R_d_phi', 'X', 'Y', 'Z', 'd_Z_d_s', 'd_Z_d_theta_vmec', 'd_Z_d_phi', 'd_X_d_theta_vmec', 'd_X_d_phi', 'd_X_d_s', 'd_Y_d_theta_vmec', 'd_Y_d_phi', 'd_Y_d_s', 'grad_s_X', 'grad_s_Y', 'grad_s_Z', 'grad_theta_vmec_X', 'grad_theta_vmec_Y', 'grad_theta_vmec_Z', @@ -1172,7 +1384,10 @@ def vmec_compute_geometry(vs, s, theta, phi, phi_center=0): 'B_cross_grad_B_dot_grad_psi', 'B_cross_kappa_dot_grad_psi', 'B_cross_kappa_dot_grad_alpha', 'grad_alpha_dot_grad_alpha', 'grad_alpha_dot_grad_psi', 'grad_psi_dot_grad_psi', 'L_reference', 'B_reference', 'toroidal_flux_sign', - 'bmag', 'gradpar_theta_pest', 'gradpar_phi', 'gds2', 'gds21', 'gds22', 'gbdrift', 'gbdrift0', 'cvdrift', 'cvdrift0'] + 'bmag', 'gradpar_theta_pest', 'gradpar_phi', 'gds2', 'gds21', 'gds22', 'gbdrift', 'gbdrift0', 'cvdrift', 'cvdrift0', + 'grad_B__XX', 'grad_B__XY', 'grad_B__XZ', 'grad_B__YX', 'grad_B__YY', 'grad_B__YZ', 'grad_B__ZX', 'grad_B__ZY', 'grad_B__ZZ', + 'grad_B_double_dot_grad_B', 'norm_grad_B', 'L_grad_B', + ] for v in variables: results.__setattr__(v, eval(v)) diff --git a/src/simsopt/solve/mpi.py b/src/simsopt/solve/mpi.py index 6876cecaf..0f6a6988b 100644 --- a/src/simsopt/solve/mpi.py +++ b/src/simsopt/solve/mpi.py @@ -79,6 +79,7 @@ def least_squares_mpi_solve(prob: LeastSquaresProblem, abs_step: float = 1.0e-7, rel_step: float = 0.0, diff_method: str = "forward", + save_residuals: bool = False, **kwargs): """ Solve a nonlinear-least-squares minimization problem using @@ -101,6 +102,8 @@ def least_squares_mpi_solve(prob: LeastSquaresProblem, "forward". If ``centered``, centered finite differences will be used. If ``forward``, one-sided finite differences will be used. Else, error is raised. + save_residuals: Whether to save the residuals at each iteration. + This may be useful for debugging, although the file can become large. kwargs: Any arguments to pass to `scipy.optimize.least_squares `_. For instance, you can supply ``max_nfev=100`` to set @@ -159,20 +162,21 @@ def _f_proc0(x): objective_file.write(f"Problem type:\nleast_squares\nnparams:\n{prob.dof_size}\n") objective_file.write("function_evaluation,seconds") - residuals_file = open(f"residuals_{datestr}.dat", 'w') - residuals_file.write(f"Problem type:\nleast_squares\nnparams:\n{prob.dof_size}\n") - residuals_file.write("function_evaluation,seconds") - for j in range(prob.dof_size): objective_file.write(f",x({j})") objective_file.write(",objective_function\n") - for j in range(prob.dof_size): - residuals_file.write(f",x({j})") - residuals_file.write(",objective_function") - for j in range(len(residuals)): - residuals_file.write(f",F({j})") - residuals_file.write("\n") + if save_residuals: + residuals_file = open(f"residuals_{datestr}.dat", 'w') + residuals_file.write(f"Problem type:\nleast_squares\nnparams:\n{prob.dof_size}\n") + residuals_file.write("function_evaluation,seconds") + + for j in range(prob.dof_size): + residuals_file.write(f",x({j})") + residuals_file.write(",objective_function") + for j in range(len(residuals)): + residuals_file.write(f",F({j})") + residuals_file.write("\n") del_t = time() - start_time objective_file.write(f"{nevals:6d},{del_t:12.4e}") @@ -181,14 +185,16 @@ def _f_proc0(x): objective_file.write(f",{objective_val:24.16e}\n") objective_file.flush() - residuals_file.write(f"{nevals:6d},{del_t:12.4e}") - for xj in x: - residuals_file.write(f",{xj:24.16e}") - residuals_file.write(f",{objective_val:24.16e}") - for fj in unweighted_residuals: - residuals_file.write(f",{fj:24.16e}") - residuals_file.write("\n") - residuals_file.flush() + if save_residuals: + residuals_file.write(f"{nevals:6d},{del_t:12.4e}") + for xj in x: + residuals_file.write(f",{xj:24.16e}") + residuals_file.write(f",{objective_val:24.16e}") + for fj in unweighted_residuals: + residuals_file.write(f",{fj:24.16e}") + residuals_file.write("\n") + residuals_file.flush() + nevals += 1 logger.debug(f"residuals are {residuals}") return residuals @@ -225,7 +231,8 @@ def _f_proc0(x): x = result.x objective_file.close() - residuals_file.close() + if save_residuals: + residuals_file.close() datalog_started = False logger.info("Completed solve.") diff --git a/src/simsopt/solve/serial.py b/src/simsopt/solve/serial.py index 5096d828c..14865da7b 100644 --- a/src/simsopt/solve/serial.py +++ b/src/simsopt/solve/serial.py @@ -33,6 +33,7 @@ def least_squares_serial_solve(prob: LeastSquaresProblem, abs_step: float = 1.0e-7, rel_step: float = 0.0, diff_method: str = "forward", + save_residuals: bool = False, **kwargs): """ Solve a nonlinear-least-squares minimization problem using @@ -52,6 +53,8 @@ def least_squares_serial_solve(prob: LeastSquaresProblem, ``"forward"``. If ``"centered"``, centered finite differences will be used. If ``"forward"``, one-sided finite differences will be used. Else, error is raised. + save_residuals: Whether to save the residuals at each iteration. + This can be useful for debugging, although the file can become large. kwargs: Any arguments to pass to `scipy.optimize.least_squares `_. For instance, you can supply ``max_nfev=100`` to set @@ -62,7 +65,8 @@ def least_squares_serial_solve(prob: LeastSquaresProblem, datestr = datetime.now().strftime("%Y-%m-%d-%H-%M-%S") objective_file = open(f"simsopt_{datestr}.dat", 'w') - residuals_file = open(f"residuals_{datestr}.dat", 'w') + if save_residuals: + residuals_file = open(f"residuals_{datestr}.dat", 'w') nevals = 0 start_time = time() @@ -105,15 +109,16 @@ def objective(x): objective_file.write(f",x({j})") objective_file.write(",objective_function\n") - residuals_file.write( - f"Problem type:\nleast_squares\nnparams:\n{ndofs}\n") - residuals_file.write("function_evaluation,seconds") - for j in range(ndofs): - residuals_file.write(f",x({j})") - residuals_file.write(",objective_function") - for j in range(len(residuals)): - residuals_file.write(f",F({j})") - residuals_file.write("\n") + if save_residuals: + residuals_file.write( + f"Problem type:\nleast_squares\nnparams:\n{ndofs}\n") + residuals_file.write("function_evaluation,seconds") + for j in range(ndofs): + residuals_file.write(f",x({j})") + residuals_file.write(",objective_function") + for j in range(len(residuals)): + residuals_file.write(f",F({j})") + residuals_file.write("\n") elapsed_t = time() - start_time objective_file.write(f"{nevals:6d},{elapsed_t:12.4e}") @@ -123,14 +128,15 @@ def objective(x): objective_file.write("\n") objective_file.flush() - residuals_file.write(f"{nevals:6d},{elapsed_t:12.4e}") - for xj in x: - residuals_file.write(f",{xj:24.16e}") - residuals_file.write(f",{objective_val:24.16e}") - for fj in residuals: - residuals_file.write(f",{fj:24.16e}") - residuals_file.write("\n") - residuals_file.flush() + if save_residuals: + residuals_file.write(f"{nevals:6d},{elapsed_t:12.4e}") + for xj in x: + residuals_file.write(f",{xj:24.16e}") + residuals_file.write(f",{objective_val:24.16e}") + for fj in residuals: + residuals_file.write(f",{fj:24.16e}") + residuals_file.write("\n") + residuals_file.flush() nevals += 1 return residuals @@ -154,7 +160,8 @@ def objective(x): datalogging_started = False objective_file.close() - residuals_file.close() + if save_residuals: + residuals_file.close() logger.info("Completed solve.") prob.x = result.x diff --git a/src/simsoptpp/boozerresidual.cpp b/src/simsoptpp/boozerresidual.cpp deleted file mode 100644 index 821e02e96..000000000 --- a/src/simsoptpp/boozerresidual.cpp +++ /dev/null @@ -1,703 +0,0 @@ -#include "boozerresidual.h" - -#include "xsimd/xsimd.hpp" -#include "simdhelpers.h" -#include "vec3dsimd.h" -#include "xtensor/xarray.hpp" -#include "xtensor/xview.hpp" -#include "xtensor/xstrided_view.hpp" -#include -#include "xtensor/xadapt.hpp" - -double boozer_residual(double G, double iota, Array& xphi, Array& xtheta, Array& B){ - int nphi = B.shape(0); - int ntheta = B.shape(1); - Array res = xt::zeros({nphi, ntheta, 3}); - int num_points = 3 * nphi * ntheta; - for(int i=0; i -void boozer_residual_ds_impl(double G, double iota, T& B, T& dB_dx, T& xphi, T& xtheta, T& dx_ds, T& dxphi_ds, T& dxtheta_ds, double& res, T& dres){ - int nphi = xphi.shape(0); - int ntheta = xtheta.shape(1); - size_t ndofs = dx_ds.shape(3); - int num_points = 3 * nphi * ntheta; - - constexpr size_t simd_size = xsimd::simd_type::size; - auto dx_ds_ij0 = AlignedPaddedVec(ndofs, 0); - auto dx_ds_ij1 = AlignedPaddedVec(ndofs, 0); - auto dx_ds_ij2 = AlignedPaddedVec(ndofs, 0); - auto dxphi_ds_ij0 = AlignedPaddedVec(ndofs, 0); - auto dxphi_ds_ij1 = AlignedPaddedVec(ndofs, 0); - auto dxphi_ds_ij2 = AlignedPaddedVec(ndofs, 0); - auto dxtheta_ds_ij0 = AlignedPaddedVec(ndofs, 0); - auto dxtheta_ds_ij1 = AlignedPaddedVec(ndofs, 0); - auto dxtheta_ds_ij2 = AlignedPaddedVec(ndofs, 0); - - simd_t it(iota); - simd_t GG(G); - for(int i=0; i boozer_residual_ds(double G, double iota, Array& B, Array& dB_dx, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds){ - // flatten the quadrature points - int nphi = xphi.shape(0); - int ntheta = xtheta.shape(1); - size_t ndofs = dx_ds.shape(3); - int num_points = nphi * ntheta; - - int num_threads= 0; - #pragma omp parallel reduction(+:num_threads) - num_threads += 1; - - int batch_size = num_points / num_threads; - if(num_points % num_threads != 0) - batch_size++; - - vector res_list(num_threads, 0.); - vector> dres_list; - - for(int idx = 0; idx < num_threads; idx++){ - dres_list.push_back(xt::zeros({ndofs+2})); - } - - double res =0.; - xt::xarray dres =xt::zeros({ndofs+2}); - - - #pragma omp parallel for - for (int idx = 0; idx < num_threads; ++idx) { - int idx_start = batch_size * idx; - int idx_end = batch_size * (idx+1) > num_points ? num_points : batch_size*(idx+1); - size_t diff = idx_end-idx_start; - - size_t size_B = 3; - size_t size_dB_dx = 3 * 3; - size_t size_d2B_dx2 = 3 * 3 * 3; - size_t size_xphi = 3; - size_t size_xtheta = 3; - size_t size_dx_ds = 3 * ndofs; - size_t size_dxphi_ds = 3 * ndofs; - size_t size_dxtheta_ds = 3 * ndofs; - - vector shape_B = {diff, 1, 3}; - vector shape_dB_dx = {diff, 1, 3, 3}; - vector shape_d2B_dx2 = {diff, 1, 3, 3, 3}; - vector shape_xphi = {diff, 1, 3}; - vector shape_xtheta = {diff, 1, 3}; - vector shape_dx_ds = {diff, 1, 3, ndofs}; - vector shape_dxphi_ds = {diff, 1, 3, ndofs}; - vector shape_dxtheta_ds = {diff, 1, 3, ndofs}; - - xt::xarray bB = xt::adapt(B.data() + idx_start*size_B , diff*size_B , xt::no_ownership(), shape_B ); - xt::xarray bdB_dx = xt::adapt(dB_dx.data() + idx_start*size_dB_dx , diff*size_dB_dx , xt::no_ownership(), shape_dB_dx ); - xt::xarray bxphi = xt::adapt(xphi.data() + idx_start*size_xphi , diff*size_xphi , xt::no_ownership(), shape_xphi ); - xt::xarray bxtheta = xt::adapt(xtheta.data() + idx_start*size_xtheta , diff*size_xtheta , xt::no_ownership(), shape_xtheta ); - xt::xarray bdx_ds = xt::adapt(dx_ds.data() + idx_start*size_dx_ds , diff*size_dx_ds , xt::no_ownership(), shape_dx_ds ); - xt::xarray bdxphi_ds = xt::adapt(dxphi_ds.data() + idx_start*size_dxphi_ds , diff*size_dxphi_ds , xt::no_ownership(), shape_dxphi_ds ); - xt::xarray bdxtheta_ds = xt::adapt(dxtheta_ds.data()+ idx_start*size_dxtheta_ds, diff*size_dxtheta_ds, xt::no_ownership(), shape_dxtheta_ds); - - boozer_residual_ds_impl>(G, iota, bB, bdB_dx, bxphi, bxtheta, bdx_ds, bdxphi_ds, bdxtheta_ds, res_list[idx], dres_list[idx]); - res_list[idx] *= (idx_end-idx_start)*3; - dres_list[idx] *= (idx_end-idx_start)*3; - } - - for(int i=0; i < num_threads; i++){ - res+=res_list[i]/num_points/3.; - dres+=dres_list[i]/num_points/3.; - } - - auto tup = std::make_tuple(res, dres); - return tup; -} - - - - -template -void boozer_residual_ds2_impl(double G, double iota, T& B, T& dB_dx, T& d2B_dx2, T& xphi, T& xtheta, T& dx_ds, T& dxphi_ds, T& dxtheta_ds, double& res, T& dres, T& d2res){ - int nphi = xphi.shape(0); - int ntheta = xtheta.shape(1); - size_t ndofs = dx_ds.shape(3); - int num_points = 3 * nphi * ntheta; - - constexpr size_t simd_size = xsimd::simd_type::size; - auto dx_ds_ij0 = AlignedPaddedVec(ndofs, 0); - auto dx_ds_ij1 = AlignedPaddedVec(ndofs, 0); - auto dx_ds_ij2 = AlignedPaddedVec(ndofs, 0); - auto dxphi_ds_ij0 = AlignedPaddedVec(ndofs, 0); - auto dxphi_ds_ij1 = AlignedPaddedVec(ndofs, 0); - auto dxphi_ds_ij2 = AlignedPaddedVec(ndofs, 0); - auto dxtheta_ds_ij0 = AlignedPaddedVec(ndofs, 0); - auto dxtheta_ds_ij1 = AlignedPaddedVec(ndofs, 0); - auto dxtheta_ds_ij2 = AlignedPaddedVec(ndofs, 0); - - auto drtilij0 = AlignedPaddedVec(ndofs+2, 0); - auto drtilij1 = AlignedPaddedVec(ndofs+2, 0); - auto drtilij2 = AlignedPaddedVec(ndofs+2, 0); - - auto dresij0 = AlignedPaddedVec(ndofs+2, 0); - auto dresij1 = AlignedPaddedVec(ndofs+2, 0); - auto dresij2 = AlignedPaddedVec(ndofs+2, 0); - - auto dw_ij = AlignedPaddedVec(ndofs+2, 0); - - auto dtang_ij0 = AlignedPaddedVec(ndofs+2, 0); - auto dtang_ij1 = AlignedPaddedVec(ndofs+2, 0); - auto dtang_ij2 = AlignedPaddedVec(ndofs+2, 0); - - auto dB2_ij = AlignedPaddedVec(ndofs+2, 0); - auto dBij0 = AlignedPaddedVec(ndofs+2, 0); - auto dBij1 = AlignedPaddedVec(ndofs+2, 0); - auto dBij2 = AlignedPaddedVec(ndofs+2, 0); - auto dmodB_ij = AlignedPaddedVec(ndofs+2, 0); - - simd_t it(iota); - simd_t GG(G); - - for(int i=0; i boozer_residual_ds2(double G, double iota, Array& B, Array& dB_dx, Array& d2B_dx2, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds){ - // flatten the quadrature points - int nphi = xphi.shape(0); - int ntheta = xtheta.shape(1); - size_t ndofs = dx_ds.shape(3); - int num_points = nphi * ntheta; - - int num_threads= 0; - #pragma omp parallel reduction(+:num_threads) - num_threads += 1; - - int batch_size = num_points / num_threads; - if(num_points % num_threads != 0) - batch_size++; - - vector res_list(num_threads, 0.); - vector> dres_list; - vector> d2res_list; - - for(int idx = 0; idx < num_threads; idx++){ - dres_list.push_back(xt::zeros({ndofs+2})); - d2res_list.push_back(xt::zeros({ndofs+2, ndofs+2})); - } - - double res =0.; - xt::xarray dres =xt::zeros({ndofs+2}); - xt::xarray d2res=xt::zeros({ndofs+2, ndofs+2}); - - - #pragma omp parallel for - for (int idx = 0; idx < num_threads; ++idx) { - int idx_start = batch_size * idx; - int idx_end = batch_size * (idx+1) > num_points ? num_points : batch_size*(idx+1); - size_t diff = idx_end-idx_start; - - size_t size_B = 3; - size_t size_dB_dx = 3 * 3; - size_t size_d2B_dx2 = 3 * 3 * 3; - size_t size_xphi = 3; - size_t size_xtheta = 3; - size_t size_dx_ds = 3 * ndofs; - size_t size_dxphi_ds = 3 * ndofs; - size_t size_dxtheta_ds = 3 * ndofs; - - vector shape_B = {diff, 1, 3}; - vector shape_dB_dx = {diff, 1, 3, 3}; - vector shape_d2B_dx2 = {diff, 1, 3, 3, 3}; - vector shape_xphi = {diff, 1, 3}; - vector shape_xtheta = {diff, 1, 3}; - vector shape_dx_ds = {diff, 1, 3, ndofs}; - vector shape_dxphi_ds = {diff, 1, 3, ndofs}; - vector shape_dxtheta_ds = {diff, 1, 3, ndofs}; - - xt::xarray bB = xt::adapt(B.data() + idx_start*size_B , diff*size_B , xt::no_ownership(), shape_B ); - xt::xarray bdB_dx = xt::adapt(dB_dx.data() + idx_start*size_dB_dx , diff*size_dB_dx , xt::no_ownership(), shape_dB_dx ); - xt::xarray bdB2_dx2 = xt::adapt(d2B_dx2.data() + idx_start*size_d2B_dx2 , diff*size_d2B_dx2 , xt::no_ownership(), shape_d2B_dx2 ); - xt::xarray bxphi = xt::adapt(xphi.data() + idx_start*size_xphi , diff*size_xphi , xt::no_ownership(), shape_xphi ); - xt::xarray bxtheta = xt::adapt(xtheta.data() + idx_start*size_xtheta , diff*size_xtheta , xt::no_ownership(), shape_xtheta ); - xt::xarray bdx_ds = xt::adapt(dx_ds.data() + idx_start*size_dx_ds , diff*size_dx_ds , xt::no_ownership(), shape_dx_ds ); - xt::xarray bdxphi_ds = xt::adapt(dxphi_ds.data() + idx_start*size_dxphi_ds , diff*size_dxphi_ds , xt::no_ownership(), shape_dxphi_ds ); - xt::xarray bdxtheta_ds = xt::adapt(dxtheta_ds.data()+ idx_start*size_dxtheta_ds, diff*size_dxtheta_ds, xt::no_ownership(), shape_dxtheta_ds); - - boozer_residual_ds2_impl>(G, iota, bB, bdB_dx, bdB2_dx2, bxphi, bxtheta, bdx_ds, bdxphi_ds, bdxtheta_ds, res_list[idx], dres_list[idx], d2res_list[idx]); - res_list[idx] *= (idx_end-idx_start)*3; - dres_list[idx] *= (idx_end-idx_start)*3; - d2res_list[idx] *= (idx_end-idx_start)*3; - } - - for(int i=0; i < num_threads; i++){ - res+=res_list[i]/num_points/3.; - dres+=dres_list[i]/num_points/3.; - d2res+=d2res_list[i]/num_points/3.; - } - - auto tup = std::make_tuple(res, dres, d2res); - return tup; -} - -Array boozer_residual_dc(double G, Array& dB_dc, Array& B, Array& tang, Array& B2, Array& dxphi_dc, double iota, Array& dxtheta_dc){ - int nphi = dB_dc.shape(0); - int ntheta = dB_dc.shape(1); - int ndofs = dB_dc.shape(3); - Array res = xt::zeros({nphi, ntheta, 3, ndofs}); - double* B_dB_dc = new double[ndofs]; - for(int i=0; i= 201703L +#define MYIF(c) if constexpr(c) +#else +#define MYIF(c) if(c) +#endif + +#if defined(USE_XSIMD) +template void boozer_residual_impl(double G, double iota, T& B, T& dB_dx, T& d2B_dx2, T& xphi, T& xtheta, T& dx_ds, T& dxphi_ds, T& dxtheta_ds, double& res, T& dres, T& d2res, size_t ndofs, bool weight_inv_modB){ + int nphi = xphi.shape(0); + int ntheta = xtheta.shape(1); + int num_points = 3 * nphi * ntheta; + + constexpr size_t simd_size = xsimd::simd_type::size; + auto dx_ds_ij0 = AlignedPaddedVec(ndofs, 0); + auto dx_ds_ij1 = AlignedPaddedVec(ndofs, 0); + auto dx_ds_ij2 = AlignedPaddedVec(ndofs, 0); + auto dxphi_ds_ij0 = AlignedPaddedVec(ndofs, 0); + auto dxphi_ds_ij1 = AlignedPaddedVec(ndofs, 0); + auto dxphi_ds_ij2 = AlignedPaddedVec(ndofs, 0); + auto dxtheta_ds_ij0 = AlignedPaddedVec(ndofs, 0); + auto dxtheta_ds_ij1 = AlignedPaddedVec(ndofs, 0); + auto dxtheta_ds_ij2 = AlignedPaddedVec(ndofs, 0); + + auto drtilij0 = AlignedPaddedVec(ndofs+2, 0); + auto drtilij1 = AlignedPaddedVec(ndofs+2, 0); + auto drtilij2 = AlignedPaddedVec(ndofs+2, 0); + + auto dresij0 = AlignedPaddedVec(ndofs+2, 0); + auto dresij1 = AlignedPaddedVec(ndofs+2, 0); + auto dresij2 = AlignedPaddedVec(ndofs+2, 0); + + auto dw_ij = AlignedPaddedVec(ndofs+2, 0); + + auto dtang_ij0 = AlignedPaddedVec(ndofs+2, 0); + auto dtang_ij1 = AlignedPaddedVec(ndofs+2, 0); + auto dtang_ij2 = AlignedPaddedVec(ndofs+2, 0); + + auto dB2_ij = AlignedPaddedVec(ndofs+2, 0); + auto dBij0 = AlignedPaddedVec(ndofs+2, 0); + auto dBij1 = AlignedPaddedVec(ndofs+2, 0); + auto dBij2 = AlignedPaddedVec(ndofs+2, 0); + auto dmodB_ij = AlignedPaddedVec(ndofs+2, 0); + + simd_t it(iota); + simd_t GG(G); + + for(int i=0; i0){ + simd_t Bij0(B(i, j, 0)); + simd_t Bij1(B(i, j, 1)); + simd_t Bij2(B(i, j, 2)); + + simd_t dB_dxij00(dB_dx(i, j, 0, 0)); + simd_t dB_dxij10(dB_dx(i, j, 1, 0)); + simd_t dB_dxij20(dB_dx(i, j, 2, 0)); + simd_t dB_dxij01(dB_dx(i, j, 0, 1)); + simd_t dB_dxij11(dB_dx(i, j, 1, 1)); + simd_t dB_dxij21(dB_dx(i, j, 2, 1)); + simd_t dB_dxij02(dB_dx(i, j, 0, 2)); + simd_t dB_dxij12(dB_dx(i, j, 1, 2)); + simd_t dB_dxij22(dB_dx(i, j, 2, 2)); + + simd_t bw_ij(wij); + simd_t btang_ij0(tang_ij0); + simd_t btang_ij1(tang_ij1); + simd_t btang_ij2(tang_ij2); + + simd_t brtil_ij0(rtil_ij0); + simd_t brtil_ij1(rtil_ij1); + simd_t brtil_ij2(rtil_ij2); + + for (int m = 0; m < ndofs; ++m) { + dx_ds_ij0[m] = dx_ds(i,j,0,m); + dx_ds_ij1[m] = dx_ds(i,j,1,m); + dx_ds_ij2[m] = dx_ds(i,j,2,m); + + dxphi_ds_ij0[m] = dxphi_ds(i,j,0,m); + dxphi_ds_ij1[m] = dxphi_ds(i,j,1,m); + dxphi_ds_ij2[m] = dxphi_ds(i,j,2,m); + + dxtheta_ds_ij0[m] = dxtheta_ds(i,j,0,m); + dxtheta_ds_ij1[m] = dxtheta_ds(i,j,1,m); + dxtheta_ds_ij2[m] = dxtheta_ds(i,j,2,m); + + } + + for (int m = 0; m < ndofs; m+=simd_size) { + simd_t dx_ds_ij0m = xs::load_aligned(&dx_ds_ij0[m]); + simd_t dx_ds_ij1m = xs::load_aligned(&dx_ds_ij1[m]); + simd_t dx_ds_ij2m = xs::load_aligned(&dx_ds_ij2[m]); + + simd_t dxphi_ds_ij0m = xs::load_aligned(&dxphi_ds_ij0[m]); + simd_t dxphi_ds_ij1m = xs::load_aligned(&dxphi_ds_ij1[m]); + simd_t dxphi_ds_ij2m = xs::load_aligned(&dxphi_ds_ij2[m]); + + simd_t dxtheta_ds_ij0m = xs::load_aligned(&dxtheta_ds_ij0[m]); + simd_t dxtheta_ds_ij1m = xs::load_aligned(&dxtheta_ds_ij1[m]); + simd_t dxtheta_ds_ij2m = xs::load_aligned(&dxtheta_ds_ij2[m]); + + auto dBij0m = xsimd::fma(dB_dxij00,dx_ds_ij0m,xsimd::fma(dB_dxij10,dx_ds_ij1m,dB_dxij20*dx_ds_ij2m)); + auto dBij1m = xsimd::fma(dB_dxij01,dx_ds_ij0m,xsimd::fma(dB_dxij11,dx_ds_ij1m,dB_dxij21*dx_ds_ij2m)); + auto dBij2m = xsimd::fma(dB_dxij02,dx_ds_ij0m,xsimd::fma(dB_dxij12,dx_ds_ij1m,dB_dxij22*dx_ds_ij2m)); + + auto dB2_ijm = 2*(Bij0 * dBij0m + Bij1 * dBij1m + Bij2 * dBij2m); + auto tang_ij0m = xsimd::fma(it, dxtheta_ds_ij0m , dxphi_ds_ij0m); + auto tang_ij1m = xsimd::fma(it, dxtheta_ds_ij1m , dxphi_ds_ij1m); + auto tang_ij2m = xsimd::fma(it, dxtheta_ds_ij2m , dxphi_ds_ij2m); + + auto dresij0m = xsimd::fms(GG , dBij0m , xsimd::fma(dB2_ijm , btang_ij0 , B2ij * tang_ij0m)); + auto dresij1m = xsimd::fms(GG , dBij1m , xsimd::fma(dB2_ijm , btang_ij1 , B2ij * tang_ij1m)); + auto dresij2m = xsimd::fms(GG , dBij2m , xsimd::fma(dB2_ijm , btang_ij2 , B2ij * tang_ij2m)); + + auto dmodB_ijm = 0.5 * dB2_ijm * wij; + auto dw_ijm = weight_inv_modB ? -dmodB_ijm * rB2ij : simd_t(0.); + auto drtil_ij0m = xsimd::fma(dresij0m , bw_ij , dw_ijm * resij0); + auto drtil_ij1m = xsimd::fma(dresij1m , bw_ij , dw_ijm * resij1); + auto drtil_ij2m = xsimd::fma(dresij2m , bw_ij , dw_ijm * resij2); + + // sum_k (r_k grad r_k) + auto dresm = xsimd::fma(brtil_ij0, drtil_ij0m, xsimd::fma(brtil_ij1, drtil_ij1m , brtil_ij2 * drtil_ij2m)); + + int jjlimit = std::min(simd_size, ndofs-m); + for(int jj = 0; jj < jjlimit; jj++){ + dres(m+jj) += dresm[jj]; + + drtilij0[m+jj] = drtil_ij0m[jj]; + drtilij1[m+jj] = drtil_ij1m[jj]; + drtilij2[m+jj] = drtil_ij2m[jj]; + + dB2_ij[m+jj] = dB2_ijm[jj]; + dtang_ij0[m+jj] = tang_ij0m[jj]; + dtang_ij1[m+jj] = tang_ij1m[jj]; + dtang_ij2[m+jj] = tang_ij2m[jj]; + dresij0[m+jj] = dresij0m[jj]; + dresij1[m+jj] = dresij1m[jj]; + dresij2[m+jj] = dresij2m[jj]; + + dBij0[m+jj] = dBij0m[jj]; + dBij1[m+jj] = dBij1m[jj]; + dBij2[m+jj] = dBij2m[jj]; + + dw_ij[m+jj] = dw_ijm[jj]; + + dmodB_ij[m+jj] = dmodB_ijm[jj]; + } + } + + double dres_ij0iota = -B2ij * xtheta(i, j, 0); + double dres_ij1iota = -B2ij * xtheta(i, j, 1); + double dres_ij2iota = -B2ij * xtheta(i, j, 2); + + double drtil_ij0iota = dres_ij0iota * wij; + double drtil_ij1iota = dres_ij1iota * wij; + double drtil_ij2iota = dres_ij2iota * wij; + dres(ndofs + 0) += rtil_ij0 * drtil_ij0iota + rtil_ij1 * drtil_ij1iota + rtil_ij2 * drtil_ij2iota; + + drtilij0[ndofs + 0] = drtil_ij0iota; + drtilij1[ndofs + 0] = drtil_ij1iota; + drtilij2[ndofs + 0] = drtil_ij2iota; + + + double dres_ij0_dG = B(i, j, 0); + double dres_ij1_dG = B(i, j, 1); + double dres_ij2_dG = B(i, j, 2); + + double drtil_ij0_dG = wij * dres_ij0_dG; + double drtil_ij1_dG = wij * dres_ij1_dG; + double drtil_ij2_dG = wij * dres_ij2_dG; + dres(ndofs + 1) += rtil_ij0 * drtil_ij0_dG + rtil_ij1 * drtil_ij1_dG + rtil_ij2 * drtil_ij2_dG; + + drtilij0[ndofs + 1] = drtil_ij0_dG; + drtilij1[ndofs + 1] = drtil_ij1_dG; + drtilij2[ndofs + 1] = drtil_ij2_dG; + + MYIF(deriv > 1) { + // outer product d_rij0_dm (x) d_rij0_dm + for(int m = 0; m < ndofs + 2; m+=simd_size){ + simd_t drtilij0_dm = xs::load_aligned(&drtilij0[m]); + simd_t drtilij1_dm = xs::load_aligned(&drtilij1[m]); + simd_t drtilij2_dm = xs::load_aligned(&drtilij2[m]); + for(int n = m; n < ndofs + 2; n++){ + simd_t drtilij0_dn(drtilij0[n]); + simd_t drtilij1_dn(drtilij1[n]); + simd_t drtilij2_dn(drtilij2[n]); + simd_t d2res_mn = drtilij0_dm * drtilij0_dn + drtilij1_dm * drtilij1_dn + drtilij2_dm * drtilij2_dn; + + int jjlimit = std::min(simd_size, ndofs+2-m); + for(int jj = 0; jj < jjlimit; jj++){ + d2res(m+jj, n) += d2res_mn[jj]; + } + } + } + + // rij * d2rij_dmn + for(int m = 0; m < ndofs; m+=simd_size){ + simd_t dx_ds_ij0m = xsimd::load_aligned(&dx_ds_ij0[m]); + simd_t dx_ds_ij1m = xsimd::load_aligned(&dx_ds_ij1[m]); + simd_t dx_ds_ij2m = xsimd::load_aligned(&dx_ds_ij2[m]); + + simd_t dxphi_ds_ij0m = xsimd::load_aligned(&dxphi_ds_ij0[m]); + simd_t dxphi_ds_ij1m = xsimd::load_aligned(&dxphi_ds_ij1[m]); + simd_t dxphi_ds_ij2m = xsimd::load_aligned(&dxphi_ds_ij2[m]); + + simd_t dxtheta_ds_ij0m = xsimd::load_aligned(&dxtheta_ds_ij0[m]); + simd_t dxtheta_ds_ij1m = xsimd::load_aligned(&dxtheta_ds_ij1[m]); + simd_t dxtheta_ds_ij2m = xsimd::load_aligned(&dxtheta_ds_ij2[m]); + + simd_t dBij0m = xsimd::load_aligned(&dBij0[m]); + simd_t dBij1m = xsimd::load_aligned(&dBij1[m]); + simd_t dBij2m = xsimd::load_aligned(&dBij2[m]); + + simd_t dB2_ijm = xsimd::load_aligned(&dB2_ij[m]); + simd_t dmodB_ijm = xsimd::load_aligned(&dmodB_ij[m]); + simd_t dw_ijm = xsimd::load_aligned(&dw_ij[m]); + + simd_t dresij0m = xsimd::load_aligned(&dresij0[m]); + simd_t dresij1m = xsimd::load_aligned(&dresij1[m]); + simd_t dresij2m = xsimd::load_aligned(&dresij2[m]); + + simd_t dtang_ij0m = xsimd::load_aligned(&dtang_ij0[m]); + simd_t dtang_ij1m = xsimd::load_aligned(&dtang_ij1[m]); + simd_t dtang_ij2m = xsimd::load_aligned(&dtang_ij2[m]); + + for(int n = m; n < ndofs; n++){ + simd_t d2Bij0_mn(0.); + simd_t d2Bij1_mn(0.); + simd_t d2Bij2_mn(0.); + for(int l = 0; l < 3; l++){ + simd_t dx_ds_ijln(dx_ds(i, j, l, n)); + + d2Bij0_mn += d2B_dx2(i, j, 0, l, 0) * dx_ds_ij0m * dx_ds_ijln; + d2Bij1_mn += d2B_dx2(i, j, 0, l, 1) * dx_ds_ij0m * dx_ds_ijln; + d2Bij2_mn += d2B_dx2(i, j, 0, l, 2) * dx_ds_ij0m * dx_ds_ijln; + d2Bij0_mn += d2B_dx2(i, j, 1, l, 0) * dx_ds_ij1m * dx_ds_ijln; + d2Bij1_mn += d2B_dx2(i, j, 1, l, 1) * dx_ds_ij1m * dx_ds_ijln; + d2Bij2_mn += d2B_dx2(i, j, 1, l, 2) * dx_ds_ij1m * dx_ds_ijln; + d2Bij0_mn += d2B_dx2(i, j, 2, l, 0) * dx_ds_ij2m * dx_ds_ijln; + d2Bij1_mn += d2B_dx2(i, j, 2, l, 1) * dx_ds_ij2m * dx_ds_ijln; + d2Bij2_mn += d2B_dx2(i, j, 2, l, 2) * dx_ds_ij2m * dx_ds_ijln; + } + + auto d2B2_ijmn = 2*(dBij0m*dBij0[n] + dBij1m*dBij1[n] + dBij2m*dBij2[n]+ B(i,j,0) * d2Bij0_mn + B(i,j,1) * d2Bij1_mn + B(i,j,2) * d2Bij2_mn); + auto term1_0 = -dtang_ij0[n] * dB2_ijm; + auto term1_1 = -dtang_ij1[n] * dB2_ijm; + auto term1_2 = -dtang_ij2[n] * dB2_ijm; + + auto term2_0 = -dtang_ij0m * dB2_ij[n]; + auto term2_1 = -dtang_ij1m * dB2_ij[n]; + auto term2_2 = -dtang_ij2m * dB2_ij[n]; + + auto term3_0 = -tang_ij0 * d2B2_ijmn; + auto term3_1 = -tang_ij1 * d2B2_ijmn; + auto term3_2 = -tang_ij2 * d2B2_ijmn; + + auto d2res_ij0mn = xsimd::fma(GG , d2Bij0_mn , term1_0) + term2_0 + term3_0; + auto d2res_ij1mn = xsimd::fma(GG , d2Bij1_mn , term1_1) + term2_1 + term3_1; + auto d2res_ij2mn = xsimd::fma(GG , d2Bij2_mn , term1_2) + term2_2 + term3_2; + + auto d2modB_ijmn = (2 * B2ij * d2B2_ijmn - dB2_ijm*dB2_ij[n]) * powrmodBijthree / 4. ; + auto d2wij_mn = weight_inv_modB ? (2. * dmodB_ijm * dmodB_ij[n] - modB_ij * d2modB_ijmn) * powrmodBijthree : simd_t(0.); + + auto d2rtil_0mn = dresij0m *dw_ij[n] + dresij0[n] * dw_ijm + d2res_ij0mn * wij + resij0 * d2wij_mn; + auto d2rtil_1mn = dresij1m *dw_ij[n] + dresij1[n] * dw_ijm + d2res_ij1mn * wij + resij1 * d2wij_mn; + auto d2rtil_2mn = dresij2m *dw_ij[n] + dresij2[n] * dw_ijm + d2res_ij2mn * wij + resij2 * d2wij_mn; + + auto d2res_mn = rtil_ij0 * d2rtil_0mn + rtil_ij1 * d2rtil_1mn +rtil_ij2 * d2rtil_2mn; + + int jjlimit = std::min(simd_size, ndofs-m); + for(int jj = 0; jj < jjlimit; jj++){ + d2res(m+jj, n) += d2res_mn[jj]; + } + } + auto d2res_ij0miota = -(dB2_ijm * xtheta(i, j, 0) + B2ij * dxtheta_ds_ij0m); + auto d2res_ij1miota = -(dB2_ijm * xtheta(i, j, 1) + B2ij * dxtheta_ds_ij1m); + auto d2res_ij2miota = -(dB2_ijm * xtheta(i, j, 2) + B2ij * dxtheta_ds_ij2m); + + + auto d2rtil_ij0miota = d2res_ij0miota * wij + dres_ij0iota * dw_ijm ; + auto d2rtil_ij1miota = d2res_ij1miota * wij + dres_ij1iota * dw_ijm ; + auto d2rtil_ij2miota = d2res_ij2miota * wij + dres_ij2iota * dw_ijm ; + auto d2res_miota = rtil_ij0*d2rtil_ij0miota+rtil_ij1*d2rtil_ij1miota+rtil_ij2*d2rtil_ij2miota; + + int jjlimit = std::min(simd_size, ndofs-m); + for(int jj = 0; jj < jjlimit; jj++){ + d2res(m+jj, ndofs) += d2res_miota[jj]; + } + + auto d2res_ij0mG = dBij0m; + auto d2res_ij1mG = dBij1m; + auto d2res_ij2mG = dBij2m; + + auto d2rtil_ij0mG = d2res_ij0mG * wij + dres_ij0_dG * dw_ijm; + auto d2rtil_ij1mG = d2res_ij1mG * wij + dres_ij1_dG * dw_ijm; + auto d2rtil_ij2mG = d2res_ij2mG * wij + dres_ij2_dG * dw_ijm; + auto d2res_mG = rtil_ij0*d2rtil_ij0mG+rtil_ij1*d2rtil_ij1mG+rtil_ij2*d2rtil_ij2mG; + + for(int jj = 0; jj < jjlimit; jj++){ + d2res(m+jj, ndofs+1) += d2res_mG[jj]; + } + + } + } + } + } + } + + MYIF(deriv > 1){ + // symmetrize the Hessian + for(int m = 0; m < ndofs+2; m++){ + for(int n = m+1; n < ndofs+2; n++){ + d2res(n, m) = d2res(m, n); + } + } + } +} + +#else +template void boozer_residual_impl(double G, double iota, T& B, T& dB_dx, T& d2B_dx2, T& xphi, T& xtheta, T& dx_ds, T& dxphi_ds, T& dxtheta_ds, double& res, T& dres, T& d2res, size_t ndofs, bool weight_inv_modB){ + int nphi = xphi.shape(0); + int ntheta = xtheta.shape(1); + + for(int i=0; i0){ + auto drtilij0 = AlignedPaddedVec(ndofs+2, 0); + auto drtilij1 = AlignedPaddedVec(ndofs+2, 0); + auto drtilij2 = AlignedPaddedVec(ndofs+2, 0); + + auto dresij0 = AlignedPaddedVec(ndofs+2, 0); + auto dresij1 = AlignedPaddedVec(ndofs+2, 0); + auto dresij2 = AlignedPaddedVec(ndofs+2, 0); + + auto dw_ij = AlignedPaddedVec(ndofs+2, 0); + + auto dtang_ij0 = AlignedPaddedVec(ndofs+2, 0); + auto dtang_ij1 = AlignedPaddedVec(ndofs+2, 0); + auto dtang_ij2 = AlignedPaddedVec(ndofs+2, 0); + + auto dB2_ij = AlignedPaddedVec(ndofs+2, 0); + auto dBij0 = AlignedPaddedVec(ndofs+2, 0); + auto dBij1 = AlignedPaddedVec(ndofs+2, 0); + auto dBij2 = AlignedPaddedVec(ndofs+2, 0); + auto dmodB_ij = AlignedPaddedVec(ndofs+2, 0); + + for (int m = 0; m < ndofs; m++) { + double dBij0m = dB_dx(i,j,0,0)*dx_ds(i,j,0,m)+dB_dx(i,j,1,0)*dx_ds(i,j,1,m)+dB_dx(i,j,2,0)*dx_ds(i,j,2,m); + double dBij1m = dB_dx(i,j,0,1)*dx_ds(i,j,0,m)+dB_dx(i,j,1,1)*dx_ds(i,j,1,m)+dB_dx(i,j,2,1)*dx_ds(i,j,2,m); + double dBij2m = dB_dx(i,j,0,2)*dx_ds(i,j,0,m)+dB_dx(i,j,1,2)*dx_ds(i,j,1,m)+dB_dx(i,j,2,2)*dx_ds(i,j,2,m); + + double dB2_ijm = 2*(B(i,j,0) * dBij0m + B(i,j,1) * dBij1m + B(i,j,2) * dBij2m); + double tang_ij0m = iota*dxtheta_ds(i,j,0,m) + dxphi_ds(i,j,0,m); + double tang_ij1m = iota*dxtheta_ds(i,j,1,m) + dxphi_ds(i,j,1,m); + double tang_ij2m = iota*dxtheta_ds(i,j,2,m) + dxphi_ds(i,j,2,m); + + double dresij0m = G * dBij0m - (dB2_ijm * tang_ij0 + B2ij * tang_ij0m); + double dresij1m = G * dBij1m - (dB2_ijm * tang_ij1 + B2ij * tang_ij1m); + double dresij2m = G * dBij2m - (dB2_ijm * tang_ij2 + B2ij * tang_ij2m); + + double dmodB_ijm = 0.5 * dB2_ijm * wij; + double dw_ijm = weight_inv_modB ? -dmodB_ijm * rB2ij : 0.; + double drtil_ij0m = dresij0m * wij + dw_ijm * resij0; + double drtil_ij1m = dresij1m * wij + dw_ijm * resij1; + double drtil_ij2m = dresij2m * wij + dw_ijm * resij2; + + // sum_k (r_k grad r_k) + dres(m) += rtil_ij0 * drtil_ij0m + rtil_ij1 * drtil_ij1m + rtil_ij2 * drtil_ij2m; + + drtilij0[m] = drtil_ij0m; + drtilij1[m] = drtil_ij1m; + drtilij2[m] = drtil_ij2m; + + dB2_ij[m] = dB2_ijm; + dtang_ij0[m] = tang_ij0m; + dtang_ij1[m] = tang_ij1m; + dtang_ij2[m] = tang_ij2m; + dresij0[m] = dresij0m; + dresij1[m] = dresij1m; + dresij2[m] = dresij2m; + + dBij0[m] = dBij0m; + dBij1[m] = dBij1m; + dBij2[m] = dBij2m; + + dw_ij[m] = dw_ijm; + + dmodB_ij[m] = dmodB_ijm; + } + + double dres_ij0iota = -B2ij * xtheta(i, j, 0); + double dres_ij1iota = -B2ij * xtheta(i, j, 1); + double dres_ij2iota = -B2ij * xtheta(i, j, 2); + + double drtil_ij0iota = dres_ij0iota * wij; + double drtil_ij1iota = dres_ij1iota * wij; + double drtil_ij2iota = dres_ij2iota * wij; + dres(ndofs + 0) += rtil_ij0 * drtil_ij0iota + rtil_ij1 * drtil_ij1iota + rtil_ij2 * drtil_ij2iota; + + drtilij0[ndofs + 0] = drtil_ij0iota; + drtilij1[ndofs + 0] = drtil_ij1iota; + drtilij2[ndofs + 0] = drtil_ij2iota; + + + double dres_ij0_dG = B(i, j, 0); + double dres_ij1_dG = B(i, j, 1); + double dres_ij2_dG = B(i, j, 2); + + double drtil_ij0_dG = wij * dres_ij0_dG; + double drtil_ij1_dG = wij * dres_ij1_dG; + double drtil_ij2_dG = wij * dres_ij2_dG; + dres(ndofs + 1) += rtil_ij0 * drtil_ij0_dG + rtil_ij1 * drtil_ij1_dG + rtil_ij2 * drtil_ij2_dG; + + drtilij0[ndofs + 1] = drtil_ij0_dG; + drtilij1[ndofs + 1] = drtil_ij1_dG; + drtilij2[ndofs + 1] = drtil_ij2_dG; + MYIF(deriv > 1) { + // outer product d_rij0_dm (x) d_rij0_dm + for(int m = 0; m < ndofs + 2; m++){ + for(int n = m; n < ndofs + 2; n++){ + d2res(m, n) += drtilij0[m] * drtilij0[n] + drtilij1[m] * drtilij1[n] + drtilij2[m] * drtilij2[n]; + } + } + + // rij * d2rij_dmn + for(int m = 0; m < ndofs; m++){ + for(int n = m; n < ndofs; n++){ + double d2Bij0_mn = 0.; + double d2Bij1_mn = 0.; + double d2Bij2_mn = 0.; + for(int l = 0; l < 3; l++){ + d2Bij0_mn += d2B_dx2(i, j, 0, l, 0) * dx_ds(i,j,0,m) * dx_ds(i, j, l, n); + d2Bij1_mn += d2B_dx2(i, j, 0, l, 1) * dx_ds(i,j,0,m) * dx_ds(i, j, l, n); + d2Bij2_mn += d2B_dx2(i, j, 0, l, 2) * dx_ds(i,j,0,m) * dx_ds(i, j, l, n); + d2Bij0_mn += d2B_dx2(i, j, 1, l, 0) * dx_ds(i,j,1,m) * dx_ds(i, j, l, n); + d2Bij1_mn += d2B_dx2(i, j, 1, l, 1) * dx_ds(i,j,1,m) * dx_ds(i, j, l, n); + d2Bij2_mn += d2B_dx2(i, j, 1, l, 2) * dx_ds(i,j,1,m) * dx_ds(i, j, l, n); + d2Bij0_mn += d2B_dx2(i, j, 2, l, 0) * dx_ds(i,j,2,m) * dx_ds(i, j, l, n); + d2Bij1_mn += d2B_dx2(i, j, 2, l, 1) * dx_ds(i,j,2,m) * dx_ds(i, j, l, n); + d2Bij2_mn += d2B_dx2(i, j, 2, l, 2) * dx_ds(i,j,2,m) * dx_ds(i, j, l, n); + } + + auto d2B2_ijmn = 2*(dBij0[m]*dBij0[n] + dBij1[m]*dBij1[n] + dBij2[m]*dBij2[n]+ B(i,j,0) * d2Bij0_mn + B(i,j,1) * d2Bij1_mn + B(i,j,2) * d2Bij2_mn); + auto term1_0 = -dtang_ij0[n] * dB2_ij[m]; + auto term1_1 = -dtang_ij1[n] * dB2_ij[m]; + auto term1_2 = -dtang_ij2[n] * dB2_ij[m]; + + auto term2_0 = -dtang_ij0[m] * dB2_ij[n]; + auto term2_1 = -dtang_ij1[m] * dB2_ij[n]; + auto term2_2 = -dtang_ij2[m] * dB2_ij[n]; + + auto term3_0 = -tang_ij0 * d2B2_ijmn; + auto term3_1 = -tang_ij1 * d2B2_ijmn; + auto term3_2 = -tang_ij2 * d2B2_ijmn; + + auto d2res_ij0mn = G * d2Bij0_mn + term1_0 + term2_0 + term3_0; + auto d2res_ij1mn = G * d2Bij1_mn + term1_1 + term2_1 + term3_1; + auto d2res_ij2mn = G * d2Bij2_mn + term1_2 + term2_2 + term3_2; + + auto d2modB_ijmn = (2 * B2ij * d2B2_ijmn - dB2_ij[m]*dB2_ij[n]) * powrmodBijthree / 4. ; + auto d2wij_mn = weight_inv_modB ? (2. * dmodB_ij[m] * dmodB_ij[n] - modB_ij * d2modB_ijmn) * powrmodBijthree : 0.; + + auto d2rtil_0mn = dresij0[m] *dw_ij[n] + dresij0[n] * dw_ij[m] + d2res_ij0mn * wij + resij0 * d2wij_mn; + auto d2rtil_1mn = dresij1[m] *dw_ij[n] + dresij1[n] * dw_ij[m] + d2res_ij1mn * wij + resij1 * d2wij_mn; + auto d2rtil_2mn = dresij2[m] *dw_ij[n] + dresij2[n] * dw_ij[m] + d2res_ij2mn * wij + resij2 * d2wij_mn; + + auto d2res_mn = rtil_ij0 * d2rtil_0mn + rtil_ij1 * d2rtil_1mn +rtil_ij2 * d2rtil_2mn; + + d2res(m, n) += d2res_mn; + } + auto d2res_ij0miota = -(dB2_ij[m] * xtheta(i, j, 0) + B2ij * dxtheta_ds(i,j,0,m)); + auto d2res_ij1miota = -(dB2_ij[m] * xtheta(i, j, 1) + B2ij * dxtheta_ds(i,j,1,m)); + auto d2res_ij2miota = -(dB2_ij[m] * xtheta(i, j, 2) + B2ij * dxtheta_ds(i,j,2,m)); + + + auto d2rtil_ij0miota = d2res_ij0miota * wij + dres_ij0iota * dw_ij[m] ; + auto d2rtil_ij1miota = d2res_ij1miota * wij + dres_ij1iota * dw_ij[m] ; + auto d2rtil_ij2miota = d2res_ij2miota * wij + dres_ij2iota * dw_ij[m] ; + auto d2res_miota = rtil_ij0*d2rtil_ij0miota+rtil_ij1*d2rtil_ij1miota+rtil_ij2*d2rtil_ij2miota; + + d2res(m, ndofs) += d2res_miota; + + auto d2res_ij0mG = dBij0[m]; + auto d2res_ij1mG = dBij1[m]; + auto d2res_ij2mG = dBij2[m]; + + auto d2rtil_ij0mG = d2res_ij0mG * wij + dres_ij0_dG * dw_ij[m]; + auto d2rtil_ij1mG = d2res_ij1mG * wij + dres_ij1_dG * dw_ij[m]; + auto d2rtil_ij2mG = d2res_ij2mG * wij + dres_ij2_dG * dw_ij[m]; + auto d2res_mG = rtil_ij0*d2rtil_ij0mG+rtil_ij1*d2rtil_ij1mG+rtil_ij2*d2rtil_ij2mG; + + d2res(m, ndofs+1) += d2res_mG; + + } + } + } + } + } + + MYIF(deriv > 1){ + // symmetrize the Hessian + for(int m = 0; m < ndofs+2; m++){ + for(int n = m+1; n < ndofs+2; n++){ + d2res(n, m) = d2res(m, n); + } + } + } +} + +#endif diff --git a/src/simsoptpp/boozerresidual_py.cpp b/src/simsoptpp/boozerresidual_py.cpp new file mode 100644 index 000000000..d8d41e85b --- /dev/null +++ b/src/simsoptpp/boozerresidual_py.cpp @@ -0,0 +1,32 @@ +#include "boozerresidual_impl.h" +#include "boozerresidual_py.h" + +double boozer_residual(double G, double iota, Array& xphi, Array& xtheta, Array& B, bool weight_inv_modB){ + double res = 0.; + Array dummy = xt::zeros({1}); + boozer_residual_impl(G, iota, B, dummy, dummy, xphi, xtheta, dummy, dummy, dummy, res, dummy, dummy, 0, weight_inv_modB); + return res; +} + +std::tuple boozer_residual_ds(double G, double iota, Array& B, Array& dB_dx, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds, bool weight_inv_modB){ + size_t ndofs = dx_ds.shape(3); + + double res = 0.; + Array dres = xt::zeros({ndofs+2}); + Array dummy = xt::zeros({1}); + boozer_residual_impl(G, iota, B, dB_dx, dummy, xphi, xtheta, dx_ds, dxphi_ds, dxtheta_ds, res, dres, dummy, ndofs, weight_inv_modB); + auto tup = std::make_tuple(res, dres); + return tup; +} + +std::tuple boozer_residual_ds2(double G, double iota, Array& B, Array& dB_dx, Array& d2B_dx2, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds, bool weight_inv_modB){ + size_t ndofs = dx_ds.shape(3); + + double res = 0.; + Array dres = xt::zeros({ndofs+2}); + Array d2res = xt::zeros({ndofs+2, ndofs+2}); + boozer_residual_impl(G, iota, B, dB_dx, d2B_dx2, xphi, xtheta, dx_ds, dxphi_ds, dxtheta_ds, res, dres, d2res, ndofs, weight_inv_modB); + auto tup = std::make_tuple(res, dres, d2res); + return tup; +} + diff --git a/src/simsoptpp/boozerresidual.h b/src/simsoptpp/boozerresidual_py.h similarity index 69% rename from src/simsoptpp/boozerresidual.h rename to src/simsoptpp/boozerresidual_py.h index 027b78840..8b5fc5f9b 100644 --- a/src/simsoptpp/boozerresidual.h +++ b/src/simsoptpp/boozerresidual_py.h @@ -1,14 +1,9 @@ -#pragma once - #include "xtensor/xarray.hpp" #include "xtensor/xmath.hpp" #include "xtensor-python/pyarray.hpp" // Numpy bindings -typedef xt::pyarray Array; -using std::vector; - -double boozer_residual(double G, double iota, Array& xphi, Array& xtheta, Array& B); -std::tuple boozer_residual_ds(double G, double iota, Array& B, Array& dB_dx, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds); -std::tuple boozer_residual_ds2(double G, double iota, Array& B, Array& dB_dx, Array& d2B_dx2, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds); +typedef xt::pyarray Array; -Array boozer_residual_dc(double G, Array& dB_dc, Array& B, Array& tang, Array& B2, Array& dxphi_dc, double iota, Array& dxtheta_dc); +double boozer_residual(double G, double iota, Array& xphi, Array& xtheta, Array& B, bool weight_inv_modB); +std::tuple boozer_residual_ds(double G, double iota, Array& B, Array& dB_dx, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds, bool weight_inv_modB); +std::tuple boozer_residual_ds2(double G, double iota, Array& B, Array& dB_dx, Array& d2B_dx2, Array& xphi, Array& xtheta, Array& dx_ds, Array& dxphi_ds, Array& dxtheta_ds, bool weight_inv_modB); diff --git a/src/simsoptpp/python.cpp b/src/simsoptpp/python.cpp index 4ffc116b0..3082265fe 100644 --- a/src/simsoptpp/python.cpp +++ b/src/simsoptpp/python.cpp @@ -12,8 +12,6 @@ typedef xt::pytensor PyTensor; #include - - #include "biot_savart_py.h" #include "biot_savart_vjp_py.h" #include "boozerradialinterpolant.h" @@ -23,7 +21,7 @@ typedef xt::pytensor PyTensor; #include "permanent_magnet_optimization.h" #include "reiman.h" #include "simdhelpers.h" -#include "boozerresidual.h" +#include "boozerresidual_py.h" namespace py = pybind11; @@ -94,10 +92,41 @@ PYBIND11_MODULE(simsoptpp, m) { m.def("compute_kmnc_kmns",&compute_kmnc_kmns); // the computation below is used in boozer_surface_residual. + // + // G*dB_dc - 2*np.sum(B[..., None]*dB_dc, axis=2)[:, :, None, :] * tang[..., None] - B2[..., None, None] * (dxphi_dc + iota * dxtheta_dc) + m.def("boozer_dresidual_dc", [](double G, PyArray& dB_dc, PyArray& B, PyArray& tang, PyArray& B2, PyArray& dxphi_dc, double iota, PyArray& dxtheta_dc) { + int nphi = dB_dc.shape(0); + int ntheta = dB_dc.shape(1); + int ndofs = dB_dc.shape(3); + PyArray res = xt::zeros({nphi, ntheta, 3, ndofs}); + double* B_dB_dc = new double[ndofs]; + for(int i=0; i>; #endif #if defined(USE_XSIMD) +/* #if __AVX512F__ // On skylake _mm512_sqrt_pd takes 24 CPI and _mm512_div_pd takes 16 CPI, so // 1/sqrt(vec) takes 40 CPI. Instead we can use the approximate inverse square @@ -147,6 +148,7 @@ inline simd_t rsqrt(simd_t r2){ return rinv; } #else +*/ inline simd_t rsqrt(const simd_t& r2){ //On my avx2 machine, computing the sqrt and then the inverse is actually a //bit faster. just keeping this line here to remind myself how to compute @@ -155,7 +157,7 @@ inline simd_t rsqrt(const simd_t& r2){ return 1./sqrt(r2); } -#endif +//#endif #endif inline double rsqrt(const double& r2){ diff --git a/src/simsoptpp/surface.cpp b/src/simsoptpp/surface.cpp index 371c3837c..88824015b 100644 --- a/src/simsoptpp/surface.cpp +++ b/src/simsoptpp/surface.cpp @@ -778,118 +778,29 @@ void Surface::d2volume_by_dcoeffdcoeff_impl(Array& data) { #else - - - #include "xsimd/xsimd.hpp" #include "simdhelpers.h" #include "vec3dsimd.h" template void Surface::d2volume_by_dcoeffdcoeff_impl(Array& data) { - constexpr int simd_size = xsimd::simd_type::size; data *= 0.; auto nor = this->normal(); auto dnor_dc = this->dnormal_by_dcoeff(); auto d2nor_dcdc = this->d2normal_by_dcoeffdcoeff(); // uses a lot of memory for moderate surface complexity auto xyz = this->gamma(); auto dxyz_dc = this->dgamma_by_dcoeff(); - auto dnor_dc = this->dnormal_by_dcoeff(); - auto dg1_dc = this->dgammadash1_by_dcoeff(); - auto dg2_dc = this->dgammadash2_by_dcoeff(); int ndofs = num_dofs(); - - auto dg1x_dc = AlignedPaddedVec(ndofs, 0); - auto dg1y_dc = AlignedPaddedVec(ndofs, 0); - auto dg1z_dc = AlignedPaddedVec(ndofs, 0); - - auto dg2x_dc = AlignedPaddedVec(ndofs, 0); - auto dg2y_dc = AlignedPaddedVec(ndofs, 0); - auto dg2z_dc = AlignedPaddedVec(ndofs, 0); - - auto dnorx_dc = AlignedPaddedVec(ndofs, 0); - auto dnory_dc = AlignedPaddedVec(ndofs, 0); - auto dnorz_dc = AlignedPaddedVec(ndofs, 0); - - auto dxyzx_dc = AlignedPaddedVec(ndofs, 0); - auto dxyzy_dc = AlignedPaddedVec(ndofs, 0); - auto dxyzz_dc = AlignedPaddedVec(ndofs, 0); - for (int i = 0; i < numquadpoints_phi; ++i) { for (int j = 0; j < numquadpoints_theta; ++j) { - simd_t xyzij0(xyz(i,j,0)); - simd_t xyzij1(xyz(i,j,1)); - simd_t xyzij2(xyz(i,j,2)); - - for (int n = 0; n < ndofs; ++n) { - dg1x_dc[n] = dg1_dc(i, j, 0, n); - dg1y_dc[n] = dg1_dc(i, j, 1, n); - dg1z_dc[n] = dg1_dc(i, j, 2, n); - - dg2x_dc[n] = dg2_dc(i, j, 0, n); - dg2y_dc[n] = dg2_dc(i, j, 1, n); - dg2z_dc[n] = dg2_dc(i, j, 2, n); - - dnorx_dc[n] = dnor_dc(i, j, 0, n); - dnory_dc[n] = dnor_dc(i, j, 1, n); - dnorz_dc[n] = dnor_dc(i, j, 2, n); - - dxyzx_dc[n] = dxyz_dc(i, j, 0, n); - dxyzy_dc[n] = dxyz_dc(i, j, 1, n); - dxyzz_dc[n] = dxyz_dc(i, j, 2, n); - } - - for (int m = 0; m < ndofs; ++m){ - simd_t dg1_dc_ij0m(dg1_dc(i, j, 0, m)); - simd_t dg1_dc_ij1m(dg1_dc(i, j, 1, m)); - simd_t dg1_dc_ij2m(dg1_dc(i, j, 2, m)); - - simd_t dg2_dc_ij0m(dg2_dc(i, j, 0, m)); - simd_t dg2_dc_ij1m(dg2_dc(i, j, 1, m)); - simd_t dg2_dc_ij2m(dg2_dc(i, j, 2, m)); - - simd_t dxyz_dc_ij0m(dxyz_dc(i, j, 0, m)); - simd_t dxyz_dc_ij1m(dxyz_dc(i, j, 1, m)); - simd_t dxyz_dc_ij2m(dxyz_dc(i, j, 2, m)); - - simd_t dnor_dc_ij0m(dnor_dc(i, j, 0, m)); - simd_t dnor_dc_ij1m(dnor_dc(i, j, 1, m)); - simd_t dnor_dc_ij2m(dnor_dc(i, j, 2, m)); - - for (int n = 0; n < ndofs; n+=simd_size){ - simd_t dg1_dc_ij0n = xs::load_aligned(&dg1x_dc[n]); - simd_t dg1_dc_ij1n = xs::load_aligned(&dg1y_dc[n]); - simd_t dg1_dc_ij2n = xs::load_aligned(&dg1z_dc[n]); - - simd_t dg2_dc_ij0n = xs::load_aligned(&dg2x_dc[n]); - simd_t dg2_dc_ij1n = xs::load_aligned(&dg2y_dc[n]); - simd_t dg2_dc_ij2n = xs::load_aligned(&dg2z_dc[n]); - - simd_t dnor_dc_ij0n = xs::load_aligned(&dnorx_dc[n]); - simd_t dnor_dc_ij1n = xs::load_aligned(&dnory_dc[n]); - simd_t dnor_dc_ij2n = xs::load_aligned(&dnorz_dc[n]); - - simd_t dxyz_dc_ij0n = xs::load_aligned(&dxyzx_dc[n]); - simd_t dxyz_dc_ij1n = xs::load_aligned(&dxyzy_dc[n]); - simd_t dxyz_dc_ij2n = xs::load_aligned(&dxyzz_dc[n]); - - auto d2nor_dcdc_ij0mn = xsimd::fms(dg1_dc_ij1m, dg2_dc_ij2n, dg1_dc_ij2m*dg2_dc_ij1n); - d2nor_dcdc_ij0mn += xsimd::fms(dg1_dc_ij1n, dg2_dc_ij2m, dg1_dc_ij2n*dg2_dc_ij1m); - auto d2nor_dcdc_ij1mn = xsimd::fms(dg1_dc_ij2m, dg2_dc_ij0n, dg1_dc_ij0m*dg2_dc_ij2n); - d2nor_dcdc_ij1mn += xsimd::fms(dg1_dc_ij2n, dg2_dc_ij0m, dg1_dc_ij0n*dg2_dc_ij2m); - auto d2nor_dcdc_ij2mn = xsimd::fms(dg1_dc_ij0m, dg2_dc_ij1n, dg1_dc_ij1m*dg2_dc_ij0n); - d2nor_dcdc_ij2mn += xsimd::fms(dg1_dc_ij0n, dg2_dc_ij1m, dg1_dc_ij1n*dg2_dc_ij0m); - - auto temp = xsimd::fma(dxyz_dc_ij0m, dnor_dc_ij0n, dxyz_dc_ij1m*dnor_dc_ij1n); - auto data1 = (1./3) * xsimd::fma(dxyz_dc_ij2m, dnor_dc_ij2n, temp); - auto data2 = (1./3) * (xsimd::fma(xyzij0, d2nor_dcdc_ij0mn , dxyz_dc_ij0n * dnor_dc_ij0m) - +xsimd::fma(xyzij1, d2nor_dcdc_ij1mn , dxyz_dc_ij1n * dnor_dc_ij1m) - +xsimd::fma(xyzij2, d2nor_dcdc_ij2mn , dxyz_dc_ij2n * dnor_dc_ij2m) ); - - int jjlimit = std::min(simd_size, ndofs-n); - for(int jj=0; jj 1e-10: assert counter > 3 - # print("################################################################################") + print("################################################################################") def get_curve(curvetype, rotated, x=np.asarray([0.5])): @@ -73,9 +77,15 @@ def get_curve(curvetype, rotated, x=np.asarray([0.5])): curve = CurveHelical(x, order, 5, 2, 1.0, 0.3, x0=np.ones((2*order,))) elif curvetype == "CurvePlanarFourier": curve = CurvePlanarFourier(x, order, 2, True) + elif curvetype == "CurveXYZFourierSymmetries1": + curve = CurveXYZFourierSymmetries(x, order, 2, True) + elif curvetype == "CurveXYZFourierSymmetries2": + curve = CurveXYZFourierSymmetries(x, order, 2, False) + elif curvetype == "CurveXYZFourierSymmetries3": + curve = CurveXYZFourierSymmetries(x, order, 2, False, ntor=3) else: assert False - + dofs = np.zeros((curve.dof_size, )) if curvetype in ["CurveXYZFourier", "JaxCurveXYZFourier"]: dofs[1] = 1. @@ -87,10 +97,38 @@ def get_curve(curvetype, rotated, x=np.asarray([0.5])): dofs[order+1] = 0.1 elif curvetype in ["CurveHelical", "CurveHelicalInitx0"]: dofs[0] = np.pi/2 + elif curvetype == "CurveXYZFourierSymmetries1": + R = 1 + r = 0.5 + curve.set('xc(0)', R) + curve.set('xc(1)', -r) + curve.set('zs(1)', -r) + dofs = curve.get_dofs() + elif curvetype == "CurveXYZFourierSymmetries2": + R = 1 + r = 0.5 + curve.set('xc(0)', R) + curve.set('xs(1)', -0.1*r) + curve.set('xc(1)', -r) + curve.set('zs(1)', -r) + curve.set('zc(0)', 1) + curve.set('zs(1)', r) + dofs = curve.get_dofs() + elif curvetype == "CurveXYZFourierSymmetries3": + R = 1 + r = 0.5 + curve.set('xc(0)', R) + curve.set('xs(1)', -0.1*r) + curve.set('xc(1)', -r) + curve.set('zs(1)', -r) + curve.set('zc(0)', 1) + curve.set('zs(1)', r) + dofs = curve.get_dofs() else: assert False curve.x = dofs + rand_scale * np.random.rand(len(dofs)).reshape(dofs.shape) + if rotated: curve = RotatedCurve(curve, 0.5, flip=False) return curve @@ -98,7 +136,239 @@ def get_curve(curvetype, rotated, x=np.asarray([0.5])): class Testing(unittest.TestCase): - curvetypes = ["CurveXYZFourier", "JaxCurveXYZFourier", "CurveRZFourier", "CurvePlanarFourier", "CurveHelical", "CurveHelicalInitx0"] + curvetypes = ["CurveXYZFourier", "JaxCurveXYZFourier", "CurveRZFourier", "CurvePlanarFourier", "CurveHelical", "CurveXYZFourierSymmetries1","CurveXYZFourierSymmetries2", "CurveXYZFourierSymmetries3", "CurveHelicalInitx0"] + + def get_curvexyzfouriersymmetries(self, stellsym=True, x=None, nfp=None, ntor=1): + # returns a CurveXYZFourierSymmetries that is randomly perturbed + + np.random.seed(1) + rand_scale = 1e-2 + + if nfp is None: + nfp = 3 + if x is None: + x = np.linspace(0, 1, 200, endpoint=False) + + order = 2 + curve = CurveXYZFourierSymmetries(x, order, nfp, stellsym, ntor=ntor) + R = 1 + r = 0.25 + curve.set('xc(0)', R) + curve.set('xc(2)', r) + curve.set('ys(2)', -r) + curve.set('zs(1)', -2*r) + curve.set('zs(2)', r) + dofs = curve.x.copy() + curve.x = dofs + rand_scale * np.random.rand(len(dofs)).reshape(dofs.shape) + + return curve + + def test_curvexyzsymmetries_raisesexception(self): + # test ensures that an exception is raised when you try and create a curvexyzfouriersymmetries + # where gcd(ntor, nfp) != 1. + + order = 1 + nfp = 1 + ntor = 2 + # nfp = 1 and ntor = 2 here, so it should work + curve = CurveXYZFourierSymmetries(100, order, nfp, True, ntor=ntor, x0=np.ones(3*order+1)) + print(curve.x) + + with self.assertRaises(Exception): + order = 1 + nfp = 2 + ntor = 2 + # nfp = 2 and ntor = 2 here, so an exception should be raised + _ = CurveXYZFourierSymmetries(100, order, nfp, True, ntor=ntor, x0=np.ones(3*order+1)) + + def test_curvehelical_is_curvexyzfouriersymmetries(self): + # this test checks that both helical coil representations can produce the same helical curve on a torus + order = 1 + nfp = 2 + curve1 = CurveXYZFourierSymmetries(100, order, nfp, True) + R = 1 + r = 0.5 + curve1.set('xc(0)', R) + curve1.set('xc(1)', r) + curve1.set('zs(1)', -r) + curve2 = CurveHelical(np.linspace(0, 1, 100, endpoint=False), order, nfp, 1, R, r, x0=np.zeros((2*order,))) + np.testing.assert_allclose(curve1.gamma(), curve2.gamma(), atol=1e-14) + + def test_trefoil_nonstellsym(self): + r''' This test checks that a CurveXYZFourierSymmetries can represent a non-stellarator symmetric + trefoil knot. A parametric representation of a trefoil knot is given by: + + x(t) = sin(t) + 2sin(t) + y(t) = cos(t) - 2cos(t) + z(t) = -sin(3t) + + The above can be rewritten the CurveXYZFourierSymmetries representation, with + order = 1, nfp = 3, and ntor = 2: + + x(t) = xhat(t) * cos(ntor*t) - yhat(t) * sin(ntor*t), + y(t) = xhat(t) * sin(ntor*t) + yhat(t) * cos(ntor*t), + z(t) = -sin(nfp*t), + + where + xhat(t) = sin(nfp*t), + yhat(t) = -2 + cos(nfp*t), + + i.e., The dofs are xs(1)=1, yc(0)=-2, yc(1)=1, zs(1)=-1, and zero otherwise. + ''' + + order = 1 + nfp = 3 + ntor = 2 + x = np.linspace(0, 1, 500, endpoint=False) + curve = CurveXYZFourierSymmetries(x, order, nfp, False, ntor=ntor) + + X = np.sin(2*np.pi * x) + 2 * np.sin(2*2*np.pi * x) + Y = np.cos(2*np.pi * x) - 2 * np.cos(2*2*np.pi * x) + Z = -np.sin(3*2*np.pi*x) + XYZ = np.concatenate([X[:, None], Y[:, None], Z[:, None]], axis=1) + + curve.set('xs(1)', 1.) + curve.set('yc(0)', -2.) + curve.set('yc(1)', 1.) + curve.set('zs(1)', -1.) + np.testing.assert_allclose(curve.gamma(), XYZ, atol=1e-14) + + def test_trefoil_stellsym(self): + r''' This test checks that a CurveXYZFourierSymmetries can represent a stellarator symmetric + trefoil knot. A parametric representation of a trefoil knot is given by: + + x(t) = cos(t) - 2cos(t), + y(t) =-sin(t) - 2sin(t), + z(t) = -sin(3t). + + The above can be rewritten the CurveXYZFourierSymmetries representation, with + order = 1, nfp = 3, and ntor = 2: + + x(t) = xhat(t) * cos(ntor*t) - yhat(t) * sin(ntor*t), + y(t) = xhat(t) * sin(ntor*t) + yhat(t) * cos(ntor*t), + z(t) = -sin(nfp*t), + + where + + xhat(t) = -2 + cos(nfp*t) + yhat(t) = -sin(nfp*t) + + i.e., xc(0)=-2, xc(1)=1, ys(1)=-1, zs(1)=-1. + ''' + + order = 1 + nfp = 3 + ntor = 2 + x = np.linspace(0, 1, 500, endpoint=False) + curve = CurveXYZFourierSymmetries(x, order, nfp, True, ntor=ntor) + + X = np.cos(2*np.pi * x) - 2 * np.cos(2*2*np.pi * x) + Y =-np.sin(2*np.pi * x) - 2 * np.sin(2*2*np.pi * x) + Z = -np.sin(3*2*np.pi*x) + XYZ = np.concatenate([X[:, None], Y[:, None], Z[:, None]], axis=1) + + curve.set('xc(0)', -2) + curve.set('xc(1)', 1) + curve.set('ys(1)', -1) + curve.set('zs(1)', -1) + np.testing.assert_allclose(curve.gamma(), XYZ, atol=1e-14) + + + def test_nonstellsym(self): + # this test checks that you can obtain a stellarator symmetric magnetic field from two non-stellarator symmetric + # CurveXYZFourierSymmetries curves. + for nfp in [1, 2, 3, 4, 5, 6]: + for ntor in [1, 2, 3, 4, 5, 6]: + with self.subTest(nfp=nfp, ntor=ntor): + self.subtest_nonstellsym(nfp, ntor) + + def subtest_nonstellsym(self, nfp, ntor): + if gcd(ntor, nfp) != 1: + return + + # this test checks that you can obtain a stellarator symmetric magnetic field from two non-stellarator symmetric + # CurveXYZFourierSymmetries curves. + curve = self.get_curvexyzfouriersymmetries(stellsym=False, nfp=nfp, ntor=ntor) + current = Current(1e5) + coils = coils_via_symmetries([curve], [current], 1, True) + bs = BiotSavart(coils) + bs.set_points([[1, 1, 1], [1, -1, -1]]) + B=bs.B_cyl() + np.testing.assert_allclose(B[0, 0], -B[1, 0], atol=1e-14) + np.testing.assert_allclose(B[0, 1], B[1, 1], atol=1e-14) + np.testing.assert_allclose(B[0, 2], B[1, 2], atol=1e-14) + + def test_xyzhelical_symmetries(self): + # checking various symmetries of the CurveXYZFourierSymmetries representation + for nfp in [1, 2, 3, 4, 5, 6]: + for ntor in [1, 2, 3, 4, 5, 6]: + with self.subTest(nfp=nfp, ntor=ntor): + self.subtest_xyzhelical_symmetries(nfp, ntor) + + def subtest_xyzhelical_symmetries(self, nfp, ntor): + if gcd(nfp, ntor) != 1 : + return + + # does the stellarator symmetric curve have rotational symmetry? + curve = self.get_curvexyzfouriersymmetries(stellsym=True, nfp=nfp, x=np.array([0.123, 0.123+1/nfp]), ntor=ntor) + out = curve.gamma() + + # NOTE: the point at angle t+1/nfp is the point at angle t, but rotated by 2pi *(ntor/nfp) radians. + alpha = 2*np.pi*ntor/nfp + R = np.array([ + [np.cos(alpha), -np.sin(alpha), 0], + [np.sin(alpha), np.cos(alpha), 0], + [0, 0, 1] + ]) + + print(R@out[0], out[1]) + np.testing.assert_allclose(out[1], R@out[0], atol=1e-14) + + # does the stellarator symmetric curve indeed pass through (x0, 0, 0)? + curve = self.get_curvexyzfouriersymmetries(stellsym=True, nfp=nfp, x = np.array([0]), ntor=ntor) + out = curve.gamma() + assert np.abs(out[0, 0]) > 1e-3 + np.testing.assert_allclose(out[0, 1], 0, atol=1e-14) + np.testing.assert_allclose(out[0, 2], 0, atol=1e-14) + + + # does the non-stellarator symmetric curve not pass through (x0, 0, 0)? + curve = self.get_curvexyzfouriersymmetries(stellsym=False, nfp=nfp, x = np.array([0]), ntor=ntor) + out = curve.gamma() + assert np.abs(out[0, 0]) > 1e-3 + assert np.abs(out[0, 1]) > 1e-3 + assert np.abs(out[0, 2]) > 1e-3 + + # is the stellarator symmetric curve actually stellarator symmetric? + curve = self.get_curvexyzfouriersymmetries(stellsym=True, nfp=nfp, x = np.array([0.123, -0.123]), ntor=ntor) + pts = curve.gamma() + np.testing.assert_allclose(pts[0, 0], pts[1, 0], atol=1e-14) + np.testing.assert_allclose(pts[0, 1], -pts[1, 1], atol= 1e-14) + np.testing.assert_allclose(pts[0, 2], -pts[1, 2], atol= 1e-14) + + # is the field from the stellarator symmetric curve actually stellarator symmetric? + curve = self.get_curvexyzfouriersymmetries(stellsym=True, nfp=nfp, x=np.linspace(0, 1, 200, endpoint=False), ntor=ntor) + current = Current(1e5) + coil = Coil(curve, current) + bs = BiotSavart([coil]) + bs.set_points([[1, 1, 1], [1, -1, -1]]) + B=bs.B_cyl() + np.testing.assert_allclose(B[0, 0],-B[1, 0], atol=1e-14) + np.testing.assert_allclose(B[0, 1], B[1, 1], atol=1e-14) + np.testing.assert_allclose(B[0, 2], B[1, 2], atol=1e-14) + + # does the non-stellarator symmetric curve have rotational symmetry still? + # NOTE: the point at angle t+1/nfp is the point at angle t, but rotated by 2pi *(ntor/nfp) radians. + curve = self.get_curvexyzfouriersymmetries(stellsym=False, nfp=nfp, x = np.array([0.123, 0.123+1./nfp]), ntor=ntor) + out = curve.gamma() + alpha = 2*np.pi*ntor/nfp + R = np.array([ + [np.cos(alpha), -np.sin(alpha), 0], + [np.sin(alpha), np.cos(alpha), 0], + [0, 0, 1] + ]) + print(R@out[0], out[1]) + np.testing.assert_allclose(out[1], R@out[0], atol=1e-14) def test_curve_helical_xyzfourier(self): x = np.asarray([0.6]) diff --git a/tests/geo/test_surface_objectives.py b/tests/geo/test_surface_objectives.py index 759d3ccaf..5abb41c3e 100644 --- a/tests/geo/test_surface_objectives.py +++ b/tests/geo/test_surface_objectives.py @@ -2,7 +2,7 @@ import numpy as np from simsopt.field.biotsavart import BiotSavart from simsopt.field.coil import coils_via_symmetries -from simsopt.geo.surfaceobjectives import ToroidalFlux, QfmResidual, parameter_derivatives, Volume, PrincipalCurvature, MajorRadius, Iotas, NonQuasiSymmetricRatio +from simsopt.geo.surfaceobjectives import ToroidalFlux, QfmResidual, parameter_derivatives, Volume, PrincipalCurvature, MajorRadius, Iotas, NonQuasiSymmetricRatio, BoozerResidual from simsopt.configs.zoo import get_ncsx_data from .surface_test_helpers import get_surface, get_exact_surface, get_boozer_surface @@ -259,13 +259,21 @@ def test_major_radius_derivative(self): """ Taylor test for derivative of surface major radius wrt coil parameters """ - - for label in ["Volume", "ToroidalFlux"]: - with self.subTest(label=label): - self.subtest_major_radius_surface_derivative(label) - - def subtest_major_radius_surface_derivative(self, label): - bs, boozer_surface = get_boozer_surface(label=label, nphi=51, ntheta=51) + for boozer_type in ['exact', 'ls']: + for label in ["Volume", "ToroidalFlux"]: + for optimize_G in [True, False]: + for weight_inv_modB in [True, False]: + with self.subTest(label=label, boozer_type=boozer_type, optimize_G=optimize_G): + if boozer_type == 'ls' and label == 'ToroidalFlux': + continue + if boozer_type == 'exact' and optimize_G is False: + continue + if boozer_type == 'exact' and weight_inv_modB: + continue + self.subtest_major_radius_surface_derivative(label, boozer_type, optimize_G, weight_inv_modB) + + def subtest_major_radius_surface_derivative(self, label, boozer_type, optimize_G, weight_inv_modB): + bs, boozer_surface = get_boozer_surface(label=label, nphi=51, ntheta=51, boozer_type=boozer_type, optimize_G=optimize_G, weight_inv_modB=weight_inv_modB) coeffs = bs.x mr = MajorRadius(boozer_surface) @@ -286,16 +294,25 @@ def test_iotas_derivative(self): Taylor test for derivative of surface rotational transform wrt coil parameters """ - for label in ["Volume", "ToroidalFlux"]: - with self.subTest(label=label): - self.subtest_iotas_derivative(label) - - def subtest_iotas_derivative(self, label): + for boozer_type in ['exact', 'ls']: + for label in ["Volume", "ToroidalFlux"]: + for optimize_G in [True, False]: + for weight_inv_modB in [True, False]: + if boozer_type == 'ls' and label == 'ToroidalFlux': + continue + if boozer_type == 'exact' and optimize_G is False: + continue + if boozer_type == 'exact' and weight_inv_modB: + continue + with self.subTest(label=label, boozer_type=boozer_type, optimize_G=optimize_G, weight_inv_modB=weight_inv_modB): + self.subtest_iotas_derivative(label, boozer_type, optimize_G, weight_inv_modB) + + def subtest_iotas_derivative(self, label, boozer_type, optimize_G, weight_inv_modB): """ Taylor test for derivative of surface rotational transform wrt coil parameters """ - bs, boozer_surface = get_boozer_surface(label=label) + bs, boozer_surface = get_boozer_surface(label=label, boozer_type=boozer_type, optimize_G=optimize_G, weight_inv_modB=weight_inv_modB) coeffs = bs.x io = Iotas(boozer_surface) @@ -316,13 +333,27 @@ def test_nonQSratio_derivative(self): """ Taylor test for derivative of surface non QS ratio wrt coil parameters """ - for label in ["Volume", "ToroidalFlux"]: - for axis in [False, True]: - with self.subTest(label=label, axis=axis): - self.subtest_nonQSratio_derivative(label, axis) - - def subtest_nonQSratio_derivative(self, label, axis): - bs, boozer_surface = get_boozer_surface(label=label) + for boozer_type in ['exact', 'ls']: + for label in ["Volume", "ToroidalFlux"]: + for weight_inv_modB in [True, False]: + for optimize_G in [True, False]: + for fix_coil_dof in [True, False]: + if boozer_type == 'ls' and label == 'ToroidalFlux': + continue + if boozer_type == 'exact' and optimize_G is False: + continue + if boozer_type == 'exact' and weight_inv_modB: + continue + for axis in [False, True]: + with self.subTest(label=label, axis=axis, boozer_type=boozer_type, optimize_G=optimize_G, weight_inv_modB=weight_inv_modB, fix_coil_dof=fix_coil_dof): + self.subtest_nonQSratio_derivative(label, axis, boozer_type, optimize_G, weight_inv_modB, fix_coil_dof) + + def subtest_nonQSratio_derivative(self, label, axis, boozer_type, optimize_G, weight_inv_modB, fix_coil_dof): + bs, boozer_surface = get_boozer_surface(label=label, boozer_type=boozer_type, optimize_G=optimize_G, weight_inv_modB=weight_inv_modB) + + if fix_coil_dof: + bs.coils[0].curve.fix('xc(0)') + coeffs = bs.x io = NonQuasiSymmetricRatio(boozer_surface, bs, quasi_poloidal=axis) @@ -338,14 +369,46 @@ def df(dofs): epsilons=np.power(2., -np.asarray(range(13, 19)))) +class BoozerResidualTests(unittest.TestCase): + def test_boozerresidual_derivative(self): + """ + Taylor test for derivative of surface non QS ratio wrt coil parameters + """ + for label in ["Volume"]: + for optimize_G in [True, False]: + for weight_inv_modB in [True, False]: + with self.subTest(label=label, optimize_G=optimize_G, weight_inv_modB=weight_inv_modB): + self.subtest_boozerresidual_derivative(label, optimize_G, weight_inv_modB) + + def subtest_boozerresidual_derivative(self, label, optimize_G, weight_inv_modB): + bs, boozer_surface = get_boozer_surface(label=label, boozer_type='ls', optimize_G=optimize_G, weight_inv_modB=weight_inv_modB) + coeffs = bs.x + br = BoozerResidual(boozer_surface, bs) + + def f(dofs): + bs.x = dofs + return br.J() + + def df(dofs): + bs.x = dofs + return br.dJ() + + taylor_test1(f, df, coeffs, + epsilons=np.power(2., -np.asarray(range(13, 19)))) + + class LabelTests(unittest.TestCase): def test_label_surface_derivative1(self): - for label in ["Volume", "ToroidalFlux", "Area"]: - with self.subTest(label=label): - self.subtest_label_derivative1(label) - - def subtest_label_derivative1(self, label): - bs, boozer_surface = get_boozer_surface(label=label) + for label in ["Volume", "ToroidalFlux", "Area", "AspectRatio"]: + for stellsym in stellsym_list: + for nphi, ntheta in [(13, 14), (None, None), (13, None), (None, 14)]: + with self.subTest(label=label, stellsym=stellsym, converge=stellsym): + # don't converge the BoozerSurface when stellsym=False because it takes a long time + # for a unit test + self.subtest_label_derivative1(label, stellsym=stellsym, converge=stellsym, nphi=nphi, ntheta=ntheta) + + def subtest_label_derivative1(self, label, stellsym, converge, nphi, ntheta): + bs, boozer_surface = get_boozer_surface(label=label, nphi=nphi, ntheta=ntheta, converge=converge, stellsym=stellsym) surface = boozer_surface.surface label = boozer_surface.label coeffs = surface.x @@ -359,10 +422,10 @@ def df(dofs): return label.dJ(partials=True)(surface) taylor_test1(f, df, coeffs, - epsilons=np.power(2., -np.asarray(range(13, 19)))) + epsilons=np.power(2., -np.asarray(range(12, 18)))) def test_label_surface_derivative2(self): - for label in ["Volume", "ToroidalFlux", "Area"]: + for label in ["Volume", "ToroidalFlux", "Area", "AspectRatio"]: with self.subTest(label=label): self.subtest_label_derivative2(label) diff --git a/tests/geo/test_surface_rzfourier.py b/tests/geo/test_surface_rzfourier.py index 976f4cfaf..538cf17d2 100755 --- a/tests/geo/test_surface_rzfourier.py +++ b/tests/geo/test_surface_rzfourier.py @@ -10,6 +10,13 @@ from simsopt.geo.surface import Surface from simsopt._core.optimizable import Optimizable +try: + import vmec +except ImportError: + vmec = None + +from simsopt.mhd import Vmec + TEST_DIR = Path(__file__).parent / ".." / "test_files" stellsym_list = [True, False] @@ -631,6 +638,100 @@ def test_shared_dof_serialization(self): self.assertAlmostEqual(s2.area(), surf_objs[1].area()) self.assertIs(surf_objs[0].dofs, surf_objs[1].dofs) + def test_make_rotating_ellipse(self): + major_radius = 8.4 + minor_radius = 2.3 + elongation = 2.7 + torsion = 0.6 + nfp = 3 + sqrt_elong = np.sqrt(elongation) + surf = SurfaceRZFourier.from_nphi_ntheta(ntor=2, mpol=3, nphi=2, ntheta=4, range="field period", nfp=nfp) + surf.make_rotating_ellipse(major_radius, minor_radius, elongation, torsion) + + xyz = surf.gamma() + R = np.sqrt(xyz[:, :, 0]**2 + xyz[:, :, 1]**2) + Z = xyz[:, :, 2] + + # Check phi=0 plane: + np.testing.assert_allclose( + R[0, :], + [major_radius + torsion + minor_radius / sqrt_elong, + major_radius + torsion, + major_radius + torsion - minor_radius / sqrt_elong, + major_radius + torsion] + ) + np.testing.assert_allclose( + Z[0, :], + [0, + minor_radius * sqrt_elong, + 0, + -minor_radius * sqrt_elong], + atol=1e-14, + ) + + # Check phi=pi/nfp plane: + np.testing.assert_allclose( + R[1, :], + [major_radius - torsion + minor_radius * sqrt_elong, + major_radius - torsion, + major_radius - torsion - minor_radius * sqrt_elong, + major_radius - torsion] + ) + np.testing.assert_allclose( + Z[1, :], + [0, + minor_radius / sqrt_elong, + 0, + -minor_radius / sqrt_elong], + atol=1e-14, + ) + + # Now make the same surface shape with more quadpoints: + surf = SurfaceRZFourier.from_nphi_ntheta(ntor=1, mpol=1, nphi=64, ntheta=65, range="field period", nfp=nfp) + surf.make_rotating_ellipse(major_radius, minor_radius, elongation, torsion) + np.testing.assert_allclose(surf.major_radius(), major_radius) + np.testing.assert_allclose(surf.minor_radius(), minor_radius) + np.testing.assert_allclose(surf.aspect_ratio(), major_radius / minor_radius) + + # Check that the cross-sectional area is correct at every phi: + gamma = surf.gamma() + R = np.sqrt(gamma[:, :, 0]**2 + gamma[:, :, 1]**2) + gammadash2 = surf.gammadash2() + dZdtheta = gammadash2[:, :, 2] + dtheta = surf.quadpoints_theta[1] - surf.quadpoints_theta[0] + area_vs_phi = np.abs(np.sum(R * dZdtheta, axis=1) * dtheta) + np.testing.assert_allclose(area_vs_phi, np.pi * minor_radius**2) + + @unittest.skipIf(vmec is None, "vmec python extension is not installed") + def test_make_rotating_ellipse_iota(self): + """make_rotating_ellipse() should give positive iota.""" + filename = str(TEST_DIR / 'input.LandremanPaul2021_QH_reactorScale_lowres') + with ScratchDir("."): + eq = Vmec(filename) + eq.indata.mpol = 4 # Lower resolution to expedite test + eq.indata.ntor = 4 + eq.indata.ftol_array[:2] = [1e-8, 1e-10] + + # Try the case of elongation=1 with positive axis torsion: + major_radius = 8.4 + minor_radius = 1.3 + elongation = 1.0 + torsion = 0.9 + eq.boundary.make_rotating_ellipse(major_radius, minor_radius, elongation, torsion) + eq.run() + np.testing.assert_array_less(0, eq.wout.iotaf) + np.testing.assert_allclose(eq.mean_iota(), 0.26990720954583547, rtol=1e-6) + + # Try the case of zero axis torsion with rotating elongation: + major_radius = 8.4 + minor_radius = 1.3 + elongation = 2.1 + torsion = 0.0 + eq.boundary.make_rotating_ellipse(major_radius, minor_radius, elongation, torsion) + eq.run() + np.testing.assert_array_less(0, eq.wout.iotaf) + np.testing.assert_allclose(eq.mean_iota(), 0.4291137962772453, rtol=1e-6) + class SurfaceRZPseudospectralTests(unittest.TestCase): def test_names(self): diff --git a/tests/mhd/test_integrated_mpi.py b/tests/mhd/test_integrated_mpi.py index d00448154..40dc773c4 100644 --- a/tests/mhd/test_integrated_mpi.py +++ b/tests/mhd/test_integrated_mpi.py @@ -190,7 +190,7 @@ def test_Residue_parallelization(self): (residue2.J, 0, 1)]) # Solve for two nfevs to test if runs - least_squares_mpi_solve(prob, mpi=mpi, grad=grad, max_nfev=2) + least_squares_mpi_solve(prob, mpi=mpi, grad=grad, save_residuals=True, max_nfev=2) # No assertions, run is too short to complete, just testing if it does run diff --git a/tests/mhd/test_vmec_diagnostics.py b/tests/mhd/test_vmec_diagnostics.py index 82a5c545e..a65400e0b 100755 --- a/tests/mhd/test_vmec_diagnostics.py +++ b/tests/mhd/test_vmec_diagnostics.py @@ -490,6 +490,142 @@ def test_compare_to_desc(self): np.testing.assert_allclose(simsopt_data.grad_psi_dot_grad_psi, desc_data, rtol=0.005, atol=0.0005) + def test_derivatives(self): + """ + Compare some of the derivatives to finite differences. + """ + vmec = Vmec(os.path.join(TEST_DIR, "wout_LandremanPaul2021_QA_lowres.nc")) + + ds = 0.01 + s = [1.0 - ds, 1.0] + ntheta = 100 + nphi = 102 + theta = np.linspace(0, 2 * np.pi, ntheta, endpoint=False) + phi = np.linspace(0, 2 * np.pi / vmec.wout.nfp, nphi, endpoint=False) + dtheta = theta[1] - theta[0] + dphi = phi[1] - phi[0] + + def d_d_theta(f): + return (np.roll(f, -1, axis=1) - np.roll(f, 1, axis=1)) / (2 * dtheta) + + def d_d_phi(f): + return (np.roll(f, -1, axis=2) - np.roll(f, 1, axis=2)) / (2 * dphi) + + def d2_d_theta2(f): + return (np.roll(f, -1, axis=1) - 2 * f + np.roll(f, 1, axis=1)) / (dtheta**2) + + def d2_d_phi2(f): + return (np.roll(f, -1, axis=2) - 2 * f + np.roll(f, 1, axis=2)) / (dphi**2) + + def d_d_s(f): + return (f[1, :, :] - f[0, :, :]) / ds + + def s_mean(f): + # Average over the two surfaces + return 0.5 * (f[0, :, :] + f[1, :, :]) + + data = vmec_compute_geometry(vmec, s, theta, phi) + + np.testing.assert_allclose(data.d_R_d_theta_vmec, d_d_theta(data.R), atol=3e-3) + np.testing.assert_allclose(data.d2_R_d_theta_vmec_d_phi, d_d_theta(d_d_phi(data.R)), atol=2e-3) + np.testing.assert_allclose(data.d2_Z_d_theta_vmec_d_phi, d_d_theta(d_d_phi(data.Z)), atol=2e-3) + np.testing.assert_allclose(data.d2_R_d_theta_vmec2, d2_d_theta2(data.R), atol=4e-4) + np.testing.assert_allclose(data.d2_Z_d_theta_vmec2, d2_d_theta2(data.Z), atol=3e-4) + np.testing.assert_allclose(data.d2_R_d_phi2, d2_d_phi2(data.R), atol=2e-3) + np.testing.assert_allclose(data.d2_Z_d_phi2, d2_d_phi2(data.Z), atol=2e-3) + np.testing.assert_allclose(s_mean(data.d2_R_d_s_d_phi), d_d_s(data.d_R_d_phi), atol=3e-6) + np.testing.assert_allclose(s_mean(data.d2_Z_d_s_d_phi), d_d_s(data.d_Z_d_phi), atol=2e-6) + np.testing.assert_allclose(s_mean(data.d2_R_d_s_d_theta_vmec), d_d_s(data.d_R_d_theta_vmec), atol=2e-6) + np.testing.assert_allclose(s_mean(data.d2_Z_d_s_d_theta_vmec), d_d_s(data.d_Z_d_theta_vmec), atol=2e-6) + + np.testing.assert_allclose(data.d_B_sup_theta_vmec_d_theta_vmec, d_d_theta(data.B_sup_theta_vmec), atol=2e-2) + np.testing.assert_allclose(data.d_B_sup_theta_vmec_d_phi, d_d_phi(data.B_sup_theta_vmec), atol=4e-3) + np.testing.assert_allclose(data.d_B_sup_phi_d_theta_vmec, d_d_theta(data.B_sup_phi), atol=8e-3) + np.testing.assert_allclose(data.d_B_sup_phi_d_phi, d_d_phi(data.B_sup_phi), atol=8e-4) + np.testing.assert_allclose(s_mean(data.d_B_sup_phi_d_s), d_d_s(data.B_sup_phi), atol=6e-6) + np.testing.assert_allclose(s_mean(data.d_B_sup_theta_vmec_d_s), d_d_s(data.B_sup_theta_vmec), atol=4e-5) + + if False: + # f_an = np.squeeze(data.d2_R_d_phi2)[1, :, :] + # f_fd = np.squeeze(d2_d_phi2(data.R))[1, :, :] + f_an = s_mean(data.d2_R_d_s_d_theta_vmec) + f_fd = d_d_s(data.d_R_d_theta_vmec) + import matplotlib.pyplot as plt + plt.figure(figsize=(14, 7)) + nrows = 1 + ncols = 3 + ncontours = 25 + + plt.subplot(nrows, ncols, 1) + plt.contour(phi, theta, f_an, ncontours) + plt.colorbar() + plt.title("analytic") + + plt.subplot(nrows, ncols, 2) + plt.contour(phi, theta, f_fd, ncontours) + plt.colorbar() + plt.title("finite diff") + + plt.subplot(nrows, ncols, 3) + plt.contour(phi, theta, f_an - f_fd, ncontours) + plt.colorbar() + plt.title("diff") + + plt.tight_layout() + plt.show() + + def test_L_grad_B_regression(self): + """ + Compare L_{grad B} to an indepedent calculation in Matt Landreman's + Matlab code m20240601_01_gradBTensorComplexityMetricForVMEC.m + """ + vmec = Vmec(os.path.join(TEST_DIR, "wout_LandremanPaul2021_QA_lowres.nc")) + + s = 1.0 + ntheta = 9 + nphi = 7 + theta = np.linspace(0, 2 * np.pi, ntheta, endpoint=True) + phi = np.linspace(0, 2 * np.pi / vmec.wout.nfp, nphi, endpoint=True) + + data = vmec_compute_geometry(vmec, s, theta, phi) + + matlab_data = np.array([ + [0.777048118791033, 0.850059335051267, 1.058251880937882, 1.238755906102585, 1.058251880937882, 0.850059335051267, 0.777048118791033], + [0.732357468770512, 0.887635027604753, 1.100038034467113, 1.149372447382607, 0.914652536061020, 0.732423846297739, 0.732357468770512], + [0.642772279126891, 0.810075234122540, 1.009506601358511, 1.036192879128092, 0.822941521630497, 0.638233465781766, 0.642772279126891], + [0.561114055795734, 0.718502389029629, 0.920071594222606, 0.997769685332234, 0.817986738735225, 0.595098001722719, 0.561114055795734], + [0.520891960189527, 0.633214068787356, 0.866980355399107, 0.967856711826989, 0.866980355399108, 0.633214068787355, 0.520891960189527], + [0.561114055795734, 0.595098001722719, 0.817986738735225, 0.997769685332234, 0.920071594222606, 0.718502389029630, 0.561114055795734], + [0.642772279126891, 0.638233465781766, 0.822941521630497, 1.036192879128092, 1.009506601358511, 0.810075234122540, 0.642772279126891], + [0.732357468770512, 0.732423846297739, 0.914652536061019, 1.149372447382608, 1.100038034467113, 0.887635027604753, 0.732357468770512], + [0.777048118791033, 0.850059335051268, 1.058251880937882, 1.238755906102585, 1.058251880937882, 0.850059335051267, 0.777048118791033], + ]) + + np.testing.assert_allclose(np.squeeze(data.L_grad_B), matlab_data, rtol=7e-3) + + # Trace of the grad \vec{B} tensor is div(B), which should be 0. + div_B = data.grad_B__XX + data.grad_B__YY + data.grad_B__ZZ + np.testing.assert_allclose(div_B, 0, atol=4e-4) + + def test_L_grad_B_axisymmetry(self): + """ + For a purely toroidal magnetic field, L_{grad B} should equal the major radius. + """ + vmec = Vmec(os.path.join(TEST_DIR, "wout_purely_toroidal_field_reference.nc")) + + s = 1.0 + ntheta = 50 + nphi = 4 + theta = np.linspace(0, 2 * np.pi, ntheta, endpoint=True) + phi = np.linspace(0, 2 * np.pi / vmec.wout.nfp, nphi, endpoint=True) + + data = vmec_compute_geometry(vmec, s, theta, phi) + np.testing.assert_allclose(data.L_grad_B, data.R, rtol=1e-5) + + # Trace of the grad \vec{B} tensor is div(B), which should be 0. + div_B = data.grad_B__XX + data.grad_B__YY + data.grad_B__ZZ + np.testing.assert_allclose(div_B, 0, atol=3e-11) + class VmecFieldlinesTests(unittest.TestCase): def test_fieldline_grids(self): diff --git a/tests/objectives/test_utilities.py b/tests/objectives/test_utilities.py index 5357cd6cd..1c6414dd2 100644 --- a/tests/objectives/test_utilities.py +++ b/tests/objectives/test_utilities.py @@ -3,11 +3,13 @@ import numpy as np +from simsopt.geo import SurfaceXYZTensorFourier from simsopt.geo.curvexyzfourier import CurveXYZFourier from simsopt.geo.curveobjectives import CurveLength, LpCurveTorsion -from simsopt.objectives.utilities import MPIObjective, QuadraticPenalty +from simsopt.objectives.utilities import MPIObjective, QuadraticPenalty, MPIOptimizable from simsopt.geo import parameters from simsopt._core.json import GSONDecoder, GSONEncoder, SIMSON +from simsopt._core.util import parallel_loop_bounds parameters['jit'] = False try: from mpi4py import MPI @@ -61,10 +63,8 @@ def test_quadratic_penalty(self): with self.assertRaises(Exception): self.subtest_quadratic_penalty(curve, J.J()+0.1, 'NotInList') + @unittest.skipIf(MPI is None, "mpi4py not found") def test_mpi_objective(self): - if MPI is None: - print("skip test_mpi_objective") - return comm = MPI.COMM_WORLD c = self.create_curve() @@ -84,3 +84,32 @@ def test_mpi_objective(self): Jmpi1 = MPIObjective(Js1subset, comm, needs_splitting=False) assert abs(Jmpi1.J() - sum(J.J() for J in Js)/n) < 1e-14 assert np.sum(np.abs(Jmpi1.dJ() - sum(J.dJ() for J in Js)/n)) < 1e-14 + + @unittest.skipIf(MPI is None, "mpi4py not found") + def test_mpi_optimizable(self): + """ + This test checks that the `x` attribute of the surfaces is correctly communicated across the ranks. + """ + + comm = MPI.COMM_WORLD + for size in [1, 2, 3, 4, 5]: + surfaces = [SurfaceXYZTensorFourier(mpol=1, ntor=1, stellsym=True) for i in range(size)] + + equal_to = [] + for i in range(size): + x = np.zeros(surfaces[i].x.size) + x[:] = i + equal_to.append(x) + + startidx, endidx = parallel_loop_bounds(comm, len(surfaces)) + for idx in range(startidx, endidx): + surfaces[idx].x = equal_to[idx] + + mpi_surfaces = MPIOptimizable(surfaces, ["x"], comm) + for s, sx in zip(mpi_surfaces, equal_to): + np.testing.assert_allclose(s.x, sx, atol=1e-14) + + # this should raise an exception + mpi_surfaces = [SurfaceXYZTensorFourier(mpol=1, ntor=1, stellsym=True) for i in range(size)] + with self.assertRaises(Exception): + _ = MPIOptimizable(surfaces, ["y"], comm) diff --git a/tests/solve/test_least_squares.py b/tests/solve/test_least_squares.py index a2a04d77f..4896e1903 100755 --- a/tests/solve/test_least_squares.py +++ b/tests/solve/test_least_squares.py @@ -72,11 +72,12 @@ def test_solve_rosenbrock(self): """ with ScratchDir("."): for solver in solvers: - #for grad in [True, False]: - r = Rosenbrock() - prob = LeastSquaresProblem(0, 1, depends_on=r) - solver(prob) # , grad=grad) - self.assertAlmostEqual(prob.objective(), 0) + for save_residuals in [True, False]: + #for grad in [True, False]: + r = Rosenbrock() + prob = LeastSquaresProblem(0, 1, depends_on=r) + solver(prob, save_residuals=save_residuals) # , grad=grad) + self.assertAlmostEqual(prob.objective(), 0) if __name__ == "__main__": diff --git a/tests/test_files/input.purely_toroidal_field b/tests/test_files/input.purely_toroidal_field new file mode 100644 index 000000000..343d885d3 --- /dev/null +++ b/tests/test_files/input.purely_toroidal_field @@ -0,0 +1,37 @@ +! DSHAPE tokamak boundary shape from Hirshman and Whitson 1983, but with no pressure and iota ~ 0. +&INDATA + MGRID_FILE = 'NONE ' + LOPTIM = F + LSPECTRUM_DUMP = F + DELT = 0.9 + TCON0 = 2. + NFP = 1 + MPOL = 6 + NTOR = 0 + +! NS_ARRAY = 13 25 51 +! FTOL_ARRAY = 1e-20 1e-20 1e-11 +! NITER_ARRAY = 1000 1500 2000 + + NS_ARRAY = 13 25 51 101 + FTOL_ARRAY = 1e-20 1e-20 1e-20 1e-15 + NITER_ARRAY = 1000 1500 2000 30000 + +! NS_ARRAY = 13 25 51 101 150 201 +! FTOL_ARRAY = 1e-20 1e-20 1e-20 1e-20 1e-20 1e-14 +! NITER_ARRAY = 1000 1500 2000 2500 3000 30000 + + NSTEP = 200 + NVACSKIP = 3 + GAMMA = 0.00000000E+00 + PHIEDGE = 5.0 + CURTOR = 1.0 + SPRES_PED = 1.0000E+00 + NCURR = 0 + AM = 0.0 + AI = 1.0e-6 ! Add a tiny iota so the problem is not completely degenerate + AC = 0.0 + RBC(0, 0) = 3.510 ZBS(0, 0) = 0.000 + RBC(0, 1) = 1.000 ZBS(0, 1) = 1.470 + RBC(0, 2) = 0.106 ZBS(0, 2) = -0.160 + / diff --git a/tests/test_files/wout_purely_toroidal_field_reference.nc b/tests/test_files/wout_purely_toroidal_field_reference.nc new file mode 100644 index 000000000..5beb6f859 Binary files /dev/null and b/tests/test_files/wout_purely_toroidal_field_reference.nc differ