/************************************************************************** * Test 07: Region borders properties tested on cube. * * * REFLECTIVE/ABSORPTIVE/TRANSPARENT properties of REGION border tested * on the cube. * * Author: Boris Kaminsky * Date: 2010-11-30 ****************************************************************************/ basename = "07-region_borders" countdir = "dat/" & basename & "/" dt = 1e-6 TIME_STEP = dt TIME_STEP_MAX = dt ITERATIONS = 100 EFFECTOR_GRID_DENSITY = 10000 VACANCY_SEARCH_DISTANCE = 1 DEFINE_MOLECULES { A {DIFFUSION_CONSTANT_2D = 2e-4} B {DIFFUSION_CONSTANT_2D = 2e-4} C {DIFFUSION_CONSTANT_2D = 2e-4} D {DIFFUSION_CONSTANT_2D = 2e-4} E {DIFFUSION_CONSTANT_2D = 2e-4} } DEFINE_SURFACE_CLASSES { my_surf_1 { REFLECTIVE = A; ABSORPTIVE = B; TRANSPARENT = C; } my_surf_2 { REFLECTIVE = D; REFLECTIVE = E; } refl_A{ REFLECTIVE = A; } } DEFINE_REACTIONS { D' @ my_surf_2; -> E'[4e3] } box_1 BOX { CORNERS = [-0.13,-0.13,-0.13] , [0.13,0.13,0.13] DEFINE_SURFACE_REGIONS { r1{ ELEMENT_LIST = [RIGHT] MOLECULE_NUMBER{ A' = 100 B' = 100 C' = 100 } SURFACE_CLASS = my_surf_1 } r2{ ELEMENT_LIST = [TOP,BOTTOM,LEFT,FRONT,BACK] } r3{ ELEMENT_LIST = [TOP] MOLECULE_NUMBER{ D' = 100 } SURFACE_CLASS = my_surf_2 } } } /* Here we test overlapped restricted region with non-restricted region */ box_2 BOX { CORNERS = [-0.13,-0.13,-0.13] , [0.13,0.13,0.13] DEFINE_SURFACE_REGIONS { r1 { ELEMENT_LIST = [TOP, RIGHT] SURFACE_CLASS = refl_A } r2 { ELEMENT_LIST = [TOP] MOLECULE_NUMBER{A' = 200} } r3{ ELEMENT_LIST = [RIGHT] } r4{ ELEMENT_LIST = [LEFT, BOTTOM, BACK, FRONT] } } TRANSLATE = [0.5, 0, 0] } /* Here we test multiple overlapped restricted regions */ box_3 BOX { CORNERS = [-0.13,-0.13,-0.13] , [0.13,0.13,0.13] DEFINE_SURFACE_REGIONS { r1 { ELEMENT_LIST = [TOP, RIGHT] SURFACE_CLASS = refl_A } r2 { ELEMENT_LIST = [TOP, LEFT] SURFACE_CLASS = refl_A } r3{ ELEMENT_LIST = [TOP, FRONT] SURFACE_CLASS = refl_A } r4{ ELEMENT_LIST = [TOP, BACK] SURFACE_CLASS = refl_A } r5{ ELEMENT_LIST = [TOP] MOLECULE_NUMBER{A' = 200} } r6{ ELEMENT_LIST = [LEFT, RIGHT, BOTTOM, BACK, FRONT] } } TRANSLATE = [1.0, 0, 0] } INSTANTIATE world OBJECT { box_1 OBJECT box_1 {} box_2 OBJECT box_2 {} box_3 OBJECT box_3 {} } REACTION_DATA_OUTPUT { STEP = dt HEADER = "# " { COUNT ["A;", world.box_1[r1]]: "r1_A", COUNT ["A;", world.box_1[r2]]: "r2_A" } => countdir & "box_1_A.dat" { COUNT ["C;", world.box_1[r1]]: "r1_C", COUNT ["C;", world.box_1[r2]]: "r2_C" } => countdir & "box_1_C.dat" } REACTION_DATA_OUTPUT { TIME_LIST = [7e-5, [7.1e-5 TO 1e-4 STEP 1e-6]] HEADER = "# " { COUNT ["B;", world.box_1[r1]]: "r1_B", COUNT ["B;", world.box_1[r2]]: "r2_B" } => countdir & "box_1_B.dat" { COUNT ["A;", world.box_2[r2]]: "r2_A", COUNT ["A;", world.box_2[r3]]: "r3_A" } => countdir & "box_2_A.dat" { COUNT ["A;", world.box_2[r4]]: "r4_A" } => countdir & "box_2_r4.dat" { COUNT ["A;", world.box_3[r5]]: "r5_A" } => countdir & "box_3_r5.dat" { COUNT ["A;", world.box_3[r6]]: "r6_A" } => countdir & "box_3_r6.dat" } REACTION_DATA_OUTPUT { STEP = dt HEADER = "# " { COUNT ["D;", world.box_1[r3]]: "r3_D", COUNT ["E;", world.box_1[r3]]: "r3_E" } => countdir & "box_1_r3.dat" }