# Crate stencil [−] [src]

Stencil calculations

## One-dimensional case

Example to calculate the central-difference of `sin(x)` function using N1D1 stencil and Torus

```let mut a = torus::Torus::<f64, Ix1>::zeros(n);
let mut b = a.clone();
a.coordinate_fill(|x| x.sin());
let dx = a.dx();
a.stencil_map(&mut b, |n: N1D1<f64>| (n.r - n.l) / (2.0 * dx));```

## Two-dimensional case

Example to calculate the central-difference of `sin(x)cos(y)` function using N1D2 stencil and Torus

```let mut a = torus::Torus::<f64, Ix2>::zeros((n, m));
a.coordinate_fill(|(x, y)| x.sin() * y.cos());
let (dx, dy) = a.dx();
let mut ax = a.clone();
let mut ay = a.clone();
a.stencil_map(&mut ax, |n: N1D2<f64>| (n.r - n.l) / (2.0 * dx));
a.stencil_map(&mut ay, |n: N1D2<f64>| (n.t - n.b) / (2.0 * dy));```

## Modules

 padding Typed Padding region Line regions for fixed boundary condition torus Define N-dimensional torus

## Structs

 N1D1 one-neighbor, one-dimensional stencil N1D2 one-neighbor, two-dimensional stencil N2D1 two-neighbor, one-dimensional stencil

## Traits

 Manifold Uniformly coordinated array NdArray Stencil StencilArray Array with stencil calculations