or form equivalent mathematical expression using functions allowed by muParser (http://muparser.sourceforge.net/mup_features.html#idDef2)
For example, let's assume that additional term for second equation is the following:
In such a case additional term would be coded as follows:
if (CellType==1,0.01*F,0.15*F)
Notice that we have used here muParser function called if. The syntax of it is as follows:
if(condition, expression if condition true, \
expression if condition false)
One thing to remember is that computing time of the additional term depends on the level of complexity of this term. Thus it is not the best idea to code very complex expressions using muParser.
IX.3.10. BoxWatcher Steppable
This steppable can potentially speed-up your simulation. Every MCS (or every Frequency MCS) it determines maximum and minimum coordinates of cells and then imposes slightly bigger box around cells and ensures that in the subsequent MCS spin flip attempts take place only inside this box containing cells (plus some amount of medium on the sides). Thus instead of sweeping entire lattice and attempting random spin flips CompuCell3D will only spend time trying flips inside the box. Depending on the simulation the performance gains are up to approx. 30%. The steppable will work best if you have simulation with cells localized in one region of the lattice with lots of empty space. The steppable will adjust box every MCS (or every Frequency MCS) according to evolving cellular pattern.
The syntax is as follows:
5
5
5
All that is required is to specify amount of extra space (expressed in units of pixels) that needs to be added to the a tight box i.e. the box whose sides just touch most peripheral cells' pixels.
Besides the modules that were introduced above CompuCell3D contains other modules which were developed to solve particular problem. For example module called DictyFieldInitializer is used to prepare initial cell configuration for the simulation of Dictyostelium discoideum morphogenesis based on the paper by P.Hogeweg and N.Savill Modelling morphogenesis: from single cells to crawling slugs. J. theor. Biol. 184, 229-235.
Such modules have limited area of applicability and are mostly used in a single simulation. For this reason we will not describe them in more detail here. Interested user may consult CompuCell3D manual 3.2.0 where all such modules were described. It is our goal however to eliminate a need to write customized modules as much as possible. For example, DictyFieldInitializer can be easily replaced by using UniformInitializer and defining several regions there. Similarly Reaction diffusion solver for this simulation can be replaced by a general Reaction Diffusion solver described above.
While we might run into performance issues when using general as opposed to customized, the flexibility and portability associated with using general use modules are worth extra run time.