This paper describes the first version (v1.0) of PyOED, a highly extensible
scientific package that enables developing and testing model-constrained
optimal experimental design (OED) for inverse problems. Specifically, PyOED
aims to be a comprehensive Python toolkit for model-constrained OED. The
package targets scientists and researchers interested in understanding the
details of OED formulations and approaches. It is also meant to enable
researchers to experiment with standard and innovative OED technologies with a
wide range of test problems (e.g., simulation models). Thus, PyOED is
continuously being expanded with a plethora of Bayesian inversion, DA, and OED
methods as well as new scientific simulation models, observation error models,
and observation operators. These pieces are added such that they can be
permuted to enable testing OED methods in various settings of varying
complexities. The PyOED core is completely written in Python and utilizes the
inherent object-oriented capabilities; however, the current version of PyOED is
meant to be extensible rather than scalable. Specifically, PyOED is developed
to ``enable rapid development and benchmarking of OED methods with minimal
coding effort and to maximize code reutilization.'' PyOED will be continuously
expanded with a plethora of Bayesian inversion, DA, and OED methods as well as
new scientific simulation models, observation error models, and observation
operators. This paper provides a brief description of the PyOED layout and
philosophy and provides a set of exemplary test cases and tutorials to
demonstrate how the package can be utilized.Comment: 26 pages, 7 figures, 21 code snippet