The Spiking Model class has a number of methods and members which can be set and used. For an example of it's use, see the Example models and the SimpleExample.
This method allows setting of the simulation timestep. Note that this should be run as early as possible as the synapses store delays in multiples of this timestep
SpikingModel::SetTimestep(float timestep_parameter);
Methods exists to add Neuron groups, Input Neuron groups, and Synapse groups to the simulation. The syntax for these is explained in SimpleExample. These all return an ID which can be used either (in the case of neurons) when adding synapse groups between them. The Synapse group IDs can be used with the weight loading and dumping functions (see Synapses) to load or dump a subset of weights.
SpikingModel::AddNeuronGroup(neuron_parameters_struct * group_params);
SpikingModel::AddInputNeuronGroup(neuron_parameters_struct * group_params);
SpikingModel::AddSynapseGroup(int presynaptic_group_id, int postsynaptic_group_id, synapse_parameters_struct * synapse_params);
Plasticity rules and Activity Monitors are added to the simulation with the following commands. Note that Activity Monitors also require a pointer to the neuron model that they should monitor and plasticity rules should also be added to the plasticity_rule_vector for the synapse group they are acting upon. Again see examples for a real use-case.
SpikingModel::AddPlasticityRule(STDPPlasticity * plasticity_rule);
SpikingModel::AddActivityMonitor(ActivityMonitor * activityMonitor);
The state of the Model can be reset (this also resets all of the model components):
SpikingModel::reset_state();
Finally, a simulation can be run for a given number of seconds using:
SpikingModel::run(float seconds, bool plasticity_on=true);
By default, plasticity_on bool is true indicating that plasticity rules will be active for this run. This can be set to false in order to turn off plasticity for this run only.