Null space explanation

Hello everyone, I am quite new to finite elements and I cannot really catch the idea behind null spaces (for example to solve the Poisson problem with Neumann boundary conditions). Can someone explain me how they work or give me a reference?

Thanks in advance.

See for instance KSP: Linear System Solvers — PETSc 3.19.3 documentation

Thanks for the fast reply. Then I don’t get how it is used internally to deal with the singularity of the matrix. Can you give me some hints?

DOLFIN uses petsc under the hood, which needs the nullspace information, Which is passed on to the solver of choice Which uses the information.

It is up to the underlying linear backend to use this information correctly.

Okey, I got this, I was wandering more about the math behind this.

Of what a null space is or of how the algorithms use a null space?

In the Poisson case it is quite straightforward

A solution uh to -\Delta uh= f with duh/dn=g is

The Poisson equation is solved by any function
u=uh+C where C is any non-Zero constant

Yes, sorry, about how the algorithms use the null space.

Then I would recommend selecting and algorithm.
You would first have to choose if you want to use a direct or iterative solver, and then look at the papers regarding the implementation of each algorithm.

You could also read MatSetNullSpace — PETSc v3.19.3-878-g7c442164aeb documentation

Thanks., I will try to take a look.