Mercurial > repos > public > sbplib_julia
comparison src/SbpOperators/laplace/secondderivative.jl @ 542:011ca1639153 refactor/tensor_index_coupling
Remove Index{Unknown} and replace with general Any implementations
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 27 Nov 2020 11:27:37 +0100 |
parents | dacbcba33d7d |
children | 1a53eb83ed24 |
comparison
equal
deleted
inserted
replaced
541:62d96e2cd165 | 542:011ca1639153 |
---|---|
36 function LazyTensors.apply(D2::SecondDerivative{T}, v::AbstractVector{T}, I::Index{Upper}) where T | 36 function LazyTensors.apply(D2::SecondDerivative{T}, v::AbstractVector{T}, I::Index{Upper}) where T |
37 N = length(v) # TODO: Use domain_size here instead? N = domain_size(D2,size(v)) | 37 N = length(v) # TODO: Use domain_size here instead? N = domain_size(D2,size(v)) |
38 return @inbounds D2.h_inv*D2.h_inv*apply_stencil_backwards(D2.closureStencils[N-Int(I)+1], v, Int(I)) | 38 return @inbounds D2.h_inv*D2.h_inv*apply_stencil_backwards(D2.closureStencils[N-Int(I)+1], v, Int(I)) |
39 end | 39 end |
40 | 40 |
41 function LazyTensors.apply(D2::SecondDerivative{T}, v::AbstractVector{T}, index::Index{Unknown}) where T | 41 function LazyTensors.apply(D2::SecondDerivative{T}, v::AbstractVector{T}, i) where T |
42 N = length(v) # TODO: Use domain_size here instead? | 42 N = length(v) # TODO: Use domain_size here instead? |
43 r = getregion(Int(index), closuresize(D2), N) | 43 r = getregion(i, closuresize(D2), N) |
44 I = Index(Int(index), r) | 44 I = Index(i, r) |
45 return LazyTensors.apply(D2, v, I) | 45 return LazyTensors.apply(D2, v, I) |
46 end | 46 end |
47 | 47 |
48 closuresize(D2::SecondDerivative{T,N,M,K}) where {T<:Real,N,M,K} = M | 48 closuresize(D2::SecondDerivative{T,N,M,K}) where {T<:Real,N,M,K} = M |