Closed ahellander closed 7 years ago
What if we had a 'volume' vector and a 'surface area' vector, instead of a vector for each dof? It seems that we will only need the 2D and 3D "volumes" for voxel, not the "volume" of each voxel*dof.
True. But then we would either need an additional datastructure to tell if the species is 2D or 3D, or rely on the user to remember this in the propensity function. The latter is not such a big problem, but I can see potential cases where it would be convenient to have programmatic access to this information.
Should the volume vector be changed as to have one "volume" associated with each dof rather than each subvolume?
The argument in favor: Better support the case where different species are active in different dimension and the surface diffusion is assembles as a 2D diffusion. The volumes for those species are then the area of the surface element and not a 3D volume. When we integrated Stefan's micro code in URDME we needed to make this change in a branch to make it work.
Argument against: Are the chemical rate constants usually defined for the right dimension even if the species is localized to a lower dimensional manifold?
What do you think? I am in favor of changing since it makes the code more general.