cwrowley/romnet

Implement simple autoencoder-based reduced-order model

Closed this issue · 7 comments

We should implement the simple autoencoder-based reduced-order model: z_dot = Dpsi_e(psi_d(z)) f(psi_d(z)). This implementation should be able to use the Timestepper class in model.py.

@o2i75nyv942757 what were you thinking of calling this new class? On my board we'd called it SlowROM but that was just a placeholder. What do you think about LiftedROM, since it lifts the latent variable back up to the full (original) state space? Other ideas?

Of course, if this class inherits from Model, then instances will automatically be able to use timesteppers.

@cwrowley I just saw your comment. My other idea was to call it NetworkROM since it should be the only ROM model that uses the autoencoder in full. However, I do feel like the name you suggested has more meaning.

Actually I like your name NetworkROM. And it's less cumbersome than NetworkLiftedROM, so maybe go with NetworkROM? Then we could let LiftedROM be the model where you project onto subspaces (instead of LinearLiftedROM)? I'm not crazy about the name LinearLiftedROM, because the resulting models are not linear. So I'd prefer the term "Subspace" to "Linear". But of course there are other ways to implement project onto subspaces (such as what we've already done for bilinear systems), so maybe the term LiftedROM is best for that.

I will do NetworkROM. I also like SubspaceROM more than LiftedROM. Do you agree? If so, I will change it to SubspaceROM.

I actually prefer LiftedROM to SubspaceROM, because to me the "standard" way of doing reduced-order models is to project onto subspaces (for instance, this is what is always done for POD, balanced truncation, and in our BilinearModel class), and the distinguishing thing about this particular class is not that it projects onto subspaces, but rather that it doesn't actually compute a reduced-order model at all, and instead lifts back up to the full system. (By contrast, the distinguishing characteristic of NetworkROM is that it does this projection onto a nonlinear manifold.) So I prefer LiftedROM to SubspaceROM myself.

I see your point. I will put in LiftedROM.

Closed by #14