void
nest::ac_generator::update( Time const& origin, const long from, const long to )
{
  assert(
    to >= 0 && ( delay ) from < kernel().connection_manager.get_min_delay() );
  assert( from < to );

  long start = origin.get_steps();

  CurrentEvent ce;
  for ( long lag = from; lag < to; ++lag )
  {
    S_.I_ = 0.0;

    if ( device_.is_active( Time::step( start + lag ) ) )
    {
      const double y_0 = S_.y_0_;
      S_.y_0_ = V_.A_00_ * y_0 + V_.A_01_ * S_.y_1_;
      S_.y_1_ = V_.A_10_ * y_0 + V_.A_11_ * S_.y_1_;
      S_.I_ = S_.y_1_ + P_.offset_;

      ce.set_current( S_.I_ );
      kernel().event_delivery_manager.send( *this, ce, lag );
    }
    B_.logger_.record_data( origin.get_steps() + lag );
  }
}
void
nest::izhikevich::handle( CurrentEvent& e )
{
    assert( e.get_delay() > 0 );

    const double_t c = e.get_current();
    const double_t w = e.get_weight();
    B_.currents_.add_value( e.get_rel_delivery_steps( network()->get_slice_origin() ), w * c );
}
void
nest::iaf_cond_alpha::handle( CurrentEvent& e )
{
  assert( e.get_delay_steps() > 0 );

  // add weighted current; HEP 2002-10-04
  B_.currents_.add_value(
    e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ),
    e.get_weight() * e.get_current() );
}
void
nest::izhikevich::handle( CurrentEvent& e )
{
  assert( e.get_delay() > 0 );

  const double_t c = e.get_current();
  const double_t w = e.get_weight();
  B_.currents_.add_value(
    e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), w * c );
}
void mynest::coronet_neuron::handle(CurrentEvent& e)
{
  assert(e.get_delay() > 0);

  const double_t c=e.get_current();
  const double_t w=e.get_weight();

  // add weighted current; HEP 2002-10-04
  B_.currents_.add_value(e.get_rel_delivery_steps(network()->get_slice_origin()), 
		      w *c);
}
Exemple #6
0
void nest::iaf_psc_alpha_mod::handle(CurrentEvent& e)
{
  assert(e.get_delay() > 0);

  const double_t I = e.get_current();
  const double_t w = e.get_weight();

  // add weighted current; HEP 2002-10-04
  B_.currents_.add_value(e.get_rel_delivery_steps(network()->get_slice_origin()),
		                     w * I);
}
void
nest::iaf_tum_2000::handle( CurrentEvent& e )
{
  assert( e.get_delay() > 0 );

  const double_t c = e.get_current();
  const double_t w = e.get_weight();

  // add weighted current; HEP 2002-10-04
  B_.currents_.add_value(
    e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), w * c );
}
void
iaf_psc_alpha::handle( CurrentEvent& e )
{
  assert( e.get_delay() > 0 );

  const double I = e.get_current();
  const double w = e.get_weight();

  B_.currents_.add_value(
    e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ),
    w * I );
}
void
nest::dc_generator::update( Time const& origin, const long from, const long to )
{
  long start = origin.get_steps();

  CurrentEvent ce;
  ce.set_current( P_.amp_ );

  for ( long offs = from; offs < to; ++offs )
    if ( device_.is_active( Time::step( start + offs ) ) )
      kernel().event_delivery_manager.send( *this, ce, offs );
}
void
iaf_psc_alpha_multisynapse::handle( CurrentEvent& e )
{
  assert( e.get_delay() > 0 );

  const double_t I = e.get_current();
  const double_t w = e.get_weight();

  // add weighted current; HEP 2002-10-04
  B_.currents_.add_value(
    e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), w * I );
}
void
nest::dc_generator::update( Time const& origin, const long_t from, const long_t to )
{
  long_t start = origin.get_steps();

  CurrentEvent ce;
  ce.set_current( P_.amp_ );

  for ( long_t offs = from; offs < to; ++offs )
    if ( device_.is_active( Time::step( start + offs ) ) )
      network()->send( *this, ce, offs );
}
void
iaf_psc_delta_canon::handle( CurrentEvent& e )
{
  assert( e.get_delay() > 0 );

  const double_t c = e.get_current();
  const double_t w = e.get_weight();

  // add stepwise constant current; MH 2009-10-14
  B_.currents_.add_value(
    e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ), w * c );
}
Exemple #13
0
void nest::ac_generator::update(Time const & origin, const long_t from, const long_t to)
{
  long_t start = origin.get_steps();

  CurrentEvent ce;
  for ( long_t lag = from ; lag < to ; ++lag )
    if( device_.is_active(Time::step(start+lag) ))
      {
        const double_t y_0 = S_.y_0_;
        S_.y_0_ = V_.A_00_ * y_0 + V_.A_01_ * S_.y_1_;
        S_.y_1_ = V_.A_10_ * y_0 + V_.A_11_ * S_.y_1_;
        ce.set_current(S_.y_1_ + P_.offset_);
        network()->send(*this, ce, lag);
      }
}
void
nest::iaf_cond_alpha_mc::handle( CurrentEvent& e )
{
  assert( e.get_delay() > 0 );
  assert( 0 <= e.get_rport() && e.get_rport() < NCOMP ); // not 100% clean, should look at MIN, SUP

  // add weighted current; HEP 2002-10-04
  B_.currents_[ e.get_rport() ].add_value(
    e.get_rel_delivery_steps( kernel().simulation_manager.get_slice_origin() ),
    e.get_weight() * e.get_current() );
}