Skip to content
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

Allow individual components to maintain their own complex nonlinear vector. #3219

Open
naylor-b opened this issue May 3, 2024 · 0 comments
Assignees

Comments

@naylor-b
Copy link
Member

naylor-b commented May 3, 2024

Desired capability or behavior.

Currently in OpenMDAO, the type of the ndarray contained in the model's nonlinear vectors is determined in an 'all or nothing' fashion. If any component in the model is using complex step and requires complex vectors, then the entire model nonlinear vectors are made complex, which doubles the memory used by those vectors. In cases where those vectors are very large, as they often are in mphys models, this can be a problem. See discussion #3207 for more details.

The following changes are recommended:

  1. Update the docs to clarify what happens in this situation and which vectors are doubled in size.
  2. Issue a warning in cases where the memory usage will increase significantly.
  3. Add an option to System to allow storage of nonlinear vectors local to that system. Note that there are situations where activating this option could increase the total memory usage of the model beyond even the doubling caused by converting the model nonlinear vectors from real to complex, so we should warn the user when that happens as well.

Associated POEM

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants