JuliaApproximation / JuliaApproximation/ApproxFun.jl
How do I limit the number of coefficients used?
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 559
- Forks
- 71
- PR merge metrics
- No merged PRs in 30d
Description
Thank you for your incredible library!
I'm using it to solve the wave equation but it runs a bit slow. So I'd like to restrict the number of coefficients used, how should I do that?
Here is my code:
function we_dirichlet(c, t, x, s)
"""
s: center of the Gaussian pulse
"""
dx = Domain(x[1] .. x[2])
dt = Domain(t[1] .. t[2])
d = dx × dt
Dx = Derivative(d, [1, 0])
Dt = Derivative(d, [0, 1])
# need to specify both ic and its derivative
B = [I ⊗ ldirichlet(dt), I ⊗ lneumann(dt), ldirichlet(dx) ⊗ I, rdirichlet(dx) ⊗ I]
u0 = Fun(x -> exp(-(x - s)^2), dx)
uₜ0 = Fun(x -> -2 * c * (x - s), dx) * u0
QR = qr([B; Dt^2 - c * c * Dx^2])
u = \(QR, [u0; uₜ0; 0; 0; 0]; tolerance=1E-4)
return u
end
u = we_dirichlet(2.0, (0, 20), (-8, 8), 0.1)
# ncoefficients(u) = 8771
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no repository file or test; begin by reproducing the Julia example in we_dirichlet and checking ncoefficients(u). Determine whether the requested coefficient limit is an existing API or a new capability, then define a documented, testable way to restrict it and verify that the solve uses the requested bound.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100