From 7958cf534a594bde481b5561802939de84c1cac4 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sat, 6 Sep 2025 00:52:27 -0500 Subject: [PATCH 01/18] Add new helper functions for curve resampling and Fourier fitting in coils.py; update solver in dynamics.py; modify BiotSavart_from_gamma initialization in fields.py; create example script for near-axis field visualization. --- essos/coils.py | 103 +++++++++++++++++++++++++++- essos/dynamics.py | 6 +- essos/fields.py | 16 +++-- examples/coils_from_nearaxis.py | 115 ++++++++++++++++++++++++++++++++ 4 files changed, 231 insertions(+), 9 deletions(-) create mode 100644 examples/coils_from_nearaxis.py diff --git a/essos/coils.py b/essos/coils.py index abe58e5..fac7a25 100644 --- a/essos/coils.py +++ b/essos/coils.py @@ -559,4 +559,105 @@ def apply_symmetries_to_currents(base_currents, nfp, stellsym): for i in range(len(base_currents)): current = -base_currents[i] if flip else base_currents[i] currents.append(current) - return jnp.array(currents) \ No newline at end of file + return jnp.array(currents) + +# ---------- helpers ---------- +def _resample_closed_curve_uniform(gamma: jnp.ndarray, n_segments: int) -> jnp.ndarray: + """ + Piecewise-linear arclength reparameterization to n_segments uniform samples in t∈[0,1). + gamma: (M,3) closed curve, M>=3. Returns (n_segments,3). + """ + M = gamma.shape[0] + # close the loop for cumulative length + g_ext = jnp.vstack([gamma, gamma[0:1, :]]) # (M+1, 3) + seg = g_ext[1:] - g_ext[:-1] # (M, 3) + seg_len = jnp.linalg.norm(seg, axis=1) # (M,) + cum = jnp.concatenate([jnp.array([0.0]), jnp.cumsum(seg_len)]) # (M+1,) + total = cum[-1] + # target arclengths + s_targets = jnp.linspace(0.0, total, n_segments+1, endpoint=False) # include 0, exclude total + # for each target, find segment index i with cum[i] <= s < cum[i+1] + # jnp.searchsorted is in JAX; side='right' then subtract 1 + idx = jnp.searchsorted(cum, s_targets, side='right') - 1 # (n_segments+1,) + idx = jnp.clip(idx, 0, M-1) # safe + s0 = cum[idx] + s1 = cum[idx+1] + w = (s_targets - s0) / jnp.maximum(s1 - s0, 1e-12) # fractional position in segment + p0 = g_ext[idx] + p1 = g_ext[idx+1] + g_uni = p0 + w[:, None]*(p1 - p0) # (n_segments+1, 3) + return g_uni[:n_segments] # drop the last duplicate + +def _fit_real_fourier_1d(f: jnp.ndarray, order: int): + """ + f: (N,) samples at t_j = j/N, j=0..N-1 + Returns (a0, sin_cos) where: + a0: scalar + sin_cos: (2*order,) packed [sin1, cos1, sin2, cos2, ...] + Conventions match Curves._set_gamma (sin in odd slots, cos in even). + """ + N = f.shape[0] + F = jnp.fft.fft(f) / N # normalized DFT so that f ≈ sum_k F_k exp(i2πkj/N) + a0 = F[0].real # constant term + # For real f: a_k = 2 Re(F_k), b_k = -2 Im(F_k) + k = jnp.arange(1, order+1) + Fk = F[k] # (order,) + cos_k = 2.0 * jnp.real(Fk) # a_k + sin_k = -2.0 * jnp.imag(Fk) # b_k + # interleave as [sin1, cos1, sin2, cos2, ...] + inter = jnp.empty((2*order,), dtype=f.dtype) + inter = inter.at[0::2].set(sin_k) + inter = inter.at[1::2].set(cos_k) + return a0, inter + +def fit_dofs_from_coils(coils_gamma, order: int, n_segments: int, assume_uniform: bool = False): + """ + coils_gamma: list or array of shape (Ncoils, Mi, 3) with Mi >= 3 (can vary per coil if list) + Each curve must be closed (first≈last). + order: Fourier order K + n_segments: resampling size used by Curves + assume_uniform: if True, skip arclength resampling and only wrap; otherwise resample uniformly. + + Returns: + dofs: jnp.ndarray shape (Ncoils, 3, 2*order+1) + gamma_resampled: jnp.ndarray shape (Ncoils, n_segments, 3) + """ + # make list of arrays + if isinstance(coils_gamma, jnp.ndarray): + # assume all same Mi; wrap to list + coils_list = [coils_gamma[i] for i in range(coils_gamma.shape[0])] + else: + coils_list = list(coils_gamma) + + gammas_uni = [] + for g in coils_list: + g = jnp.asarray(g) + if not assume_uniform: + g_uni = _resample_closed_curve_uniform(g, n_segments) + else: + # ensure periodic and resample by simple wrap if sizes differ + if g.shape[0] != n_segments: + # take uniform subsamples (nearest index) + idx = jnp.floor(jnp.linspace(0, g.shape[0], n_segments, endpoint=False)).astype(int) % g.shape[0] + g_uni = g[idx] + else: + g_uni = g + gammas_uni.append(g_uni) + + gamma_resampled = jnp.stack(gammas_uni, axis=0) # (Ncoils, n_segments, 3) + + # Build dofs + def fit_one(g_uni): + # fit each component + a0x, interx = _fit_real_fourier_1d(g_uni[:,0], order) + a0y, intery = _fit_real_fourier_1d(g_uni[:,1], order) + a0z, interz = _fit_real_fourier_1d(g_uni[:,2], order) + # pack [a0, sin1, cos1, ..., sinK, cosK] per component + coeffs_x = jnp.concatenate([a0x[None], interx], axis=0) + coeffs_y = jnp.concatenate([a0y[None], intery], axis=0) + coeffs_z = jnp.concatenate([a0z[None], interz], axis=0) + # stack to shape (3, 2*order+1) with component axis second in Curves + return jnp.stack([coeffs_x, coeffs_y, coeffs_z], axis=0) + + dofs = jax.vmap(fit_one)(gamma_resampled) # (Ncoils, 3, 2*order+1) + return dofs, gamma_resampled \ No newline at end of file diff --git a/essos/dynamics.py b/essos/dynamics.py index 11ad64b..5adb0e3 100644 --- a/essos/dynamics.py +++ b/essos/dynamics.py @@ -805,7 +805,7 @@ def update_state(state, _): t1=self.maxtime, dt0=self.timestep,#self.maxtime / self.timesteps, y0=initial_condition, - solver=diffrax.Tsit5(), + solver=diffrax.Dopri8(), args=self.args, saveat=SaveAt(ts=self.times), throw=False, @@ -824,7 +824,7 @@ def update_state(state, _): t1=self.maxtime, dt0=self.timestep,#self.maxtime / self.timesteps, y0=initial_condition, - solver=diffrax.Tsit5(), + solver=diffrax.Dopri8(), args=self.args, saveat=SaveAt(ts=self.times), throw=False, @@ -844,7 +844,7 @@ def update_state(state, _): t1=self.maxtime, dt0=self.timestep,#self.maxtime / self.timesteps, y0=initial_condition, - solver=diffrax.Tsit5(), + solver=diffrax.Dopri8(), args=self.args, saveat=SaveAt(ts=self.times), throw=False, diff --git a/essos/fields.py b/essos/fields.py index d9e28ee..b150518 100644 --- a/essos/fields.py +++ b/essos/fields.py @@ -80,15 +80,21 @@ def to_xyz(self, points): class BiotSavart_from_gamma(): - def __init__(self, gamma,gamma_dash,gamma_dashdash, currents): + def __init__(self, gamma,gamma_dash=None,gamma_dashdash=None, currents=None): + if currents is None: + currents = jnp.ones(len(gamma)) + else: + currents = currents self.currents = currents self.gamma = gamma - self.gamma_dash = gamma_dash - #self.gamma_dashdash = gamma_dashdash - self.coils_length=jnp.array([jnp.mean(jnp.linalg.norm(d1gamma, axis=1)) for d1gamma in gamma_dash]) - self.coils_curvature= vmap(compute_curvature)(gamma_dash, gamma_dashdash) self.r_axis=jnp.average(jnp.linalg.norm(jnp.average(gamma,axis=1)[:,0:2],axis=1)) self.z_axis=jnp.average(jnp.average(gamma,axis=1)[:,2]) + if gamma_dash is not None: + self.gamma_dash = gamma_dash + self.coils_length=jnp.array([jnp.mean(jnp.linalg.norm(d1gamma, axis=1)) for d1gamma in gamma_dash]) + if gamma_dashdash is not None: + self.gamma_dashdash = gamma_dashdash + self.coils_curvature= vmap(compute_curvature)(gamma_dash, gamma_dashdash) @partial(jit, static_argnames=['self']) def sqrtg(self, points): diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py new file mode 100644 index 0000000..67490a6 --- /dev/null +++ b/examples/coils_from_nearaxis.py @@ -0,0 +1,115 @@ +import jax.numpy as jnp +from essos.fields import near_axis, BiotSavart_from_gamma, BiotSavart +import plotly.graph_objects as go +from essos.dynamics import Tracing +from essos.coils import fit_dofs_from_coils, Curves, Coils +import matplotlib.pyplot as plt +from time import time +from jax import block_until_ready + +# Initialize Near-Axis field +rc = jnp.array([1, 0.045]) +zs = jnp.array([0, -0.045]) +etabar = -0.9 +nfp = 3 +r_surface = 0.1 +r_coils = 0.4 +ntheta = 51 +ncoils = 6 +tmax = 4000 +nfieldlines = 4 +trace_tolerance = 1e-9 +num_steps = 6000 +order = 2 +current_on_each_coil = 1e5 + +field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp) + +nphi = ntheta * nfp +x_2D_surface, y_2D_surface, z_2D_surface, R_2D_surface = field_nearaxis.get_boundary(r=r_surface, ntheta=ntheta, nphi=nphi) +x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi) + +coils_gamma = jnp.zeros((ncoils * 2 * nfp, ntheta, 3)) +coil_i = 0 +for n in range(2*nfp): + phi_vals = jnp.linspace(2*jnp.pi/(2*nfp)*n, 2*jnp.pi/(2*nfp)*(n+1), ncoils, endpoint=False) + phi_idx = (phi_vals / (2*jnp.pi) * nphi).astype(int) % nphi + for i in phi_idx: + loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) # (ntheta,3) + coils_gamma = coils_gamma.at[coil_i].set(loop) + coil_i += 1 + +def d_dtheta_fft(f_theta): + """ + f_theta: (..., ntheta) periodic samples over θ in [0, 2π) + Returns ∂f/∂θ with same shape. + """ + ntheta = f_theta.shape[-1] + # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π + k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) + Fk = jnp.fft.fft(f_theta, axis=-1) + dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k + return jnp.fft.ifft(dF, axis=-1).real + +# Apply along the θ axis to each Cartesian component +coils_gamma_dash = jnp.stack([ + d_dtheta_fft(coils_gamma[..., 0]), + d_dtheta_fft(coils_gamma[..., 1]), + d_dtheta_fft(coils_gamma[..., 2]), +], axis=-1) # (Ncoils, ntheta, 3) +field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) + + +n_segments = ntheta +dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) +curves = Curves(dofs=dofs, n_segments=n_segments, nfp=nfp, stellsym=True) +coils = Coils(curves=curves, currents=[current_on_each_coil]*ncoils) +field_coils_DOFS = BiotSavart(coils) + + +R0 = jnp.linspace(rc[0]+rc[1], rc[0]+rc[1]+r_surface, nfieldlines) +Z0 = jnp.zeros(nfieldlines) +phi0 = jnp.zeros(nfieldlines) +initial_xyz=jnp.array([R0*jnp.cos(phi0), R0*jnp.sin(phi0), Z0]).T +# time0 = time() +# tracing_coils_gamma = block_until_ready(Tracing(field=field_coils_gamma, model='FieldLineAdaptative', initial_conditions=initial_xyz, +# maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) +# print(f"ESSOS tracing coils_gamma took {time()-time0:.2f} seconds") +# trajectories_coils_gamma = tracing_coils_gamma.trajectories +time0 = time() +tracing_coils_DOFS = block_until_ready(Tracing(field=field_coils_DOFS, model='FieldLineAdaptative', initial_conditions=initial_xyz, + maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) +print(f"ESSOS tracing coils_DOFS took {time()-time0:.2f} seconds") +trajectories_coils_DOFS = tracing_coils_DOFS.trajectories + + +fig = plt.figure(figsize=(9, 5)) +ax1 = fig.add_subplot(121, projection='3d') +ax2 = fig.add_subplot(122) +ax1.plot_surface( + x_2D_surface, y_2D_surface, z_2D_surface, + color='grey', alpha=0.5, linewidth=0, antialiased=True, shade=True) +for coil in coils_gamma: + ax1.plot(coil[:, 0], coil[:, 1], coil[:, 2], color='#b87333', linewidth=2) +for curve_gamma in curves.gamma: + ax1.plot(curve_gamma[:, 0], curve_gamma[:, 1], curve_gamma[:, 2], '--', color='blue', linewidth=1) + +shifts = jnp.array([0]) +# tracing_coils_gamma.plot(ax=ax1, show=False) +# tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) +tracing_coils_DOFS.plot(ax=ax1, show=False) +tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) +for i, shift1 in enumerate(shifts): + phi_idx = int(shift1/ (2*jnp.pi) * nphi) % nphi + ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surface' if i==0 else '_nolegend_') + # ax2.plot(R_2D_coils[:,phi_idx], z_2D_coils[:,phi_idx], color='#b87333', alpha=1.0, linewidth=2, label='Coils' if i==0 else '_nolegend_') +for coil_number in range(ncoils): + R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) + ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils' if coil_number==0 else '_nolegend_') + R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) + ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil from DOFs' if coil_number==0 else '_nolegend_') +ax2.plot([], [], color='k', label='Fieldlines from coils_gamma') +ax2.plot([], [], color='r', label='Fieldlines from coils_DOFS') +ax2.legend() +plt.tight_layout() +plt.show() \ No newline at end of file From a8ceb71fd179c823e20227901de79f05906e06b1 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sat, 6 Sep 2025 01:13:45 -0500 Subject: [PATCH 02/18] Refactor curve resampling functions in coils.py for improved clarity and performance; update example script for near-axis field visualization with new parameters and timing outputs. --- essos/coils.py | 167 ++++++++++++++++---------------- examples/coils_from_nearaxis.py | 55 ++++++----- 2 files changed, 111 insertions(+), 111 deletions(-) diff --git a/essos/coils.py b/essos/coils.py index fac7a25..d6b43df 100644 --- a/essos/coils.py +++ b/essos/coils.py @@ -561,103 +561,100 @@ def apply_symmetries_to_currents(base_currents, nfp, stellsym): currents.append(current) return jnp.array(currents) -# ---------- helpers ---------- -def _resample_closed_curve_uniform(gamma: jnp.ndarray, n_segments: int) -> jnp.ndarray: +def _resample_closed_curve_uniform_one(g: jnp.ndarray, n_segments: int) -> jnp.ndarray: """ - Piecewise-linear arclength reparameterization to n_segments uniform samples in t∈[0,1). - gamma: (M,3) closed curve, M>=3. Returns (n_segments,3). + One-curve arclength resample to n_segments points on t∈[0,1), piecewise linear. + g: (M,3) closed curve (first≈last not required; we close internally). + Returns: (n_segments,3) """ - M = gamma.shape[0] - # close the loop for cumulative length - g_ext = jnp.vstack([gamma, gamma[0:1, :]]) # (M+1, 3) - seg = g_ext[1:] - g_ext[:-1] # (M, 3) - seg_len = jnp.linalg.norm(seg, axis=1) # (M,) - cum = jnp.concatenate([jnp.array([0.0]), jnp.cumsum(seg_len)]) # (M+1,) + # Close the loop + g0 = g[0:1, :] + g_ext = jnp.concatenate([g, g0], axis=0) # (M+1,3) + seg = g_ext[1:] - g_ext[:-1] # (M,3) + seg_len = jnp.linalg.norm(seg, axis=1) # (M,) + cum = jnp.concatenate([jnp.array([0.0]), jnp.cumsum(seg_len)], axis=0) # (M+1,) total = cum[-1] - # target arclengths - s_targets = jnp.linspace(0.0, total, n_segments+1, endpoint=False) # include 0, exclude total - # for each target, find segment index i with cum[i] <= s < cum[i+1] - # jnp.searchsorted is in JAX; side='right' then subtract 1 - idx = jnp.searchsorted(cum, s_targets, side='right') - 1 # (n_segments+1,) - idx = jnp.clip(idx, 0, M-1) # safe + # Uniform targets in arclength (exclude total to avoid duplicate) + s_targets = jnp.linspace(0.0, total, n_segments, endpoint=False) # (n_segments,) + # For each s_t, find i with cum[i] <= s_t < cum[i+1] + idx = jnp.searchsorted(cum, s_targets, side='right') - 1 # (n_segments,) + idx = jnp.clip(idx, 0, seg.shape[0]-1) s0 = cum[idx] s1 = cum[idx+1] - w = (s_targets - s0) / jnp.maximum(s1 - s0, 1e-12) # fractional position in segment + w = (s_targets - s0) / jnp.maximum(s1 - s0, 1e-20) # (n_segments,) p0 = g_ext[idx] p1 = g_ext[idx+1] - g_uni = p0 + w[:, None]*(p1 - p0) # (n_segments+1, 3) - return g_uni[:n_segments] # drop the last duplicate + return p0 + w[:, None] * (p1 - p0) # (n_segments,3) -def _fit_real_fourier_1d(f: jnp.ndarray, order: int): +def _resample_closed_curve_uniform_batch(gammas: jnp.ndarray, n_segments: int) -> jnp.ndarray: """ - f: (N,) samples at t_j = j/N, j=0..N-1 - Returns (a0, sin_cos) where: - a0: scalar - sin_cos: (2*order,) packed [sin1, cos1, sin2, cos2, ...] - Conventions match Curves._set_gamma (sin in odd slots, cos in even). + Batch arclength resample. + gammas: (Ncoils, M, 3) (all curves same M; if not, pre-interp in index space). + Returns: (Ncoils, n_segments, 3) """ - N = f.shape[0] - F = jnp.fft.fft(f) / N # normalized DFT so that f ≈ sum_k F_k exp(i2πkj/N) - a0 = F[0].real # constant term - # For real f: a_k = 2 Re(F_k), b_k = -2 Im(F_k) - k = jnp.arange(1, order+1) - Fk = F[k] # (order,) - cos_k = 2.0 * jnp.real(Fk) # a_k - sin_k = -2.0 * jnp.imag(Fk) # b_k - # interleave as [sin1, cos1, sin2, cos2, ...] - inter = jnp.empty((2*order,), dtype=f.dtype) - inter = inter.at[0::2].set(sin_k) - inter = inter.at[1::2].set(cos_k) - return a0, inter - -def fit_dofs_from_coils(coils_gamma, order: int, n_segments: int, assume_uniform: bool = False): - """ - coils_gamma: list or array of shape (Ncoils, Mi, 3) with Mi >= 3 (can vary per coil if list) - Each curve must be closed (first≈last). - order: Fourier order K - n_segments: resampling size used by Curves - assume_uniform: if True, skip arclength resampling and only wrap; otherwise resample uniformly. + return vmap(_resample_closed_curve_uniform_one, in_axes=(0, None))(gammas, n_segments) +@partial(jit, static_argnames=('order',)) +def _fit_real_fourier_batch(gamma_uni: jnp.ndarray, order: int) -> jnp.ndarray: + """ + gamma_uni: (Ncoils, Nseg, 3), samples at t_j = j/Nseg, j=0..Nseg-1 + Returns dofs: (Ncoils, 3, 2*order+1) with [a0, sin1, cos1, ..., sinK, cosK]. + """ + Ncoils, Nseg, _ = gamma_uni.shape # Nseg is static if n_segments was static upstream + Kmax = min(order, Nseg // 2) # <-- Python int (static) + + g = jnp.transpose(gamma_uni, (0, 2, 1)) # (Ncoils, 3, Nseg) + F = jnp.fft.rfft(g, axis=-1) / Nseg # (Ncoils, 3, Nseg//2 + 1) + + a0 = F[..., 0].real # (Ncoils, 3) + + # Static slice (OK under jit) + Fk = F[..., 1:1 + Kmax] # (Ncoils, 3, Kmax) + + cos_k = 2.0 * Fk.real # (Ncoils, 3, Kmax) + sin_k = -2.0 * Fk.imag # (Ncoils, 3, Kmax) + + # Pad to 'order' if needed (pad width is also static here) + if Kmax < order: + pad = order - Kmax + zshape = (cos_k.shape[0], cos_k.shape[1], pad) + z = jnp.zeros(zshape, dtype=gamma_uni.dtype) + cos_k = jnp.concatenate([cos_k, z], axis=-1) # (Ncoils, 3, order) + sin_k = jnp.concatenate([sin_k, z], axis=-1) # (Ncoils, 3, order) + + inter = jnp.empty((Ncoils, 3, 2*order), dtype=gamma_uni.dtype) + inter = inter.at[..., 0::2].set(sin_k) # sin₁, sin₂, ... + inter = inter.at[..., 1::2].set(cos_k) # cos₁, cos₂, ... + + dofs = jnp.concatenate([a0[..., None], inter], axis=-1) # (Ncoils, 3, 2*order+1) + return dofs + +@partial(jit, static_argnames=('order','n_segments','assume_uniform')) +def fit_dofs_from_coils( + coils_gamma: jnp.ndarray, + order: int, + n_segments: int, + assume_uniform: bool = False, +) -> tuple[jnp.ndarray, jnp.ndarray]: + """ + Fast path (batched + JIT + rFFT). + coils_gamma: (Ncoils, M, 3) JAX array. If M != n_segments and assume_uniform=True, + curves are uniformly subsampled in index space. If assume_uniform=False, + do arclength resampling (slower but accurate). Returns: - dofs: jnp.ndarray shape (Ncoils, 3, 2*order+1) - gamma_resampled: jnp.ndarray shape (Ncoils, n_segments, 3) + dofs: (Ncoils, 3, 2*order+1) + gamma_resampled: (Ncoils, n_segments, 3) """ - # make list of arrays - if isinstance(coils_gamma, jnp.ndarray): - # assume all same Mi; wrap to list - coils_list = [coils_gamma[i] for i in range(coils_gamma.shape[0])] + Ncoils, M, _ = coils_gamma.shape + if assume_uniform: + if M == n_segments: + gamma_uni = coils_gamma + else: + # uniform subsampling in index space (fast) + idx = jnp.floor(jnp.linspace(0, M, n_segments, endpoint=False)).astype(int) % M + gamma_uni = coils_gamma[:, idx, :] else: - coils_list = list(coils_gamma) + gamma_uni = _resample_closed_curve_uniform_batch(coils_gamma, n_segments) # arclength (vmapped) - gammas_uni = [] - for g in coils_list: - g = jnp.asarray(g) - if not assume_uniform: - g_uni = _resample_closed_curve_uniform(g, n_segments) - else: - # ensure periodic and resample by simple wrap if sizes differ - if g.shape[0] != n_segments: - # take uniform subsamples (nearest index) - idx = jnp.floor(jnp.linspace(0, g.shape[0], n_segments, endpoint=False)).astype(int) % g.shape[0] - g_uni = g[idx] - else: - g_uni = g - gammas_uni.append(g_uni) - - gamma_resampled = jnp.stack(gammas_uni, axis=0) # (Ncoils, n_segments, 3) - - # Build dofs - def fit_one(g_uni): - # fit each component - a0x, interx = _fit_real_fourier_1d(g_uni[:,0], order) - a0y, intery = _fit_real_fourier_1d(g_uni[:,1], order) - a0z, interz = _fit_real_fourier_1d(g_uni[:,2], order) - # pack [a0, sin1, cos1, ..., sinK, cosK] per component - coeffs_x = jnp.concatenate([a0x[None], interx], axis=0) - coeffs_y = jnp.concatenate([a0y[None], intery], axis=0) - coeffs_z = jnp.concatenate([a0z[None], interz], axis=0) - # stack to shape (3, 2*order+1) with component axis second in Curves - return jnp.stack([coeffs_x, coeffs_y, coeffs_z], axis=0) - - dofs = jax.vmap(fit_one)(gamma_resampled) # (Ncoils, 3, 2*order+1) - return dofs, gamma_resampled \ No newline at end of file + dofs = _fit_real_fourier_batch(gamma_uni, order) # rFFT-based fit + return dofs, gamma_uni \ No newline at end of file diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index 67490a6..1d12d8e 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -13,13 +13,13 @@ etabar = -0.9 nfp = 3 r_surface = 0.1 -r_coils = 0.4 -ntheta = 51 -ncoils = 6 -tmax = 4000 -nfieldlines = 4 +r_coils = 0.45 +ntheta = 41 +ncoils = 4 +tmax = 2000 +nfieldlines = 3 trace_tolerance = 1e-9 -num_steps = 6000 +num_steps = 3000 order = 2 current_on_each_coil = 1e5 @@ -29,6 +29,7 @@ x_2D_surface, y_2D_surface, z_2D_surface, R_2D_surface = field_nearaxis.get_boundary(r=r_surface, ntheta=ntheta, nphi=nphi) x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi) +time0 = time() coils_gamma = jnp.zeros((ncoils * 2 * nfp, ntheta, 3)) coil_i = 0 for n in range(2*nfp): @@ -38,33 +39,35 @@ loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) # (ntheta,3) coils_gamma = coils_gamma.at[coil_i].set(loop) coil_i += 1 +print(f"Creating coils_gamma took {time()-time0:.2f} seconds") -def d_dtheta_fft(f_theta): - """ - f_theta: (..., ntheta) periodic samples over θ in [0, 2π) - Returns ∂f/∂θ with same shape. - """ - ntheta = f_theta.shape[-1] - # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π - k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) - Fk = jnp.fft.fft(f_theta, axis=-1) - dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k - return jnp.fft.ifft(dF, axis=-1).real - -# Apply along the θ axis to each Cartesian component -coils_gamma_dash = jnp.stack([ - d_dtheta_fft(coils_gamma[..., 0]), - d_dtheta_fft(coils_gamma[..., 1]), - d_dtheta_fft(coils_gamma[..., 2]), -], axis=-1) # (Ncoils, ntheta, 3) -field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) +# def d_dtheta_fft(f_theta): +# """ +# f_theta: (..., ntheta) periodic samples over θ in [0, 2π) +# Returns ∂f/∂θ with same shape. +# """ +# ntheta = f_theta.shape[-1] +# # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π +# k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) +# Fk = jnp.fft.fft(f_theta, axis=-1) +# dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k +# return jnp.fft.ifft(dF, axis=-1).real +# # Apply along the θ axis to each Cartesian component +# coils_gamma_dash = jnp.stack([ +# d_dtheta_fft(coils_gamma[..., 0]), +# d_dtheta_fft(coils_gamma[..., 1]), +# d_dtheta_fft(coils_gamma[..., 2]), +# ], axis=-1) # (Ncoils, ntheta, 3) +# field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) +time0 = time() n_segments = ntheta dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) curves = Curves(dofs=dofs, n_segments=n_segments, nfp=nfp, stellsym=True) coils = Coils(curves=curves, currents=[current_on_each_coil]*ncoils) field_coils_DOFS = BiotSavart(coils) +print(f"Fitting coils took {time()-time0:.2f} seconds") R0 = jnp.linspace(rc[0]+rc[1], rc[0]+rc[1]+r_surface, nfieldlines) @@ -94,7 +97,7 @@ def d_dtheta_fft(f_theta): for curve_gamma in curves.gamma: ax1.plot(curve_gamma[:, 0], curve_gamma[:, 1], curve_gamma[:, 2], '--', color='blue', linewidth=1) -shifts = jnp.array([0]) +shifts = jnp.array([0, jnp.pi/2, jnp.pi, 3*jnp.pi/2]) # tracing_coils_gamma.plot(ax=ax1, show=False) # tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) tracing_coils_DOFS.plot(ax=ax1, show=False) From 7c5ae5174ed9dc4cc57fa0b68278de5673700ba0 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sat, 6 Sep 2025 10:43:14 -0500 Subject: [PATCH 03/18] Update coil parameters and environment settings in coils_from_nearaxis.py for improved performance and clarity --- examples/coils_from_nearaxis.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index 1d12d8e..c4aaddb 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -1,3 +1,6 @@ +import os +number_of_processors_to_use = 6 # Parallelization, this should divide nfieldlines +os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' import jax.numpy as jnp from essos.fields import near_axis, BiotSavart_from_gamma, BiotSavart import plotly.graph_objects as go @@ -13,11 +16,13 @@ etabar = -0.9 nfp = 3 r_surface = 0.1 -r_coils = 0.45 -ntheta = 41 -ncoils = 4 +r_max_poincare = 0.25 +r_coils = 0.4 +ntheta = 51 +ncoils = 10 tmax = 2000 -nfieldlines = 3 +nfieldlines_per_core=1 +nfieldlines = number_of_processors_to_use*nfieldlines_per_core trace_tolerance = 1e-9 num_steps = 3000 order = 2 @@ -25,9 +30,11 @@ field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp) -nphi = ntheta * nfp +nphi = 151 +time0 = time() x_2D_surface, y_2D_surface, z_2D_surface, R_2D_surface = field_nearaxis.get_boundary(r=r_surface, ntheta=ntheta, nphi=nphi) x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi) +print(f"Creating surfaces took {time()-time0:.2f} seconds") time0 = time() coils_gamma = jnp.zeros((ncoils * 2 * nfp, ntheta, 3)) @@ -70,7 +77,7 @@ print(f"Fitting coils took {time()-time0:.2f} seconds") -R0 = jnp.linspace(rc[0]+rc[1], rc[0]+rc[1]+r_surface, nfieldlines) +R0 = jnp.linspace(rc[0]+rc[1], rc[0]+rc[1]+r_max_poincare, nfieldlines) Z0 = jnp.zeros(nfieldlines) phi0 = jnp.zeros(nfieldlines) initial_xyz=jnp.array([R0*jnp.cos(phi0), R0*jnp.sin(phi0), Z0]).T From 84905e79d6e1991e9b3145166b7a9134b3e81a9b Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sat, 6 Sep 2025 11:34:32 -0500 Subject: [PATCH 04/18] Update coil parameters and fitting logic in coils_from_nearaxis.py for improved accuracy and performance --- examples/coils_from_nearaxis.py | 36 ++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index c4aaddb..0c4fcf7 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -1,5 +1,5 @@ import os -number_of_processors_to_use = 6 # Parallelization, this should divide nfieldlines +number_of_processors_to_use = 4 # Parallelization, this should divide nfieldlines os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' import jax.numpy as jnp from essos.fields import near_axis, BiotSavart_from_gamma, BiotSavart @@ -15,18 +15,19 @@ zs = jnp.array([0, -0.045]) etabar = -0.9 nfp = 3 -r_surface = 0.1 -r_max_poincare = 0.25 -r_coils = 0.4 -ntheta = 51 -ncoils = 10 -tmax = 2000 +r_surface = 0.15 +r_max_poincare = 0.2 +r_coils = 0.45 +ntheta = 41 +ncoils = 6 +tmax = 1000 nfieldlines_per_core=1 nfieldlines = number_of_processors_to_use*nfieldlines_per_core -trace_tolerance = 1e-9 +trace_tolerance = 1e-10 num_steps = 3000 -order = 2 +order = 3 current_on_each_coil = 1e5 +n_segments = 60 field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp) @@ -69,10 +70,9 @@ # field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) time0 = time() -n_segments = ntheta -dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) +dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils+1], order=order, n_segments=n_segments, assume_uniform=True) curves = Curves(dofs=dofs, n_segments=n_segments, nfp=nfp, stellsym=True) -coils = Coils(curves=curves, currents=[current_on_each_coil]*ncoils) +coils = Coils(curves=curves, currents=[current_on_each_coil]*(ncoils+1)) field_coils_DOFS = BiotSavart(coils) print(f"Fitting coils took {time()-time0:.2f} seconds") @@ -111,15 +111,15 @@ tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) for i, shift1 in enumerate(shifts): phi_idx = int(shift1/ (2*jnp.pi) * nphi) % nphi - ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surface' if i==0 else '_nolegend_') + ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surfaces' if i==0 else '_nolegend_') # ax2.plot(R_2D_coils[:,phi_idx], z_2D_coils[:,phi_idx], color='#b87333', alpha=1.0, linewidth=2, label='Coils' if i==0 else '_nolegend_') -for coil_number in range(ncoils): +for coil_number in range(ncoils+1): R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) - ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils' if coil_number==0 else '_nolegend_') + ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils from Near-Axis' if coil_number==0 else '_nolegend_') R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) - ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil from DOFs' if coil_number==0 else '_nolegend_') -ax2.plot([], [], color='k', label='Fieldlines from coils_gamma') -ax2.plot([], [], color='r', label='Fieldlines from coils_DOFS') + ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') +# ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') +ax2.plot([], [], color='r', label='Fieldlines from Coils from Fourier') ax2.legend() plt.tight_layout() plt.show() \ No newline at end of file From 7585cd79a6cc0fa317dda1b85f9eec038e9525bc Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Mon, 8 Sep 2025 13:01:29 -0500 Subject: [PATCH 05/18] Started working on phiboozer instead of phi --- examples/coils_from_nearaxis.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index 0c4fcf7..378dc27 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -40,7 +40,28 @@ time0 = time() coils_gamma = jnp.zeros((ncoils * 2 * nfp, ntheta, 3)) coil_i = 0 -for n in range(2*nfp): +ntheta_Fourier = 20 +R_2D, Z_2D, phi0_2D = field_nearaxis.Frenet_to_cylindrical(r=r_coils, ntheta=ntheta_Fourier) +x_2D = R_2D * jnp.cos(phi0_2D) +y_2D = R_2D * jnp.sin(phi0_2D) +x_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) +y_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) +z_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) +for i in range(ntheta_Fourier): + (self,array,point) + x_spline_this_theta = field_nearaxis.interpolated_array_at_point( + jnp.append(field_nearaxis.varphi, 2 * np.pi / field_nearaxis.nfp), + jnp.append(x_2D[i,:], x_2D[i,0]), bc_type='periodic') + y_spline_this_theta = field_nearaxis.interpolated_array_at_point( + jnp.append(field_nearaxis.varphi, 2 * np.pi / field_nearaxis.nfp), + jnp.append(y_2D[i,:], y_2D[i,0]), bc_type='periodic') + z_spline_this_theta = field_nearaxis.interpolated_array_at_point( + jnp.append(field_nearaxis.varphi, 2 * np.pi / field_nearaxis.nfp), + jnp.append(z_2D[i,:], z_2D[i,0]), bc_type='periodic') + x_2D_boozer.at[i].set(x_spline_this_theta) + y_2D_boozer.at[i].set(y_spline_this_theta) + z_2D_boozer.at[i].set(z_spline_this_theta) +for n in range(1):#2*nfp): phi_vals = jnp.linspace(2*jnp.pi/(2*nfp)*n, 2*jnp.pi/(2*nfp)*(n+1), ncoils, endpoint=False) phi_idx = (phi_vals / (2*jnp.pi) * nphi).astype(int) % nphi for i in phi_idx: From 3f98fffc712e8f3e3732d700d958c9583f7a63c1 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Mon, 8 Sep 2025 13:05:00 -0500 Subject: [PATCH 06/18] Same --- examples/coils_from_nearaxis.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index 378dc27..e0530a8 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -48,7 +48,7 @@ y_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) z_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) for i in range(ntheta_Fourier): - (self,array,point) + sp=jnp.interp(jnp.array([point]), jnp.append(self.phi,2*jnp.pi/self.nfp), jnp.append(array,array[0]), period=2*jnp.pi/self.nfp)[0] x_spline_this_theta = field_nearaxis.interpolated_array_at_point( jnp.append(field_nearaxis.varphi, 2 * np.pi / field_nearaxis.nfp), jnp.append(x_2D[i,:], x_2D[i,0]), bc_type='periodic') From ad1d5b1e10e0fc99492e401fafa15834efc53b00 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Mon, 8 Sep 2025 23:33:42 -0500 Subject: [PATCH 07/18] Update near_axis class to include additional parameters and enhance boundary calculations; refactor example script for improved performance and clarity. --- essos/fields.py | 64 ++++++++- examples/coils_from_nearaxis.py | 239 +++++++++++++++++++++----------- 2 files changed, 218 insertions(+), 85 deletions(-) diff --git a/essos/fields.py b/essos/fields.py index b150518..aa4fe4d 100644 --- a/essos/fields.py +++ b/essos/fields.py @@ -356,8 +356,8 @@ def __init__(self, rc=jnp.array([1, 0.1]), zs=jnp.array([0, 0.1]), etabar=1.0, (self.R0, self.Z0, self.sigma, self.elongation, self.B_axis, self.grad_B_axis, self.axis_length, self.iota, self.iotaN, self.G0, self.helicity, self.X1c_untwisted, self.X1s_untwisted, self.Y1s_untwisted, self.Y1c_untwisted, self.normal_R, self.normal_phi, self.normal_z, self.binormal_R, self.binormal_phi, self.binormal_z, - self.L_grad_B, self.inv_L_grad_B, self.torsion, self.curvature) = parameters - + self.L_grad_B, self.inv_L_grad_B, self.torsion, self.curvature, self.varphi, self.R0p, self.Z0p) = parameters + @property def dofs(self): return self._dofs @@ -372,8 +372,8 @@ def dofs(self, new_dofs): (self.R0, self.Z0, self.sigma, self.elongation, self.B_axis, self.grad_B_axis, self.axis_length, self.iota, self.iotaN, self.G0, self.helicity, self.X1c_untwisted, self.X1s_untwisted, self.Y1s_untwisted, self.Y1c_untwisted, self.normal_R, self.normal_z, self.normal_phi, self.binormal_R, self.binormal_z, self.binormal_phi, - self.L_grad_B, self.inv_L_grad_B, self.torsion, self.curvature) = parameters - + self.L_grad_B, self.inv_L_grad_B, self.torsion, self.curvature, self.varphi, self.R0p, self.Z0p) = parameters + @property def x(self): return self._dofs @@ -617,7 +617,30 @@ def body_fun(i, x): return (R0, Z0, sigma, elongation, B_axis, grad_B_axis, axis_length, iota, iotaN, G0, helicity, X1c_untwisted, X1s_untwisted, Y1s_untwisted, Y1c_untwisted, normal_R, normal_phi, normal_z, binormal_R, binormal_phi, binormal_z, - L_grad_B, inv_L_grad_B, torsion, curvature) + L_grad_B, inv_L_grad_B, torsion, curvature, varphi, R0p, Z0p) + + @jit + def phi_of_theta_varphi_func(self, phi_0, r, theta, varphi): + nu0 = self.interpolated_array_at_point(self.varphi-self.phi, phi_0) + X1c = self.interpolated_array_at_point(self.X1c_untwisted, phi_0) + X1s = self.interpolated_array_at_point(self.X1s_untwisted, phi_0) + Y1c = self.interpolated_array_at_point(self.Y1c_untwisted, phi_0) + Y1s = self.interpolated_array_at_point(self.Y1s_untwisted, phi_0) + bR = self.interpolated_array_at_point(self.binormal_R, phi_0) + bZ = self.interpolated_array_at_point(self.binormal_z, phi_0) + nR = self.interpolated_array_at_point(self.normal_R, phi_0) + nZ = self.interpolated_array_at_point(self.normal_z, phi_0) + R0 = self.interpolated_array_at_point(self.R0, phi_0) + R0p = self.interpolated_array_at_point(self.R0p, phi_0) + Z0p = self.interpolated_array_at_point(self.Z0p, phi_0) + nu1c = X1c * (bR * Z0p - bZ * R0p)/R0 + Y1c * (nZ * R0p - nR * Z0p)/R0 + nu1s = X1s * (bR * Z0p - bZ * R0p)/R0 + Y1s * (nZ * R0p - nR * Z0p)/R0 + return phi_0 + nu0 + r * (nu1c * jnp.cos(theta) + nu1s * jnp.sin(theta)) - varphi + + @jit + def phi_of_theta_varphi(self, r, theta, varphi): + residual = partial(self.phi_of_theta_varphi_func, theta=theta, r=r, varphi=varphi) + return lax.custom_root(residual, varphi, newton, lambda g, y: y / g(1.0)) @jit def interpolated_array_at_point(self,array,point): @@ -753,8 +776,35 @@ def compute_RZ(m, n): R_2Dnew, Z_2Dnew = vmap(lambda m: vmap(lambda n: compute_RZ(m, n))(n_vals))(m_vals) R_2Dnew, Z_2Dnew = R_2Dnew.sum(axis=(0, 1)), Z_2Dnew.sum(axis=(0, 1)) - x_2D_plot = R_2Dnew.T * jnp.cos(phi1D) - y_2D_plot = R_2Dnew.T * jnp.sin(phi1D) + x_2D_plot = R_2Dnew.T * jnp.cos(phi2D.T) + y_2D_plot = R_2Dnew.T * jnp.sin(phi2D.T) + z_2D_plot = Z_2Dnew.T + return x_2D_plot, y_2D_plot, z_2D_plot, R_2Dnew.T + + @partial(jit, static_argnames=['ntheta_fourier', 'mpol', 'ntor', 'ntheta', 'nphi']) + def get_boundary_varphi_theta(self, r=0.1, ntheta=30, nphi=120, ntheta_fourier=20, mpol=5, ntor=5): + R_2D, Z_2D, _ = self.Frenet_to_cylindrical(r, ntheta=ntheta_fourier) + RBC, ZBS = self.to_Fourier(R_2D, Z_2D, self.nfp, mpol=mpol, ntor=ntor) + + theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) + varphi1D = jnp.linspace(0, 2 * jnp.pi, nphi) + varphi2D, theta2D = jnp.meshgrid(varphi1D, theta1D, indexing='ij') + + # Convert varphi to phi using phi_of_theta_varphi for each (theta, varphi) + phi2D = vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: self.phi_of_theta_varphi(r, theta, varphi))(theta_row, varphi_row))(theta2D, varphi2D) + + def compute_RZ(m, n): + angle = m * theta2D - n * self.nfp * phi2D + return RBC[n + ntor, m] * jnp.cos(angle), ZBS[n + ntor, m] * jnp.sin(angle) + + m_vals = jnp.arange(mpol + 1) + n_vals = jnp.arange(-ntor, ntor + 1) + + R_2Dnew, Z_2Dnew = vmap(lambda m: vmap(lambda n: compute_RZ(m, n))(n_vals))(m_vals) + R_2Dnew, Z_2Dnew = R_2Dnew.sum(axis=(0, 1)), Z_2Dnew.sum(axis=(0, 1)) + + x_2D_plot = R_2Dnew.T * jnp.cos(phi2D.T) + y_2D_plot = R_2Dnew.T * jnp.sin(phi2D.T) z_2D_plot = Z_2Dnew.T return x_2D_plot, y_2D_plot, z_2D_plot, R_2Dnew.T diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index e0530a8..cc742eb 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -1,5 +1,5 @@ import os -number_of_processors_to_use = 4 # Parallelization, this should divide nfieldlines +number_of_processors_to_use = 1 # Parallelization, this should divide nfieldlines os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' import jax.numpy as jnp from essos.fields import near_axis, BiotSavart_from_gamma, BiotSavart @@ -15,85 +15,80 @@ zs = jnp.array([0, -0.045]) etabar = -0.9 nfp = 3 -r_surface = 0.15 -r_max_poincare = 0.2 -r_coils = 0.45 +nphi = 51 +r_surface = 0.1 +r_max_poincare = 0.05 +r_coils = 0.5 ntheta = 41 ncoils = 6 -tmax = 1000 +tmax = 5000 nfieldlines_per_core=1 nfieldlines = number_of_processors_to_use*nfieldlines_per_core trace_tolerance = 1e-10 -num_steps = 3000 -order = 3 +num_steps = 7*tmax +order = 8 current_on_each_coil = 1e5 -n_segments = 60 +n_segments = 61 -field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp) +field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp, nphi=nphi) nphi = 151 time0 = time() x_2D_surface, y_2D_surface, z_2D_surface, R_2D_surface = field_nearaxis.get_boundary(r=r_surface, ntheta=ntheta, nphi=nphi) -x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi) +x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary_varphi_theta(r=r_coils, ntheta=ntheta, nphi=nphi) print(f"Creating surfaces took {time()-time0:.2f} seconds") +# import matplotlib.pyplot as plt +# from jax import vmap +# theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) +# varphi1D = jnp.linspace(0, 2 * jnp.pi, nphi) +# varphi2D, theta2D = jnp.meshgrid(varphi1D, theta1D, indexing='ij') +# phi2D = vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: field_nearaxis.phi_of_theta_varphi(r_coils, theta, varphi))(theta_row, varphi_row))(theta2D, varphi2D) +# plt.plot(varphi2D[:,ntheta // 2], label='varphi') +# plt.plot(phi2D[:,ntheta // 2], label='phi') +# plt.legend() +# plt.title('Conversion from varphi to phi at theta=0') +# plt.grid() +# plt.show() +# exit() + time0 = time() coils_gamma = jnp.zeros((ncoils * 2 * nfp, ntheta, 3)) coil_i = 0 -ntheta_Fourier = 20 -R_2D, Z_2D, phi0_2D = field_nearaxis.Frenet_to_cylindrical(r=r_coils, ntheta=ntheta_Fourier) -x_2D = R_2D * jnp.cos(phi0_2D) -y_2D = R_2D * jnp.sin(phi0_2D) -x_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) -y_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) -z_2D_boozer = jnp.zeros((ntheta_Fourier, field_nearaxis.nphi)) -for i in range(ntheta_Fourier): - sp=jnp.interp(jnp.array([point]), jnp.append(self.phi,2*jnp.pi/self.nfp), jnp.append(array,array[0]), period=2*jnp.pi/self.nfp)[0] - x_spline_this_theta = field_nearaxis.interpolated_array_at_point( - jnp.append(field_nearaxis.varphi, 2 * np.pi / field_nearaxis.nfp), - jnp.append(x_2D[i,:], x_2D[i,0]), bc_type='periodic') - y_spline_this_theta = field_nearaxis.interpolated_array_at_point( - jnp.append(field_nearaxis.varphi, 2 * np.pi / field_nearaxis.nfp), - jnp.append(y_2D[i,:], y_2D[i,0]), bc_type='periodic') - z_spline_this_theta = field_nearaxis.interpolated_array_at_point( - jnp.append(field_nearaxis.varphi, 2 * np.pi / field_nearaxis.nfp), - jnp.append(z_2D[i,:], z_2D[i,0]), bc_type='periodic') - x_2D_boozer.at[i].set(x_spline_this_theta) - y_2D_boozer.at[i].set(y_spline_this_theta) - z_2D_boozer.at[i].set(z_spline_this_theta) -for n in range(1):#2*nfp): - phi_vals = jnp.linspace(2*jnp.pi/(2*nfp)*n, 2*jnp.pi/(2*nfp)*(n+1), ncoils, endpoint=False) +for n in range(2*nfp): + phi_vals = (jnp.arange(ncoils) + 0.5) * (2 * jnp.pi) / ((2) * nfp * ncoils) + 2*jnp.pi/(2*nfp)*n + # phi_vals = jnp.linspace(2*jnp.pi/(2*nfp)*n, 2*jnp.pi/(2*nfp)*(n+1), ncoils, endpoint=False) phi_idx = (phi_vals / (2*jnp.pi) * nphi).astype(int) % nphi for i in phi_idx: loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) # (ntheta,3) coils_gamma = coils_gamma.at[coil_i].set(loop) coil_i += 1 -print(f"Creating coils_gamma took {time()-time0:.2f} seconds") +print(f"Creating coils_gamma took {time()-time0:.2f} seconds for {ncoils*2*nfp} coils") -# def d_dtheta_fft(f_theta): -# """ -# f_theta: (..., ntheta) periodic samples over θ in [0, 2π) -# Returns ∂f/∂θ with same shape. -# """ -# ntheta = f_theta.shape[-1] -# # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π -# k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) -# Fk = jnp.fft.fft(f_theta, axis=-1) -# dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k -# return jnp.fft.ifft(dF, axis=-1).real - -# # Apply along the θ axis to each Cartesian component -# coils_gamma_dash = jnp.stack([ -# d_dtheta_fft(coils_gamma[..., 0]), -# d_dtheta_fft(coils_gamma[..., 1]), -# d_dtheta_fft(coils_gamma[..., 2]), -# ], axis=-1) # (Ncoils, ntheta, 3) -# field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) +def d_dtheta_fft(f_theta): + """ + f_theta: (..., ntheta) periodic samples over θ in [0, 2π) + Returns ∂f/∂θ with same shape. + """ + ntheta = f_theta.shape[-1] + # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π + k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) + Fk = jnp.fft.fft(f_theta, axis=-1) + dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k + return jnp.fft.ifft(dF, axis=-1).real * (2*jnp.pi) + +# Apply along the θ axis to each Cartesian component +coils_gamma_dash = jnp.stack([ + d_dtheta_fft(coils_gamma[..., 0]), + d_dtheta_fft(coils_gamma[..., 1]), + d_dtheta_fft(coils_gamma[..., 2]), +], axis=-1) # (Ncoils, ntheta, 3) +field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) time0 = time() -dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils+1], order=order, n_segments=n_segments, assume_uniform=True) +dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) curves = Curves(dofs=dofs, n_segments=n_segments, nfp=nfp, stellsym=True) -coils = Coils(curves=curves, currents=[current_on_each_coil]*(ncoils+1)) +coils = Coils(curves=curves, currents=[current_on_each_coil]*(ncoils)) field_coils_DOFS = BiotSavart(coils) print(f"Fitting coils took {time()-time0:.2f} seconds") @@ -102,45 +97,133 @@ Z0 = jnp.zeros(nfieldlines) phi0 = jnp.zeros(nfieldlines) initial_xyz=jnp.array([R0*jnp.cos(phi0), R0*jnp.sin(phi0), Z0]).T -# time0 = time() -# tracing_coils_gamma = block_until_ready(Tracing(field=field_coils_gamma, model='FieldLineAdaptative', initial_conditions=initial_xyz, -# maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) -# print(f"ESSOS tracing coils_gamma took {time()-time0:.2f} seconds") -# trajectories_coils_gamma = tracing_coils_gamma.trajectories +time0 = time() +tracing_coils_gamma = block_until_ready(Tracing(field=field_coils_gamma, model='FieldLineAdaptative', initial_conditions=initial_xyz, + maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) +print(f"ESSOS tracing coils_gamma took {time()-time0:.2f} seconds") +trajectories_coils_gamma = tracing_coils_gamma.trajectories time0 = time() tracing_coils_DOFS = block_until_ready(Tracing(field=field_coils_DOFS, model='FieldLineAdaptative', initial_conditions=initial_xyz, maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) print(f"ESSOS tracing coils_DOFS took {time()-time0:.2f} seconds") trajectories_coils_DOFS = tracing_coils_DOFS.trajectories +# Plot 3D surface and coils with Plotly +fig_plotly = go.Figure() + +# Add surface +fig_plotly.add_surface( + x=x_2D_surface, + y=y_2D_surface, + z=z_2D_surface, + opacity=0.5, + colorscale='Greys', + showscale=False, + name='Surface' +) -fig = plt.figure(figsize=(9, 5)) -ax1 = fig.add_subplot(121, projection='3d') -ax2 = fig.add_subplot(122) -ax1.plot_surface( - x_2D_surface, y_2D_surface, z_2D_surface, - color='grey', alpha=0.5, linewidth=0, antialiased=True, shade=True) +# Add coils from near-axis for coil in coils_gamma: - ax1.plot(coil[:, 0], coil[:, 1], coil[:, 2], color='#b87333', linewidth=2) + fig_plotly.add_trace(go.Scatter3d( + x=coil[:, 0], + y=coil[:, 1], + z=coil[:, 2], + mode='lines', + line=dict(color='#b87333', width=5), + name='Coil (Near-Axis)' + )) + +# Add fitted curves for curve_gamma in curves.gamma: - ax1.plot(curve_gamma[:, 0], curve_gamma[:, 1], curve_gamma[:, 2], '--', color='blue', linewidth=1) + fig_plotly.add_trace(go.Scatter3d( + x=curve_gamma[:, 0], + y=curve_gamma[:, 1], + z=curve_gamma[:, 2], + mode='lines', + line=dict(color='blue', width=2, dash='dash'), + name='Fitted Curve' + )) -shifts = jnp.array([0, jnp.pi/2, jnp.pi, 3*jnp.pi/2]) -# tracing_coils_gamma.plot(ax=ax1, show=False) -# tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) -tracing_coils_DOFS.plot(ax=ax1, show=False) -tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) +# Add fieldline traces +for traj in trajectories_coils_gamma: + fig_plotly.add_trace(go.Scatter3d( + x=traj[:, 0], + y=traj[:, 1], + z=traj[:, 2], + mode='lines', + line=dict(color='black', width=2), + name='Fieldline' + )) + +# Add fieldline traces from fitted coils +for traj in trajectories_coils_DOFS: + fig_plotly.add_trace(go.Scatter3d( + x=traj[:, 0], + y=traj[:, 1], + z=traj[:, 2], + mode='lines', + line=dict(color='red', width=1), + name='Fieldline (Fitted Coils)' + )) + +fig_plotly.update_layout( + scene=dict( + xaxis_title='X', + yaxis_title='Y', + zaxis_title='Z', + aspectmode='data' + ), + title='3D Surface, Coils, and Fieldlines (Plotly)' +) +fig_plotly.show() + +# Now plot the 2D Poincare plot with Matplotlib (ax2 only) +fig2 = plt.figure(figsize=(6, 5)) +ax2 = fig2.add_subplot(111) +shifts = jnp.array([0, jnp.pi]) +tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k', s=0.05) +tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r', s=0.05) for i, shift1 in enumerate(shifts): phi_idx = int(shift1/ (2*jnp.pi) * nphi) % nphi - ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surfaces' if i==0 else '_nolegend_') - # ax2.plot(R_2D_coils[:,phi_idx], z_2D_coils[:,phi_idx], color='#b87333', alpha=1.0, linewidth=2, label='Coils' if i==0 else '_nolegend_') -for coil_number in range(ncoils+1): + ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surfaces' if i==0 else '_nolegend_') +for coil_number in range(ncoils): R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils from Near-Axis' if coil_number==0 else '_nolegend_') R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') -# ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') +ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') ax2.plot([], [], color='r', label='Fieldlines from Coils from Fourier') ax2.legend() plt.tight_layout() -plt.show() \ No newline at end of file +plt.show() + +# fig = plt.figure(figsize=(9, 5)) +# ax1 = fig.add_subplot(121, projection='3d') +# ax2 = fig.add_subplot(122) +# ax1.plot_surface( +# x_2D_surface, y_2D_surface, z_2D_surface, +# color='grey', alpha=0.5, linewidth=0, antialiased=True, shade=True) +# for coil in coils_gamma: +# ax1.plot(coil[:, 0], coil[:, 1], coil[:, 2], color='#b87333', linewidth=2) +# for curve_gamma in curves.gamma: +# ax1.plot(curve_gamma[:, 0], curve_gamma[:, 1], curve_gamma[:, 2], '--', color='blue', linewidth=1) + +# shifts = jnp.array([0, jnp.pi])#, jnp.pi/2, 3*jnp.pi/2]) +# tracing_coils_gamma.plot(ax=ax1, show=False) +# tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k', s=0.05)#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) +# # tracing_coils_DOFS.plot(ax=ax1, show=False) +# # tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) +# for i, shift1 in enumerate(shifts): +# phi_idx = int(shift1/ (2*jnp.pi) * nphi) % nphi +# ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surfaces' if i==0 else '_nolegend_') +# # ax2.plot(R_2D_coils[:,phi_idx], z_2D_coils[:,phi_idx], '--', color="#5633b8", alpha=1.0, linewidth=2, label='Coils' if i==0 else '_nolegend_') +# for coil_number in range(ncoils): +# R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) +# ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils from Near-Axis' if coil_number==0 else '_nolegend_') +# # R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) +# # ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') +# ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') +# # ax2.plot([], [], color='r', label='Fieldlines from Coils from Fourier') +# ax2.legend() +# plt.tight_layout() +# plt.show() \ No newline at end of file From c518db69f632bb47e1145741a8f9abe8ca80b8c3 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Wed, 10 Sep 2025 04:47:12 -0500 Subject: [PATCH 08/18] Computing phi off axis from varphi off axis and phi on axis --- essos/coils.py | 4 +- essos/fields.py | 52 ++++++-------- examples/coils_from_nearaxis.py | 123 +++++++++++++++++--------------- 3 files changed, 88 insertions(+), 91 deletions(-) diff --git a/essos/coils.py b/essos/coils.py index d6b43df..7782fe8 100644 --- a/essos/coils.py +++ b/essos/coils.py @@ -518,8 +518,8 @@ def RotatedCurve(curve, phi, flip): if flip: rotmat = rotmat @ jnp.array( [[1, 0, 0], - [0, -1, 0], - [0, 0, -1]]) + [0, -1, 0], + [0, 0, -1]]) return curve @ rotmat @partial(jit, static_argnames=['nfp', 'stellsym']) diff --git a/essos/fields.py b/essos/fields.py index aa4fe4d..e0a7290 100644 --- a/essos/fields.py +++ b/essos/fields.py @@ -640,7 +640,11 @@ def phi_of_theta_varphi_func(self, phi_0, r, theta, varphi): @jit def phi_of_theta_varphi(self, r, theta, varphi): residual = partial(self.phi_of_theta_varphi_func, theta=theta, r=r, varphi=varphi) - return lax.custom_root(residual, varphi, newton, lambda g, y: y / g(1.0)) + phi_on_axis = lax.custom_root(residual, varphi, newton, lambda g, y: y / g(1.0)) + X_at_this_theta = r * (self.X1c_untwisted * jnp.cos(theta) + self.X1s_untwisted * jnp.sin(theta)) + Y_at_this_theta = r * (self.Y1c_untwisted * jnp.cos(theta) + self.Y1s_untwisted * jnp.sin(theta)) + _, _, phi_off_axis = self.Frenet_to_cylindrical_1_point(phi_on_axis, X_at_this_theta, Y_at_this_theta) + return phi_off_axis + 2 * jnp.pi * (phi_off_axis < 0) - 2 * jnp.pi * (phi_off_axis > 2 * jnp.pi) @jit def interpolated_array_at_point(self,array,point): @@ -756,43 +760,27 @@ def compute_RBC_ZBS(m, n): RBC = RBC.at[:ntor, 0].set(0) return RBC, ZBS - - @partial(jit, static_argnames=['ntheta_fourier', 'mpol', 'ntor', 'ntheta', 'nphi']) - def get_boundary(self, r=0.1, ntheta=30, nphi=120, ntheta_fourier=20, mpol=5, ntor=5): + @partial(jit, static_argnames=['ntheta_fourier', 'mpol', 'ntor', 'ntheta', 'nphi', 'phi_is_varphi']) + def get_boundary(self, r=0.1, ntheta=30, nphi=120, ntheta_fourier=20, mpol=5, ntor=5, phi_is_varphi=False): R_2D, Z_2D, _ = self.Frenet_to_cylindrical(r, ntheta=ntheta_fourier) RBC, ZBS = self.to_Fourier(R_2D, Z_2D, self.nfp, mpol=mpol, ntor=ntor) theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) - phi1D = jnp.linspace(0, 2 * jnp.pi, nphi) + phi1D = jax.lax.cond( + phi_is_varphi, + lambda _: jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False), + lambda _: jnp.linspace(0, 2 * jnp.pi, nphi), + operand=None + ) phi2D, theta2D = jnp.meshgrid(phi1D, theta1D, indexing='ij') - - def compute_RZ(m, n): - angle = m * theta2D - n * self.nfp * phi2D - return RBC[n + ntor, m] * jnp.cos(angle), ZBS[n + ntor, m] * jnp.sin(angle) - - m_vals = jnp.arange(mpol + 1) - n_vals = jnp.arange(-ntor, ntor + 1) - - R_2Dnew, Z_2Dnew = vmap(lambda m: vmap(lambda n: compute_RZ(m, n))(n_vals))(m_vals) - R_2Dnew, Z_2Dnew = R_2Dnew.sum(axis=(0, 1)), Z_2Dnew.sum(axis=(0, 1)) - - x_2D_plot = R_2Dnew.T * jnp.cos(phi2D.T) - y_2D_plot = R_2Dnew.T * jnp.sin(phi2D.T) - z_2D_plot = Z_2Dnew.T - return x_2D_plot, y_2D_plot, z_2D_plot, R_2Dnew.T - - @partial(jit, static_argnames=['ntheta_fourier', 'mpol', 'ntor', 'ntheta', 'nphi']) - def get_boundary_varphi_theta(self, r=0.1, ntheta=30, nphi=120, ntheta_fourier=20, mpol=5, ntor=5): - R_2D, Z_2D, _ = self.Frenet_to_cylindrical(r, ntheta=ntheta_fourier) - RBC, ZBS = self.to_Fourier(R_2D, Z_2D, self.nfp, mpol=mpol, ntor=ntor) - - theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) - varphi1D = jnp.linspace(0, 2 * jnp.pi, nphi) - varphi2D, theta2D = jnp.meshgrid(varphi1D, theta1D, indexing='ij') - # Convert varphi to phi using phi_of_theta_varphi for each (theta, varphi) - phi2D = vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: self.phi_of_theta_varphi(r, theta, varphi))(theta_row, varphi_row))(theta2D, varphi2D) - + phi2D = jax.lax.cond( + phi_is_varphi, + lambda _: vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: self.phi_of_theta_varphi(r, theta, varphi))(theta_row, varphi_row))(theta2D, phi2D), + lambda _: phi2D, + operand=None + ) + def compute_RZ(m, n): angle = m * theta2D - n * self.nfp * phi2D return RBC[n + ntor, m] * jnp.cos(angle), ZBS[n + ntor, m] * jnp.sin(angle) diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index cc742eb..2352856 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -1,5 +1,5 @@ import os -number_of_processors_to_use = 1 # Parallelization, this should divide nfieldlines +number_of_processors_to_use = 4 # Parallelization, this should divide nfieldlines os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' import jax.numpy as jnp from essos.fields import near_axis, BiotSavart_from_gamma, BiotSavart @@ -17,27 +17,21 @@ nfp = 3 nphi = 51 r_surface = 0.1 -r_max_poincare = 0.05 +r_max_poincare = -0.2 r_coils = 0.5 ntheta = 41 ncoils = 6 -tmax = 5000 +tmax = 1500 nfieldlines_per_core=1 nfieldlines = number_of_processors_to_use*nfieldlines_per_core trace_tolerance = 1e-10 -num_steps = 7*tmax -order = 8 +num_steps = 5*tmax +order = 4 current_on_each_coil = 1e5 n_segments = 61 field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp, nphi=nphi) -nphi = 151 -time0 = time() -x_2D_surface, y_2D_surface, z_2D_surface, R_2D_surface = field_nearaxis.get_boundary(r=r_surface, ntheta=ntheta, nphi=nphi) -x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary_varphi_theta(r=r_coils, ntheta=ntheta, nphi=nphi) -print(f"Creating surfaces took {time()-time0:.2f} seconds") - # import matplotlib.pyplot as plt # from jax import vmap # theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) @@ -52,43 +46,51 @@ # plt.show() # exit() +nphi = ncoils * 2 * nfp +time0 = time() +x_2D_surface, y_2D_surface, z_2D_surface, R_2D_surface = field_nearaxis.get_boundary(r=r_surface, ntheta=ntheta, nphi=nphi) +x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi, phi_is_varphi=True) +print(f"Creating surfaces took {time()-time0:.2f} seconds") + time0 = time() coils_gamma = jnp.zeros((ncoils * 2 * nfp, ntheta, 3)) coil_i = 0 for n in range(2*nfp): phi_vals = (jnp.arange(ncoils) + 0.5) * (2 * jnp.pi) / ((2) * nfp * ncoils) + 2*jnp.pi/(2*nfp)*n - # phi_vals = jnp.linspace(2*jnp.pi/(2*nfp)*n, 2*jnp.pi/(2*nfp)*(n+1), ncoils, endpoint=False) + # phi_vals = jnp.linspace(2*jnp.pi/(2*nfp)*n + 2*jnp.pi/(2*nfp)/ncoils/2, 2*jnp.pi/(2*nfp)*(n+1) + 2*jnp.pi/(2*nfp)/ncoils/2, ncoils, endpoint=False) phi_idx = (phi_vals / (2*jnp.pi) * nphi).astype(int) % nphi + # print(f"n={n}, phi_vals={phi_vals}, phi_idx={phi_idx}") for i in phi_idx: loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) # (ntheta,3) coils_gamma = coils_gamma.at[coil_i].set(loop) coil_i += 1 print(f"Creating coils_gamma took {time()-time0:.2f} seconds for {ncoils*2*nfp} coils") +# exit() -def d_dtheta_fft(f_theta): - """ - f_theta: (..., ntheta) periodic samples over θ in [0, 2π) - Returns ∂f/∂θ with same shape. - """ - ntheta = f_theta.shape[-1] - # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π - k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) - Fk = jnp.fft.fft(f_theta, axis=-1) - dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k - return jnp.fft.ifft(dF, axis=-1).real * (2*jnp.pi) - -# Apply along the θ axis to each Cartesian component -coils_gamma_dash = jnp.stack([ - d_dtheta_fft(coils_gamma[..., 0]), - d_dtheta_fft(coils_gamma[..., 1]), - d_dtheta_fft(coils_gamma[..., 2]), -], axis=-1) # (Ncoils, ntheta, 3) -field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) +# def d_dtheta_fft(f_theta): +# """ +# f_theta: (..., ntheta) periodic samples over θ in [0, 2π) +# Returns ∂f/∂θ with same shape. +# """ +# ntheta = f_theta.shape[-1] +# # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π +# k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) +# Fk = jnp.fft.fft(f_theta, axis=-1) +# dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k +# return jnp.fft.ifft(dF, axis=-1).real * (2*jnp.pi) + +# # Apply along the θ axis to each Cartesian component +# coils_gamma_dash = jnp.stack([ +# d_dtheta_fft(coils_gamma[..., 0]), +# d_dtheta_fft(coils_gamma[..., 1]), +# d_dtheta_fft(coils_gamma[..., 2]), +# ], axis=-1) # (Ncoils, ntheta, 3) +# field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) time0 = time() dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) curves = Curves(dofs=dofs, n_segments=n_segments, nfp=nfp, stellsym=True) -coils = Coils(curves=curves, currents=[current_on_each_coil]*(ncoils)) +coils = Coils(curves=curves, currents=[-current_on_each_coil]*(ncoils)) field_coils_DOFS = BiotSavart(coils) print(f"Fitting coils took {time()-time0:.2f} seconds") @@ -97,11 +99,11 @@ def d_dtheta_fft(f_theta): Z0 = jnp.zeros(nfieldlines) phi0 = jnp.zeros(nfieldlines) initial_xyz=jnp.array([R0*jnp.cos(phi0), R0*jnp.sin(phi0), Z0]).T -time0 = time() -tracing_coils_gamma = block_until_ready(Tracing(field=field_coils_gamma, model='FieldLineAdaptative', initial_conditions=initial_xyz, - maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) -print(f"ESSOS tracing coils_gamma took {time()-time0:.2f} seconds") -trajectories_coils_gamma = tracing_coils_gamma.trajectories +# time0 = time() +# tracing_coils_gamma = block_until_ready(Tracing(field=field_coils_gamma, model='FieldLineAdaptative', initial_conditions=initial_xyz, +# maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) +# print(f"ESSOS tracing coils_gamma took {time()-time0:.2f} seconds") +# trajectories_coils_gamma = tracing_coils_gamma.trajectories time0 = time() tracing_coils_DOFS = block_until_ready(Tracing(field=field_coils_DOFS, model='FieldLineAdaptative', initial_conditions=initial_xyz, maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) @@ -116,10 +118,11 @@ def d_dtheta_fft(f_theta): x=x_2D_surface, y=y_2D_surface, z=z_2D_surface, - opacity=0.5, + opacity=0.8, colorscale='Greys', showscale=False, - name='Surface' + name='Surface', + showlegend=True ) # Add coils from near-axis @@ -129,31 +132,36 @@ def d_dtheta_fft(f_theta): y=coil[:, 1], z=coil[:, 2], mode='lines', - line=dict(color='#b87333', width=5), - name='Coil (Near-Axis)' + line=dict(width=10, color='#b87333'), + name='Coil (Near-Axis)', + showlegend=False if coil is not coils_gamma[0] else True )) # Add fitted curves -for curve_gamma in curves.gamma: +colors = ['blue', 'green', 'orange', 'purple', 'cyan', 'magenta', 'brown', 'olive', 'pink', 'teal'] +for i, curve_gamma in enumerate(curves.gamma): + color = colors[(i // ncoils) % len(colors)] fig_plotly.add_trace(go.Scatter3d( x=curve_gamma[:, 0], y=curve_gamma[:, 1], z=curve_gamma[:, 2], mode='lines', - line=dict(color='blue', width=2, dash='dash'), - name='Fitted Curve' + line=dict(width=10, color=color), + name=f'Fitted Curve Group {i // ncoils + 1}', + showlegend=(i % ncoils == 0) )) -# Add fieldline traces -for traj in trajectories_coils_gamma: - fig_plotly.add_trace(go.Scatter3d( - x=traj[:, 0], - y=traj[:, 1], - z=traj[:, 2], - mode='lines', - line=dict(color='black', width=2), - name='Fieldline' - )) +# # Add fieldline traces +# for traj in trajectories_coils_gamma: +# fig_plotly.add_trace(go.Scatter3d( +# x=traj[:, 0], +# y=traj[:, 1], +# z=traj[:, 2], +# mode='lines', +# line=dict(color='black', width=2), +# name='Fieldline', +# showlegend=False if traj is not trajectories_coils_gamma[0] else True +# )) # Add fieldline traces from fitted coils for traj in trajectories_coils_DOFS: @@ -163,7 +171,8 @@ def d_dtheta_fft(f_theta): z=traj[:, 2], mode='lines', line=dict(color='red', width=1), - name='Fieldline (Fitted Coils)' + name='Fieldline (Fitted Coils)', + showlegend=False if traj is not trajectories_coils_DOFS[0] else True )) fig_plotly.update_layout( @@ -181,7 +190,7 @@ def d_dtheta_fft(f_theta): fig2 = plt.figure(figsize=(6, 5)) ax2 = fig2.add_subplot(111) shifts = jnp.array([0, jnp.pi]) -tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k', s=0.05) +# tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k', s=0.05) tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r', s=0.05) for i, shift1 in enumerate(shifts): phi_idx = int(shift1/ (2*jnp.pi) * nphi) % nphi @@ -191,7 +200,7 @@ def d_dtheta_fft(f_theta): ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils from Near-Axis' if coil_number==0 else '_nolegend_') R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') -ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') +# ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') ax2.plot([], [], color='r', label='Fieldlines from Coils from Fourier') ax2.legend() plt.tight_layout() From caefce74f76bc9959b26fdcb73f9ea79f4b87685 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Wed, 10 Sep 2025 16:42:37 -0500 Subject: [PATCH 09/18] Add new script for Boozer transformation and visualization; include output file generation --- examples/coils_from_BOOZXFORM.py | 162 ++++++++++++++++++ ...andremanPaul2021_QA_reactorScale_lowres.nc | Bin 0 -> 401596 bytes 2 files changed, 162 insertions(+) create mode 100644 examples/coils_from_BOOZXFORM.py create mode 100644 examples/output_files/boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc diff --git a/examples/coils_from_BOOZXFORM.py b/examples/coils_from_BOOZXFORM.py new file mode 100644 index 0000000..66574ef --- /dev/null +++ b/examples/coils_from_BOOZXFORM.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python3.11 +import os +import numpy as np +from time import time +import booz_xform as bx +import plotly.graph_objects as go +from essos.dynamics import Tracing +from essos.fields import BiotSavart +from simsopt.mhd import Vmec, Boozer +from essos.coils import fit_dofs_from_coils, Curves, Coils + +input_dir = os.path.join(os.path.dirname(__file__), 'input_files') +output_dir = os.path.join(os.path.dirname(__file__), 'output_files') +os.makedirs(output_dir, exist_ok=True) + +wout_filename = os.path.join(input_dir, 'wout_LandremanPaul2021_QA_reactorScale_lowres.nc') +boozmn_filename = os.path.join(output_dir, 'boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc') + +ncoils = 6 + +# if boozmn_filename.split('/')[-1] in os.listdir(output_dir): +# print(f"File {boozmn_filename} already exists, skipping computation") +# b = bx.Booz_xform() +# b.read_boozmn(boozmn_filename) +# else: +print(f"Computing {boozmn_filename}") +vmec = Vmec(wout_filename, verbose=False) +b = Boozer(vmec, mpol=64, ntor=64, verbose=True) +b.register([1]) +b.run() +b.bx.write_boozmn(boozmn_filename) +b = b.bx + +# bx.wireplot(b1, refine=6, orig=True).show() + +js = None +ntheta = 30 +# nphi = 80 +nphi = ncoils * 2 * b.nfp +surf = True +orig = True + +theta1D = np.linspace(0, 2 * np.pi, ntheta) +phi1D = np.linspace(0, 2 * np.pi, nphi) +varphi, theta = np.meshgrid(phi1D, theta1D) + +R = np.zeros_like(theta) +Z = np.zeros_like(theta) +nu = np.zeros_like(theta) + +for jmn in range(b.mnboz): + m = b.xm_b[jmn] + n = b.xn_b[jmn] + angle = m * theta - n * varphi + sinangle = np.sin(angle) + cosangle = np.cos(angle) + R += b.rmnc_b[jmn, js] * cosangle + Z += b.zmns_b[jmn, js] * sinangle + nu += b.numns_b[jmn, js] * sinangle + +# Following the sign convention in the code, to convert from the +# Boozer toroidal angle to the standard toroidal angle, we +# *subtract* nu: +phi = varphi - nu +X = R * np.cos(phi) +Y = R * np.sin(phi) + +# for i in phi_idx: +# loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) # (ntheta,3) +# coils_gamma = coils_gamma.at[coil_i].set(loop) +# coil_i += 1 + +time0 = time() +dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) +curves = Curves(dofs=dofs, n_segments=n_segments, nfp=nfp, stellsym=True) +coils = Coils(curves=curves, currents=[-current_on_each_coil]*(ncoils)) +field_coils_DOFS = BiotSavart(coils) +print(f"Fitting coils took {time()-time0:.2f} seconds") + + + +exit() + +color = '#FF9999' +# Hack to get a uniform surface color: +colorscale = [[0, color], [1, color]] + +Rsurf = R +Zsurf = Z +Xsurf = Rsurf * np.cos(phi) +Ysurf = Rsurf * np.sin(phi) +data = [go.Surface(x=Xsurf, y=Ysurf, z=Zsurf, + colorscale=colorscale, + opacity=0.5, + showscale=False, # Turns off colorbar + lighting={"specular": 0.3, "diffuse":0.9})] + +line_width = 4 + +line_marker = dict(color='red', width=line_width) +index = 0 +for i, j, k in zip(X, Y, Z): + index += 1 + showlegend = True + if index > 1: + showlegend = False + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name="Boozer coordinates")) +index = 0 +for i, j, k in zip(X.T, Y.T, Z.T): + index += 1 + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=False)) + +# js = b.compute_surfs[js] +# R = np.zeros_like(theta) +# Z = np.zeros_like(theta) +# phi = varphi + +# for jmn in range(b.mnmax): +# angle = b.xm[jmn] * theta - b.xn[jmn] * phi +# sinangle = np.sin(angle) +# cosangle = np.cos(angle) +# R += b.rmnc[jmn, js] * cosangle +# Z += b.zmns[jmn, js] * sinangle + +# X = R * np.cos(phi) +# Y = R * np.sin(phi) +# line_marker = dict(color='black', width=line_width) + +# index = 0 +# for i, j, k in zip(X, Y, Z): +# index += 1 +# showlegend = True +# if index > 1: +# showlegend = False +# data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name="Original coordinates")) + +# index = 0 +# for i, j, k in zip(X.T, Y.T, Z.T): +# index += 1 +# data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=False)) + +fig = go.Figure(data=data) + +# Turn off hover contours on the surface: +fig.update_traces(contours_x_highlight=False, + contours_y_highlight=False, + contours_z_highlight=False, + selector={"type":"surface"}) + +# Make x, y, z coordinate scales equal, and turn off more hover stuff +fig.update_layout(scene={"aspectmode": "data", + "xaxis_showspikes": False, + "yaxis_showspikes": False, + "zaxis_showspikes": False, + "xaxis_visible": False, + "yaxis_visible": False, + "zaxis_visible": False}, + hovermode=False, + margin={"l":0, "r":0, "t":25, "b":0}, + title="Curves of constant poloidal or toroidal angle") + +fig.show() \ No newline at end of file diff --git a/examples/output_files/boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc b/examples/output_files/boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc new file mode 100644 index 0000000000000000000000000000000000000000..6b81475dbfca003bf81804f70a292b5668ddce2b GIT binary patch literal 401596 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℘lYJOJ&Z~E-t0*s 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

ql#X<2CvKrALpQ6=3@~k6Wr8i2qpS9 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

  • 42eQxGXdkkHY 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

    ql#X<2CvKrALpQ6=3@~k6Wr8i2qpS9 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�nUBv&yDuJgQRacbPYe>!JJ&C^G;Q-VTd26Xlv(b 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 literal 0 HcmV?d00001 From 22481dcfaee1cb1b78fae01ee2ffd12378686b83 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Wed, 10 Sep 2025 22:47:33 -0500 Subject: [PATCH 10/18] Add parallelization support and environment variable setup for XLA in optimize_coils_and_nearaxis.py --- examples/coils_from_BOOZXFORM.py | 222 +++++++++++++++++------- examples/optimize_coils_and_nearaxis.py | 3 + 2 files changed, 165 insertions(+), 60 deletions(-) diff --git a/examples/coils_from_BOOZXFORM.py b/examples/coils_from_BOOZXFORM.py index 66574ef..db80949 100644 --- a/examples/coils_from_BOOZXFORM.py +++ b/examples/coils_from_BOOZXFORM.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3.11 import os +number_of_processors_to_use = 6 # Parallelization, this should divide nfieldlines +os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' import numpy as np from time import time import booz_xform as bx @@ -7,7 +9,10 @@ from essos.dynamics import Tracing from essos.fields import BiotSavart from simsopt.mhd import Vmec, Boozer +from jax import block_until_ready +import jax.numpy as jnp from essos.coils import fit_dofs_from_coils, Curves, Coils +import matplotlib.pyplot as plt input_dir = os.path.join(os.path.dirname(__file__), 'input_files') output_dir = os.path.join(os.path.dirname(__file__), 'output_files') @@ -16,8 +21,6 @@ wout_filename = os.path.join(input_dir, 'wout_LandremanPaul2021_QA_reactorScale_lowres.nc') boozmn_filename = os.path.join(output_dir, 'boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc') -ncoils = 6 - # if boozmn_filename.split('/')[-1] in os.listdir(output_dir): # print(f"File {boozmn_filename} already exists, skipping computation") # b = bx.Booz_xform() @@ -34,14 +37,26 @@ # bx.wireplot(b1, refine=6, orig=True).show() js = None -ntheta = 30 +ntheta = 41 +ncoils = 4 +tmax = 2000 +nfieldlines_per_core=1 +nfieldlines = number_of_processors_to_use*nfieldlines_per_core +trace_tolerance = 1e-8 +num_steps = 8*tmax +order = 4 +current_on_each_coil = 2e8/ncoils +n_segments = ntheta # nphi = 80 nphi = ncoils * 2 * b.nfp surf = True orig = True +R0_initial = sum(vmec.wout.rmnc)[0] +r_max_poincare = 0.8 theta1D = np.linspace(0, 2 * np.pi, ntheta) -phi1D = np.linspace(0, 2 * np.pi, nphi) +# phi1D = np.linspace(0, 2 * np.pi, nphi) +phi1D = jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False) varphi, theta = np.meshgrid(phi1D, theta1D) R = np.zeros_like(theta) @@ -65,79 +80,134 @@ X = R * np.cos(phi) Y = R * np.sin(phi) -# for i in phi_idx: -# loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) # (ntheta,3) -# coils_gamma = coils_gamma.at[coil_i].set(loop) -# coil_i += 1 - +coils_gamma = np.zeros((ncoils, ntheta, 3)) +for i in range(ncoils): + coils_gamma[i, :, 0] = X[:, i] + coils_gamma[i, :, 1] = Y[:, i] + coils_gamma[i, :, 2] = Z[:, i] + time0 = time() dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) -curves = Curves(dofs=dofs, n_segments=n_segments, nfp=nfp, stellsym=True) +curves = Curves(dofs=dofs, n_segments=n_segments, nfp=b.nfp, stellsym=True) coils = Coils(curves=curves, currents=[-current_on_each_coil]*(ncoils)) field_coils_DOFS = BiotSavart(coils) print(f"Fitting coils took {time()-time0:.2f} seconds") +# color = '#FF9999' +# # Hack to get a uniform surface color: +# colorscale = [[0, color], [1, color]] +data=[] +# Rsurf = R +# Zsurf = Z +# Xsurf = Rsurf * np.cos(phi) +# Ysurf = Rsurf * np.sin(phi) +# data.append(go.Surface(x=Xsurf, y=Ysurf, z=Zsurf, +# colorscale=colorscale, +# opacity=0.5, +# showscale=False, # Turns off colorbar +# lighting={"specular": 0.3, "diffuse":0.9})) -exit() - -color = '#FF9999' -# Hack to get a uniform surface color: -colorscale = [[0, color], [1, color]] - -Rsurf = R -Zsurf = Z -Xsurf = Rsurf * np.cos(phi) -Ysurf = Rsurf * np.sin(phi) -data = [go.Surface(x=Xsurf, y=Ysurf, z=Zsurf, - colorscale=colorscale, - opacity=0.5, - showscale=False, # Turns off colorbar - lighting={"specular": 0.3, "diffuse":0.9})] - -line_width = 4 - +line_width = 8 line_marker = dict(color='red', width=line_width) index = 0 -for i, j, k in zip(X, Y, Z): +index = 0 +for i, j, k in zip(X.T, Y.T, Z.T): index += 1 showlegend = True if index > 1: showlegend = False - data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name="Boozer coordinates")) + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name=r'Constant $\varphi$ contours')) + +line_marker = dict(color='blue', width=line_width) +gamma_coils = np.transpose(curves.gamma, (1, 0 , 2)) index = 0 -for i, j, k in zip(X.T, Y.T, Z.T): +index = 0 +for i, j, k in zip(gamma_coils[:, :, 0].T, gamma_coils[:, :, 1].T, gamma_coils[:, :, 2].T): index += 1 - data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=False)) + showlegend = True + if index > 1: + showlegend = False + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name='Coils fitted to Fourier')) + +js_phi = b.compute_surfs[js] +R_phi = np.zeros_like(theta) +Z_phi = np.zeros_like(theta) +phi1D_phi = jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False) +phi_phi, _ = np.meshgrid(phi1D_phi, theta1D) + +for jmn in range(b.mnmax): + angle = b.xm[jmn] * theta - b.xn[jmn] * phi_phi + sinangle = np.sin(angle) + cosangle = np.cos(angle) + R_phi += b.rmnc[jmn, js_phi] * cosangle + Z_phi += b.zmns[jmn, js_phi] * sinangle -# js = b.compute_surfs[js] -# R = np.zeros_like(theta) -# Z = np.zeros_like(theta) -# phi = varphi +X_phi = R_phi * np.cos(phi_phi) +Y_phi = R_phi * np.sin(phi_phi) +line_marker = dict(color='green', width=line_width) -# for jmn in range(b.mnmax): -# angle = b.xm[jmn] * theta - b.xn[jmn] * phi -# sinangle = np.sin(angle) -# cosangle = np.cos(angle) -# R += b.rmnc[jmn, js] * cosangle -# Z += b.zmns[jmn, js] * sinangle - -# X = R * np.cos(phi) -# Y = R * np.sin(phi) -# line_marker = dict(color='black', width=line_width) +index = 0 +for i, j, k in zip(X_phi.T, Y_phi.T, Z_phi.T): + index += 1 + showlegend = True + if index > 1: + showlegend = False + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name=r"Constant $\phi$ contours")) + +coils_gamma_phi = np.zeros((ncoils, ntheta, 3)) +for i in range(ncoils): + coils_gamma_phi[i, :, 0] = X_phi[:, i] + coils_gamma_phi[i, :, 1] = Y_phi[:, i] + coils_gamma_phi[i, :, 2] = Z_phi[:, i] -# index = 0 -# for i, j, k in zip(X, Y, Z): -# index += 1 -# showlegend = True -# if index > 1: -# showlegend = False -# data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name="Original coordinates")) - -# index = 0 -# for i, j, k in zip(X.T, Y.T, Z.T): -# index += 1 -# data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=False)) +time0 = time() +dofs_phi, gamma_uni_phi = fit_dofs_from_coils(coils_gamma_phi[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) +curves_phi = Curves(dofs=dofs_phi, n_segments=n_segments, nfp=b.nfp, stellsym=True) +coils_phi = Coils(curves=curves_phi, currents=[-current_on_each_coil]*(ncoils)) +field_coils_phi = BiotSavart(coils_phi) +print(f"Fitting coils took {time()-time0:.2f} seconds") + +R0 = jnp.linspace(R0_initial, R0_initial+r_max_poincare, nfieldlines) +Z0 = jnp.zeros(nfieldlines) +phi0 = jnp.zeros(nfieldlines) +initial_xyz=jnp.array([R0*jnp.cos(phi0), R0*jnp.sin(phi0), Z0]).T +time0 = time() +tracing_coils_phi = block_until_ready(Tracing(field=field_coils_phi, model='FieldLineAdaptative', initial_conditions=initial_xyz, + maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) +print(f"ESSOS tracing coils_phi took {time()-time0:.2f} seconds") +trajectories_coils_phi = tracing_coils_phi.trajectories +time0 = time() +tracing_coils_DOFS = block_until_ready(Tracing(field=field_coils_DOFS, model='FieldLineAdaptative', initial_conditions=initial_xyz, + maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) +print(f"ESSOS tracing coils_DOFS took {time()-time0:.2f} seconds") +trajectories_coils_DOFS = tracing_coils_DOFS.trajectories + +# Add fieldline traces from fitted coils +for traj in trajectories_coils_DOFS: + data.append(go.Scatter3d( + x=traj[:, 0], + y=traj[:, 1], + z=traj[:, 2], + mode='lines', + line=dict(color='black', width=0.1), + opacity=1.0, + name='Fieldline constant Boozer coils', + showlegend=False if traj is not trajectories_coils_DOFS[0] else True + )) + +# Add fieldlines from phi coils +for traj in trajectories_coils_phi: + data.append(go.Scatter3d( + x=traj[:, 0], + y=traj[:, 1], + z=traj[:, 2], + mode='lines', + line=dict(color='blue', width=0.1), + opacity=1.0, + name='Fieldline constant phi coils', + showlegend=False if traj is not trajectories_coils_phi[0] else True + )) fig = go.Figure(data=data) @@ -157,6 +227,38 @@ "zaxis_visible": False}, hovermode=False, margin={"l":0, "r":0, "t":25, "b":0}, - title="Curves of constant poloidal or toroidal angle") + # title="Curves of constant poloidal or toroidal angle" + ) + +fig.show() + +# Now plot the 2D Poincare plot with Matplotlib (ax2 only) +fig2 = plt.figure(figsize=(6, 5)) +ax2 = fig2.add_subplot(111) +shifts = jnp.array([0]) +tracing_coils_phi.poincare_plot(ax=ax2, show=False, shifts=shifts/b.nfp/2, color='r', s=0.1) +tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/b.nfp/2, color='b', s=0.1) + +Rsurf_phi0 = np.array([0.0]*ntheta) +Zsurf_phi0 = np.array([0.0]*ntheta) +for jmn in range(b.mnboz): + Rsurf_phi0 += (b.rmnc_b[jmn, js] * np.cos(b.xm_b[jmn] * theta1D))[0] + Zsurf_phi0 += (b.zmns_b[jmn, js] * np.sin(b.xm_b[jmn] * theta1D))[0] +ax2.plot(Rsurf_phi0, Zsurf_phi0, color='grey', alpha=1.0, linewidth=4, label='Coil Surface') + +# for coil_number in range(ncoils): +# R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) +# R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) + +# ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], +# color='black', linewidth=3.5, alpha=0.9, +# label='Coils from Boozer Surface' if coil_number==0 else '_nolegend_') -fig.show() \ No newline at end of file +# ax2.plot(R_curve, curves.gamma[coil_number,:,2], +# linestyle='--', color='tab:orange', linewidth=3.5, alpha=0.8, +# label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') +ax2.plot([], [], color='red', label='Fieldlines from coils of constant phi') +ax2.plot([], [], color='blue', label='Fieldlines from coils of constant Boozer') +ax2.legend() +plt.tight_layout() +plt.show() \ No newline at end of file diff --git a/examples/optimize_coils_and_nearaxis.py b/examples/optimize_coils_and_nearaxis.py index edb96be..00fa24e 100644 --- a/examples/optimize_coils_and_nearaxis.py +++ b/examples/optimize_coils_and_nearaxis.py @@ -1,3 +1,6 @@ +import os +number_of_processors_to_use = 4 # Parallelization, this should divide nfieldlines +os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' from time import time import jax.numpy as jnp import matplotlib.pyplot as plt From 9794642c4ff15212d6597d703d89b2d3354559d5 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Thu, 11 Sep 2025 16:39:05 -0500 Subject: [PATCH 11/18] Refactor coils_from_BOOZXFORM.py to enhance surface plotting and fieldline tracing; include Boozer plot generation and improve parameter handling for better clarity and performance. --- examples/coils_from_BOOZXFORM.py | 307 +++++++++++++++++++------------ 1 file changed, 190 insertions(+), 117 deletions(-) diff --git a/examples/coils_from_BOOZXFORM.py b/examples/coils_from_BOOZXFORM.py index db80949..8369a53 100644 --- a/examples/coils_from_BOOZXFORM.py +++ b/examples/coils_from_BOOZXFORM.py @@ -14,12 +14,32 @@ from essos.coils import fit_dofs_from_coils, Curves, Coils import matplotlib.pyplot as plt +# file_to_use = 'LandremanPaul2021_QA_reactorScale_lowres' +# file_to_use = 'HSX_QHS_vacuum_ns201' +file_to_use = 'W7-X_standard_configuration' + +js = None +ntheta = 41 +ncoils = 6 +tmax = 1200 +nfieldlines_per_core=1 +trace_tolerance = 1e-5 +num_steps = 20000 +order_Fourier_coils = 4 +current_on_each_coil = 2e8 +refine_nphi_for_surface_plot = 4 +radial_extension_of_the_surface = 0.0 +Poincare_plot_phi = jnp.array([0]) +shift_surface_plot_for_phi = jnp.pi +plot_fieldlines_constant_phi = False +show_coils_fitted_to_Fourier = False + input_dir = os.path.join(os.path.dirname(__file__), 'input_files') output_dir = os.path.join(os.path.dirname(__file__), 'output_files') os.makedirs(output_dir, exist_ok=True) -wout_filename = os.path.join(input_dir, 'wout_LandremanPaul2021_QA_reactorScale_lowres.nc') -boozmn_filename = os.path.join(output_dir, 'boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc') +wout_filename = os.path.join(input_dir, 'wout_'+file_to_use+'.nc') +boozmn_filename = os.path.join(output_dir, 'boozmn_'+file_to_use+'.nc') # if boozmn_filename.split('/')[-1] in os.listdir(output_dir): # print(f"File {boozmn_filename} already exists, skipping computation") @@ -31,47 +51,60 @@ b = Boozer(vmec, mpol=64, ntor=64, verbose=True) b.register([1]) b.run() -b.bx.write_boozmn(boozmn_filename) +# b.bx.write_boozmn(boozmn_filename) b = b.bx -# bx.wireplot(b1, refine=6, orig=True).show() - -js = None -ntheta = 41 -ncoils = 4 -tmax = 2000 -nfieldlines_per_core=1 +current_on_each_coil = current_on_each_coil / ncoils*vmec.wout.Aminor_p**2/1.7**2 nfieldlines = number_of_processors_to_use*nfieldlines_per_core -trace_tolerance = 1e-8 -num_steps = 8*tmax -order = 4 -current_on_each_coil = 2e8/ncoils -n_segments = ntheta -# nphi = 80 nphi = ncoils * 2 * b.nfp -surf = True -orig = True -R0_initial = sum(vmec.wout.rmnc)[0] -r_max_poincare = 0.8 theta1D = np.linspace(0, 2 * np.pi, ntheta) -# phi1D = np.linspace(0, 2 * np.pi, nphi) phi1D = jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False) +phi1D_surface = jnp.linspace(0, 2*jnp.pi, nphi*refine_nphi_for_surface_plot, endpoint=True) varphi, theta = np.meshgrid(phi1D, theta1D) +varphi_surface, theta_surface = np.meshgrid(phi1D_surface, theta1D) R = np.zeros_like(theta) +R_surface = np.zeros_like(theta_surface) Z = np.zeros_like(theta) +Z_surface = np.zeros_like(theta_surface) nu = np.zeros_like(theta) +d_R_d_theta = np.zeros_like(theta) +d_R_d_theta_surface = np.zeros_like(theta_surface) +d_Z_d_theta = np.zeros_like(theta) +d_Z_d_theta_surface = np.zeros_like(theta_surface) + +phi1D_Boozerplot = np.linspace(0, 2 * np.pi / b.nfp / 2, nphi*refine_nphi_for_surface_plot) +phi_Boozerplot, theta_Boozerplot = np.meshgrid(phi1D_Boozerplot, theta1D) +modB_Boozerplot = np.zeros_like(theta_Boozerplot) for jmn in range(b.mnboz): m = b.xm_b[jmn] n = b.xn_b[jmn] angle = m * theta - n * varphi + angle_surface = m * theta_surface - n * varphi_surface sinangle = np.sin(angle) + sinangle_surface = np.sin(angle_surface) cosangle = np.cos(angle) + cosangle_surface = np.cos(angle_surface) R += b.rmnc_b[jmn, js] * cosangle + R_surface += b.rmnc_b[jmn, js] * cosangle_surface Z += b.zmns_b[jmn, js] * sinangle + Z_surface += b.zmns_b[jmn, js] * sinangle_surface nu += b.numns_b[jmn, js] * sinangle + d_R_d_theta += -m * b.rmnc_b[jmn, js] * sinangle + d_R_d_theta_surface += -m * b.rmnc_b[jmn, js] * sinangle_surface + d_Z_d_theta += m * b.zmns_b[jmn, js] * cosangle + d_Z_d_theta_surface += m * b.zmns_b[jmn, js] * cosangle_surface + cosangle_Boozerplot = np.cos(m * theta_Boozerplot - n * phi_Boozerplot) + modB_Boozerplot += b.bmnc_b[jmn, js] * np.cos(cosangle_Boozerplot) + +denom = np.sqrt(d_R_d_theta * d_R_d_theta + d_Z_d_theta * d_Z_d_theta) +denom_surface = np.sqrt(d_R_d_theta_surface * d_R_d_theta_surface + d_Z_d_theta_surface * d_Z_d_theta_surface) +R = R - radial_extension_of_the_surface * (d_Z_d_theta / denom) +R_surface = R_surface - radial_extension_of_the_surface * (d_Z_d_theta_surface / denom_surface) +Z = Z + radial_extension_of_the_surface * (d_R_d_theta / denom) +Z_surface = Z_surface + radial_extension_of_the_surface * (d_R_d_theta_surface / denom_surface) # Following the sign convention in the code, to convert from the # Boozer toroidal angle to the standard toroidal angle, we @@ -87,101 +120,106 @@ coils_gamma[i, :, 2] = Z[:, i] time0 = time() -dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) -curves = Curves(dofs=dofs, n_segments=n_segments, nfp=b.nfp, stellsym=True) +dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order_Fourier_coils, n_segments=ntheta, assume_uniform=True) +curves = Curves(dofs=dofs, n_segments=ntheta, nfp=b.nfp, stellsym=True) coils = Coils(curves=curves, currents=[-current_on_each_coil]*(ncoils)) field_coils_DOFS = BiotSavart(coils) print(f"Fitting coils took {time()-time0:.2f} seconds") -# color = '#FF9999' -# # Hack to get a uniform surface color: -# colorscale = [[0, color], [1, color]] - data=[] -# Rsurf = R -# Zsurf = Z -# Xsurf = Rsurf * np.cos(phi) -# Ysurf = Rsurf * np.sin(phi) -# data.append(go.Surface(x=Xsurf, y=Ysurf, z=Zsurf, -# colorscale=colorscale, -# opacity=0.5, -# showscale=False, # Turns off colorbar -# lighting={"specular": 0.3, "diffuse":0.9})) - -line_width = 8 -line_marker = dict(color='red', width=line_width) + +color = "#C5B6A7" +# Hack to get a uniform surface color: +colorscale = [[0, color], [1, color]] +Xsurf = R_surface * np.cos(phi1D_surface) +Ysurf = R_surface * np.sin(phi1D_surface) +data.append(go.Surface(x=Xsurf, y=Ysurf, z=Z_surface, + colorscale=colorscale, + opacity=0.3, + showscale=False, # Turns off colorbar + lighting={"specular": 0.3, "diffuse":0.9})) + +line_width = 12 +line_marker = dict(color="#5B2222", width=line_width) index = 0 index = 0 for i, j, k in zip(X.T, Y.T, Z.T): index += 1 - showlegend = True - if index > 1: - showlegend = False - data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name=r'Constant $\varphi$ contours')) + # showlegend = True + # if index > 1: + # showlegend = False + showlegend = False + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend))#, name=r'Constant $\varphi$ contours')) -line_marker = dict(color='blue', width=line_width) -gamma_coils = np.transpose(curves.gamma, (1, 0 , 2)) -index = 0 -index = 0 -for i, j, k in zip(gamma_coils[:, :, 0].T, gamma_coils[:, :, 1].T, gamma_coils[:, :, 2].T): - index += 1 - showlegend = True - if index > 1: +if show_coils_fitted_to_Fourier: + line_marker = dict(color='blue', width=line_width) + gamma_coils = np.transpose(curves.gamma, (1, 0 , 2)) + index = 0 + index = 0 + for i, j, k in zip(gamma_coils[:, :, 0].T, gamma_coils[:, :, 1].T, gamma_coils[:, :, 2].T): + index += 1 + # showlegend = True + # if index > 1: + # showlegend = False showlegend = False - data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name='Coils fitted to Fourier')) + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name='Coils fitted to Fourier')) -js_phi = b.compute_surfs[js] -R_phi = np.zeros_like(theta) -Z_phi = np.zeros_like(theta) -phi1D_phi = jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False) -phi_phi, _ = np.meshgrid(phi1D_phi, theta1D) - -for jmn in range(b.mnmax): - angle = b.xm[jmn] * theta - b.xn[jmn] * phi_phi - sinangle = np.sin(angle) - cosangle = np.cos(angle) - R_phi += b.rmnc[jmn, js_phi] * cosangle - Z_phi += b.zmns[jmn, js_phi] * sinangle +if plot_fieldlines_constant_phi: + js_phi = b.compute_surfs[js] + R_phi = np.zeros_like(theta) + Z_phi = np.zeros_like(theta) + phi1D_phi = jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False) + phi_phi, _ = np.meshgrid(phi1D_phi, theta1D) + + for jmn in range(b.mnmax): + angle = b.xm[jmn] * theta - b.xn[jmn] * phi_phi + sinangle = np.sin(angle) + cosangle = np.cos(angle) + R_phi += b.rmnc[jmn, js_phi] * cosangle + Z_phi += b.zmns[jmn, js_phi] * sinangle -X_phi = R_phi * np.cos(phi_phi) -Y_phi = R_phi * np.sin(phi_phi) -line_marker = dict(color='green', width=line_width) - -index = 0 -for i, j, k in zip(X_phi.T, Y_phi.T, Z_phi.T): - index += 1 - showlegend = True - if index > 1: + X_phi = R_phi * np.cos(phi_phi) + Y_phi = R_phi * np.sin(phi_phi) + line_marker = dict(color='green', width=line_width) + + index = 0 + for i, j, k in zip(X_phi.T, Y_phi.T, Z_phi.T): + index += 1 + # showlegend = True + # if index > 1: + # showlegend = False showlegend = False - data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name=r"Constant $\phi$ contours")) + data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name=r"Constant $\phi$ contours")) -coils_gamma_phi = np.zeros((ncoils, ntheta, 3)) -for i in range(ncoils): - coils_gamma_phi[i, :, 0] = X_phi[:, i] - coils_gamma_phi[i, :, 1] = Y_phi[:, i] - coils_gamma_phi[i, :, 2] = Z_phi[:, i] - -time0 = time() -dofs_phi, gamma_uni_phi = fit_dofs_from_coils(coils_gamma_phi[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) -curves_phi = Curves(dofs=dofs_phi, n_segments=n_segments, nfp=b.nfp, stellsym=True) -coils_phi = Coils(curves=curves_phi, currents=[-current_on_each_coil]*(ncoils)) -field_coils_phi = BiotSavart(coils_phi) -print(f"Fitting coils took {time()-time0:.2f} seconds") + coils_gamma_phi = np.zeros((ncoils, ntheta, 3)) + for i in range(ncoils): + coils_gamma_phi[i, :, 0] = X_phi[:, i] + coils_gamma_phi[i, :, 1] = Y_phi[:, i] + coils_gamma_phi[i, :, 2] = Z_phi[:, i] + + time0 = time() + dofs_phi, gamma_uni_phi = fit_dofs_from_coils(coils_gamma_phi[:ncoils], order=order_Fourier_coils, n_segments=ntheta, assume_uniform=True) + curves_phi = Curves(dofs=dofs_phi, n_segments=ntheta, nfp=b.nfp, stellsym=True) + coils_phi = Coils(curves=curves_phi, currents=[-current_on_each_coil]*(ncoils)) + field_coils_phi = BiotSavart(coils_phi) + print(f"Fitting coils took {time()-time0:.2f} seconds") -R0 = jnp.linspace(R0_initial, R0_initial+r_max_poincare, nfieldlines) +R0 = jnp.linspace(sum(vmec.wout.rmnc)[0], sum(vmec.wout.rmnc)[-1], nfieldlines) Z0 = jnp.zeros(nfieldlines) phi0 = jnp.zeros(nfieldlines) initial_xyz=jnp.array([R0*jnp.cos(phi0), R0*jnp.sin(phi0), Z0]).T -time0 = time() -tracing_coils_phi = block_until_ready(Tracing(field=field_coils_phi, model='FieldLineAdaptative', initial_conditions=initial_xyz, - maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) -print(f"ESSOS tracing coils_phi took {time()-time0:.2f} seconds") -trajectories_coils_phi = tracing_coils_phi.trajectories + time0 = time() tracing_coils_DOFS = block_until_ready(Tracing(field=field_coils_DOFS, model='FieldLineAdaptative', initial_conditions=initial_xyz, maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) print(f"ESSOS tracing coils_DOFS took {time()-time0:.2f} seconds") trajectories_coils_DOFS = tracing_coils_DOFS.trajectories +if plot_fieldlines_constant_phi: + time0 = time() + tracing_coils_phi = block_until_ready(Tracing(field=field_coils_phi, model='FieldLineAdaptative', initial_conditions=initial_xyz, + maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) + print(f"ESSOS tracing coils_phi took {time()-time0:.2f} seconds") + trajectories_coils_phi = tracing_coils_phi.trajectories # Add fieldline traces from fitted coils for traj in trajectories_coils_DOFS: @@ -190,25 +228,26 @@ y=traj[:, 1], z=traj[:, 2], mode='lines', - line=dict(color='black', width=0.1), + line=dict(color='black', width=0.2), opacity=1.0, name='Fieldline constant Boozer coils', showlegend=False if traj is not trajectories_coils_DOFS[0] else True )) # Add fieldlines from phi coils -for traj in trajectories_coils_phi: - data.append(go.Scatter3d( - x=traj[:, 0], - y=traj[:, 1], - z=traj[:, 2], - mode='lines', - line=dict(color='blue', width=0.1), - opacity=1.0, - name='Fieldline constant phi coils', - showlegend=False if traj is not trajectories_coils_phi[0] else True - )) - +if plot_fieldlines_constant_phi: + for traj in trajectories_coils_phi: + data.append(go.Scatter3d( + x=traj[:, 0], + y=traj[:, 1], + z=traj[:, 2], + mode='lines', + line=dict(color='blue', width=0.2), + opacity=1.0, + name='Fieldline constant phi coils', + showlegend=False if traj is not trajectories_coils_phi[0] else True + )) + fig = go.Figure(data=data) # Turn off hover contours on the surface: @@ -235,16 +274,19 @@ # Now plot the 2D Poincare plot with Matplotlib (ax2 only) fig2 = plt.figure(figsize=(6, 5)) ax2 = fig2.add_subplot(111) -shifts = jnp.array([0]) -tracing_coils_phi.poincare_plot(ax=ax2, show=False, shifts=shifts/b.nfp/2, color='r', s=0.1) -tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/b.nfp/2, color='b', s=0.1) -Rsurf_phi0 = np.array([0.0]*ntheta) -Zsurf_phi0 = np.array([0.0]*ntheta) +tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=Poincare_plot_phi/b.nfp/2, color='b', s=0.15) +if plot_fieldlines_constant_phi: + tracing_coils_phi.poincare_plot(ax=ax2, show=False, shifts=Poincare_plot_phi/b.nfp/2, color='r', s=0.15) + +Rsurf_phi0 = np.array([0.0]*ntheta) +Zsurf_phi0 = np.array([0.0]*ntheta) for jmn in range(b.mnboz): - Rsurf_phi0 += (b.rmnc_b[jmn, js] * np.cos(b.xm_b[jmn] * theta1D))[0] - Zsurf_phi0 += (b.zmns_b[jmn, js] * np.sin(b.xm_b[jmn] * theta1D))[0] -ax2.plot(Rsurf_phi0, Zsurf_phi0, color='grey', alpha=1.0, linewidth=4, label='Coil Surface') + Rsurf_phi0 += (b.rmnc_b[jmn, js] * np.cos(b.xm_b[jmn] * theta1D - b.xn_b[jmn] * shift_surface_plot_for_phi))[0] + Zsurf_phi0 += (b.zmns_b[jmn, js] * np.sin(b.xm_b[jmn] * theta1D - b.xn_b[jmn] * shift_surface_plot_for_phi))[0] +ax2.plot(Rsurf_phi0, Zsurf_phi0, color='black', alpha=1.0, linewidth=2, label='CWS and Plasma Boundary') +ax2.set_xlabel('R (m)') +ax2.set_ylabel('Z (m)') # for coil_number in range(ncoils): # R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) @@ -257,8 +299,39 @@ # ax2.plot(R_curve, curves.gamma[coil_number,:,2], # linestyle='--', color='tab:orange', linewidth=3.5, alpha=0.8, # label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') -ax2.plot([], [], color='red', label='Fieldlines from coils of constant phi') -ax2.plot([], [], color='blue', label='Fieldlines from coils of constant Boozer') -ax2.legend() -plt.tight_layout() +ax2.plot([], [], color='blue', label='Fieldlines') +if plot_fieldlines_constant_phi: + ax2.plot([], [], color='red', label='Fieldlines (constant phi)') + +# # Plot VMEC flux surfaces for reference +# iradii = np.linspace(0,vmec.wout.ns-1,num=nradius).round() +# iradii = [int(i) for i in iradii] +# R = np.zeros((nzeta,nradius,ntheta)) +# Z = np.zeros((nzeta,nradius,ntheta)) +# Raxis = np.zeros(nzeta) +# Zaxis = np.zeros(nzeta) +# phis = zeta + +# ## Obtain VMEC QFM surfaces +# for itheta in range(ntheta): +# for izeta in range(nzeta): +# for iradius in range(nradius): +# for imode, xnn in enumerate(vmec.wout.xn): +# angle = vmec.wout.xm[imode]*theta[itheta] - xnn*zeta[izeta] +# R[izeta,iradius,itheta] += vmec.wout.rmnc[imode, iradii[iradius]]*np.cos(angle) +# Z[izeta,iradius,itheta] += vmec.wout.zmns[imode, iradii[iradius]]*np.sin(angle) + +# ax2.legend() +# plt.tight_layout() + +fig = plt.figure() +plt.contourf(phi_Boozerplot, theta_Boozerplot, modB_Boozerplot, levels=6) +plt.xlabel(r'Boozer toroidal angle $\varphi$') +plt.ylabel(r'Boozer poloidal angle $\theta$') +for i in range(ncoils): + plt.axvline(x=phi1D[i], color='black', linewidth=2.5) +plt.colorbar(label='|B| (T)') + +# bx.surfplot(b, js=0, fill=False, ncontours=ncoils) + plt.show() \ No newline at end of file From 857d69a64c0cf3711498f2b854df48170f1b9a65 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Thu, 11 Sep 2025 16:39:13 -0500 Subject: [PATCH 12/18] Remove obsolete low-resolution output file for Boozer transformation. --- ...LandremanPaul2021_QA_reactorScale_lowres.nc | Bin 401596 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 examples/output_files/boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc diff --git a/examples/output_files/boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc b/examples/output_files/boozmn_LandremanPaul2021_QA_reactorScale_lowres.nc deleted file mode 100644 index 6b81475dbfca003bf81804f70a292b5668ddce2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 401596 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℘lYJOJ&Z~E-t0*s z2j&y;1Ja*_G1!Rhn+k6mDlx$-wK4{07_8@^M8*e`-`EgyvTbj!DNGD<=CG1bhIJ$h zjjm?g#`=vhwo{48V(ct66W<4gU|uP*p72T2VpSd)&{nrS!Sc2`AKx<{#}GX*ji-KF zf$q2);y*fHL`K|8gW9s9&{FoB?W>J%knh(G+ZjK8n0UL6?U_b_iT|I;i`h(Bopj?pyI2kL*~E( zP;y`PWbp1=*p!!8tUad&t9WzSn;82+{eSMYrX5bOX zG(6DG-{0Y<*b*qgmrsyt*aw}%*X|wtAOOwf<@Zh_HbBPio=8`NF>GT$#G9`;gf`;7 zf8*&@V7pD4^ann1*eGYCCwcS}7Wryo1SXY19Dl2twz@qiBJ(rSVfYLh4hv;yqf$Zh zc2ZFRy*$XOWl=c^xdbDbf`-QM(_#Ib-i;KUbx^M&Y#wdn1#`|cd3qcdaJ{^_?&wZC zP&Ku)oEuOK2FvswYUuZXs3;@82Qwj1mA3JfU$`h3_EVb@^fdy_`2kfr69ZuGR2{|5 zMc^}eSLIoa6fF6pQj$Oa3`{(9E+xOW4YC8vcRhm0U@Nmnr~E5ISRW9jGELzJMrNle zUtZ@2BQ8b6hyT`by=%j5Yo5PwNhGX<7~O;e9%{*4=Hg)FI#*F?FA7$+BGi1_=y83= z7*Q#6J1{CxKtC_319Iln)-fU?p!A!Z*~F)7u=t~Txn=S{Q0$V7=x8s1PJ%wo$7yPy z!Yhf0T}mC+YE=yvJUs;s1RU>H8^mF`Yao4DwKS}~r1pHu4hx(34HNtNO<_rnA66RI zqwc@1DcX`G1ue#^qf-=K!+NwYw*96d4DDOFP)I@#E1!K6_jN1-OKkj?(oCb_*=$AP z^?3|(%{W>-trQ=nSK=x9$oL)M`tapEQF;Uw5|Vj;9?ybE@aVNpEPq2~TX@FX-ZCLi ztMbG`N$b&Pawjsy?jndrVoZTbm>6ofW1?{BX*u%xWp98?E+^{dil_Qb`51{zGg)GP zdj%~qDw3{Q1W5b9QPxnEg93cF*dcg7Y(}JVqF}hxo2D*F*d*M&Lw7rV=U?Abjf+{VLb}`_G9eCFusl^ ziEl4fVoiPih+|1cur7R;Zohgug|Qd!m4(JHFw$-9L}e#2SbZZ1OB}f|0s{FirX9~P zoUdo{;|2P$H)Lxr2w@qK4X5p~9TFn6^oq`vTQ3yQghDOXw~;eQ)Z~iW3wuBGv#m+& z^$kblOlu~*=TQA z4%Bz=Cd#NKf!ZWygRysEFxmZmXAbr`NK`;N-z7@IIHPVgL&bGaKx=z5wcV!prF2=YmF_%A?A~36Ljoo520$4k!XC&#^BEVM7+N zvHyrWEE0+s#rK(l$?@KH)8l3^nxd53?3x=0Q@dG{&!3^Aq2-8keq)UH)R9U`|ni_mT|rlAy%tWzi3b$ zz5P$jwi}My?gkj@mcSnf9|Cln;KEBTFZvl)*ni&z@7>LKTwZu*Se;uKR)mF-w*CqN z4UVz+dt?EymodZ8`~^SkIFik~bl(!zw6>UfA;Pfvo-@M~gDM=peY9@ZECmy%hj=4h zYe1T-zg$mEA`Fgv?o~#=h|3c*#60%HVEwZQHPD)RAUeqh-qqSsx z8WOsAHL%kwA5B?qcz&t+7E-z^tv#$_g*HE1{`gpC9T|-B%Qq$qMrR|x`v1*!LRJro zC#uaZp!*TZ$#DnMmk)F&~zqz}~pRiN7e~fVudi-)`JU7VV7Ae4Lh4f_7-$@o^S-fmGvD1FZy;&QjTA{0Z|FfkCa;$LK&&9C34c$p_fhEd7bvZ zgRSWGAcFpD;Ghnxe`NCtz0jr6=lfqNIB^hXs`lQ68yU`Xs%^Yr;ej;t{H_OwOkZQJ zteJq;`7yqIZhKI$T4vSxP6HNIpy!R0Ca|)tGFwE%wDOISwaY4qhQV9?Q;Q8YZ0Dk>qrXx;DT8^XFI5e2{%`DP650@bN`_38%Q#B z+WNls3!2FkB}b($!0yM)i%Mc%(Es)5VVd$=5TExJbQgYy)=%;t?u9P^?5FeNyz+Wj zJ?c-Z-hBp(7S*aUL&;!$+ghdAArHv?V6yWuoDL?pe*f=8jTJTqe-jy(U;?Q`7(!Qp zB@iYM;l4O)jq4w(JmNl#fqetsjTtI6uk3 zO4$nRIU+wQ%W#1;u@--FmZe~+-luLsumk4tn$PU}b3n)9e>KzsDgf7n{NZAG8T6o& z*j;u$7|h|?A1ZAM+U+w@n>Qlh?L`qYsvEtam8?1EXq*-d+fEGs=w5=2(Tmvkt_EZbq&`EJeCH|EkXkZC;!5B5cjt&1`A`?_FFy+sty~0OOtYTEK5OWP?wa<+u zetQX9i#FhWo`0ZR*YtSXK^S&@QtplTW(Gz=25e4r6k*4Z(?P7w7Z~rG@=sgV3T#<@ z4gEx(iV|O}$*}o+9ieHTB4m1mhu*I`F;}1PK}2BMsN$_sRQ8H1f%4x(%BRoX=U^JCj%CABE*YJjrtz4Mf&S!+<6xEV#e{nt@n!!@aJe3x5%emTSpH_kn8|!FYIO6~!*j>PUqCP3{-I%=reLo8hH38JtCGnuDn; zIJb}nsqsLI*LTr0>Yh=vDJjIq3cmxpbBO9W6>#FS38B2*vu^I`vxvy6KDCHVEXx1x zlI7}FC&Fg(wutlIPn4oVA@DN}Zalr&+^w`o25YscsEuX^U>`i#LHu#O_y=Z+G>x%v za9rV`z;r)oahS9&=3fB?`RHGVy&d@dxc|BMt6ETwoMox`rGW~`k}85*S77RhCUM?* zJuKOG5-CiFpyk8X{^=J5&`#9MJ8n+~Dx)N;eL@mJsrEGu^I=O+Me!i^e6OXxWKm}DSa6o!3yt678n0IG>n zRo5`MIrm}+QK7LR%(6wh-!0+x5x4M}x%O2+g^&;)<%=PZs3#7*eZIruQH9-|Y)Oc% z7Vr5tgZtf&PHg-NQ($wadii3DAFR~(czIv(75wVjZ-4z1$1y3>W&Azl099V(VRarG zaA@H6(=KU4*!=Z{`dg`1I3O1BsJ+PzdWH)S^f;da`Mhhl-+X@zo9~}zblQc(zI#}r zyH|g}Vei+=Yg>0!+39_qiQdd$F=491K9T>aUO0kcBqmiPX}g05#2a;>kQ!ZNjx;^uZ+ z*in~U-dq|EYm*o*L`$*2((4}vX)b2Kx>zC*lS&KSY7UTx-`>GY`9IBEYuwPTd|$c3 zYZGSqW{ZZIIKt8c%*@@M2GD9+vxLX>5+v7iYz1LeaNjLc3wR=iAY(`H>RYKuSVI3& zy6OodY-64L@33+oWLhQG2-T5-j-jex&j3F7-MGbuZ-^VDv=S#>O6`S%j2~_2RzHFt z?lYe-rR?zc@x0)V><+LKy7BP0Svve@K5LOMt%nfSZg(c%2t}{W1advxSw^Vd@0(|_ zm!NE~I5;o>SxZ-^_5p0U501K z?$033EX7&$FaDr7-)=Lq-xcX)`{NWHa35p&Vq}gb*{|FQVr;~)>9Q@BUyO zWqzzYc;1SYC9=19R6K{_kAA}8-kyfJ&uRjt-%MgTWS$r4RNO&-wI6IGSmt90H2-bK z)#D*Gj~z}OUw=S*rnP-?FGQmOtkZ*W-?I@Xd@@zLi{mIW@2vvz&>-}g;;XyN9Ip_i zv+xicK8`+?`t`6D?*_s}v-M%m;15bYy?ZJ6HYGwBS&MAV1i~%sF9W)Le^4yN7|XK} z2+Aj4d0k_9275O)`&PCqK~6(=MYo0m@DPyA=Gx-|#Z-2(>i!N8C4a_(#1w*pRt@(v zoG&BsYXje#37k)3mO|ENP8c-nZ)`0g)u4XqZkc(l9jN?^k7A6Rf$|-#uD2P+`b-5J-F=z zv#u&x*2~wyF27r=A7gRvE#ATBst4yVZt{Fca_m3QsEPkbX*~cWseV2=rj-Tpj?6|! z_mTj1&;CmPlO5PEYN=f*Mh8mBKJnnJ?I6&$$90ha=Qr3czgmpzSC+o0;Jmvg3MP&8 zR~%jZV5jF~+ct+4NGUg~yEo$n>KPPnNt@|_N}ZMB&!PjMUZ{Pyt*9IJ0Fu7|a#c;n$+4%oN>zd4Zpg~fE%I0a5O zEUnC^@?qnJRn$}#ay?d{NH9Q~fm$CFUR5*S{&N%btuRqc_Tq!2)%b_#*aS>{{Qlql z6(^8N`mU^#QVmw)xiXTGOoPTtVR*@cqM+Z+<|bd4Fes{MapU&Gf-+|HrOz`vppi(4 zJBt4gEc+ALB(pOG?AR69+{Mg6r`+We(@|Cs&nf$(=m#|{y7r`lS1S{wzuuPEmTH5| zjf-SRX~_v6_wm322hf&`?Q(-pcPrPblQ7{3Ix zbVsrBeq=Hddto;7hWQJm*~*?g+nXKzk^FQN@0T93&p31^>#rde|NKoeI+%*NF6ON) zPLzWs&ove^$@LQfpa?p^76_j@_!A&&&y?!s|PPeZx_CnM3n zt?BGEc9$`Hdg{zH_N~}Q&a6D=_jECgOv_X@^v4)xix#VgoPAi<+Zhch7j=*gcEaDo z4A(H1Q>MeDXI#-O{T9-11cLdV;#@^%lWFs2EBskH!Cxg0i`Hm&&=p&X@ z&b?n{MbIZdkDnTPSAcB+88v2JQiPyHUGMUEI9z@i=8#P_4`P%|7sA)%L1n!B9wKcc_ly3o4NC{<;9HxLmQx~Ue68_Mpj~m?3 zC!r(t&U>tbu zXUTtWVB?zZmEm1}827VUW)|xT6V+DUr|C(;47w-YDaIwR>`hkI0V8g2wov`kw5Gsw?{1 z41Go}5q{bXgx;A(EsGr}Y?M60)5MDb#Y>X1b?-S$R+RqG z(MJyBgmgqVzu@x37Up~*Swr0O8?v6Ai-k4*1KJf0I1k8sn)^=-s$o4tfR4B}uFvpf zk;E<-g7#xQ25saOXqwaG3=gpet{nEQ-owtYT<_tV=a=L_@pDe%^$c7tC?#)`b}|Z+ zv|s?Guqr6L9xAlRdazjI{**osdrd)#CR(^lm!@;|-_+n#)*N~KJ3O zNW8505aec%=y{P6!_HgCW}~kms41G-5G*Z*Zc5sy*qs&dxtq8{!8i|Av20wrt*H;; zlQ;^oA`4hv{fq6@doftLjhx}lvchcbP0zlsE}(_sHU3(uB!o!?-F$?_pmRLcL{d`d}e)CH=aDuSo<-p`o($dP5aq4ES1i&7}gpzamO~ zEJ}|E28f9r&)B2jS686ZVIv~g#=++NQ5NA7Y%0F&Gk}`NzI2(A`-Zq(e^IJiqK1Bd z_mafuhA@)tb@9V<`W&>TJx?*KI}+*mmOd=XPKu6FB_!VopG4-fwzp1xI-)-nMtv5% ztdXCbw)X;S1JIt!Q__`0*U_!~pCKmNr5K|0Gw10_UhGY~_lrfy3k;?D!3QpxVf0_8 zJo5dJ5KEzKNgW*>h+z>J7x}nSjAeASw5qQtKz8ILBfSUQF*K!A6R!1{SXzl0g?^Vf zWc6leyN}CL%q1lxZ1IH`y4&Z@drtEmZM`-3^U35Nq@&e{$VGD+E%`kt7bvNYcgZ7# zgIQr$BiP?kL5JIF4uJ}^Fy$m+GgZ zH|qB z!SCLJE+-*H)3!grR&gaD@g6=b&|mfld+G^3{^vF0S>+AdnclO8-ZBM63#LcG&S|hx zv$>QbTo?3dv@O&$`hkR$?^EvDbuhfy1G7Zh3}VP`7qb>gfRs8Wiu*f`poG|9^9{)= z@YXOpML9z-52g|Q=-!_1CF3y1=lvm(a_qbuN ztJ|=cmCW-iTNo%k6^VYd@B)ndP3F%}6o*yo8V0~y4t7=)a;Ent!}{`#IghGFklMOW zfO#tj^09riqDu^*h^K%>XoDJ*$|WZXDY>dRY(H7$_$||5ZZ03pqxhLCek{Xi^{6I&e^MJx~IbS56rosK|ikm&$~$ zeM%rZy+Szkfga44ZC%m2#Q?nVnAY@v=z>TuHXSp}2u!>YL&SCI66pGHSt&604J^w1 zW1Ts+1-n${3?C@QfaK*ut1v22khZ_J_m{g4Rt;K{WnVc5AuYSJ4o*kVU$@*Pq;U&2 zkbgaw9MS_dxinir_t)T<w-IjE;6fxSJzk1`>8EWk+lqx>Bh`6q9 z)_)ddwpulV<3VX3q6>69&w6*M$SN1z{|S z6-(2#qcSAna?MTJfxnmwsqvN#wxZ}xwtP`Hc^uk3Fp;y)mW7N6xcOb+ibvyO?``iG zUPXN}X8y>ol%wViBSuNAg&I9S@b%Xy(5$EiA2am#DeLYG+cA6EP%phr>T5tpeg&QtNRyT9ol z$m;M5D&NB8+V? zWcIyZlNK~6we}LNslf7w@tTOiG|V)2U=nkx0{xeLyiK=g^!v(!^FCy-H1APvSQ8V-EGwiYad-^6g}=&Ha;(AP0^gc=R!`9U`xa4% zjWQS#wO+V6bp~Tcq>T)wmSN+EE3L#N#;{djT&joO+q@qvkEpf7rB#`F#ttqk#mE?9M>X1=5$l>+->f zlfN~$@+oXkSlltGoClEShjbvn1Q-mw8n2V^9u_xGWpC34!!mWUc4o8Npz_!zAT_D;zdOI&}sNnm;T@{?59m%#Ro_@)ZTqhgh3y4eA%s;NN3fDf=B4j#K1 zHvx;jUgQ{udy+!N^$a3Yr zH=ghVri)rqbmF)Sdke?k6=W}9S14oY=(hqeN$#e@Q~DE5PGwMOu-*pSkH)zP8tUP> zh|iVln?I5Nnmx*b#;Q>2sG~{Y=2(RNS8VZ$+6gMi!CLE{{RMflwBpGdxrwS0&#m^| zjYo7%F8N$ONJn3={5zt1(1BPieXoB*$c~zq=h<;l(jpJ@58Izo9U$&Xo&%8a7>#}W z^Y-tJM5J&eB-=CE6~)Tt-O9B-L)tb_gA+wxYycs=6Nr#mRUtc}?*RH%1Z*l~4!C?J$ zD-k)m?s^~G%`q8@ttjpa|{ zXv8e2}SndkxD4ptPp^GvIyU1>0c<6$rg}QYM#r3W`UA6c*mGgZAzRpJpDYfz*)n z(Db82IOtP)NfF-#x35YsTE~ij>V@x}Y9u|N0rRC=v+o;B3VwIFrjP^LxoKR``>F+^ z3mtVNv|fXz3VtiMuvXY~BsBjoW&t)jla>(QDg@PB#>=d{>F`aPJkvszK~9s8?5M3_Za60xxZ&FZc75tM6oLtB`-lX z8RKzoCJXouE_g4Bsll+H`+c_GZ-L^%>$fVz)j)}=WKE(HKCG_0=~7@64JxSbd60ji z2iZ2a>#QUcKwSaHT!zFQ&|#RD{QC(5NDQMcIYj=z3Y~}NRC3wC-og0Wtu#KEywJz= zG++iqv)brS;+~H*XC165b092rmH$sEj}=x#2pOfHn}L>Xj@9h}a~OM^By_x01EOwN zjX7rQ!VY0}RtvsmF!C=uE78&yE>;zXN={z`Kj+J1u@UTWHN7yS-KHBBvcDg_Ih}@F z@@Kt3ufL2kr$`w|@*N;Zx*%6V`Y`%TX_EE7pkU;MvY(c+XdwC_`%<;=;v3|%B)*yb zz#JNEc>d(bFCK|zG&Gv~ONu5<#vf@-#v#cqWky+w@n~rO0>8Rc6`JrpM_@xG8L5lT z7k_6>fc9TWYN&4PMMhPl_^&tmphNSNxvE!Jk?cG19hkjVWHK3#-})sly8cR{LP8)1 zS$(`Pk-u7mHsAeBc#T>Moj;#{*}=|=tQPwcugvkG<9C;hf2`aU-wsPDJY;u{&nlz-xpbaQ`m6{l`Qc&bqyLPFH>8hHe5>nlWqE$r!?azRAc zwwp4W%@Aew2RGkEMZjfqwhERfE?_4FUo}{(49;Y7BlX^+u=E|Tnh{+dC~oF(do6Pd zmgu_AJj`eZNfwJF9Va(niu(J{h4Jo?TGqKXe0&VzJCm4)WDtp?N>b> zoIHay#=(C#Hiw|TNum&aY8q&e-JM^Q$iR6v^?Ne*9dRD*nQHH;$DlFND#Pv}H%NXt zZMpka6IKvsX$r_a2PN*!+~>FNK=f&>ab;gS%pq2y6V>qtUGH`ElX!U``_cTjj))Q1 znLtWfp=}JyJ1M*)*Ek_Iep-RTX%|)qW+=}D#=;Ua`IBfJDUjZBuKd@!5Ht??g``D3s#KHnvFPN&@KBosMJ$|>{0=PlLZ^j!*vT?wQ7|!FjJcccBvxi(+1=PJ~ zyp(*Q2ljpP&bEj-g=wVe{7i&@K{2aVyPwrQSiom(Bdn7H!!mc=3rsgRGg<_ZM?SA+S_87 zjK?8~DV6|k1ww0&%y7Ku^E-16R7}vjdW*iLUJ#W1QB0Zdorm#mVYDCQ3P9TO@=qJ<>|kG`>4qecJenfBpwkF0)G_T$Js)F4*6o>p}Xb?XZ<(^%0#%m$zF zSNd0=0vVolj(Kb7LpAnmsmaF(C!yB)LIw#uoX{X_k6?xK{1!GWg*YBYOs4|#jsYb5 ztYByY7GQ;?gSR}b0Puai^ZdJA9bkL8LlB}p0}Bkg6fggJ3gn!qQj|P@!wRN`wHMoq zz-4`!I{q*V^hf>6Z#y~$1$Yy`{U1={?$wdFKHtR)nk@D8yJM3Dp4Yw?e(G`*x zELMkYQ$eGb_wK=FXTR|7VJ^_vkVD7m;sT-e%!;SR2*_Q#){&iH23nskPuSMsJOnYU z84AY7uqf7q#X3h07MBJ_*KeaBiBr|#^|xJ^(e+Pn)}aODB$qV_5TcQ%)dWowz4Q#S#YC#tjcjmcgRP!dKy`xcxx|0g0LC7trvgg&^`hG4xq!PG|G7 zg(bxF3a{1VLCv{AIIvv+)mxc8UJtxsmP$A)Ve>HT|9&3j@>c^6N3@!)tsBDDmCI~A zT&XbenaHi3h7HhhRb8IT~{>O3A@FN6(Nxd!@%esGK{ z%KwdY6R`Zw%T3>(kMkqFb#RQYhwwiV?-&ytFSS!9dQmqA7IZTu8dN_3Sv(_;Jig3= zirSZJ5_(7Ad)g%Z8{@~YfoU@{*FqQe*2PKEv=76ETbCBRo{z(JsSZAo5H3*rHTvY) zf;$)_6vz@Aa{!gN3r>!P3t&BcQku<&Q&{#Y_xI~2V$eYTdNo$?5=;*KM=5{L4L9F& zTL}+4M7ygDu=c@!J=Tn!pgz-VUdhfL=d%*~0A@+Rk8_nR zfx1<=)%Lc!*v18%bBoe?9ay4Q7-48a+7d#3xpwRw?*0=RqOq|{P0a`cl`_9lIT=d5 zo25H6sf^+~2o0s)%}2o50{ZQg166NN(74Q+ynDIxw0^+;?c6bt@=q?#FIn~c3cOY~=k+g2oziY9TM zhcaGh;bGP9{~QF+P|i&LKU&w3I{U}loQI-ltEttX)SqJneIVd`ES-QvKBsRtbHL>f z7VcKq)ky?j@eu=_u#y7lh_=uWwO$bt35pOQwv6{HQ*s;0@{PHK_Nw;q!qA zBIHd1XX60^Rp)TiF3Pk@Kbb=waM)!Sml_m zwGi5cy*Eu8Jp^iCg|ZvVm(T1lq%AqCM#&IlJ^EtuASMqaOA9vKwl@Qn1~F$j0wEyu z3i}iPItI|B!BpKLV-2d}rn}TV_CO_hsq|iq8EEYI7xyfv66epEe?zcr19JFMO*}Jx z!ggz_i92+J9^X*IUx!|Y08If{`h9_I;3Z zrb0$sl>?F=%XPQl|A78wByZm{j6&TUl@bQ)37Eg3$d3H}1)-S=i>Le#XzD*ba`5p6 zNYN%VdUquNwrp&AB(&UxEu^;UGv(VjuBMeZw^R@I&i%P1*4htyOHwRZD{(y_VLdrL zWp-HC!=-6ljq|Ho3BB8?wFJd1^lDdql41GBvFr%k+?A6+IMz*L1RHtXK0Wxg1M18c zm*4GCfv!mh$>8U|z!3ND{?%KeIA22Ns`T?vnDxEkOe5R^G=Xdf5Be?C3uaeyE2} zvH%Hc4|eRzibU+9q=+p=hS8Kw&s|~cWu)+js-=jt3R-Z$ijbyA6 z(FET2L`!ypuy-HnAlW&%y;*lCVsqvAX4EB4G)*OiChv1MlE8R4nlZ7DFw2cR582d0 zeYGkI`f&N=dx3lL9A4Up3Y(uOd&6Z^RNde^ zjCqa6k25I3dcr)?%@`$E;_}?w`ExYz_B*3gW+a43atq0HDGspV6?k;7>Y$eM#ZtgFv4u2j4XyCPjFGRNy`4sJHrBA@YW-N8l{=_Qi>B?<>=3-2A^FuH0Wu2S@Kc zusWLWgY9_Dv2O(L!B8?bgefQ;#620P)M;t~Wi3pL!wvUAi9?Zo#Q0~}NPJ3kC9E9| zt>t(sszOK&k8|f6s2|^$p&n_j6^;Ekq7Fs(jR#A4ugIrn@xqLIM|PwbJdN` zg}pu*^u%;2u;qwbl7o&M^tkB;9d0e-JcxQI5hoq6?|0re);0lM5A0IA_LIQy$WY;p z*N1ROCgEz-S3Ov!Ded!RNfOrf5tOM7{Dv(ru94a*BG5kJ)99(z0catSrrZ+G1C?K7 zlUFQ~K=Fx+oWYqhDB7UDe%G1{c8eb0@K}5WYIubo{SJQvTJHppO9krU<_{Lx+e064 z-h|XxKPd+=Q1OrR1D+^sl>V=;uN22aGNzcn8!yN08#hNBUgO@|ju-jP3NL|>)|N9J ztQ<_*Ga4IzH4aK&Ikn7ypbls8VJQE9!uFD6Fl$<%*3Bjk7T@oS zek%AKl!Wcsw)m`o9Jy0LKLdP#broi(s>*^^^n?~S6>fmU3B0r?uTjuOdThZHVE{6U zEOqlKIAI5#iEyim2q+dVnkQa}gdLJx-BGN5U^M>WX_r+RoN0GR8xoNKyCU!XzNWFD z7sg75=vLAYVoP6Ev%w_vX4w=|I=?7#$C-hP$Jiac>yl(vc5xM9H2L&Y`b`^p!I%86 z(nT?pN9Jh3%~t?XxbmdpAEpA;zdpe?uKOJ^?|5>6E&PDmu=hvZIO<1i{ycW^O^ioP zehxZKnZ~0Qpb!1m8iDw}AXmxx!Hb3^XN*#K&LQC)1V0%RtI*Fahly*aRH!drM4x(K zKayy}*|kKujV7h1=J{`nBL0j89kHryNI)RLJ|X*EGu2*qNn|vz@k@$Japwmxo>mqS{hJjQSu2QA_+5t4_EqoQ_{yR5MgKgX>F=P*EJ2%G z=r5Gv$hS&+R}O5B4BQ`hJ%pw2`LH?R{J6be(jFGi3BY?Vd4qAi)a?6}pAJ5~#-01g z-)Z)=Ku2XzJ&Ok`M862=toCukI=Q-!j8CqE+CK&Pk7o%%>DQh1!Y*sz%X@zxN4w)V zniHGr+=npR;(6M?3QJI%Pfonv&jXUKe90=3F@tp;m$J+6b;B?~bx^-OkJSlR+u_QgR=-(?%t+>hJV zNRNlu-ovxXlW~9!r(sug9)T|1pyj_ZbYNUTG|x6C4xl``iWfd=!A72I=Rf#J2#ALG4y=$(}+x#ydXz1!|z-75%DadkQZ9 zUTF^Xq=rK$zhgy_4p3?FYx(4Viq1P6>$eT#5&_nrY7m=s>cum{ zw>c0uUhN^w51oe|pU=KUfkUKcVZW~y;(*_=Azsbf$e>ouBPbEb4FsT%MlwV8GWBF6Mmf|b#U|2csR`j$Y&@vKUb^)Fl5FEF$JFj%Vp1zzcGg9Vr#d%)x5S~q z;I{WX<2F_l?HW21a{yFj$F>!0=^=F3W!7@!A=Dm|Zg#y+34t3lbF7-0I2^ObbZb{B zR*C~dRQfKWPeoIBI_D4+T{%$k`FA;F>%6&jBxM~U{aRXHDO7{7tXVFM z8pepY`;k&~YEbx(QsI6sHKbC1iwN4|i|x#*UrjeEpd#<|@X!I`a}4vjX+181{Np7- z49yR*jIDj;ze8`KHRL{He2fWptyErm8{rPa^b-qx{1>p5JvVWE*C%}E^vZ)!U0^fK zD3H-Sg}gWQH0f_}0O^Q+-9?LuRkG-G;nz&}pCppRZR2z0L1g&?sgNnQLDJ>5$8%QN z>txx8C+Nq%%b(#zQREXl4aY^gJ>gZxBpb!VUqp)(jn zA80(;Lo&O5;nR8JJhJ=lSPP9Z8j`O~zvc(&&*WF*_Zd~oo5)%#W(#zir6kW)-pP+< z^<*E8X=Cuv;(_cqM#yOlq7Xv3!nYk`S?@fX-KDJ zxH)NU?iQd!toP3@N zh-a{=pCQn}MSNEWU3C9p!=pbEy8Fc-Jg0HO>)~CfU_Ei?zm#N19=^8p=PVaCQL5+> zF+wb^<#gqIvmcx7IYiHa5qAIUO_orJ#w3%1n4B>h$a6XILGzmk);2OQEf9QzT$T1BR4)aEP(=!!&bSvx{%`j2~hG}j3JR2$35@t=@6gR7*(D5%%a{w4cX7V6H{ z3M;EoVl34)+sG74Xi=Hiq}rp0DWMbFIky$CV1>hpW0C|7UPkV!cjGYmK>XvlTR*X_ zBGvHYu76Mx&;75}?G`w`bXB++{S~^ui0r4Hd5-<2B!EuM zud8dsJ0lJ+k*UpFLj_e?Rn>q~j$@s~f3 z)Gr=tl8~_Ky}80BvP{PEM|%Nr()AO+`-JB z^;;poW3FBxJ*akc+>x6>wlUZ8uypVwJ)U}*B4I;ARxGrUwf?+Jwj7YHJtd()a(J`G zRCAVrZ1?&Czd5S`NwS_=BTSin2mpXQLHt@!t{e~&Lo!{zIzy)H3i z?Tt?(1@^k6vqzFI%3gHJHuU*obG4g$Fp&Z@|)~9x^i8k zubtp`ob6p1<~XrePw(;F?X{DPMQQ~%dvt6d zwS$y=Jk%HCg^FaJ?FxeOMCs5I&w3$4e*D0{Yg!OgxmH@57>U)XVQkeGG%)DP8Im8> z1Z2rA74Dz1gR(P4xibGvK$F*6Jn08L7J54;F{kNaLHC_%`zsmHaP`0F@%$(>?N!O& z19VXG!l5%juN$i)rL=SQ9tP*7q$Nc;1E^nA>0jEbkHHCCo|*ewfzTtU4g854k3ucPHv4Hl<1M26FP>=+*ZJCHkn@Lj)QD3Tli5e4%byKl#*M(fEY{1=A+RO$JK!zm z#DBc5tQn2P>r~Z-Pwr!a_>p{h#(FHsjLl8gC-#vY$+ji^ub{?rYnAiNHkP*!>>Ei+ z!_v3a?pd+K}KiU(=1W6GTE`VBI)T<%ivNfE^E{5R(w zFZaTSZo@sAjH)<%;DDv<#cS|>$8f;js`nUkF@fSfQyR{b6-Zf!Xi3yMzVos5OJug= z%-qIHB+`-62kTdlza$H7DAKy=%8*Wd(km0t;UEiUP*udFhT!`1?~^9M{v^_^HYfd^ z56G(Oo{^3snI!GA7f#=nZ6a$v-T&>!U<65Gb7psS!Kiz*~Yl*c*0>=b#A z(|aMi%lj|9Im4#oX15NNRJ7SMhe;TCSB6q5FB|OpPJMdvs1eJ&L#=(-eV~LRaDVZ| z9LV13>7)^G1#^ZLu7~(aKvDQd`m(kk&~a};%X-&YOp`9se12IM-n2X{ZSN<1E`r_` zYB7eGOryiV7eR0Z#j=`rT}^~amc%M22}el$k#8<;cnYF|hff^+OZ0qmh7Tpjgkkxb z$XzqT4oKhOWVJFpj!8nvUlN@%@rl#<5QWJqc(r6nPGez)@~^r>=lS-!#F?r%_Mq7hK)3Dj9~p+-#c{w z%&{U{;jYv5E5!T#YvE${7&PvtPqdws$998j;w2y6W9v$(kj=BVSaFB$l2ZxcdwE|= zmbw#yB_BR6(tqE;(Em_mQu7a;nOaE znc%zN{3_lnY=;88Hh-UTnyC~@zSxb)^ta$pfpZ3(Vk3-x$hH0k;^B!<)HdY=VUlliIAb;VDq zk;L+zBz2$$`Mi9|7R#D1>1;xH4!6cQnZ?&eq@`YvEFp4^UyE6hbT!u|B=OWKvRYWo z8Zw~Zq5+mBn8 z&%gMJOM^{0eZn`fKkFsiTgT6kwH~E(&a(({-;MZICj-c$oZPzez!r0CC?rds(?ddS zwT)kJ02HukT-c#U?6Jp9R=c8(A(=f-55nxecOeHnwaAbDqeQ6fEf0;!E?J2 zy-!c;(EnD)giB#-S$s5@G*d4)QF{lvj&VJGS#1V`)MwVorTWn0dy(er3w45P5_NY( zj}9ulDBR=J1);9e=)?YN*P;Eg>v@j26lio%{Cer>8;s$3qeCBJkBw6m4=C>w_ZLG} z2JN;c;qzBJ9nB^UUAbdvxuYk+h0$}9>+26J7b!Q0qayBcW<7!SE9bCk{IBGeVqezjH*;x_d1<1apFx$yVW`@{|`9+@=ovuMFW1>sBmtecnyYuU`w`-z^B`vLr0 zbeMf@F8VNbP>v zE2ko`n+>SZem`Vh2+`M#RDrrsoo;gZG!$*`X(l~M2d}iun65)W^rZNow~Q~sX8m_w z!c$&iL^x@+qj0US86N`E@7#~j+ZH%{kje1rP`J`IUD_+xT5 z(^7>~5|n5?h$8==+Z=zcPl&$|qF4q#eNipMw8U-xt?CSL{=~H^0JQAJy#|<%$joFMW8zBP>X*{nDLe9PTS^oM6 z%s02xtap~cdL;w)4s{!>zv8yhCTl>v6AGk*ws;}hKmGel&2N}AUbW^-D+eWC4QC2} zcEHQuyi>pL^kXaa>yxXN&QR{t7?mfPv(Q_Z#^HZ6` z`sA_;L#z&&Ng-sb_!2WNHhekxLhl{vu*tGcgQyQ#^oJ+KmZvL8eDl%=g;O(R(eQEh zyYrRUs=>5pG_#I$PGcoii25&CZs&@!fu9vgs$SxxbT>DdRb}ZYFO?`+e75Ino~$29 zDm{WPT=WN7RJ_VnE)U4ePWUkSK{ZLJFU5Z2-5v6wZDWeirZJpP{$sGS;{|D#b@w>? z*IZm}bY6a}Uq|>%Bu(97Cg5N4@ zp1tk~!B2x8+V9)OEHB%z>lSm^z;uZcn9o>jC#5bJbpa~atgjV#CP1CJ%=vY#ZUrRZGhESaazHdj(4!_V#oTw(q$q`*yk@xz_uL-Pk{fJ)Z2z zo!^3GjEleX|A;|L_RtwVgCi*4J?!@5q6)rSp!*y2k=U2|(;uv0pu_@g?TDqr;h1Ia zn0>+WCzAaoWgB0-#h$u#&p8estZy4B94NRB32P+bdzopNT*&5Z5;TFK2NtC@<36BI z=$B4r-BUzAv5aWCYX!z!zg_lk(i@z1^tU|k%Y@W|{c5>;I3cwD$nD!?B6rL3Ek{9~ z_`KJaN1N$GFu*lZzms<14(q@*742W=}4UI78j@`ZMwG)v>JNV{JwcF`s)= z*^kS*L&l8>yw)~?rAHdow-z zA;9`36?K}KJ8$|a&jTL@;SGvh1yp7-9J)udpQiF-5 zK+zl#HTapg;|Qk)GnrOo_ONjF5fba67Q5NIJIEX#pGGAA+9vJe>%G3~F(wKS;C&$0SPP zM{xP$_tOf?+XRp9(@7c%f?u8cQ%mTj1;OF|8Q3J^ioOHk(`K@Y`25h3{INUtvEVHA z<7BfID3E_p_obQBrr{EOaQ&@mjBo&7-=0!K+<4FBze zyzOz*m2OeM_CIPAmJU#Krg77_JQO2l->#SJ*Mx?+DKj;q@3`*knZmCo#Mh6^o#C-1 z^2+}?Ket#i!1e*;jj5@{D`GLRC~`}*pKAdKKX!41kb?y5o1QX0ASSC@1sE#Sfi(Z zJ9%3SotCnX1}n)!UD2AV?Z`NGpL2V{Sp6I8_AW5m4N0IIDO+Q8RR;Rmlsj^&y0Avb zwEU2T6qZ}o2$(I>LO*w9b-yd)b!mL|zSJ~JKL>Sf(a9q6!h z;iYJl)pd+NzG{8DsRl|#_&VooLScMXOw`VC8r}V-4~NG^Kp9bXB>@A``N`nQtrfl>@ z7HFJU*@*N5@n4-)w^eH|EqZN5YF51+B|EYytG9Q<*=CIk*VD?Z<>d$zw z98!r5WRCOw(gV<8^&<7cVS8wV+mA(yR?wyMKv=T%B`on8>)+nu#cGo#&Xb?FAk**0 z!bJ90NLI+5DG5CYY4sB&MuB^vf*m z#jB_F8z9DMXQCj_B!pV99m)Go1A+q*=ZD2rAcBWE>(9+ISaNdclbk2Pr)JhM__2Q* zl7eFg-=AE9vTobL-n%YP7<0$*9CbAYJaOyHmGZ)Rhv~<;rO8lvGVrkK_9cwY>P-*EdaXUmuCBf=lkATo;+gorx~D@->NtUuBZL zhzWj<9M7QX;w7_E2Jd)|Qlx#+)(~zKgc~W=qGPPy_^);U>w~A0NR;7hfmt=#xFGG? z9=I5blMSollh4#(W+gL{lAME0mzK-qol+2`h04?K{>G$OLFW7iwV1NAU$siL9KuY* zMvmlIqu+Sj+7&wjdZx5Md$M>HLj*?yu164Tid9COvZ+hYGd^Cnje_=o9V*_OZEWsy?6~KMw_Q%hv)X;pNmGxr(A1v#$>S}UU zCw#0t0U?rckeY1ON}equaxdIg%`X4{K3t#De&|DqyW%rflT*;hFdNdSY6sQ5hAY!Y zZbDID99@(;6BfNbF8|w{3bXPOOqCzeV&#$riqkva_-&GxV>X`0SUjs&J;t%hHVbI{Fr^F%t72NEj&i9%Vy#-ezlVwc8AZ6m%?&G{o*zj~sx&N*t zn(B>kePd(ATKT59`@Kp~_i9h;Z;SVkH>hpCaWoAF{G-;R^oAfZ()h~BuCF*G+cV&8 zO1w9^{5!nMVhEj8S6v`10)zWpG}6yY6TQVZ=}*1w$FMK)N7E98^XTgR@cxT?laX;9P6 zpC4;$2Z@q`YMQU^VY%6Hk1F;KOgVI8mgPhOR@-SWT9VW-dUi_by$vN6&MzjZW%ufj5_P2J-ou zp&@?7>EppYn5kfp)X{7PMg9Zj3CU3ya+2}H@!7i&pT5(ET%`gnO=GWgx(-9qyv(1| z0eToOaP+{fy<_0*ulv4H!w<_Yi5c}IabcY)rO9_$7l;;9N_3qL#X3^=A5k+CC>FJr z_T!esln1P`N9b2D(ah()Y)~`AwzArV1(afoVztn4+ihrbFwgznC4-GO^W!BRI79DV z&iz?01#$2NN6;=QdQ8`F4RYWzBF=3O2=HXYMUJ#1uXr3`i`qr1*yti|OD)Bx$t}W? zRM`m;gC{Wfr|5u2bsm|brvKt<{xoSwpcqD|UCk#s#n z`4^c!PS1UO+ljP8c*j|`_$tU~dt<&bPr}VK0^a;Q4K`@gf6UT`U|(KPluleczCWwX zc(*Rs@JY{C7A?*9CKpOkUUY93Xr< z_X@h~30*bpvOeWRCIQBc`Z1ea~ zZpE~Tof=R1%xw>1=J=Q78_j32I?jcOw|s+m|9|ip61)g)YUS!ass2zEN52{TiqPL| zI5umQhcMRaLw}W_E@r5hwMhrkKvTrA9ZK#jKn|x~qyD@A@yF-QggS_Oj3-?+xtkU8 z$9*X#t4=|`df(QsA7WUlSZ}HxdJPlPPTfJxSs)9sCs2u9!KUnv_AaeX$T8CC;g_X_ zt`LknpeYYQ$tP)4nrVq#qGZeJcLS(&Rb;0La)R8o*LDk1jo5ccf6RTF*#Bo}A67I> z2a~bByX|+Z5hWLU>Uo19Li-ZmT{0(DuN`UJCw7x~Cs~G1NTp)4z?w>)<0!T=9?j7D zu1=im$98QOKf?}&fAP0YP{QzCzW<)szQgk06szV1b=a`uqu{!D15{1eYG){O6Z7%( zLrI}w7%I{9{E8OdO5>kbaI1_!38k`7_E}b_rylq;P52dx zBIhm%zR`mEKQD7NV_rg!o6u&)nl%(JJ!Lwtrc3nM@ATI^R|d%KME$Fb;G+K+Zu;_Y z2r4)3JMz!o#PAF6^;F8fpm(Cr<80v`tfL!F@!H9R>9zu1U+E{Y@@yB4U9ux2%xRsd zO6G^EKe^v%*IF^vZ|0l0HU*R~>}nwqKR1yvsAF%dFr-ke3VTWQLp6`!z5g7#i9Wr} z@Oj-DEZ*Y$<~ART(FbrQ=VvXr`LoDA{{9m)lxY6NOcVQ`;*rx1#2&Tg=i3W3+E&}JwJ%uS?e$$;i&OIt zt?7WV_iEoyhEc(1p>w+x&J(@iL!|$f1*>50yKXRTX9xNjP<^NuzJwFi8B!yc3}7g3 zfoArgEf$+*K9km5C+1|z|72tr;LU$&X?Jx$5IJG>hY5wvn8=f#J*9LITJCGzu;LNM zjGg!TeEF|pvzzuD^E$Ct`+EEL7mZy|Q2$7{C9Z`dv3x;N`zy0 z$WthAohy($){Q08?f>n3^9^f)0zX;1ivszD2lJcGztDFp{(Bf{2A+PG2)t`)ip5Vt zP6q5{grt;f%r_1Au%lagw~4D5miHEWZGNzUx`y?72D*)l+p#=n@)*xx^P`;UiI0*5 zf4t^bt|T3JUi$Ntx|BF?ryLy}ij^St2c-DIt!Coa z&O-US2NrVXnpm`#hV8U_B~&`F4~Yd*LcUn2hWhy+D15yU%t2X)&1ZF=kEPy$KDq+t zx=;!zo*8M5OS}jPZ5}&$tB-)UdI-(3{2lD+O3kHo&Vg6Yi(d6o66b=3PRkue*~d+a~e@ zI|@q$dv0US4e1O+LWgppt&e_}sfW#0?}OgPJ|q0c{%ca!JOuynZ^YC67SJ!YFTg5> zgvI+P58XI_3{s5G=DWOp04-I&9#&~R!j|P`sW?K9tsk9HuLPU-k4^ zGp$!p=Sf#G`%)Go*Y;ChE1JWcZ29)Go~xMV{b!4wuN87Q624jMnLtNy3>)_eqNgx< zAxz@z8uVt7U9^wIL&ZJ?DP_w}=(9&ke0qo2=&T~pD8^~=0wK`XW-m0w_EOoi(7bk?ptV;FI1q~=VB8Q%A}{KYKm z9@_H7)qLF`xQKP~vyu1C5c9)>{C~m~n5`7mJnH=b{ojA_r5Dj7c#3f+V`WG2f$k`| z!6gA(4_{Kh)bJFOGVhi5=eC2pT0Ha4FlO|`eO?kzIl%49`y~DGj}Z1_Vdl$hDK^wK z-3Ygt!Gztr(x@Vt@s*r;PO!xv$jj7I_IIcQ_f84}PA*~}7WIUWd8`g|q^(#&#aM_w z2NSE~LPxNYZ*i|^avYG0qXXuGg0bu2;0N*T%aFJnPp5S}2O8~^-oI4Q!jbd5Z6_%d zVPcUhI^t9mzST9~n>2h21LKtTt8o&(i6b1!(GMzdy8MCPmsL5aQ^D}D#2)%c9h&>o>7i4XR9|&J6bFv}J90=Y2U@3A z<(8_4A@r!UWlgCm#ze_xY>%giUv9%sqeFcz5(j|rOzqp*<*;J&hxai1+0)i$1E;XJFd{dI@G-eBPbJ+X_IM4a zN1ZSGuR}`$zn|oGB9g^DH`;^0AbI!UA1=99p`x?=+fT+{P^L1|W+*$3ufmVi8*k)d zN8kf1=HM&P{Ob9u+F4!f7in-6qjbYQbTZyuNAv{uPt#wsSjMt#nb5!fju_P8Rkv}Y z02{A;4Uw691f{FCPmDcpVZ++1wwhHYc>KcU*Vo@YP*^eYyI+Iw-|Rehk^99v2VusGmHbfGbIjKP`OzN-vEz$#Dveh? zhH<@grMph}4?5HR`1B(2)r;;stLC)?uhO~kLw_xnD;?iy)%_70k2(eD?5-2czDUV~X20eK zr|~&@KUg^veEbd++R(iU>rcU)R{k#SxY`w0S=P~Y7F+d5lhLdsx+HA1jkP;&{ahS`wk5M`9}7D zy3Vy$l}9&mTzhxXi5nNe$I^3m`NSer$bX+~p-IP~ch>{rYZ9R_N0Gyhg2<_c>81XY zV8XJcb7D-wHCTCFD*7B_1IG0aC0(F*hZ4WDCs`WoF?p&?a*0z2;{|KKeP`x{!i-p@ z6>cIwpcVVfZ2gVukVOOnGh(9M*QBiqr59_e|3V@Jm@_DRk7i=#InDnh@J48gDn9&O^8l2{G>-3!@PN+tJ5P2iHN!)(!#{j% z3ox?P_|!8Qb#Qs75VStP23bsThj$APV#rEc?D)c`d`G`PoPe%{ojVn@*km5N&(8}( z>)^J|Ny2U>o|itmI-u?OT!HZLb1XEetSArT#bObvrrq{+NPf{F%S`b7J6=?6>(9`^ z@LBUu7vjf(y#F!hZL3*mmp|$sy3ZTNdG-&V5vG8?l0r9Gk4CJ$A5fsn7XgFqv~|x3 z?s&rBEDO`&d8mo1H8A-V4eyiqg!ooIK&wmPssW=Uw5-<{C*~SMvC3NVmP#*-T-mgL z-5$5Y6Df*Z?A9^s$$8Bgt`{FCa5)E zi0f{UMqFeU)a1Gi1wYDtZ@w>qjAFe{#Ks5P1AB)*X2oEnh|w{R`4xLQAZ%lKqwCiyr2qR7!jN+Tvoy-&*kABsVQz|u9a(tYC0 zxF|FD4bZSWEG@y94d#`p*>R{aZwdF1Yl8}sso5n#PN>eattrx#!L+xsz2>`Wi5xt6 zoUKR_9r_spMhzJ;@u#obg-3koXBy4=xxEcrDL$Nzx}*UyY!qSLhlMe><*2l%EB z%NS{;4?^RI>u2@O(8Gg0hk}2leulQP;X_|P5IQuk(mRelx3FHdFM{2W;9U`6Yklcn zqTj*P?WFJq#!KI7yWk`aHAhPy(?7H&{8?O%#ycjU)#rx&soPOdQp~}9G~hafwL#?g4bu8v}RCv3~HY! zDY9CqqTZz}ipTr}m)^_kx2J0()O2>Z* zy|*HevP+oo^GSF=XQYD2q^&?EH7YFmo?#LCTnuv~>&`ICK0>zz0Z}1h4_@Ku!EyK1 zUTlz{&!S{&B62WmYnM(lqOAl4B~OzYMC(zV@V#^uQq+~?3OUXY+@Uj;?=$t$v2?MK z%I^ynr(Ur>H#iJvLJ~VT(}vZ9ysLTQW0>h~)uC2>1q=2*Jj_A(P=ghsbDQ&tb0}xP zqS!PSpG5fX-EoKsN*X-W*~HqgG}tg9%SQo9#A&BnrwESj_H1#8M+l66xkVCL_>9St z2cxg;Cb*?3HM83JN3e(-)Symt8Ir>KI7D_9L;RPBjVtdDq2bTB!xsoYT(`5w=^T3| z%>EpIUy|ULHBv8T?4qkcHyInX+BOSpPII0J?NESaW>_@!{cg2nC%6z0&?b^1RP+^j9sS&k)t^_MoIFp4dYYP-4-HB&*4aMl z#Xmi)SJV=pdftqM>x}zsAJ<@80_&3gk8T`XoAdRV(7|@sq7dF`2Z;I>y2G6&6jJpQ zM`IX{W5!pxxBP*Bp!A5R`(rU5A}{zc_p1A2Y*bYlHGKaN%NN`a-4VTt{myLFj1E7s znQtloEzfHxJz+uF)KHHt16jSRyEQS;kBLjNH5%GoR!nS2YnXiF)>7BeQt*-Qj|!-# zLdB?k*D}@)VEM~a%(RX~|H>*I9ap3a3_iWsncFpw$s?3aYkPiSfiTybM6HnOKa>Zo zR5iA-Qnh0T`;F&VUwp53OS=k+<$Z+fh9jQ^64Ro8u=_KO=E} zjySt`HDP|Dc;@eQN8%i3d}!!d0*+5!Ut&yEhR}iLTZ&5iFhsmdoTl6yf*mZgEqF>G z`FJo-ijgQJ((dQ9UpL1359T5F3-rL_-)rV8@q!qrX0P?-bugB9@=yCKN|&?E4O_Ilo5wXHG%+meJHH z(>aXUQS2AqrHs#RkrQ%iCZJ2nDN&U&4_eiCkTgCY#FCo@H>X_p5`5p0So+2=APN#< znoRCui=k_QPShg$UHUVd!e))#2{gCk-b6yQ_XW#V$Cu#ubd_0x<2Dw5Z`<&{WsW6T z2fpw{Oh7EB^)a2Z?ie(_Y$`tM0_b7?^wDJ}$SS_U{G_`V%a$p!lBe!rF^5Un^J+dq zugy$P(MiLSuVm4KEoM;uZTDN6v`WYiXtp%jO>l=Dna@(#m|*lKV~TjRO#~ZgInn;?{do+*87#D z7OeV1+S^>62fN-8oFGQpQ!;FTRG&QidAu;IKz(%aP8oC`qY^1*H-@^yyVfn~DxhFM ztUc~D!Q%;i%E`J-=;0^$V>kOeuw2fZjpHVf!_U%Y6Td@nJ*_nA8|2opaA+{fbN&KW zC|sV}X&w%xltE{=)9yhpHPh6;p&1yNK6|knhN0ldnc+wJzOdpPSDpFC^FvbT*DC#{4a+(kK=Jxl=0XKF$}om$0u#`oUB zN0^BHmGYU6u2QUee^Fvo+*T05JF&&W0xYuVy!%y(h}t+-*{Tm1 zRk35O^Nv&da?GGc9PEC(b`t&dkHDGd5cU%~Q4@0nwu*VqJtOl$Pu9Oz@5E)`jcn}^ zop2c}dHz$*spAJ0v>GiGmbYNNAak70suDJwp*f$qPWalddS<5YBK9_OMw{w8DFMrsbvLh)}IW#IsO z6z!Y4Zoj)9YEL_}rYRA*TGi-N(MgQNy{zT?FscWe3u`sqKl@;o$KU4UBS$ff`5lYU z3N;2Y??0(T6%CaK;y<2>lv06J`iE_=0BFpFQ7nGcRG<>)J2V&)^{cq3chGy=UVk8v5@qm!RpLWy*z4Dkut;wikHw z1A|Ga|EO(GLV9g_oM`p})^9tWNmzLSWOykWJMtJq>#}dLoSKFT{q|iY5zo+>qpjHL zWEt31>#W_D7=hAjWO;5ybIiL(e_iL=4k+GFpA$xE#uE1MQGbP9M9;?Lh(EYvA}?FP zcRnucS~2LjCE*FB}q#(6&7BY~>cg zN4!I{{A~4rf48vOfi^4ja>;qx^{F4LU3{hIC!V9%k;WgR_g$bhUsUDc;wNa4zvz3n z<~RhEN>O#(KLpd{p` zm{f=Zku$ja_M?O+B)W&ux$?(i!ChVf9{Wdxjy82_l`0Y1Vg-YRi+Vs7l}=exdt#AS z&%@Cjte8@}Y!*oK5E5Bkc}Yi0vE)|FqPpx96z>bleZCThS*m*YIZ~5Ss&&Kd*y9YtzheVM%yu>#|2LutvH!N_?6$UG`^q8 z1?S7xMSlsoLRe_N%g@#-B3HR#;88t;1vX=;R3HF_H;d->ITE>zoetwE7hIr{_Dw~O zQ6M%)`0uFWCi>vl-iPs;iesfhHwE}lVzn2~blcPxRQMRHyfD_nIvKr)DVt`b{Hcs#;brMwsYB3OR$JDA2`N{{p zEN`8d!9_zO;uqUH?6wG^zeE2Do!NeE#9tf*{ei{2sY^uwe|wvzygosc$At}wLrTyg ztg3k8MJWc99xk#j8pU!yNvWe+FQJq^TAiyt9J14guSy;4hPqa%|11=K<7-K+1HDI| z5c=LKU(h5Cl6@RK$L0vVP}H}zYg7x14l_IvTN}XqXU90F{p8T&@UEV1;{8xs8~cc3m7&7QY3~y%oil#d-eryTn|c z{$emcdKbR=);01`kP=FNRs}kTxL_e`vJgH0FC4z;?|Lj+l;Ex9kbSkbFn))8;)S2~ zFkGG;FE?xm)^QT2e3`w#=f-B3ju;7h%;Fa7GcIGlO0u1zu^sx6o0d3UH(>CuUqWUk zbYNn9=T9d8K`5wx*3FV0h-Ig8Oh1zzL31uoqnB(Tln#b0-X)zU@=d;4-aPR*E}|&a zpb~>MDQtHWqRP=Jlsksu@DnIB89p6jEr$)?ZLi%ry#^jUO`o^F6F!#Ml@2d08+2jw zkn&3-L(ku-p%jOwsPRZP%Ot=XUH^)wtlhp01@sPo^gJD4#LVr~EVlxT{-&j?Fj&Es zmR1w@$YkuWXm(T}dW=imcS?wv_d-J`h0V-~chE4QQ6|byyl*>_Z)q759C%f?2Zh7l z1b3YN>E+%L^q3}1s2)B*@J`PcHC-@+Rw`R%E{aB|V>%Sv^+*u-Y}U2gk3~UsUFMEv zW#T{t_V+X&y)m)y>6-Szk64#NN^qB_#Ts9>dPx$Iv)~ikAN$`~NXgHaJKb3iCIg~(bI+B-wBg=RZ+2zzq!aND>W)@7FlWJRiJV?LhD1ye^2peF zw1(-6k>|G#5F7}b5qVP$ImF>CA%&l8SpQ;g<=dO;&@}%kvnT%p^n{p=Q1t2&9J{>K z@gG!>0t$2W%A4pJ8B!$1CJu%9){Ql+myvv~k^gKo;e%rpsWhwTfvm<^iIK;?SbqNI z6TO3Pu~nPOvt=odxNkqRwH@|>vJaOoI+S%lpfzKiN^b_%(SEk#K|()w%`Bq!(u1Va z;_X~YGg#H?^DpKk@q1}seao^vf{k`gb-p8iAT?)r=cOpZCzfRPaMV;8-Z1dS9ZqkA zGRB31l^RA&HhNNb`3^nNs}(At)2D_6_{zgTQ3CU)%&t>-5&pe0ii{L*4{Weo-$99otKH0jiK+a{oY^2KsAt`!F|5Xb@b*b6RVtEMU>0sxe?mV#vxMgE3 z!i@uWZ@BJH6NJ#0yTip6RWY)RA?LZ%SfXQmNc+QU>^u6>oq#Z4r{ccO z`_kOtz1W`j%fblj2H!2bKC~M<3-XUg>wf|=2UB68g(XzQ@3mL1CVEo%8kSZpil9(& zt5u}w0A{cCZ3w=O<4@4V!Zav2?oi7wlY@e~tj(zE~Yyq~Ll{`r8iv{0x!{DO} zv@lw~lT$PPD&z=6=Ny}$hxSsjcoTz3==a-tcu<28I?LK}Wy-1vzL@H7(^7r?Nw~`@*AWSBzjQtm+o?>YGBoJ;AVrf3U-*Tw+q%B!n&4p zy~y~31P@x7Ez2qg1Ng6gD&rt{;=Bfn{}Fvp4{u&4ANn1S)vsB1kqDlHpHXd9HCYEp z5g~e2Rx0RXLLwawIEf91{#+Z-BY5VmfB2qpJ;2TbF+5rS7NKOxfTo$~X^#44p!Q0r z7?DbnUOGqsOQPN!w3S>U{97yPBKDmGFFohCM6sdn1; zru(7AcuR8n-+4^BK4W*M{vov8nmui*6bE&AM`gKUy&-QSx+eYWFw~!@PBFiq1Qj## zbvN)9DuXI->5Dv<*X*PK@Er;Y)c>^5LCM@CQKU;NIE&cxq+ zKiAgKCgzq=WNC@r$0okG>;C){7$Z7$?sZBAcs&w1mJcmxU3Y2UpUB%#QSWlX_)ZyS zDR#<5jhRA|QTv1Yzt(^pC!_wc@iXFsATKF-52EKrp6%}R4eU4mrrCJsGgd}wKh353 z0fnV*2LGezJOinG|1jP(E29#MsECGsqNQ(Sr=*C?ib_(HEg~|r$;{q+&x0=x=h&M_ z6p=)vB`V4P{=f3Vd2ya|&T~Ka{k^X1bIGcdV3*oPJDH@lSk1@7ew_H_XlWLF=L#%{h@m@1M5-J9_$g1xZ!Tc5N*(Zz?r2ThwWdCY2mW$_dHBnR` z`CiuEp*OoQImkNorm#80pHuU{@t7BAfy#~RMK6@#XVl*a@; z&A>aJ<6cj{y}$&Mx&x}2e|2_O|8M_|G8;;=aeGi3bUzQJ{E+PH}cMjLM3O0`)LDLY_4<2JD#x$CE9w` zm-od$G1F6;SUu6p>;72^=By<=AiLM+l8RwqiQ)Op%`wowlQ+fm0~I>lYyTc{p+mXo z?K-`NI7t3vv+Zw4Gc?AxE!+<`z{U?NhQ~wSLcy5N{ix>`uxC%e;oVjf*n9HC8qJzo z(kqyEH_=2B`_9j?KAEi{yo9N$WAEf4OFMs7{boN_?3EWzjoOQGrfh$WbaC=oI^uHm(57o?U;Fqo5rc z+3q=gW*Z0Eoi0Nk!Q)sfHF&|_w;VgT168NL+JKKpR7VrfAAHszXqdW_@Qqyx6eIpV zhYYm=*Xt&N*c8rJtmz$!&F2`7M^x2evbytz+2&smzwzJRlZgirpZ+>?)9o2H@Lkk8 z{<<8!E}nUnSY`+oOtw;SRWVq1=SjP(JR5}MZ76JSAbkAv`|ewRh5&6p%WjpsWS=b9 zXB)!FN&4)msomZ?P}sRU*>VAk}%VU%5g7HqQz5VCCxAr(>Fs+&EjQjvNOnL8e zo9OU`Uy3(49)f45y!ZX}xe0#X76k4c5+{ANZ&Mi)&9UWr%=ydGPNX;ct=UrWc1S$h zX(kk*1m!Jv?l}f)V(Ip0EO~!!KzLihr5l-vkoMBPc3zAXJskzuR2Pn8)#;#9sG0z@ zTsfqR)gm=xe9egM2qvpapT79T6AL0)i{3G9Lh388_~G*#F=C6UTfs;-HVYc}*6+B4 zl%`SJF9kE0@?A()dBY5N3|T(BYI+t^r)00ZI!HMCTu;6l?n;NUYmc&=Wd^ZqWMs?T za%ZG3@LsB>_+cH36Z`&?%vjws^LdS402KMnn{1D~1Nl;Y(o@%o&iP&b{w}g_Nt-&+ z6xnwHZ(NI!SSRd@^t>6q<}MYazdxTR`H9R&oR22I|7e8t*Kad7UGBwBRioGnCNZdf zf8orr8x&06*Xnv=yEe%anM<~uO@dZQP5!seT1Yv5@XY(C<`6w!E3))m3;HJeXR6pQ zU{Ytx!vW!5Xp~S3@tF&SZWBQ!ZVSV+b`hZ9|&7eG?NV2j0NwwS=E+^52h_^-KA~^XgSMs z=)unf%!ml$%2lqz`h`@R6#H2yh@Uc*?>a^LT*W)qJ3NBGkm|M+uCqw(qs3btk6CSe>#CbM$dz-s@HS70TOOf2izu2!*HCvVQg>^T^vmWn8D% zL5redXbp=jR!$553d#sXBfIY23eGMll+gSau=X#|1K4P{h|j%xAY;g5nw;mlzxP*p zD?v$tfWDYqCHAnM9or@J9c!*H*{eQ22wCF(>t3$;fL0T&J!d8OFj|x;l7;>gt8)bA zAJf#auAp{hvu6Ni+_|i^HhvY_UpwCOaz6z1*|#LP;vArM^U;#)k)qIGo9NDoel_kriV z&=OOy_TFBiJBgi6@HTr7Rbr>C7_GKrAy3+%K0C?59j;N^_+}FPa=D|W->io&rX2c@ zUq4B&0In?-{m3QLZ0~99}Rn9Ac*l`Y@8^~Wl+Ul#> z)MZz!^xVBFYg~gNHmg>WyZNw5g!+}^w>{xaIdDrBl|y5qtDspx5f&z$*%9m2fDQJo zJg*NXV7j85(e{aE45?Kdv%K*DlPi;t3jIFt3>qfPU)`1= zzKbu_+t*#;gyM~ndU?nDu=|jG>TP@mw#%yD;xn|c?pTFp-p5*q{4~wkyw(NV)e{~K zo^L}dE?@h{l83R>?&hW@&XZs)9nlv$=1h776puP>$;5v5PwUSzR$wLX>nVNFs|P$u6ISzw)K6;z=GQJ;{O727aAZjH3FkHp_+&clm%!Pd;xbx>bk{m9;h_(#An zo7ra%_U8A-s>grBkOAGxn)z43`P3OD_0fxvGZ|SI^63t?=MAN7v??O~^shg6eZC5} zYTeHLVq(Oc?Yo~f>_ljrTYmTJwk(tc87m|oP6PKURS7EX6V~w>%!~%^!G@}}jki_F zdD{LK$F+aVNDa4o)|XX^RzKW27ws94{#`x)<2dmdO2|`{Oj)37)N$B2fg6KXKYP8s z=?y-v;&(-MT4JT9_%hpOEi7+bwcENg0Nmpon?-D0px{pu=bF|#(A4ObL@R0nk27?g zjT|4qQnQ;O%~lbjOHFsQuiuEbR_SZ=r2T=KN|_pb@e8YZqQslVZ()-rmF1yw4_3%& zYH}1*VD^bq3)+nwNG*CWB1jp*vN!pnEC1ONj>+t?7|t*(dA#QUCHEI(@3{8pSjCoO3Yn{h*JH0=k#%TA z5mxGlt#H$>K*tJ1-fPRkL6&|G4i9xKoIGvgpmZFn#f_Aj3OJzA;_}{V#|O|=*?OW= z)T_bI5X;IEe087h>@kH1UTK>Akqo4$I)S3pq}G+j9cjpxEQ^E8Vf zO?z~|mFH)S4ff71U{OZPaf?I3oTHd}<@?`AeRs&&z(Z+!MtXy6)!&OZPQy!ykjiS# zo8TjLRk-h0KE|mRU$pX9Bj+MB#bLJB@brsGpV7)y=+ITl4A}D-@~2AUOYKWBx3pp* z!$}QwFFts2T9e$z)baEX;-_y?cjcP#`3Lp+S_Mj6!KkKK-uW?x1~m+KkGws@2%*vT zLiwYF!})VvxvIVmG&mlJUp_Dgy??~G-g0peoh$yk)x(`w+Iv{pIdTU!9Qo)}!fJ%c zKjho@)(%5qf7*Uu{VQ0OHyyBBgZe^cXBPJW7Cy0Zn3oo{@Zr5n>S4K&xgLahWrA?_=F_ z{}ngpv}e^W4~#-?*!km%cib@YrR^{u#SCejkc=ZC2r18;d9rm8s!CWL1EL>5q=LeRqoqkiAN=t8pw(swE%M~* zV%Ns57~MW0j%g?tXusvK?*ueR|2Rhxmcw?xlND#2&9O4p!n7v69?Fas<+&Q{G3u3< zs_&6O!kx%JaQ~1sQ21{|Onb3o%HLs@--_l?(4%tv!Vov4+ipFm-zkTsyB+$zPIy4t zqc28l|KwxU{M)r!8hfFLD(4|FjnFjCF|aN{6q~FSZ$|w&iGD}3LzOuI>v_b@dDSA2 zn)rRCpv@k797OG3taU~2w%7mmg`M?UN}+CvmpYT@2nRz6ej)PZ#MPp(Y}p6URA2R zx6;V-Uk0Z#xG^-`?Cj%XC7636H70%HKS*KT%i;}AmFu?^THg1>yk{3o z-}bp-*$yA|(XE90vSvf+J;J+3!Ops>j6(1zR?vFpM$V&8EyWGs4-5oBWf13V%QepS%tGbLq)kVF5E0$eY=+zWHbf5+5Pdv?Rq>-lK zHI4Mnv^V|A;e-pA?-BoA{TCZ?lxXhq(1`m?IwNW5=~^{vAhdL7dF}m+~)f zU_<#*Rqx3kSWmc|i$wnUd5^YgyX#{y$>hjwC%UeUXJ@Nr23B4690{u8$8wH6 zF}_8E=ybG-L-k8DVE=~z!NN6=ziE}Y@OZH0UEG_H{U@=!Q?BS!A!5%L+r&5gU6>Jf zbz#pO6^cfj(w3o;^t#`tau;wx|3g>4`vz=4KRO*=_URjhC?B1;+Q$fkt+F%L>M4+S zw^~w1nFj|yUtn4sPa*T8ghvVKYoR74*TPFh8ymM7SLV|dp{?1O_3GIwsIj9)tg7T- z%?%~gyotpbB^wA;|zWz{Il70fhog_z- z?iFCg@Nd(&zbqJbI(wV{E`Ri6(0Bg8wTgLqzf$-1oyU?qS=Q_R0$4u{E#h6XSeN$r z{MPDkP_^c2=5n7Px&noCX{paiXN7|jMWtzo=OuQ zYvHEpL%b3c2s^uJb}nfdTlbxjwcj3uROt=x#+US}{15MIXb~}zt5)KUC@o#@a zFk`2*RNW{qmLzIfy1n`X;k(**)Zfv9V%?=d>eCpKJ6(63Ntx)7Q-htug72X0;&z&s znmn{o@8?&}B*06D*OI%sR)~(?!N$FP7CV%yLbj3bty4A3LhJ2Gh_I+;c;QOUwcDtD z`*Voit$n_h);fKQ9RSVaVFR;S|3RbaW?}!rmso#M zzGK?&DNwd1Zr*RR9?FtDJuD;cVoT+bK316{SRLhOO#65Mii$iRF7@yMeM61US6xLc zenc^)aA{(j`m|bK_ZsL+%j$|VAv%4q4Vfc8zk&WxujFF?D&f8Bjz-UqVQxbeZ(I`bvzk3( zDIW}gQbkefCY?&s3#!J=$(l)?-wVHFzfM9QtK|HzDu0Ohz20K)pENi6kGSmF$O$(E9Q3l^n9qFIQ2HQ~EB1o$l|B=DzX6 zLgxXezf2RDCw4}6AX^+eKP(hE$X1hHU9~92)t8w3DwlzEM-^l!KWE67+X;;i=z4lz zU7@TmfVJ=u>63L05OB36`+vU2JnU1~q3A-q>*sHZ(6sw?THXF)pdD2oy{az@&qJ)o zwQ{b)3wMg77~5I0jvsI9EfhrSN$WlLj5E+*X@q-b=T6LDf7+KWtpSt~zooR4J0x$i zT8V@Q|%{0h3t z9_>7|V2ibnU8Eo+-=zgQu+zQ+r

  • 42eQxGXdkkHY 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�nUBv&yDuJgQRacbPYe>!JJ&C^G;Q-VTd26Xlv(b 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 From 3c699db227b139e13d5012b5bb677891afbdb877 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Fri, 12 Sep 2025 13:33:58 -0500 Subject: [PATCH 13/18] Refactor dynamics.py to use NoProgressMeter for progress tracking and update coils_from_BOOZXFORM.py for improved parameters and plotting clarity. --- essos/dynamics.py | 23 +++++++------- examples/coils_from_BOOZXFORM.py | 54 +++++++++++++++----------------- 2 files changed, 37 insertions(+), 40 deletions(-) diff --git a/essos/dynamics.py b/essos/dynamics.py index 5adb0e3..134cf2a 100644 --- a/essos/dynamics.py +++ b/essos/dynamics.py @@ -5,7 +5,7 @@ from jax.sharding import Mesh, PartitionSpec, NamedSharding from jax import jit, vmap, tree_util, random, lax, device_put from functools import partial -from diffrax import diffeqsolve, ODETerm, SaveAt, Tsit5, PIDController, Event, TqdmProgressMeter +from diffrax import diffeqsolve, ODETerm, SaveAt, Tsit5, PIDController, Event, TqdmProgressMeter, NoProgressMeter from diffrax import ControlTerm,UnsafeBrownianPath,MultiTerm,ItoMilstein,ClipStepSizeController #For collisions we need this to solve stochastic differential equation import diffrax from essos.coils import Coils @@ -501,6 +501,7 @@ def __init__(self, trajectories_input=None, initial_conditions=None, times_to_tr self.particles = particles self.species=species self.tag_gc=tag_gc + self.progress_meter = NoProgressMeter() # TqdmProgressMeter() if condition is None: self.condition = lambda t, y, args, **kwargs: False if isinstance(field, Vmec): @@ -694,7 +695,7 @@ def update_state(state, _): #stepsize_controller = PIDController(pcoeff=0.4, icoeff=0.3, dcoeff=0, rtol=self.tol_step_size, atol=self.tol_step_size), max_steps=10000000000, event = Event(self.condition), - progress_meter=TqdmProgressMeter(), + progress_meter=self.progress_meter, ).ys elif self.model == 'GuidingCenterCollisionsMuAdaptative': import warnings @@ -720,7 +721,7 @@ def update_state(state, _): stepsize_controller=ClipStepSizeController(controller=PIDController(pcoeff=0.1, icoeff=0.3, dcoeff=0.0, rtol=self.rtol, atol=self.atol,dtmin=dt0,dtmax=1.e-4,force_dtmin=True),step_ts=self.times,store_rejected_steps=self.rejected_steps), max_steps=10000000000, event = Event(self.condition), - progress_meter=TqdmProgressMeter(), + progress_meter=self.progress_meter, ).ys elif self.model == 'GuidingCenterCollisionsMuFixed': import warnings @@ -744,7 +745,7 @@ def update_state(state, _): # adjoint=DirectAdjoint(), max_steps=10000000000, event = Event(self.condition), - progress_meter=TqdmProgressMeter(), + progress_meter=self.progress_meter, ).ys elif self.model == 'GuidingCenterCollisionsMuIto': import warnings @@ -768,7 +769,7 @@ def update_state(state, _): # adjoint=DirectAdjoint(), max_steps=10000000000, event = Event(self.condition), - progress_meter=TqdmProgressMeter(), + progress_meter=self.progress_meter, ).ys elif self.model == 'FullOrbitCollisions': import warnings @@ -794,7 +795,7 @@ def update_state(state, _): stepsize_controller = PIDController(pcoeff=0.4, icoeff=0.3, dcoeff=0, rtol=self.tol_step_size, atol=self.tol_step_size,dtmin=dt0), max_steps=10000000000, event = Event(self.condition), - progress_meter=TqdmProgressMeter() + progress_meter=self.progress_meter, ).ys elif self.model == 'GuidingCenterAdaptative' : import warnings @@ -810,7 +811,7 @@ def update_state(state, _): saveat=SaveAt(ts=self.times), throw=False, # adjoint=DirectAdjoint(), - progress_meter=TqdmProgressMeter(), + progress_meter=self.progress_meter, stepsize_controller = PIDController(pcoeff=0.4, icoeff=0.3, dcoeff=0, rtol=self.rtol, atol=self.atol), max_steps=10000000000, event = Event(self.condition) @@ -829,7 +830,7 @@ def update_state(state, _): saveat=SaveAt(ts=self.times), throw=False, # adjoint=DirectAdjoint(), - progress_meter=TqdmProgressMeter(), + progress_meter=self.progress_meter, stepsize_controller = PIDController(pcoeff=0.4, icoeff=0.3, dcoeff=0, rtol=self.rtol, atol=self.atol), max_steps=10000000000, event = Event(self.condition) @@ -849,14 +850,14 @@ def update_state(state, _): saveat=SaveAt(ts=self.times), throw=False, # adjoint=DirectAdjoint(), - progress_meter=TqdmProgressMeter(), + progress_meter=self.progress_meter, max_steps=10000000000, event = Event(self.condition) ).ys return trajectory - return jit(vmap(compute_trajectory,in_axes=(0,0)), in_shardings=(sharding,sharding_index), out_shardings=sharding)( - device_put(self.initial_conditions, sharding), device_put(self.particles.random_keys if self.particles else None, sharding_index)) + return jit(vmap(compute_trajectory,in_axes=(0,None)), in_shardings=(sharding,None), out_shardings=sharding)( + device_put(self.initial_conditions, sharding), None) #x=jax.device_put(self.initial_conditions, sharding) #y=jax.device_put(self.particles.random_keys, sharding_index) #sharded_fun = jax.jit(jax.shard_map(jax.vmap(compute_trajectory,in_axes=(0,0)), mesh=mesh, in_specs=(spec,spec_index), out_specs=spec)) diff --git a/examples/coils_from_BOOZXFORM.py b/examples/coils_from_BOOZXFORM.py index 8369a53..f956e17 100644 --- a/examples/coils_from_BOOZXFORM.py +++ b/examples/coils_from_BOOZXFORM.py @@ -14,17 +14,16 @@ from essos.coils import fit_dofs_from_coils, Curves, Coils import matplotlib.pyplot as plt -# file_to_use = 'LandremanPaul2021_QA_reactorScale_lowres' +file_to_use = 'LandremanPaul2021_QA_reactorScale_lowres' # file_to_use = 'HSX_QHS_vacuum_ns201' -file_to_use = 'W7-X_standard_configuration' +# file_to_use = 'W7-X_standard_configuration' -js = None -ntheta = 41 -ncoils = 6 -tmax = 1200 +ntheta = 51 +ncoils = 10 +tmax = 1300 nfieldlines_per_core=1 -trace_tolerance = 1e-5 -num_steps = 20000 +trace_tolerance = 1e-12 +num_steps = 22000 order_Fourier_coils = 4 current_on_each_coil = 2e8 refine_nphi_for_surface_plot = 4 @@ -78,6 +77,7 @@ phi_Boozerplot, theta_Boozerplot = np.meshgrid(phi1D_Boozerplot, theta1D) modB_Boozerplot = np.zeros_like(theta_Boozerplot) +js = None for jmn in range(b.mnboz): m = b.xm_b[jmn] n = b.xn_b[jmn] @@ -284,7 +284,7 @@ for jmn in range(b.mnboz): Rsurf_phi0 += (b.rmnc_b[jmn, js] * np.cos(b.xm_b[jmn] * theta1D - b.xn_b[jmn] * shift_surface_plot_for_phi))[0] Zsurf_phi0 += (b.zmns_b[jmn, js] * np.sin(b.xm_b[jmn] * theta1D - b.xn_b[jmn] * shift_surface_plot_for_phi))[0] -ax2.plot(Rsurf_phi0, Zsurf_phi0, color='black', alpha=1.0, linewidth=2, label='CWS and Plasma Boundary') +ax2.plot(Rsurf_phi0, Zsurf_phi0, color='black', alpha=1.0, linewidth=2, label='Surface of Constant Boozer Angle') ax2.set_xlabel('R (m)') ax2.set_ylabel('Z (m)') @@ -303,26 +303,22 @@ if plot_fieldlines_constant_phi: ax2.plot([], [], color='red', label='Fieldlines (constant phi)') -# # Plot VMEC flux surfaces for reference -# iradii = np.linspace(0,vmec.wout.ns-1,num=nradius).round() -# iradii = [int(i) for i in iradii] -# R = np.zeros((nzeta,nradius,ntheta)) -# Z = np.zeros((nzeta,nradius,ntheta)) -# Raxis = np.zeros(nzeta) -# Zaxis = np.zeros(nzeta) -# phis = zeta - -# ## Obtain VMEC QFM surfaces -# for itheta in range(ntheta): -# for izeta in range(nzeta): -# for iradius in range(nradius): -# for imode, xnn in enumerate(vmec.wout.xn): -# angle = vmec.wout.xm[imode]*theta[itheta] - xnn*zeta[izeta] -# R[izeta,iradius,itheta] += vmec.wout.rmnc[imode, iradii[iradius]]*np.cos(angle) -# Z[izeta,iradius,itheta] += vmec.wout.zmns[imode, iradii[iradius]]*np.sin(angle) - -# ax2.legend() -# plt.tight_layout() +# Plot VMEC flux surfaces for reference +# Match the surfaces of VMEC closest to the radii of the fieldlines traced +s_fieldlines = (jnp.linspace(sum(vmec.wout.rmnc)[0], sum(vmec.wout.rmnc)[-1], nfieldlines) - sum(vmec.wout.rmnc)[0])/ \ + (sum(vmec.wout.rmnc)[-1] - sum(vmec.wout.rmnc)[0]) +s_vmec = jnp.sqrt(jnp.linspace(0, 1, vmec.wout.ns)) +iradii = np.array([np.abs(s_vmec - s).argmin() for s in s_fieldlines]) +for iradius in range(nfieldlines): + R = [0]*ntheta + Z = [0]*ntheta + for imode, xnn in enumerate(vmec.wout.xn): + angle = vmec.wout.xm[imode]*theta1D - xnn*shift_surface_plot_for_phi + R += vmec.wout.rmnc[imode, iradii[iradius]]*np.cos(angle) + Z += vmec.wout.zmns[imode, iradii[iradius]]*np.sin(angle) + ax2.plot(R, Z, 'r--', linewidth=1.5, label='Surfaces of Constant Cylindrical Angle' if iradius ==0 else '_nolegend_') +ax2.legend() +plt.tight_layout() fig = plt.figure() plt.contourf(phi_Boozerplot, theta_Boozerplot, modB_Boozerplot, levels=6) From 0510d4b5ea6acf8e206721692a2e48c0a82d7811 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sat, 13 Sep 2025 15:47:42 -0500 Subject: [PATCH 14/18] Refactor dynamics.py to switch progress meter to TqdmProgressMeter; update coils_from_BOOZXFORM.py and coils_from_nearaxis.py for improved parameters and plotting clarity. --- essos/dynamics.py | 2 +- essos/fields.py | 112 +++++-- ..._BOOZXFORM.py => coils_from_BOOZ_XFORM.py} | 30 +- examples/coils_from_nearaxis.py | 293 ++++++++---------- 4 files changed, 233 insertions(+), 204 deletions(-) rename examples/{coils_from_BOOZXFORM.py => coils_from_BOOZ_XFORM.py} (94%) diff --git a/essos/dynamics.py b/essos/dynamics.py index 134cf2a..f65a127 100644 --- a/essos/dynamics.py +++ b/essos/dynamics.py @@ -501,7 +501,7 @@ def __init__(self, trajectories_input=None, initial_conditions=None, times_to_tr self.particles = particles self.species=species self.tag_gc=tag_gc - self.progress_meter = NoProgressMeter() # TqdmProgressMeter() + self.progress_meter = TqdmProgressMeter() # NoProgressMeter() # TqdmProgressMeter() if condition is None: self.condition = lambda t, y, args, **kwargs: False if isinstance(field, Vmec): diff --git a/essos/fields.py b/essos/fields.py index e0a7290..1b19a3b 100644 --- a/essos/fields.py +++ b/essos/fields.py @@ -15,7 +15,7 @@ def __init__(self, coils): self.currents = coils.currents self.gamma = coils.gamma self.gamma_dash = coils.gamma_dash - #self.gamma_dashdash = coils.gamma_dashdash + self.gamma_dashdash = coils.gamma_dashdash self.coils_length=jnp.array([jnp.mean(jnp.linalg.norm(d1gamma, axis=1)) for d1gamma in self.gamma_dash]) self.coils_curvature= vmap(compute_curvature)(self.gamma_dash, coils.gamma_dashdash) self.r_axis=jnp.mean(jnp.sqrt(vmap(lambda dofs: dofs[0, 0]**2 + dofs[1, 0]**2)(self.coils.dofs_curves))) @@ -77,7 +77,37 @@ def kappa(self, points): def to_xyz(self, points): return points - +@jit +def d_dtheta_fft(f_theta): + ntheta = f_theta.shape[-1] + k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integer modes + Fk = jnp.fft.fft(f_theta, axis=-1) + dF = (1j * k) * Fk + return jnp.fft.ifft(dF, axis=-1).real * (2*jnp.pi) + +@jit +def d2_dtheta2_fft(f_theta): + ntheta = f_theta.shape[-1] + k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integer modes + Fk = jnp.fft.fft(f_theta, axis=-1) + d2F = -(k**2) * Fk + return jnp.fft.ifft(d2F, axis=-1).real * (2*jnp.pi)**2 + +@jit +def gamma_dash_from_gamma(gamma): + return jnp.stack([ + d_dtheta_fft(gamma[..., 0]), + d_dtheta_fft(gamma[..., 1]), + d_dtheta_fft(gamma[..., 2]), + ], axis=-1) + +@jit +def gamma_dashdash_from_gamma(gamma): + return jnp.stack([ + d2_dtheta2_fft(gamma[..., 0]), + d2_dtheta2_fft(gamma[..., 1]), + d2_dtheta2_fft(gamma[..., 2]), + ], axis=-1) class BiotSavart_from_gamma(): def __init__(self, gamma,gamma_dash=None,gamma_dashdash=None, currents=None): @@ -91,10 +121,14 @@ def __init__(self, gamma,gamma_dash=None,gamma_dashdash=None, currents=None): self.z_axis=jnp.average(jnp.average(gamma,axis=1)[:,2]) if gamma_dash is not None: self.gamma_dash = gamma_dash - self.coils_length=jnp.array([jnp.mean(jnp.linalg.norm(d1gamma, axis=1)) for d1gamma in gamma_dash]) + else: + self.gamma_dash = gamma_dash_from_gamma(gamma) + self.coils_length=jnp.array([jnp.mean(jnp.linalg.norm(d1gamma, axis=1)) for d1gamma in self.gamma_dash]) if gamma_dashdash is not None: self.gamma_dashdash = gamma_dashdash - self.coils_curvature= vmap(compute_curvature)(gamma_dash, gamma_dashdash) + else: + self.gamma_dashdash = gamma_dashdash_from_gamma(gamma) + self.coils_curvature= vmap(compute_curvature)(gamma_dash, gamma_dashdash) @partial(jit, static_argnames=['self']) def sqrtg(self, points): @@ -620,7 +654,14 @@ def body_fun(i, x): L_grad_B, inv_L_grad_B, torsion, curvature, varphi, R0p, Z0p) @jit - def phi_of_theta_varphi_func(self, phi_0, r, theta, varphi): + def residual_phi0_of_theta_varphi_func(self, phi_0, r, theta, varphi): + # Residual = phi + nu - varphi = 0 + # Compute phi off axis + X_at_this_theta = r * (self.X1c_untwisted * jnp.cos(theta) + self.X1s_untwisted * jnp.sin(theta)) + Y_at_this_theta = r * (self.Y1c_untwisted * jnp.cos(theta) + self.Y1s_untwisted * jnp.sin(theta)) + _, _, phi = self.Frenet_to_cylindrical_1_point(phi_0, X_at_this_theta, Y_at_this_theta) + # phi = phi + 2 * jnp.pi * (phi < 0) - 2 * jnp.pi * (phi > 2 * jnp.pi) + # Compute nu = nu0 + r (nu1c cos theta + nu1s sin theta) nu0 = self.interpolated_array_at_point(self.varphi-self.phi, phi_0) X1c = self.interpolated_array_at_point(self.X1c_untwisted, phi_0) X1s = self.interpolated_array_at_point(self.X1s_untwisted, phi_0) @@ -635,16 +676,18 @@ def phi_of_theta_varphi_func(self, phi_0, r, theta, varphi): Z0p = self.interpolated_array_at_point(self.Z0p, phi_0) nu1c = X1c * (bR * Z0p - bZ * R0p)/R0 + Y1c * (nZ * R0p - nR * Z0p)/R0 nu1s = X1s * (bR * Z0p - bZ * R0p)/R0 + Y1s * (nZ * R0p - nR * Z0p)/R0 - return phi_0 + nu0 + r * (nu1c * jnp.cos(theta) + nu1s * jnp.sin(theta)) - varphi + nu = nu0 + r * (nu1c * jnp.cos(theta) + nu1s * jnp.sin(theta)) + # Return residual + return phi + nu - varphi @jit def phi_of_theta_varphi(self, r, theta, varphi): - residual = partial(self.phi_of_theta_varphi_func, theta=theta, r=r, varphi=varphi) + residual = partial(self.residual_phi0_of_theta_varphi_func, theta=theta, r=r, varphi=varphi) phi_on_axis = lax.custom_root(residual, varphi, newton, lambda g, y: y / g(1.0)) X_at_this_theta = r * (self.X1c_untwisted * jnp.cos(theta) + self.X1s_untwisted * jnp.sin(theta)) Y_at_this_theta = r * (self.Y1c_untwisted * jnp.cos(theta) + self.Y1s_untwisted * jnp.sin(theta)) _, _, phi_off_axis = self.Frenet_to_cylindrical_1_point(phi_on_axis, X_at_this_theta, Y_at_this_theta) - return phi_off_axis + 2 * jnp.pi * (phi_off_axis < 0) - 2 * jnp.pi * (phi_off_axis > 2 * jnp.pi) + return phi_off_axis# + 2 * jnp.pi * (phi_off_axis < 0) - 2 * jnp.pi * (phi_off_axis > 2 * jnp.pi) @jit def interpolated_array_at_point(self,array,point): @@ -701,7 +744,7 @@ def Frenet_to_cylindrical_1_point(self, phi0, X_at_this_theta, Y_at_this_theta): return total_R, total_z, total_phi @partial(jit, static_argnames=['ntheta']) - def Frenet_to_cylindrical(self, r, ntheta=20): + def Frenet_to_cylindrical(self, r, ntheta=20, phi_is_varphi=False): nphi_conversion = self.nphi theta = jnp.linspace(0, 2 * jnp.pi, ntheta, endpoint=False) phi_conversion = jnp.linspace(0, 2 * jnp.pi / self.nfp, nphi_conversion, endpoint=False) @@ -713,9 +756,28 @@ def compute_for_theta(theta_j): Y_at_this_theta = r * (self.Y1c_untwisted * costheta + self.Y1s_untwisted * sintheta) def compute_for_phi(phi_target): - residual = partial(self.Frenet_to_cylindrical_residual_func, phi_target=phi_target, - X_at_this_theta=X_at_this_theta, Y_at_this_theta=Y_at_this_theta) + + def residual(z): + return jax.lax.cond( + phi_is_varphi, + # Branch A: solve for phi0 so that phi+nu-varphi = 0 + lambda _: self.residual_phi0_of_theta_varphi_func( + z, r=r, theta=theta_j, varphi=phi_target + ), + # Branch B: solve for phi so Frenet_to_cylindrical_residual_func = 0 + lambda _: self.Frenet_to_cylindrical_residual_func( + z, phi_target=phi_target, + X_at_this_theta=X_at_this_theta, + Y_at_this_theta=Y_at_this_theta + ), + operand=None + ) + # residual = partial(self.Frenet_to_cylindrical_residual_func, phi_target=phi_target, + # X_at_this_theta=X_at_this_theta, Y_at_this_theta=Y_at_this_theta) + # residual = partial(self.residual_phi0_of_theta_varphi_func, theta=theta_j, r=r, varphi=phi_target) + phi0_solution = lax.custom_root(residual, phi_target, newton, lambda g, y: y / g(1.0)) + final_R, final_Z, _ = self.Frenet_to_cylindrical_1_point(phi0_solution, X_at_this_theta, Y_at_this_theta) return final_R, final_Z, phi0_solution @@ -761,28 +823,32 @@ def compute_RBC_ZBS(m, n): return RBC, ZBS @partial(jit, static_argnames=['ntheta_fourier', 'mpol', 'ntor', 'ntheta', 'nphi', 'phi_is_varphi']) - def get_boundary(self, r=0.1, ntheta=30, nphi=120, ntheta_fourier=20, mpol=5, ntor=5, phi_is_varphi=False): - R_2D, Z_2D, _ = self.Frenet_to_cylindrical(r, ntheta=ntheta_fourier) + def get_boundary(self, r=0.1, ntheta=30, nphi=120, ntheta_fourier=20, mpol=5, ntor=5, phi_is_varphi=False, phi_offset=0.0): + R_2D, Z_2D, _ = self.Frenet_to_cylindrical(r, ntheta=ntheta_fourier, phi_is_varphi=phi_is_varphi) RBC, ZBS = self.to_Fourier(R_2D, Z_2D, self.nfp, mpol=mpol, ntor=ntor) theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) - phi1D = jax.lax.cond( - phi_is_varphi, - lambda _: jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False), - lambda _: jnp.linspace(0, 2 * jnp.pi, nphi), - operand=None - ) - phi2D, theta2D = jnp.meshgrid(phi1D, theta1D, indexing='ij') + + # phi1D = jax.lax.cond( + # phi_is_varphi, + # lambda _: jnp.linspace(2*jnp.pi/nphi/2, 2*jnp.pi + 2*jnp.pi/nphi/2, nphi, endpoint=False), + # lambda _: jnp.linspace(0, 2 * jnp.pi, nphi), + # operand=None + # ) + # phi1D += phi_offset + phi1D = jnp.linspace(0, 2 * jnp.pi, nphi) + phi_offset + + phi2D_original, theta2D = jnp.meshgrid(phi1D, theta1D, indexing='ij') phi2D = jax.lax.cond( phi_is_varphi, - lambda _: vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: self.phi_of_theta_varphi(r, theta, varphi))(theta_row, varphi_row))(theta2D, phi2D), - lambda _: phi2D, + lambda _: vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: self.phi_of_theta_varphi(r, theta, varphi))(theta_row, varphi_row))(theta2D, phi2D_original), + lambda _: phi2D_original, operand=None ) def compute_RZ(m, n): - angle = m * theta2D - n * self.nfp * phi2D + angle = m * theta2D - n * self.nfp * phi2D_original return RBC[n + ntor, m] * jnp.cos(angle), ZBS[n + ntor, m] * jnp.sin(angle) m_vals = jnp.arange(mpol + 1) diff --git a/examples/coils_from_BOOZXFORM.py b/examples/coils_from_BOOZ_XFORM.py similarity index 94% rename from examples/coils_from_BOOZXFORM.py rename to examples/coils_from_BOOZ_XFORM.py index f956e17..fdb44b3 100644 --- a/examples/coils_from_BOOZXFORM.py +++ b/examples/coils_from_BOOZ_XFORM.py @@ -18,11 +18,11 @@ # file_to_use = 'HSX_QHS_vacuum_ns201' # file_to_use = 'W7-X_standard_configuration' -ntheta = 51 -ncoils = 10 -tmax = 1300 +ntheta = 41 +ncoils = 4 +tmax = 800 nfieldlines_per_core=1 -trace_tolerance = 1e-12 +trace_tolerance = 1e-8 num_steps = 22000 order_Fourier_coils = 4 current_on_each_coil = 2e8 @@ -40,18 +40,15 @@ wout_filename = os.path.join(input_dir, 'wout_'+file_to_use+'.nc') boozmn_filename = os.path.join(output_dir, 'boozmn_'+file_to_use+'.nc') -# if boozmn_filename.split('/')[-1] in os.listdir(output_dir): -# print(f"File {boozmn_filename} already exists, skipping computation") -# b = bx.Booz_xform() -# b.read_boozmn(boozmn_filename) -# else: print(f"Computing {boozmn_filename}") vmec = Vmec(wout_filename, verbose=False) b = Boozer(vmec, mpol=64, ntor=64, verbose=True) +time0 = time() b.register([1]) b.run() # b.bx.write_boozmn(boozmn_filename) b = b.bx +print(f"Computing Boozer harmonics took {time()-time0:.2f} seconds") current_on_each_coil = current_on_each_coil / ncoils*vmec.wout.Aminor_p**2/1.7**2 nfieldlines = number_of_processors_to_use*nfieldlines_per_core @@ -145,9 +142,6 @@ index = 0 for i, j, k in zip(X.T, Y.T, Z.T): index += 1 - # showlegend = True - # if index > 1: - # showlegend = False showlegend = False data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend))#, name=r'Constant $\varphi$ contours')) @@ -158,9 +152,6 @@ index = 0 for i, j, k in zip(gamma_coils[:, :, 0].T, gamma_coils[:, :, 1].T, gamma_coils[:, :, 2].T): index += 1 - # showlegend = True - # if index > 1: - # showlegend = False showlegend = False data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name='Coils fitted to Fourier')) @@ -185,9 +176,6 @@ index = 0 for i, j, k in zip(X_phi.T, Y_phi.T, Z_phi.T): index += 1 - # showlegend = True - # if index > 1: - # showlegend = False showlegend = False data.append(go.Scatter3d(x=i, y=j, z=k, mode='lines', line=line_marker, showlegend=showlegend, name=r"Constant $\phi$ contours")) @@ -231,7 +219,7 @@ line=dict(color='black', width=0.2), opacity=1.0, name='Fieldline constant Boozer coils', - showlegend=False if traj is not trajectories_coils_DOFS[0] else True + showlegend=False# if traj is not trajectories_coils_DOFS[0] else True )) # Add fieldlines from phi coils @@ -245,7 +233,7 @@ line=dict(color='blue', width=0.2), opacity=1.0, name='Fieldline constant phi coils', - showlegend=False if traj is not trajectories_coils_phi[0] else True + showlegend=False# if traj is not trajectories_coils_phi[0] else True )) fig = go.Figure(data=data) @@ -328,6 +316,4 @@ plt.axvline(x=phi1D[i], color='black', linewidth=2.5) plt.colorbar(label='|B| (T)') -# bx.surfplot(b, js=0, fill=False, ncontours=ncoils) - plt.show() \ No newline at end of file diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index 2352856..c1e205d 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -1,91 +1,64 @@ import os -number_of_processors_to_use = 4 # Parallelization, this should divide nfieldlines +number_of_processors_to_use = 6 # Parallelization, this should divide nfieldlines os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' import jax.numpy as jnp +from jax import block_until_ready, vmap +import matplotlib.pyplot as plt from essos.fields import near_axis, BiotSavart_from_gamma, BiotSavart import plotly.graph_objects as go from essos.dynamics import Tracing from essos.coils import fit_dofs_from_coils, Curves, Coils -import matplotlib.pyplot as plt from time import time -from jax import block_until_ready # Initialize Near-Axis field rc = jnp.array([1, 0.045]) zs = jnp.array([0, -0.045]) etabar = -0.9 nfp = 3 -nphi = 51 -r_surface = 0.1 -r_max_poincare = -0.2 -r_coils = 0.5 +nphi_internal_pyQSC = 51 +r_coils = 0.4 +r_surface = 0.2 ntheta = 41 -ncoils = 6 -tmax = 1500 +ncoils = 4 +tmax = 800 nfieldlines_per_core=1 -nfieldlines = number_of_processors_to_use*nfieldlines_per_core -trace_tolerance = 1e-10 -num_steps = 5*tmax +trace_tolerance = 1e-8 +num_steps = 22000 order = 4 -current_on_each_coil = 1e5 -n_segments = 61 - -field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp, nphi=nphi) - -# import matplotlib.pyplot as plt -# from jax import vmap -# theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) -# varphi1D = jnp.linspace(0, 2 * jnp.pi, nphi) -# varphi2D, theta2D = jnp.meshgrid(varphi1D, theta1D, indexing='ij') -# phi2D = vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: field_nearaxis.phi_of_theta_varphi(r_coils, theta, varphi))(theta_row, varphi_row))(theta2D, varphi2D) -# plt.plot(varphi2D[:,ntheta // 2], label='varphi') -# plt.plot(phi2D[:,ntheta // 2], label='phi') -# plt.legend() -# plt.title('Conversion from varphi to phi at theta=0') -# plt.grid() -# plt.show() -# exit() +current_on_each_coil = 2e8 +plot_coils_without_Fourier_fit = False +plot_coils_on_2D = False +plot_difference_varphi_phi = False + +field_nearaxis = near_axis(rc=rc, zs=zs, etabar=etabar, nfp=nfp, nphi=nphi_internal_pyQSC) + +nfieldlines = number_of_processors_to_use*nfieldlines_per_core +current_on_each_coil = current_on_each_coil / ncoils*r_surface**2/1.7**2 +r_array = jnp.linspace(1e-5, r_surface, nfieldlines) +n_segments = ntheta -nphi = ncoils * 2 * nfp time0 = time() -x_2D_surface, y_2D_surface, z_2D_surface, R_2D_surface = field_nearaxis.get_boundary(r=r_surface, ntheta=ntheta, nphi=nphi) -x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi, phi_is_varphi=True) -print(f"Creating surfaces took {time()-time0:.2f} seconds") +r_array = jnp.linspace(1e-5, r_surface, nfieldlines) +results = [field_nearaxis.get_boundary(r=r, ntheta=ntheta, nphi=nphi_internal_pyQSC) for r in r_array] +x_2D_surface_array, y_2D_surface_array, z_2D_surface_array, R_2D_surface_array = map(lambda arr: jnp.stack(arr), zip(*results)) +print(f"Creating surfaces of constant phi took {time()-time0:.2f} seconds") +time0 = time() +nphi = ncoils * 2 * nfp +x_2D_coils, y_2D_coils, z_2D_coils, R_2D_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi, phi_is_varphi=True, phi_offset = 2*jnp.pi/nphi/2) +print(f"Creating surfaces of constant varphi took {time()-time0:.2f} seconds") time0 = time() coils_gamma = jnp.zeros((ncoils * 2 * nfp, ntheta, 3)) coil_i = 0 for n in range(2*nfp): phi_vals = (jnp.arange(ncoils) + 0.5) * (2 * jnp.pi) / ((2) * nfp * ncoils) + 2*jnp.pi/(2*nfp)*n - # phi_vals = jnp.linspace(2*jnp.pi/(2*nfp)*n + 2*jnp.pi/(2*nfp)/ncoils/2, 2*jnp.pi/(2*nfp)*(n+1) + 2*jnp.pi/(2*nfp)/ncoils/2, ncoils, endpoint=False) phi_idx = (phi_vals / (2*jnp.pi) * nphi).astype(int) % nphi - # print(f"n={n}, phi_vals={phi_vals}, phi_idx={phi_idx}") for i in phi_idx: - loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) # (ntheta,3) + loop = jnp.stack([x_2D_coils[:, i], y_2D_coils[:, i], z_2D_coils[:, i]], axis=-1) coils_gamma = coils_gamma.at[coil_i].set(loop) coil_i += 1 print(f"Creating coils_gamma took {time()-time0:.2f} seconds for {ncoils*2*nfp} coils") -# exit() - -# def d_dtheta_fft(f_theta): -# """ -# f_theta: (..., ntheta) periodic samples over θ in [0, 2π) -# Returns ∂f/∂θ with same shape. -# """ -# ntheta = f_theta.shape[-1] -# # k = 0, 1, ..., ntheta-1 mapped to integer Fourier modes with period 2π -# k = jnp.fft.fftfreq(ntheta, d=1.0/ntheta) # integers (…, -2, -1, 0, 1, 2, …) -# Fk = jnp.fft.fft(f_theta, axis=-1) -# dF = (1j * k) * Fk # for period 2π, ∂/∂θ multiplies by i*k -# return jnp.fft.ifft(dF, axis=-1).real * (2*jnp.pi) - -# # Apply along the θ axis to each Cartesian component -# coils_gamma_dash = jnp.stack([ -# d_dtheta_fft(coils_gamma[..., 0]), -# d_dtheta_fft(coils_gamma[..., 1]), -# d_dtheta_fft(coils_gamma[..., 2]), -# ], axis=-1) # (Ncoils, ntheta, 3) -# field_coils_gamma = BiotSavart_from_gamma(coils_gamma, coils_gamma_dash, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) + time0 = time() dofs, gamma_uni = fit_dofs_from_coils(coils_gamma[:ncoils], order=order, n_segments=n_segments, assume_uniform=True) @@ -94,145 +67,149 @@ field_coils_DOFS = BiotSavart(coils) print(f"Fitting coils took {time()-time0:.2f} seconds") - -R0 = jnp.linspace(rc[0]+rc[1], rc[0]+rc[1]+r_max_poincare, nfieldlines) +R0 = R_2D_surface_array[:,0,0] Z0 = jnp.zeros(nfieldlines) phi0 = jnp.zeros(nfieldlines) initial_xyz=jnp.array([R0*jnp.cos(phi0), R0*jnp.sin(phi0), Z0]).T -# time0 = time() -# tracing_coils_gamma = block_until_ready(Tracing(field=field_coils_gamma, model='FieldLineAdaptative', initial_conditions=initial_xyz, -# maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) -# print(f"ESSOS tracing coils_gamma took {time()-time0:.2f} seconds") -# trajectories_coils_gamma = tracing_coils_gamma.trajectories +if plot_coils_without_Fourier_fit: + time0 = time() + field_coils_gamma = BiotSavart_from_gamma(coils_gamma, currents=current_on_each_coil*jnp.ones(len(coils_gamma))) + tracing_coils_gamma = block_until_ready(Tracing(field=field_coils_gamma, model='FieldLineAdaptative', initial_conditions=initial_xyz, + maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) + print(f"ESSOS tracing coils_gamma took {time()-time0:.2f} seconds") + trajectories_coils_gamma = tracing_coils_gamma.trajectories time0 = time() tracing_coils_DOFS = block_until_ready(Tracing(field=field_coils_DOFS, model='FieldLineAdaptative', initial_conditions=initial_xyz, maxtime=tmax, times_to_trace=num_steps, atol=trace_tolerance,rtol=trace_tolerance)) print(f"ESSOS tracing coils_DOFS took {time()-time0:.2f} seconds") trajectories_coils_DOFS = tracing_coils_DOFS.trajectories -# Plot 3D surface and coils with Plotly fig_plotly = go.Figure() -# Add surface +color = "#C2AC95" +colorscale = [[0, color], [1, color]] fig_plotly.add_surface( - x=x_2D_surface, - y=y_2D_surface, - z=z_2D_surface, - opacity=0.8, - colorscale='Greys', + x=x_2D_surface_array[-1], + y=y_2D_surface_array[-1], + z=z_2D_surface_array[-1], + opacity=0.3, + colorscale=colorscale, showscale=False, name='Surface', - showlegend=True + lighting={"specular": 0.3, "diffuse":0.9}, + showlegend=False#True, ) -# Add coils from near-axis -for coil in coils_gamma: - fig_plotly.add_trace(go.Scatter3d( - x=coil[:, 0], - y=coil[:, 1], - z=coil[:, 2], +if plot_coils_without_Fourier_fit: + for coil in coils_gamma: + fig_plotly.add_trace(go.Scatter3d( + x=coil[:, 0], + y=coil[:, 1], + z=coil[:, 2], mode='lines', line=dict(width=10, color='#b87333'), name='Coil (Near-Axis)', - showlegend=False if coil is not coils_gamma[0] else True + showlegend=False# if coil is not coils_gamma[0] else True )) -# Add fitted curves -colors = ['blue', 'green', 'orange', 'purple', 'cyan', 'magenta', 'brown', 'olive', 'pink', 'teal'] + +line_width = 12 +line_marker = dict(color="#5B2222", width=line_width) for i, curve_gamma in enumerate(curves.gamma): - color = colors[(i // ncoils) % len(colors)] + color = "#93785A" fig_plotly.add_trace(go.Scatter3d( x=curve_gamma[:, 0], y=curve_gamma[:, 1], z=curve_gamma[:, 2], mode='lines', - line=dict(width=10, color=color), - name=f'Fitted Curve Group {i // ncoils + 1}', - showlegend=(i % ncoils == 0) + line=line_marker, + name='Coils', + showlegend=False#(i==0) )) -# # Add fieldline traces -# for traj in trajectories_coils_gamma: -# fig_plotly.add_trace(go.Scatter3d( -# x=traj[:, 0], -# y=traj[:, 1], -# z=traj[:, 2], -# mode='lines', -# line=dict(color='black', width=2), -# name='Fieldline', -# showlegend=False if traj is not trajectories_coils_gamma[0] else True -# )) - -# Add fieldline traces from fitted coils +if plot_coils_without_Fourier_fit: + for traj in trajectories_coils_gamma: + fig_plotly.add_trace(go.Scatter3d( + x=traj[:, 0], + y=traj[:, 1], + z=traj[:, 2], + mode='lines', + line=dict(color='black', width=2), + name='Fieldline', + showlegend=False# if traj is not trajectories_coils_gamma[0] else True + )) + for traj in trajectories_coils_DOFS: fig_plotly.add_trace(go.Scatter3d( x=traj[:, 0], y=traj[:, 1], z=traj[:, 2], mode='lines', - line=dict(color='red', width=1), + line=dict(color='black', width=0.2), name='Fieldline (Fitted Coils)', - showlegend=False if traj is not trajectories_coils_DOFS[0] else True + showlegend=False# if traj is not trajectories_coils_DOFS[0] else True )) -fig_plotly.update_layout( - scene=dict( - xaxis_title='X', - yaxis_title='Y', - zaxis_title='Z', - aspectmode='data' - ), - title='3D Surface, Coils, and Fieldlines (Plotly)' -) +# Turn off hover contours on the surface: +fig_plotly.update_traces(contours_x_highlight=False, + contours_y_highlight=False, + contours_z_highlight=False, + selector={"type":"surface"}) + +# Make x, y, z coordinate scales equal, and turn off more hover stuff +fig_plotly.update_layout(scene={"aspectmode": "data", + "xaxis_showspikes": False, + "yaxis_showspikes": False, + "zaxis_showspikes": False, + "xaxis_visible": False, + "yaxis_visible": False, + "zaxis_visible": False}, + hovermode=False, + margin={"l":0, "r":0, "t":25, "b":0}, + ) + fig_plotly.show() -# Now plot the 2D Poincare plot with Matplotlib (ax2 only) +# Now plot the 2D Poincare plot with Matplotlib fig2 = plt.figure(figsize=(6, 5)) -ax2 = fig2.add_subplot(111) -shifts = jnp.array([0, jnp.pi]) -# tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k', s=0.05) -tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r', s=0.05) -for i, shift1 in enumerate(shifts): - phi_idx = int(shift1/ (2*jnp.pi) * nphi) % nphi - ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surfaces' if i==0 else '_nolegend_') -for coil_number in range(ncoils): - R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) - ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils from Near-Axis' if coil_number==0 else '_nolegend_') - R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) - ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') -# ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') -ax2.plot([], [], color='r', label='Fieldlines from Coils from Fourier') -ax2.legend() +ax = fig2.add_subplot(111) +shifts = jnp.array([0]) +if plot_coils_without_Fourier_fit: + tracing_coils_gamma.poincare_plot(ax=ax, show=False, shifts=shifts/nfp/2, color='k', s=0.05) +tracing_coils_DOFS.poincare_plot(ax=ax, show=False, shifts=shifts/nfp/2, color='b', s=0.05) + +for i in range(nfieldlines): + ax.plot(R_2D_surface_array[i,:,0], z_2D_surface_array[i,:,0], 'r--', linewidth=1.5, label='Surfaces of Constant Cylindrical Angle' if i==0 else '_nolegend_') +_, _, z_2D_at_coils, R_2D_at_coils = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi) +ax.plot(R_2D_at_coils[:,0], z_2D_at_coils[:,0], 'r--', linewidth=1.5, label='_nolegend_') + +x_2D_coil0, y_2D_coil0, z_2D_coil0, R_2D_coil0 = field_nearaxis.get_boundary(r=r_coils, ntheta=ntheta, nphi=nphi, phi_is_varphi=True) +ax.plot(R_2D_coil0[:,0], z_2D_coil0[:,0], color='black', alpha=1.0, linewidth=2, label='Surface of Constant Boozer Angle') +if plot_coils_on_2D: + for coil_number in range(ncoils): + if plot_coils_without_Fourier_fit: + R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) + ax.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils from Near-Axis' if coil_number==0 else '_nolegend_') + R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) + ax.plot(R_curve, curves.gamma[coil_number,:,2], '-', color='blue', linewidth=2, label='Coils' if coil_number==0 else '_nolegend_') +if plot_coils_without_Fourier_fit: + ax.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') +ax.plot([], [], color='b', label='Fieldlines') +ax.legend() plt.tight_layout() -plt.show() - -# fig = plt.figure(figsize=(9, 5)) -# ax1 = fig.add_subplot(121, projection='3d') -# ax2 = fig.add_subplot(122) -# ax1.plot_surface( -# x_2D_surface, y_2D_surface, z_2D_surface, -# color='grey', alpha=0.5, linewidth=0, antialiased=True, shade=True) -# for coil in coils_gamma: -# ax1.plot(coil[:, 0], coil[:, 1], coil[:, 2], color='#b87333', linewidth=2) -# for curve_gamma in curves.gamma: -# ax1.plot(curve_gamma[:, 0], curve_gamma[:, 1], curve_gamma[:, 2], '--', color='blue', linewidth=1) - -# shifts = jnp.array([0, jnp.pi])#, jnp.pi/2, 3*jnp.pi/2]) -# tracing_coils_gamma.plot(ax=ax1, show=False) -# tracing_coils_gamma.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='k', s=0.05)#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) -# # tracing_coils_DOFS.plot(ax=ax1, show=False) -# # tracing_coils_DOFS.poincare_plot(ax=ax2, show=False, shifts=shifts/nfp/2, color='r')#, jnp.pi/2, jnp.pi/4, jnp.pi/2, 3*jnp.pi/4]) -# for i, shift1 in enumerate(shifts): -# phi_idx = int(shift1/ (2*jnp.pi) * nphi) % nphi -# ax2.plot(R_2D_surface[:,phi_idx], z_2D_surface[:,phi_idx], color='grey', alpha=1.0, linewidth=2, label='Surfaces' if i==0 else '_nolegend_') -# # ax2.plot(R_2D_coils[:,phi_idx], z_2D_coils[:,phi_idx], '--', color="#5633b8", alpha=1.0, linewidth=2, label='Coils' if i==0 else '_nolegend_') -# for coil_number in range(ncoils): -# R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) -# ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], color='#b87333', linewidth=2, label='Coils from Near-Axis' if coil_number==0 else '_nolegend_') -# # R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) -# # ax2.plot(R_curve, curves.gamma[coil_number,:,2], '--', color='blue', linewidth=1, label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') -# ax2.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') -# # ax2.plot([], [], color='r', label='Fieldlines from Coils from Fourier') -# ax2.legend() -# plt.tight_layout() -# plt.show() \ No newline at end of file + +if plot_difference_varphi_phi: + itheta = 0 # ntheta // 2 + theta1D = jnp.linspace(0, 2 * jnp.pi, ntheta) + varphi1D = jnp.linspace(0, 2 * jnp.pi / nfp, nphi) + varphi2D, theta2D = jnp.meshgrid(varphi1D, theta1D, indexing='ij') + phi2D = vmap(lambda theta_row, varphi_row: vmap(lambda theta, varphi: field_nearaxis.phi_of_theta_varphi(r_coils, theta, varphi))(theta_row, varphi_row))(theta2D, varphi2D) + plt.figure(figsize=(8,6)) + plt.plot(varphi2D[:,itheta], label='varphi') + plt.plot(phi2D[:,itheta], label='phi') + plt.legend() + plt.title(f'Conversion from varphi to phi at theta={itheta}') + plt.grid() + plt.tight_layout() + +plt.show() \ No newline at end of file From 7c857374f01c3056191087c284f18bfedd6052b7 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sat, 13 Sep 2025 15:55:20 -0500 Subject: [PATCH 15/18] Add axis labels to 2D coil plot for improved clarity --- examples/coils_from_nearaxis.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index c1e205d..0a4d218 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -195,6 +195,8 @@ if plot_coils_without_Fourier_fit: ax.plot([], [], color='k', label='Fieldlines from Coils from Near-Axis') ax.plot([], [], color='b', label='Fieldlines') +ax.set_xlabel('R (m)') +ax.set_ylabel('Z (m)') ax.legend() plt.tight_layout() From 8d1c013dca38e0dc6bfc04d44038edfa3a375c8f Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sun, 21 Sep 2025 08:14:15 -0500 Subject: [PATCH 16/18] Refactor coils_from_BOOZ_XFORM.py and coils_from_nearaxis.py to enhance parameters and improve plotting clarity; update coil and fieldline configurations for better performance. --- examples/coils_from_BOOZ_XFORM.py | 20 +++----------------- examples/coils_from_nearaxis.py | 7 ++++--- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/examples/coils_from_BOOZ_XFORM.py b/examples/coils_from_BOOZ_XFORM.py index fdb44b3..6107f6a 100644 --- a/examples/coils_from_BOOZ_XFORM.py +++ b/examples/coils_from_BOOZ_XFORM.py @@ -15,14 +15,12 @@ import matplotlib.pyplot as plt file_to_use = 'LandremanPaul2021_QA_reactorScale_lowres' -# file_to_use = 'HSX_QHS_vacuum_ns201' -# file_to_use = 'W7-X_standard_configuration' ntheta = 41 -ncoils = 4 -tmax = 800 +ncoils = 6 +tmax = 1100 nfieldlines_per_core=1 -trace_tolerance = 1e-8 +trace_tolerance = 1e-9 num_steps = 22000 order_Fourier_coils = 4 current_on_each_coil = 2e8 @@ -275,18 +273,6 @@ ax2.plot(Rsurf_phi0, Zsurf_phi0, color='black', alpha=1.0, linewidth=2, label='Surface of Constant Boozer Angle') ax2.set_xlabel('R (m)') ax2.set_ylabel('Z (m)') - -# for coil_number in range(ncoils): -# R_coils_gamma = jnp.sqrt(coils_gamma[coil_number,:,0]**2 + coils_gamma[coil_number,:,1]**2) -# R_curve = jnp.sqrt(curves.gamma[coil_number,:,0]**2 + curves.gamma[coil_number,:,1]**2) - -# ax2.plot(R_coils_gamma, coils_gamma[coil_number,:,2], -# color='black', linewidth=3.5, alpha=0.9, -# label='Coils from Boozer Surface' if coil_number==0 else '_nolegend_') - -# ax2.plot(R_curve, curves.gamma[coil_number,:,2], -# linestyle='--', color='tab:orange', linewidth=3.5, alpha=0.8, -# label='Coil fitted to Fourier' if coil_number==0 else '_nolegend_') ax2.plot([], [], color='blue', label='Fieldlines') if plot_fieldlines_constant_phi: ax2.plot([], [], color='red', label='Fieldlines (constant phi)') diff --git a/examples/coils_from_nearaxis.py b/examples/coils_from_nearaxis.py index 0a4d218..8518d23 100644 --- a/examples/coils_from_nearaxis.py +++ b/examples/coils_from_nearaxis.py @@ -26,6 +26,7 @@ num_steps = 22000 order = 4 current_on_each_coil = 2e8 +Poincare_plot_phi = jnp.array([0]) plot_coils_without_Fourier_fit = False plot_coils_on_2D = False plot_difference_varphi_phi = False @@ -37,6 +38,7 @@ r_array = jnp.linspace(1e-5, r_surface, nfieldlines) n_segments = ntheta +print(f"Starting to create surfaces and coils for {nfieldlines} fieldlines and {ncoils} coils...") time0 = time() r_array = jnp.linspace(1e-5, r_surface, nfieldlines) results = [field_nearaxis.get_boundary(r=r, ntheta=ntheta, nphi=nphi_internal_pyQSC) for r in r_array] @@ -173,10 +175,9 @@ # Now plot the 2D Poincare plot with Matplotlib fig2 = plt.figure(figsize=(6, 5)) ax = fig2.add_subplot(111) -shifts = jnp.array([0]) if plot_coils_without_Fourier_fit: - tracing_coils_gamma.poincare_plot(ax=ax, show=False, shifts=shifts/nfp/2, color='k', s=0.05) -tracing_coils_DOFS.poincare_plot(ax=ax, show=False, shifts=shifts/nfp/2, color='b', s=0.05) + tracing_coils_gamma.poincare_plot(ax=ax, show=False, shifts=Poincare_plot_phi/nfp/2, color='k', s=0.05) +tracing_coils_DOFS.poincare_plot(ax=ax, show=False, shifts=Poincare_plot_phi/nfp/2, color='b', s=0.05) for i in range(nfieldlines): ax.plot(R_2D_surface_array[i,:,0], z_2D_surface_array[i,:,0], 'r--', linewidth=1.5, label='Surfaces of Constant Cylindrical Angle' if i==0 else '_nolegend_') From ac08848b96cc7812e564e6218eb2ebcfcf250bb0 Mon Sep 17 00:00:00 2001 From: Rogerio Jorge Date: Sun, 21 Sep 2025 08:23:55 -0500 Subject: [PATCH 17/18] Fixed sharding with random keys and coils calling curvature --- essos/dynamics.py | 4 ++-- essos/fields.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/essos/dynamics.py b/essos/dynamics.py index f65a127..2de1e98 100644 --- a/essos/dynamics.py +++ b/essos/dynamics.py @@ -856,8 +856,8 @@ def update_state(state, _): ).ys return trajectory - return jit(vmap(compute_trajectory,in_axes=(0,None)), in_shardings=(sharding,None), out_shardings=sharding)( - device_put(self.initial_conditions, sharding), None) + return jit(vmap(compute_trajectory,in_axes=(0,0)), in_shardings=(sharding,sharding_index), out_shardings=sharding)( + device_put(self.initial_conditions, sharding), device_put(self.particles.random_keys if self.particles else None, sharding_index)) #x=jax.device_put(self.initial_conditions, sharding) #y=jax.device_put(self.particles.random_keys, sharding_index) #sharded_fun = jax.jit(jax.shard_map(jax.vmap(compute_trajectory,in_axes=(0,0)), mesh=mesh, in_specs=(spec,spec_index), out_specs=spec)) diff --git a/essos/fields.py b/essos/fields.py index 1b19a3b..4689e76 100644 --- a/essos/fields.py +++ b/essos/fields.py @@ -128,7 +128,7 @@ def __init__(self, gamma,gamma_dash=None,gamma_dashdash=None, currents=None): self.gamma_dashdash = gamma_dashdash else: self.gamma_dashdash = gamma_dashdash_from_gamma(gamma) - self.coils_curvature= vmap(compute_curvature)(gamma_dash, gamma_dashdash) + self.coils_curvature= vmap(compute_curvature)(self.gamma_dash, self.gamma_dashdash) @partial(jit, static_argnames=['self']) def sqrtg(self, points): From 4df878fc8369d701a1e1da4c123be338ed4ea609 Mon Sep 17 00:00:00 2001 From: eduardolneto Date: Wed, 24 Sep 2025 03:44:48 +0000 Subject: [PATCH 18/18] Updated examples --- examples/coils_from_BOOZ_XFORM.py | 2 +- ...particle_confinement_guidingcenter_adam.py | 7 +- ...finement_guidingcenter_adam_constrained.py | 156 ------------------ ...nement_guidingcenter_jaxopt_constrained.py | 156 ------------------ ...article_confinement_guidingcenter_lbfgs.py | 6 +- ...inement_guidingcenter_lbfgs_constrained.py | 155 ----------------- examples/optimize_multiple_objectives.py | 2 +- 7 files changed, 8 insertions(+), 476 deletions(-) delete mode 100644 examples/optimize_coils_particle_confinement_guidingcenter_adam_constrained.py delete mode 100644 examples/optimize_coils_particle_confinement_guidingcenter_jaxopt_constrained.py delete mode 100644 examples/optimize_coils_particle_confinement_guidingcenter_lbfgs_constrained.py diff --git a/examples/coils_from_BOOZ_XFORM.py b/examples/coils_from_BOOZ_XFORM.py index 6107f6a..4691848 100644 --- a/examples/coils_from_BOOZ_XFORM.py +++ b/examples/coils_from_BOOZ_XFORM.py @@ -302,4 +302,4 @@ plt.axvline(x=phi1D[i], color='black', linewidth=2.5) plt.colorbar(label='|B| (T)') -plt.show() \ No newline at end of file +plt.savefig('modB_Boozerplot.png', dpi=300) \ No newline at end of file diff --git a/examples/optimize_coils_particle_confinement_guidingcenter_adam.py b/examples/optimize_coils_particle_confinement_guidingcenter_adam.py index 80c2b8d..f5e66ab 100644 --- a/examples/optimize_coils_particle_confinement_guidingcenter_adam.py +++ b/examples/optimize_coils_particle_confinement_guidingcenter_adam.py @@ -7,7 +7,7 @@ import matplotlib.pyplot as plt from essos.dynamics import Particles, Tracing from essos.coils import Coils, CreateEquallySpacedCurves,Curves -from essos.objective_functions import loss_particle_r_cross_max +from essos.objective_functions import loss_particle_r_cross_max_constraint from essos.objective_functions import loss_coil_curvature,loss_coil_length, loss_normB_axis_average from functools import partial import optax @@ -55,7 +55,7 @@ curvature_partial=partial(loss_coil_curvature, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_curvature=max_coil_curvature) length_partial=partial(loss_coil_length, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_length=max_coil_length) Baxis_average_partial=partial(loss_normB_axis_average,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,npoints=15,target_B_on_axis=target_B_on_axis) -r_max_partial = partial(loss_particle_r_cross_max, particles=particles,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model = model,num_steps=num_steps) +r_max_partial = partial(loss_particle_r_cross_max_constraint, particles=particles,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model = model,num_steps=num_steps) params=coils_initial.x optimizer=optax.adabelief(learning_rate=0.003) @@ -111,8 +111,7 @@ def update(params,opt_state): ax4.set_ylabel('Z (m)')#ax4.legend() plt.tight_layout() # plt.savefig(f'opt_adam.pdf') -plt.show() - +plt.savefig('optimize_coils_particle_confinement_guidingcenter_adam.png', dpi=300) # # Save the coils to a json file # coils_optimized.to_json("stellarator_coils.json") # # Load the coils from a json file diff --git a/examples/optimize_coils_particle_confinement_guidingcenter_adam_constrained.py b/examples/optimize_coils_particle_confinement_guidingcenter_adam_constrained.py deleted file mode 100644 index b878eb5..0000000 --- a/examples/optimize_coils_particle_confinement_guidingcenter_adam_constrained.py +++ /dev/null @@ -1,156 +0,0 @@ - -import os -number_of_processors_to_use = 1 # Parallelization, this should divide nparticles -os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' -from time import time -import jax -print(jax.devices()) -jax.config.update("jax_enable_x64", True) -import jax.numpy as jnp -import matplotlib.pyplot as plt -from essos.dynamics import Particles, Tracing -from essos.coils import Coils, CreateEquallySpacedCurves,Curves -from essos.optimization import optimize_loss_function -from essos.objective_functions import loss_particle_r_cross_final_new,loss_particle_r_cross_max,loss_particle_radial_drift,loss_particle_gamma_c -from essos.objective_functions import loss_coil_curvature,loss_coil_length,loss_normB_axis,loss_normB_axis_average -from functools import partial -import essos.alm_convex as alm -import optax - - -# Optimization parameters -target_B_on_axis = 5.7 -max_coil_length = 31 -max_coil_curvature = 0.4 -nparticles = number_of_processors_to_use*10 -order_Fourier_series_coils = 4 -number_coil_points = 80 -maximum_function_evaluations = 30 -maxtimes = [1.e-5] -num_steps=100 -number_coils_per_half_field_period = 3 -number_of_field_periods = 2 -model = 'GuidingCenterAdaptative' - -# Initialize coils -current_on_each_coil = 1.84e7 -major_radius_coils = 7.75 -minor_radius_coils = 4.45 -curves = CreateEquallySpacedCurves(n_curves=number_coils_per_half_field_period, - order=order_Fourier_series_coils, - R=major_radius_coils, r=minor_radius_coils, - n_segments=number_coil_points, - nfp=number_of_field_periods, stellsym=True) -coils_initial = Coils(curves=curves, currents=[current_on_each_coil]*number_coils_per_half_field_period) - -len_dofs_curves = len(jnp.ravel(coils_initial.dofs_curves)) -nfp = coils_initial.nfp -stellsym = coils_initial.stellsym -n_segments = coils_initial.n_segments -dofs_curves_shape = coils_initial.dofs_curves.shape -currents_scale = coils_initial.currents_scale - -# Initialize particles -phi_array = jnp.linspace(0, 2*jnp.pi, nparticles) -initial_xyz=jnp.array([major_radius_coils*jnp.cos(phi_array), major_radius_coils*jnp.sin(phi_array), 0*phi_array]).T -particles = Particles(initial_xyz=initial_xyz) - -t=maxtimes[0] -loss_partial = partial(loss_particle_gamma_c,particles=particles, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model=model,num_steps=num_steps) -curvature_partial=partial(loss_coil_curvature, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_curvature=max_coil_curvature) -length_partial=partial(loss_coil_length, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_length=max_coil_length) -Baxis_average_partial=partial(loss_normB_axis_average,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,npoints=15,target_B_on_axis=target_B_on_axis) -r_max_partial = partial(loss_particle_r_cross_max, particles=particles,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model=model,num_steps=num_steps) - - -# Create the constraints -penalty = 1.05 #Intial penalty values -multiplier=1.0 #Initial lagrange multiplier values -sq_grad=0.0 #Initial square gradient parameter value for Mu adaptative -constraints = alm.combine( -alm.eq(curvature_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -alm.eq(length_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -alm.eq(Baxis_average_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -#alm.eq(r_max_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -) - - - -model_lagrange='Mu_Tolerance' #Options: Mu_Constant, Mu_Monotonic, Mu_Conditional,Mu_Adaptative -beta=2. #penalty update parameter -mu_max=1.e4 #Maximum penalty parameter allowed -alpha=0.99 # -gamma=1.e-2 -epsilon=1.e-8 -omega_tol=1. #grad_tolerance, associated with grad of lagrangian to main parameters -eta_tol=1.e-6 #contrained tolerances, associated with variation of contraints -optimizer=optax.adabelief(learning_rate=0.003,nesterov=True) - - -ALM=alm.ALM_model(optimizer,constraints,model_lagrange=model_lagrange,beta=beta,mu_max=mu_max,alpha=alpha,gamma=gamma,epsilon=epsilon,eta_tol=eta_tol,omega_tol=omega_tol) - -lagrange_params=constraints.init(coils_initial.x) -params = coils_initial.x, lagrange_params -opt_state,grad,info=ALM.init(params) -mu_average=alm.penalty_average(lagrange_params) -#omega=1.#1./mu_average -#eta=1000.#1./mu_average**0.1 -omega=1./mu_average -eta=1./mu_average**0.1 - -i=0 -while i<=maximum_function_evaluations and (jnp.linalg.norm(grad[0])>omega_tol or alm.norm_constraints(info[2])>eta_tol): - params, opt_state,grad,info,eta,omega = ALM.update(params,opt_state,grad,info,eta,omega) #One step of ALM optimization - #if i % 5 == 0: - #print(f'i: {i}, loss f: {info[0]:g}, infeasibility: {alm.total_infeasibility(info[1]):g}') - print(f'i: {i}, loss f: {info[0]:g},loss L: {info[1]:g}, infeasibility: {alm.total_infeasibility(info[2]):g}') - print('lagrange',params[1]) - i=i+1 - - -dofs_curves = jnp.reshape(params[0][:len_dofs_curves], (dofs_curves_shape)) -dofs_currents = params[0][len_dofs_curves:] -curves = Curves(dofs_curves, n_segments, nfp, stellsym) -new_coils = Coils(curves=curves, currents=dofs_currents*coils_initial.currents_scale) -params=new_coils.x -tracing_initial = Tracing(field=coils_initial, particles=particles, maxtime=t, model=model - ,times_to_trace=200,timestep=1.e-8,atol=1.e-5,rtol=1.e-5) -tracing_optimized = Tracing(field=new_coils, particles=particles, maxtime=t, model=model,times_to_trace=200,timestep=1.e-8,atol=1.e-5,rtol=1.e-5) - -#print('Final params',params) -#print(info[1]) -# Plot trajectories, before and after optimization -fig = plt.figure(figsize=(9, 8)) -ax1 = fig.add_subplot(221, projection='3d') -ax2 = fig.add_subplot(222, projection='3d') -ax3 = fig.add_subplot(223) -ax4 = fig.add_subplot(224) - -coils_initial.plot(ax=ax1, show=False) -tracing_initial.plot(ax=ax1, show=False) -for i, trajectory in enumerate(tracing_initial.trajectories): - ax3.plot(jnp.sqrt(trajectory[:,0]**2+trajectory[:,1]**2), trajectory[:, 2], label=f'Particle {i+1}') - -ax3.set_xlabel('R (m)') -ax3.set_ylabel('Z (m)') -#ax3.legend() -new_coils.plot(ax=ax2, show=False) -tracing_optimized.plot(ax=ax2, show=False) -for i, trajectory in enumerate(tracing_optimized.trajectories): - ax4.plot(jnp.sqrt(trajectory[:,0]**2+trajectory[:,1]**2), trajectory[:, 2], label=f'Particle {i+1}') -ax4.set_xlabel('R (m)') -ax4.set_ylabel('Z (m)')#ax4.legend() -plt.tight_layout() -plt.savefig(f'opt_constrained.pdf') - -# # Save the coils to a json file -# coils_optimized.to_json("stellarator_coils.json") -# # Load the coils from a json file -# from essos.coils import Coils_from_json -# coils = Coils_from_json("stellarator_coils.json") - -# # Save results in vtk format to analyze in Paraview -# tracing_initial.to_vtk('trajectories_initial') -#tracing_optimized.to_vtk('trajectories_final') -#coils_initial.to_vtk('coils_initial') -#new_coils.to_vtk('coils_optimized') \ No newline at end of file diff --git a/examples/optimize_coils_particle_confinement_guidingcenter_jaxopt_constrained.py b/examples/optimize_coils_particle_confinement_guidingcenter_jaxopt_constrained.py deleted file mode 100644 index a9504d5..0000000 --- a/examples/optimize_coils_particle_confinement_guidingcenter_jaxopt_constrained.py +++ /dev/null @@ -1,156 +0,0 @@ - -import os -number_of_processors_to_use = 1 # Parallelization, this should divide nparticles -os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' -from time import time -import jax -print(jax.devices()) -jax.config.update("jax_enable_x64", True) -import jax.numpy as jnp -import matplotlib.pyplot as plt -from essos.dynamics import Particles, Tracing -from essos.coils import Coils, CreateEquallySpacedCurves,Curves -from essos.optimization import optimize_loss_function -from essos.objective_functions import loss_particle_r_cross_final_new,loss_particle_r_cross_max,loss_particle_radial_drift,loss_particle_gamma_c -from essos.objective_functions import loss_coil_curvature,loss_coil_length,loss_normB_axis,loss_normB_axis_average -from functools import partial -import essos.alm_convex as alm -import optax - - -# Optimization parameters -target_B_on_axis = 5.7 -max_coil_length = 31 -max_coil_curvature = 0.4 -nparticles = number_of_processors_to_use*10 -order_Fourier_series_coils = 4 -number_coil_points = 80 -maximum_function_evaluations = 10 -maxtimes = [2.e-5] -num_steps=100 -number_coils_per_half_field_period = 3 -number_of_field_periods = 2 -model = 'GuidingCenterAdaptative' - -# Initialize coils -current_on_each_coil = 1.84e7 -major_radius_coils = 7.75 -minor_radius_coils = 4.45 -curves = CreateEquallySpacedCurves(n_curves=number_coils_per_half_field_period, - order=order_Fourier_series_coils, - R=major_radius_coils, r=minor_radius_coils, - n_segments=number_coil_points, - nfp=number_of_field_periods, stellsym=True) -coils_initial = Coils(curves=curves, currents=[current_on_each_coil]*number_coils_per_half_field_period) - -len_dofs_curves = len(jnp.ravel(coils_initial.dofs_curves)) -nfp = coils_initial.nfp -stellsym = coils_initial.stellsym -n_segments = coils_initial.n_segments -dofs_curves_shape = coils_initial.dofs_curves.shape -currents_scale = coils_initial.currents_scale - -# Initialize particles -phi_array = jnp.linspace(0, 2*jnp.pi, nparticles) -initial_xyz=jnp.array([major_radius_coils*jnp.cos(phi_array), major_radius_coils*jnp.sin(phi_array), 0*phi_array]).T -particles = Particles(initial_xyz=initial_xyz) - -t=maxtimes[0] -loss_partial = partial(loss_particle_gamma_c,particles=particles, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model=model,num_steps=num_steps) -curvature_partial=partial(loss_coil_curvature, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_curvature=max_coil_curvature) -length_partial=partial(loss_coil_length, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_length=max_coil_length) -Baxis_average_partial=partial(loss_normB_axis_average,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,npoints=15,target_B_on_axis=target_B_on_axis) -r_max_partial = partial(loss_particle_r_cross_max, particles=particles,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model=model,num_steps=num_steps) - - -# Create the constraints -penalty = 1.05 #Intial penalty values -multiplier=0.0 #Initial lagrange multiplier values -sq_grad=0.0 #Initial square gradient parameter value for Mu adaptative -constraints = alm.combine( -alm.eq(curvature_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -alm.eq(length_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -alm.eq(Baxis_average_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -alm.eq(r_max_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -) - - - -model_lagrange='Mu_Tolerance' #Options: Mu_Constant, Mu_Monotonic, Mu_Conditional,Mu_Adaptative -beta=2. #penalty update parameter -mu_max=1.e4 #Maximum penalty parameter allowed -alpha=0.99 # -gamma=1.e-2 -epsilon=1.e-8 -omega_tol=1.e-5 #grad_tolerance, associated with grad of lagrangian to main parameters -eta_tol=1.e-6 #contrained tolerances, associated with variation of contraints -optimizer='SLSQP' - - -ALM=alm.ALM_model_jaxopt(constraints,optimizer=optimizer,beta=beta,mu_max=mu_max,alpha=alpha,gamma=gamma,epsilon=epsilon,eta_tol=eta_tol,omega_tol=omega_tol) - -lagrange_params=constraints.init(coils_initial.x) -params = coils_initial.x, lagrange_params -lag_state,grad,info=ALM.init(params) -mu_average=alm.penalty_average(lagrange_params) -#omega=1.#1./mu_average -#eta=1000.#1./mu_average**0.1 -omega=1./mu_average -eta=1./mu_average**0.1 - -i=0 -while i<=maximum_function_evaluations and (jnp.linalg.norm(grad[0])>omega_tol or alm.norm_constraints(info[2])>eta_tol): - params, lag_state,grad,info,eta,omega = ALM.update(params,lag_state,grad,info,eta,omega) #One step of ALM optimization - #if i % 5 == 0: - #print(f'i: {i}, loss f: {info[0]:g}, infeasibility: {alm.total_infeasibility(info[1]):g}') - print(f'i: {i}, loss f: {info[0]:g},loss L: {info[1]:g}, infeasibility: {alm.total_infeasibility(info[2]):g}') - print('lagrange',params[1]) - i=i+1 - - -dofs_curves = jnp.reshape(params[0][:len_dofs_curves], (dofs_curves_shape)) -dofs_currents = params[0][len_dofs_curves:] -curves = Curves(dofs_curves, n_segments, nfp, stellsym) -new_coils = Coils(curves=curves, currents=dofs_currents*coils_initial.currents_scale) -params=new_coils.x -tracing_initial = Tracing(field=coils_initial, particles=particles, maxtime=t, model=model - ,times_to_trace=200,timestep=1.e-8,atol=1.e-5,rtol=1.e-5) -tracing_optimized = Tracing(field=new_coils, particles=particles, maxtime=t, model=model,times_to_trace=200,timestep=1.e-8,atol=1.e-5,rtol=1.e-5) - -#print('Final params',params) -#print(info[1]) -# Plot trajectories, before and after optimization -fig = plt.figure(figsize=(9, 8)) -ax1 = fig.add_subplot(221, projection='3d') -ax2 = fig.add_subplot(222, projection='3d') -ax3 = fig.add_subplot(223) -ax4 = fig.add_subplot(224) - -coils_initial.plot(ax=ax1, show=False) -tracing_initial.plot(ax=ax1, show=False) -for i, trajectory in enumerate(tracing_initial.trajectories): - ax3.plot(jnp.sqrt(trajectory[:,0]**2+trajectory[:,1]**2), trajectory[:, 2], label=f'Particle {i+1}') - -ax3.set_xlabel('R (m)') -ax3.set_ylabel('Z (m)') -#ax3.legend() -new_coils.plot(ax=ax2, show=False) -tracing_optimized.plot(ax=ax2, show=False) -for i, trajectory in enumerate(tracing_optimized.trajectories): - ax4.plot(jnp.sqrt(trajectory[:,0]**2+trajectory[:,1]**2), trajectory[:, 2], label=f'Particle {i+1}') -ax4.set_xlabel('R (m)') -ax4.set_ylabel('Z (m)')#ax4.legend() -plt.tight_layout() -plt.savefig(f'opt_constrained.pdf') - -# # Save the coils to a json file -# coils_optimized.to_json("stellarator_coils.json") -# # Load the coils from a json file -# from essos.coils import Coils_from_json -# coils = Coils_from_json("stellarator_coils.json") - -# # Save results in vtk format to analyze in Paraview -# tracing_initial.to_vtk('trajectories_initial') -#tracing_optimized.to_vtk('trajectories_final') -#coils_initial.to_vtk('coils_initial') -#new_coils.to_vtk('coils_optimized') \ No newline at end of file diff --git a/examples/optimize_coils_particle_confinement_guidingcenter_lbfgs.py b/examples/optimize_coils_particle_confinement_guidingcenter_lbfgs.py index 26f3aa2..2ee7770 100644 --- a/examples/optimize_coils_particle_confinement_guidingcenter_lbfgs.py +++ b/examples/optimize_coils_particle_confinement_guidingcenter_lbfgs.py @@ -8,7 +8,7 @@ from essos.dynamics import Particles, Tracing from essos.coils import Coils, CreateEquallySpacedCurves,Curves from essos.optimization import optimize_loss_function -from essos.objective_functions import loss_particle_r_cross_final_new,loss_particle_r_cross_max,loss_particle_radial_drift,loss_particle_gamma_c +from essos.objective_functions import loss_particle_r_cross_final,loss_particle_radial_drift,loss_particle_gamma_c from essos.objective_functions import loss_coil_curvature_new,loss_coil_length_new,loss_normB_axis,loss_normB_axis_average from functools import partial import optax @@ -56,9 +56,9 @@ curvature_partial=partial(loss_coil_curvature_new, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_curvature=max_coil_curvature) length_partial=partial(loss_coil_length_new, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_length=max_coil_length) Baxis_average_partial=partial(loss_normB_axis_average,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,npoints=15,target_B_on_axis=target_B_on_axis) -r_max_partial = partial(loss_particle_r_cross_max, particles=particles,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model = model,num_steps=num_steps) +r_max_partial = partial(loss_particle_r_cross_final, particles=particles,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model = model,num_steps=num_steps) def total_loss(params): - return jnp.linalg.norm(jnp.concatenate((r_max_partial(params),length_partial(params),curvature_partial(params),Baxis_average_partial(params))))**2 + return jnp.linalg.norm(jnp.concatenate((jnp.ravel(r_max_partial(params)),length_partial(params),curvature_partial(params),Baxis_average_partial(params))))**2 params=coils_initial.x optimizer=optax.lbfgs() diff --git a/examples/optimize_coils_particle_confinement_guidingcenter_lbfgs_constrained.py b/examples/optimize_coils_particle_confinement_guidingcenter_lbfgs_constrained.py deleted file mode 100644 index 3bfef5e..0000000 --- a/examples/optimize_coils_particle_confinement_guidingcenter_lbfgs_constrained.py +++ /dev/null @@ -1,155 +0,0 @@ - -import os -number_of_processors_to_use = 1 # Parallelization, this should divide nparticles -os.environ["XLA_FLAGS"] = f'--xla_force_host_platform_device_count={number_of_processors_to_use}' -from time import time -import jax -print(jax.devices()) -jax.config.update("jax_enable_x64", True) -import jax.numpy as jnp -import matplotlib.pyplot as plt -from essos.dynamics import Particles, Tracing -from essos.coils import Coils, CreateEquallySpacedCurves,Curves -from essos.optimization import optimize_loss_function -from essos.objective_functions import loss_particle_r_cross_final_new,loss_particle_r_cross_max,loss_particle_radial_drift,loss_particle_gamma_c -from essos.objective_functions import loss_coil_curvature,loss_coil_length,loss_normB_axis,loss_normB_axis_average -from functools import partial -import essos.alm_convex as alm -import optax - - -# Optimization parameters -target_B_on_axis = 5.7 -max_coil_length = 31 -max_coil_curvature = 0.4 -nparticles = number_of_processors_to_use*10 -order_Fourier_series_coils = 4 -number_coil_points = 80 -maximum_function_evaluations = 30 -maxtimes = [1.e-5] -num_steps=100 -number_coils_per_half_field_period = 3 -number_of_field_periods = 2 -model = 'GuidingCenterAdaptative' - -# Initialize coils -current_on_each_coil = 1.84e7 -major_radius_coils = 7.75 -minor_radius_coils = 4.45 -curves = CreateEquallySpacedCurves(n_curves=number_coils_per_half_field_period, - order=order_Fourier_series_coils, - R=major_radius_coils, r=minor_radius_coils, - n_segments=number_coil_points, - nfp=number_of_field_periods, stellsym=True) -coils_initial = Coils(curves=curves, currents=[current_on_each_coil]*number_coils_per_half_field_period) - -len_dofs_curves = len(jnp.ravel(coils_initial.dofs_curves)) -nfp = coils_initial.nfp -stellsym = coils_initial.stellsym -n_segments = coils_initial.n_segments -dofs_curves_shape = coils_initial.dofs_curves.shape -currents_scale = coils_initial.currents_scale - -# Initialize particles -phi_array = jnp.linspace(0, 2*jnp.pi, nparticles) -initial_xyz=jnp.array([major_radius_coils*jnp.cos(phi_array), major_radius_coils*jnp.sin(phi_array), 0*phi_array]).T -particles = Particles(initial_xyz=initial_xyz) - -t=maxtimes[0] -loss_partial = partial(loss_particle_gamma_c,particles=particles, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model=model,num_steps=num_steps) -curvature_partial=partial(loss_coil_curvature, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_curvature=max_coil_curvature) -length_partial=partial(loss_coil_length, dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,max_coil_length=max_coil_length) -Baxis_average_partial=partial(loss_normB_axis_average,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,npoints=15,target_B_on_axis=target_B_on_axis) -r_max_partial = partial(loss_particle_r_cross_max, particles=particles,dofs_curves=coils_initial.dofs_curves, currents_scale=currents_scale, nfp=nfp, n_segments=n_segments, stellsym=stellsym,maxtime=t,model=model,num_steps=num_steps) - - -# Create the constraints -penalty = 1.05 #Intial penalty values -multiplier=1.0 #Initial lagrange multiplier values -sq_grad=0.0 #Initial square gradient parameter value for Mu adaptative -constraints = alm.combine( -alm.eq(curvature_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -alm.eq(length_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -alm.eq(Baxis_average_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -#alm.eq(r_max_partial, multiplier=multiplier,penalty=penalty,sq_grad=sq_grad), -) - - - -model_lagrange='Mu_Tolerance_LBFGS' #Options: Mu_Constant, Mu_Monotonic, Mu_Conditional,Mu_Adaptative -beta=2. #penalty update parameter -mu_max=1.e4 #Maximum penalty parameter allowed -alpha=0.99 # -gamma=1.e-2 -epsilon=1.e-8 -omega_tol=0.01 #grad_tolerance, associated with grad of lagrangian to main parameters -eta_tol=1.e-6 #contrained tolerances, associated with variation of contraints -optimizer=optax.lbfgs(linesearch=optax.scale_by_zoom_linesearch(max_linesearch_steps=15)) - -ALM=alm.ALM_model(optimizer,constraints,model_lagrange=model_lagrange,beta=beta,mu_max=mu_max,alpha=alpha,gamma=gamma,epsilon=epsilon,eta_tol=eta_tol,omega_tol=omega_tol) - -lagrange_params=constraints.init(coils_initial.x) -params = coils_initial.x, lagrange_params -opt_state,grad,value,info=ALM.init(params) -mu_average=alm.penalty_average(lagrange_params) -#omega=1.#1./mu_average -#eta=1000.#1./mu_average**0.1 -omega=1./mu_average -eta=1./mu_average**0.1 - -i=0 -while i<=maximum_function_evaluations and (jnp.linalg.norm(grad[0])>omega_tol or alm.norm_constraints(info[2])>eta_tol): - params, opt_state, grad,value,info,eta,omega = ALM.update(params,opt_state,grad,value,info,eta,omega) #One step of ALM optimization - #if i % 5 == 0: - #print(f'i: {i}, loss f: {info[0]:g}, infeasibility: {alm.total_infeasibility(info[1]):g}') - print(f'i: {i}, loss f: {info[0]:g},loss L: {info[1]:g}, infeasibility: {alm.total_infeasibility(info[2]):g}') - print('lagrange',params[1]) - i=i+1 - - -dofs_curves = jnp.reshape(params[0][:len_dofs_curves], (dofs_curves_shape)) -dofs_currents = params[0][len_dofs_curves:] -curves = Curves(dofs_curves, n_segments, nfp, stellsym) -new_coils = Coils(curves=curves, currents=dofs_currents*coils_initial.currents_scale) -params=new_coils.x -tracing_initial = Tracing(field=coils_initial, particles=particles, maxtime=t, model=model - ,times_to_trace=200,timestep=1.e-8,atol=1.e-5,rtol=1.e-5) -tracing_optimized = Tracing(field=new_coils, particles=particles, maxtime=t, model=model,times_to_trace=200,timestep=1.e-8,atol=1.e-5,rtol=1.e-5) - -#print('Final params',params) -#print(info[1]) -# Plot trajectories, before and after optimization -fig = plt.figure(figsize=(9, 8)) -ax1 = fig.add_subplot(221, projection='3d') -ax2 = fig.add_subplot(222, projection='3d') -ax3 = fig.add_subplot(223) -ax4 = fig.add_subplot(224) - -coils_initial.plot(ax=ax1, show=False) -tracing_initial.plot(ax=ax1, show=False) -for i, trajectory in enumerate(tracing_initial.trajectories): - ax3.plot(jnp.sqrt(trajectory[:,0]**2+trajectory[:,1]**2), trajectory[:, 2], label=f'Particle {i+1}') - -ax3.set_xlabel('R (m)') -ax3.set_ylabel('Z (m)') -#ax3.legend() -new_coils.plot(ax=ax2, show=False) -tracing_optimized.plot(ax=ax2, show=False) -for i, trajectory in enumerate(tracing_optimized.trajectories): - ax4.plot(jnp.sqrt(trajectory[:,0]**2+trajectory[:,1]**2), trajectory[:, 2], label=f'Particle {i+1}') -ax4.set_xlabel('R (m)') -ax4.set_ylabel('Z (m)')#ax4.legend() -plt.tight_layout() -plt.savefig(f'opt_constrained.pdf') - -# # Save the coils to a json file -# coils_optimized.to_json("stellarator_coils.json") -# # Load the coils from a json file -# from essos.coils import Coils_from_json -# coils = Coils_from_json("stellarator_coils.json") - -# # Save results in vtk format to analyze in Paraview -# tracing_initial.to_vtk('trajectories_initial') -#tracing_optimized.to_vtk('trajectories_final') -#coils_initial.to_vtk('coils_initial') -#new_coils.to_vtk('coils_optimized') \ No newline at end of file diff --git a/examples/optimize_multiple_objectives.py b/examples/optimize_multiple_objectives.py index f38ed8e..b6cf47b 100644 --- a/examples/optimize_multiple_objectives.py +++ b/examples/optimize_multiple_objectives.py @@ -17,7 +17,7 @@ "max_coil_curvature": 0.0, }, opt_config={ - "n_trials": 2, + "n_trials": 4, "maximum_function_evaluations": 300, "tolerance_optimization": 1e-5, "optimizer_choices": ["adam", "amsgrad", "sgd"],