Mercurial > repos > public > sbplib_julia
diff src/SbpOperators/volumeops/derivatives/dissipation.jl @ 1034:ed19c549c506 feature/dissipation_operators
Implement undevided dissipation operators
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 22 Mar 2022 12:33:58 +0100 |
parents | 0cb4c6b15d8e |
children | ceda69b8f27a |
line wrap: on
line diff
--- a/src/SbpOperators/volumeops/derivatives/dissipation.jl Tue Mar 22 11:27:45 2022 +0100 +++ b/src/SbpOperators/volumeops/derivatives/dissipation.jl Tue Mar 22 12:33:58 2022 +0100 @@ -1,11 +1,26 @@ -function dissipation(g::EquidistantGrid, p, direction) - h_inv = inverse_spacing(g)[direction] +function undevided_dissipation(g::EquidistantGrid, p, direction) + T = eltype(g) + interior_weights = T.(dissipation_interior_weights(p)) - # D = volume_operator(g,CenteredStencil(1),(CenteredStencil(1)), ) - return nothing, nothing + D = stencil_operator_distinct_closures( + g, + dissipation_interior_stencil(interior_weights), + dissipation_lower_closure_stencils(interior_weights), + dissipation_upper_closure_stencils(interior_weights), + direction, + ) + Dᵀ = stencil_operator_distinct_closures( + g, + dissipation_transpose_interior_stencil(interior_weights), + dissipation_transpose_lower_closure_stencils(interior_weights), + dissipation_transpose_upper_closure_stencils(interior_weights), + direction, + ) + + return D, Dᵀ end -dissipation(g::EquidistantGrid{1}, p) = dissipation(g, p, 1) +undevided_dissipation(g::EquidistantGrid{1}, p) = undevided_dissipation(g, p, 1) function dissipation_interior_weights(p) if p == 0