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

MKL POISSON LIBRARY WARNING: The problem is degenerate up to rounding errors!

Chang_Lei
Beginner
1,173 Views
I 'm using MKLPoissonlibrary to solvePoissonequations.
Theexample given by MKL is complied andexecutedsuccessfully. But for my problem, which is 3dPoissonequation with Neumann boundary condition, MKL gives waring:
The problem is degenerate up to rounding errors! The approximate solution
that provides the minimal Eucledean norm of the residual will be computed...

The results are not like what were expected.
Is there anyone who can tell me what exactly this warning info means? Or how can I check my conditions given to MKL?

Any useful suggestions areappreciated.
0 Kudos
9 Replies
Alexander_K_Intel2
1,173 Views
Hi,
It's look like you use Poisson Library with Neumann boundary condition. It's clear that solution of such equation is notunique moreover if u - solution then (u + c) is solution too where c is any constant. So Poisson Library return u with minimalEuclidean norm between all possible solutions.
With best regards,
Alexander Kalinkin
0 Kudos
Chang_Lei
Beginner
1,173 Views
Hi, it'sreasonableexplanation. Thank you very much!
However, the result I got is not likely to be correct. For example, although the result obeys Neumannboundarycondition in direction x and y, but inz direction boundary nonzero gradient isvisible.
I have checked my boundary condition several times and no mistake was found.Is there any other reason for which this resultcould be obtainedif I give the correct boundary condition?
Regards.
Lei Chang
0 Kudos
Alexander_K_Intel2
1,173 Views
Hi,

Are your arraysbd_{a,b}x,bd_{a,b}y,bd_{a,b}z equals zero or not? If not then boundary gradient of resulted solution is not equal zero.
With best regards,
Alexander Kalinkin
0 Kudos
Chang_Lei
Beginner
1,173 Views
I'm sure the arrays are set to zero. So the result makes metotallyconfused.
Thanks for yourangelic patience.
Lei Chang
0 Kudos
Alexander_K_Intel2
1,173 Views
Could you provide testcase to investigate the problem?
With best regards,
Alexander Kalinkin
0 Kudos
Chang_Lei
Beginner
1,173 Views
Sorry for late reply.
It's part ofincompressible Navier-stokes solverfor multi-phase flow and is inconvenient to provide.
I have checked out some other error and now I can useMKL for my problemcorrectly.
Thank you very much!
0 Kudos
Alexander_K_Intel2
1,173 Views
You are welcome!
But if it is not asecret could you wrote in few words why dirichle boundary condition provide error?
With best regards,
Alexander Kalinkin
0 Kudos
stathis_p_
Beginner
1,173 Views

Hello.

I'm having  a similar problem when i'm trying to run one of the examples which i found in MKL example folder. The difference is, that when I use Neumman boundary conditions (NNNNNN) at the compilation i get the following error:

user1@user1:~/Documents/IntelFortran/mkl_poisson_solver$ make soia32 function=d_Helmholtz_3D_f
rm -f *.mod *.o
make mkl_dfti.mod  mkl_trig_transforms.mod  mkl_poisson.mod d_Helmholtz_3D_f.res  _IA=ia32 EXT=so RES_EXT=so
make[1]: Entering directory `/home/sat/Documents/IntelFortran/mkl_poisson_solver'
mkdir -p ./_results/intel_parallel_ia32_so
ifort -mia32  -w -c /opt/intel/composer_xe_2013.1.117/mkl/include/mkl_dfti.f90
mkdir -p ./_results/intel_parallel_ia32_so
ifort -mia32  -w -c /opt/intel/composer_xe_2013.1.117/mkl/include/mkl_trig_transforms.f90
mkdir -p ./_results/intel_parallel_ia32_so
ifort -mia32  -w -c /opt/intel/composer_xe_2013.1.117/mkl/include/mkl_poisson.f90
mkdir -p ./_results/intel_parallel_ia32_so
ifort -mia32  -w source/d_Helmholtz_3D_f.f90 -L"/opt/intel/composer_xe_2013.1.117/mkl/lib/ia32" -Wl,--start-group "/opt/intel/composer_xe_2013.1.117/mkl/lib/ia32"/libmkl_intel.so "/opt/intel/composer_xe_2013.1.117/mkl/lib/ia32"/libmkl_intel_thread.so "/opt/intel/composer_xe_2013.1.117/mkl/lib/ia32"/libmkl_core.so -Wl,--end-group -L"/opt/intel/composer_xe_2013.1.117/mkl/../compiler/lib/ia32" -liomp5 -lpthread -ldl -o _results/intel_parallel_ia32_so/d_Helmholtz_3D_f.out
export LD_LIBRARY_PATH="/opt/intel/composer_xe_2013.1.117/mkl/lib/ia32":/opt/intel/composer_xe_2013.1.117/compiler/lib/ia32:/opt/intel/mic/coi/host-linux-release/lib:/opt/intel/mic/myo/lib:/opt/intel/composer_xe_2013.1.117/mpirt/lib/ia32:/opt/intel/composer_xe_2013.1.117/compiler/lib/ia32:/opt/intel/composer_xe_2013.1.117/mkl/lib/ia32:"/opt/intel/composer_xe_2013.1.117/mkl/../compiler/lib/ia32"; _results/intel_parallel_ia32_so/d_Helmholtz_3D_f.out >_results/intel_parallel_ia32_so/d_Helmholtz_3D_f.res
1
make[1]: *** [d_Helmholtz_3D_f.res] Error 1
make[1]: Leaving directory `/home/user1/Documents/IntelFortran/mkl_poisson_solver'
make: *** [soia32] Error 2

-----------------------------------------------------------------------------------------------------------------

and if i try to execute, i get the following message:

MKL POISSON LIBRARY WARNING:
The problem is degenerate due to rounding errors. The approximate solution
that provides the minimal Euclidean norm of the solution will be computed.
 Double precision 3D Helmholtz example FAILED to compute the solution...

I have set the boundaries to zero:

      bd_ax(iy,iz) = 0.0D0
      bd_bx(iy,iz) = 0.0D0
      bd_ay(ix,iz) = 0.0D0
      bd_by(ix,iz) =  0.0D0
      bd_az(ix,iy) = 0.0D0
      bd_bz(ix,iy) = 0.0D0


and the q coefficient to zero, in order to create a poisson equation.

thank you in advance

0 Kudos
Alexander_K_Intel2
1,173 Views

Hi,

The example check that error have to be 0 after each Helmholtz call. In your case error became equal to 1 that corresponded to warning about degenerate problem. To make your Helmholtz example passed correct change line 

  if (stat!=0) goto FAILURE;

on

  if (stat<0) goto FAILURE;

Thank you,

Alexander Kalinkin

0 Kudos
Reply