/**************************************************************************** * Regression test 03: When two surfaces coincide and one of them is * transparent, odd things happen. Counting, for one, can become * confused. Essentially, the transparent surface may be re-collided in * certain cases. * * Failure: counts go negative, or extremely positive * total count of cannonballs != 500 * * Success: for entire run, count 122L+122R == 122 == 500 AND * for entire run, count r122L+r122R == r122 == 500 * * Author: Jed Wing * Date: 2008-09-05 * Note: As of 05/23/2011 we disallow overlapped walls, so the coodinates * of box122R are slightly shifted. * Modified by Boris Kaminsky * Date: 2011-05-23 ****************************************************************************/ EFFECTOR_GRID_DENSITY = 30000 ITERATIONS = 10000 TIME_STEP = 1e-6 kfwd = 5e6 kreset = 1e3 eps = 0.001 reforient = 1 EPS_C = 1e-12 NOTIFICATIONS { RELEASE_EVENT_REPORT = ON } PARTITION_X = [[-2 TO 2 STEP 0.08]] PARTITION_Y = [[-2 TO 2 STEP 0.08]] PARTITION_Z = [[-2 TO 2 STEP 0.08]] DEFINE_MOLECULES { cannonball { DIFFUSION_CONSTANT_3D = 4e-6 } tissue26 { DIFFUSION_CONSTANT_2D = 0 } kerchief26 { DIFFUSION_CONSTANT_2D = 0 } llabnonnac { DIFFUSION_CONSTANT_3D = 4e-6 } eussit26 { DIFFUSION_CONSTANT_2D = 0 } feihcrek26 { DIFFUSION_CONSTANT_2D = 0 } } DEFINE_REACTIONS { cannonball,, + tissue26, -> cannonball'' + kerchief26, [kfwd] : reac_26 kerchief26' -> tissue26' [kreset] // INVALID llabnonnac,, + eussit26, -> llabnonnac'' + feihcrek26, [kfwd] : caer_26 feihcrek26' -> eussit26' [kreset] // INVALID } p122a = [-0.2, -0.2, -0.2] p122b = [ 0.0, 0.2, 0.2] p122c = [ 0.0 + 2*EPS_C, -0.2, -0.2] p122d = [ 0.2 + 2*EPS_C, 0.2, 0.2] /* p122c = [ 0.0, -0.2, -0.2] p122d = [ 0.2, 0.2, 0.2] */ boxes_reduced OBJECT { box122L BOX { CORNERS = p122a, p122b DEFINE_SURFACE_REGIONS { r { INCLUDE_ELEMENTS = [RIGHT] } } } box122R BOX { CORNERS = p122c, p122d DEFINE_SURFACE_REGIONS { l { INCLUDE_ELEMENTS = [LEFT] } } } } INSTANTIATE world OBJECT { boxes OBJECT boxes_reduced { } rscb26 RELEASE_SITE { SHAPE = SPHERICAL SITE_RADIUS = 0 MOLECULE = cannonball NUMBER_TO_RELEASE = 500 LOCATION = [- eps, 0, 0] } rsbc26 RELEASE_SITE { SHAPE = SPHERICAL SITE_RADIUS = 0 MOLECULE = llabnonnac NUMBER_TO_RELEASE = 500 LOCATION = [- eps, 0, 0] } rs_t26 RELEASE_SITE { SHAPE = world.boxes.box122L[r] MOLECULE = tissue26{-reforient} NUMBER_TO_RELEASE = 500 } rs_e26 RELEASE_SITE { SHAPE = world.boxes.box122R[l] MOLECULE = eussit26{-reforient} NUMBER_TO_RELEASE = 500 } } DEFINE_SURFACE_CLASS trans_cannon { TRANSPARENT = cannonball } DEFINE_SURFACE_CLASS trans_nonnac { TRANSPARENT = llabnonnac } MODIFY_SURFACE_REGIONS { world.boxes.box122R[l] { SURFACE_CLASS = trans_cannon } world.boxes.box122L[r] { SURFACE_CLASS = trans_nonnac } } REACTION_DATA_OUTPUT { OUTPUT_BUFFER_SIZE = 1000 STEP = 1e-6 HEADER = "# " { COUNT[cannonball, world.boxes.box122L] : "122L", COUNT[cannonball, world.boxes.box122R] : "122R", COUNT[cannonball, world.boxes.box122L] + COUNT[cannonball, world.boxes.box122R] : "122", COUNT[llabnonnac, world.boxes.box122L] : "r122L", COUNT[llabnonnac, world.boxes.box122R] : "r122R", COUNT[llabnonnac, world.boxes.box122L] + COUNT[llabnonnac, world.boxes.box122R] : "r122" } => "cannonballs.txt" } /* VIZ_OUTPUT { MODE = DREAMM_V3_GROUPED FILENAME = "world" MOLECULES { NAME_LIST { ALL_MOLECULES } TIME_POINTS { ALL_DATA @ [[0 TO 1e-3 STEP 1e-5]] } } MESHES { NAME_LIST { ALL_MESHES } TIME_POINTS { ALL_DATA @ [0] } } } */