-
Notifications
You must be signed in to change notification settings - Fork 35
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
Naming of MultigridVariant::LocalSmoothing/GlobalCoarsening #445
Comments
I agree with these names, they better reflect the functionality. I also think that the I've been working towards some optimizations in deal.II recently, and I've remarked in deal.II how to address the most pressing issue: dealii/dealii#14968 - in general, my opinion is that it should be possible to construct these transfer objects from |
I think it is a bit odd that one name describes the limitations of the underlying algorithms and the other two describe the underlying algorithms. The comments are definitely helpful and I also like the new enum class name much better. Maybe also the possibilities and limitations of |
@bergbauer would you be happier with |
No not really, personally I would keep
Sounds to me as this would rather be a new enum I think the proposed solution is fine with appropriate comments for every |
I think Question: Would a coarse grid with hanging nodes, subsequently refined uniformly, work with our old "local smoothing" infrastructure?
The name I do not see another type |
A coarse grid in deal.II cannot have hanging nodes, so any mesh that has hanging nodes, will not be uniformly refined. All hanging node algorithms look at the level between cells to construct interpolation matrices, so if there should be any refinement, a hanging node can only appear if there is non-uniform refinement somewhere in the mesh creation step. I agree that the name |
Regarding From the two naming variants
I would prefer the second one, because it is more explicit about the limitations of the first variant (where we would remove |
Yes, the second variant sounds good to me. Also for the first one, there is no fundamental disagreement, I wanted to raise the question of what is more intuitive, and in that sense I am fine with |
I have just seen in the multigrid implementation the code else if(multigrid_variant == MultigridVariant::LocalSmoothing)
{
AssertThrow(grid->triangulation->has_hanging_nodes() == false,
dealii::ExcMessage("Hanging nodes are only supported with the option "
"use_global_coarsening enabled."));
AssertThrow(grid->triangulation->all_reference_cells_are_hyper_cube(),
dealii::ExcMessage("This multigrid implementation is currently only available for "
"hyper-cube elements. Other grids need to enable the option "
"use_global_coarsening."));
...
} This nicely demonstrates what the name |
We also need to think about how to do the renaming in functions like this one: exadg/include/exadg/grid/grid_utilities.h Lines 97 to 121 in 3bc6d41
|
@peterrum mentioned that the naming
LocalSmoothing/GlobalCoarsening
is not really suitable, since we always use kind of global-coarsening multigrid.I suggest the following renaming:
Old
New
In my opinion, usability and the application perspective is particularly important here; e.g. it does not help if we call the first variant
MGTransferMatrixFree
, since this name does not reflect the functionality/limitations.Please share your opinion, e.g. @peterrum @kronbichler @bergbauer.
The text was updated successfully, but these errors were encountered: