vmecpp.geometry module¶
Output-independent VMEC geometry for C++, NumPy, and JAX clients.
- class vmecpp.geometry.Geometry(toroidal_flux, poloidal_flux, r_cc, r_ss, r_sc, r_cs, z_sc, z_cs, z_cc, z_ss, lambda_sc, lambda_cs, lambda_cc, lambda_ss, nfp)¶
Bases:
objectThe minimal VMEC equilibrium geometry in the internal product basis.
- Parameters:
toroidal_flux (
Array)poloidal_flux (
Array)r_cc (
Array)r_ss (
Array)r_sc (
Array)r_cs (
Array)z_sc (
Array)z_cs (
Array)z_cc (
Array)z_ss (
Array)lambda_sc (
Array)lambda_cs (
Array)lambda_cc (
Array)lambda_ss (
Array)nfp (
int)
-
toroidal_flux:
Array¶
-
poloidal_flux:
Array¶
-
r_cc:
Array¶
-
r_ss:
Array¶
-
r_sc:
Array¶
-
r_cs:
Array¶
-
z_sc:
Array¶
-
z_cs:
Array¶
-
z_cc:
Array¶
-
z_ss:
Array¶
-
lambda_sc:
Array¶
-
lambda_cs:
Array¶
-
lambda_cc:
Array¶
-
lambda_ss:
Array¶
- tree_flatten()¶
- classmethod tree_unflatten(nfp, children)¶
- vmecpp.geometry.from_cpp(geometry)¶
Copy a C++ geometry snapshot into a JAX pytree.
- Return type:
- vmecpp.geometry.make(output)¶
Construct geometry from the result of the low-level C++
runcall.- Return type:
- vmecpp.geometry.evaluate(geometry, coordinates)¶
Return shape
(5, 10): values and first/second derivatives.Rows are
R,Z,lambda, toroidal flux, and poloidal flux. The columns followvmecpp.GeometryJet; all formulas are explicit so spatial derivatives do not invoke nested automatic differentiation.- Parameters:
geometry (
Geometry)coordinates (
Array)
- Return type:
Array