.tmp/
.pixi/
__pycache__/
*.py[cod]
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.hypothesis/
.coverage
.coverage.*
coverage.xml
coverage.json
htmlcov/
dist/
build/
site/
.venv/
.ipynb_checkpoints/
.DS_Store
Thumbs.db
benchmark-results/
notebook-results/
*.log
*.out
*.err
*.pid
*.partial
*.prof
/core
/core.[0-9]*
.tox/
.nox/
.native/
/tools/neopz/
/examples/generate_neopz_reference.py
/examples/verify_neopz_darcy.py
/examples/verify_reference_darcy.py
/examples/audit_neopz_quadrature.py
/examples/audit_darcy.py
/examples/audit_flow.py
/examples/reproduce_darcy_2013.py
/examples/reproduce_stokes_2017.py
/tests/test_darcy_independent.py

# Recompute scientific field payloads and rendered figures from a clean checkout.
/examples/results/**/*.npz
/examples/results/**/*.vtu
/examples/results/**/*.npy
/examples/results/**/*.pkl
/examples/results/**/*.h5
/examples/results/**/*.hdf5
/examples/results/**/*.msh
/examples/results/**/*.vtk
/examples/results/**/*.vtp
/examples/results/**/*.vtr
/examples/results/**/*.vts
/examples/results/**/*.vtm
/examples/results/**/*.xdmf
/examples/results/**/*.html
!/examples/results/spe10/layer-1.npz
!/examples/results/spe10/layer-36.npz
!/examples/results/spe10/layer-85.npz
# Keep compact tables/provenance and selected publication figures.
/docs/figures/**
!/docs/figures/**/
!/docs/figures/**/*.json
!/docs/figures/**/*.csv

# Keep the exact figures used by the public documentation; regenerate other assets.
!/docs/figures/core-extensions/cube-p0-fields.png
!/docs/figures/core-extensions/hdiv3d-convergence.png
!/docs/figures/core-extensions/mshho3d-convergence.png
!/docs/figures/core-extensions/prism-p2-k2-fields.png
!/docs/figures/core-extensions/tetra-p0-fields.png
!/docs/figures/core-extensions/tetra-p1-k1-fields.png
!/docs/figures/core-extensions/tetra-p2-k2-fields.png
!/docs/figures/core-extensions/tetra-p3-k1-fields.png
!/docs/figures/darcy-3d-accelerators-20261005/gpu-strong.png
!/docs/figures/darcy-3d-accelerators-20261005/gpu-weak.png
!/docs/figures/darcy-3d-accelerators-20261005/larger-gpu-throughput.png
!/docs/figures/darcy-3d-accelerators-20261005/matched-cost-accuracy.png
!/docs/figures/darcy-3d-accelerators-20261005/pardiso-strong.png
!/docs/figures/darcy-3d-accelerators-20261005/weak-cpu.png
!/docs/figures/darcy-3d-accelerators-20261005/workflow-phases.png
!/docs/figures/darcy-3d-workspace-lu-20261005/solver-comparison.png
!/docs/figures/darcy-3d-workspace-lu-20261005/strong-efficiency.png
!/docs/figures/darcy-3d-workspace-lu-20261005/strong-phases.png
!/docs/figures/darcy-3d-workspace-lu-20261005/strong-speedup.png
!/docs/figures/darcy-3d-workspace-lu-20261005/strong-time.png
!/docs/figures/darcy-3d-workspace-lu-20261005/weak-scaling.png
!/docs/figures/introduction-layers/brinkman-pressure-comparison.png
!/docs/figures/introduction-layers/brinkman-profiles.png
!/docs/figures/introduction-layers/brinkman-reference-convergence.png
!/docs/figures/introduction-layers/brinkman-single-element-ell0-convergence.png
!/docs/figures/introduction-layers/brinkman-single-element-ell1-convergence.png
!/docs/figures/introduction-layers/brinkman-single-element-ell2-convergence.png
!/docs/figures/introduction-layers/brinkman-single-element-fields.png
!/docs/figures/introduction-layers/rad-layer-profiles.png
!/docs/figures/introduction-layers/rad-resolved-convergence.png
!/docs/figures/introduction-layers/rad-resolved-fields.png
!/docs/figures/introduction-layers/rad-resolved-flux-fields.png
!/docs/figures/minimal-convergence/darcy-mixedwell/convergence.png
!/docs/figures/minimal-convergence/darcy-pgmhm/convergence.png
!/docs/figures/minimal-convergence/darcy-quarter-obstacle/convergence.png
!/docs/figures/minimal-convergence/darcy-spe10/convergence.png
!/docs/figures/minimal-convergence/darcy-unfitted/convergence.png
!/docs/figures/minimal-convergence/darcy-unusual/convergence.png
!/docs/figures/minimal-convergence/elasticity-l18-oscillatory/convergence.png
!/docs/figures/minimal-convergence/flow3d/convergence.png
!/docs/figures/minimal-convergence/gals3d/convergence.png
!/docs/figures/minimal-convergence/initial-elasticity2d/convergence.png
!/docs/figures/minimal-convergence/mixed-elasticity3d/convergence.png
!/docs/figures/minimal-convergence/oseen2d-data/convergence.png
!/docs/figures/minimal-convergence/oseen2d-trace/convergence.png
!/docs/figures/minimal-convergence/oseen2d-viscosity/convergence.png
!/docs/figures/minimal-convergence/periodic-local-reference/convergence.png
!/docs/figures/minimal-convergence/primal-elasticity3d/convergence.png
!/docs/figures/minimal-convergence/scalar-mh/convergence.png
!/docs/figures/minimal-convergence/scalar-mh2m/convergence.png
!/docs/figures/minimal-convergence/scalar-polygons/convergence.png
!/docs/figures/minimal-convergence/scalar-rad-layer/convergence.png
!/docs/figures/minimal-convergence/scalar-tensor-rt-k1/convergence.png
!/docs/figures/minimal-convergence/scalar-tensor-rt-k2/convergence.png
!/docs/figures/minimal-convergence/scalar-tensor-rt-k3/convergence.png
!/docs/figures/minimal-convergence/scalar-transport-layer/convergence.png
!/docs/figures/minimal-convergence/stokes2d/convergence.png
!/docs/figures/minimal-convergence/transport-random-temporal/convergence.png
!/docs/figures/minimal-convergence/wave-elastic-wave/convergence.png
!/docs/figures/minimal-convergence/wave-helmholtz/convergence.png
!/docs/figures/minimal-convergence/wave-marmousi/convergence.png
!/docs/figures/minimal-convergence/wave-nanoguide/convergence.png
!/docs/figures/minimal-convergence/wave-three-layer/convergence.png
!/docs/figures/mshho/convergence.png
!/docs/figures/mshho/fields.png
!/docs/figures/nested/convergence.png
!/docs/figures/nested/fields.png
!/docs/figures/quarter-five-spot/classical-vs-mhm-components.png
!/docs/figures/quarter-five-spot/obstacle-macro-cut.png
!/docs/figures/quarter-five-spot/point-flux-elevation.png
.rsync-partial/

# Generated retrospective/resume inspections duplicate acquisition records.
/examples/results/checkpoint-validation.json
/examples/results/checkpoint-validation/
/examples/results/mh2m-heterogeneous/**/*-validated-input-*.json
/examples/results/mh2m-heterogeneous/**/*-resume-validation.json
# Incomplete atomic writes do not contain accepted numerical records.
/examples/results/**/*.tmp
/examples/results/**/*.part
/examples/results/**/*.new
/examples/results/**/*.progress.json
