rom-operator-inference-Python3
rom-operator-inference-Python3 copied to clipboard
Shifted Operator Inference
New feature: Shifted Operator Inference from the paper Predicting solar wind streams from the inner-heliosphere to Earth via shifted operator inference by Opal Issan (@opaliss) and Boris Kramer (@bokramer). This strategy shifts the state snapshots to a moving coordinate frame. In the paper, this is notated in Eq. (16),
\mathbf{u}_{i}
\approx u(\mathbf{x},t_{i})
\mapsto \tilde{u}(\tilde{\mathbf{x}}(\mathbf{x}, t_{i}), t_{i})
\approx \tilde{\mathbf{u}}_{i}
where
\tilde{\mathbf{x}}(\mathbf{x},t) = \mathbf{x} + \mathbf{c}(t).
@opaliss will take the lead on this. Essentially this will involve writing a new transformer class, perhaps WaveshiftTransformer? See opinf.pre._shiftscale.ShiftScaleTransformer for another transformer to compare to. Implementation steps:
- [ ] Create a new file in
/src/opinf/pre/. - [ ] Define the class so it inherits from
opinf.pre.TransformerTemplateand implementsfit(),transform(), andinverse_transform(). - [ ] Import the new class in
/src/opinf/pre/__init__.py. - [ ] Write unit tests for the new class in a new file in
/tests/pre/. - [ ] Compile the docs (
make docs) and check that the automatically generated documentation page looks good. - [ ] If possible, demonstrate using the class in a new Jupyter notebook tutorial in
docs/source/tutorials/.