In [1]:
import matplotlib.pyplot as plt
from pygom import Transition, TransitionType, ode_utils, SimulateOde
import numpy
In [2]:
# setup the dask cluster
from dask.distributed import Client, progress
client = Client(n_workers=4, threads_per_worker=1)
In [3]:
stateList = ['a', 'x', 'y', 'b']
paramList = ['k0', 'k1', 'k2']
transitionList = [
Transition(origin='a', destination='x', equation='k0*a*x', transition_type=TransitionType.T),
Transition(origin='x', destination='y', equation='k1*x*y', transition_type=TransitionType.T),
Transition(origin='y', destination='b', equation='k2*y', transition_type=TransitionType.T)
]
In [4]:
ode = SimulateOde(stateList, paramList, transition=transitionList)
x0 = [150.0, 10.0, 10.0, 0.0]
t = numpy.linspace(0, 15, 100)
ode.initial_values = (x0, t[0])
ode.parameters = [0.01, 0.1, 1.0]
#solution = ode.integrate(t[1::])
#ode.plot()
In [5]:
simX, simT = ode.simulate_jump(t[1::], 50, full_output=True, parallel=True)
In [6]:
ode.plot(simX, simT)
In [7]:
client
Out[7]: