-
Notifications
You must be signed in to change notification settings - Fork 89
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
FIx omegah tests #996
FIx omegah tests #996
Conversation
b5f57ca
to
3ea9f61
Compare
I just tested this and am still seeing 2 test failures:
Do they pass for you? |
Ah, thanks, I forgot to commit the last changes. |
Ah ok. I will pull / retest once you push them. |
Uhm, I pushed everything. It was passing earlier, and now it doesn't. I must have messed up while committing changes. I'll fix it soon. |
Ok, thank you. Let me know when it's ready to test again. |
Ok, they pass on my laptop now. |
Crap... I approved / merged the wrong PR. This one is good - all tests pass now. I just tested. |
We can see what happens with the other one tomorrow since it's merged. Sorry.... ! |
No problem! |
gdn[i] = createGlobalEntDofNumbering(mesh, i, m_dofsPerEnt[i], startingOffset); | ||
const auto offset = getMaxGlobalEntDofId(mesh, gdn[i]); | ||
startingOffset = offset == 0 ? startingOffset : offset; | ||
gdn[i] = createGlobalEntDofNumbering(mesh, i, m_dofsPerEnt[i], offset); |
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.
@cwsmith here
const auto offset = getMaxGlobalEntDofId(mesh, gdn[i]); | ||
startingOffset = offset == 0 ? startingOffset : offset; | ||
gdn[i] = createGlobalEntDofNumbering(mesh, i, m_dofsPerEnt[i], offset); | ||
offset += getMaxGlobalEntDofId(mesh, gdn[i])*m_dofsPerEnt[i]; |
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'm a bit concerned that including *m_dofsPerEnt[i]
will count the dofs per ent twice. I need to check the implementation, but I'm pretty sure that the global dof numbers (gdn[0:4]
) produced by createGlobalEntDofNumbering(...)
will already include this factor.
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.
Ah, good catch! I will remove this counter then. To be clear, it's not "wrong", but it may make GIDs unnecessarily large, right?
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 will remove this counter then.
Sounds good. Thank you.
To be clear, it's not "wrong", but it may make GIDs unnecessarily large, right?
Yeah. Exactly.
For the record, 'dofsPerEnt' is included in the global Id computation here:
Albany/src/disc/omegah/OmegahConnManager.cpp
Line 171 in e13e9e0
const auto dofGlobalId = entGlobalIds[i]*dofsPerEnt+j; |
Looking at this line:
Albany/src/disc/omegah/OmegahConnManager.cpp
Line 172 in e13e9e0
dofNum[dofIndex] = startingOffset+dofGlobalId; |
using offset += getMaxGlobalEntDofId(...)
may also be padding the offset unnecessarily.
For example, suppose offset=100 is passed to createGlobalEntDofNumbering(...)
, and, for this example, creates 20 dof ids. We then call getMaxGlobalEntDofId(...)
and that returns 120. If we accumulated into offset then we would have 220 as the offset for the next iteration instead of 120.
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're right. I think I confused dofs numbering with geo entities numbering. I will roll back these changes.
Fix calculation of ownership array in OmegahConnMgr, and fix a couple of bugs in box mesh and its tests.
Closes #995