To be able to couple "any" model, the CNODE structure needs to go to one level of abstraction beyond:
the 'communication' between the models has to be transformed into a modular element that the user can control, not taken for granted as in the current implementation.
At the same time CNODE can also be enhanced by allowing the user to explicitly define some differentiable operations that need to be done before computing the force, and example of which is the interpolation on different grids.
In brief:
[x] accept explicit pre/post-force computation operation from the user
[ ] design 'communication' operations between models
To be able to couple "any" model, the
CNODE
structure needs to go to one level of abstraction beyond: the 'communication' between the models has to be transformed into a modular element that the user can control, not taken for granted as in the current implementation.At the same time
CNODE
can also be enhanced by allowing the user to explicitly define some differentiable operations that need to be done before computing the force, and example of which is the interpolation on different grids.In brief: