# Script to produce data for figures 4(a-c)
# Created by Matthew Asker 

import numpy as np
import sys
from next_reaction_method import next_reaction_lluis
import pandas as pd

a = 0.25
s = 0.1
total_sims = 10000
K_0 = 560
gamma = 11/14
params = [[80, 1e-4, 0.0],[80,1e-1,0.0],[80, 1e2, 0.0]] # [Nth, nu, delta]

#index = sys.argv[1]

for p in params:
    Nth, nu, delta = p
    N_C = np.zeros(total_sims)
    N_D = np.zeros(total_sims)
    
    for i in range(total_sims):      
        G = next_reaction_lluis(s, a, nu*(1-delta), nu*(1+delta), K_0*(1+gamma), K_0*(1-gamma), Nth, 1)
        G.run()
        
        N_C[i] = G.final_N_C
        N_D[i] = G.final_N_D
    
    raw_data = {'N_C' : N_C,
                'N_D' : N_D}
        
    filename = f'distribution [N_th, nu, delta]=[{Nth}, {nu}, {delta}]'       
    data = pd.DataFrame(raw_data, columns=['N_C', 'N_D'])
    data.to_csv(filename+'.csv', index=False)