In [ ]:
import numpy as np
import matplotlib.pyplot as plt
from chempy import ReactionSystem, Substance
from chemreac import ReactionDiffusion
from chemreac.integrate import run
from chemreac.util.plotting import plot_C_vs_x
%matplotlib notebook
In [ ]:
rsys = ReactionSystem.from_string("""
A -> B; 3
-> A; Radiolytic(2)
""", substance_factory=Substance, checks=())
rsys
In [ ]:
N = 128
fields = [[0]*N]
fields[0][0] = 1
rd = ReactionDiffusion.from_ReactionSystem(rsys, N=N, fields=fields, D=rsys.as_per_substance_array({'A': 4e-9, 'B': 0}))
In [ ]:
tout = np.logspace(-12, 3)
integr = run(rd, C0=[1e-99]*N*2, tout=tout)
In [ ]:
plot_C_vs_x(rd, tout, integr.Cout, rd.substance_names, -1)
In [ ]:
from ipywidgets import interact
from chemreac.util.anim import animate_C_vs_x
In [ ]:
fig, ax = plt.subplots(1, 1, figsize=(5, 2))
ax.set_xscale('log')
ax.set_yscale('log')
ax.set_ylim([1e-50, 1e4])
update = animate_C_vs_x(integr, ax)
interact(update, ti=(0, integr.tout.size-1))
In [ ]: