-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support zero Dirichlet conditions #37
Conversation
@ioannisPApapadopoulos @KarsKnook Any ideas what to about the ADI shifts become julia> J, a, b, c, d, tol
(78, 9.10002282376538e-10, 0.4052847345693519, -0.4052847345693519, -9.10002282376538e-10, 1.0e-15)
julia> ADI_shifts(J, a, b, c, d, tol)
([NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN … NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN], [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN … NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN]) It looks like the culprit is the elliptic integral but not even using julia> α
4.453667231591123e8
julia> K = Elliptic.K(1-1/big(α)^2)
∞ |
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #37 +/- ##
==========================================
- Coverage 98.70% 98.32% -0.39%
==========================================
Files 4 5 +1
Lines 386 537 +151
==========================================
+ Hits 381 528 +147
- Misses 5 9 +4
☔ View full report in Codecov by Sentry. |
Hmm it just converts a |
Have u tried the elliptic functions sub module in FastTransforms? |
There's also code for ADI shifts starting at line 2935 in FastTransforms C library banded_source.c |
I guess I should add BigFloat elliptic support |
Your |
@TSGut Btw its cleaner to just write |
OK it now "works" except the result is inaccurate with @tomtrogdon @cade-b Maybe you know a good way to compute |
(At least I can do a bait-and-switch in my talk and use this just to show the timings....) |
For |
Thanks @KarsKnook !! I implemented it and it now works for |
I've just used |
Except alpha > 1e7 is specific to Float64. In Float32, that would fail for alpha > 1/sqrt(eps(Float32)). So what you really want is to check that the argument of the complete elliptic integral of the first kind isn't equal to one in the current precision. |
I have no intention of solving Poisson on a square with anything other than |
No description provided.