The POEM process is the official mechanism for proposing, discussing, revising, and ultimately approving or rejecting all changes to the OpenMDAO project which effect its user interaction. The process involves writing, reading, and discussing documents called POEMs (proposal for OpenMDAO enhancement).
This process governs all API changes, feature additions, and feature removals to the OpenMDAO project. It is also recursive because it governs any changes to itself.
The process serves two primary and equally important purposes:
-
Announce all changes to the user interface of OpenMDAO to users of the framework before they are added to the main repository
-
Provide a mechanism for external users to propose changes to the user interface for OpenMDAO
The rules are described in the POEM_000.md document in this repository. The OpenMDAO POEMs repository (i.e. this repo) contains a full record of all POEMs submitted, starting November 1st, 2019. Both the core development team and external users participate, and input on any POEM is welcome from any user at any time.
All POEM activity is managed within this repository, via PRs and comments to those PRs. The best way to track that activity is to star and watch this repository. That way, github's built in notification system to get emails when things are changing. Github has lots of great docs on this!
POEM ID | Title | Author | Status |
---|---|---|---|
000 | POEM Purpose and Guidelines | Justin S. Gray | integrated |
001 | Units update for better astrodynamics support | Rob Falck | integrated |
002 | New capability for user to send a termination signal to an OpenMDAO process so that SNOPT in pyoptsparse can terminate cleanly. | Kenneth-T-Moore | integrated |
003 | Allowing addition of I/O during Configure | Anil Yildirim; Justin Gray; Rob Falck | integrated |
004 | Creating Interpolant Class For 1D Splines | DKilkenny | integrated |
005 | An OpenMDAO Plugin System | naylor-b | integrated |
006 | Re-work the user experience in the N2 diagram | Herb Schilling | integrated |
007 | String Compatibility for ExternalCodeComp and ExternalCodeImplicitComp Command Options | Danny Kilkenny | integrated |
008 | Nonlinear Solver Refactor | Danny Kilkenny | integrated |
009 | setup/configure API Changes | Rob Falck | rejected |
010 | add argument recordable to options.declare |
Rob Falck | integrated |
011 | Expand problem recording options | Rob Falck; Herb Schilling | integrated |
012 | Give the user the option to select the LAPACK driver for use in the SVD used in KrigingSurrogate | Herb Schilling | integrated |
013 | Unit conversion enhancements | Rob Falck | integrated |
014 | Removal of XDSM viewer to be replaced by third-party plugin | Rob Falck | integrated |
015 | Automatic creation of IndepVarComp outputs for all unconnected inputs | justingray | integrated |
016 | Linear algebra components can perform multiple calculations. | Rob Falck | integrated |
017 | User can specify units when adding design variables, constraints, and objectives. | Kenneth-T-Moore | integrated |
018 | indices and src_indices can contain slices | Kenneth-T-Moore | integrated |
019 | Random Vectors in Directional Derivatives | Kevin Jacobson | integrated |
020 | KSComp option to automatically add corresponding constraint | Rob Falck | integrated |
021 | _post_configure moved to public API | Rob Falck | rejected |
022 | POEM 022: Shape inputs/outputs by connection or copy from another component variable | Josh Anibal | integrated |
023 | Remove reconfigure code from the current code base | Bret Naylor | integrated |
024 | Calculating ExecComp Jacobian with symbolic derivatives | Péter Onódi | rejected |
025 | allow GA to seek pareto frontier | Kenneth-T-Moore | integrated |
026 | Remove support for factorial function in ExecComp | swryan | integrated |
027 | Approximation flag and state tracking | johnjasa | integrated |
028 | check_partials input warnings | Eliot Aretskin-Hariton | rejected |
029 | Retrieval of IO Variable Metadata | Bret Naylor | integrated |
030 | User Accessible Complex Step | Justin Gray | integrated |
031 | Improved Aitken Relaxation | justinsgray | integrated |
032 | Detailed Driver Scaling Report | justinsgray, Eliot Aretskin-Hariton | integrated |
033 | Linear Constraints in Check Totals | justinsgray | integrated |
034 | Units library function to simplify units. | optional real name | rejected |
035 | More generalized behavior in promoted inputs. | robfalck | integrated |
036 | Serialization of Kriging training weights | dakror | integrated |
038 | Raise an error if a user declares a sub-jacobian to have a value of zero. | Kenneth-T-Moore | accepted |
039 | User Function Registration in ExecComp | @justinsgray, @robfalck | integrated |