Large overhaul of the backend so that models are initialized with a list of operators.
This introduces many API changes, so the package version is bumped from 0.4.6 to 0.5.0.
Overhauled the operators module so that each operator class is responsible for its portion of the Operator Inference data matrix.
New StateInputOperator for state-input bilinear interactions, $\hat{\mathbf{N}}[\mathbf{u}\otimes\hat{\mathbf{q}}]$.
Operator classes now have state_dimension and input_dimension properties.
Operator classes must implement datablock() and operator_dimension() methods to facilitate operator inference.
Renamed roms to models and updated class names:
ContinuousOpInfROM to ContinuousModel
DiscreteOpInfROM to DiscreteModel
SteadyOpInfROM to SteadyModel
Same for interpolated models.
Model classes now take a list of operators in the constructor. String shortcuts such as "cAH" are still valid, similar to the previous modelform argument. The known_operators argument has been removed from the fit() method.
Model classes no longer have a basis attribute.
The basis argument has been removed from the fit() method.
The compress() and decompress() methods have been removed from model classes.
The dimensions n and r have been replaced with state_dimension; m is now input_dimension.
Moved time derivative estimation tools to the new ddt submodule.
Moved Kronecker product utilities to static methods of nonparametric operators.
utils.kron2c() is now QuadraticOperator.ckron()
utils.kron2c_indices() is now QuadraticOperator.ckron_indices()
utils.compress_quadratic() is now QuadraticOperator.compress_entries()
utils.expand_quadratic() is now QuadraticOperator.expand_entries()
utils.kron3c() is now CubicOperator.ckron()
utils.kron3c_indices() is now CubicOperator.ckron_indices()
utils.compress_cubic() is now CubicOperator.compress_entries()
utils.expand_cubic() is now CubicOperator.expand_entries()
Significant rewrite of documentation, generally leaning more into the API as defined in code docstrings.
Biggest feature addition is the inclusion of state-input bilinear operators, but this also sets the stage for future development in several ways. This update makes progress toward #48.
Large overhaul of the backend so that models are initialized with a list of operators. This introduces many API changes, so the package version is bumped from
0.4.6
to0.5.0
.operators
module so that each operator class is responsible for its portion of the Operator Inference data matrix.StateInputOperator
for state-input bilinear interactions, $\hat{\mathbf{N}}[\mathbf{u}\otimes\hat{\mathbf{q}}]$.state_dimension
andinput_dimension
properties.datablock()
andoperator_dimension()
methods to facilitate operator inference.roms
tomodels
and updated class names:ContinuousOpInfROM
toContinuousModel
DiscreteOpInfROM
toDiscreteModel
SteadyOpInfROM
toSteadyModel
"cAH"
are still valid, similar to the previousmodelform
argument. Theknown_operators
argument has been removed from thefit()
method.basis
attribute.basis
argument has been removed from thefit()
method.compress()
anddecompress()
methods have been removed from model classes.n
andr
have been replaced withstate_dimension
;m
is nowinput_dimension
.ddt
submodule.utils.kron2c()
is nowQuadraticOperator.ckron()
utils.kron2c_indices()
is nowQuadraticOperator.ckron_indices()
utils.compress_quadratic()
is nowQuadraticOperator.compress_entries()
utils.expand_quadratic()
is nowQuadraticOperator.expand_entries()
utils.kron3c()
is nowCubicOperator.ckron()
utils.kron3c_indices()
is nowCubicOperator.ckron_indices()
utils.compress_cubic()
is nowCubicOperator.compress_entries()
utils.expand_cubic()
is nowCubicOperator.expand_entries()
Biggest feature addition is the inclusion of state-input bilinear operators, but this also sets the stage for future development in several ways. This update makes progress toward #48.