Dear Yves, thanks for your answer, as you said it is indeed very easy to prescribe the value of an unknown at a point of a domain but i wanted to avoid that if possible. For now, i will use the pointwise constraint brick. Just out of curiosity, regarding the stiffness matrix, the same issue should exist to a lesser extent for the demo_wheel_contact.py (for the rigidity of the rim), shouldn't it? Is that what was meant by "This means that the line of the tangent matrix corresponding to alpha_D may have a lot of nonzero components. This is why such a use of fixed size variable have to be done with care." ? Is it also why a penalisation is used or is it completely unrelated? Sorry for all these naive questions. David. -----E-mail d'origine----- De : Yves Renard <[email protected]> A: David Danan <[email protected]>; getfem-users <[email protected]> Envoyé le : Je, 23 Fév 2017 16:33 Sujet : Re: [Getfem-users] Warning: Inefficient addition of element in rsvector Dear David, You add a global term, so that the stiffness matrix is no longer sparse at all. This is why gmm complains. And the linear system solve will only be possible for a small number of degrees of freedom. This is avoidable with a specific solve of the system, writing explicitely the constraint matrix as a rank one matrix. Of course, a simpler alternative is to prescribe the value of the unknown at any point of the domain (with a pointwise constraint brick, this is very easy) and if there is a specific need for solution to be of zero average, make a post-translation of the solution. Yves. Le 23/02/2017 à 11:17, David Danan a écrit : Dear Getfem users, i wanted to solve a simple laplacian with pure Neumann boundary condition on a cube. In order to do so, since the problem is ill-posed, i added the following constraint on the unknown u int_omega u dx=0 via a Lagrangian multiplier. In the code, the left-hand side is defined by Model.add_fem_variable("u", mf_u); getfem::add_linear_generic_assembly_brick(model, mim, "(Grad_u.Grad_Test_u)"); model.add_fixed_size_variable("lambda", 1); getfem::add_linear_generic_assembly_brick(model, mim, "(lambda*Test_u)"); getfem::add_linear_generic_assembly_brick(model, mim, "(u*Test_lambda)"); If i am not mistaken, it should correspond to the left hand side described in https://fenicsproject.org/olddocs/dolfin/1.3.0/python/demo/documented/neumann-poisson/python/documentation.html for instance As a result, the mean value is relatively small in comparison with u (while not exactly 0). However, when i run the program, i get the following warning: Level 2 Warning in ../../src/gmm/gmm_vector.h, line 592: Inefficient addition of element in rsvector with **** non-zero entries Did i do something wrong? If i didn't, is it possible to disable this warning? Thanks in advance, David. _______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users -- Yves Renard ([email protected]) tel : (33) 04.72.43.87.08 Pole de Mathematiques, INSA-Lyon fax : (33) 04.72.43.85.29 20, rue Albert Einstein 69621 Villeurbanne Cedex, FRANCE http://math.univ-lyon1.fr/~renard ---------
_______________________________________________ Getfem-users mailing list [email protected] https://mail.gna.org/listinfo/getfem-users
