Welcome to the Chaste wiki.
This section contains pages generated automatically from the source code accompanying Harvey el al. “A parallel implementation of an off-lattice individual-based model of multicellular populations”, Computer Physics Communications, Volume 192, July 2015, Pages 130-137, http://dx.doi.org/10.1016/j.cpc.2015.03.005.
Before running these examples you will need to install Chaste’s dependencies and the source code for version 3.2. The easiest way to do this is using an Ubuntu machine (or an Ubuntu virtual machine) as discussed on InstallGuides/UbuntuPackage. Note that Chaste is only fully supported on Linux/Unix systems, so users of Windows or Mac OS X may need to follow the virtual machine route. For manual installation of each dependency, on any version of Linux, see DeveloperInstallGuide.
The paper is about functionality which exists in the released version of Chaste (Version 3.2, 2014) but any additional code which was used to produce the results and figures in the paper is annotated and explained here. The idea is that with the Chaste release and this additional code you are able to reproduce any the figures in the paper. This is subject to your having access to a machine/cluster with sufficient processing cores. Please note the the exact timing results will be architecture dependent. Note: While the paper was developed with release version 3.2 (2014) the code presented here is also compatible with release version 3.3 (2015).
Before looking at these, you may wish to look at some of the basic user tutorials.
If you are reading this as a Wiki page and do not have the bolt-on project you can download it anonymously as an attachment to this page. Todo: add to main download page and collect stats.
There are three folders - build
, src
and test
.
build
folder will contain the executables that you compile and can be ignored.src
folder contains the following helper classes which are used only in test/TestProfileSimulation.hpp which produces the speed-up plot, Figure 5.SemCellsGenerator.hpp
, SemCellsGenerator.cpp
- this class helps to generate large numbers of cells by using a template (examples of which may be found in Harvey2015/test/data) and repeating this pattern of cells. The name of this class others refer to its use with another project simulating the subcellular element model Modeling multicellular systems using subcellular elements, Newman, T.J, Math. Biosci. Eng. (2) 2005.SemForce.hpp
, SemForce.cpp
- this subclass of GeneralisedLinearSpringForce
(in the main Chaste code) which provides an alternative pairwise force between cells. This is used in the large-scale profiling simulation to rescale the interaction between large numbers of cells in closer proximity.SemMesh.hpp
, SemMesh.cpp
- this subclass of NodesOnlyMesh
(in the main Chaste code) which associates an additional integer index with each cell object. This is used in other projects and is not used in the parallel functionality of the code.SemParameterScaler.hpp
, SemParameterScaler.cpp
- this class is used to provide a consistent simulation-wide scaling of model parameters and is not used in the parallel functionality of the code.test
folder contains (in order of introduction in our paper):CompareParallelResults.py
) is provided to aid comparison of the results. As the output order of the cell locations is dependent of the parallel decomposition of the cells, this script first sorts the cell locations before comparing them. The output of the script is a list of tuples with the time in the first entry, and the mean difference between cell locations in the second entry.Note: the paper was developed with release version 3.2 (2014) but the code presented here is also compatible with release version 3.3 (2015).
Once you have all the Chaste dependencies installed (as per https://chaste.cs.ox.ac.uk/cgi-bin/trac.cgi/wiki/DeveloperInstallGuide using Ubuntu is by far the easiest way to do this). You should get a copy of Chaste 3.2 (from http://www.cs.ox.ac.uk/chaste/download) and copy the folder containing this README file into
You can then run things with, for example,
to run the simulations in parallel on (e.g.) 2 processes the command is
To obtain optimal results on a given architecture, you should use no more than the number of physical processors contained in the machine. On most Linux platforms this can be found using a command such as:
For further information on using Chaste to solve these and related problems, see our extensive guide material.