Hi Kostas,

Thank you for the advice.

Sorry to be stupid. But I have not use MUMPS before. And I haven’t fond any 
example showing how to use/call it in a getfem code. As I understand, in order 
to use it I should


  1.  Add the following in ./configure stage when install getfem



--with-mumps-include-dir=" -I /path/to/MUMPS/include "
--with-mumps=" F90 libraries and libs of MUMPS to be linked "


              (as indicated in page 5 in getfem User Documentation version5.3)



  1.  Then I can use it


Is this procedure correct? Or do I need to install MUMPS separately?

Thank you very much
Regards
Zhenghuai Guo

From: Konstantinos Poulios <[email protected]>
Sent: Thursday, May 2, 2019 11:04 PM
To: Zhenghuai Guo <[email protected]>
Cc: Yves Renard <[email protected]>; getfem-users 
<[email protected]>
Subject: Re: [Getfem-users] gmres did not converge!

Dear Zhenghuai Guo,

Why don't you use a direct solver (MUMPS)? Direct solvers are much more robust, 
especially if your model contains Lagrange multipliers.

BR
Kostas

On Thu, May 2, 2019 at 2:57 PM Zhenghuai Guo 
<[email protected]<mailto:[email protected]>> wrote:
Hi, Andriy and Yves and Konstantinos,

I loaded two meshes, totally about 350000 elements.

I only added elasticity bricks:
  getfem::add_isotropic_linearized_elasticity_brick(model, mim_1, "u_1", 
"lambda_1", "mu_1");
  getfem::add_isotropic_linearized_elasticity_brick(model, mim_2, "u_2", 
"lambda_2", "mu_2");


and four pointwise_constraints (two more each mesh):
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_1","point_1_1","point_1_1_unitx",
 "point_1_1_valuex");
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_1","point_1_1","point_1_1_unity",
 "point_1_1_valuey");
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_1","point_1_2","point_1_2_unitx",
 "point_1_2_valuex");
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_1","point_1_2","point_1_2_unity",
 "point_1_2_valuey");
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_2","point_2_1","point_2_1_unitx",
 "point_2_1_valuex");
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_2","point_2_1","point_2_1_unity",
 "point_2_1_valuey");
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_2","point_2_2","point_2_2_unitx",
 "point_2_2_valuex");
  
getfem::add_pointwise_constraints_with_multipliers(model,"u_2","point_2_2","point_2_2_unity",
 "point_2_2_valuey");

 The values for the pointwise_constraints are simply the same as -1. This means 
the two meshes should just be translated parallelly by -1 in both x and y 
direction.

My solver is
  gmm::iteration iter(1E-9, 1, 100);
  getfem::standard_solve(model, iter);


But I get warning of not convergence:
iter   0 residual            1
 iter 500 residual  6.17288e-05
Level 2 Warning in getfem/getfem_model_solvers.h, line 127: gmres did not 
converge!

I am quite sure that my mesh looks good and have no strange shape elements. 
When I use small simply meshes, the code runs ok.
Could you please advise to me how to improve?

Regards
Zhenghuai Guo

Reply via email to