{"id": "isentropic_vortex", "title": "Isentropic vortex convection", "description": "A strong isentropic vortex convected through a periodic domain for one time unit, on Cartesian meshes and on meshes warped by 4 % of the domain size (degree-4 geometry). The order checks require the rate p that consistency guarantees, not the design rate p + 1, which is not established for this strongly nonlinear unsteady problem. One case is repeated with a five-fold smaller time step to test whether the measured error is spatial, and the error on curved meshes is required to stay within a factor 1.5 of the Cartesian one.", "passed": true, "checks": [{"name": "p = 2, Cartesian: observed order (finest pair)", "value": 2.5960213689494385, "expected": ">= 1.80 (guaranteed rate p = 2, tolerance 0.2; design rate 3)", "passed": true}, {"name": "p = 3, Cartesian: observed order (finest pair)", "value": 3.4862403966568367, "expected": ">= 2.80 (guaranteed rate p = 3, tolerance 0.2; design rate 4)", "passed": true}, {"name": "p = 4, Cartesian: observed order (finest pair)", "value": 4.051001005409535, "expected": ">= 3.80 (guaranteed rate p = 4, tolerance 0.2; design rate 5)", "passed": true}, {"name": "p = 2, curved: observed order (finest pair)", "value": 2.6279817858385353, "expected": ">= 1.80 (guaranteed rate p = 2, tolerance 0.2; design rate 3)", "passed": true}, {"name": "p = 2: curved / Cartesian error on the finest mesh", "value": 1.0061553006988315, "expected": "< 1.5", "passed": true}, {"name": "p = 3, curved: observed order (finest pair)", "value": 3.5252235932712015, "expected": ">= 2.80 (guaranteed rate p = 3, tolerance 0.2; design rate 4)", "passed": true}, {"name": "p = 3: curved / Cartesian error on the finest mesh", "value": 0.9721729440837493, "expected": "< 1.5", "passed": true}, {"name": "p = 4, curved: observed order (finest pair)", "value": 4.172753269120295, "expected": ">= 3.80 (guaranteed rate p = 4, tolerance 0.2; design rate 5)", "passed": true}, {"name": "p = 4: curved / Cartesian error on the finest mesh", "value": 0.9959769842771329, "expected": "< 1.5", "passed": true}, {"name": "time-step independence (p = 4, N = 16): relative change of the error for a 5x smaller step", "value": 8.790667891686506e-08, "expected": "< 1e-3", "passed": true}], "charts": [{"id": "error_vs_h", "type": "convergence", "title": "Density error at t = 1", "xlabel": "h", "ylabel": "normalised L2 error of density", "xscale": "log", "yscale": "log", "series": [{"name": "p = 2, Cartesian", "x": [1.0, 0.5, 0.25], "y": [0.0027209759471842235, 0.0004633450311684214, 7.663447890311973e-05]}, {"name": "p = 3, Cartesian", "x": [1.0, 0.5, 0.25], "y": [0.00048464436067532994, 4.3364723760028404e-05, 3.86966752425446e-06]}, {"name": "p = 4, Cartesian", "x": [2.0, 1.0, 0.5], "y": [0.0014062792867491189, 7.478043149311678e-05, 4.511439645115312e-06]}, {"name": "p = 2, curved", "x": [1.0, 0.5, 0.25], "y": [0.0027843245155514226, 0.0004766400964578355, 7.710618716466669e-05]}, {"name": "p = 3, curved", "x": [1.0, 0.5, 0.25], "y": [0.0005034894733590389, 4.331269687907988e-05, 3.7619860696797316e-06]}, {"name": "p = 4, curved", "x": [2.0, 1.0, 0.5], "y": [0.0015102558413590595, 8.103793255473178e-05, 4.493290052490247e-06]}], "reference_slopes": [{"slope": 3, "label": "h^3"}, {"slope": 4, "label": "h^4"}, {"slope": 5, "label": "h^5"}], "note": "Reference lines show the design rate p + 1."}], "tables": [{"id": "orders", "title": "Errors and observed orders", "columns": ["mesh", "p", "N", "L2 error", "order"], "rows": [["Cartesian", 2, 16, 0.0027209759471842235, null], ["Cartesian", 2, 32, 0.0004633450311684214, 2.5539653978726324], ["Cartesian", 2, 64, 7.663447890311973e-05, 2.5960213689494385], ["Cartesian", 3, 16, 0.00048464436067532994, null], ["Cartesian", 3, 32, 4.3364723760028404e-05, 3.482332639725664], ["Cartesian", 3, 64, 3.86966752425446e-06, 3.4862403966568367], ["Cartesian", 4, 8, 0.0014062792867491189, null], ["Cartesian", 4, 16, 7.478043149311678e-05, 4.233078535785982], ["Cartesian", 4, 32, 4.511439645115312e-06, 4.051001005409535], ["curved", 2, 16, 0.0027843245155514226, null], ["curved", 2, 32, 0.0004766400964578355, 2.546355142632269], ["curved", 2, 64, 7.710618716466669e-05, 2.6279817858385353], ["curved", 3, 16, 0.0005034894733590389, null], ["curved", 3, 32, 4.331269687907988e-05, 3.539099705399422], ["curved", 3, 64, 3.7619860696797316e-06, 3.5252235932712015], ["curved", 4, 8, 0.0015102558413590595, null], ["curved", 4, 16, 8.103793255473178e-05, 4.2200517879336035], ["curved", 4, 32, 4.493290052490247e-06, 4.172753269120295]]}], "provenance": {"version": "0.4.0", "commit": "39979fcf902ad6116eb550b881b4278d4599c8e2", "dirty": false, "describe": "39979fcf90", "device": {"platform": "gpu", "device": "cuda:0", "device_kind": "NVIDIA GeForce RTX 3060 Ti", "jax": "0.11.2", "x64": true}, "timestamp": "2026-11-12T10:24:02-0500"}, "wall_time": 65.18, "notes": "Observed orders on the finest mesh pair: p = 2: 2.60 (Cartesian), 2.63 (curved); p = 3: 3.49 (Cartesian), 3.53 (curved); p = 4: 4.05 (Cartesian), 4.17 (curved). All of them lie between the guaranteed rate p and the design rate p + 1. Observed order minus the design rate: -0.95 to -0.37. A five-fold smaller time step changed the error of the p = 4, N = 16 case by a relative 8.8e-08: at that resolution the error is spatial, so time integration does not explain a rate below p + 1. Curved-to-Cartesian error ratio on the finest meshes: 0.97 to 1.01.", "level": "quick"}