Boozer chartmap format¶
An extended Boozer chartmap is a NetCDF file with geometry and field data in Boozer coordinates; SIMPLE traces it without a VMEC file. This page specifies the file for writers of converters. All grids are uniform, because the SIMPLE/libneo splines assume constant spacing along each abscissa. Usage and the shipped converters are in Field sources and coordinates.
Radial grids¶
The schema uses two radial coordinates:
rhois uniform and increasing. It is the chartmap coordinaterho = sqrt(s). Geometry,Bmod,B_theta, andB_phiuse this grid.sis uniform and increasing. It spansrho(1)**2torho(n_rho)**2.A_phiuses this grid.
A_phi must be a one-dimensional variable over s and must carry
radial_abscissa = "s". Files that store A_phi over rho are invalid.
Runtime input keeps the usual SIMPLE meaning: sbeg is normalized toroidal
flux s in both VMEC and chartmap runs. A chartmap run evaluates the start
surface at rho = sqrt(sbeg).
Angles and signs¶
SIMPLE chartmaps use the same left-handed Boozer orientation as the VMEC path.
The scalar global attribute torflux is the edge value of A_theta, the
poloidal covariant component of the vector potential:
A = A_theta grad(theta_B) + A_phi grad(zeta_B)
A_theta = torflux*s
A_phi = -chi
GVEC Boozer coordinates are right-handed for the W7-X/GVEC comparisons, with
zeta_GVEC = -phi_VMEC. A GVEC chartmap therefore needs exactly one angle
reversal before SIMPLE reads it:
Reversal |
Resampling |
Components that change sign |
Components that keep sign |
|---|---|---|---|
|
geometry and |
|
|
|
geometry and |
|
|
Raw right-handed GVEC chartmaps and double-flipped chartmaps do not match the SIMPLE/VMEC convention.
Runtime scaling¶
Chartmap files store base-scale CGS quantities. SIMPLE applies the usual
vmec_B_scale and vmec_RZ_scale settings when it loads a chartmap, so a
chartmap run scales like a VMEC run:
Quantity |
Runtime scale |
|---|---|
|
|
|
|
|
|
|
|
test_chartmap_scaling checks the field object, canonical Boozer splines,
reference-coordinate wrapper, vector potential, covariant field components,
and Bmod.
Dimensions¶
The logical SIMPLE order is shown below. Fortran writers use this order
directly. Python netCDF4 writers in this repository use reversed dimension
tuples for multidimensional variables and transpose the data before writing.
Dimension |
Meaning |
|---|---|
|
Uniform |
|
Uniform |
|
Endpoint-excluded Boozer poloidal grid. |
|
Endpoint-excluded Boozer toroidal grid. |
The file stores no duplicate periodic endpoint planes. Readers append those planes internally when the spline backend requires a full-period grid.
Variables¶
Variable |
Logical shape |
Units |
|---|---|---|
|
|
dimensionless |
|
|
dimensionless |
|
|
radians |
|
|
radians |
|
|
cm |
|
|
G cm^2 |
|
|
G cm |
|
|
G |
|
scalar |
dimensionless |
Required attributes¶
Global attributes:
rho_convention = "rho_tor"zeta_convention = "boozer"rho_lcfsboozer_field = 1torfluxin G cm^2
Variable attributes:
A_phi:radial_abscissa = "s"x:units = "cm",y:units = "cm",z:units = "cm"
rmajor is not a schema attribute. The reader derives it from the innermost
geometry surface.