.flake8
.gitignore
.pre-commit-config.yaml
.python-version
.readthedocs.yaml
COPYING
Makefile
README.md
holmes_plan.md
pyproject.toml
setup.py
uv.lock
.github/workflows/ci.yml
.github/workflows/publish.yml
bench/README.md
bench/bench_prod_baseline.py
bench/bench_rep_convergence.py
bench/codegen_gauge.py
bench/irs_arms.py
bench/residual_arms.py
bench/run_all_arms.sh
bench/run_flag_sweep.sh
bench/run_prod_baseline.sh
bench/run_visc_baseline.sh
bench/visc_arms.py
bench/results/bench_all_arms.jsonl
bench/results/bench_flagsweep_phase2.jsonl
bench/results/bench_flagsweep_serial.jsonl
bench/results/bench_irs_arms.jsonl
bench/results/bench_irs_bj128.jsonl
bench/results/bench_irs_bj16.jsonl
bench/results/bench_irs_bj32.jsonl
bench/results/bench_irs_bj64.jsonl
bench/results/bench_irs_cumulative.jsonl
bench/results/bench_irs_dirs.jsonl
bench/results/bench_irs_dirs2.jsonl
bench/results/bench_irs_final.jsonl
bench/results/bench_irs_fused.jsonl
bench/results/bench_irs_jacfused.jsonl
bench/results/bench_irs_jacobi.jsonl
bench/results/bench_irs_jk.jsonl
bench/results/bench_irs_jk_w128.jsonl
bench/results/bench_irs_jk_w256.jsonl
bench/results/bench_irs_jk_w32.jsonl
bench/results/bench_irs_njac1.jsonl
bench/results/bench_irs_njac3.jsonl
bench/results/bench_irs_njac4.jsonl
bench/results/bench_irs_noalias.jsonl
bench/results/bench_irs_tb16.jsonl
bench/results/bench_irs_tb4.jsonl
bench/results/bench_irs_transpose.jsonl
bench/results/bench_prod_baseline.jsonl
bench/results/bench_tauq_baseline_1000000.jsonl
bench/results/bench_visc_arms_100000.jsonl
bench/results/bench_visc_arms_1000000.jsonl
bench/results/bench_visc_arms_2000000.jsonl
bench/results/bench_visc_arms_300000.jsonl
bench/results/bench_visc_baseline_100000.jsonl
bench/results/bench_visc_baseline_1000000.jsonl
bench/results/bench_visc_baseline_2000000.jsonl
bench/results/bench_visc_baseline_300000.jsonl
bench/results/bench_visc_pol2_1000000.jsonl
bench/results/bench_viscpair_1000000.jsonl
bench/results/bench_viscpair_serial_1000000.jsonl
bench/results/pre_deadcode/bench_tauq_baseline_1000000.jsonl
bench/results/pre_deadcode/bench_visc_baseline_100000.jsonl
bench/results/pre_deadcode/bench_visc_baseline_1000000.jsonl
bench/results/pre_deadcode/bench_visc_baseline_2000000.jsonl
bench/results/pre_deadcode/bench_visc_baseline_300000.jsonl
bench/subroutines/perfect.f90
bench/subroutines/residual_cand.f90
bench/subroutines/residual_consa.f90
bench/subroutines/residual_damp_fused.f90
bench/subroutines/residual_irs_bj.f90
bench/subroutines/residual_irs_dirs.f90
bench/subroutines/residual_irs_jacobi.f90
bench/subroutines/residual_irs_km.f90
bench/subroutines/residual_irs_noalias.f90
bench/subroutines/residual_irs_transpose.f90
bench/subroutines/residual_multall.f90
bench/subroutines/residual_multall_aos.f90
bench/subroutines/residual_naive.f90
bench/subroutines/residual_nodal.f90
bench/subroutines/residual_prod_soa.f90
bench/subroutines/residual_rinv.f90
bench/subroutines/residual_setdamp.f90
bench/subroutines/residual_setdamp_fix.f90
bench/subroutines/residual_staged.f90
bench/subroutines/residual_tiled.f90
bench/subroutines/viscous_fused.f90
bench/subroutines/viscous_tauq_fused.f90
docs/Makefile
docs/conf.py
docs/coordinate_system.rst
docs/index.rst
docs/install.rst
docs/references.rst
docs/refs.bib
docs/_ext/tikz.py
docs/_static/_tikz/cell_indexing_64b0bfa32a6f.svg
docs/_static/_tikz/cell_indexing_6d75a7f863f0.svg
docs/_static/_tikz/cell_indexing_c791f18305c0.svg
docs/_static/_tikz/coordinate_system_5c381a977fe8.svg
docs/_tikz/cell_indexing.tikz
docs/_tikz/coordinate_system.tikz
docs/api/average.rst
docs/api/block.rst
docs/api/convergence_history.rst
docs/api/cut.rst
docs/api/fluid.rst
docs/api/grid.rst
docs/api/patch.rst
docs/api/perturbation.rst
docs/api/solver.rst
docs/dev/plan_irs_traffic.md
docs/dev/plan_nodal_primitives.md
examples/README.txt
examples/plot_block_basics.py
examples/plot_cut_average.py
examples/plot_isentropic_nozzle.py
examples/plot_joule_cycle.py
examples/plot_patches.py
examples/plot_shocked_nozzle.py
src/ember/__init__.py
src/ember/_version.py
src/ember/average.py
src/ember/basepatch.py
src/ember/block.py
src/ember/block_restart.py
src/ember/block_util.py
src/ember/cases.py
src/ember/collections.py
src/ember/convergence_history.py
src/ember/cooling.py
src/ember/cusp.py
src/ember/cut.py
src/ember/fluid.py
src/ember/fluxes.py
src/ember/geometry.py
src/ember/grid.py
src/ember/inlet.py
src/ember/inviscid.py
src/ember/mixing.py
src/ember/mixing_communicator.py
src/ember/mixing_nonreflecting.py
src/ember/nonmatch.py
src/ember/nonmatch_communicator.py
src/ember/nonreflecting.py
src/ember/outlet.py
src/ember/patch.py
src/ember/periodic.py
src/ember/periodic_communicator.py
src/ember/perturbation.py
src/ember/plot3d.py
src/ember/probe.py
src/ember/rotating.py
src/ember/set_iter.py
src/ember/solver.py
src/ember/struct.py
src/ember/util.py
src/ember/util_yaml.py
src/ember/_fortran/adapt.f90
src/ember/_fortran/block.f90
src/ember/_fortran/distribute.f90
src/ember/_fortran/filter.f90
src/ember/_fortran/fluid_perfect.f90
src/ember/_fortran/geometry.f90
src/ember/_fortran/indexing.f90
src/ember/_fortran/inline_info.txt
src/ember/_fortran/interpolate.f90
src/ember/_fortran/matvec.f90
src/ember/_fortran/mixing.f90
src/ember/_fortran/multigrid.f90
src/ember/_fortran/nonreflecting.f90
src/ember/_fortran/perturbation.f90
src/ember/_fortran/polar.f90
src/ember/_fortran/primitive.f90
src/ember/_fortran/residual.f90
src/ember/_fortran/scree.f90
src/ember/_fortran/smooth_const.f90
src/ember/_fortran/viscous.f90
src/ember_cfd.egg-info/PKG-INFO
src/ember_cfd.egg-info/SOURCES.txt
src/ember_cfd.egg-info/dependency_links.txt
src/ember_cfd.egg-info/not-zip-safe
src/ember_cfd.egg-info/requires.txt
src/ember_cfd.egg-info/scm_file_list.json
src/ember_cfd.egg-info/scm_version.json
src/ember_cfd.egg-info/top_level.txt
tests/conftest.py
tests/nonreflecting_util.py
tests/test_average.py
tests/test_block.py
tests/test_block_copy_patches.py
tests/test_block_core.py
tests/test_block_i_perk.py
tests/test_block_set_iterative.py
tests/test_block_util.py
tests/test_convergence_history.py
tests/test_cut.py
tests/test_cut_scipy_parity.py
tests/test_fluid.py
tests/test_fluxes.py
tests/test_fmg.py
tests/test_geometry.py
tests/test_grid.py
tests/test_grid_connectivity.py
tests/test_grid_resample.py
tests/test_grid_utilities.py
tests/test_inlet.py
tests/test_inviscid_patch.py
tests/test_io.py
tests/test_irs_fused_damp.py
tests/test_mg_irs.py
tests/test_mixing_integration.py
tests/test_mixing_nonreflecting.py
tests/test_nonmatch_communicator.py
tests/test_nonmatch_patch.py
tests/test_nonreflecting.py
tests/test_operators.py
tests/test_outlet.py
tests/test_patch.py
tests/test_periodic_communicator.py
tests/test_perturbation.py
tests/test_polar_source.py
tests/test_probe.py
tests/test_radial_equilibrium.py
tests/test_residual_golden.py
tests/test_run_duct_script.py
tests/test_scree_mg.py
tests/test_set_F_body_golden.py
tests/test_smooth_const.py
tests/test_solver_relaxation.py
tests/test_struct.py
tests/test_timestep_diffusion.py
tests/test_update_filter.py
tests/test_update_primitive.py
tests/test_util.py
tests/test_viscous_periodic.py
tests/test_viscous_phases_golden.py
tests/test_wdist.py
tests/data/F_body_golden.npz
tests/data/duct.cnv
tests/data/log_duct.txt
tests/data/residual_golden.npz
tests/data/viscous_phases_golden.npz
tools/build_docs.sh
tools/check_compile.sh
tools/check_dead_code.sh
tools/check_member_order.py
tools/check_no_claude_commit_msg.sh
tools/check_no_typing.sh
tools/check_spec0.py
tools/check_stale_build_artifacts.sh
tools/compile_wilkes.sh
tools/pgo_train.py
tools/run_duct.py
tools/run_throttle.py