Community
cancel
Showing results for
Did you mean:
Beginner
98 Views

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

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.
9 Replies
Employee
98 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,
Beginner
98 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
Employee
98 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,
Beginner
98 Views
I'm sure the arrays are set to zero. So the result makes metotallyconfused.
Thanks for yourangelic patience.
Lei Chang
Employee
98 Views
Could you provide testcase to investigate the problem?
With best regards,
Beginner
98 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!
Employee
98 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,
Beginner
98 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

Employee
98 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,