getfem-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Getfem-users] Error in solving Laplacian problem


From: Stefano Brambilla
Subject: [Getfem-users] Error in solving Laplacian problem
Date: Tue, 10 Jan 2017 16:09:27 +0100

Hello,

I'm using Getfem 5.0 on Scientific Linux.

I'm trying to solve a coupled diffusion-transport problem in a mesh 3D-1D; i have some issues assemblying the stiffness matrix for the laplace operator (for diffusion term).
I tried building it both with the already-made function getfem::asm_stiffness_matrix_for_laplacian and with the generic_assembly class, that means:
      getfem::generic_assembly
      assem("M$1(#1,#1) += sym(comp(vGrad(#1).vGrad(#1)) (:,i,k, : ,i,k) )");
      assem.push_mi(mim);
      assem.push_mf(mf_u);
      assem.push_mat(AM);
      assem.assembly();

both seems to generate a singular matrix.
I guess that my errors are into the boundary conditions or in the choice of fem methods and integration method; which is probably confirmed, sinced i have the same problems with the test code tests/laplacian.cc

i have, as output using an iterative method as GMRES:

Level 2 Warning in /opt/getfem/5.0/include/gmm/gmm_precond_ilut.h, line 172: pivot 1 too small. try with ilutp ?
Level 2 Warning in /opt/getfem/5.0/include/gmm/gmm_precond_ilut.h, line 172: pivot 2 too small. try with ilutp ?
...
Level 2 Warning in /opt/getfem/5.0/include/gmm/gmm_precond_ilut.h, line 172: pivot 21078 too small. try with ilutp ?
Time to compute preconditionner : 0.07 seconds
 iter   0 residual            1
 iter  50 residual     0.117633
 iter 100 residual     0.125247
 iter 150 residual     0.137942
 iter 200 residual     0.159473
 iter 250 residual     0.226573
 iter 300 residual     0.147597
 iter 350 residual     0.150442
 iter 400 residual     0.151829
 iter 450 residual     0.161334
 iter 500 residual     0.177289
 iter 550 residual     0.248701
Gmres is blocked, exiting
Total time to solve : 2.59 seconds
============================================
|      An error has been detected !!!      |
============================================
Error in main.cpp, line 339 :
Solve procedure has failed


and, with SuperLU:

Level 1 Warning in ../../src/getfem_superlu.cc, line 217: SuperLU solve failed: info =4
Floating point exception


i am using this .param file:
%===================================
%  MESH
%===================================
NX=10;
MESH_NOISED = 0;
LX=1;
LY=2;
LZ=1;
INCLINE =0;
FT = 1;
RESIDUAL=1E-10;
ROOTFILENAME = '/home/pacs_student/Desktop/pacs_shared/mesh'
%===================================
%  GETFEM DESCRIPTORS
%===================================
% GetFem type for the 3D mesh
MESH_TYPE = 'GT_PK(3,1)';  
% GetFem type for the Finite Element Method
FEM_TYPE= 'FEM_PK_DISCONTINUOUS(3,1)';
% GetFem type for the Integration Method
INTEGRATION    = 'IM_TETRAHEDRON(6)';
DATA_FEM_TYPE = 'FEM_PK_DISCONTINUOUS(3,1)';
GENERIC_DIRICHLET=0;



Thank you all for your help!!
Best regards
Stefano Brambilla




reply via email to

[Prev in Thread] Current Thread [Next in Thread]