cadCAD/engine/run.py

29 lines
1.0 KiB
Python

import pandas as pd
from tabulate import tabulate
from engine.configProcessor import generate_config, create_tensor_field
from engine.mechanismExecutor import simulation
from engine.utils import flatten
from ui.config import state_dict, mechanisms, exogenous_states, env_processes, sim_config
from engine.multiproc import parallelize_simulations
def main():
states_list = [state_dict]
ep = list(exogenous_states.values())
config = generate_config(state_dict, mechanisms, ep)
T = sim_config['T']
N = sim_config['N']
configs = [config, config]
# Dimensions: N x r x mechs
if len(configs) > 1:
simulations = parallelize_simulations(simulation, states_list, configs, env_processes, T, N)
else:
simulations = [simulation(states_list, configs[0], env_processes, T, N)]
for result in simulations:
print(tabulate(create_tensor_field(mechanisms, ep), headers='keys', tablefmt='psql'))
print
print(tabulate(pd.DataFrame(flatten(result)), headers='keys', tablefmt='psql'))