Skip to content

Track .bc retirement: verify chartmap and booz_xform conventions #430

Description

@krystophny

Depends on: itpplasma/libneo#343, itpplasma/libneo#344, itpplasma/libneo#345

Goal

SIMPLE already reads Boozer chartmaps (src/field/field_boozer_chartmap.f90). Verify that chartmap and booz_xform inputs produced from the same source data preserve SIMPLE's .bc observables within documented converter/interpolation tolerance, then deprecate .bc input.

Context

Shared converters live in libneo: EQDSK -> Boozer chartmap (itpplasma/libneo#343), .bc -> booz_xform (itpplasma/libneo#344), and a same-source converter/sign-convention gate (itpplasma/libneo#345). Prefer routing through libneo's existing chartmap/booz_xform reader over writing a new parser. Fortran codes can wrap the libneo reader via f90wrap or read the NetCDF directly; Python reads it directly.

Different Boozer transforms need not match to floating-point accuracy. This issue requires consistent signs, mode indices, and field values for converted inputs that originate from the same equilibrium data.

What to do

  • Add a reference tokamak case run from a chartmap and from a booz_xform-derived chartmap; assert agreement with the .bc-based result to a documented tolerance appropriate for the same-source conversion path.
  • Include convention checks for booz_xform cos(m theta - n zeta) / sin(m theta - n zeta) harmonics and asymmetric coefficients.
  • Once green and the Same-source Boozer convention test for .bc retirement libneo#345 gate passes, mark .bc input deprecated.

Non-goals

  • Removing .bc before the same-source convention/tolerance gate is green.
  • Requiring independently generated Boozer coordinates to match .bc results to floating-point accuracy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions