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) |