This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Functionspace of real numbers

0 votes

In the example of Poisson equation with pure Neumann boundary conditions the function space for the Lagrange multiplier is the set of real numbers, right? Now how does this work in practice for the bilinear form:

$$
a((u, c), (v, d)) = \int_{\Omega} \nabla u \cdot \nabla v \, {\rm d} x
+ \int_{\Omega} cv \, {\rm d} x
+ \int_{\Omega} ud \, {\rm d} x
$$

Say we have an N-dimensional functionspace, hence N+1 unknowns. Will the above result in N equations where $d$ is set to zero and $v$ set to a testfunction + 1 additional equation where $v$ is set to zero and $d$ chosen as an arbitrary real number -- resulting in the original constraint $d \int_{\Omega} u= 0$? Can we do away with $d$ altogether in this last equation? Are there any practical problems with this approach since in my implementation of this (I plan to switch to FEniCS soon) the matrix to be solved seems rather ill-conditioned.

asked Mar 13, 2015 by maartent FEniCS User (3,910 points)

Hi, it might be a good idea to look at the singular Poisson demo, where the above problem is solved by enforcing the constrains on a matrix level.

Thank you for the link, it indirectly lead me to my mistake. In that demo, however, the singular matrix issue is circumvented by explicitly defining the matrix's nullspace, while the Lagrange multiplier's approach simply adds another equation to do away with singularity.

Regardless, I believe I found my problem (not all of the code was allowing the degrees of freedom to be increased by 1 for the Lagrange multiplier) and my description above seems te be correct after all.

...