comparison src/SbpOperators/volumeops/derivatives/first_derivative.jl @ 2091:e21c295fb2da refactor/sbp_operators/direction_check

Restructure methods for equidistant grids with a dim argument
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 02 Mar 2026 15:41:14 +0100
parents 67d8fbbb9e58
children
comparison
equal deleted inserted replaced
2090:67d8fbbb9e58 2091:e21c295fb2da
19 end 19 end
20 D₁ = first_derivative(g.grids[dim], stencil_set) 20 D₁ = first_derivative(g.grids[dim], stencil_set)
21 return LazyTensors.inflate(D₁, size(g), dim) 21 return LazyTensors.inflate(D₁, size(g), dim)
22 end 22 end
23 23
24 function first_derivative(g::EquidistantGrid, stencil_set, dim)
25 return first_derivative(TensorGrid(g), stencil_set, dim)
26 end
27 24
28 """ 25 """
29 first_derivative(g::EquidistantGrid, stencil_set::StencilSet) 26 first_derivative(g::EquidistantGrid, stencil_set::StencilSet)
30 27
31 The first derivative operator on an `EquidistantGrid`. 28 The first derivative operator on an `EquidistantGrid`.
35 inner_stencil = parse_stencil(stencil_set["D1"]["inner_stencil"]) 32 inner_stencil = parse_stencil(stencil_set["D1"]["inner_stencil"])
36 closure_stencils = parse_stencil.(stencil_set["D1"]["closure_stencils"]) 33 closure_stencils = parse_stencil.(stencil_set["D1"]["closure_stencils"])
37 return first_derivative(g, inner_stencil, closure_stencils); 34 return first_derivative(g, inner_stencil, closure_stencils);
38 end 35 end
39 36
37 function first_derivative(g::EquidistantGrid, stencil_set, dim)
38 if dim != 1
39 throw(DomainError(dim, "Derivative direction must be 1."))
40 end
41 return first_derivative(g, stencil_set)
42 end
43
40 """ 44 """
41 first_derivative(g::EquidistantGrid, inner_stencil::Stencil, closure_stencils) 45 first_derivative(g::EquidistantGrid, inner_stencil::Stencil, closure_stencils)
42 46
43 The first derivative operator on an `EquidistantGrid` given an 47 The first derivative operator on an `EquidistantGrid` given an
44 `inner_stencil` and `closure_stencils`. 48 `inner_stencil` and `closure_stencils`.