Solving PDE with non-trivial null space

More
6 years 9 months ago #353 by sxmeng
Hi:

I am solving the following problem (solvability condition satisfied)

"a(u,v)- lam* b(u,v) = L(v),

where lam (non-zero) is the eigenvalue and the non-trivial null space is spanned by gfu, i.e. a(gfu,v) = lam* b(gfu,v)."

I assume that one cannot simply assemble the bilinear form "a(u,v)- lam* b(u,v) ", since lam is an eigenvalue. Is there a way to solve this PDE in netgen?

Any help is greatly appreciated.

Best,
More
6 years 9 months ago #354 by sxmeng
Could this be realized through defining a FE space incorporating that the solution u is orthogonal to gfu? If yes, does netgen provides such modifications?
More
6 years 9 months ago #367 by christopher
I don't think you can do this purely in NGSolve without some C++ hacking, but if efficiency is not the key point you can use NGSolve to assemble the matrices, then convert them to scipy matrices and do the orthogonalization and solving in scipy...
More
6 years 9 months ago #372 by sxmeng
Thanks for the reply. Efficiency is not an issue here :)
More
6 years 9 months ago #376 by joachim
Hello,

I think we need more information for this problem.

Have you computed the Eigenvalue/Eigenvector in advance, or should it be part of the same equation ?
Are your matrices symmetric and positive definite ?

If you know the Eigensystem, you can pose your equation orthogonal to the Eigenvector using a scalar Lagrange parameter (from NumberSpace).

Joachim
More
6 years 9 months ago #377 by sxmeng
Hi Joachim:

Thank you very much for the reply. I have computed the eigenvalues/eigenfunctions in advance using Arnoldi solver; the matrices are symmetric and non-negative definite.

I am not sure yet how to use a scalar Lagrange parameter (from NumberSpace), is there a short illustrative example on this?

Best,
Shixu
Time to create page: 0.102 seconds