README ====== Building the source ------------------- Just type the following on the commmand line:: $ ./autogen.sh $ ./configure $ ./make Detailed package description ---------------------------- This package contains the implementation of the following fundamental classes: - Model - SpeciesType - NetworkRules - ReactionRule The description of each class is as follows: * Model class Model class represents an abstract simulation model. Details of the model are supposed to be supplied to the simulator separately. For the present time, it only defines two methods: - Model::network_rules() - Model::new_species_type() Model::network_rules() returns the NetworkRules object that is tied to the Model. As NetworkRules is an abstract class that is not directly instantiable, one has to fetch the object through this method. Model::new_species_type() creates a new SpeciesType object, assigns to it a newly generated SpeciesTypeID (by SerialIDGenerator) and returns it. In order to make sure that every SpeciesType has an unique SpeciesTypeID, SpeciesType has to be indirectly instantiated with this factory method. * SpeciesType A SpeciesType object denotes a chemical species in general. This object cannot be directly instantiated and has to be retrieved via Model::new_species_type(). This class is designed to hold arbitrary string properties keyed by strings. The interpretation of those properties depends on the simulator, as the simulator implementation is supposed to have a specialized, non-dynamic version of this object. For instance, a particle simulator should take the diffusion coefficient, shape and approximate radius of the species from the corresponing SpeciesType object and then creates a simulator's view of the object, say, SpeciesInfo, which would cache the values of those parameters. * NetworkRules A NetworkRules object manages a set of reaction rules. One can add a reaction rule with NetworkRules::add_reaction_rule() and queries the registered (or possibly deduced) reaction rules through NetworkRules::query_reaction_rule(). * ReactionRule A ReactionRule object corresponds to one specific reaction rule constituted by reactants, products and a kinetic constant. Reactants must be one or two species while products can be any number of species. Python binding -------------- Python stub classes also come with those classes. The implementation is put in modelmodule.cpp and files under peer/ dircetory.