[Math] How to apply Lagrange Multipliers to BCs of Time Dependent problems using finite elements

ap.analysis-of-pdesna.numerical-analysis

I am trying to implement a finite element scheme using the method of lines (finite difference in time and finite element in space) and enforcing boundary conditions using Lagrange Multipliers. This might be necessary for essential boundary conditions on non-Lagrangrian finite elements, such as Argyris finite elements.

For a Stationary problem I can formulate the FEM using the following linear system

$\begin{bmatrix} A & \Lambda^T \\ \Lambda & \varepsilon \end{bmatrix} \begin{bmatrix} u \\ \lambda\end{bmatrix} = \begin{bmatrix} \ell \\ \mathbf{0}\end{bmatrix}$

where $u$ is the variable we are trying to solve for, $\lambda$ is the Lagrange multipliers, $A$ might be the stiffness matrix, $\Lambda$ is the matrix of constraints, $\ell$ is the load vector, and $\varepsilon$ is a perturbation matrix to ensure the system is not singular. Thus, I can solve the system

$Au = \ell$
given the constraint

$\Lambda u = 0$,

where the constraint might be a Neumann, Dirichlet, or even Robin boundary condition. My question is how to extend this to a time dependent problem? As an easy example (read silly) how would one apply this to the problem

$\dfrac{\partial u}{\partial t} – \Delta u = f$ on $\Omega$

$u = 0$ on $\partial \Omega$

In the case that we set $\dfrac{\partial u}{\partial t} = 0$ the method amounts to $A = (\nabla u_i, \nabla v_j)$, $\ell = (f, v_j)$, and $\Lambda$ ` is a sparse matrix consisting of ones in the locations corresponding to the basis functions on the boundary, but once I have the time derivative I don't know exactly what to do, since there are no constraints on the time derivative. Usually, to solve the time dependent problem we might formulate the problem as

$\dfrac{d u}{d t} = F(t; u)$

and then apply something like a Runge-Kutta method. Unfortunately, I am unable to see how to come up with this formulation when using Lagrange Multipliers for the BCs. So, what I would like to ask is how do I apply the above scheme to a time dependent problem? References would be greatly appreciated.

Best Answer

In this answer I assume that by finite difference you mean only Forward Euler. Backward Euler and the RK are generalizations of this scheme that I will address at the end of the answer.

Like you said in your question, our goal is to come up with something like $$ \frac{\mathrm{d}}{\mathrm{d}t}u = F(t; u), $$

To account for the Langrange multipliers and the fact that problem has no time dependent boundary conditions, we modify this to $$ \frac{\mathrm{d}}{\mathrm{d}t}z = G(z) $$

where $z = (u,\lambda)$. With this goal in mind, we proceed.

Now, after discretizing the the PDE, we will get something like

$0=\dot{u}+ Au+\Lambda^\mathrm{T}\lambda$ and $0= \Lambda u+\epsilon \lambda$. Now, all we have to do to get these equations to the correct form is take the time derivative of the second equation and rearrange. Doing so, we get

$$ \left[ \begin{array}{c} \dot{u}\\ \dot{\lambda} \end{array} \right] = \left[ \begin{array}{cc} -A& -\Lambda^{\mathrm{T}}\\ \frac{1}{\epsilon}\Lambda A& \frac{1}{\epsilon} \Lambda\Lambda^\mathrm{T}\end{array}\right]\left[\begin{array}{c} u\\ \lambda\end{array}\right]. $$

And this what we wanted. This is the equation that we need to do Forward Euler, Backward Euler and most of the RK methods.

Related Question