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¶
- Getting Started
- OM Tools Group
- OM Tools Library of Operations
- Unary Expressions
- Array Operations
- Minimum
- Maximum
- Average
- Average of a Single Vector
- Average of a Single Matrix
- Average of a Single Tensor
- Average of Multiple Vectors
- Average of Multiple Matrices
- Average of Multiple Tensors
- Average of a Single Matrix along Columns
- Average of a Single Matrix along Rows
- Average of Multiple Matrices along Columns
- Average of Multiple Matrices along Rows
- Sum
- Array Expansion and Contraction
- Reshape
- Reorder
- Vector Algebra
- Linear Algebra
- Pnorm
- Transpose
- Inner
- Outer
- Matrix-Vector Multiplication
- Matrix-Matrix Multiplication
- Einstein Summation Numpy API
- Vector-Vector Inner Product using Einsum
- Vector-Vector Inner Product using Einsum with Sparse Partials
- Tensor-Vector Inner Product using Einsum
- Tensor-Vector Inner Product using Einsum with Sparse Partials
- Vector-Vector Outer Product using Einsum
- Vector-Vector Outer Product using Einsum with Sparse Partials
- Tensor-Vector Outer Product using Einsum
- Tensor-Vector Outer Product using Einsum with Sparse Partials
- Reordering a Matrix using Einsum
- Reordering a Matrix using Einsum with Sparse Partials
- Reordering a Tensor using Einsum
- Reordering a Tensor using Einsum with Sparse Partials
- Single Vector Summation using Einsum
- Single Vector Summation using Einsum with Sparse Partials
- Single Tensor Summation using Einsum
- Single Tensor Summation using Einsum with Sparse Partials
- Multiple Vector Summation using Einsum
- Multiple Vector Summation using Einsum with Sparse Partials
- Einstein Summation New API
- Vector-Vector Inner Product using Einsum
- Vector-Vector Inner Product using Einsum with Sparse Partials
- Tensor-Vector Inner Product using Einsum
- Tensor-Vector Inner Product using Einsum with Sparse Partials
- Vector-Vector Outer Product using Einsum
- Vector-Vector Outer Product using Einsum with Sparse Partials
- Tensor-Vector Outer Product using Einsum
- Tensor-Vector Outer Product using Einsum with Sparse Partials
- Reordering a Matrix using Einsum
- Reordering a Matrix using Einsum with Sparse Partials
- Reordering a Tensor using Einsum
- Reordering a Tensor using Einsum with Sparse Partials
- Single Vector Summation using Einsum
- Single Vector Summation using Einsum with Sparse Partials
- Single Tensor Summation using Einsum
- Single Tensor Summation using Einsum with Sparse Partials
- Multiple Vector Summation using Einsum
- Multiple Vector Summation using Einsum with Sparse Partials
- OM Tools Developer API