.flake8
.gitignore
.pre-commit-config.yaml
.python-version
CHANGELOG.rst
COPYING
Makefile
README.md
pyproject.toml
setup.py
uv.lock
.github/workflows/ci.yml
.github/workflows/docs.yml
.github/workflows/publish.yml
bench/README.md
bench/bench_fluid_phT.py
bench/bench_fluid_setters.py
bench/bench_prod_baseline.py
bench/bench_rep_convergence.py
bench/codegen_gauge.py
bench/irs_arms.py
bench/residual_arms.py
bench/rk_arms.py
bench/run_all_arms.sh
bench/run_flag_sweep.sh
bench/run_prod_baseline.sh
bench/run_so_ab.sh
bench/run_visc_baseline.sh
bench/socket_cpus.py
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/ivdep_c8_100000.jsonl
bench/results/ivdep_c8_1000000.jsonl
bench/results/ivdep_c8_2000000.jsonl
bench/results/ivdep_c8_300000.jsonl
bench/results/ivdep_s1_100000.jsonl
bench/results/ivdep_s1_1000000.jsonl
bench/results/ivdep_s1_2000000.jsonl
bench/results/ivdep_s1_300000.jsonl
bench/results/res_jarea_ab_1000000.jsonl
bench/results/res_jarea_ab_2000000.jsonl
bench/results/res_jarea_ab_300000.jsonl
bench/results/res_njp_arms_1000000.jsonl
bench/results/res_njp_arms_2000000.jsonl
bench/results/res_njp_arms_300000.jsonl
bench/results/res_njp_arms_serial_1000000.jsonl
bench/results/res_panel_final_100000.jsonl
bench/results/res_panel_final_1000000.jsonl
bench/results/res_panel_final_2000000.jsonl
bench/results/res_panel_final_300000.jsonl
bench/results/res_panel_final_serial_1000000.jsonl
bench/results/res_panel_final_serial_2000000.jsonl
bench/results/res_panel_final_serial_300000.jsonl
bench/results/rk_arms_1000000.jsonl
bench/results/rk_arms_2000000.jsonl
bench/results/rk_arms_300000.jsonl
bench/results/rk_arms_serial_1000000.jsonl
bench/results/rk_arms_serial_2000000.jsonl
bench/results/rk_arms_serial_300000.jsonl
bench/results/rk_final_1000000.jsonl
bench/results/rk_final_2000000.jsonl
bench/results/rk_final_300000.jsonl
bench/results/rk_final_serial_1000000.jsonl
bench/results/rk_final_serial_2000000.jsonl
bench/results/rk_final_serial_300000.jsonl
bench/results/rk_pingpong_1000000.jsonl
bench/results/rk_pingpong_2000000.jsonl
bench/results/rk_pingpong_300000.jsonl
bench/results/rk_pingpong_serial_1000000.jsonl
bench/results/rk_pingpong_serial_2000000.jsonl
bench/results/rk_pingpong_serial_300000.jsonl
bench/results/rk_weights_1000000.jsonl
bench/results/rk_weights_2000000.jsonl
bench/results/rk_weights_300000.jsonl
bench/results/rk_weights_serial_1000000.jsonl
bench/results/rk_weights_serial_2000000.jsonl
bench/results/rk_weights_serial_300000.jsonl
bench/results/tauq_arena_1000000.jsonl
bench/results/tauq_arena_2000000.jsonl
bench/results/tauq_arena_300000.jsonl
bench/results/tauq_arena_ivdep_1000000.jsonl
bench/results/tauq_arena_ivdep_2000000.jsonl
bench/results/tauq_arena_ivdep_300000.jsonl
bench/results/tauq_arena_ivdep_serial_1000000.jsonl
bench/results/tauq_arena_ivdep_serial_2000000.jsonl
bench/results/tauq_arena_ivdep_serial_300000.jsonl
bench/results/tauq_arena_serial_1000000.jsonl
bench/results/tauq_arena_serial_2000000.jsonl
bench/results/tauq_arena_serial_300000.jsonl
bench/results/tauq_split.jsonl
bench/results/tauq_tile_1000000.jsonl
bench/results/tauq_tile_2000000.jsonl
bench/results/tauq_tile_300000.jsonl
bench/results/tauq_tile_serial_1000000.jsonl
bench/results/tauq_tile_serial_2000000.jsonl
bench/results/tauq_tile_serial_300000.jsonl
bench/results/visc_cfform_ab.jsonl
bench/results/visc_jarea_ab_1000000.jsonl
bench/results/visc_jpanel_ab_100000.jsonl
bench/results/visc_jpanel_ab_2000000.jsonl
bench/results/visc_jpanel_ab_300000.jsonl
bench/results/visc_jpanel_final_100000.jsonl
bench/results/visc_jpanel_final_1000000.jsonl
bench/results/visc_jpanel_final_2000000.jsonl
bench/results/visc_jpanel_final_300000.jsonl
bench/results/visc_jpanel_final_serial_1000000.jsonl
bench/results/visc_jpanel_final_serial_2000000.jsonl
bench/results/visc_jpanel_final_serial_300000.jsonl
bench/results/visc_jpanel_pair_1000000.jsonl
bench/results/visc_jpanel_serial_1000000.jsonl
bench/results/visc_jpanel_serial_2000000.jsonl
bench/results/viscpair_attrib_serial.jsonl
bench/results/viscpair_faces_serial.jsonl
bench/results/viscpair_nosig_serial.jsonl
bench/results/viscpair_p1_serial.jsonl
bench/results/viscpair_packed.jsonl
bench/results/viscpair_pad.jsonl
bench/results/viscpair_prod_8rank.jsonl
bench/results/viscpair_prod_serial.jsonl
bench/results/viscpair_ptrans.jsonl
bench/results/viscpair_selfk_8rank.jsonl
bench/results/viscpair_selfk_serial.jsonl
bench/results/viscpair_streams.jsonl
bench/results/viscpair_vel.jsonl
bench/results/wallrow_c8_100000.jsonl
bench/results/wallrow_c8_1000000.jsonl
bench/results/wallrow_c8_2000000.jsonl
bench/results/wallrow_c8_300000.jsonl
bench/results/wallrow_d8_143360.jsonl
bench/results/wallrow_d8_200704.jsonl
bench/results/wallrow_d8_229376.jsonl
bench/results/wallrow_d8_258048.jsonl
bench/results/wallrow_d8_458752.jsonl
bench/results/wallrow_s1_100000.jsonl
bench/results/wallrow_s1_1000000.jsonl
bench/results/wallrow_s1_2000000.jsonl
bench/results/wallrow_s1_300000.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_ctl.f90
bench/subroutines/viscous_tauq_fused.f90
bench/subroutines/viscous_tauq_noij.f90
bench/subroutines/viscous_tauq_nosig.f90
bench/subroutines/viscous_tauq_packed.f90
bench/subroutines/viscous_tauq_pad.f90
bench/subroutines/viscous_tauq_ptrans.f90
bench/subroutines/viscous_tauq_selfk.f90
bench/subroutines/viscous_tauq_split.f90
docs/Makefile
docs/changelog.rst
docs/conf.py
docs/coordinate_system.rst
docs/index.rst
docs/install.rst
docs/references.rst
docs/refs.bib
docs/_ext/tikz.py
docs/_ext/trim_module_prefix.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/_templates/versions.html
docs/_tikz/cell_indexing.tikz
docs/_tikz/coordinate_system.tikz
docs/api/average.rst
docs/api/block.rst
docs/api/block_util.rst
docs/api/communicators.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/realgas_fit.rst
docs/api/set_iterative.rst
docs/api/solver.rst
docs/api/util.rst
docs/api/yaml_util.rst
docs/dev/mg_stability.md
docs/dev/plan_body_force_multigrid.md
docs/dev/plan_fused_viscous.md
docs/dev/plan_irs_traffic.md
docs/dev/plan_nodal_primitives.md
docs/dev/plan_piecewise_constant_mgrid.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/_plot3d.py
src/ember/_realgas_poly.py
src/ember/_struct.py
src/ember/_version.py
src/ember/average.py
src/ember/basepatch.py
src/ember/block.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/grid.py
src/ember/inlet.py
src/ember/inviscid.py
src/ember/mixing.py
src/ember/mixing_communicator.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/probe.py
src/ember/realgas_fit.py
src/ember/rotating.py
src/ember/set_iterative.py
src/ember/solver.py
src/ember/util.py
src/ember/yaml_util.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/fluid_real.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_freeze.py
tests/test_block_i_perk.py
tests/test_block_set_iterative.py
tests/test_block_util.py
tests/test_cases.py
tests/test_convergence_history.py
tests/test_cut.py
tests/test_cut_scipy_parity.py
tests/test_damp_increment.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_mg_inject.py
tests/test_mg_irs.py
tests/test_mixing.py
tests/test_mixing_integration.py
tests/test_nonmatch_communicator.py
tests/test_nonmatch_patch.py
tests/test_nonreflecting.py
tests/test_nonreflecting_integration.py
tests/test_nonreflecting_orientation.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_realgas_fit.py
tests/test_residual_cusp.py
tests/test_residual_golden.py
tests/test_run_duct_script.py
tests/test_scratch_arena.py
tests/test_scree_mg.py
tests/test_set_F_body_golden.py
tests/test_sfd.py
tests/test_smooth_const.py
tests/test_solver_averaging.py
tests/test_solver_frozen.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_cusp_seam.py
tests/test_viscous_periodic.py
tests/test_viscous_phases_golden.py
tests/test_viscous_polar_mu_limit.py
tests/test_viscous_shapes.py
tests/test_wall_function_limits.py
tests/test_wall_yplus.py
tests/test_wdist.py
tests/test_yaml_util.py
tests/viscous_util.py
tests/data/F_body_golden.npz
tests/data/duct.cnv
tests/data/log_duct.txt
tests/data/mg_inject_golden.npz
tests/data/residual_golden.npz
tests/data/throttled_pre_rename.cnv
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_private_docstring_refs.py
tools/check_spec0.py
tools/check_stale_build_artifacts.sh
tools/compile_wilkes.sh
tools/gen_docs_index.py
tools/pgo_train.py
tools/run_duct.py
tools/run_duct_mg.py
tools/run_throttle.py