-
Notifications
You must be signed in to change notification settings - Fork 365
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
Cover multiple cuts #1810
Cover multiple cuts #1810
Conversation
Can someone add a simple graphic to illustrate the target cases? |
This reverts commit 2b2858c.
Src/EB/AMReX_EB2_3D_C.H
Outdated
|
||
//z edges | ||
if (i >= ez.begin.x && i < ez.end.x && j >= ez.begin.y && j < ez.end.y) { | ||
if (k > ez.begin.z && k <= ez.end.z && ez(i,j,k-1) == Type::irregular) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you have to launch a separate kernel to do this. The problem is ez(i,j,k-1)
may not even have been initialized by another thread yet.
I don't think the fix is general enough. But it probably works for some cases. |
However, it won't affect anyone by default. |
thanks for the pic....it help a ton. So, it also reinforced my own confusion. Depending on how one interprets that picture, the cell with 4 red lines completely surrounding it either has 1 fluid cell fragment and 2 boundary fragments or 2 fluid fragments and 1 boundary fragment. In the former, the algorithm to determine the boundary normal breaks down (among other things) and the normal becomes ill-defined. In the latter, the structured grid data structures are unable to represent the fluid fragments at the same index. I'm confused about the goal of a "fix" for this problem. It would seem that the EB strategy is unable to deal with this situation properly. Can you explain the strategy attempted? Thanks |
The current default is for the code to abort if it detects multiple cuts.
The fix would instead declare the offending cell to be covered and allow
the code to proceed.
…On Thu, Feb 25, 2021 at 3:44 PM Marc Day ***@***.***> wrote:
thanks for the pic....it help a ton. So, it also reinforced my own
confusion. Depending on how one interprets that picture, the cell with 4
red lines completely surrounding it either has 1 fluid cell fragment and 2
boundary fragments or 2 fluid fragments and 1 boundary fragment. In the
former, the algorithm to determine the boundary normal breaks down (among
other things) and the normal becomes ill-defined. In the latter, the
structured grid data structures are unable to represent the fluid fragments
at the same index.
I'm confused about the goal of a "fix" for this problem. It would seem
that the EB strategy is unable to deal with this situation properly. Can
you explain the strategy attempted? Thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#1810 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACRE6YUPUDOMI4AOHMVNKO3TA3OHRANCNFSM4YC5HM5Q>
.
--
Ann Almgren
Senior Scientist; CCSE Group Lead
|
The goal of this "fix" is to try and workaround the |
It almost makes sense :). Can you draw (or sketch) a multicut situation and the way it would look to the code if the fix were implemented as suggested? I don't quite understand how a fluid cell that has 2 fragments of solid (i.e. multi-cut) can be tagged as covered (solid) and have that make any sense. |
Ahhh! That looks hard! Thanks for the pic. Much clearer now. |
Agreed. It's one way to try and cover cuts and hope that it works. No guarantee that it will work for all cases. |
Summary
When building the edge types, cover the cut edges that touch opposite regular corners in order to prevent the
too many cuts in a face error
. Logic is only enabled when flag is set to true in inputs file (default is false).Additional background
When trying to resolve complex geometries with sharp edges one can run into cases where there are multiple EB cuts on a face. In this change, when the flag
cover_multiple_cuts
is set, we cover appropriate edges in order to avoid this error. Manually tested geometry generation on some complex geometries that were previously failing to resolve.Checklist
The proposed changes: