Mercurial > repos > public > sbplib_julia
comparison src/SbpOperators/volumeops/laplace/laplace.jl @ 1585:d359d0d7fb12 feature/sbp_operators/laplace_curvilinear
Fix some typos and rename g to grid
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Fri, 26 Apr 2024 08:53:32 +0200 |
| parents | efa994405c38 |
| children | b22b9097d907 |
comparison
equal
deleted
inserted
replaced
| 1584:d7483e8af705 | 1585:d359d0d7fb12 |
|---|---|
| 52 return Δ | 52 return Δ |
| 53 end | 53 end |
| 54 laplace(g::EquidistantGrid, stencil_set) = second_derivative(g, stencil_set) | 54 laplace(g::EquidistantGrid, stencil_set) = second_derivative(g, stencil_set) |
| 55 | 55 |
| 56 | 56 |
| 57 function laplace(g::MappedGrid, stencil_set) | 57 function laplace(grid::MappedGrid, stencil_set) |
| 58 J = jacobian_determinant(g) | 58 J = jacobian_determinant(grid) |
| 59 J⁻¹ = map(inv, J) | 59 J⁻¹ = DiagonalTensor(map(inv, J)) |
| 60 | 60 |
| 61 Jḡ = map(*, J, ggeometric_tensor_inverse(g)) | 61 Jg = map(*, J, ggeometric_tensor_inverse(grid)) |
| 62 lg = logicalgrid(g) | 62 lg = logicalgrid(grid) |
| 63 | 63 |
| 64 return mapreduce(+, CartesianIndices(first(ḡ))) do I | 64 return mapreduce(+, CartesianIndices(first(Jg))) do I |
| 65 i,j = I[1], I[2] | 65 i,j = I[1], I[2] |
| 66 Jgⁱʲ = componentview(Jḡ, I[1], I[2]) | 66 Jgⁱʲ = componentview(Jg, I[1], I[2]) |
| 67 | 67 |
| 68 if i == j | 68 if i == j |
| 69 J⁻¹∘second_derivative_variable(lg, Jgⁱʲ, stencil_set, i) | 69 J⁻¹∘second_derivative_variable(lg, Jgⁱʲ, stencil_set, i) |
| 70 else | 70 else |
| 71 Dᵢ = first_derivative(lg, stencil_set, i) | 71 Dᵢ = first_derivative(lg, stencil_set, i) |
