Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Poisson solver on a sphere

LI_H_2
Beginner
301 Views

Hi~

I'm trying to use Poisson Solver Routines to solver Poisson equation on a whole sphere. After reading the manual, I compile and execute the example code 'd_sph_with_poles_f.f90' with command 'make libintel64 function=d_sph_with_poles_f threading=sequential'. The solution of Helmholtz problem seems to be OK, but when I set q = 0.0D0 to solve the Poisson problem, I got the following error message:

"The problem is degenerate due to rounding errors. The approximate solution that provides the minimal Euclidean norm of the solution will be computed"

Disable 'if (stat.ne.0) goto 999' would allow me to get the solution. I change the parameter to 'np=360,nt=180' and plot the result. It seems to be OK. 

I also test another Poisson problem:

u(ip,it) = cos(theta_i)*((sin(theta_i))**2.0)*cos(2.0*(phi_i-1.5))
f(ip,it) = -cos(2.0*(phi_i-1.5))*cos(theta_i)*(-4.0+4.0*(cos(theta_i))**2.0-8.0*(sin(theta_i))**2.0)

the result is also satisfying. 

I found a previous topic about this problem (  https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/300036 ), which solve the problem in a similar way.

My question is : why did this warning occur?  May the solution of Poisson problem solved by those routines still be trusted? 

Thank you!

0 Kudos
1 Reply
Alexander_K_Intel2
301 Views

Hi,

This warning mean that solution is not unique and any solution plus const is also a solution. 

Thanks,

Alex

0 Kudos
Reply