RustedSciThe 0.4.18

Rust framework for symbolic and numerical computing:BVP ( Newton-Raphson frozen/damped/with collocations ), IVP( BDF, Radau, Backward Euler, LSODE, LSODA, RK45, DoPri), nonlinear equations ( Levenberg, Gavin) and more
Documentation
cargo : warning: Cargo.toml: unused manifest key: package.author
At line:2 char:1
+ cargo test --lib 'Thermodynamics::ChemEquilibrium::frozen_reference_n ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (warning: Cargo.... package.author:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
warning: `KiThe` (manifest) generated 1 warning
   Compiling KiThe v0.3.12 (D:\RUST\RustProjects_\KiThe)
warning: use of deprecated method `Thermodynamics::User_substances2::<impl Thermodynamics::User_substances::SubsData>::
if_not_found_go_NIST`: legacy gas-default fallback; use if_not_found_go_nist(NistFallbackPolicy::ExactRequestedState) f
or phase-aware code
   --> src\Thermodynamics\User_substances_error_tests.rs:123:32
    |
123 |         let result = subs_data.if_not_found_go_NIST();
    |                                ^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(deprecated)]` on by default

warning: use of deprecated method `Thermodynamics::User_substances2::<impl Thermodynamics::User_substances::SubsData>::
if_not_found_go_NIST`: legacy gas-default fallback; use if_not_found_go_nist(NistFallbackPolicy::ExactRequestedState) f
or phase-aware code
    --> src\Thermodynamics\User_substances_tests.rs:2227:19
     |
2227 |         user_subs.if_not_found_go_NIST().unwrap();
     |                   ^^^^^^^^^^^^^^^^^^^^

warning: use of deprecated method `Thermodynamics::User_substances2::<impl Thermodynamics::User_substances::SubsData>::
if_not_found_go_NIST`: legacy gas-default fallback; use if_not_found_go_nist(NistFallbackPolicy::ExactRequestedState) f
or phase-aware code
    --> src\Thermodynamics\User_substances_tests.rs:2256:32
     |
2256 |         let result = user_subs.if_not_found_go_NIST();
     |                                ^^^^^^^^^^^^^^^^^^^^

warning: unused variable: `M`
   --> src\simple_combustion_models\zeldovich.rs:198:13
    |
198 |             M,
    |             ^ help: try ignoring the field: `M: _`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: variants `SymbolicDifferentiation`, `ResidualLambdification`, and `JacobianLambdification` are never construct
ed
   --> src\Thermodynamics\ChemEquilibrium\postprocessing_and_logging\equilibrium_timing.rs:125:5
    |
117 | pub(crate) enum RstPreparationTimingStage {
    |                 ------------------------- variants in this enum
...
125 |     SymbolicDifferentiation,
    |     ^^^^^^^^^^^^^^^^^^^^^^^
126 |     ResidualLambdification,
    |     ^^^^^^^^^^^^^^^^^^^^^^
127 |     JacobianLambdification,
    |     ^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `RstPreparationTimingStage` has derived impls for the traits `Clone` and `Debug`, but these are intentional
ly ignored during dead code analysis
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: field `config_file` is never read
   --> src\library_manager.rs:144:5
    |
142 | pub struct LibraryManager {
    |            -------------- field in this struct
143 |     config: LibraryConfig,
144 |     config_file: String,
    |     ^^^^^^^^^^^
    |
    = note: `LibraryManager` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored 
during dead code analysis

warning: linker stdout: Создается библиотека D:\RUST\RustProjects_\KiThe\target\debug\deps\KiThe-77fcfe47787a5b39.lib и
 объект D:\RUST\RustProjects_\KiThe\target\debug\deps\KiThe-77fcfe47787a5b39.exp
  |
  = note: `#[warn(linker_messages)]` on by default

warning: `KiThe` (lib test) generated 7 warnings (run `cargo fix --lib -p KiThe --tests` to apply 1 suggestion)
    Finished `test` profile [unoptimized] target(s) in 14.42s
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.
1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibi
lities --id 1`
     Running unittests src\lib.rs (target\debug\deps\KiThe-77fcfe47787a5b39.exe)

running 1 test
TP1907 KiThe/RST strict parity fixture
// source: NASA TP-1907 CHON + graphite, accepted fixed P,T facade route
// requested policy: elemental ElementInventory -> explicit Single RST Trust-Region LM
// actual accepted route: physical attempt -> extensive normalization -> normalized RST discovery -> failed physical retry -> reconstructed physical publication
// temperature_k: 7.00000000000000000e2; pressure_pa: 1.01325000000000000e5; inventory_scale: 1.00000000000000000e8
// The fixture is emitted from the accepted facade state; no second solver determines y_final.
// Coordinates: y[i] = ln(n[i]); n[i] = exp(y[i]); no dependent-variable elimination.
// Rows 0..13 are reaction-affinity equations; rows 13..18 are elemental balances A*n-b.
// F_raw(y) = [reaction-affinity rows; A*n-b].
// residual_row_scale_w is denominator D: F_scaled[i] = F_raw[i] / D[i], W=diag(1/D).
// Reaction D rows are reaction-norm scales; balance D rows are abs(b[e]) with unit fallback at zero.
// Bounds are adapter log-mole roundoff bounds; exp(y) is strictly positive before publication.
// Published inactive-phase amounts may be zero; phase control is external active-set/TPD logic.
// At this point graphite must be active and its final TPD is checked by the facade acceptance report.
// This is the same 18-variable/18-row prepared graph exported by the RST adapter.
// The facade acceptance report may retain normalized-recovery solver norms; the raw/scaled vectors and physical balances below are freshly recomputed on this physical y_final.
let accepted_backend: &str = "RustedSciThe(TrustRegionLevenbergMarquardt)";
let active_topology: &str = "PhaseId(Some(\"gas\"))+PhaseId(Some(\"graphite\"))";
let started_backend_attempts: usize = 1;
let used_extensive_normalization_recovery: bool = true;
let normalization_scale: f64 = 1.44053390400000000e9;
let recovery_discovery_backend: Option<&str> = Some("RustedSciThe(TrustRegionLevenbergMarquardt)");
let recovery_physical_retry_backend: Option<&str> = None;
let reconstructed_physical_boundary: bool = true;
// accepted backend: RustedSciThe(TrustRegionLevenbergMarquardt); started attempts: 1; active topology: PhaseId(Some("gas"))+PhaseId(Some("graphite")).
// extensive normalization/recovery evidence: Some(ExtensiveNormalizationRecoveryEvidence { physical_inventory_scale: 1440533904.0, trigger_kind: AllBackendsFailed, trigger_message: "all equilibrium solver backends failed after 1 attempt(s)", discovery_backend: RustedSciThe(TrustRegionLevenbergMarquardt), physical_retry_backend: None, physical_retry_failure: Some("all equilibrium solver backends failed after 1 attempt(s)"), physical_failure_attempts: [SolverAttemptReport { backend: RustedSciThe(TrustRegionLevenbergMarquardt), outcome: RejectedCandidate { reason: "equilibrium candidate field 'candidate_acceptance_residual' was rejected: residual L2 norm 5.0577700794144064e1 exceeds tolerance 1e-12" }, metrics: Some(SolverAttemptMetrics { termination: MaxIterations, backend_converged: false, iterations: 500, residual_evaluations: 918, jacobian_evaluations: 418, linear_solves: 500, elapsed_millis: 252, elapsed_micros: 252270, evaluation_timing: Some(SolverEvaluationTiming { residual_evaluation_micros: 57791, jacobian_evaluation_micros: 16906, legacy_same_iterate_callback_pairs: None, linear_system_micros: Some(159145), solver_overhead_micros: 18281, matrix_operations_micros: 0, norm_micros: 0, trial_vector_micros: 0, feasibility_micros: 0, globalization_micros: 0 }) }) }], normalized_discovery_attempts: [SolverAttemptReport { backend: RustedSciThe(TrustRegionLevenbergMarquardt), outcome: Accepted, metrics: Some(SolverAttemptMetrics { termination: Converged, backend_converged: true, iterations: 18, residual_evaluations: 34, jacobian_evaluations: 16, linear_solves: 18, elapsed_millis: 9, elapsed_micros: 9919, evaluation_timing: Some(SolverEvaluationTiming { residual_evaluation_micros: 2395, jacobian_evaluation_micros: 736, legacy_same_iterate_callback_pairs: None, linear_system_micros: Some(6044), solver_overhead_micros: 720, matrix_operations_micros: 0, norm_micros: 0, trial_vector_micros: 0, feasibility_micros: 0, globalization_micros: 0 }) }) }], physical_retry_attempts: [SolverAttemptReport { backend: RustedSciThe(TrustRegionLevenbergMarquardt), outcome: RejectedCandidate { reason: "equilibrium candidate field 'candidate_acceptance_residual' was rejected: residual L2 norm 1.2003530486313302e-6 exceeds tolerance 1e-12" }, metrics: Some(SolverAttemptMetrics { termination: StepTooSmall, backend_converged: false, iterations: 1, residual_evaluations: 3, jacobian_evaluations: 2, linear_solves: 2, elapsed_millis: 0, elapsed_micros: 823, evaluation_timing: Some(SolverEvaluationTiming { residual_evaluation_micros: 269, jacobian_evaluation_micros: 126, legacy_same_iterate_callback_pairs: None, linear_system_micros: Some(319), solver_overhead_micros: 88, matrix_operations_micros: 0, norm_micros: 0, trial_vector_micros: 0, feasibility_micros: 0, globalization_micros: 0 }) }) }], physical_failure_duration: 0ns, normalization_duration: 165.3µs, normalized_discovery_duration: 0ns, physical_retry_duration: 0ns, reconstruction_duration: 0ns, reconstructed_physical_boundary: true })
let equations_fnv1a64: &str = "0x6dc514792152d82c";
let equations: Vec<String> = vec!["-0.6509337356549053 * y1 - 0.07903822305090336 * y10 - 0.1505904470022719 * y11 - 0.014971998199069754 * y12 - 0.08652422215043824 * y13 - 0.07155222395136852 * y14 + 0.07764547903238539 * y15 - 0.14310444790273705 * y16 + 0.2885301358363375 * y17 + 0.21697791188496898 * y2 + 0.14542568793360044 * y3 + 0.149197702983754 * y4 + 0.006093255081016968 * y5 + 0.29839540596750774 * y6 + 0.22684318201613918 * y7 - 0.007485999099534877 * y8 + 0.44010710985172685 * y9 - -0.12027235504272604 * (-0.6509337356549053 * g0_1 - 0.07903822305090336 * g0_10 - 0.1505904470022719 * g0_11 - 0.014971998199069754 * g0_12 - 0.08652422215043824 * g0_13 - 0.07155222395136852 * g0_14 + 0.07764547903238539 * g0_15 - 0.14310444790273705 * g0_16 + 0.2885301358363375 * g0_17 + 0.21697791188496898 * g0_2 + 0.14542568793360044 * g0_3 + 0.149197702983754 * g0_4 + 0.006093255081016968 * g0_5 + 0.29839540596750774 * g0_6 + 0.22684318201613918 * g0_7 - 0.007485999099534877 * g0_8 + 0.44010710985172685 * g0_9) / T - 0.2885301358363375 * ln(exp(y17)) - 0.3564844377398704 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))".to_string(), "0.00000000000000033993498887762963 * y1 - 0.00000000000000005948862305358518 * y10 - 0.000000000000000050990248331644446 * y11 - 0.00000000000000011101001980535093 * y12 - 0.00000000000000008498374721940741 * y13 - 0.000000000000000014872155763396295 * y14 - 0.00000000000000002974431152679259 * y16 + 0.40824829046386324 * y17 - 0.8164965809277257 * y2 + 0.40824829046386346 * y3 - 0.000000000000000025495124165822223 * y4 + 0.00000000000000004567876413043148 * y5 - 0.00000000000000001699674944388148 * y6 - 0.00000000000000003399349888776296 * y7 - 0.00000000000000005550500990267546 * y8 - 0.00000000000000003399349888776296 * y9 - -0.12027235504272604 * (0.00000000000000033993498887762963 * g0_1 - 0.00000000000000005948862305358518 * g0_10 - 0.000000000000000050990248331644446 * g0_11 - 0.00000000000000011101001980535093 * g0_12 - 0.00000000000000008498374721940741 * g0_13 - 0.000000000000000014872155763396295 * g0_14 - 0.00000000000000002974431152679259 * g0_16 + 0.40824829046386324 * g0_17 - 0.8164965809277257 * g0_2 + 0.40824829046386346 * g0_3 - 0.000000000000000025495124165822223 * g0_4 + 0.00000000000000004567876413043148 * g0_5 - 0.00000000000000001699674944388148 * g0_6 - 0.00000000000000003399349888776296 * g0_7 - 0.00000000000000005550500990267546 * g0_8 - 0.00000000000000003399349888776296 * g0_9) / T - -0.4082482904638624 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9)) - 0.40824829046386324 * ln(exp(y17))".to_string(), "0.0000000000000003983165516740518 * y1 + 0.05898640119580196 * y10 + 0.15231420034806403 * y11 - 0.06868279591292013 * y12 + 0.02464500323934202 * y13 + 0.09332779915226201 * y14 + 0.07514705905766554 * y15 + 0.18665559830452402 * y16 + 0.6619809476665849 * y17 + 0.0000000000000005869928129933394 * y2 - 0.6619809476665833 * y3 - 0.01818074009459659 * y4 + 0.1684748582099276 * y5 - 0.03636148018919303 * y6 + 0.05696631896306899 * y7 - 0.03434139795646007 * y8 - 0.08888361824024948 * y9 - -0.09191374158934537 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9)) - -0.12027235504272604 * (0.0000000000000003983165516740518 * g0_1 + 0.05898640119580196 * g0_10 + 0.15231420034806403 * g0_11 - 0.06868279591292013 * g0_12 + 0.02464500323934202 * g0_13 + 0.09332779915226201 * g0_14 + 0.07514705905766554 * g0_15 + 0.18665559830452402 * g0_16 + 0.6619809476665849 * g0_17 + 0.0000000000000005869928129933394 * g0_2 - 0.6619809476665833 * g0_3 - 0.01818074009459659 * g0_4 + 0.1684748582099276 * g0_5 - 0.03636148018919303 * g0_6 + 0.05696631896306899 * g0_7 - 0.03434139795646007 * g0_8 - 0.08888361824024948 * g0_9) / T - 0.6619809476665849 * ln(exp(y17))".to_string(), "0.00000000000000029228675765054765 * y1 - 0.02228329559221288 * y10 - 0.036406511108404135 * y11 - 0.016320160152043295 * y12 - 0.030443375668234532 * y13 - 0.01412321551619124 * y14 + 0.04205579731488054 * y15 - 0.02824643103238248 * y16 - 0.00000000000000006601300363295047 * y17 - 0.000000000000000014757521661985515 * y2 - 0.000000000000000024977893266521802 * y3 - 0.9723049259813404 * y4 + 0.02793258179868931 * y5 + 0.11235802566214353 * y6 + 0.09823481014595227 * y7 - 0.008160080076021647 * y8 + 0.16037695841719368 * y9 - (-0.00000000000000006601300363295047 * ln(exp(y17)) - 0.687329821787971 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))) - -0.12027235504272604 * (0.00000000000000029228675765054765 * g0_1 - 0.02228329559221288 * g0_10 - 0.036406511108404135 * g0_11 - 0.016320160152043295 * g0_12 - 0.030443375668234532 * g0_13 - 0.01412321551619124 * g0_14 + 0.04205579731488054 * g0_15 - 0.02824643103238248 * g0_16 - 0.00000000000000006601300363295047 * g0_17 - 0.000000000000000014757521661985515 * g0_2 - 0.000000000000000024977893266521802 * g0_3 - 0.9723049259813404 * g0_4 + 0.02793258179868931 * g0_5 + 0.11235802566214353 * g0_6 + 0.09823481014595227 * g0_7 - 0.008160080076021647 * g0_8 + 0.16037695841719368 * g0_9) / T".to_string(), "0.00000000000000010319307203355628 * y1 + 0.07887872960701937 * y10 + 0.22863399886092578 * y11 - 0.14175307929377395 * y12 + 0.008002189960132477 * y13 + 0.1497552692539064 * y14 + 0.18366931241827705 * y15 + 0.2995105385078128 * y16 + 0.00000000000000016165240014470602 * y17 + 0.00000000000000016400232926072495 * y2 + 0.00000000000000029406885646838763 * y3 + 0.000000000000000008191458257893971 * y4 - 0.847088965779729 * y5 + 0.06782808632874131 * y6 + 0.2175833555826476 * y7 - 0.07087653964688698 * y8 + 0.030865589846225085 * y9 - -0.12027235504272604 * (0.00000000000000010319307203355628 * g0_1 + 0.07887872960701937 * g0_10 + 0.22863399886092578 * g0_11 - 0.14175307929377395 * g0_12 + 0.008002189960132477 * g0_13 + 0.1497552692539064 * g0_14 + 0.18366931241827705 * g0_15 + 0.2995105385078128 * g0_16 + 0.00000000000000016165240014470602 * g0_17 + 0.00000000000000016400232926072495 * g0_2 + 0.00000000000000029406885646838763 * g0_3 + 0.000000000000000008191458257893971 * g0_4 - 0.847088965779729 * g0_5 + 0.06782808632874131 * g0_6 + 0.2175833555826476 * g0_7 - 0.07087653964688698 * g0_8 + 0.030865589846225085 * g0_9) / T - 0.00000000000000016165240014470602 * ln(exp(y17)) - 0.2050084856452984 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))".to_string(), "0.0000000000000006322262047063343 * y1 - 0.04631013943969762 * y10 - 0.06792153784488988 * y11 - 0.049397482069010776 * y12 - 0.07100888047420299 * y13 - 0.021611398405192255 * y14 + 0.11320256307481652 * y15 - 0.04322279681038451 * y16 + 0.00000000000000003183776648058203 * y17 + 0.00000000000000003501789681355293 * y2 - 0.0000000000000000002374354010270983 * y3 + 0.00000000000000015937806663230025 * y4 + 0.00000000000000010318264141777957 * y5 - 0.8742325212005133 * y6 + 0.24801652455482517 * y7 - 0.024698741034505388 * y8 + 0.37974314340552084 * y9 - -0.12027235504272604 * (0.0000000000000006322262047063343 * g0_1 - 0.04631013943969762 * g0_10 - 0.06792153784488988 * g0_11 - 0.049397482069010776 * g0_12 - 0.07100888047420299 * g0_13 - 0.021611398405192255 * g0_14 + 0.11320256307481652 * g0_15 - 0.04322279681038451 * g0_16 + 0.00000000000000003183776648058203 * g0_17 + 0.00000000000000003501789681355293 * g0_2 - 0.0000000000000000002374354010270983 * g0_3 + 0.00000000000000015937806663230025 * g0_4 + 0.00000000000000010318264141777957 * g0_5 - 0.8742325212005133 * g0_6 + 0.24801652455482517 * g0_7 - 0.024698741034505388 * g0_8 + 0.37974314340552084 * g0_9) / T - -0.45744126624323334 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9)) - 0.00000000000000003183776648058203 * ln(exp(y17))".to_string(), "0.0000000000000007695862291059086 * y1 + 0.005851900793493631 * y10 + 0.0914359498983378 * y11 - 0.15946429662270103 * y12 - 0.07388024751785681 * y13 + 0.08558404910484413 * y14 + 0.26187256050883956 * y15 + 0.17116809820968826 * y16 + 0.00000000000000004546698463291556 * y17 + 0.00000000000000014507524738862408 * y2 + 0.00000000000000017988079617071384 * y3 + 0.0000000000000002065663669566315 * y4 + 0.00000000000000037675000992021353 * y5 + 0.00000000000000037944013878688717 * y6 - 0.8046363591053719 * y7 - 0.07973214831135052 * y8 + 0.4491333859006356 * y9 - -0.05266710714143924 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9)) - -0.12027235504272604 * (0.0000000000000007695862291059086 * g0_1 + 0.005851900793493631 * g0_10 + 0.0914359498983378 * g0_11 - 0.15946429662270103 * g0_12 - 0.07388024751785681 * g0_13 + 0.08558404910484413 * g0_14 + 0.26187256050883956 * g0_15 + 0.17116809820968826 * g0_16 + 0.00000000000000004546698463291556 * g0_17 + 0.00000000000000014507524738862408 * g0_2 + 0.00000000000000017988079617071384 * g0_3 + 0.0000000000000002065663669566315 * g0_4 + 0.00000000000000037675000992021353 * g0_5 + 0.00000000000000037944013878688717 * g0_6 - 0.8046363591053719 * g0_7 - 0.07973214831135052 * g0_8 + 0.4491333859006356 * g0_9) / T - 0.00000000000000004546698463291556 * ln(exp(y17))".to_string(), "-0.00000000000000009524470816514522 * y1 + 0.069310917870949 * y10 + 0.024066290927412866 * y11 + 0.22911108962897034 * y12 + 0.1838664626854341 * y13 - 0.04524462694353614 * y14 - 0.07508682769352808 * y15 - 0.09048925388707228 * y16 - 0.00000000000000003827656624622236 * y17 - 0.00000000000000004950038152651186 * y2 - 0.00000000000000008479592866151912 * y3 - 0.000000000000000024060414749599567 * y4 - 0.0000000000000001300277716589965 * y5 - 0.000000000000000028362165748695096 * y6 - 0.00000000000000008817253600630607 * y7 - 0.9443612559916791 * y8 + 0.025028942564509365 * y9 - (-0.00000000000000003827656624622236 * ln(exp(y17)) - 0.6237982608385405 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))) - -0.12027235504272604 * (-0.00000000000000009524470816514522 * g0_1 + 0.069310917870949 * g0_10 + 0.024066290927412866 * g0_11 + 0.22911108962897034 * g0_12 + 0.1838664626854341 * g0_13 - 0.04524462694353614 * g0_14 - 0.07508682769352808 * g0_15 - 0.09048925388707228 * g0_16 - 0.00000000000000003827656624622236 * g0_17 - 0.00000000000000004950038152651186 * g0_2 - 0.00000000000000008479592866151912 * g0_3 - 0.000000000000000024060414749599567 * g0_4 - 0.0000000000000001300277716589965 * g0_5 - 0.000000000000000028362165748695096 * g0_6 - 0.00000000000000008817253600630607 * g0_7 - 0.9443612559916791 * g0_8 + 0.025028942564509365 * g0_9) / T".to_string(), "0.000000000000004294567531736067 * y1 - 0.031167254184565032 * y10 - 0.15237324268009603 * y11 + 0.1800774686219318 * y12 + 0.05887148012640071 * y13 - 0.12120598849553098 * y14 + 0.8830722018960114 * y15 - 0.24241197699106196 * y16 + 0.0000000000000003003337751533305 * y17 + 0.00000000000000017219448436288174 * y2 + 0.000000000000000024870621057222597 * y3 + 0.0000000000000011796483996431353 * y4 + 0.0000000000000010622879037557194 * y5 + 0.0000000000000022737995338547752 * y6 + 0.0000000000000026326813942312193 * y7 + 0.000000000000000117865117184229 * y8 - 0.2943574006319992 * y9 - -0.12027235504272604 * (0.000000000000004294567531736067 * g0_1 - 0.031167254184565032 * g0_10 - 0.15237324268009603 * g0_11 + 0.1800774686219318 * g0_12 + 0.05887148012640071 * g0_13 - 0.12120598849553098 * g0_14 + 0.8830722018960114 * g0_15 - 0.24241197699106196 * g0_16 + 0.0000000000000003003337751533305 * g0_17 + 0.00000000000000017219448436288174 * g0_2 + 0.000000000000000024870621057222597 * g0_3 + 0.0000000000000011796483996431353 * g0_4 + 0.0000000000000010622879037557194 * g0_5 + 0.0000000000000022737995338547752 * g0_6 + 0.0000000000000026326813942312193 * g0_7 + 0.000000000000000117865117184229 * g0_8 - 0.2943574006319992 * g0_9) / T - 0.0000000000000003003337751533305 * ln(exp(y17)) - 0.2805052876611025 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))".to_string(), "-0.00000000000000027658190704679374 * y1 - 0.9330531792422753 * y10 + 0.20174122794427587 * y11 + 0.15130592095820697 * y12 + 0.21435005469079313 * y13 + 0.06304413373258617 * y14 - 0.000000000000000003718380719490311 * y15 + 0.12608826746517235 * y16 - 0.00000000000000003611203863457941 * y17 + 0.000000000000000029775687551448806 * y2 + 0.00000000000000009383443109772607 * y3 - 0.00000000000000007686111675464083 * y4 + 0.000000000000000011592598713705144 * y5 - 0.00000000000000012773731412837291 * y6 - 0.00000000000000011308251952802873 * y7 + 0.00000000000000008530402827066007 * y8 - 0.00000000000000016360875165757368 * y9 - (-0.00000000000000003611203863457941 * ln(exp(y17)) - 0.17652357445124137 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))) - -0.12027235504272604 * (-0.00000000000000027658190704679374 * g0_1 - 0.9330531792422753 * g0_10 + 0.20174122794427587 * g0_11 + 0.15130592095820697 * g0_12 + 0.21435005469079313 * g0_13 + 0.06304413373258617 * g0_14 - 0.000000000000000003718380719490311 * g0_15 + 0.12608826746517235 * g0_16 - 0.00000000000000003611203863457941 * g0_17 + 0.000000000000000029775687551448806 * g0_2 + 0.00000000000000009383443109772607 * g0_3 - 0.00000000000000007686111675464083 * g0_4 + 0.000000000000000011592598713705144 * g0_5 - 0.00000000000000012773731412837291 * g0_6 - 0.00000000000000011308251952802873 * g0_7 + 0.00000000000000008530402827066007 * g0_8 - 0.00000000000000016360875165757368 * g0_9) / T".to_string(), "-0.0000000000000010988750225478982 * y1 + 0.00000000000000017997399804912185 * y10 - 0.7710996009560592 * y11 + 0.07009996372327822 * y12 + 0.3154498367547521 * y13 + 0.2453498730314737 * y14 - 0.00000000000000010895723125136027 * y15 + 0.4906997460629474 * y16 - 0.00000000000000007034794450771415 * y17 + 0.00000000000000017018177846448862 * y2 + 0.0000000000000004326672196343078 * y3 - 0.00000000000000030407093386610076 * y4 + 0.00000000000000011260535283343713 * y5 - 0.0000000000000006096011163650322 * y6 - 0.0000000000000004985766162171617 * y7 + 0.000000000000000030522617236709197 * y8 - 0.0000000000000010146642160282925 * y9 - -0.00000000000000007034794450771415 * ln(exp(y17)) - -0.12027235504272604 * (-0.0000000000000010988750225478982 * g0_1 + 0.00000000000000017997399804912185 * g0_10 - 0.7710996009560592 * g0_11 + 0.07009996372327822 * g0_12 + 0.3154498367547521 * g0_13 + 0.2453498730314737 * g0_14 - 0.00000000000000010895723125136027 * g0_15 + 0.4906997460629474 * g0_16 - 0.00000000000000007034794450771415 * g0_17 + 0.00000000000000017018177846448862 * g0_2 + 0.0000000000000004326672196343078 * g0_3 - 0.00000000000000030407093386610076 * g0_4 + 0.00000000000000011260535283343713 * g0_5 - 0.0000000000000006096011163650322 * g0_6 - 0.0000000000000004985766162171617 * g0_7 + 0.000000000000000030522617236709197 * g0_8 - 0.0000000000000010146642160282925 * g0_9) / T - 0.3504998186163895 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))".to_string(), "0.0000000000000006664097774159498 * y1 + 0.0000000000000002657218347295609 * y10 + 0.00000000000000019554881499464167 * y11 - 0.6741998624632414 * y12 + 0.6741998624632427 * y13 - 0.1348399724926486 * y14 + 0.00000000000000011134119131273858 * y15 - 0.2696799449852972 * y16 - 0.00000000000000005543668559058618 * y17 - 0.0000000000000000742293346162675 * y2 - 0.00000000000000016280140578501274 * y3 + 0.0000000000000001957827250604248 * y4 - 0.00000000000000006923737947178703 * y5 + 0.0000000000000004158920969622883 * y6 + 0.00000000000000039016198972615113 * y7 + 0.00000000000000034197651617483987 * y8 + 0.000000000000000979615355499473 * y9 - (-0.00000000000000005543668559058618 * ln(exp(y17)) - 0.40451991747794125 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))) - -0.12027235504272604 * (0.0000000000000006664097774159498 * g0_1 + 0.0000000000000002657218347295609 * g0_10 + 0.00000000000000019554881499464167 * g0_11 - 0.6741998624632414 * g0_12 + 0.6741998624632427 * g0_13 - 0.1348399724926486 * g0_14 + 0.00000000000000011134119131273858 * g0_15 - 0.2696799449852972 * g0_16 - 0.00000000000000005543668559058618 * g0_17 - 0.0000000000000000742293346162675 * g0_2 - 0.00000000000000016280140578501274 * g0_3 + 0.0000000000000001957827250604248 * g0_4 - 0.00000000000000006923737947178703 * g0_5 + 0.0000000000000004158920969622883 * g0_6 + 0.00000000000000039016198972615113 * g0_7 + 0.00000000000000034197651617483987 * g0_8 + 0.000000000000000979615355499473 * g0_9) / T".to_string(), "-0.0000000000000010255969220602796 * y1 + 0.00000000000000007137285690585904 * y10 + 0.00000000000000031186835300168864 * y11 - 0.00000000000000017067422303575003 * y12 - 0.8944271909999157 * y14 - 0.00000000000000014003044208160403 * y15 + 0.44721359549995837 * y16 - 0.00000000000000005159016287216987 * y17 + 0.00000000000000017168581989460165 * y2 + 0.0000000000000003960417766352291 * y3 - 0.00000000000000028878854329571795 * y4 + 0.00000000000000009348292670821763 * y5 - 0.0000000000000005791286704372155 * y6 - 0.0000000000000004782757204615449 * y7 - 0.00000000000000011520510054913132 * y8 - 0.0000000000000010969697789661388 * y9 - (-0.00000000000000005159016287216987 * ln(exp(y17)) - 0.44721359549996015 * ln(exp(y0) + exp(y1) + exp(y10) + exp(y11) + exp(y12) + exp(y13) + exp(y14) + exp(y15) + exp(y16) + exp(y2) + exp(y3) + exp(y4) + exp(y5) + exp(y6) + exp(y7) + exp(y8) + exp(y9))) - -0.12027235504272604 * (-0.0000000000000010255969220602796 * g0_1 + 0.00000000000000007137285690585904 * g0_10 + 0.00000000000000031186835300168864 * g0_11 - 0.00000000000000017067422303575003 * g0_12 - 0.8944271909999157 * g0_14 - 0.00000000000000014003044208160403 * g0_15 + 0.44721359549995837 * g0_16 - 0.00000000000000005159016287216987 * g0_17 + 0.00000000000000017168581989460165 * g0_2 + 0.0000000000000003960417766352291 * g0_3 - 0.00000000000000028878854329571795 * g0_4 + 0.00000000000000009348292670821763 * g0_5 - 0.0000000000000005791286704372155 * g0_6 - 0.0000000000000004782757204615449 * g0_7 - 0.00000000000000011520510054913132 * g0_8 - 0.0000000000000010969697789661388 * g0_9) / T".to_string(), "exp(y0) - 5364815.999999999".to_string(), "exp(y1) + exp(y17) + exp(y2) + exp(y3) - 100182736".to_string(), "2 * exp(y6) + 2 * exp(y7) + 3 * exp(y9) + 4 * exp(y1) + exp(y15) + exp(y4) + exp(y5) - 200000000".to_string(), "2 * exp(y12) + 2 * exp(y13) + exp(y10) + exp(y11) + exp(y8) + exp(y9) - 894620880.0000001".to_string(), "2 * exp(y11) + 2 * exp(y16) + 2 * exp(y3) + 2 * exp(y5) + exp(y10) + exp(y13) + exp(y14) + exp(y15) + exp(y2) + exp(y7) - 240365472".to_string()];
let variables: Vec<String> = vec!["y0".to_string(), "y1".to_string(), "y2".to_string(), "y3".to_string(), "y4".to_string(), "y5".to_string(), "y6".to_string(), "y7".to_string(), "y8".to_string(), "y9".to_string(), "y10".to_string(), "y11".to_string(), "y12".to_string(), "y13".to_string(), "y14".to_string(), "y15".to_string(), "y16".to_string(), "y17".to_string()];
let equation_parameters: Vec<String> = vec!["T".to_string(), "g0_0".to_string(), "g0_1".to_string(), "g0_2".to_string(), "g0_3".to_string(), "g0_4".to_string(), "g0_5".to_string(), "g0_6".to_string(), "g0_7".to_string(), "g0_8".to_string(), "g0_9".to_string(), "g0_10".to_string(), "g0_11".to_string(), "g0_12".to_string(), "g0_13".to_string(), "g0_14".to_string(), "g0_15".to_string(), "g0_16".to_string(), "g0_17".to_string()];
let equation_parameter_values: Vec<f64> = vec![7.00000000000000000e2, -1.12446021115026888e5, -2.13170551189015736e5, -2.54631726236580202e5, -5.51213378891847096e5, 1.33615869738429552e5, -1.55139954474190337e5, -9.71743984271630470e4, -3.80706770892712870e5, 3.61263767705759616e5, -1.88510850753486360e5, -6.21446958310785703e4, -1.41891230313522334e5, -1.39857084358844266e5, -8.07814187503829162e4, 1.32213985757463466e5, -9.50548687019174831e4, -1.49514500249614095e5, -6.36346609712339068e3];
let element_labels: Vec<String> = vec!["Ar".to_string(), "C".to_string(), "H".to_string(), "N".to_string(), "O".to_string()];
let element_totals_b: Vec<f64> = vec![5.36481599999999907e6, 1.00182736000000000e8, 2.00000000000000000e8, 8.94620880000000119e8, 2.40365472000000000e8];
let species_order: Vec<String> = vec!["gas::Ar".to_string(), "gas::CH4".to_string(), "gas::CO".to_string(), "gas::CO2".to_string(), "gas::H".to_string(), "gas::HO2".to_string(), "gas::H2".to_string(), "gas::H2O".to_string(), "gas::N".to_string(), "gas::NH3".to_string(), "gas::NO".to_string(), "gas::NO2".to_string(), "gas::N2".to_string(), "gas::N2O".to_string(), "gas::O".to_string(), "gas::OH".to_string(), "gas::O2".to_string(), "graphite::C(gr)".to_string()];
let element_composition_a_element_by_species: Vec<Vec<f64>> = vec![
    vec![1.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0], // A[0=Ar]
    vec![0.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0], // A[1=C]
    vec![0.00000000000000000e0, 4.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 2.00000000000000000e0, 2.00000000000000000e0, 0.00000000000000000e0, 3.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0], // A[2=H]
    vec![0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 2.00000000000000000e0, 2.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0], // A[3=N]
    vec![0.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0, 2.00000000000000000e0, 0.00000000000000000e0, 2.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0, 2.00000000000000000e0, 0.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 2.00000000000000000e0, 0.00000000000000000e0], // A[4=O]
];
let species_phase: Vec<usize> = vec![0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1];
let residual_row_scale_w: Vec<f64> = vec![1.00000000000000000e0, 9.99999999999999889e-1, 1.00000000000000000e0, 1.00000000000000000e0, 9.99999999999999889e-1, 1.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 1.00000000000000000e0, 9.99999999999999889e-1, 1.00000000000000000e0, 1.00000000000000000e0, 5.36481599999999907e6, 1.00182736000000000e8, 2.00000000000000000e8, 8.94620880000000119e8, 2.40365472000000000e8];
let initial_log_moles: Vec<f64> = vec![1.54953726370934710e1, 1.77275335633924200e1, -4.60517018598809145e1, 1.77311816211308155e1, -4.60517018598809145e1, -4.60517018598809145e1, -4.60517018598809145e1, -4.60517018598809145e1, -4.60517018598809145e1, -4.60517018598809145e1, -4.60517018598809145e1, -4.60517018598809145e1, 1.99187634081709426e1, -4.60517018598809145e1, -4.60517018598809145e1, -4.60517018598809145e1, 1.80640058000136321e1, -4.60517018598809145e1];
let log_mole_bounds: Option<Vec<(f64, f64)>> = Some(vec![(-7.08396418532264079e2, 1.54953726370944711e1), (-7.08396418532264079e2, 1.77275335633934183e1), (-7.08396418532264079e2, 1.84225064363622977e1), (-7.08396418532264079e2, 1.84225064363622977e1), (-7.08396418532264079e2, 1.91138279245133091e1), (-7.08396418532264079e2, 1.86045239424631390e1), (-7.08396418532264079e2, 1.84206807439533655e1), (-7.08396418532264079e2, 1.84206807439533655e1), (-7.08396418532264079e2, 2.06119105887318881e1), (-7.08396418532264079e2, 1.80152156358451982e1), (-7.08396418532264079e2, 1.92976711230230862e1), (-7.08396418532264079e2, 1.86045239424631390e1), (-7.08396418532264079e2, 1.99187634081719409e1), (-7.08396418532264079e2, 1.92976711230230862e1), (-7.08396418532264079e2, 1.92976711230230862e1), (-7.08396418532264079e2, 1.91138279245133091e1), (-7.08396418532264079e2, 1.86045239424631390e1), (-7.08396418532264079e2, 1.84225064363622977e1)]);
let y_final: Vec<f64> = vec![1.54953726370934710e1, 1.58620236487799229e1, 1.51325182239758078e1, 1.82942386238111325e1, -1.26714171367262978e1, -5.86505544002986241e1, 1.69966806163510533e1, 1.79163043590012769e1, -5.39911425629876405e1, 1.05126091036093179e1, -2.90383375527450127e1, -6.31327176080713812e1, 1.99187222990660473e1, -3.80277619521825017e1, -5.02410471559785137e1, -2.11779904307943170e1, -4.96313629455999532e1, 1.32829875945798417e1];
let physical_moles_from_y_final: Vec<f64> = vec![5.36481599999999907e6, 7.74086230890756100e6, 3.73223655295130191e6, 8.81225153254869878e7, 3.13959377721678766e-6, 3.37588670608522805e-26, 2.40749061245978773e7, 6.03882047960746884e7, 3.56405759207114417e-24, 3.67763076738358068e4, 2.44799336966830294e-13, 3.81776432388411418e-28, 4.47292051846163750e8, 3.05318292586361360e-17, 1.51562044516993336e-22, 6.34622722884972551e-10, 2.78851473285999735e-22, 5.87121812654128182e5];
let numerical_moles_from_accepted_solution: Vec<f64> = vec![5.36481599999999814e6, 7.74086230890756007e6, 3.73223655295129819e6, 8.81225153254870176e7, 3.13959377721678724e-6, 3.37588670608522805e-26, 2.40749061245978549e7, 6.03882047960746810e7, 3.56405759207114417e-24, 3.67763076738357995e4, 2.44799336966830243e-13, 3.81776432388411373e-28, 4.47292051846163213e8, 3.05318292586361298e-17, 1.51562044516993313e-22, 6.34622722884972551e-10, 2.78851473285999688e-22, 5.87121812654128182e5];
let published_component_moles: Vec<f64> = vec![5.36481599999999814e6, 7.74086230890756007e6, 3.73223655295129819e6, 8.81225153254870176e7, 3.13959377721678724e-6, 3.37588670608522805e-26, 2.40749061245978549e7, 6.03882047960746810e7, 3.56405759207114417e-24, 3.67763076738357995e4, 2.44799336966830243e-13, 3.81776432388411373e-28, 4.47292051846163213e8, 3.05318292586361298e-17, 1.51562044516993313e-22, 6.34622722884972551e-10, 2.78851473285999688e-22, 5.87121812654128182e5];
let phase_status_rows: Vec<(String, String, String, String, String, Option<f64>)> = vec![
    ("PhaseId(Some(\"gas\"))".to_string(), "Gas".to_string(), "IdealGas".to_string(), "IdealGas".to_string(), "Some(Active)".to_string(), Some(636752369.2618586)),
    ("PhaseId(Some(\"graphite\"))".to_string(), "Solid".to_string(), "PureCondensed".to_string(), "IdealSolution".to_string(), "Some(Active)".to_string(), Some(587121.8126541282)),];
let graphite_status: Option<String> = Some("Active");
let graphite_total: Option<f64> = Some(587121.8126541282);
let graphite_final_minimum_tpd: f64 = 1.90902937902137637e-9;
let raw_residual: Vec<f64> = vec![0.00000000000000000e0, -8.88178419700125232e-16, 3.55271367880050093e-15, -2.13162820728030056e-14, -9.76996261670137756e-15, -3.97561433600120169e-15, 2.94877628595853112e-15, 0.00000000000000000e0, 4.44089209850062616e-15, -4.88498130835068878e-15, 5.32907051820075139e-15, 5.32907051820075139e-15, -7.10542735760100186e-15, 0.00000000000000000e0, -1.49011611938476562e-8, 0.00000000000000000e0, 1.19209289550781250e-6, -2.98023223876953125e-8];
let scaled_residual: Vec<f64> = vec![7.10542735760100186e-15, 2.22044604925031348e-15, 7.10542735760100186e-15, -2.13162820728030056e-14, -8.88178419700125390e-15, -3.55271367880050093e-15, 0.00000000000000000e0, 0.00000000000000000e0, -8.88178419700125232e-16, -7.10542735760100186e-15, 2.66453525910037609e-15, 8.88178419700125232e-15, 0.00000000000000000e0, 0.00000000000000000e0, -2.97479621515780032e-16, 0.00000000000000000e0, 1.33251181831102839e-15, -1.23987535063668859e-16];
let raw_jacobian: Vec<Vec<f64>> = vec![
    vec![-3.00348064280444227e-3, -6.55267440688483083e-1, 2.14888427317155961e-1, 9.60904881848414910e-2, 1.49197702983752262e-1, 6.09325508101696799e-3, 2.84917121805932816e-1, 1.93034976076043419e-1, -7.48599909953487699e-3, 4.40086520715359031e-1, -7.90382230509033556e-2, -1.50590447002271893e-1, -2.65387486707945763e-1, -8.65242221504382431e-2, -7.15522239513685238e-2, 7.76454790323853894e-2, -1.43104447902737048e-1, 0.00000000000000000e0],
    vec![3.43960551445154352e-3, 4.96298711536991791e-3, -8.14103689647061257e-1, 4.64747281232770704e-1, 0.00000000000000000e0, 0.00000000000000000e0, 1.54354184497790831e-2, 3.87173767421673948e-2, 0.00000000000000000e0, 2.35788125214191723e-5, 0.00000000000000000e0, 0.00000000000000000e0, 2.86777441779999587e-1, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0],
    vec![7.74398864145571866e-4, 1.11737568996353670e-3, 5.38739771751952376e-4, -6.49260665037373341e-1, -1.81807400945961338e-2, 1.68474858209927608e-1, -3.28863228012602760e-2, 6.56832175858494127e-2, -3.43413979564600666e-2, -8.88783096647288856e-2, 5.89864011958019588e-2, 1.52314200348064033e-1, -4.11721586487906466e-3, 2.46450032393420206e-2, 9.33277991522620115e-2, 7.51470590576655412e-2, 1.86655598304524023e-1, 0.00000000000000000e0],
    vec![5.79094511965426700e-3, 8.35572157734495828e-3, 4.02868934399773157e-3, 9.51221160345083888e-2, -9.72304925981336998e-1, 2.79325817986893106e-2, 1.38345209589490675e-1, 1.63419670139009099e-1, -8.16008007602164742e-3, 1.60416655879220854e-1, -2.22832955922128810e-2, -3.64065111084041354e-2, 4.66500448177988192e-1, -3.04433756682345319e-2, -1.41232155161912405e-2, 4.20557973148805372e-2, -2.82464310323824810e-2, 0.00000000000000000e0],
    vec![-1.72725357143252325e-3, -2.49224429487002750e-3, -1.20162908019869974e-3, -2.83718825248737531e-2, 0.00000000000000000e0, -8.47088965779729031e-1, 6.00769411663323039e-2, 1.98140798297100684e-1, -7.08765396468869768e-2, 3.08537493639468967e-2, 7.88787296070193739e-2, 2.28633998860925780e-1, -2.85763012537461725e-1, 8.00218996013247683e-3, 1.49755269253906392e-1, 1.83669312418277053e-1, 2.99510538507812785e-1, 0.00000000000000000e0],
    vec![3.85407003203899279e-3, 5.56101559622998974e-3, 2.68122915142109553e-3, 6.33069886206453908e-2, 0.00000000000000000e0, 0.00000000000000000e0, -8.56937170489703304e-1, 2.91399255741353280e-1, -2.46987410345053879e-2, 3.79769563410474353e-1, -4.63101394396976188e-2, -6.79215378448898843e-2, 2.71935978871593986e-1, -7.10088804742029928e-2, -2.16113984051922552e-2, 1.13202563074816520e-1, -4.32227968103845103e-2, 0.00000000000000000e0],
    vec![4.43735041604393927e-4, 6.40262752478577227e-4, 3.08701014555217638e-4, 7.28879573954442812e-3, 0.00000000000000000e0, 0.00000000000000000e0, 1.99128534339711822e-3, -7.99641525625975569e-1, -7.97321483113505175e-2, 4.49136427745205069e-1, 5.85190079349363120e-3, 9.14359498983377955e-2, -1.22467844696806050e-1, -7.38802475178568091e-2, 8.55840491048441288e-2, 2.61872560508839558e-1, 1.71168098209688258e-1, 0.00000000000000000e0],
    vec![5.25567402976168455e-3, 7.58338198456126600e-3, 3.65630782570607570e-3, 8.63297483517491693e-2, 0.00000000000000000e0, 0.00000000000000000e0, 2.35851255454053686e-2, 5.91596654294684748e-2, -9.44361255991679083e-1, 2.50649706939273936e-2, 6.93109178709489931e-2, 2.40662909274128659e-2, 6.67303419171437429e-1, 1.83866462685434107e-1, -4.52446269435361412e-2, -7.50868276935280771e-2, -9.04892538870722823e-2, 0.00000000000000000e0],
    vec![-2.36333514875391743e-3, -3.41004276312227746e-3, -1.64414321554607864e-3, -3.88201641706498457e-2, 0.00000000000000000e0, 0.00000000000000000e0, -1.06055961373513891e-2, -2.66025091941082606e-2, 0.00000000000000000e0, -2.94373601512060545e-1, -3.11672541845650318e-2, -1.52373242680096027e-1, -1.69658275295668792e-2, 5.88714801264007132e-2, -1.21205988495530978e-1, 8.83072201896011433e-1, -2.42411976991061956e-1, 0.00000000000000000e0],
    vec![1.48726026365794033e-3, 2.14595932432429899e-3, 1.03466868570633490e-3, 2.44297503171003773e-2, 0.00000000000000000e0, 0.00000000000000000e0, 6.67416202725478781e-3, 1.67411104848403276e-2, 0.00000000000000000e0, 1.01953060545742585e-5, -9.33053179242275266e-1, 2.01741227944275875e-1, 2.75306389000508300e-1, 2.14350054690793129e-1, 6.30441337325861745e-2, 0.00000000000000000e0, 1.26088267465172349e-1, 0.00000000000000000e0],
    vec![-2.95305856041034806e-3, -4.26095129940769375e-3, -2.05440654482247700e-3, -4.85069661749478742e-2, 0.00000000000000000e0, 0.00000000000000000e0, -1.32520123005751850e-2, -3.32406377256674462e-2, 0.00000000000000000e0, -2.02434883511287473e-5, 0.00000000000000000e0, -7.71099600956059228e-1, -1.76111578798930080e-1, 3.15449836754752078e-1, 2.45349873031473709e-1, 0.00000000000000000e0, 4.90699746062947417e-1, 0.00000000000000000e0],
    vec![3.40819293396593930e-3, 4.91766208273044028e-3, 2.37103793450840154e-3, 5.59830074424973942e-2, 0.00000000000000000e0, 0.00000000000000000e0, 1.52944527714930084e-2, 3.83637859864852659e-2, 0.00000000000000000e0, 2.33634763907243065e-5, 0.00000000000000000e0, 0.00000000000000000e0, -3.90041447613371006e-1, 6.74199862463242705e-1, -1.34839972492648591e-1, 0.00000000000000000e0, -2.69679944985297182e-1, 0.00000000000000000e0],
    vec![3.76789905836856856e-3, 5.43667999138983463e-3, 2.62128106415483514e-3, 6.18915434408140591e-2, 0.00000000000000000e0, 0.00000000000000000e0, 1.69086537389504001e-2, 4.24127612182217603e-2, 0.00000000000000000e0, 2.58292949932735249e-5, 0.00000000000000000e0, 0.00000000000000000e0, 3.14148947693062508e-1, 0.00000000000000000e0, -8.94427190999915744e-1, 0.00000000000000000e0, 4.47213595499958372e-1, 0.00000000000000000e0],
    vec![5.36481599999999907e6, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0],
    vec![0.00000000000000000e0, 7.74086230890756100e6, 3.73223655295130191e6, 8.81225153254869878e7, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 5.87121812654128182e5],
    vec![0.00000000000000000e0, 3.09634492356302440e7, 0.00000000000000000e0, 0.00000000000000000e0, 3.13959377721678766e-6, 0.00000000000000000e0, 4.81498122491957545e7, 1.20776409592149377e8, 0.00000000000000000e0, 1.10328923021507420e5, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 6.34622722884972551e-10, 0.00000000000000000e0, 0.00000000000000000e0],
    vec![0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 3.67763076738358068e4, 0.00000000000000000e0, 0.00000000000000000e0, 8.94584103692327499e8, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0],
    vec![0.00000000000000000e0, 0.00000000000000000e0, 3.73223655295130191e6, 1.76245030650973976e8, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 6.03882047960746884e7, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 6.34622722884972551e-10, 0.00000000000000000e0, 0.00000000000000000e0]
];
let scaled_jacobian: Vec<Vec<f64>> = vec![
    vec![-3.00348064280444183e-3, -6.55267440688483083e-1, 2.14888427317155961e-1, 9.60904881848415049e-2, 1.49197702983752262e-1, 6.09325508101696799e-3, 2.84917121805932816e-1, 1.93034976076043419e-1, -7.48599909953487699e-3, 4.40086520715359031e-1, -7.90382230509033556e-2, -1.50590447002271893e-1, -2.65387486707945708e-1, -8.65242221504382431e-2, -7.15522239513685238e-2, 7.76454790323853894e-2, -1.43104447902737048e-1, 0.00000000000000000e0],
    vec![3.43960551445154352e-3, 4.96298711536991791e-3, -8.14103689647061368e-1, 4.64747281232770704e-1, 1.98742835154194020e-15, 4.56787641304314852e-17, 1.54354184497790814e-2, 3.87173767421673948e-2, -5.55050099026754689e-17, 2.35788125214191723e-5, -5.94884661026013511e-17, -5.09902483316444521e-17, 2.86777441779999587e-1, -8.49837471998322065e-17, -1.48721557633961999e-17, 4.06882886054508797e-19, -2.97443115267924183e-17, 0.00000000000000000e0],
    vec![7.74398864145571649e-4, 1.11737568996353670e-3, 5.38739771751952268e-4, -6.49260665037373341e-1, -1.81807400945961338e-2, 1.68474858209927608e-1, -3.28863228012602760e-2, 6.56832175858494127e-2, -3.43413979564600666e-2, -8.88783096647288856e-2, 5.89864011958019588e-2, 1.52314200348064033e-1, -4.11721586487907854e-3, 2.46450032393420206e-2, 9.33277991522620115e-2, 7.51470590576655412e-2, 1.86655598304524023e-1, 0.00000000000000000e0],
    vec![5.79094511965426613e-3, 8.35572157734495828e-3, 4.02868934399772984e-3, 9.51221160345083749e-2, -9.72304925981336998e-1, 2.79325817986893106e-2, 1.38345209589490648e-1, 1.63419670139009099e-1, -8.16008007602164742e-3, 1.60416655879220854e-1, -2.22832955922128810e-2, -3.64065111084041354e-2, 4.66500448177988081e-1, -3.04433756682345319e-2, -1.41232155161912405e-2, 4.20557973148805372e-2, -2.82464310323824810e-2, 0.00000000000000000e0],
    vec![-1.72725357143252325e-3, -2.49224429487002750e-3, -1.20162908019869974e-3, -2.83718825248737497e-2, -1.00263063974975869e-15, -8.47088965779729142e-1, 6.00769411663323108e-2, 1.98140798297100712e-1, -7.08765396468869907e-2, 3.08537493639469002e-2, 7.88787296070193877e-2, 2.28633998860925808e-1, -2.85763012537461669e-1, 8.00218996013247856e-3, 1.49755269253906420e-1, 1.83669312418277081e-1, 2.99510538507812840e-1, 0.00000000000000000e0],
    vec![3.85407003203899192e-3, 5.56101559622998887e-3, 2.68122915142109466e-3, 6.33069886206453769e-2, 2.41485417048140259e-15, 1.03182641417779572e-16, -8.56937170489703304e-1, 2.91399255741353280e-1, -2.46987410345053879e-2, 3.79769563410474353e-1, -4.63101394396976188e-2, -6.79215378448898843e-2, 2.71935978871593875e-1, -7.10088804742029928e-2, -2.16113984051922552e-2, 1.13202563074816520e-1, -4.32227968103845103e-2, 0.00000000000000000e0],
    vec![4.43735041604393873e-4, 6.40262752478577119e-4, 3.08701014555217530e-4, 7.28879573954442726e-3, 4.66248670199499054e-16, 3.76750009920213530e-16, 1.99128534339711822e-3, -7.99641525625975569e-1, -7.97321483113505175e-2, 4.49136427745205069e-1, 5.85190079349363120e-3, 9.14359498983377955e-2, -1.22467844696806050e-1, -7.38802475178568091e-2, 8.55840491048441288e-2, 2.61872560508839558e-1, 1.71168098209688258e-1, 0.00000000000000000e0],
    vec![5.25567402976168281e-3, 7.58338198456126513e-3, 3.65630782570607526e-3, 8.63297483517491693e-2, 3.05166137681224791e-15, -1.30027771658996495e-16, 2.35851255454053652e-2, 5.91596654294684540e-2, -9.44361255991679083e-1, 2.50649706939273936e-2, 6.93109178709489931e-2, 2.40662909274128659e-2, 6.67303419171437318e-1, 1.83866462685434107e-1, -4.52446269435361412e-2, -7.50868276935280771e-2, -9.04892538870722823e-2, 0.00000000000000000e0],
    vec![-2.36333514875391700e-3, -3.41004276312227659e-3, -1.64414321554607820e-3, -3.88201641706498457e-2, -2.03420903480310244e-16, 1.06228790375571937e-15, -1.06055961373513873e-2, -2.66025091941082571e-2, 1.17865117184229010e-16, -2.94373601512060545e-1, -3.11672541845650318e-2, -1.52373242680096027e-1, -1.69658275295668237e-2, 5.88714801264007132e-2, -1.21205988495530978e-1, 8.83072201896011433e-1, -2.42411976991061956e-1, 0.00000000000000000e0],
    vec![1.48726026365794011e-3, 2.14595932432429899e-3, 1.03466868570633468e-3, 2.44297503171003738e-2, 7.93512269561361127e-16, 1.15925987137051442e-17, 6.67416202725478781e-3, 1.67411104848403242e-2, 8.53040282706600750e-17, 1.01953060545742551e-5, -9.33053179242275266e-1, 2.01741227944275875e-1, 2.75306389000508245e-1, 2.14350054690793129e-1, 6.30441337325861745e-2, -3.54244753591771027e-18, 1.26088267465172349e-1, 0.00000000000000000e0],
    vec![-2.95305856041034806e-3, -4.26095129940769375e-3, -2.05440654482247700e-3, -4.85069661749478812e-2, -2.03225774959679823e-15, 1.12605352833437151e-16, -1.32520123005751850e-2, -3.32406377256674462e-2, 3.05226172367092030e-17, -2.02434883511287439e-5, 1.79973863299527920e-16, -7.71099600956059339e-1, -1.76111578798930052e-1, 3.15449836754752133e-1, 2.45349873031473736e-1, -1.09306558807877860e-16, 4.90699746062947473e-1, 0.00000000000000000e0],
    vec![3.40819293396593800e-3, 4.91766208273044028e-3, 2.37103793450840110e-3, 5.59830074424973873e-2, 2.19032295291422053e-15, -6.92373794717870287e-17, 1.52944527714930084e-2, 3.83637859864852521e-2, 3.41976516174839871e-16, 2.33634763907243031e-5, 2.65721990247172400e-16, 1.95548814994641671e-16, -3.90041447613371062e-1, 6.74199862463242705e-1, -1.34839972492648591e-1, 1.11744358295515018e-16, -2.69679944985297182e-1, -6.16297582203915473e-33],
    vec![3.76789905836856813e-3, 5.43667999138983376e-3, 2.62128106415483470e-3, 6.18915434408140452e-2, 1.91625864505798320e-15, 9.34829267082176302e-17, 1.69086537389504001e-2, 4.24127612182217464e-2, -1.15205100549131324e-16, 2.58292949932735181e-5, 7.13730288370475824e-17, 3.11868353001688644e-16, 3.14148947693062452e-1, 2.14435780675208630e-26, -8.94427190999915744e-1, -1.39584724211694309e-16, 4.47213595499958372e-1, -6.16297582203915473e-33],
    vec![1.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0],
    vec![0.00000000000000000e0, 7.72674276824258516e-2, 3.72542885328196877e-2, 8.79617774917696327e-1, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 5.86050886705797441e-3],
    vec![0.00000000000000000e0, 1.54817246178151208e-1, 0.00000000000000000e0, 0.00000000000000000e0, 1.56979688860839398e-14, 1.68794335304261401e-34, 2.40749061245978779e-1, 6.03882047960746848e-1, 0.00000000000000000e0, 5.51644615107537068e-4, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 3.17311361442486291e-18, 0.00000000000000000e0, 0.00000000000000000e0],
    vec![0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 3.98387481417954799e-33, 4.11082599299893435e-5, 2.73634723310761823e-22, 4.26746615156591657e-37, 9.99958891740071354e-1, 6.82564647018659609e-26, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0, 0.00000000000000000e0],
    vec![0.00000000000000000e0, 0.00000000000000000e0, 1.55273406030268027e-2, 7.33237719979074054e-1, 0.00000000000000000e0, 2.80896143526406992e-34, 0.00000000000000000e0, 2.51234939417898984e-1, 0.00000000000000000e0, 0.00000000000000000e0, 1.01844634726417893e-21, 3.17663289333346027e-36, 0.00000000000000000e0, 1.27022525342725340e-25, 6.30548319839354176e-31, 2.64024078668408991e-18, 2.32022903261246884e-30, 0.00000000000000000e0]
];
let jt_f_raw: Vec<f64> = vec![-1.62991448327235461e-16, -1.15347837044411552e-1, -1.66843975467292432e-1, -6.56563902836196611e0, 2.06613350989692364e-14, 8.27915166934206490e-15, -4.42736886125222262e-16, -1.79970874774679523e0, 6.07478957888250568e-16, 4.38407751009835811e-2, 4.53482069723513844e-15, -6.14833082545274079e-15, 1.06642735444584787e3, 5.21102164342863929e-15, 5.60577516564954593e-15, 1.80092942667631795e-15, -4.67666824948345609e-15, -8.74879677078318867e-3];
let jt_f_scaled: Vec<f64> = vec![-1.16060104665255589e-16, -4.81561031937550153e-15, -3.65014992920921415e-16, -5.02283758218058729e-15, 2.16568575754164407e-14, 8.16862364501629701e-15, 1.44944498096505124e-15, -4.22863549437266314e-15, 5.93998722194525765e-16, -2.28560658034734956e-15, 6.45388673098038710e-15, -4.35381768646787592e-15, -1.41924159545591028e-14, 5.64374956039184963e-15, -1.68171477820758200e-15, -2.62863012176130893e-15, -3.36342955641516399e-15, -1.74338195966227922e-18];
let raw_residual_l2: f64 = 1.19255846588116014e-6;
let scaled_residual_l2: f64 = 2.81236124142565315e-14;
let raw_element_balance: Vec<f64> = vec![0.00000000000000000e0, -2.98023223876953125e-8, 0.00000000000000000e0, 1.19209289550781250e-6, -2.98023223876953125e-8];
let max_abs_element_balance_error: f64 = 1.19209289550781250e-6;
let published_element_balance: Vec<f64> = vec![-9.31322574615478516e-10, 0.00000000000000000e0, -5.96046447753906250e-8, 1.19209289550781250e-7, 2.98023223876953125e-8];
let max_abs_published_element_balance_error: f64 = 1.19209289550781250e-7;
// KiThe validation: scaled residual L2 = 2.71186035984988650e-14; raw residual L2 = 2.71186035984988650e-14; max reported physical balance = 7.99656953986982444e-8.
// Current facade publication acceptance uses published moles: max |A*n_published-b| <= 1e-6. A strict RST exp(y_final) transfer check must use max_abs_element_balance_error separately.
// Proposed transfer acceptance: raw/scaled residual L2 <= 1e-5, physical max |A*n-b| <= 1e-6, finite/non-negative publication, exact ordering/topology, TPD phase-control checks.
// In this run exp(y_final) balance is 1.19209289550781250e-6, while published balance is 1.19209289550781250e-7; retain both values to expose log/exp round-trip error rather than silently substituting publication moles.
// Direct RST replay starts from the original physical seed, while y_final is the accepted facade state; this is not asserted equal because facade basin preparation/recovery may change coordinates.
let max_facade_direct_y_error: f64 = 6.76952778583917194e1;
// Direct raw RST replay termination = MaxIterations; residual_l2 = 5.29781472703085186e1.
let normalized_discovery_reconstructed_y: Vec<f64> = vec![1.54953726370934710e1, 1.58620236487799229e1, 1.51325182239758078e1, 1.82942386238111325e1, -1.26714171367262978e1, -5.86505544002986241e1, 1.69966806163510533e1, 1.79163043590012769e1, -5.39911425629876405e1, 1.05126091036093179e1, -2.90383375527450127e1, -6.31327176080713812e1, 1.99187222990660473e1, -3.80277619521825017e1, -5.02410471559785137e1, -2.11779904307943170e1, -4.96313629455999532e1, 1.32829875945798417e1];
let max_normalized_reconstructed_y_error: f64 = 0.00000000000000000e0;
// The normalized discovery replay uses the same elemental inventory scaling and numerical seed as the accepted recovery route; its denormalized y is compared with y_final below.
// RST 0.4.17 history exposes iteration, post-step residual norm, step norm, and accepted flag only.
// lambda, regularization form, trial alpha, exact residual-before/after for internal retries, and per-iteration termination are not public in this version; they are emitted as None below rather than inferred.
#[derive(Debug, Clone)] struct IterationTraceRow { iteration: usize, residual_norm_before: Option<f64>, lambda: Option<f64>, regularization: Option<&'static str>, trial_alpha: Option<f64>, accepted: bool, residual_norm_after: f64, step_norm: f64, termination: Option<&'static str> }
let iteration_trace_last_20: Vec<IterationTraceRow> = vec![
    IterationTraceRow { iteration: 0, residual_norm_before: None, lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.32368348089927110e-2, step_norm: 0.00000000000000000e0, termination: None },
    IterationTraceRow { iteration: 1, residual_norm_before: Some(0.02323683480899271), lambda: None, regularization: None, trial_alpha: None, accepted: false, residual_norm_after: 2.32368348089927110e-2, step_norm: 0.00000000000000000e0, termination: None },
    IterationTraceRow { iteration: 2, residual_norm_before: Some(0.02323683480899271), lambda: None, regularization: None, trial_alpha: None, accepted: false, residual_norm_after: 2.32368348089927110e-2, step_norm: 0.00000000000000000e0, termination: None },
    IterationTraceRow { iteration: 3, residual_norm_before: Some(0.02323683480899271), lambda: None, regularization: None, trial_alpha: None, accepted: false, residual_norm_after: 2.32368348089927110e-2, step_norm: 0.00000000000000000e0, termination: None },
    IterationTraceRow { iteration: 4, residual_norm_before: Some(0.02323683480899271), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.32018300871028316e-2, step_norm: 1.49597430003870890e0, termination: None },
    IterationTraceRow { iteration: 5, residual_norm_before: Some(0.02320183008710283), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.31320828661498827e-2, step_norm: 1.99896211023803105e0, termination: None },
    IterationTraceRow { iteration: 6, residual_norm_before: Some(0.023132082866149883), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.29936258525726654e-2, step_norm: 1.24271384526361062e0, termination: None },
    IterationTraceRow { iteration: 7, residual_norm_before: Some(0.022993625852572665), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.27207724682021543e-2, step_norm: 1.49781945260584903e0, termination: None },
    IterationTraceRow { iteration: 8, residual_norm_before: Some(0.022720772468202154), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.21912972646894704e-2, step_norm: 1.30538353930284012e0, termination: None },
    IterationTraceRow { iteration: 9, residual_norm_before: Some(0.02219129726468947), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.11908898914479060e-2, step_norm: 1.29019049709755551e0, termination: None },
    IterationTraceRow { iteration: 10, residual_norm_before: Some(0.021190889891447906), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 1.93900007933637576e-2, step_norm: 1.15737013513636700e0, termination: None },
    IterationTraceRow { iteration: 11, residual_norm_before: Some(0.019390000793363758), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 1.58412122330635168e-2, step_norm: 1.29024696590058197e0, termination: None },
    IterationTraceRow { iteration: 12, residual_norm_before: Some(0.015841212233063517), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 9.01411572251168899e-3, step_norm: 1.07665985327872282e0, termination: None },
    IterationTraceRow { iteration: 13, residual_norm_before: Some(0.009014115722511689), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 1.07809511226884380e-3, step_norm: 1.57542145822187091e-1, termination: None },
    IterationTraceRow { iteration: 14, residual_norm_before: Some(0.0010780951122688438), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 1.08854533786715673e-4, step_norm: 5.36191882413091236e-1, termination: None },
    IterationTraceRow { iteration: 15, residual_norm_before: Some(0.00010885453378671567), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 1.03605316424039987e-5, step_norm: 2.07651005707856828e-1, termination: None },
    IterationTraceRow { iteration: 16, residual_norm_before: Some(1.0360531642403999e-5), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 1.27363305416077164e-7, step_norm: 2.47898866117584223e-2, termination: None },
    IterationTraceRow { iteration: 17, residual_norm_before: Some(1.2736330541607716e-7), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 1.98917624608457206e-11, step_norm: 3.12394874359966934e-4, termination: None },
    IterationTraceRow { iteration: 18, residual_norm_before: Some(1.989176246084572e-11), lambda: None, regularization: None, trial_alpha: None, accepted: true, residual_norm_after: 2.35902837946114960e-14, step_norm: 4.88048748082069807e-8, termination: None },
];
let final_termination: &str = "Converged";
// Aggregate RST calls: residual=34 jacobian=16 linear_solves=18 iterations=18 accepted_steps=15 rejected_steps=3 total_duration_us=9896.
test Thermodynamics::ChemEquilibrium::frozen_reference_nasa_tp1907_chon_graphite_tests::tests::tp1907_upper_inventory_emits_paste_ready_rst_parity_fixture ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2560 filtered out; finished in 0.77s