-
Notifications
You must be signed in to change notification settings - Fork 250
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
[StructuralMechanicsApplication] Only check constitutive laws when an element is active #13114
base: master
Are you sure you want to change the base?
Conversation
How often does As far as I see, the call stack traces back all the way to Though I don't think this is a big issue, I'd try to properly initialize |
I don't know. Bu IMHO all elements should be initialized despite being active/inactive. Opinion @KratosMultiphysics/technical-committee ¿? |
In my understanding,
There is one more possibility (only check and initialize active elements in core), but the consequences are similar to that of the first bullet point. FYI @KratosMultiphysics/geomechanics |
I'd go with the second option to make inits/checks consistent, but I see what you mean. Still, I think it's worth giving it a try in the CI. |
My two cents in here
About @loumalouomega 's point, I agree. A very simple rationale is that some elements / conditions can be activated or deactivated on the fly depending on the numerical technique you're using.
Yes.
I think this is the safe way to go. Initialize and check everything and then deactivate.
We are currently on the process of redesigning the strategies and schemes. Taking this into account, I'd "survive" with current design but take into account these observations for the future one. |
Thanks for all of your inputs! I created a (draft) PR to make the initialization unconditional (see #13119) to see what the pipelines will do. This would make the initialization consistent with the calling of |
📝 Description
During testing with the structural elements, we found that inactive elements lead to issues in the workflow. The reason is that all on all elements, the
Check
function is called (see the check in ModelPart), while only the active elements are initialized (see the EntitiesUtilities). Since the constitutive law vector is only created when an element is Initialized (meaning, when it's active), the check on the constitutive law should only been done when the element is active.This PR adds that check, including unit tests to describe + test this behavior.