10 #include "../shell/Shell.h"
17 #include "../mesh/VoxelJunction.h"
44 Id tab = s->
doCreate(
"StimulusTable", kin,
"tab", 1 );
45 Id T = pools[i++] = s->
doCreate(
"BufPool", kin,
"T", 1 );
46 Id A = pools[i++] = s->
doCreate(
"Pool", kin,
"A", 1 );
47 Id B = pools[i++] = s->
doCreate(
"Pool", kin,
"B", 1 );
48 Id C = pools[i++] = s->
doCreate(
"Pool", kin,
"C", 1 );
49 Id D = pools[i++] = s->
doCreate(
"Pool", kin,
"D", 1 );
50 Id E = pools[i++] = s->
doCreate(
"Pool", kin,
"E", 1 );
51 Id tot1 = pools[i++] = s->
doCreate(
"BufPool", kin,
"tot1", 1 );
52 Id sum = s->
doCreate(
"Function", tot1,
"func", 1 );
54 Id e1Pool = s->
doCreate(
"Pool", kin,
"e1Pool", 1 );
55 Id e2Pool = s->
doCreate(
"Pool", kin,
"e2Pool", 1 );
57 Id cplx = s->
doCreate(
"Pool", e1,
"cplx", 1 );
58 Id e2 = s->
doCreate(
"MMenz", e2Pool,
"e2", 1 );
61 Id plots = s->
doCreate(
"Table2", kin,
"plots", 7 );
64 s->
doAddMsg(
"Single", tab,
"output", T,
"setN" );
66 s->
doAddMsg(
"Single", r1,
"sub", T,
"reac" );
67 s->
doAddMsg(
"Single", r1,
"sub", A,
"reac" );
68 s->
doAddMsg(
"Single", r1,
"prd", B,
"reac" );
71 s->
doAddMsg(
"Single", A,
"nOut",
ObjId( sumInput, 0, 0 ),
"input" );
72 s->
doAddMsg(
"Single", B,
"nOut",
ObjId( sumInput, 0, 1 ),
"input" );
73 s->
doAddMsg(
"Single", sum,
"valueOut", tot1,
"setN" );
75 s->
doAddMsg(
"Single", r2,
"sub", B,
"reac" );
76 s->
doAddMsg(
"Single", r2,
"sub", B,
"reac" );
77 s->
doAddMsg(
"Single", r2,
"prd", C,
"reac" );
79 s->
doAddMsg(
"Single", e1,
"sub", C,
"reac" );
80 s->
doAddMsg(
"Single", e1,
"enz", e1Pool,
"reac" );
81 s->
doAddMsg(
"Single", e1,
"cplx", cplx,
"reac" );
82 s->
doAddMsg(
"Single", e1,
"prd", D,
"reac" );
84 s->
doAddMsg(
"Single", e2,
"sub", D,
"reac" );
85 s->
doAddMsg(
"Single", e2Pool,
"nOut", e2,
"enzDest" );
86 s->
doAddMsg(
"Single", e2,
"prd", E,
"reac" );
102 vector< double > stim( 100, 0.0 );
104 for (
unsigned int i = 0; i< 100; ++i ) {
105 stim[i] = vol *
NA * (1.0 + sin( i * 2.0 *
PI / 100.0 ) );
115 for (
unsigned int i = 0; i < 7; ++i )
117 "requestOut", pools[i],
"getConc" );
120 for (
unsigned int i = 11; i < 18; ++i )
143 Id plots(
"/kinetics/plots" );
153 cout <<
"." << flush;
190 Id ksolve = s->
doCreate(
"Ksolve", kin,
"ksolve", 1 );
191 Id stoich = s->
doCreate(
"Stoich", ksolve,
"stoich", 1 );
210 stoich,
"columnIndex" );
212 stoich,
"rowStart" );
214 assert( rowStart.size() == n + 1 );
215 assert( entries.size() == colIndex.size() );
216 assert( entries.size() == 13 );
217 assert( entries[0] == -1 );
218 assert( entries[1] == 1 );
219 assert( entries[2] == -2 );
220 assert( entries[3] == 1 );
221 assert( entries[4] == -1 );
222 assert( entries[5] == 1 );
223 assert( entries[6] == -1 );
224 assert( entries[7] == 1 );
225 assert( entries[8] == -1 );
226 assert( entries[9] == 1 );
227 assert( entries[10] == 1 );
228 assert( entries[11] == -1 );
229 assert( entries[12] == -1 );
232 cout <<
"." << flush;
241 Id ksolve = s->
doCreate(
"Ksolve", kin,
"ksolve", 1 );
242 Id stoich = s->
doCreate(
"Stoich", ksolve,
"stoich", 1 );
246 s->
doUseClock(
"/kinetics/ksolve",
"process", 4 );
251 Id plots(
"/kinetics/plots" );
252 for (
unsigned int i = 0; i < 7; ++i ) {
256 "tsr2.plot", ss.str() );
259 cout <<
"." << flush;
268 double volume = 1e-21;
273 Id e1(
"/kinetics/e1Pool/e1" );
276 vector< double > stim( 100, 0.0 );
277 for (
unsigned int i = 0; i< 100; ++i ) {
278 stim[i] = volume *
NA * (1.0 + sin( i * 2.0 *
PI / 100.0 ) );
283 Id gsolve = s->
doCreate(
"Gsolve", kin,
"gsolve", 1 );
284 Id stoich = s->
doCreate(
"Stoich", gsolve,
"stoich", 1 );
289 s->
doUseClock(
"/kinetics/gsolve",
"process", 4 );
294 Id plots(
"/kinetics/plots" );
295 for (
unsigned int i = 0; i < 7; ++i ) {
299 "tsr3.plot", ss.str() );
302 cout <<
"." << flush;
309 double args[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
312 double ans = ft( args, 2.0 );
314 vector< unsigned int > mol( 2, 0 );
319 ans = ft( args, 10.0 );
324 ans = ft( args, 2.0 );
326 cout <<
"." << flush;
void setExpr(const string &e)
void doStart(double runtime, bool notify=false)
void doSetClock(unsigned int tickNum, double dt)
unsigned int value() const
void setReactantIndex(const vector< unsigned int > &mol)
static bool set(const ObjId &dest, const string &field, A arg)
Id doCreate(string type, ObjId parent, string name, unsigned int numData, NodePolicy nodePolicy=MooseBlockBalance, unsigned int preferredNode=1)
bool doubleEq(double x, double y)
ObjId doAddMsg(const string &msgType, ObjId src, const string &srcField, ObjId dest, const string &destField)
void doUseClock(string path, string field, unsigned int tick)
static A get(const ObjId &dest, const string &field)
static bool set(const ObjId &dest, const string &field, A1 arg1, A2 arg2)