Skip to content

Derive chartmap rmajor from magnetic axis length #374

@krystophny

Description

@krystophny

Since #373 the Boozer chartmap reader derives rmajor from the file geometry as the (theta, zeta)-average of sqrt(x^2 + y^2) on the innermost rho surface. GVEC computes the equivalent reference radius differently: the length of the magnetic axis divided by 2*pi.

For a non-planar stellarator axis the two definitions differ. The axis of W7-X type configurations makes helical excursions, so its length exceeds 2*pi times the average cylindrical radius by a few percent. rmajor enters only the integrator step scale, dtaumin = 2*pi*rmajor*1e2/npoiper2, so the axis-length definition paces the timestep by the curve a passing particle actually follows, which is the more natural normalization of npoiper2.

Proposal:

  • Approximate the axis from the innermost rho surface: center the surface per zeta plane by theta-averaging x, y, z, then measure the length of the resulting closed curve and divide by 2*pi.
  • Apply the same definition in the chartmap reader and document it next to the existing derivation.
  • Consequences stay within the tolerance contract from Add booz_xform to Boozer chartmap converter; derive rmajor from geometry #373: dtaumin and ntau shift by a few percent; the 5 percent dtaumin check against VMEC-direct runs still holds for typical configurations. Verify on the QA and W7-X test cases before switching.

Low priority; the current average-R derivation is correct for its purpose. Worth doing when the chartmap path sees heavy use in cross-code benchmarks (#370), where consistent step pacing across field sources reduces one more degree of freedom.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions