Forum Message

 

 

We have moved the forum to https://forum.ngsolve.org . This is an archived version of the topics until 05/05/23. All the topics were moved to the new forum and conversations can be continued there. This forum is just kept as legacy to not invalidate old links. If you want to continue a conversation just look for the topic in the new forum.

Notice

The forum is in read only mode.

Find L2 projection of a given function in ngsolve

More
3 years 10 months ago - 3 years 10 months ago #2893 by dong
I'm finding L2 projection of a given function f on a finite element space Q.

Is there any function in Ngsolve do this job as in Fenics?

I also tried to write a find to find the L2-projection using its definition, but I met an error when finding the inverse matrix.

Could you please tell me how to fix this? Please see the attached file.
Thank you so much.
Last edit: 3 years 10 months ago by dong.
More
3 years 10 months ago #2894 by joachim
You have to do it following its definition. You are building some sub-block in a huge matrix, and the solver is telling you correctly that the big matrix is not invertible

Build and invert the matrix on a single space, then you can embed the single-space vectors in your product-space,

Joachim
More
3 years 10 months ago #2895 by dong
Thank you so much. Could you please show me how to embed a single-space vectors in a product space?
I searched a tutorial from ngsolve documentation, but I couldn't find an example.
More
3 years 10 months ago #2896 by joachim
You can use an embedding matrix:
Code:
r = IntRange (a,b) emb = Embedding(n, r)
This embeds a vector of length b-a into a vector of length n, starting at index a.

some use-cases you can find here:
github.com/NGSolve/modeltemplates/blob/m...ates/NavierStokes.py

Joachim
The following user(s) said Thank You: dong
More
3 years 9 months ago #2903 by dong
Thank you so much for your clarification. I think ngsolve will be more user-friendly if it has an L2-projection built-in function.
Time to create page: 0.114 seconds