Stage: KAMEL equilibrium and plasma-background formulas
Source language: Wolfram Language with generated profile fixtures
Manuals to read first: Markl dissertation DOI 10.3217/efp2p-0x485, Methods “Cylindrical plasma” and ASDEX Upgrade profile sections; KIM/src/background_equilibrium; corresponding KiLCA plasma-parameter routines; #185 and #186
Depends on: #193
Goal
Verify every equilibrium, geometry, species, profile, force-balance, collision-frequency, thermodynamic-force, and derived-background formula consumed by KIM or KiLCA. Enforce units, multispecies quasineutrality, positivity, and derivative consistency.
Files to edit
verification/mathematica/06_equilibrium_profiles_units.wl: NEW symbolic and dimensional checks.
verification/oracles/plasma_background.dat: NEW multispecies profile and derived-value fixtures.
verification/FORMULA_INDEX.md: map all background expressions and approximations.
Behavior to implement
Derive cylindrical B_theta/B_z, q, k_s, k_parallel, resonance condition, equilibrium current and force balance, E_r, rotation frequencies, vT, omega_c, signed and absolute Larmor radii, Debye lengths, Coulomb logarithms, electron/ion collision frequencies, density rescaling, A1/A2, x1/x2, and cell-centre/interpolation formulas. Verify CGS conversions and every factor of c, eV-to-erg conversion, charge number, mass number, and sqrt(2). Prove sum_s Z_s n_s=n_e for arbitrary mixtures and verify derivatives are taken after profile periodization.
Scaffold
derived = <|"vT"->Sqrt[T ev/mass], "omegaC"->charge B/(mass c), "rhoL"->Abs[vT/omegaC]|>;
check["quasineutral mixture", FullSimplify[Sum[Z[s] n[s],{s,ions}]-ne, constraints] == 0];
check["force balance units", unitReduce[ErFormula] == electricFieldCGS];
Positive fixtures to add
- Electron/deuterium and electron/deuterium/impurity profiles with distinct temperatures.
- Axis-near and finite-radius geometry points, resonance crossing, zero and finite rotation, and profile-periodization seams.
Negative fixtures to add
- Charge-proportional ion-density reconstruction that violates quasineutrality, electron instead of ion window scale, wrong eV conversion, or interpolated singular derived ratio: fail.
Makefile target
Add the Mathematica script and background-oracle CTests for KIM and KiLCA.
Success criteria
math -script verification/mathematica/06_equilibrium_profiles_units.wl
ctest --test-dir build -R 'test_(periodic_background|profile_input|plasma)' --output-on-failure
Non-goals
- Do not treat numerical interpolation agreement as proof of a physical formula.
- Do not assume one ion species or a common ion temperature.
Verification
math -script verification/mathematica/06_equilibrium_profiles_units.wl
Stage: KAMEL equilibrium and plasma-background formulas
Source language: Wolfram Language with generated profile fixtures
Manuals to read first: Markl dissertation DOI
10.3217/efp2p-0x485, Methods “Cylindrical plasma” and ASDEX Upgrade profile sections;KIM/src/background_equilibrium; corresponding KiLCA plasma-parameter routines; #185 and #186Depends on: #193
Goal
Verify every equilibrium, geometry, species, profile, force-balance, collision-frequency, thermodynamic-force, and derived-background formula consumed by KIM or KiLCA. Enforce units, multispecies quasineutrality, positivity, and derivative consistency.
Files to edit
verification/mathematica/06_equilibrium_profiles_units.wl: NEW symbolic and dimensional checks.verification/oracles/plasma_background.dat: NEW multispecies profile and derived-value fixtures.verification/FORMULA_INDEX.md: map all background expressions and approximations.Behavior to implement
Derive cylindrical
B_theta/B_z, q,k_s,k_parallel, resonance condition, equilibrium current and force balance,E_r, rotation frequencies,vT,omega_c, signed and absolute Larmor radii, Debye lengths, Coulomb logarithms, electron/ion collision frequencies, density rescaling,A1/A2,x1/x2, and cell-centre/interpolation formulas. Verify CGS conversions and every factor of c, eV-to-erg conversion, charge number, mass number, andsqrt(2). Provesum_s Z_s n_s=n_efor arbitrary mixtures and verify derivatives are taken after profile periodization.Scaffold
Positive fixtures to add
Negative fixtures to add
Makefile target
Add the Mathematica script and background-oracle CTests for KIM and KiLCA.
Success criteria
math -script verification/mathematica/06_equilibrium_profiles_units.wl ctest --test-dir build -R 'test_(periodic_background|profile_input|plasma)' --output-on-failureNon-goals
Verification