# rs_isl
[](https://crates.io/crates/rs_isl)
[](https://docs.rs/rs_isl)
[](https://crates.io/crates/rs_isl)
[](https://crates.io/crates/rs_isl)
[](https://github.com/KonradKaralus/rs_isl/actions)
rs_isl is an implementation of Iterative Stencil Loops in Rust.
ISLs can be used in a variety of scenarios such as image processing, fluid simulation and the calculation of PDEs.
For more information see [Wikipedia](https://wikipedia.org/wiki/Iterative_Stencil_Loops).
## Example
This animation was created with [Paraview](https://www.paraview.org/) from the data created by the example [two_waves](examples/two_waves.rs).
## Output
rs_isl writes [.vtk](https://vtk.org/) output files to a specified path. Their contents may be defined by the user.
To create those files rs_isl uses the [vtkio](https://github.com/elrnv/vtkio) crate.
## Usage
### General
```rust
use core::f64;
use std::{cmp::max, path::PathBuf};
use rs_isl::*;
fn main() {
// create a domain with a size of 200 by 100
let dim = (200, 100)
// we only access the left neighbour of every cell
let neighbours = vec![(-1, 0)];
// take neighbours value, if there is no neighbour decrease by 3
let op = |num: &f32, nb: Vec