# devito

> DSL and compiler framework for automated finite-differences and stencil computation

- **URL**: https://www.freshcrate.ai/projects/devito
- **Author**: devitocodes
- **Category**: Frameworks
- **Latest version**: `v4.8.21` (2026-02-23)
- **License**: MIT
- **Source**: https://github.com/devitocodes/devito
- **Homepage**: http://www.devitoproject.org
- **Language**: Python
- **GitHub**: 690 stars, 254 forks
- **Registry**: github
- **Tags**: `code-generation`, `compiler`, `dsl`, `finite-difference`, `fwi`, `gpu`, `hpc`, `jit`, `python`

## Description

DSL and compiler framework for automated finite-differences and stencil computation

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v4.8.21` | 2026-02-23 | Low | ## Changes  - tests: Add an additional test for loop scheduling @EdCaunt (#2835) - api: Extend side API to all derivative operator shortcuts @EdCaunt (#2811) - Add separate images for CUDA 12 @JDBetteridge (#2785) - misc: Miscellaneous corner cases fixes @mloubout (#2730) - compiler: split alloc and init @mloubout (#2744)  ## API  - Tens stagg fix @mloubout (#2854) - api: fix interpolate with complex dtype @mloubout (#2849) - api: fix interp/eval of expressions @mloubout (#2843) - c |
| `v4.8.20` | 2025-09-02 | Low | ## Changes  - CI: Cannot set `--env CUDA_VISIBLE_DEVICES` for `docker run` when using ng `--gpus "device=${CUDA_VISIBLE_DEVICES:-all}"` - dropping --env arg. @ggorman (#2710) - misc: switch to f-string throughout @mloubout (#2706) - misc: Remove make-pbs.py @FabioLuporini (#2700) - compiler: Hotfix the memory estimate for certain devices @EdCaunt (#2699) - misc: Expand derivative touchup @JDBetteridge (#2695) - misc: Remove decrepit folders @EdCaunt (#2663) - misc: Switch mpi-x pub to ie |
| `v4.8.19` | 2025-06-20 | Low | # Drop support for Python 3.9   ## Changes  ## Compiler  - compiler: Privilege default par-tile with rcompile @FabioLuporini (#2636) - compiler: Make cse toposort stable @mloubout (#2633)  ## 🐛 Bug Fixes  - compiler: fix deque pop order @mloubout (#2637) - compiler: Make cse toposort stable @mloubout (#2633)  ## Installation  - deps: Drop Python 3.9 @enwask (#2631)   **Full Changelog**: https://github.com/devitocodes/devito/compare/v4.8.18...v4.8.19 |
| `v4.8.18` | 2025-06-14 | Low | ## Changes  ## Compiler  - compiler: Address various compiler hotspots with operators containing large expression counts @EdCaunt (#2624)  ## Architectures and JIT  - arch: fix json erro with no card @mloubout (#2620)  ## 🐛 Bug Fixes  - compiler: Revamp MPI hoisting and merging @FabioLuporini (#2629)  ## Continuous Integration  - ci: Fix pytest regression @enwask (#2623)  ## Installation  - pip prod(deps): update pytest-cov requirement from <6.1.2 to <6.2.2 @[dependabot[bot] |
| `v4.8.17` | 2025-05-27 | Low | # Drop support for numpy <2, sympy <1.12   ## Changes  - misc: Purge abc.abstractproperty as it is deprecated @EdCaunt (#2603) - compiler: Blocked SubDimensions now use root dimension name @EdCaunt (#2600)  ## API  - api: fix kwargs processing for tensor functions @mloubout (#2604) - api: Add DEVITO_DEVICE_DEFAULT env var @FabioLuporini (#2597) - api: revamp subsampling factors to avoid duplicates @mloubout (#2575)  ## Compiler  - compiler: Add VectorAccess as an internal type @F |
| `v4.8.16` | 2025-05-01 | Low | ## Changes  - misc: Remove spurious rank info when running without MPI @EdCaunt (#2593)  ## API  - dsl: Add Real, Imag, and Conj operators @EdCaunt (#2564)  ## Documentation  - misc: Update FAQ.md @FabioLuporini (#2590)  ## 🐛 Bug Fixes  - api: Add retrocompat to is_imaginary for older sympy @mloubout (#2591)  ## Installation  - deps: upper bound on codepy due to breaking latest @mloubout (#2594) - api: Add retrocompat to is_imaginary for older sympy @mloubout (#2591)   **F |
| `v4.8.15` | 2025-04-23 | Low | ## Changes  ## API  - api: Fix staggering setup and tensor rebuilding @mloubout (#2583) - dsl: Remove useless memory check (already done at alloc time) @FabioLuporini (#2563) - dsl: ensure SparseFunction coordinates and point symbols are always real @EdCaunt (#2557)  ## Examples  - examples: Fix norm for space order 4 @ZoeLeibowitz (#2565)  ## Compiler  - compiler: Improve quality of generated code with Bundles and MPI @FabioLuporini (#2587) - compiler: Fix issue 2577 - edit print |
| `v4.8.14` | 2025-03-19 | Low | ## Changes  - misc: update all link to main @mloubout (#2552)  ## API  - api: Introduce complex numbers support (np.complex64/128)  @mloubout (#2375)  ## Documentation  - misc: Update advisor with oneAPI 2025 @georgebisbas (#2533)  ## Compiler  - api: Introduce complex numbers support (np.complex64/128)  @mloubout (#2375) - compiler: Enhance IR for GPU codegen @FabioLuporini (#2555)  ## 🐛 Bug Fixes  - compiler: Fix update_properties @FabioLuporini (#2548)  ## Testing  - c |
| `v4.8.13` | 2025-03-04 | Low | ## Changes  ## API  - dsl: Introduce ability to define Functions on Subdomains @EdCaunt (#2245)  ## Compiler  - compiler: fix application visitor for nest Call @mloubout (#2544)  ## Architectures and JIT  - arch: add missing openmp flag for aomp compiler @mloubout (#2541)  ## 🐛 Bug Fixes  - compiler: Fixup deterministic codegen @FabioLuporini (#2543)   **Full Changelog**: https://github.com/devitocodes/devito/compare/v4.8.12...v4.8.13 |
| `v4.8.12` | 2025-02-17 | Low | ## API  - api: Relax custom coefficient spacing  enforcement @mloubout (#2530) - api: fix backward compatibility of Substitution, missing function check @mloubout (#2522) - api: Misc fixes for builtins and harmonic averaging @mloubout (#2520) - api: fix equation pickling @mloubout (#2490) - api: more robust processing of custom weight with spacing @mloubout (#2489) - api: fix pickling of sparse operations @mloubout (#2488) - api: support custom coeffs for div/grad/curl @mloubout (#2486) |

## Citation

- HTML: https://www.freshcrate.ai/projects/devito
- Markdown: https://www.freshcrate.ai/projects/devito.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/devito/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
