mcellteam / mcell

MCell Monte Carlo Simulator of Cellular Microphysiology
Other
33 stars 10 forks source link

"Molecule release is unable to find surface upon which to place molecule" #30

Closed Katospiegel closed 7 years ago

Katospiegel commented 7 years ago

I set up a basic experiment in 2D to test Mcell. I defined a particle that is going to diffuse in an square. When I tried to fix the positions of the molecules in this square the mcell software give me this error:

Warning: Molecule release is unable to find surface upon which to place molecule t.
  This could be caused by too small of a SITE_DIAMETER on the release site 'World.t_rel'.
Warning: Molecule release is unable to find surface upon which to place molecule t.
  This could be caused by too small of a SITE_DIAMETER on the release site 'World.t_rel'.
Warning: Failed to release 2 molecules from list "World.t_rel" at iteration 0.
Warning: during the simulation some reaction probabilities were greater than 1. You may want to rerun the simulation with the WARNINGS block enabled to get more detail.

The mdl file of the geometry is:

Square POLYGON_LIST
{
  VERTEX_LIST /* in microns */
  {
    [ 0.00000000000000, 0.00000000000000, 00000000000000 ]
    [ 0.00000000000000, 1.00000000000000, 00000000000000 ]
    [ 1.00000000000000, 1.00000000000000, 00000000000000 ]
    [ 1.00000000000000, 0.00000000000000, 00000000000000 ]
  }
  ELEMENT_CONNECTIONS /* Define triangles */
  {
    [ 0, 1, 2 ]
    [ 0, 2, 3 ]
  }
  DEFINE_SURFACE_REGIONS
  {
    top
    {
      ELEMENT_LIST = [0, 1]
    }
  }
}

and the mdl file of the experiment is:

ITERATIONS = 100
TIME_STEP = 1E-5

/* Define molecules. The units for diffusion are cm^2 s^(-1) */

DEFINE_MOLECULES{
  a {
    DIFFUSION_CONSTANT_2D = 1E-6
    }
  t {
    DIFFUSION_CONSTANT_2D = 0
    }
}

INTERACTION_RADIUS=0.005

/* The rate is defined inside the brackets */
DEFINE_REACTIONS {
  /* annihilation of a */
  a' + t' -> t' [1e8] : annih
}
/* Some files could be useful to be included separately */

INCLUDE_FILE = "./Square.mdl"

INSTANTIATE World OBJECT {
  Square OBJECT Square{}

  a_rel RELEASE_SITE {
  SHAPE = World.Square[top]
  MOLECULE = a'
  NUMBER_TO_RELEASE = 2000
  RELEASE_PROBABILITY = 1
  }
  t_rel RELEASE_SITE {
  SHAPE = LIST
  RELEASE_PROBABILITY = 1
  SITE_DIAMETER = 100 /* for some strange reason this is given a releasing error */
  MOLECULE_POSITIONS
  {
    t' [ 0.20000000000000, 0.20000000000000, 0.00000000000000 ]
    t' [ 0.20000000000000, 0.80000000000000, 0.00000000000000 ]
    t' [ 0.80000000000000, 0.20000000000000, 0.00000000000000 ]
    t' [ 0.80000000000000, 0.80000000000000, 0.00000000000000 ]
  }
  }
}

Thanks in advance!

Katospiegel commented 7 years ago

Ok, I think that I found the issue. When mcell release the molecule a before t is highly likely that the place that I set for the molecule t is occupied by one of the a molecules. If I change the release order to make t release before a the issue disappear.