Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes at runtime #6

Open
matthiaskoenig opened this issue Jul 12, 2017 · 4 comments
Open

Changes at runtime #6

matthiaskoenig opened this issue Jul 12, 2017 · 4 comments

Comments

@matthiaskoenig
Copy link
Collaborator

https://sourceforge.net/p/sed-ml/feature-requests/3/

from @LENOV
At the moment, the changes applied to a model are meant to apply before performing the tasks. We need to be able to describe changes applied to a model variable during simulation. This is in particular useful for the computeChange. Use cases are: conditional change of a variable during simulation, synchronisation of different simulations (with variable transformation) etc.

The simplest way to do that would be to add an attribute on the change classes that would have values "initial" or "runtime".

NB: That is different from changing the simulation set-up (e.g. algorithm parameters).

@matthiaskoenig
Copy link
Collaborator Author

I could imagine handling this via something like events.
One could have something like simulation events which allow to define more complicated simulation setups.

@ghost
Copy link

ghost commented Jul 12, 2017

Not really. You want to synchronise all the time. What I mean to fetching the value of a variable in a model from another model -at all time-.

This is needed to encode multi-scale models such as the Mycoplasma one etc.

Of course, in future development, we should provide mechanisms to precise when to synchronise (continuous, discrete, event-based, rollback based etc, and with which characteristics).

@fbergmann
Copy link
Member

fbergmann commented Jul 12, 2017 via email

@ghost
Copy link

ghost commented Jul 12, 2017

[Maybe I misunderstood what Frank suggests. Sorry if this is the case]

I think that does not work because you assume the model(s) are simulated using a single simulator. That was the case of the Karr model because he implemented everything in MatLab. But you cannot use that for this model:
http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0066811
Here one model is biochemical, and can be simulated using SBML-supporting tools (we tested SOSlib, COPASI and ECell3). The other is electrophysiological, and can be simulated using NeuroML-supported tools, in our case NEURON. The values of one variable in each model is computed using the values of variables simulated in the other model (see section "Variables Exchange and Transformation").

In some cases, the synchronisation events are known, so we could in theory use repeated simulations, with change of variable values before each step. However, in most cases, the time of synchronisation is not known, or is "continuous" (meaning as frequent as we can afford without slowing down the simulation too much)

@luciansmith luciansmith added the L2 label Mar 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants