[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
__________________________