# os.setenv('OMP_NUM_THREADS', '1') # os.environ["OMP_NUM_THREADS"] = "1" initialVec = lib.splayState(i_ext_e, rand(num_e), lib.derivative) v_e = initialVec[:, 0] m_e = lib.m_e_inf(v_e) h_e = initialVec[:, 1] n_e = initialVec[:, 2] q_e = np.zeros(num_e) s_e = np.zeros(num_e) v_i = -75.0 * np.ones(num_i) m_i = lib.m_i_inf(v_i) h_i = lib.h_i_inf(v_i) n_i = lib.n_i_inf(v_i) q_i = np.zeros(num_i) s_i = np.zeros(num_i) initialConditions = np.hstack((v_e, h_e, n_e, q_e, s_e, v_i, h_i, n_i, q_i, s_i)) t = np.arange(0, t_final, dt) sol = odeint(lib.derivativePopulation, initialConditions, t) lfp = np.mean(sol[:, :num_e], axis=1)
start = time() adjacency_matrix = nx.to_numpy_array( nx.gnp_random_graph(num_i, p_gap, seed=seed)) # G_gap = adjacency_matrix * g_hat_gap / (p_gap * (num_i - 1.0)) # c = np.sum(G_gap, axis=1) initialConditions = lib.splayState(i_ext_i, num_i, lib.derivativeSingle) # v = initialConditions[:, 0] v = np.random.uniform(-100, 50, num_i) n = np.random.rand(num_i) h = np.random.rand(num_i) m = lib.m_i_inf(v) # h = initialConditions[:, 1] # n = initialConditions[:, 2] q = np.zeros(num_i) s = np.zeros(num_i) x0 = np.hstack((v, h, n, q, s)) t = np.arange(0, t_final, dt) sol = odeint(lib.derivative, x0, t) lfp = np.mean(sol[:, :num_i], axis=1) t_i_spikes = [] for i in range(num_i): ts_i = lib.spikeDetection(t, sol[:, i], spikeThreshold) t_i_spikes.append(ts_i)