-
Notifications
You must be signed in to change notification settings - Fork 55
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
Fixing Constraints for new OM Parallelism Convention #191
Conversation
Codecov Report
@@ Coverage Diff @@
## main #191 +/- ##
==========================================
+ Coverage 64.75% 64.88% +0.13%
==========================================
Files 47 47
Lines 11964 11939 -25
==========================================
Hits 7747 7747
+ Misses 4217 4192 -25
📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
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.
This looks good to me, but let's also have @joanibal try this one out before merging. Thanks for these changes.
319c041
to
831e51d
Compare
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.
It's working fine for my case with a triangulated surface constraint and a 1D thickness constraint.
Sorry for not checking that the change worked. I appreciate you all fixing this. |
Purpose
The new OpenMDAO serial derivative parallelism convention (v3.25.0) made how we handled constraints invalid as we had different derivative values on different procs for serial inputs. The solution for this is to make constraints serial and consistent on each proc. I changed all the constraints in the MPhys wrapper as well as the
compute()
andcompute_jacvec_product()
functions to reflect these changes.Expected time until merged
1 week.
Type of change
Testing
I tested this using the DAFoam MPhys aero-only and aerostructural tests. The derivatives are correct (even for TACS structural functionals) and OpenMDAO does not complain about derivative inconsistencies.
Checklist
flake8
andblack
to make sure the Python code adheres to PEP-8 and is consistently formattedfprettify
or C/C++ code withclang-format
as applicable