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

enable coarse multigrid mappings of low mapping degree #622

Merged
merged 15 commits into from
Dec 19, 2023

Conversation

nfehn
Copy link
Member

@nfehn nfehn commented Dec 13, 2023

addresses #615.

In upcoming commits, I want to introduce the capability to use a different mapping degree for the coarse multigrid mappings.

@nfehn nfehn added grid multigrid Multigrid implementation labels Dec 13, 2023
@nfehn
Copy link
Member Author

nfehn commented Dec 15, 2023

The problem for the test case from #614 with boundary layer manifold, which is critical in terms of the mapping degrees, can be overcome by setting this->param.mapping_degree_coarse_grids = 1 using the capabilities introduced in the present PR.

@kronbichler @peterrum Regarding the "variational crime" mentioned here #615 (comment): As we have seen, mapping degree of 2 for all levels does not work. Interestingly, I have just realized that mapping degree 3 on all levels seems to be fine for this setup. This gives a point of reference regrading the degradation in iterations counts when using linear mappings for the coarser multigrid levels. Mapping degree 3 for all levels requires 24.8 iterations, while mapping degree 3 for the fine level and a linear mapping for all coarser levels requires 33.3 iterations, always using pure h-MG! So the increase in iterations counts seems to be substantial here. For cph-MG, iterations counts are 6.9 for both mapping setups, so no difference is visible!

@kronbichler
Copy link
Contributor

These numbers are an interesting observation. I think there are two different mechanisms at work regarding the multigrid convergence here:

  • Changing the mapping degree changes the approximated operators, and thus, they have (somewhat) different eigenvalue spectra, such that the decomposition in different scales with smoothers damping the "high-frequency" content has a different meaning. In the extreme case, having a bad mapping (like the degree 2 case you mention) means that the eigenvalue spectrum of the matrix A gets bad.
  • The mapping can also make the standard embedding of the multigrid transfer, that is defined in the reference element, a poor choice. This means that even if the coarse-scale solution might be good "correction", the embedding of it into the fine level might distort it. I would intuitively say that this should be a fine-scale/high-frequency perturbation, so the fine-level smoother should be good at removing it again, but eigenmodes resulting from polynomial clipping might do badly.

Since the difference you observe is substantial, I think it would instructive to try to separate the two issues. I think we should be able to use the non-matching transfer operator for testing, which would make the embedding the natural one in the expanded base. That would then level my first item.

@nfehn nfehn merged commit 6f6bf8c into exadg:master Dec 19, 2023
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
grid multigrid Multigrid implementation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants