{"id": "linearization", "title": "Exact linearization by automatic differentiation", "description": "Jacobian-vector products (forward mode) are compared with central differences of the residual; vector-Jacobian products (reverse mode) are checked through the dot-product identity; and the element-block-Jacobi inverses obtained from split-argument JVPs are multiplied with the diagonal blocks of a dense AD Jacobian. Random admissible states on curved meshes. Boundary conditions covered: farfield, noslip_adiabatic, noslip_isothermal, pressure_outlet, slip_wall, slip_wall_mirror, symmetry, total_inlet; interface fluxes: es_roe, hllc, llf, roe.", "passed": true, "checks": [{"name": "Euler, slip wall: JVP vs central difference", "value": 5.365152894848257e-10, "expected": "< 1e-6", "passed": true}, {"name": "Euler, slip wall: <v,Ju> = <J^T v,u>", "value": 7.465640413111381e-16, "expected": "< 1e-12", "passed": true}, {"name": "Euler, slip wall: block inverse times dense diagonal block", "value": 6.750155989720952e-14, "expected": "< 1e-8", "passed": true}, {"name": "Euler, slip wall: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "NS, adiabatic wall: JVP vs central difference", "value": 3.713899660364627e-10, "expected": "< 1e-6", "passed": true}, {"name": "NS, adiabatic wall: <v,Ju> = <J^T v,u>", "value": 7.54177456109056e-15, "expected": "< 1e-12", "passed": true}, {"name": "NS, adiabatic wall: block inverse times dense diagonal block", "value": 1.2397092900851003e-14, "expected": "< 1e-8", "passed": true}, {"name": "NS, adiabatic wall: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "NS, isothermal wall: JVP vs central difference", "value": 3.157077736217753e-10, "expected": "< 1e-6", "passed": true}, {"name": "NS, isothermal wall: <v,Ju> = <J^T v,u>", "value": 1.027372518888906e-13, "expected": "< 1e-12", "passed": true}, {"name": "NS, isothermal wall: block inverse times dense diagonal block", "value": 1.634803403760543e-14, "expected": "< 1e-8", "passed": true}, {"name": "NS, isothermal wall: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "NS, mixed channel: JVP vs central difference", "value": 5.261142152973823e-10, "expected": "< 1e-6", "passed": true}, {"name": "NS, mixed channel: <v,Ju> = <J^T v,u>", "value": 4.3340655981913367e-16, "expected": "< 1e-12", "passed": true}, {"name": "NS, mixed channel: block inverse times dense diagonal block", "value": 1.494941323509913e-14, "expected": "< 1e-8", "passed": true}, {"name": "NS, mixed channel: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall: JVP vs central difference", "value": 1.9949052038704346e-10, "expected": "< 1e-6", "passed": true}, {"name": "Euler, mirrored slip wall: <v,Ju> = <J^T v,u>", "value": 1.0578413060183297e-13, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall: block inverse times dense diagonal block", "value": 5.684341886080802e-14, "expected": "< 1e-8", "passed": true}, {"name": "Euler, mirrored slip wall: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall, HLLC flux: JVP vs central difference", "value": 5.603736623434694e-10, "expected": "< 1e-6", "passed": true}, {"name": "Euler, mirrored slip wall, HLLC flux: <v,Ju> = <J^T v,u>", "value": 7.569399888518594e-14, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall, HLLC flux: block inverse times dense diagonal block", "value": 2.4868995751603507e-14, "expected": "< 1e-8", "passed": true}, {"name": "Euler, mirrored slip wall, HLLC flux: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall, LLF flux: JVP vs central difference", "value": 1.3769640699373434e-10, "expected": "< 1e-6", "passed": true}, {"name": "Euler, mirrored slip wall, LLF flux: <v,Ju> = <J^T v,u>", "value": 1.4702958165249975e-15, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall, LLF flux: block inverse times dense diagonal block", "value": 1.1712852909795402e-14, "expected": "< 1e-8", "passed": true}, {"name": "Euler, mirrored slip wall, LLF flux: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "Euler, inlet/outlet channel: JVP vs central difference", "value": 2.1087545566135716e-10, "expected": "< 1e-6", "passed": true}, {"name": "Euler, inlet/outlet channel: <v,Ju> = <J^T v,u>", "value": 1.25075990764933e-13, "expected": "< 1e-12", "passed": true}, {"name": "Euler, inlet/outlet channel: block inverse times dense diagonal block", "value": 5.384581669432009e-15, "expected": "< 1e-8", "passed": true}, {"name": "Euler, inlet/outlet channel: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall, ES-Roe flux: JVP vs central difference", "value": 1.884847744486804e-10, "expected": "< 1e-6", "passed": true}, {"name": "Euler, mirrored slip wall, ES-Roe flux: <v,Ju> = <J^T v,u>", "value": 1.3924949213186289e-14, "expected": "< 1e-12", "passed": true}, {"name": "Euler, mirrored slip wall, ES-Roe flux: block inverse times dense diagonal block", "value": 3.8191672047105385e-14, "expected": "< 1e-8", "passed": true}, {"name": "Euler, mirrored slip wall, ES-Roe flux: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}, {"name": "NS, adiabatic wall, ES-Roe flux: JVP vs central difference", "value": 3.0016653609367683e-10, "expected": "< 1e-6", "passed": true}, {"name": "NS, adiabatic wall, ES-Roe flux: <v,Ju> = <J^T v,u>", "value": 2.9247575469090685e-15, "expected": "< 1e-12", "passed": true}, {"name": "NS, adiabatic wall, ES-Roe flux: block inverse times dense diagonal block", "value": 1.6783883310944603e-14, "expected": "< 1e-8", "passed": true}, {"name": "NS, adiabatic wall, ES-Roe flux: split-argument residual with identical arguments vs ordinary residual", "value": 0.0, "expected": "< 1e-12", "passed": true}], "charts": [], "tables": [{"id": "products", "title": "Linearization defects", "columns": ["configuration", "p", "DOF", "JVP vs FD (rel.)", "dot-product (rel.)", "|B\u207b\u00b9 J_ee - I|", "split residual defect"], "rows": [["Euler, slip wall", 2, 432, 5.365152894848257e-10, 7.465640413111381e-16, 6.750155989720952e-14, 0.0], ["NS, adiabatic wall", 2, 432, 3.713899660364627e-10, 7.54177456109056e-15, 1.2397092900851003e-14, 0.0], ["NS, isothermal wall", 2, 432, 3.157077736217753e-10, 1.027372518888906e-13, 1.634803403760543e-14, 0.0], ["NS, mixed channel", 3, 576, 5.261142152973823e-10, 4.3340655981913367e-16, 1.494941323509913e-14, 0.0], ["Euler, mirrored slip wall", 2, 432, 1.9949052038704346e-10, 1.0578413060183297e-13, 5.684341886080802e-14, 0.0], ["Euler, mirrored slip wall, HLLC flux", 2, 432, 5.603736623434694e-10, 7.569399888518594e-14, 2.4868995751603507e-14, 0.0], ["Euler, mirrored slip wall, LLF flux", 2, 432, 1.3769640699373434e-10, 1.4702958165249975e-15, 1.1712852909795402e-14, 0.0], ["Euler, inlet/outlet channel", 2, 324, 2.1087545566135716e-10, 1.25075990764933e-13, 5.384581669432009e-15, 0.0], ["Euler, mirrored slip wall, ES-Roe flux", 2, 432, 1.884847744486804e-10, 1.3924949213186289e-14, 3.8191672047105385e-14, 0.0], ["NS, adiabatic wall, ES-Roe flux", 2, 432, 3.0016653609367683e-10, 2.9247575469090685e-15, 1.6783883310944603e-14, 0.0]]}], "provenance": {"version": "0.4.0", "commit": "39979fcf902ad6116eb550b881b4278d4599c8e2", "dirty": false, "describe": "39979fcf90", "device": {"platform": "cpu", "device": "cpu:0", "device_kind": "cpu", "jax": "0.11.2", "x64": true}, "timestamp": "2026-11-12T10:27:54-0500"}, "wall_time": 198.07, "level": "quick"}