Mercurial > repos > public > sbplib_julia
changeset 1371:d0e48c2e6aad feature/variable_derivatives
Remove stencil input for 1d grid and reorder methods of second_derivative_variable
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 26 May 2023 21:44:33 +0200 |
parents | 4ef8fb75d144 |
children | 3f7f826489a1 |
files | src/SbpOperators/volumeops/derivatives/second_derivative_variable.jl |
diffstat | 1 files changed, 8 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/SbpOperators/volumeops/derivatives/second_derivative_variable.jl Fri May 26 21:39:08 2023 +0200 +++ b/src/SbpOperators/volumeops/derivatives/second_derivative_variable.jl Fri May 26 21:44:33 2023 +0200 @@ -9,20 +9,6 @@ """ function second_derivative_variable end - -function second_derivative_variable(g::TensorGrid, coeff::AbstractArray, inner_stencil::NestedStencil, closure_stencils, dir) - check_coefficient(g, coeff) - - Δxᵢ = spacing(g.grids[dir]) - scaled_inner_stencil = scale(inner_stencil, 1/Δxᵢ^2) - scaled_closure_stencils = scale.(Tuple(closure_stencils), 1/Δxᵢ^2) - return SecondDerivativeVariable{dir, ndims(g)}(scaled_inner_stencil, scaled_closure_stencils, coeff) -end - -function second_derivative_variable(g::EquidistantGrid, coeff::AbstractVector, inner_stencil::NestedStencil, closure_stencils) - return second_derivative_variable(TensorGrid(g), coeff, inner_stencil, closure_stencils, 1) -end - function second_derivative_variable(g::TensorGrid, coeff::AbstractArray, stencil_set, dir::Int) inner_stencil = parse_nested_stencil(eltype(coeff), stencil_set["D2variable"]["inner_stencil"]) closure_stencils = parse_nested_stencil.(eltype(coeff), stencil_set["D2variable"]["closure_stencils"]) @@ -34,6 +20,14 @@ return second_derivative_variable(TensorGrid(g), coeff, stencil_set, 1) end +function second_derivative_variable(g::TensorGrid, coeff::AbstractArray, inner_stencil::NestedStencil, closure_stencils, dir) + check_coefficient(g, coeff) + + Δxᵢ = spacing(g.grids[dir]) + scaled_inner_stencil = scale(inner_stencil, 1/Δxᵢ^2) + scaled_closure_stencils = scale.(Tuple(closure_stencils), 1/Δxᵢ^2) + return SecondDerivativeVariable{dir, ndims(g)}(scaled_inner_stencil, scaled_closure_stencils, coeff) +end function check_coefficient(g, coeff) if ndims(g) != ndims(coeff)