Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add get_prolongation_matrix() to FE_NedelecSZ. #16886

Merged
merged 3 commits into from
Apr 17, 2024

Conversation

kinnewig
Copy link
Contributor

This implements get_prolongation_matrix() to FE_NedelecSZ.
Furthermore, this also adds the corresponding test.

Unfortunately, it seems quite complicated to implement get_restriction_matrix(). Therefore, I only implemented get_prolongation_matrix().

@kinnewig kinnewig force-pushed the nedelec_sz_prolongation_matrix branch from 7a94f6e to a6904bf Compare April 15, 2024 14:16
Copy link
Member

@bangerth bangerth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Want to add a changelog entry too?

About the restriction matrices: What makes those more difficult than the prolongation matrix? Is it that the orientation of edges needs to be taken into account?

@kinnewig
Copy link
Contributor Author

I have added a change log entry.

About the restriction matrices: What makes those more difficult than the prolongation matrix? Is it that the orientation of edges needs to be taken into account?

I just looked at how the prolongation matrix and the restriction matrix are computed in the class FE_Nedelec. The implementation of the prolongation matrix is pretty straightforward.
However, the computation of the restriction matrix is more complex. In FE_Nedelec, the class initialize_restriction() is used for that. That function assembles a system_matrix with FE_Nedelec functions with degree - 1 and then computes the projection from the higher to the lower order. As that function is quite lengthy, I haven't studied it in too much detail. I am not even sure if we have to do the same for FE_NedelecSZ...
And based on git blame, the function initialize_restriction() seems to be very old.

@bangerth
Copy link
Member

/rebuild

@bangerth
Copy link
Member

OK, thanks for the explanation. I don't recall either. In principle at least this should not be too difficult, but I'm already happy with one step of progress, we don't have to everything all at once.

@bangerth bangerth merged commit 66af6bf into dealii:master Apr 17, 2024
16 checks passed
@kinnewig kinnewig deleted the nedelec_sz_prolongation_matrix branch April 17, 2024 08:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants