You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to recreate a 3D Chebyshev surrogate model from an old paper Newman 1987.
using SpecialFunctions,QuadGK
using Base.MathConstants: γ
functionbruteN(x,y,z;withS=true)
ζ(t) = (z*sqrt(1-t^2)+y*t+im*abs(x))*sqrt(1-t^2)
Ni(t) =imag(expintx(ζ(t))+log(ζ(t))+γ)
2/π*quadgk(Ni,-1,0,1,atol=eps())[1]+ifelse(withS,S(x,y,z),0)
endS(x,y,z) =-2*(1-z/(hypot(x,y,z)+abs(x)))
functionbruteNsphere(R,θ,α)
x,ρ = R*sin(θ),R*cos(θ)
y,z = ρ*sin(α),-ρ*cos(α)
bruteN(x,y,z,withS=false)
endusing ApproxFun
R,θ,α =Fun(0..2),Fun(CosSpace()),Fun(0..π/2)
f =bruteNsphere(R,θ,α)
As you can see, its an integral over the special function expintx which makes it very expensive to evaluate, but the integral itself is a smooth function of x,y,z or R,θ,α. (Note that I've subtracted off the log singularity at R=0, which is also done in the paper.)
Newman uses a triple Chebyshev product to estimate this function in 1987 (though he said it took him 150 hours to compute the coefficients). However, when I try to run the code above I get an OutOfMemoryError(). Certainly, I've got more memory in 2024 than Newman had in 1987 😀.
I see there is limited support for 3D functions. Is there any work around I can use here?
The text was updated successfully, but these errors were encountered:
I'm trying to recreate a 3D Chebyshev surrogate model from an old paper Newman 1987.
As you can see, its an integral over the special function
expintx
which makes it very expensive to evaluate, but the integral itself is a smooth function of x,y,z or R,θ,α. (Note that I've subtracted off the log singularity at R=0, which is also done in the paper.)Newman uses a triple Chebyshev product to estimate this function in 1987 (though he said it took him 150 hours to compute the coefficients). However, when I try to run the code above I get an
OutOfMemoryError()
. Certainly, I've got more memory in 2024 than Newman had in 1987 😀.I see there is limited support for 3D functions. Is there any work around I can use here?
The text was updated successfully, but these errors were encountered: