getfem-users
[Top][All Lists]
Advanced

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

Re: [Getfem-users] Imposing Dirichlet boundary conditions with lagrangia


From: Renard Yves
Subject: Re: [Getfem-users] Imposing Dirichlet boundary conditions with lagrangian multipliers
Date: Wed, 14 Apr 2010 22:38:56 +0200
User-agent: Dynamic Internet Messaging Program (DIMP) H3 (1.1.2)




Dear Anne-Lise,

The function

add_generalized_Dirichlet_condition_with_multipliers(md, mim, varname,
                           multname, region, dataname, Hname);

can be used to prescribe such a condition (see the user documentation for more details).

Normally, the multipliers are filtered in the function model::actualize_sizes() of getfem_model.cc using the terms that are declared which couple the multiplier to its primal variable. So it should work in your case.
Your program seems to be correct anyway.
Unfortunaltely, I don't have any time to check it for more detail at this moment. Can you try with add_generalized_Dirichlet_condition_with_multipliers to see if the problem persists, please ?

Yves.




GUILMIN Anne-Lise <address@hidden> a écrit :

Dear all,

First, thank you for developping this library. It is such a pleasure to
write a finite element code without bothering (too much) about indices !


I want to impose normal Dirichlet conditions so I define multipliers and
use a hand-made brick to fill the matrix and the right hand side.
My problem is that I don't get the right number of lagragian
multipliers. It seems to be linked with the add_multiplier function.

I send you a modified version of the getfem test elastostatic.cc to
underline this problem. In this one, normal Dirichlet conditions are
imposed on the bottom and lateral faces of the mesh.
The following results are given for a linear quadrilateral
two-dimensionnal single element : a square with 4 nodes.

When defining the multipliers with add_fem_variable (line 589), we get
the right number of lagragian multipliers : 2 on each imposed face = 6.

When defining the multipliers with add_multiplier instead (line 591), we
get less multipliers than expected : only 1 on two faces and 2 on the
last one = 4.
It acts as if no boundary condition was imposed on the bottom left node.

If I understood well, when using the add_multiplier definition, we start
creating multipliers on the whole mesh, then we fill the matrix part
dedicated to Dirichlet boundary conditions and finally we simplify it to
eliminate useless lines and columns (step which is necessary for
Gaussian elimination). Could there be a problem in the way that the
matrix is simplified which would explain the disappearance of some
useful multipliers?
If not, what should I do to get the right number of multipliers using
add_multiplier?


I would be thankful for any help or explanation.
Best regards,

Anne-Lise Guilmin
__________________________

Ce message (et toutes ses pièces jointes éventuelles) est confidentiel et établi à l'intention exclusive de ses destinataires. Toute utilisation de ce message non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse. L'IFP décline toute responsabilité au titre de ce message.

This message and any attachments (the message) are confidential and intended solely for the addressees. Any unauthorised use or dissemination is prohibited. IFP should not be liable for this message.

Visitez notre site Web / Visit our web site : http://www.ifp.fr
__________________________







reply via email to

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