forked from OpenMDAO/OpenMDAO
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrelease_notes.txt
610 lines (490 loc) · 31.2 KB
/
release_notes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
################################################################################################
Release Notes for OpenMDAO 2.9.1
October 8, 2019
2.9.1 is a quick patch release to correct a couple of issues:
Bug Fixes:
----------
- The previous release inadvertantly changed the default "bounds_enforce" option on the BoundsEnforce
line search to "vector". This release restores the default to the originally intended "scalar".
- The entry point for the `web_view` utility function was fixed. (Thank you Nicholas Bollweg)
- Fixed a bug that prevented model reconfigurability in certain situations.
- Fixed a missing `sqrt` in the documentation for the Hohmann example.
- Fixed a bug that prevented proper fallback from bidirectional coloring to unidirectional coloring
in certain cases where the bidirectional coloring was worse than the unidirectional coloring.
New Features:
-------------
- Small improvements were made to the MetaModel viewer, along with some additional testing.
################################################################################################
Release Notes for OpenMDAO 2.9.0
October 1, 2019
New Features:
-------------
- better detection of when you're running under MPI, and new environment variable to forcibly disable MPI
- users can now issue connections from within the `configure` method on group
(this is useful if you wanted to be able to interrogate your children before issuing connections)
- significant overhead reduction due to switching from 'np.add.at' to 'np.bincount' for some matrix-vector
products and data transfers.
- `openmdao` command line tool:
- new `openmdao scaffold` command line tool to quickly bootstrap component and group files
- `openmdao summary` command gives more data including number of constraints
- `openmdao tree` command now uses different colors for implicit and explicit components and
includes sizes of inputs and outputs
- the `openmdao --help` tool gives better formatted help now
- CaseRecording:
- Case objects now have a `name` attribute to make identifying them simpler
- Case objects now support __getitem__ (i.e. <case>[<some_var>]) and the
get_val/set_val methods to directly mimic the problem interface
- list_inputs and list_outputs methods on Case objects now support optional includes and excludes patterns
- Documentation:
- added documentation for the list_inputs and list_outputs method on the Case object
- added example use of implicit component for add_discrete_input docs
- some minor cleanup to the cantilever beam optimization example to remove some unused code
- Derivatives:
- slightly different method of computing the total derivative sparsity pattern has been implemented
that should be a bit more robust (but YMMV)
- the partials object passed into `linearize` and `compute_partials` methods on implicit
and explicit component respectively can now be iterated on like a true dictionary
- Solvers:
- a true Goldstein condition was added to the ArmijoGoldstein line search
(you can now choose if you want Armijo or Goldstein) *** Peter Onodi ***
- DirectSolver now works under MPI
(but be warned that it might be very slow to use it this way, because it does a lot of MPI communication!!!)
- BroydenSolver now works in parallel
- improved error message when you have a nonconverged solver
- improved error message when solver failure is due to Nan or Inf
- Components:
- list_inputs and list_outputs methods on System objects now support optional includes and excludes patterns
- variables can now have tags added as additional meta-data when they are declared,
which can then be used to filter the output from list_inputs and list_ouputs
- significant speed improvements and increased surrogate options for StructuredMetaModel
- improved error message when required options are not provided to a component during instantiation
- user gets a clear error msg if they try to use `np.` or `numpy.` namespaces inside ExecComp strings
- in the declare_coloring method, a threshold can now be set such that the generated coloring must improve
things at least as much as the given percentage or the coloring will not be used. This can happen in cases
where multiple instances of the same component class appear in a given model and each instance can potentially
generate a different sparsity which results in a different coloring.
- Problem
- user can set specific slices of variables using the set_val method on problem
- added problem.compute_jacvec_prod function for matrix-free total derivative products.
Useful for wrapping for loops around an OpenMDAO problem and propagating derivatives through it.
- Visualization
- minor reformatting of the N2 menu to make better use of vertical screen space
- new visualziation tool for examining the surrogates in StructuredMetaModelComp and UnstructuredMetaModelComp
- improved `openmdao view_connections` functionality for better filtering and toggling between
promoted and absolute names
- component names can now optionally be shown on the diagonal for XDSM diagrams *** Peter Onodi ***
Backwards Incompatible API Changes:
-----------------------------------
- `openmdao view_model` has been deprecated, use `openmdao n2` instead
- `vectorize` argument to ExecComp has been deprecated, use `has_diag_partials` instead
- changed NewtonSolver option from `err_on_maxiter` to `err_on_non_converge` (old option deprecated)
- in StructuredMetamodel, original methods 'slinear', 'cubic', 'quintic' renamed to 'scipy_linear', 'scipy_cubic', 'scipy_quintic';
new methods 'linear' and 'cubic' have been added that are faster python implementations. 'quintic' is no longer used.
Bug Fixes:
----------
- `prom_name=True` now works with list_outputs on CaseReader (it was broken before)
- fixed a corner case where N2 diagram wasn't listing certain variables as connected, even though they were
- fixed a bug in check_totals when the FD-norm is zero
- fixed corner case bug where assembled jacobians for implicit components were not working correctly
- fixed a problem with Aitken acceleration in parallel for NonlinearBlockGaussSeidel solver
- fixed DOE driver bug where vars were recorded in driver_scaled form.
- discrete variables are now recorded
- list_outputs/list_inputs on a Case now lists in Execution order, similarly to the System methods
- fixed a bug where the derivatives calculated with complex step around a model with a BroydenSolver were wrong.
- fixed a bug in the coloring config check
################################################################################################
Release Notes for OpenMDAO 2.8.0
June 27, 2019
Bug Fixes:
----------
- Fixed a bug in PETScVector norm calculation, which was totally wrong for serial models combined
with distributed ones
- Fixed a bug with the solver debug_print option when output file already existed
- Fixed the incorrect Shockley diode equation in the Circuit example
- Fixed a few small bugs in group level FD
New Features:
-------------
- Stopped reporting a warning for a corner case regarding promoted inputs that are connected inside
their owning group, because everyone hated it!
- Optional normalization of input variables to multifi_cokriging
- New matplotlib based sparsity matrix viewer for coloring of partial and total derivatives
- Preferred import style now changed to `import openmdao.api as om`
- Discrete variables now show up when calling the list_input/list_output functions
- Discrete variables now show up in view_model
- ScipyOptimizeDriver now raises an exception when the objective is missing
- A legend can be optionally added to the XDSM diagram. Not shown by default.
*** contributed by Peter Onodi ***
################################################################################################
Release Notes for OpenMDAO 2.7.1
May 30, 2019
2.7.1 is a quick patch release to correct/update the 2.7.0 release notes.
################################################################################################
Release Notes for OpenMDAO 2.7.0
May 28, 2019
New Features:
-------------
- You can now define guess_nonlinear method at the group level
- New documentation added about the N2 diagram usage
- Significant improvement to documentation search functionality
(by default, only searches the feature docs and user guide now)
- Derivatives:
- Improved support for full-model complex-step when models have guess_nonlinear methods defined
- **Experimental** FD and CS based coloring methods for partial derivative approximation
Valuable for efficiently using FD/CS on vectorized (or very sparse) components
- Solvers:
- `Solver failed to converge` message now includes solver path name to make it more clear what failed
- Improved pathname information in the singular matrix error from DirectSolver
- Directsolver has an improved error message when it detects identical rows or columns in Jacobian
- NonlinearGaussSeidel solver now accounts for residual scaling in its convergence criterion
- New naming scheme for solver debug print files (the old scheme was making names so long it caused OSErrors)
- Components:
- ExecComp now allows unit=<something> and shape=<something> arguments that apply to all variables in the expression
- New AkimaSpline component with derivatives with respect to training data inputs
- Visualization
- Several improvements for the N2 diagram for large models
- N2 diagram html files have been reduced in size significantly
- `openmdao view_model` command line utility now supports case record database files
- (Experimental) Automatic XDSM generator (using either Latex with pyXDSM or html with XDSMjs)
*** contributed by Peter Onodi ***
*** uses XDSMjs v0.6.0 by Rémi Lafage (https://github.com/OneraHub/XDSMjs) ***
Backwards Incompatible API Changes:
-----------------------------------
- New APIs for total derivative coloring that are more consistent with partial derivative coloring
(previous APIs are deprecated and coloring files generated with the previous API will not work)
- The API for providing a guess function to the BalanceComp has changed.
guess_function is now passed into BalanceComp as an init argument
- Changed the N2 diagram json data formatting to make the file size smaller
You can't use older case record databases to generate an N2 diagram with latest version
- All component methods related to execution now include `discrete_inputs` and `discrete_outputs` arguments
when a component is defined with discrete i/o. (if no discrete i/o is defined, the API remains unchanged)
(includes `solve_nonlinear`, `apply_nonlinear`, `linearize`, `apply_linear`, `compute`, `compute_jac_vec_product`, `guess_nonlinear`)
- The internal Driver API has changed, a driver should execute the model with `run_solve_nonlinear` to ensure that proper scaling operations occur
Bug Fixes:
----------
- CaseRecorder was reporting incorrect values of scaled variables (analysis was correct, only case record output was wrong)
- the problem level `record_iteration` method was not properly respecting the `includes` specification
- ExecComp problem when vectorize=True, but only shape was defined.
- Incorrect memory allocation in parallel components when local size of output went to 0
- Multidimensional `src_indices` were not working correctly with assembled Jacobians
- Fixed problem with genetic algorithm not working with vector design variables *** contributed by jennirinker ***
- Fixed incompatibility with mpich mpi library causing "PMPI_Allgather(945).: Buffers must not be aliased" error *** fzhale and nbons ***
################################################################################################
Release Notes for OpenMDAO 2.6.0
February 22, 2018
New Features:
-------------
- MetaModelStructured will detect NaN in requested sample and print a readable message.
- ScipyOptimizeDriver now supports Hessian calculation option for optimizers that use it.
- User can specify src_indices that have duplicates or have two inputs on a single component connected to the same output, and still have CSC Jacobian work.
- User can get/set problem values in a straightforward manner: prob['var'] = 2., etc. even when running in parallel.
- Problem 'get' access to distributed variables will raise an exception since it isn't clear what behavior is expected,
i.e. should prob['comp.x'] return the full distributed variable or just the local part.
- Directsolver has an improved error message when it detects identical rows or columns in Jacobian.
- The NonlinearBlockGS solver has been updated with a less expensive implementation that does not call the compute method of Explicit components as many times.
- User can request a directional-derivative check (similar to SNOPTs built-in level 0 check) for check_partials.
- check_partials with compact_print will now always show all check pairs.
- The N^2 diagram (from `openmdao view_model`) now shows the solver hierarchy.
- KSComp has an improved, vectorized implementation.
- list_inputs now includes a 'shape' argument.
- User can generate an XDSM from a model (`openmdao xdsm`).
- User can set `units=<something>` for an execcomp, when all variables have the same units.
Backwards Incompatible API Changes:
-----------------------------------
- The default bounds enforcement for BoundsEnforceLS is now 'scalar' (was 'vector')
- Direct solver will now use 'assemble_jac=True' by default
- Recording options 'includes' and 'excludes' now use promoted names for outputs (absolute path names are still used for inputs)
- FloatKrigingSurrogate has been deprecated since it does not provide any unique functionality.
- FloatMultifiKrigingSurrogate has been deleted because it was never used, was incorrectly implemented, and provides no new functionality.
Bug Fixes:
----------
- Complex-step around Newton+DirectSolver now works with assembled Jacobians.
- Armijolinesearch implementation was incorrect when used with solve_subsystems. The implementation is now correct.
################################################################################################
Release Notes for OpenMDAO 2.5.0
October 31, 2018
New Features:
--------------
- list_outputs() method now includes a `prom_name` argument to include the promoted name in the printed output (Thanks John Jasa!).
- N2 viewer now includes tool tip (hover over) showing the promoted name of any variable.
- Improved error msg when building sparse partials with duplicate col/row entries.
- You can now build the docs without MPI/PETSc installed (you will get warnings, but no longer errors).
- Major internal refactor to reduce overhead on compute_totals calls (very noticeable on large design spaces but still cheap problems).
- Components now have a `under_complex_step` attribute you can check to see if complex-step is currently active.
- Components `distributed` attribute has been moved to an option (old attribute has been deprecated).
- MetaModelUnstructured will now use FD for partial derivatives of surrogates that don't provide analytic derivatives (user can override the default settings if they wish to use CS or different FD config).
- Improvements to SimpleGA to make it more stable, and added support constraints via penalty functions (Thanks madsmpedersen and onodip).
- Parallel FD and CS at the component and group level is now supported.
- Can turn off the analytic derivative sub-system if it is not needed via an argument to setup().
- Derivative coloring now works for problems that run under MPI.
- New Components in the standard library:
- Mux and Demux components.
- New CaseRecording/CaseReading Features:
- DesVar AND output variable bounds are both reordered now.
- Improved error msg if you try to load a non-existent file with CaseReader.
- **Experimental Feature**: Discrete data passing is now supported as an experimental feature... we're still testing it, and may change the API!
Backwards Incompatible API Changes:
------------------------------------
- `get_objectives` method on CaseReader now returns a dict-like object.
- Output vector is now locked (read-only) when inside the `apply_nonlinear` method (you shouldn't have been changing it then anyway!).
- default step size for complex-step has been changed to 1e-40.
- Moderate refactor of the CaseReader API. It is now self-consistent.
################################################################################################
Release Notes for OpenMDAO 2.4.0
August 1, 2018
New Features:
--------------
- Better error message when upper and lower have the wrong shape for add_design_var and add_constraint methods.
- pyOptSparseDriver now runs the initial condition for ALPSO and NSGA-II optimizers.
- Normalization in EQConstraintComp and BalanceComp is now optional.
- New Components in the standard library:
- VectorMagnitudeComp
- New Solvers in the standard library:
- BroydenSolver
- New CaseRecording/CaseReading Features:
- <Problem>.load_case() method lets you pull values from a case back into the problem.
- Updated the Case recording format for better performance.
- User can call <Problem>.record_iteration() to save specific cases.
Recording options for this method are separate from driver/solver options.
This is so you can record one (or more) cases manually with *ALL* the variables in it if you want to.
Backwards Incompatible API Changes:
------------------------------------
- The input and output vectors are now put into read-only modes within certain component methods.
NOTE: This REALLY REALLY should not break anyone's models, but it is technically a backwards-incompatible change...
If you were changing values in these arrays when you shouldn't have been, you're going to get an error now.
Fix it... the new error is enforcing correct behavior.
If it was working before, you got lucky.
Bug Fixes:
------------
- Various small bug fixes to check_partials and check_totals.
- ArmijoGoldstein linesearch iteration counter works correctly now.
- the record_derivatives recorder_option now actually does something!
################################################################################################
Release Notes for OpenMDAO 2.3.1
June 20, 2018
2.3.1 is a quick patch release to correct/update a few release-supporting documents such as the 2.3.0 release notes.
However, a few new features did manage to sneak in:
New Features:
-------------
- Support for simultaneous derivatives in reverse mode.
- Added a '-m' option (possible values 'fwd' and 'rev') to the 'openmdao simul_coloring' command to allow coloring in either direction.
- Users are now warned during 'check_config' if no recorders are defined.
################################################################################################
Release Notes for OpenMDAO 2.3.0
June 12, 2018
New Features:
--------------
- Drivers have new `debug_print` option that writes design vars, objective, and constraints to stdout for each iteration.
- Added a DOEDriver for serial and parallel cases to the standard library.
(For people who had adopted DOEDriver early, via github, the following things have changed since initial implementation:)
- The option that controls the parallel behavior for DOEDriver was changed to `procs_per_model` from `parallel`.
- User can provide a CSV file to the DOEDriver to run an arbitrary set of cases.
- Solvers have new `debug_print` option that will report the initial condition of the solver if it fails to converge.
- SimpleGADriver changes:
- Will now compute a population size based on 4*sum(bits) + 1 if pop_size=0.
- Can support models that need more than one processor.
- Problem changes:
- New Problem methods `<problem>.get_val()` and `<problem>.set_val()` allow the user to specify a unit, and we'll convert to the correct unit (or throw an error if the unit is not compatible).
- `list_problem_vars()` method will report all design vars, objectives, and constraints.
- OpenMDAO command line utility now works under MPI.
- ExternalCodeComp has new option, `allowed_return_codes` to specify valid return codes.
- Components that request complex-step for partial derivative checks will now fall back to finite-difference if `force_alloc_complex=False`.
- You can now pass a case_prefix argument to run_model or run_driver to name the cases for case recording.
- Beam example problem now runs 20x faster.
- New Analytic Derivatives Features
- Major re-write of the Feature documentation on the Core Feature, "Working with Analytic Derivatives."
- User can now set AssembledJacobians for linear solvers. (Big speedup for a lot of lower-order or serial problems).
- Automatic calculation of total Jacobian sparsity for fwd derivatives for optimizers that support it (lower compute cost when using SNOPT).
- Automatic simultaneous coloring algorithm for separable problems to speed up derivatives calculations.
- Option for caching of linear solution vectors to speed up linear solves when using iterative solvers.
- check_partials now allows you to use `includes` and `excludes` to limit which components get checked.
- New Components in the standard library:
- CrossProductComp
- DotProductComp
- MatrixVectorProductComp
- ExternalCodeImplicitComp
- EQConstraintComp
- Updates to existing Components in standard library:
- LinearSystemComp has been vectorized.
- KSComp has been vectorized.
- BsplineComp has been vectorized.
- New CaseRecording/CaseReading Features:
- CaseRecorder now saves metadata/options from all groups and components.
- CaseReader now supports `list_inputs` and `list_outputs` methods.
- User can iterate over cases from a CaseReader in either flat or hierarchical modes.
- User can re-load a case back into a model via the `load_case()` method.
Backwards-Compatible API Changes:
---------------------------------
- Changed all instances of `metadata` to `options`. `<system>.metadata` has now been deprecated.
- Class name changes to Components, so all end in "Comp" (old class names have been deprecated):
- MetaModelStructured -> MetaModelStructuredComp
- MetaModelUnStructured -> MetaModelUnStructuredComp
- MultiFiMetaModelUnStructured -> MultiFiMetaModelUnStructuredComp
- ExternalCode -> ExternalCodeComp
- Driver metadata/options can now be set via init args (can still be set as options as well).
- User no longer needs to specify PETSCvector for parallel cases (the framework figures it out now).
- check_totals and check_partials no longer support the `supress_output` argument. Use `out_stream=None` instead.
Backwards-Incompatible API Changes:
-----------------------------------
- `comps` argument in check_partials was replaced with `includes` and `excludes` arguments.
- Re-design of the CaseReader API. Unification of all cases, and simpler iteration over case hierarchies.
- `partial_type` argument for LinearSystemComponent has been removed
- `maxiter` option from BoundsEnforceLS has been removed
Bug Fixes:
-----------
- Fixed bug in component-level FD that caused it to call the model too many times.
- Added proper error check for situation when user creates a variable name containing illegal characters.
- Better error msg when adding objectives or constraints with variables that don't exist under MPI execution.
- Vectorization for MetaModelUnStructuredComp was super-duper broken. It's fixed now.
################################################################################################
Release Notes for OpenMDAO 2.2.1
April 2, 2018
New Features:
--------------
- check_partials() improvements to formatting and clarity. Report of potentially-bad derivatives summarized at bottom of output.
- check_partials() only compares fwd analytic to FD for any components that provide derivatives directly through the Jacobian
argument to compute_partials or linearize. (significantly less output to view now).
- Docs for UnstructuredMetaModel improved.
- pyoptsparse wrapper only calls run_model before optimization if LinearConstraints are included.
- ScipyOptimizerDriver is now smarter about how it handles linear constraints. It caches the derivatives and doesn't recompute them anymore.
- Docs for ExternalCode improved to show how to handle derivatives.
- cache_linear_solution argument to add_design_var, add_constraint, add_objective, allows iterative linear solves to use previous solution as initial guess.
- New solver debugging tool via the `debug_print` option: writes out initial state values, so failed cases can be more easily replicated.
- Added generic KS component.
- Added generic Bspline component.
- Improved error msg when class is passed into add_subsystem.
- Automated Jacobian coloring algorithm now works across all variables (previously, it was just local within a variable).
- Major refactor of the `compute_totals` method to clean up and simplify.
Backwards-Compatible API Changes:
-----------------------------------
N/A
Backwards-Incompatible API changes:
-----------------------------------
N/A
Bug Fixes:
-----------
- compute_totals works without any arguments now (just uses the default set of des_vars, objectives, and constraints)
- UnstructuredMetaModel can now be sub-classed
- Deprecated ScipyOptimizer class wasn't working correctly, but can now actually be used.
################################################################################################
Release Notes for OpenMDAO 2.2.0
February 9, 2018
New Features:
--------------
- `DirectSolver` now tells you which row or column is singular when it gets a singluar matrix error.
- `ScipyOptimizeDriver` now handles linear constraints more efficiently by only computing them one time.
- Added the `openmdao` command line script to allow for model checking, visualization, and profiling without making modifications to the run script.
- Added a `SimpleGADriver` with a basic genetic algorithm implementation.
- Added a `MetaModelStructured` component with a interpolative method.
- New option for derivative calculations: Simultaneous derivatives, useful when you have totally disjoint Jacobians (e.g. diagonal Jacobians).
- Automatic coloring algorithm added to compute the valid coloring scheme for simultaneous derivatives.
- `list_outputs` method updated with new display options, ability to filter variables by residual value, ability to change sorting scheme, and ability to display unit details.
- openmdao citation helper added to the `openmdao` command line script, making it easy to generate the correct bibtex citations based on which classes are being used.
- `NewtonSolver` modified so that maxiter=0 case now will compute residuals, but not do a linear solve (useful for debugging nonlinear errors).
Backwards-Compatible API Changes:
-----------------------------------
- Changed `ScipyOptimizer` to `ScipyOptimizeDriver` for consistency (deprecated older class).
- Renamed `MetaModel` to `MetaModelUnstructured` to allow for new structured interpolant (deprecated old class).
- Renamed `PetscKSP` to `PETScKrylov` for consistency. (deprecated old class).
- Renamed `ScipyIterativeSolver` to `ScipyKrylov` for consistency. (deprecated old class).
Backwards-Incompatible API changes:
-----------------------------------
- CaseRecorder now uses variables' promoted names for storing and accessing data.
- Removed `DeprecatedComp` from codebase.
- `list_residuals` method on Groups and Components removed.
Bug Fixes:
-----------
- Fixed error check for duplicate connections to a single input from multiple levels of the hierarchy
################################################################################################
Release Notes for OpenMDAO 2.1.0
December 7, 2017
New Features:
-------------
- Configure setup hook allowing changing of solver settings after hierarchy tree is instantiated
- Component metadata system for specifying init_args with error checking
- Parallel Groups
- Units Reference added to the Docs
- Case recording now records all variables by default
- `openmdao` console script that can activate useful debugging features
(e.g. view_model) without editing the run script
- Scipy COBYLA optimizer converts des var bounds to constraints (the algorithm doesn't natively handle bounds)
- StructuredMetaModel component offers a simple spline interpolation routine for structured data
Backwards Compatible API Changes:
-----------------------------------
- `NonlinearRunOnce` changed `NonLinearRunOnce` for consistency (old class deprecated)
- `types_` argument to `self.metadata.declare` changed to `types`. (old argument deprecated)
- `types` and `values` arguments to `self.metadata.declare`
- `BalanceComp` has a `use_mult` argument to control if it has a `mult` input, defaulting to false
(the mult input isn't used most of the time)
- Renamed `MetaModel` to `UnstructuredMetaModel` and `MultiFiMetaModel` to `UnStructuredMultiFiMetaModel`
Backwards Incompatible API changes:
-----------------------------------
- Case Recording options API updated with `.recording_options` attribute on Driver, Solver, and System classes
- `get_subsystem` changed to a private method, removed from public API of System
- `check_partials` now has a `method` argument that controls which type of check
Bug Fixes:
-----------
- Improved error msg on a corner case for when user doesn't declare a partial derivative
- Fixed docs embedding bug when `<>` included in the output text
################################################################################################
Release Notes for OpenMDAO 2.0.2
October 19, 2017
- Fixing further packaging errors by updating packaging information.
- Added tutorials for derivatives of explicit and implicit components.
################################################################################################
Release Notes for OpenMDAO 2.0.1
October 19, 2017
- Attempting to fix test errors that were happening by updating the packaging information.
################################################################################################
Release Notes for OpenMDAO 2.0.0
October 19, 2017
First public release of 2.0.0.
New Features:
--------------
(first release... so EVERYTHING!)
- Drivers:
- ScipyOptimizer
- PyoptSparseOptimizer
- Solvers:
- Nonlinear:
- NonlinearBlockGS
- NonlinearBlockJac
- NonlinearRunOnce
- NewtonSolver
- Linear:
- LinearBlockGS
- LinearBlockJac
- LinearRunOnce
- DirectSolver
- PetscKSP
- ScipyIterativeSolver
- LinearUserDefined
- LineSearch
- AmijoGoldsetinLS
- BoundsEnforceLS
- Components:
- MetaModel
- ExecComp
- BalanceComp
- LinearSystemComp
- General Capability:
- Implicit and Explicit Components
- Serial and Parallel Groups
- Parallel distributed components (components that need an MPI comm)
- Unit conversions
- Variable scaling
- Specifying component metadata
- Analytic derivatives
Currently Missing Features that existed in 1.7.3:
-------------------------------------------------
- Pass-by-object variables (anything that is not a float)
- File Variables
- automatic ordering of groups/components based on connections
- Design of Experiments Driver (DOE)
- Parallel Finite Difference
- File-Wrapping utility library & External Code Component
- Approximate active set constraint calculation skipping
- Brent Solver
- CaseRecorders for CSV, HDF5, and Dump formats
Bug Fixes
----------
N/A