[Getdp] Lagrange Multiplier instead of Constraint

Jasper funkybob at gmail.com
Fri Aug 28 12:17:58 CEST 2015


Hi,

Does anybody have an idea how to implement a Lagrange multiplier in GetDP
instead of a constraint? In this case for a mechanical problem. I've tried
adding the following:

To the FunctionSpace add the variables for the Lagrange multiplier [ lxn,
lyn, lzn ] that support the nodes defined in region "Fixation":

  { Name H_l_Mec3D ; Type Vector ;
    BasisFunction {
      { Name txn ; NameOfCoef lxn ; Function BF_NodeX ;
        Support Fixation ; Entity NodesOf[ All ] ; }
      { Name tyn ; NameOfCoef lyn ; Function BF_NodeY ;
        Support Fixation ; Entity NodesOf[ All ] ; }
      { Name tzn ; NameOfCoef lzn ; Function BF_NodeZ ;
        Support Fixation ; Entity NodesOf[ All ] ; }
    }
    Constraint {
    }
  }

Then in the Formulation I add the equations (identity matrix for now) on
the off-diagonals, i.e. [ 0 I; I 0 ] * [ u; l ] = [ 0; 0 ]:

       // Constraints as Lagrange Multipliers
       Galerkin { [ TensorDiag[ 1, 1, 1 ] * Dof{D1 l} , {D1 u} ] ;
         In Fixation ;
         Jacobian Vol ; Integration GradGrad ; }
       Galerkin { [ TensorDiag[ 1, 1, 1 ] * Dof{D1 u} , {D1 l} ] ;
         In Fixation ;
         Jacobian Vol ; Integration GradGrad ; }

But somehow this does not work. I have checked the matrices and the rows
are added, but somehow they are all zero, so the identity matrix does not
show up.

Any help would be greatly appreciated.

Best regards,

Jasper
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/getdp/attachments/20150828/5852f377/attachment.html>