Mercurial > repos > public > sbplib_julia
comparison src/SbpOperators/volumeops/derivatives/first_derivative.jl @ 985:1b4f31ae114f
Merge feature/first_derivative
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Wed, 16 Mar 2022 18:32:59 +0100 |
| parents | ba023fc09961 |
| children | 7bf3121c6864 1ba8a398af9c |
comparison
equal
deleted
inserted
replaced
| 970:a52bd2f1126c | 985:1b4f31ae114f |
|---|---|
| 1 """ | |
| 2 first_derivative(grid::EquidistantGrid, inner_stencil, closure_stencils, direction) | |
| 3 | |
| 4 Creates the first-derivative operator `D1` as a `TensorMapping` | |
| 5 | |
| 6 `D1` approximates the first-derivative d/dξ on `grid` along the coordinate dimension specified by | |
| 7 `direction`, using the stencil `inner_stencil` in the interior and a set of stencils `closure_stencils` | |
| 8 for the points in the closure regions. | |
| 9 | |
| 10 On a one-dimensional `grid`, `D1` is a `VolumeOperator`. On a multi-dimensional `grid`, `D1` is the outer product of the | |
| 11 one-dimensional operator with the `IdentityMapping`s in orthogonal coordinate dirrections. | |
| 12 | |
| 13 See also: [`volume_operator`](@ref). | |
| 14 """ | |
| 15 function first_derivative(grid::EquidistantGrid, inner_stencil, closure_stencils, direction) | |
| 16 h_inv = inverse_spacing(grid)[direction] | |
| 17 return SbpOperators.volume_operator(grid, scale(inner_stencil,h_inv), scale.(closure_stencils,h_inv), odd, direction) | |
| 18 end | |
| 19 first_derivative(grid::EquidistantGrid{1}, inner_stencil::Stencil, closure_stencils) = first_derivative(grid,inner_stencil,closure_stencils,1) | |
| 20 | |
| 21 """ | |
| 22 first_derivative(grid, stencil_set, direction) | |
| 23 | |
| 24 Creates a `first_derivative` operator on `grid` along coordinate dimension `direction` given a parsed TOML | |
| 25 `stencil_set`. | |
| 26 """ | |
| 27 function first_derivative(grid::EquidistantGrid, stencil_set, direction) | |
| 28 inner_stencil = parse_stencil(stencil_set["D1"]["inner_stencil"]) | |
| 29 closure_stencils = parse_stencil.(stencil_set["D1"]["closure_stencils"]) | |
| 30 first_derivative(grid,inner_stencil,closure_stencils,direction); | |
| 31 end |
