FRONT, BACK, or ALL CROSSINGS/HITS don't work for surface molecules, although the QRG suggests otherwise:
Also, when I say these count statements don't work, I mean that the counts reported are all zero.
We should either fix this or print an error during parsing to indicate that this functionality isn't supported.
ITERATIONS = 1000
TIME_STEP = 1e-06
VACANCY_SEARCH_DISTANCE = 10
DEFINE_MOLECULES {
sm { DIFFUSION_CONSTANT_2D = 1e-06 }
}
Plane POLYGON_LIST
{
VERTEX_LIST
{
[ -0.074999988079071, -0.0899999886751175, 0 ]
[ 0.104999989271164, -0.0899999886751175, 0 ]
[ -0.074999988079071, 0.0899999886751175, 0 ]
[ 0.104999989271164, 0.0899999886751175, 0 ]
[ -0.0299999937415123, -0.0899999886751175, 0 ]
[ 0.0599999949336052, -0.0899999886751175, 0 ]
[ 0.0599999949336052, 0.0899999886751175, 0 ]
[ -0.0299999937415123, 0.0899999886751175, 0 ]
[ -0.074999988079071, 0.0449999943375587, 0 ]
[ -0.074999988079071, -0.0449999943375587, 0 ]
[ 0.104999989271164, -0.0449999943375587, 0 ]
[ 0.104999989271164, 0.0449999943375587, 0 ]
[ -0.0299999937415123, -0.0449999943375587, 0 ]
[ -0.0299999937415123, 0.0449999943375587, 0 ]
[ 0.0599999949336052, -0.0449999943375587, 0 ]
[ 0.0599999949336052, 0.0449999943375587, 0 ]
}
ELEMENT_CONNECTIONS
{
[ 11, 3, 6 ]
[ 13, 7, 2 ]
[ 15, 6, 7 ]
[ 5, 14, 12 ]
[ 14, 15, 13 ]
[ 4, 12, 9 ]
[ 12, 13, 8 ]
[ 1, 10, 14 ]
[ 10, 11, 15 ]
[ 15, 11, 6 ]
[ 8, 13, 2 ]
[ 13, 15, 7 ]
[ 4, 5, 12 ]
[ 12, 14, 13 ]
[ 0, 4, 9 ]
[ 9, 12, 8 ]
[ 5, 1, 14 ]
[ 14, 10, 15 ]
}
DEFINE_SURFACE_REGIONS
{
sr_inner
{
ELEMENT_LIST = [4, 13]
}
sr_outer
{
ELEMENT_LIST = [0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17]
}
}
}
INSTANTIATE Scene OBJECT {
Plane OBJECT Plane {}
Release_Site RELEASE_SITE {
SHAPE = Scene.Plane[sr_inner]
MOLECULE = sm'
NUMBER_TO_RELEASE = 1
}
}
REACTION_DATA_OUTPUT {
STEP=1e-6
{COUNT[sm,Scene.Plane[sr_outer],FRONT_HITS]}=> "./sm.sr_outer.fh.dat"
{COUNT[sm,Scene.Plane[sr_inner],FRONT_HITS]}=> "./sm.sr_inner.fh.dat"
{COUNT[sm,Scene.Plane[sr_outer],FRONT_CROSSINGS]}=> "./sm.sr_outer.fc.dat"
{COUNT[sm,Scene.Plane[sr_inner],FRONT_CROSSINGS]}=> "./sm.sr_inner.fc.dat"
{COUNT[sm,Scene.Plane[sr_outer],BACK_HITS]}=> "./sm.sr_outer.bh.dat"
{COUNT[sm,Scene.Plane[sr_inner],BACK_HITS]}=> "./sm.sr_inner.bh.dat"
{COUNT[sm,Scene.Plane[sr_outer],BACK_CROSSINGS]}=> "./sm.sr_outer.bc.dat"
{COUNT[sm,Scene.Plane[sr_inner],BACK_CROSSINGS]}=> "./sm.sr_inner.bc.dat"
{COUNT[sm,Scene.Plane[sr_outer],ALL_HITS]}=> "./sm.sr_outer.ah.dat"
{COUNT[sm,Scene.Plane[sr_inner],ALL_HITS]}=> "./sm.sr_inner.ah.dat"
{COUNT[sm,Scene.Plane[sr_outer],ALL_CROSSINGS]}=> "./sm.sr_outer.ac.dat"
{COUNT[sm,Scene.Plane[sr_inner],ALL_CROSSINGS]}=> "./sm.sr_inner.ac.dat"
}
FRONT, BACK, or ALL CROSSINGS/HITS don't work for surface molecules, although the QRG suggests otherwise:
Also, when I say these count statements don't work, I mean that the counts reported are all zero.
We should either fix this or print an error during parsing to indicate that this functionality isn't supported.
Here's an MDL that demonstrates this problem: