123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541 |
- /****************************************************************************
- * Test 03: All surface rxn types, simple test of equilibrium and reaction
- * rates.
- *
- * A quantitative test of the basic *-surface reaction types (uni, bi, tri)
- * in various combinations with surface (and some volume) molecules.
- *
- * Note that the bi-directional pathways are in here twice. This is
- * so that they can be tested via both the non-trimolecular and trimolecular
- * code pathways. The latter is accomplished by adding a bogus trimolecular
- * reaction involving the relevant molecules.
- *
- *
- * Author: Jed Wing <[email protected]>, Boris Kaminsky <[email protected]>
- * Date: 2008-12-05, 2012-06-20
- ****************************************************************************/
- WARNINGS
- {
- ALL_WARNINGS = WARNING
- }
- basename = "03-surface"
- countdir = "dat/" & basename & "/"
- vizdir = "./viz_dat/" & basename & "/"
- iterations = 10000
- timestep = 1.0e-6
- boxdims = 0.25
- voldiffconst = 2.0e-6
- surfdiffconst = 2.0e-6
- num_u = 1000
- num_b = 1000
- num_t = 1000
- num_vvs = num_t
- sa = 6*(2*boxdims)^2
- boxvol = 8*boxdims*boxdims*boxdims
- eq_t = num_t / 2
- eq_b = num_b / 2
- rf_ss = 0.1*1e6 * (sa / eq_b) / eq_b
- rf_vss = 0.1*1e6 * (sa / eq_t) * (boxvol / eq_t) / eq_t
- // Set reverse rates to expect approx 1 rxn every 10 timesteps
- rr_u = 2.0e2
- rr_b = 2.0e2
- rr_t = 2.0e2
- rf_sss = rr_t * (sa / eq_t) * (sa / eq_t)
- // Compute forward rates to give equilibrium of 50% reacted
- c_b = (num_b / 2. / boxvol) * 1e15 / 6.022e23
- c_t = (num_t / 2. / boxvol) * 1e15 / 6.022e23
- rf_u = rr_u
- rf_b = rr_b / c_b
- rf_t = rr_t / c_t / c_t
- /*printf("rf_t = %g\n", rf_t) */
- VACANCY_SEARCH_DISTANCE = 2
- ITERATIONS = iterations
- TIME_STEP = timestep
- TIME_STEP_MAX = 1.0
- INCLUDE_FILE = "volmols.mdl"
- INCLUDE_FILE = "surfmols.mdl"
- /* extra molecules for simultaneous multiple reactions */
- DEFINE_MOLECULES {
- D_t1 {DIFFUSION_CONSTANT_2D = surfdiffconst }
- D_t2 {DIFFUSION_CONSTANT_2D = surfdiffconst }
- D_t3 {DIFFUSION_CONSTANT_2D = surfdiffconst }
- E_t1 {DIFFUSION_CONSTANT_2D = 0 }
- D_t4 {DIFFUSION_CONSTANT_2D = surfdiffconst }
- D_t5 {DIFFUSION_CONSTANT_2D = surfdiffconst }
- D_t6 {DIFFUSION_CONSTANT_2D = surfdiffconst }
- E_t4 {DIFFUSION_CONSTANT_2D = 0 }
- }
- DEFINE_REACTIONS {
- /* 0 Volume reactants */
- S_u, -> B_u, [rf_u] : fwd_u /* unimol */
- S_b1, + S_b2, -> B_b, [rf_ss] : fwd_b /* bimol */
- S_bt1, + S_bt2, -> B_bt, [rf_ss] : fwd_bt /* bimol (via trimol code) */
- S_b3, + S_b4to, -> B_b2, [rf_ss] : fwd_b2 /* bimol (1 target only) */
- S_bt3, + S_bt4to, -> B_bt2, [rf_ss] : fwd_bt2 /* bimol (1 target only, via trimol code) */
- S_t1, + S_t2, + S_t3, -> B_t, [rf_sss] : fwd_t /* trimol */
- S_t4, + S_t5to, + S_t6, -> B_t2, [rf_sss] : fwd_t2 /* trimol (1 target only) */
- S_t7, + S_t8to, + S_t9to, -> B_t3, [rf_sss] : fwd_t3 /* trimol (2 target only) */
- B_u, -> S_u, [rr_u] : rev_u
- B_b, -> S_b1, + S_b2, [rr_b] : rev_b
- B_bt, -> S_bt1, + S_bt2, [rr_b] : rev_bt
- B_b2, -> S_b3, + S_b4to, [rr_b] : rev_b2
- B_bt2, -> S_bt3, + S_bt4to, [rr_b] : rev_bt2
- B_t, -> S_t1, + S_t2, + S_t3, [rr_t] : rev_t
- B_t2, -> S_t4, + S_t5to, + S_t6, [rr_t] : rev_t2
- B_t3, -> S_t7, + S_t8to, + S_t9to, [rr_t] : rev_t3
- /* 1 Volume reactant */
- V_b1, + S_vb2' -> B_vb' [rf_b] : fwd_vb /* bimol */
- V_bt1, + S_vbt2' -> B_vbt' [rf_b] : fwd_vbt /* bimol (via trimol code) */
- V_b3, + S_vb4to' -> B_vb2' [rf_b] : fwd_vb2 /* bimol (1 target only) */
- V_bt3, + S_vbt4to' -> B_vbt2' [rf_b] : fwd_vbt2 /* bimol (1 target only, via trimol code) */
- V_t1, + S_vt2' + S_vt3' -> B_vt' [rf_vss] : fwd_vt /* trimol */
- V_t4, + S_vt5to' + S_vt6' -> B_vt2' [rf_vss] : fwd_vt2 /* trimol (1 target only) */
- V_t7, + S_vt8to' + S_vt9to' -> B_vt3' [rf_vss] : fwd_vt3 /* trimol (2 target only) */
- B_vb' -> V_b1, + S_vb2' [rr_b] : rev_vb
- B_vbt' -> V_bt1, + S_vbt2' [rr_b] : rev_vbt
- B_vb2' -> V_b3, + S_vb4to' [rr_b] : rev_vb2
- B_vbt2' -> V_bt3, + S_vbt4to' [rr_b] : rev_vbt2
- B_vt' -> V_t1, + S_vt2' + S_vt3' [rr_t] : rev_vt
- B_vt2' -> V_t4, + S_vt5to' + S_vt6' [rr_t] : rev_vt2
- B_vt3' -> V_t7, + S_vt8to' + S_vt9to' [rr_t] : rev_vt3
- /* 2 Volume reactants */
- V_vt1, + V_vt2, + S_vvt3' -> B_vvt' [rf_t/10] : fwd_vvt /* trimol */
- V_vt4, + V_vt5to, + S_vvt6' -> B_vvt2' [rf_t/10] : fwd_vvt2 /* trimol (1 target only) */
- V_vt7, + V_vt8to, + S_vvt9to' -> B_vvt3' [rf_t/10] : fwd_vvt3 /* trimol (2 target only) */
- B_vvt' -> V_vt1, + V_vt2, + S_vvt3' [rr_t/10] : rev_vvt
- B_vvt2' -> V_vt4, + V_vt5to, + S_vvt6' [rr_t/10] : rev_vvt2
- B_vvt3' -> V_vt7, + V_vt8to, + S_vvt9to' [rr_t/10] : rev_vvt3
- /* Dummy reactions to trick mcell into using trimol. pathway for bimol rxn. */
- V_bt1 + V_a + V_a -> V_a [1e2]
- V_bt3 + V_a + V_a -> V_a [1e2]
- S_bt1; + S_a; + S_a; -> S_a; [1e2]
- S_bt3; + S_a; + S_a; -> S_a; [1e2]
-
- /* 3 surface reactants - trimol reaction */
- /* multiple simultaneous reactions */
- D_t1, + D_t2, + D_t3, -> E_t1, [rf_sss] : fwd_D_t1 /* (1) */
- D_t1, + D_t2, + D_t3; -> E_t1, [rf_sss] : fwd_D_t2 /* (2) */
- D_t1, + D_t2; + D_t3; -> E_t1, [rf_sss] : fwd_D_t3 /* (3) */
- D_t1; + D_t2; + D_t3; -> E_t1, [rf_sss] : fwd_D_t4 /* (4) */
- D_t4, + D_t5, + D_t6, -> E_t4, [rf_sss] : fwd_D_t5 /* (5) */
- D_t4, + D_t5, + D_t6; -> E_t4, [0.5*rf_sss] : fwd_D_t6 /* (6) */
- D_t4, + D_t5; + D_t6; -> E_t4, [0.5*rf_sss] : fwd_D_t7 /* (7) */
- D_t4; + D_t5; + D_t6; -> E_t4, [0.5*rf_sss] : fwd_D_t8 /* (8) */
- /* related reverse reactions */
- E_t1, -> D_t1, + D_t2, + D_t3, [rr_t] : rev_D_t1 /* (9) */
- E_t4, -> D_t4, + D_t5, + D_t6, [rr_t] : rev_D_t4 /* (10) */
-
- }
- little_box BOX
- {
- CORNERS = [-boxdims, -boxdims, -boxdims], [boxdims, boxdims, boxdims]
- }
- /* Starting X position for box placement */
- x = 0
- fuzz = 0.01
- xleft = x - boxdims - fuzz
- /* S_u <-> B_u */
- case1 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r RELEASE_SITE { SHAPE = case1.kosmos MOLECULE = S_u' NUMBER_TO_RELEASE = num_u / 2 }
- release_site_p RELEASE_SITE { SHAPE = case1.kosmos MOLECULE = B_u' NUMBER_TO_RELEASE = num_u / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* S_b1 + S_b2 <-> B_b */
- case2 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case2.kosmos MOLECULE = S_b1' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case2.kosmos MOLECULE = S_b2' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case2.kosmos MOLECULE = B_b' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* S_bt1 + S_bt2 <-> B_bt */
- case3 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case3.kosmos MOLECULE = S_bt1' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case3.kosmos MOLECULE = S_bt2' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case3.kosmos MOLECULE = B_bt' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* S_b3 + S_b4to <-> B_b2 */
- case4 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case4.kosmos MOLECULE = S_b3' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case4.kosmos MOLECULE = S_b4to' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case4.kosmos MOLECULE = B_b2' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* S_bt3 + S_bt4to <-> B_bt2 */
- case5 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case5.kosmos MOLECULE = S_bt3' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case5.kosmos MOLECULE = S_bt4to' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case5.kosmos MOLECULE = B_bt2' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* S_t1 + S_t2 + S_t3 <-> B_t */
- case6 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case6.kosmos MOLECULE = S_t1' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case6.kosmos MOLECULE = S_t2' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case6.kosmos MOLECULE = S_t3' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case6.kosmos MOLECULE = B_t' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* S_t4 + S_t5to + S_t6 <-> B_t2 */
- case7 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case7.kosmos MOLECULE = S_t4' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case7.kosmos MOLECULE = S_t5to' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case7.kosmos MOLECULE = S_t6' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case7.kosmos MOLECULE = B_t2' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* S_t7 + S_t8to + S_t9to <-> B_t3 */
- case8 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case8.kosmos MOLECULE = S_t7' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case8.kosmos MOLECULE = S_t8to' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case8.kosmos MOLECULE = S_t9to' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case8.kosmos MOLECULE = B_t3' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_b1 + S_vb2 <-> B_vb */
- case9 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case9.kosmos MOLECULE = V_b1 NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case9.kosmos MOLECULE = S_vb2' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case9.kosmos MOLECULE = B_vb' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_bt1 + S_vbt2 <-> B_vbt */
- case10 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case10.kosmos MOLECULE = V_bt1 NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case10.kosmos MOLECULE = S_vbt2' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case10.kosmos MOLECULE = B_vbt' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_b3 + S_vb4to <-> B_vb2 */
- case11 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case11.kosmos MOLECULE = V_b3 NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case11.kosmos MOLECULE = S_vb4to' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case11.kosmos MOLECULE = B_vb2' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_bt3 + S_vbt4to <-> B_vbt2 */
- case12 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case12.kosmos MOLECULE = V_bt3 NUMBER_TO_RELEASE = num_b / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case12.kosmos MOLECULE = S_vbt4to' NUMBER_TO_RELEASE = num_b / 2 }
- release_site_p RELEASE_SITE { SHAPE = case12.kosmos MOLECULE = B_vbt2' NUMBER_TO_RELEASE = num_b / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_t1 + S_vt2 + S_vt3 <-> B_vt */
- case13 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case13.kosmos MOLECULE = V_t1 NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case13.kosmos MOLECULE = S_vt2' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case13.kosmos MOLECULE = S_vt3' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case13.kosmos MOLECULE = B_vt' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_t4 + S_vt5to + S_vt6 <-> B_vt2 */
- case14 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case14.kosmos MOLECULE = V_t4 NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case14.kosmos MOLECULE = S_vt5to' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case14.kosmos MOLECULE = S_vt6' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case14.kosmos MOLECULE = B_vt2' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_t7 + S_vt8to + S_vt9to <-> B_vt3 */
- case15 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case15.kosmos MOLECULE = V_t7 NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case15.kosmos MOLECULE = S_vt8to' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case15.kosmos MOLECULE = S_vt9to' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case15.kosmos MOLECULE = B_vt3' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_vt1 + V_vt2 + S_vvt3 <-> B_vvt */
- case16 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case16.kosmos MOLECULE = V_vt1 NUMBER_TO_RELEASE = num_vvs / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case16.kosmos MOLECULE = V_vt2 NUMBER_TO_RELEASE = num_vvs / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case16.kosmos MOLECULE = S_vvt3' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case16.kosmos MOLECULE = B_vvt' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_vt4 + V_vt5to + S_vvt6 <-> B_vvt2 */
- case17 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case17.kosmos MOLECULE = V_vt4 NUMBER_TO_RELEASE = num_vvs / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case17.kosmos MOLECULE = V_vt5to NUMBER_TO_RELEASE = num_vvs / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case17.kosmos MOLECULE = S_vvt6' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case17.kosmos MOLECULE = B_vvt2' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* V_vt7 + V_vt8to + S_vvt9to <-> B_vvt3 */
- case18 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case18.kosmos MOLECULE = V_vt7 NUMBER_TO_RELEASE = num_vvs / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case18.kosmos MOLECULE = V_vt8to NUMBER_TO_RELEASE = num_vvs / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case18.kosmos MOLECULE = S_vvt9to' NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case18.kosmos MOLECULE = B_vvt3' NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* reactions (1) - (4) */
- case19 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case19.kosmos MOLECULE = D_t1, NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case19.kosmos MOLECULE = D_t2, NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case19.kosmos MOLECULE = D_t3, NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case19.kosmos MOLECULE = E_t1, NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- /* reactions (5) - (8) */
- case20 OBJECT
- {
- kosmos OBJECT little_box {}
- release_site_r1 RELEASE_SITE { SHAPE = case20.kosmos MOLECULE = D_t4, NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r2 RELEASE_SITE { SHAPE = case20.kosmos MOLECULE = D_t5, NUMBER_TO_RELEASE = num_t / 2 }
- release_site_r3 RELEASE_SITE { SHAPE = case20.kosmos MOLECULE = D_t6, NUMBER_TO_RELEASE = num_t / 2 }
- release_site_p RELEASE_SITE { SHAPE = case20.kosmos MOLECULE = E_t4, NUMBER_TO_RELEASE = num_t / 2 }
- TRANSLATE = [x, 0, 0]
- }
- x = x + 2*boxdims + fuzz
- xright = x + boxdims
- PARTITION_X = [ [ xleft TO xright STEP 0.025 ] ]
- PARTITION_Y = [ [ -boxdims-fuzz TO boxdims+fuzz STEP 0.025 ] ]
- PARTITION_Z = [ [ -boxdims-fuzz TO boxdims+fuzz STEP 0.025 ] ]
- INSTANTIATE multiverse OBJECT {
- b1 OBJECT case1 {}
- b2 OBJECT case2 {}
- b3 OBJECT case3 {}
- b4 OBJECT case4 {}
- b5 OBJECT case5 {}
- b6 OBJECT case6 {}
- b7 OBJECT case7 {}
- b8 OBJECT case8 {}
- b9 OBJECT case9 {}
- b10 OBJECT case10 {}
- b11 OBJECT case11 {}
- b12 OBJECT case12 {}
- b13 OBJECT case13 {}
- b14 OBJECT case14 {}
- b15 OBJECT case15 {}
- b16 OBJECT case16 {}
- b17 OBJECT case17 {}
- b18 OBJECT case18 {}
- b19 OBJECT case19 {}
- b20 OBJECT case20 {}
- }
- REACTION_DATA_OUTPUT {
- OUTPUT_BUFFER_SIZE = 50
- STEP = timestep*10
- HEADER = "# "
- {
- COUNT[S_u,WORLD] : "S_u",
- COUNT[S_b1,WORLD] : "S_b1",
- COUNT[S_b2,WORLD] : "S_b2",
- COUNT[S_b3,WORLD] : "S_b3",
- COUNT[S_b4to,WORLD] : "S_b4",
- COUNT[S_bt1,WORLD] : "S_bt1",
- COUNT[S_bt2,WORLD] : "S_bt2",
- COUNT[S_bt3,WORLD] : "S_bt3",
- COUNT[S_bt4to,WORLD] : "S_bt4",
- COUNT[S_t1,WORLD] : "S_t1",
- COUNT[S_t2,WORLD] : "S_t2",
- COUNT[S_t3,WORLD] : "S_t3",
- COUNT[S_t4,WORLD] : "S_t4",
- COUNT[S_t5to,WORLD] : "S_t5",
- COUNT[S_t6,WORLD] : "S_t6",
- COUNT[S_t7,WORLD] : "S_t7",
- COUNT[S_t8to,WORLD] : "S_t8",
- COUNT[S_t9to,WORLD] : "S_t9",
- COUNT[V_b1,WORLD] : "V_b1",
- COUNT[S_vb2,WORLD] : "S_vb2",
- COUNT[V_bt1,WORLD] : "V_bt1",
- COUNT[S_vbt2,WORLD] : "S_vbt2",
- COUNT[V_b3,WORLD] : "V_b3",
- COUNT[S_vb4to,WORLD] : "S_vb4",
- COUNT[V_bt3,WORLD] : "V_bt3",
- COUNT[S_vbt4to,WORLD] : "S_vbt4",
- COUNT[V_t1,WORLD] : "V_t1",
- COUNT[S_vt2,WORLD] : "S_vt2",
- COUNT[S_vt3,WORLD] : "S_vt3",
- COUNT[V_t4,WORLD] : "V_t4",
- COUNT[S_vt5to,WORLD] : "S_vt5",
- COUNT[S_vt6,WORLD] : "S_vt6",
- COUNT[V_t7,WORLD] : "V_t7",
- COUNT[S_vt8to,WORLD] : "S_vt8",
- COUNT[S_vt9to,WORLD] : "S_vt9",
- COUNT[V_vt1,WORLD] : "V_vt1",
- COUNT[V_vt2,WORLD] : "V_vt2",
- COUNT[S_vvt3,WORLD] : "S_vvt3",
- COUNT[V_vt4,WORLD] : "V_vt4",
- COUNT[V_vt5to,WORLD] : "V_vt5",
- COUNT[S_vvt6,WORLD] : "S_vvt6",
- COUNT[V_vt7,WORLD] : "V_vt7",
- COUNT[V_vt8to,WORLD] : "V_vt8",
- COUNT[S_vvt9to,WORLD] : "S_vvt9",
- COUNT[B_u,WORLD] : "B_u",
- COUNT[B_b,WORLD] : "B_b",
- COUNT[B_b2,WORLD] : "B_b2",
- COUNT[B_bt,WORLD] : "B_bt",
- COUNT[B_bt2,WORLD] : "B_bt2",
- COUNT[B_t,WORLD] : "B_t",
- COUNT[B_t2,WORLD] : "B_t2",
- COUNT[B_t3,WORLD] : "B_t3",
- COUNT[B_vb,WORLD] : "B_vb",
- COUNT[B_vbt,WORLD] : "B_vbt",
- COUNT[B_vb2,WORLD] : "B_vb2",
- COUNT[B_vbt2,WORLD] : "B_vbt2",
- COUNT[B_vt,WORLD] : "B_vt",
- COUNT[B_vt2,WORLD] : "B_vt2",
- COUNT[B_vt3,WORLD] : "B_vt3",
- COUNT[B_vvt,WORLD] : "B_vvt",
- COUNT[B_vvt2,WORLD] : "B_vvt2",
- COUNT[B_vvt3,WORLD] : "B_vvt3"
- } => countdir & "V_out.dat"
- {
- COUNT[fwd_u,WORLD] : "fwd_u",
- COUNT[fwd_b,WORLD] : "fwd_b",
- COUNT[fwd_bt,WORLD] : "fwd_bt",
- COUNT[fwd_b2,WORLD] : "fwd_b2",
- COUNT[fwd_bt2,WORLD] : "fwd_bt2",
- COUNT[fwd_t,WORLD] : "fwd_t",
- COUNT[fwd_t2,WORLD] : "fwd_t2",
- COUNT[fwd_t3,WORLD] : "fwd_t3",
- COUNT[fwd_vb,WORLD] : "fwd_vb",
- COUNT[fwd_vbt,WORLD] : "fwd_vbt",
- COUNT[fwd_vb2,WORLD] : "fwd_vb2",
- COUNT[fwd_vbt2,WORLD] : "fwd_vbt2",
- COUNT[fwd_vt,WORLD] : "fwd_vt",
- COUNT[fwd_vt2,WORLD] : "fwd_vt2",
- COUNT[fwd_vt3,WORLD] : "fwd_vt3",
- COUNT[fwd_vvt,WORLD] : "fwd_vvt",
- COUNT[fwd_vvt2,WORLD] : "fwd_vvt2",
- COUNT[fwd_vvt3,WORLD] : "fwd_vvt3",
- COUNT[rev_u,WORLD] : "rev_u",
- COUNT[rev_b,WORLD] : "rev_b",
- COUNT[rev_bt,WORLD] : "rev_bt",
- COUNT[rev_b2,WORLD] : "rev_b2",
- COUNT[rev_bt2,WORLD] : "rev_bt2",
- COUNT[rev_t,WORLD] : "rev_t",
- COUNT[rev_t2,WORLD] : "rev_t2",
- COUNT[rev_t3,WORLD] : "rev_t3",
- COUNT[rev_vb,WORLD] : "rev_vb",
- COUNT[rev_vbt,WORLD] : "rev_vbt",
- COUNT[rev_vb2,WORLD] : "rev_vb2",
- COUNT[rev_vbt2,WORLD] : "rev_vbt2",
- COUNT[rev_vt,WORLD] : "rev_vt",
- COUNT[rev_vt2,WORLD] : "rev_vt2",
- COUNT[rev_vt3,WORLD] : "rev_vt3",
- COUNT[rev_vvt,WORLD] : "rev_vvt",
- COUNT[rev_vvt2,WORLD] : "rev_vvt2",
- COUNT[rev_vvt3,WORLD] : "rev_vvt3"
- } => countdir & "rxn_out.dat"
- {
- COUNT[fwd_D_t1,WORLD] : "fwd_D_t1",
- COUNT[fwd_D_t2,WORLD] : "fwd_D_t2",
- COUNT[fwd_D_t3,WORLD] : "fwd_D_t3",
- COUNT[fwd_D_t4,WORLD] : "fwd_D_t4"
- } => countdir & "b19_rxn_out.dat"
- {
- COUNT[fwd_D_t5,WORLD] : "fwd_D_t5",
- COUNT[fwd_D_t6,WORLD] : "fwd_D_t6",
- COUNT[fwd_D_t7,WORLD] : "fwd_D_t7",
- COUNT[fwd_D_t8,WORLD] : "fwd_D_t8"
- } => countdir & "b20_rxn_out.dat"
- }
|