{
  "audit_writer": "tools/campaigns/write_optimized_equilibrium_transport_configs.py",
  "campaign_root": "tools_out/vmec_jax_qa_optimizer_comparison_campaign",
  "comparison_fingerprint": "89a6a650ff905b6d",
  "comparison_policy": {
    "claim_boundary": "optimizer outputs are candidate-generation evidence only; promote turbulent-flux reduction only after matched long post-transient nonlinear audits and convergence gates",
    "landscape_policy": {
      "optimization_seed_policy": "start from the VMEC-JAX QA_optimization.py simple seed, solve QA/aspect/iota constraints, then append one SPECTRAX-GK transport residual",
      "rbc11_landscape_role": "diagnose objective roughness, metric disagreement, and nonlinear convergence windows",
      "rbc11_points_admit_optimized_candidates": false
    },
    "optimizer_budget": {
      "baseline_max_nfev": 80,
      "continuation_nfev": 25,
      "ftol": 1e-07,
      "gtol": 1e-07,
      "inner_ftol": 1e-09,
      "inner_max_iter": 140,
      "max_nfev": 60,
      "solver_device": "gpu",
      "trial_ftol": 1e-09,
      "trial_max_iter": 140,
      "xtol": 1e-08
    },
    "optimizer_ladder_policy": [
      {
        "preferred_methods": [
          "scipy"
        ],
        "role": "solve smooth aspect/iota/QS constraints from the simple seed",
        "stage": "strict_qa_baseline"
      },
      {
        "preferred_methods": [
          "scalar_trust",
          "lbfgs_adjoint"
        ],
        "role": "continuation and multistart candidate generation for smooth growth/QL residuals",
        "stage": "linear_quasilinear_transport"
      },
      {
        "preferred_methods": [
          "spsa",
          "cma_es",
          "bo"
        ],
        "role": "noisy outer-loop comparison with common-random-number audits",
        "stage": "long_window_nonlinear_heat_flux"
      },
      {
        "preferred_methods": [],
        "role": "refit/re-score only after new independent matched nonlinear holdouts pass gates",
        "stage": "quasilinear_screening_refit"
      }
    ],
    "sample_policy": {
      "alphas": [
        0.0
      ],
      "ky_values": [
        0.3
      ],
      "max_mode": 5,
      "mboz": 21,
      "min_iota": 0.41,
      "min_vmec_mode": 7,
      "n_hermite": 3,
      "n_laguerre": 2,
      "nboz": 21,
      "ntheta": 24,
      "spectrax_objective_scale": 1.0,
      "spectrax_objective_transform": "log1p",
      "surface_chunk_size": 1,
      "surfaces": [
        0.64
      ],
      "target_aspect": 5.0
    },
    "transport_weight": 0.1
  },
  "driver": "tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py",
  "entries": [
    {
      "case_id": "qa_baseline_scipy",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --strict-upstream-qa-baseline --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy --solver-device gpu --max-nfev 80 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --admit-authoritative-rerun-wout --make-plots",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/wout_final_rerun.nc",
      "expected_input_final": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final",
      "kind": "strict_constraints_baseline",
      "method": "scipy",
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy",
      "status": "runnable",
      "transport_kind": null
    },
    {
      "case_id": "growth_scipy_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scipy_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scipy --scipy-tr-solver lsmr --scipy-lsmr-maxiter 200",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scipy_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "scipy",
      "optimizer_strategy": {
        "method_family": "constraint_aware_adjoint",
        "notes": "scipy entries are deterministic optimizer comparisons for smooth linear/QL residuals; they are not nonlinear turbulent-flux promotion evidence.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "candidate_generation",
        "stage": "linear_quasilinear_continuation_multistart",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": true
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scipy_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scipy_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_growth_scipy_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/growth_scipy_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "growth"
    },
    {
      "case_id": "growth_scalar_trust_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scalar_trust_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scalar_trust",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scalar_trust_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "scalar_trust",
      "optimizer_strategy": {
        "method_family": "constraint_aware_adjoint",
        "notes": "scalar_trust entries are deterministic optimizer comparisons for smooth linear/QL residuals; they are not nonlinear turbulent-flux promotion evidence.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "candidate_generation",
        "stage": "linear_quasilinear_continuation_multistart",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": true
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scalar_trust_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scalar_trust_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_growth_scalar_trust_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/growth_scalar_trust_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "growth"
    },
    {
      "case_id": "growth_lbfgs_adjoint_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_lbfgs_adjoint_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method lbfgs_adjoint",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_lbfgs_adjoint_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "lbfgs_adjoint",
      "optimizer_strategy": {
        "method_family": "constraint_aware_adjoint",
        "notes": "lbfgs_adjoint entries are deterministic optimizer comparisons for smooth linear/QL residuals; they are not nonlinear turbulent-flux promotion evidence.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "candidate_generation",
        "stage": "linear_quasilinear_continuation_multistart",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": true
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_lbfgs_adjoint_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_lbfgs_adjoint_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_growth_lbfgs_adjoint_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/growth_lbfgs_adjoint_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "growth"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/growth_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_growth_spsa_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": "python3 tools/campaigns/write_vmec_jax_spsa_candidate_campaign.py --baseline-input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/spsa_candidates --case-prefix vmec_qa_optimizer_comparison_spsa_growth --controls 'ZBS(1,0);ZBS(1,1);RBC(1,1)' --iterations 4 --seed 20260609 --relative-delta 0.03 --max-mode 5 --min-vmec-mode 7 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --audit-horizons 700,1100,1500 --audit-grid n64:64:64:40:40 --audit-window-tmin 1100 --audit-window-tmax 1500 --audit-dt-variant 0.04 --audit-seed-variant 32 --audit-seed-variant 33"
      },
      "candidate_generator_required": true,
      "case_id": "growth_spsa_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "spsa",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "stochastic_common_random_numbers",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "first_noisy_outer_loop",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_proxy_screen"
      },
      "status": "planned_outer_loop",
      "transport_kind": "growth"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/growth_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_growth_cma_es_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": null
      },
      "candidate_generator_required": true,
      "case_id": "growth_cma_es_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "cma_es",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "derivative_free_projected_search",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "projected_low_dimensional_comparator",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_proxy_screen"
      },
      "status": "planned_outer_loop",
      "transport_kind": "growth"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/growth_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_growth_bo_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/growth/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": null
      },
      "candidate_generator_required": true,
      "case_id": "growth_bo_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "bo",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "derivative_free_projected_search",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "projected_low_dimensional_comparator",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_proxy_screen"
      },
      "status": "planned_outer_loop",
      "transport_kind": "growth"
    },
    {
      "case_id": "quasilinear_scipy_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scipy_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scipy --scipy-tr-solver lsmr --scipy-lsmr-maxiter 200",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scipy_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "scipy",
      "optimizer_strategy": {
        "method_family": "constraint_aware_adjoint",
        "notes": "scipy entries are deterministic optimizer comparisons for smooth linear/QL residuals; they are not nonlinear turbulent-flux promotion evidence.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "candidate_generation",
        "stage": "linear_quasilinear_continuation_multistart",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": true
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scipy_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scipy_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_quasilinear_scipy_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/quasilinear_scipy_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "quasilinear_flux"
    },
    {
      "case_id": "quasilinear_scalar_trust_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scalar_trust_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scalar_trust",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scalar_trust_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "scalar_trust",
      "optimizer_strategy": {
        "method_family": "constraint_aware_adjoint",
        "notes": "scalar_trust entries are deterministic optimizer comparisons for smooth linear/QL residuals; they are not nonlinear turbulent-flux promotion evidence.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "candidate_generation",
        "stage": "linear_quasilinear_continuation_multistart",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": true
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scalar_trust_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scalar_trust_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_quasilinear_scalar_trust_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/quasilinear_scalar_trust_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "quasilinear_flux"
    },
    {
      "case_id": "quasilinear_lbfgs_adjoint_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_lbfgs_adjoint_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method lbfgs_adjoint",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_lbfgs_adjoint_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "lbfgs_adjoint",
      "optimizer_strategy": {
        "method_family": "constraint_aware_adjoint",
        "notes": "lbfgs_adjoint entries are deterministic optimizer comparisons for smooth linear/QL residuals; they are not nonlinear turbulent-flux promotion evidence.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "candidate_generation",
        "stage": "linear_quasilinear_continuation_multistart",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": true
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_lbfgs_adjoint_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_lbfgs_adjoint_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_quasilinear_lbfgs_adjoint_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/quasilinear_lbfgs_adjoint_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "quasilinear_flux"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/quasilinear_flux_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_quasilinear_flux_spsa_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": "python3 tools/campaigns/write_vmec_jax_spsa_candidate_campaign.py --baseline-input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/spsa_candidates --case-prefix vmec_qa_optimizer_comparison_spsa_quasilinear_flux --controls 'ZBS(1,0);ZBS(1,1);RBC(1,1)' --iterations 4 --seed 20260609 --relative-delta 0.03 --max-mode 5 --min-vmec-mode 7 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --audit-horizons 700,1100,1500 --audit-grid n64:64:64:40:40 --audit-window-tmin 1100 --audit-window-tmax 1500 --audit-dt-variant 0.04 --audit-seed-variant 32 --audit-seed-variant 33"
      },
      "candidate_generator_required": true,
      "case_id": "quasilinear_flux_spsa_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "spsa",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "stochastic_common_random_numbers",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "first_noisy_outer_loop",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_proxy_screen"
      },
      "status": "planned_outer_loop",
      "transport_kind": "quasilinear_flux"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/quasilinear_flux_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_quasilinear_flux_cma_es_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": null
      },
      "candidate_generator_required": true,
      "case_id": "quasilinear_flux_cma_es_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "cma_es",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "derivative_free_projected_search",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "projected_low_dimensional_comparator",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_proxy_screen"
      },
      "status": "planned_outer_loop",
      "transport_kind": "quasilinear_flux"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/quasilinear_flux_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_quasilinear_flux_bo_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/quasilinear_flux/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": null
      },
      "candidate_generator_required": true,
      "case_id": "quasilinear_flux_bo_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "bo",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "derivative_free_projected_search",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "projected_low_dimensional_comparator",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_proxy_screen"
      },
      "status": "planned_outer_loop",
      "transport_kind": "quasilinear_flux"
    },
    {
      "case_id": "nonlinear_window_scipy_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scipy_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scipy --scipy-tr-solver lsmr --scipy-lsmr-maxiter 200",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scipy_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "scipy",
      "optimizer_strategy": {
        "method_family": "differentiable_reduced_window",
        "notes": "The differentiable nonlinear-window residual is a startup/reduced-window screen. No noisy nonlinear-Q claim is promoted without matched t=1500 replicated audits.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "diagnostic_screening_only",
        "stage": "reduced_nonlinear_window_screen",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": false
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scipy_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scipy_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_nonlinear_window_scipy_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/nonlinear_window_scipy_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "nonlinear_window_heat_flux"
    },
    {
      "case_id": "nonlinear_window_scalar_trust_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scalar_trust_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scalar_trust",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scalar_trust_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "scalar_trust",
      "optimizer_strategy": {
        "method_family": "differentiable_reduced_window",
        "notes": "The differentiable nonlinear-window residual is a startup/reduced-window screen. No noisy nonlinear-Q claim is promoted without matched t=1500 replicated audits.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "diagnostic_screening_only",
        "stage": "reduced_nonlinear_window_screen",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": false
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scalar_trust_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scalar_trust_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_nonlinear_window_scalar_trust_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/nonlinear_window_scalar_trust_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "nonlinear_window_heat_flux"
    },
    {
      "case_id": "nonlinear_window_lbfgs_adjoint_from_strict_baseline",
      "command": "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_lbfgs_adjoint_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method lbfgs_adjoint",
      "depends_on": "qa_baseline_scipy",
      "expected_authoritative_wout": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_lbfgs_adjoint_from_strict_baseline/wout_final_rerun.nc",
      "kind": "deterministic_transport_optimizer",
      "method": "lbfgs_adjoint",
      "optimizer_strategy": {
        "method_family": "differentiable_reduced_window",
        "notes": "The differentiable nonlinear-window residual is a startup/reduced-window screen. No noisy nonlinear-Q claim is promoted without matched t=1500 replicated audits.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "diagnostic_screening_only",
        "stage": "reduced_nonlinear_window_screen",
        "uses_multistart_from_simple_seed_qa_solves": true,
        "uses_transport_weight_continuation": false
      },
      "outdir": "tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_lbfgs_adjoint_from_strict_baseline",
      "recommended_nonlinear_audit_command": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_lbfgs_adjoint_from_strict_baseline/wout_final_rerun.nc --case vmec_qa_optimizer_comparison_nonlinear_window_lbfgs_adjoint_from_strict_baseline --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/nonlinear_audits/nonlinear_window_lbfgs_adjoint_from_strict_baseline --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
      "status": "runnable",
      "transport_kind": "nonlinear_window_heat_flux"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/nonlinear_window_heat_flux_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_nonlinear_window_heat_flux_spsa_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": "python3 tools/campaigns/write_vmec_jax_spsa_candidate_campaign.py --baseline-input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --out-dir tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/spsa_candidates --case-prefix vmec_qa_optimizer_comparison_spsa_nonlinear_window_heat_flux --controls 'ZBS(1,0);ZBS(1,1);RBC(1,1)' --iterations 4 --seed 20260609 --relative-delta 0.03 --max-mode 5 --min-vmec-mode 7 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --audit-horizons 700,1100,1500 --audit-grid n64:64:64:40:40 --audit-window-tmin 1100 --audit-window-tmax 1500 --audit-dt-variant 0.04 --audit-seed-variant 32 --audit-seed-variant 33"
      },
      "candidate_generator_required": true,
      "case_id": "nonlinear_window_heat_flux_spsa_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "spsa",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "stochastic_common_random_numbers",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "first_noisy_outer_loop",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_long_window_nonlinear_q"
      },
      "status": "planned_outer_loop",
      "transport_kind": "nonlinear_window_heat_flux"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/nonlinear_window_heat_flux_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_nonlinear_window_heat_flux_cma_es_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": null
      },
      "candidate_generator_required": true,
      "case_id": "nonlinear_window_heat_flux_cma_es_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "cma_es",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "derivative_free_projected_search",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "projected_low_dimensional_comparator",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_long_window_nonlinear_q"
      },
      "status": "planned_outer_loop",
      "transport_kind": "nonlinear_window_heat_flux"
    },
    {
      "candidate_contract": {
        "candidate_id_placeholder": "{candidate_id}",
        "candidate_input_placeholder": "{candidate_input_final}",
        "metric_eval_command_template": "python3 tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py --input '{candidate_input_final}' --out-json 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/nonlinear_window_heat_flux_metric.json' --outdir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/metric_eval_scratch' --out-wout 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/wout_final_rerun.nc' --max-mode 5 --min-vmec-mode 7 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --solver-device gpu --include-sample-rows",
        "nonlinear_audit_command_template": "python3 tools/campaigns/write_optimized_equilibrium_transport_configs.py --vmec-file 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/wout_final_rerun.nc' --case 'vmec_qa_optimizer_comparison_nonlinear_window_heat_flux_bo_{candidate_id}' --out-dir 'tools_out/vmec_jax_qa_optimizer_comparison_campaign/outer_loop_candidates/nonlinear_window_heat_flux/{candidate_id}/nonlinear_audit' --horizons 700,1100,1500 --grid n64:64:64:40:40 --window-tmin 1100 --window-tmax 1500 --dt-variant 0.04 --seed-variant 32 --seed-variant 33",
        "spsa_candidate_campaign_command": null
      },
      "candidate_generator_required": true,
      "case_id": "nonlinear_window_heat_flux_bo_outer_loop",
      "depends_on": "qa_baseline_scipy",
      "kind": "derivative_free_outer_loop_contract",
      "method": "bo",
      "notes": "Use this entry for SPSA/CMA/BO candidate proposal loops. Each proposed input.final must be evaluated with the metric command, then admitted candidates receive the same strict nonlinear audit command.",
      "optimizer_strategy": {
        "method_family": "derivative_free_projected_search",
        "notes": "Use SPSA first for noisy long-window Q; compare CMA-ES/BO only in low-dimensional projected controls after each proposed state is evaluated with the same metric and audit policy.",
        "rbc_landscape_role": "conditioning_and_noise_diagnostic_only",
        "recommended_role": "projected_low_dimensional_comparator",
        "requires_common_random_numbers": true,
        "requires_matched_t1500_replicated_audit": true,
        "stage": "noisy_long_window_nonlinear_q"
      },
      "status": "planned_outer_loop",
      "transport_kind": "nonlinear_window_heat_flux"
    }
  ],
  "kind": "vmec_jax_qa_optimizer_comparison_manifest",
  "metric_eval_tool": "tools/campaigns/evaluate_vmec_jax_spectrax_transport_metric.py",
  "next_actions": [
    "Run qa_baseline_scipy first and verify wout_final_rerun.nc passes admission gates.",
    "Run deterministic transport optimizer entries only after the strict baseline input.final exists.",
    "Build matched nonlinear audit configs from the emitted audit commands before making transport claims.",
    "Use planned_outer_loop entries only with an explicit proposal generator and the same metric/audit policy."
  ],
  "runnable_commands": [
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --strict-upstream-qa-baseline --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy --solver-device gpu --max-nfev 80 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --admit-authoritative-rerun-wout --make-plots",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scipy_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scipy --scipy-tr-solver lsmr --scipy-lsmr-maxiter 200",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_scalar_trust_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scalar_trust",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/growth_lbfgs_adjoint_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind growth --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method lbfgs_adjoint",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scipy_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scipy --scipy-tr-solver lsmr --scipy-lsmr-maxiter 200",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_scalar_trust_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scalar_trust",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/quasilinear_lbfgs_adjoint_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind quasilinear_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method lbfgs_adjoint",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scipy_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scipy --scipy-tr-solver lsmr --scipy-lsmr-maxiter 200",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_scalar_trust_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method scalar_trust",
    "python3 tools/campaigns/vmec_jax_qa_low_turbulence_optimization.py --input tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/qa_baseline_scipy/input.final --outdir tools_out/vmec_jax_qa_optimizer_comparison_campaign/runs/nonlinear_window_lbfgs_adjoint_from_strict_baseline --max-mode 5 --min-vmec-mode 7 --disable-mode-continuation --target-aspect 5 --min-iota 0.41 --iota-objective target --disable-iota-profile-floor --aspect-weight 1 --iota-floor-weight 10000 --qs-weight 1 --spectrax-weight 0.1 --transport-kind nonlinear_window_heat_flux --surfaces 0.64 --alphas 0 --ky-values 0.3 --ntheta 24 --mboz 21 --nboz 21 --n-laguerre 2 --n-hermite 3 --surface-chunk-size 1 --spectrax-objective-transform log1p --spectrax-objective-scale 1 --max-nfev 60 --continuation-nfev 25 --inner-max-iter 140 --trial-max-iter 140 --inner-ftol 1e-09 --trial-ftol 1e-09 --ftol 1e-07 --gtol 1e-07 --xtol 1e-08 --solver-device gpu --save-rerun-wouts --admit-authoritative-rerun-wout --allow-failed-solved-wout-gate --make-plots --method lbfgs_adjoint"
  ],
  "schema_version": 1,
  "spsa_candidate_writer": "tools/campaigns/write_vmec_jax_spsa_candidate_campaign.py"
}
