Hi all,
I am trying to simulate networks where two (or more)
sub-populations
are
structurally plastic (structural plasticity module). My simulation
protocol requires that I enable/disable structural plasticity on a
sub-population level rather than at kernel level
(nest.EnableStructuralPlasticity() /
nest.DisableStructuralPlasticity()).
[Q1] Is anyone aware of a way to do this at the sub-population
level?
One workaround that I have tried is setting the growth_rate parameter of
synaptic elements to 0 and
restoring it to the original value at the
desired simulation time
SP_OFF_dict = {'growth_rate': 0., 'eps': eps}
nest.SetStatus(neurons, {"synaptic_elements":{"Den_exc": SP_OFF_dict, "Axon_exc":SP_OFF_dict}})
However, this crashes the Kernel with the following error:
terminate called after throwing an instance of 'nest::KernelException' what(): Last update of the calcium concentration does not match the last update of the synaptic element.
I don't fully know why the Kernel does not like this SetStatus() call.
[Q2] Is there something that I may be doing wrong? Can anyone
please
recommend a solution?
I am currently using NESTv2.20 for all my simulations on HPC. But,
I am
happy to move to NESTv3.1 too.
Many thanks for the support!
Best, Aadhar