SCJ_Projekt/src/utils/laplacian.jl

26 lines
537 B
Julia

module Laplacian
"""
laplacian(U::AbstractMatrix{<:Real}, dx::Real)
laplacian operator implemented in code
# Arguments:
- `U`: activator or inhibitor matrix
- `dx`: dx
"""
function laplacian(U::AbstractMatrix{<:Real}, dx::Real)
h2 = dx^2
center = U[2:end-1, 2:end-1]
up = U[1:end-2, 2:end-1]
down = U[3:end, 2:end-1]
left = U[2:end-1, 1:end-2]
right = U[2:end-1, 3:end]
return (up .+ down .+ left .+ right .- 4 .* center) ./ h2
end
export laplacian
end # module Laplacian