FlowModelingControl / flowtorch

flowTorch - a Python library for analysis and reduced-order modeling of fluid flows
GNU General Public License v3.0
131 stars 45 forks source link

Parametric ROM ? #32

Closed jacktang closed 2 years ago

jacktang commented 2 years ago

Hello,

Is it possible to build parametric ROM using CMN? In my case, the prediction is not only depends on the init_state, but also the other_params. Some codes looks like below:

cnm.predict(data_matrix[:, :5], other_params, end_time=1.0, step_size=0.1)
cnm.predict_reduced(reduced_state[:, :5], other_params, 1.0, 0.1)

And my current idea is going to to create the new class, say ParametricCMN which inherit from CMN, and then customize the new transition_prob, and put the other_params transition_prob. Is that right direction?

AndreWeiner commented 2 years ago

Hi, extending the ROM base class to allow for parametrized ROMs is on my TODO list. Until then the suggested way of inheriting from CNM is a reasonable idea. As you mentioned already, you will have to overwrite the constructor and the *predict** functions in the derived class. On the modeling side, extending CNM is not straightforward. Do your parameters potentially change over time (e.g. in a flow-control setting)? I would recommend getting in touch with @rsemaan, who has supervised some student projects on this matter. Cheers, Andre

rsemaan commented 2 years ago

Hi, As Andre mentioned, extending CNM to a parametric setting is not a straightforward manner. There are many details one must consider. In fact, it is a current research activity in my team. I am hoping we will have a control-oriented (parametric) version released in a few months.

Regards, Richard

jacktang commented 2 years ago

@AndreWeiner @rsemaan Thanks for the response!

Do your parameters potentially change over time (e.g. in a flow-control setting)?

Yes, this the case I am now working on.

And yes the idea (using cmn) mentioned above is quite different from the implementation of pydmd, I am studying the paper and code, and try to apply on my case

AndreWeiner commented 2 years ago

Alright, good luck with the experimentation/implementation! I'll close this issue for now, but feel free to re-open it if needed. Cheers, Andre