{"id": "entropy_conservation", "title": "Entropy conservation and stability", "description": "The rate of change of the discrete mathematical entropy, -w^T Rw, is evaluated on warped periodic meshes for combinations of two-point volume fluxes and interface fluxes. The state is a periodic field carrying a 3 % node-wise perturbation, so it jumps across every element face, the curved interior faces included. Split-form DGSEM with an entropy-conservative two-point flux satisfies a discrete entropy balance exactly for any nodal state: the checks require the rate to vanish to round-off for the entropy-conservative pairings, to be clearly non-zero for the volume fluxes that are not entropy conservative, and to be negative, well above round-off, when an upwind interface flux adds dissipation. A second table tests the interface fluxes alone on random pairs of states far apart: the entropy-stable ones (llf, es_roe) must produce no entropy for any pair, which is the property the proof rests on; the classical solvers are shown for comparison.", "passed": true, "checks": [{"name": "2-D ranocha / ec: |d/dt entropy|", "value": 5.978073938650574e-15, "expected": "< 1e-11", "passed": true}, {"name": "2-D ranocha / ec: conservation defect", "value": 4.463096558993129e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D chandrashekar / ec: |d/dt entropy|", "value": 8.096930244338996e-15, "expected": "< 1e-11", "passed": true}, {"name": "2-D chandrashekar / ec: conservation defect", "value": 4.884981308350689e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D kennedy_gruber / ec: not entropy conservative", "value": 0.0005980964087616129, "expected": "> 1e-8", "passed": true}, {"name": "2-D kennedy_gruber / ec: conservation defect", "value": 4.241051954068098e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D central / ec: not entropy conservative", "value": 0.00045667309292035045, "expected": "> 1e-8", "passed": true}, {"name": "2-D central / ec: conservation defect", "value": 4.3076653355456074e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D ranocha / llf: entropy dissipated", "value": -0.05509528933757287, "expected": "< -1e-8", "passed": true}, {"name": "2-D ranocha / llf: conservation defect", "value": 4.6629367034256575e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D ranocha / es_roe: entropy dissipated", "value": -0.01834934538577853, "expected": "< -1e-8", "passed": true}, {"name": "2-D ranocha / es_roe: conservation defect", "value": 4.463096558993129e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D chandrashekar / es_roe: entropy dissipated", "value": -0.018349345385779064, "expected": "< -1e-8", "passed": true}, {"name": "2-D chandrashekar / es_roe: conservation defect", "value": 4.729550084903167e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D ranocha / roe: entropy dissipated", "value": -0.01834873883258924, "expected": "< -1e-8", "passed": true}, {"name": "2-D ranocha / roe: conservation defect", "value": 4.1300296516055823e-14, "expected": "< 1e-11", "passed": true}, {"name": "2-D ranocha / hllc: entropy dissipated", "value": -0.018344818472600128, "expected": "< -1e-8", "passed": true}, {"name": "2-D ranocha / hllc: conservation defect", "value": 4.085620730620576e-14, "expected": "< 1e-11", "passed": true}, {"name": "3-D ranocha / ec: |d/dt entropy|", "value": 3.688022109926692e-15, "expected": "< 1e-11", "passed": true}, {"name": "3-D ranocha / ec: conservation defect", "value": 1.1969591984239969e-14, "expected": "< 1e-11", "passed": true}, {"name": "3-D chandrashekar / ec: |d/dt entropy|", "value": 3.5232233797088952e-15, "expected": "< 1e-11", "passed": true}, {"name": "3-D chandrashekar / ec: conservation defect", "value": 1.1685097334179773e-14, "expected": "< 1e-11", "passed": true}, {"name": "3-D kennedy_gruber / ec: not entropy conservative", "value": 0.0011975822070601425, "expected": "> 1e-8", "passed": true}, {"name": "3-D kennedy_gruber / ec: conservation defect", "value": 2.6853519408120974e-15, "expected": "< 1e-11", "passed": true}, {"name": "3-D central / ec: not entropy conservative", "value": 0.007444481261238466, "expected": "> 1e-8", "passed": true}, {"name": "3-D central / ec: conservation defect", "value": 1.817990202823694e-15, "expected": "< 1e-11", "passed": true}, {"name": "3-D ranocha / llf: entropy dissipated", "value": -0.0543174406100085, "expected": "< -1e-8", "passed": true}, {"name": "3-D ranocha / llf: conservation defect", "value": 1.1796119636642288e-14, "expected": "< 1e-11", "passed": true}, {"name": "3-D ranocha / es_roe: entropy dissipated", "value": -0.01777989997621384, "expected": "< -1e-8", "passed": true}, {"name": "3-D ranocha / es_roe: conservation defect", "value": 1.1601830607332886e-14, "expected": "< 1e-11", "passed": true}, {"name": "3-D chandrashekar / es_roe: entropy dissipated", "value": -0.017779899976213914, "expected": "< -1e-8", "passed": true}, {"name": "3-D chandrashekar / es_roe: conservation defect", "value": 1.2261025528204073e-14, "expected": "< 1e-11", "passed": true}, {"name": "3-D ranocha / roe: entropy dissipated", "value": -0.01783007230877265, "expected": "< -1e-8", "passed": true}, {"name": "3-D ranocha / roe: conservation defect", "value": 1.3600232051658168e-15, "expected": "< 1e-11", "passed": true}, {"name": "3-D ranocha / hllc: entropy dissipated", "value": -0.017818449109496117, "expected": "< -1e-8", "passed": true}, {"name": "3-D ranocha / hllc: conservation defect", "value": 8.187894806610529e-16, "expected": "< 1e-11", "passed": true}, {"name": "2-D llf: largest two-state entropy production over 5000 random pairs", "value": -0.0571705295163335, "expected": "< 0", "passed": true}, {"name": "2-D es_roe: largest two-state entropy production over 5000 random pairs", "value": -0.030177949890030697, "expected": "< 0", "passed": true}, {"name": "3-D llf: largest two-state entropy production over 5000 random pairs", "value": -0.228195503740676, "expected": "< 0", "passed": true}, {"name": "3-D es_roe: largest two-state entropy production over 5000 random pairs", "value": -0.04117138402147098, "expected": "< 0", "passed": true}, {"name": "classical solvers (roe, hllc) violate the two-state inequality for some pairs (cases of 4)", "value": 2, "expected": ">= 1 (why they carry no proof)", "passed": true}], "charts": [{"id": "entropy_rate", "type": "bar", "title": "Entropy production rate by flux pairing", "xlabel": "volume flux / interface flux", "ylabel": "|d/dt \u222b \u03b7|", "xscale": "category", "yscale": "log", "series": [{"name": "2-D", "x": ["ranocha / ec", "chandrashekar / ec", "kennedy_gruber / ec", "central / ec", "ranocha / llf", "ranocha / es_roe", "chandrashekar / es_roe", "ranocha / roe", "ranocha / hllc"], "y": [5.978073938650574e-15, 8.096930244338996e-15, 0.0005980964087616129, 0.00045667309292035045, 0.05509528933757287, 0.01834934538577853, 0.018349345385779064, 0.01834873883258924, 0.018344818472600128]}, {"name": "3-D", "x": ["ranocha / ec", "chandrashekar / ec", "kennedy_gruber / ec", "central / ec", "ranocha / llf", "ranocha / es_roe", "chandrashekar / es_roe", "ranocha / roe", "ranocha / hllc"], "y": [3.688022109926692e-15, 3.5232233797088952e-15, 0.0011975822070601425, 0.007444481261238466, 0.0543174406100085, 0.01777989997621384, 0.017779899976213914, 0.01783007230877265, 0.017818449109496117]}], "note": "Measured here: with an entropy-conservative volume flux and the dissipation-free interface flux the entropy rate is at most 8.1e-15 in magnitude; with the upwind interface fluxes it lies between -5.5e-02 and -1.8e-02."}], "tables": [{"id": "rates", "title": "Entropy rate and conservation defect", "columns": ["dim", "volume flux", "interface flux", "d/dt \u222b \u03b7", "|\u03a3 Rw|"], "rows": [["2-D", "ranocha", "ec", -5.978073938650574e-15, 4.463096558993129e-14], ["2-D", "chandrashekar", "ec", -8.096930244338996e-15, 4.884981308350689e-14], ["2-D", "kennedy_gruber", "ec", -0.0005980964087616129, 4.241051954068098e-14], ["2-D", "central", "ec", -0.00045667309292035045, 4.3076653355456074e-14], ["2-D", "ranocha", "llf", -0.05509528933757287, 4.6629367034256575e-14], ["2-D", "ranocha", "es_roe", -0.01834934538577853, 4.463096558993129e-14], ["2-D", "chandrashekar", "es_roe", -0.018349345385779064, 4.729550084903167e-14], ["2-D", "ranocha", "roe", -0.01834873883258924, 4.1300296516055823e-14], ["2-D", "ranocha", "hllc", -0.018344818472600128, 4.085620730620576e-14], ["3-D", "ranocha", "ec", -3.688022109926692e-15, 1.1969591984239969e-14], ["3-D", "chandrashekar", "ec", -3.5232233797088952e-15, 1.1685097334179773e-14], ["3-D", "kennedy_gruber", "ec", -0.0011975822070601425, 2.6853519408120974e-15], ["3-D", "central", "ec", -0.007444481261238466, 1.817990202823694e-15], ["3-D", "ranocha", "llf", -0.0543174406100085, 1.1796119636642288e-14], ["3-D", "ranocha", "es_roe", -0.01777989997621384, 1.1601830607332886e-14], ["3-D", "chandrashekar", "es_roe", -0.017779899976213914, 1.2261025528204073e-14], ["3-D", "ranocha", "roe", -0.01783007230877265, 1.3600232051658168e-15], ["3-D", "ranocha", "hllc", -0.017818449109496117, 8.187894806610529e-16]]}, {"id": "two_state", "title": "Entropy production of the interface flux alone, random state pairs (Ranocha two-point flux)", "columns": ["dim", "interface flux", "pairs", "largest production", "pairs with production > 0 [%]"], "rows": [["2-D", "llf", 5000, -0.0571705295163335, 0.0], ["2-D", "es_roe", 5000, -0.030177949890030697, 0.0], ["2-D", "roe", 5000, 1365.0578756047946, 18.5], ["2-D", "hllc", 5000, -0.0156570734330429, 0.0], ["3-D", "llf", 5000, -0.228195503740676, 0.0], ["3-D", "es_roe", 5000, -0.04117138402147098, 0.0], ["3-D", "roe", 5000, 812.6764779378004, 19.18], ["3-D", "hllc", 5000, -0.0401914463986521, 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:22:32-0500"}, "wall_time": 15.77, "level": "quick"}