This folder is a compact release tree for the code and case setups used in the CoDeS paper: A Compression-Directional Entropic Stress Method for Shock-Regularized Compressible Flow
https://arxiv.org/abs/2605.21444
The solver code is based on FIGR. The included figr/ directory contains the source and build toolchain needed to build the solver variant used for the paper examples. Large generated data files are intentionally not included.
@misc{xu2026compressiondirectionalentropicstressmethod,
title={A Compression-Directional Entropic Stress Method for Shock-Regularized Compressible Flow},
author={Bonan Xu and Chihyung Wen},
year={2026},
eprint={2605.21444},
archivePrefix={arXiv},
primaryClass={physics.flu-dyn},
url={https://arxiv.org/abs/2605.21444},
}
The code is modified from: https://github.com/sbryngelson/figr
This method is developed based on the following works, if you have interest on our work, you should also cite the following works:
R. Cao and F. Schäfer, "Information geometric regularization of the barotropic Euler equation," SIAM Journal on Scientific Computing, 2026.
R. Cao and F. Schäfer, "Information geometric regularization of unidimensional pressureless Euler equations yields global strong solutions,"
B. Wilfong, A. Radhakrishnan, H. Le Berre, D. J. Vickers, T. Prathi, N. Tselepidis, B. Dorschner, R. Budiardja, B. Cornille, S. Abbott, F. Schäfer, and S. H. Bryngelson, "Simulating many-engine spacecraft: Exceeding 1 quadrillion degrees of freedom via information geometric regularization," Proceedings of SC '25: The International Conference for High Performance Computing, Networking, Storage and Analysis, 14–24, 2025.
figr/ FIGR-based solver source and build toolchain
cases/1d/ Standalone 1D finite-volume prototype and 1D plotting
cases/2d/riemann/ 2D Riemann comparison case setups and plotting
cases/2d/viscous_shock_tube/
cases/2d/triple_point/
cases/2d/slot_jet/
cases/2d/isentropic_vortex/
cases/2d/chapelier_tgv/
Only source code, case configuration files, post-processing scripts, and plotting scripts are copied here. Restart files, Silo/HDF5 files, CSV outputs, NPZ diagnostics, generated figures, logs, and build products are excluded.
- 1D smooth isentropic simple-wave expansion.
- 1D double rarefaction.
- 1D Sod shock tube.
- 2D Riemann problem: CoDeS, scalar IGR, and MFC WENO/LF reference setups.
- 2D viscous shock tube.
- 2D triple-point problem.
- 2D slot-jet / Mach-disk problem using the corrected symmetric-fallback run.
- 2D isentropic-vortex quantitative comparison.
- Compressible Taylor-Green-vortex / Chapelier comparison histories.
Some filenames and internal options still contain the legacy name CES.
Manuscript-facing text and figure labels use CoDeS.
From the release root:
cd figr
./figr.sh build -j 8For GPU builds, use the normal FIGR build options for your machine. See
figr/README.md for the upstream build interface.
Run a FIGR case by passing the case file path to the included solver driver. For example, from the release root:
./figr/figr.sh run cases/2d/triple_point/setups/01_CoDeS_triple_point_smooth015_igr7_flux7/case.py -n 4 -t pre_process
./figr/figr.sh run cases/2d/triple_point/setups/01_CoDeS_triple_point_smooth015_igr7_flux7/case.py -n 4 -t simulationThe required MPI rank count depends on the case and grid. Use the values in the paper as the reference for production reproduction runs.
The MFC reference case.py files are included for transparency. Re-running those baselines requires a separate MFC installation; MFC itself is not vendored in this compact release.
The 1D examples are standalone Python scripts:
cd cases/1d
python3 ces_igr_smooth_simple_wave_accuracy.py --ns 40,80,160,320 --order 7 --c-alpha 2 --time-integrator rk4 --dt-power 2
python3 ces_igr_double_rarefaction_test.py --n 200 --order 7 --c-alpha 2 --smooth-cells 1
python3 ces_igr_1d_fvm_highorder.py --problem sod --model ces --n 400 --order 7 --c-alpha 2 --smooth-cells 2The plotting script plot_1d_paper_results.py expects the corresponding CSV outputs to exist in the same relative output directories used by the scripts.
Each 2D case folder contains the plotting or post-processing script used for the paper figures, for example:
python3 cases/2d/riemann/make_jcp_riemann_figures.py
python3 cases/2d/slot_jet/make_jcp_slot_jet_figures.py
python3 cases/2d/chapelier_tgv/plot_chapelier_our_six_cases.pyThese scripts require the solver output data produced by the corresponding case runs. Because the raw data are too large for GitHub, the scripts are included for reproducibility but the generated arrays/restarts are not.
Install the plotting and post-processing dependencies with:
python3 -m pip install -r requirements.txtThe FIGR toolchain has additional compiler/MPI/CMake requirements described in
figr/README.md.
This paper-code release is distributed under the MIT License. The included FIGR-based solver code also reports MIT licensing in figr/README.md.