/**************************************************************************** * Regression test 16: Volume molecule + surface reactions, such as those used * in absorptive or concentration clamped surfaces, were not properly * checking whether any ENCLOSED (or other waypoint-requiring) counts had * been requested. This leads to a seg fault if no other waypoint-requiring * features are needed, and some unnecessary computation otherwise. * Also here we are testing keywords CLAMP_CONC, ESTIMATE_CONC, * DIFFUSION_CONSTANT * * Failure: crash * Success: run exits successfully * * Author: Jed Wing * Date: 2009-06-15 ****************************************************************************/ TIME_STEP_MAX = 1e-5 TIME_STEP = 1e-5 ITERATIONS = 10 INTERACTION_RADIUS = 0.0002 PARTITION_X = [[-0.01 TO 0.01 STEP 0.002]] PARTITION_Y = [[-0.01 TO 0.01 STEP 0.002]] PARTITION_Z = [[-0.01 TO 0.01 STEP 0.002]] DEFINE_MOLECULES { Ca { DIFFUSION_CONSTANT_3D = 2.5e-8 } B { DIFFUSION_CONSTANT = 2.5e-8 } } DEFINE_SURFACE_CLASSES { trans { TRANSPARENT = Ca } reflect { REFLECTIVE = Ca } clamp { CLAMP_CONCENTRATION Ca, = 10 CLAMP_CONC B, = 20 } } INSTANTIATE world OBJECT { container BOX { CORNERS = [-0.01, -0.01, -0.01], [0.01, 0.01, 0.01] DEFINE_SURFACE_REGIONS { sides { ELEMENT_LIST = [ALL_ELEMENTS] SURFACE_CLASS = clamp } } } sample POLYGON_LIST { VERTEX_LIST { [-0.01, -0.01, -0.01 ] [-0.01, 0.01, -0.01 ] [-0.01, -0.01, 0.01 ] [-0.01, 0.01, 0.01 ] } ELEMENT_CONNECTIONS { [0,3,1] [0,2,3] } DEFINE_SURFACE_REGIONS { reg { ELEMENT_LIST = [ALL_ELEMENTS] SURFACE_CLASS = trans } } } } /* NOTE: COUNT statement is required in order to enable counting for Ca, and it * must be a type of counting other than simple WORLD counting, and it * must not trigger waypoint placement at program initialization time. * Thus, ESTIMATE_CONCENTRATION. */ REACTION_DATA_OUTPUT { STEP = 1e-5 {COUNT [Ca,world.sample[reg],ESTIMATE_CONCENTRATION]} => "./conc_Ca.dat" {COUNT [B,world.sample[reg],ESTIMATE_CONC]} => "./conc_B.dat" }