-
Notifications
You must be signed in to change notification settings - Fork 98
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 coarsening in 2D for newest vertex bisection #1018
base: master
Are you sure you want to change the base?
Conversation
Coarsening v1.0
@aerappa Thanks for the contribution!
We are currently already using what we have for coarsening in GridapP4est, so nothing new needs to be added. The mixed glue should be ok for mixed refining/coarseningm (i.e the adapt function). If you only have coarsening, the refinement glue does the job just fine (since coarsening is basically refining in reverse). Simply put the coarsened model as the parent, not the child. Straight from the documentation:
|
Hey @aerappa @wangzuodong1997 , any updates on this? I recently merged some stuff for AMR that might also interest you guys, you could have a look at the tests I created in |
Hi. Yes, the added example is helpful, thanks :)
@aerappa can implement the hierarchy and probably merge these schemes in Gridap, how do you think? @JordiManyer |
I would start by pulling from |
Thanks! I did not yet push my refine/coarsen code in git. Please let me know when I can push the code :) |
@wangzuodong1997 I do not follow. It's @aerappa 's fork, so its fully under his control. Pulling from master is something anyone can do as well, no need for special permissions. |
@JordiManyer, @amartinhuertas :
@wangzuodong1997 and I have been working on implementing coarsening in the case of 2D refinement. Specifically, we have only implemented modifying the
Topology
directly without bothering with the infrastructure ofrrules
etc. currently implemented for refinement that (if I understand correctly) allow interpolation and projection between parent and children meshes.Our refinement algorithm closely resembles the one here and has the attractive feature that it doesn't not require any mesh history to perform local coarsening that preserves mesh continuity. At a high level, the user selects a set of cells to coarsen, and our algorithm identifies if any of these cells contain a "good node" which can be removed with some of it's edges without generating any hanging nodes.
From your point of view, what are the next steps? Can
AdaptivityGlue
be reused for coarsening? It seems rather specific to refinement at the moment.Please find a small example below demonstrating the coarsening.
Before:
After: