46 #ifndef Xyce_N_DEV_Synapse_h
47 #define Xyce_N_DEV_Synapse_h
68 static const char *
name() {
return "Synapse";}
123 void registerLIDs(
const std::vector<int> & intLIDVecRef,
124 const std::vector<int> & extLIDVecRef );
136 const std::vector< std::vector<int> > &
jacobianStamp()
const;
137 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
280 virtual bool updateState (
double * solVec,
double * staVec,
double * stoVec);
291 template <
typename ScalarT>
292 static ScalarT
Tsyn(
const ScalarT V,
const ScalarT Tmax,
const ScalarT Vthres,
const ScalarT Kp)
294 ScalarT result = Tmax / (1.0 + std::exp( -(V - Vthres) / Kp ) );
298 template <
typename ScalarT>
299 static ScalarT
PostCurrentEqu(
const ScalarT Vpost,
const ScalarT r,
const ScalarT g,
const ScalarT Erev)
301 ScalarT result = g * r * (Vpost - Erev);
305 template <
typename ScalarT>
306 static ScalarT
rEquF(
const ScalarT V,
const ScalarT r,
const ScalarT alpha,
const ScalarT beta,
307 const ScalarT Tmax,
const ScalarT Vthres,
const ScalarT Kp)
309 ScalarT result = alpha * Tsyn< ScalarT >(V, Tmax, Vthres, Kp) * (1.0 - r) - beta * r;