Skip to content

Commit a18e405

Browse files
committed
Improved form of DGeod in Mercier criterion.
1 parent 1b21cdc commit a18e405

2 files changed

+9
-3
lines changed

quasisymmetry_Mercier.f90

+5-2
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@ subroutine quasisymmetry_Mercier
1313

1414
allocate(integrand(N_phi))
1515

16-
integrand = d_l_d_phi * (Y1c * Y1c + X1c * (X1c + Y1s)) / (Y1c * Y1c + (X1c + Y1s) * (X1c + Y1s))
16+
!integrand = d_l_d_phi * (Y1c * Y1c + X1c * (X1c + Y1s)) / (Y1c * Y1c + (X1c + Y1s) * (X1c + Y1s))
17+
integrand = d_l_d_phi * (eta_bar*eta_bar*eta_bar*eta_bar + curvature*curvature*curvature*curvature*sigma*sigma + eta_bar*eta_bar*curvature*curvature) &
18+
/ (eta_bar*eta_bar*eta_bar*eta_bar + curvature*curvature*curvature*curvature*(1+sigma*sigma) + 2*eta_bar*eta_bar*curvature*curvature)
1719

1820
integral = sum(integrand) * d_phi * nfp * 2 * pi / axis_length
1921

20-
DGeod_times_r2 = -(2 * sign_G * sign_psi * mu0 * mu0 * p2 * p2 * G0 * G0 * G0 * G0 * eta_bar * eta_bar &
22+
!DGeod_times_r2 = -(2 * sign_G * sign_psi * mu0 * mu0 * p2 * p2 * G0 * G0 * G0 * G0 * eta_bar * eta_bar &
23+
DGeod_times_r2 = -(2 * mu0 * mu0 * p2 * p2 * G0 * G0 * G0 * G0 * eta_bar * eta_bar &
2124
/ (pi * pi * pi * B0 * B0 * B0 * B0 * B0 * B0 * B0 * B0 * B0 * B0 * iota_N0 * iota_N0)) &
2225
* integral
2326

quasisymmetry_max_r_before_singularity.f90

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,15 @@ subroutine quasisymmetry_max_r_before_singularity()
2727
max_j_phi = N_phi
2828
!if (local_verbose) max_j_phi = 1
2929
do j = 1, max_j_phi
30+
!local_verbose = (j==1)
3031

3132
! Write sqrt(g) = r * [g0 + r*g1c*cos(theta) + (r^2)*(g20 + g2s*sin(2*theta) + g2c*cos(2*theta) + ...]
32-
! The coefficients are evaluated in "20200322-02 Max r for Garren Boozer.nb", in the section "Order r^2 construction, expanding"
33+
! The coefficients are evaluated in "20200322-02 Max r for Garren Boozer.nb", in the section "Order r^2 construction, quasisymmetry"
3334

3435
g0 = lp * X1c(j) * Y1s(j)
3536

3637
!g1s = -2*X20(j)*Y1c(j) + 2*X2c(j)*Y1c(j) + 2*X2s(j)*Y1s(j) + 2*X1c(j)*Y20(j) - 2*X1c(j)*Y2c(j)
38+
! g1s vanishes for quasisymmetry.
3739

3840
g1c = lp*(-2*X2s(j)*Y1c(j) + 2*X20(j)*Y1s(j) + 2*X2c(j)*Y1s(j) + 2*X1c(j)*Y2s(j) - X1c(j)*X1c(j)*Y1s(j)*curvature(j))
3941

@@ -234,6 +236,7 @@ subroutine quasisymmetry_max_r_before_singularity()
234236
call quasisymmetry_quartic_roots(coefficients, real_parts, imag_parts)
235237

236238
if (local_verbose) then
239+
print "(a,i5,a)","------------ r_singularity solve at j_phi=",j,"-------------"
237240
print *,"g0:",g0," g1c:",g1c
238241
print *,"g20:",g20," g2s:",g2s," g2c:",g2c
239242
print *,"K0:",K0," K2s:",K2s," K2c:",K2c

0 commit comments

Comments
 (0)