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
- 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)
- 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 <address@hidden>
Sent: Thursday, May 2, 2019 11:04 PM
To: Zhenghuai Guo <address@hidden>
Cc: Yves Renard <address@hidden>; getfem-users <address@hidden>
Subject: Re: [Getfem-users] gmres did not converge!
Why don't you use a direct solver (MUMPS)? Direct solvers are much more robust, especially if your model contains Lagrange multipliers.
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
|