OM Tools
========
Introduction
------------
``omtools`` (i.e. OpenMDAO Tools) provides an interface to `OpenMDAO
framework `_, making it easier for the user to
define ``Group`` subclasses by alowing the user to write expressions
without the need to define a new ``Component`` subclass or provide
analytic derivatives.
The result is that ``omtools`` ``Group`` subclasses are easier to read
and write, with assurance that analytic derivatives for their models are
correct.
Benefits
--------
- OpenMDAO ``Group`` subclass definitions are easier to read and
write.
- Provides stock ``Component`` subclasses with pre-defined analytic
partial derivatives.
- Prevents unnecessary feedback that can result from manually adding
subsystems out of order.
In addition to the above benefits, ``omtools`` has a stable API, so any
improvements in efficiency for the models that ``omtools`` generates are
performance improvements for all user defined models.
This means that users can update ``omtools`` and expect performance
improvements to their models without making any changes to their models.
How it Works
------------
``omtools`` stores a graph of nodes and edges representing
variables and their dependencies, analyzing the graph, and directing
OpenMDAO to construct corresponding ``Component`` objects and issuing
the necessary connections.
The source code is hosted on `GitHub `_.
Documentation
-------------
.. toctree::
:maxdepth: 4
:titlesonly:
_src_docs/getting_started.rst
_src_docs/api/omtools_group.rst
_src_docs/api/library_of_operations.rst
_src_docs/api/omtools_backend.rst