Skip to content

Commit

Permalink
fix makefilter
Browse files Browse the repository at this point in the history
  • Loading branch information
navidcy committed Jul 9, 2023
1 parent 61be70b commit 9a3a2d3
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions src/domains.jl
Original file line number Diff line number Diff line change
Expand Up @@ -502,34 +502,37 @@ outer wavenumber `outerK` is `tol`, where `tol` is a small number, close to mach
decay = - log(tol) / (outerK - innerK)^order
```
"""
function makefilter(K; order=4, innerK=2/3, outerK=1, tol=1e-15)
function makefilter(K::Array; order=4, innerK=2/3, outerK=1, tol=1e-15)
TK = typeof(K)
K = Array(K)

decay = -log(tol) / (outerK - innerK)^order

filter = @. exp(- decay * (K - innerK)^order)
filter[K .< innerK] .= 1
return filter

return TK(filter)
end

makefilter(K::AbstractRange; kwargs...) = makefilter(Array(K); kwargs...)

Check warning on line 517 in src/domains.jl

View check run for this annotation

Codecov / codecov/patch

src/domains.jl#L517

Added line #L517 was not covered by tests

function makefilter(g::OneDGrid; realvars=true, kwargs...)
K = realvars ? g.kr*g.dx/π : @.(abs(g.k*g.dx/π))
K = realvars ? g.kr * g.dx / π : @.(abs(g.k * g.dx / π))

return makefilter(K; kwargs...)
end

function makefilter(g::TwoDGrid; realvars=true, kwargs...)
K = realvars ?
@.(sqrt((g.kr*g.dx/π)^2 + (g.l*g.dy/π)^2)) : @.(sqrt((g.k*g.dx/π)^2 + (g.l*g.dy/π)^2))
K = realvars ? @.(sqrt((g.kr * g.dx / π)^2 + (g.l * g.dy / π)^2)) :
@.(sqrt((g.k * g.dx / π)^2 + (g.l * g.dy / π)^2))

Check warning on line 527 in src/domains.jl

View check run for this annotation

Codecov / codecov/patch

src/domains.jl#L527

Added line #L527 was not covered by tests

return makefilter(K; kwargs...)
end

function makefilter(g::ThreeDGrid; realvars=true, kwargs...)
K = realvars ?
@.(sqrt((g.kr*g.dx/π)^2 + (g.l*g.dy/π)^2 + (g.m*g.dz/π)^2)) : @.(sqrt((g.k*g.dx/π)^2 + (g.l*g.dy/π)^2 + (g.m*g.dz/π)^2))
K = realvars ? @.(sqrt((g.kr * g.dx / π)^2 + (g.l * g.dy / π)^2 + (g.m * g.dz / π)^2)) :
@.(sqrt((g.k * g.dx / π)^2 + (g.l * g.dy / π)^2 + (g.m * g.dz / π)^2))

Check warning on line 534 in src/domains.jl

View check run for this annotation

Codecov / codecov/patch

src/domains.jl#L534

Added line #L534 was not covered by tests

return makefilter(K; kwargs...)
end

Expand Down

0 comments on commit 9a3a2d3

Please sign in to comment.