diff --git a/cadCAD/configuration/utils/__init__.py b/cadCAD/configuration/utils/__init__.py index d0d9aec..1ef09f3 100644 --- a/cadCAD/configuration/utils/__init__.py +++ b/cadCAD/configuration/utils/__init__.py @@ -6,7 +6,7 @@ import pandas as pd # Temporary from cadCAD.configuration.utils.depreciationHandler import sanitize_partial_state_updates -from cadCAD.utils import dict_filter, contains_type +from cadCAD.utils import dict_filter, contains_type, flatten_tabulated_dict, tabulate_dict # ToDo: Fix - Returns empty when partial_state_update is missing in Configuration @@ -122,4 +122,23 @@ def exo_update_per_ts(ep): else: return y, s[y] - return {es: ep_decorator(f, es) for es, f in ep.items()} \ No newline at end of file + return {es: ep_decorator(f, es) for es, f in ep.items()} + + +# Param Sweep enabling middleware +def config_sim(d): + def process_variables(d): + return flatten_tabulated_dict(tabulate_dict(d)) + + if "M" in d: + return [ + { + "N": d["N"], + "T": d["T"], + "M": M + } + for M in process_variables(d["M"]) + ] + else: + d["M"] = [{}] + return d \ No newline at end of file diff --git a/cadCAD/configuration/utils/parameterSweep.py b/cadCAD/configuration/utils/parameterSweep.py deleted file mode 100644 index a91e938..0000000 --- a/cadCAD/configuration/utils/parameterSweep.py +++ /dev/null @@ -1,20 +0,0 @@ -from cadCAD.utils import flatten_tabulated_dict, tabulate_dict - - -def process_variables(d): - return flatten_tabulated_dict(tabulate_dict(d)) - - -def config_sim(d): - if "M" in d: - return [ - { - "N": d["N"], - "T": d["T"], - "M": M - } - for M in process_variables(d["M"]) - ] - else: - d["M"] = [{}] - return d \ No newline at end of file diff --git a/cadCAD/engine/simulation.py b/cadCAD/engine/simulation.py index a62d1bb..9c3eeec 100644 --- a/cadCAD/engine/simulation.py +++ b/cadCAD/engine/simulation.py @@ -86,6 +86,7 @@ class Executor: self.apply_env_proc(env_processes, last_in_copy, last_in_copy['timestep']) + # ToDo: make 'substep' & 'timestep' reserve fields last_in_copy['substep'], last_in_copy['timestep'], last_in_copy['run'] = sub_step, time_step, run sL.append(last_in_copy) diff --git a/simulations/validation/config1.py b/simulations/validation/config1.py index 2c26f91..d2a8f2b 100644 --- a/simulations/validation/config1.py +++ b/simulations/validation/config1.py @@ -3,8 +3,7 @@ import numpy as np from datetime import timedelta from cadCAD.configuration import append_configs -from cadCAD.configuration.utils import proc_trigger, bound_norm_random, ep_time_step -from cadCAD.configuration.utils.parameterSweep import config_sim +from cadCAD.configuration.utils import proc_trigger, bound_norm_random, ep_time_step, config_sim seeds = { diff --git a/simulations/validation/config2.py b/simulations/validation/config2.py index 0247c9b..80adcb5 100644 --- a/simulations/validation/config2.py +++ b/simulations/validation/config2.py @@ -3,8 +3,8 @@ import numpy as np from datetime import timedelta from cadCAD.configuration import append_configs -from cadCAD.configuration.utils import proc_trigger, bound_norm_random, ep_time_step -from cadCAD.configuration.utils.parameterSweep import config_sim +from cadCAD.configuration.utils import proc_trigger, bound_norm_random, ep_time_step, config_sim + seeds = { 'z': np.random.RandomState(1), diff --git a/simulations/validation/config4.py b/simulations/validation/config4.py index 62f626f..164df26 100644 --- a/simulations/validation/config4.py +++ b/simulations/validation/config4.py @@ -3,8 +3,7 @@ import numpy as np from datetime import timedelta from cadCAD.configuration import append_configs -from cadCAD.configuration.utils import proc_trigger, bound_norm_random, ep_time_step -from cadCAD.configuration.utils.parameterSweep import config_sim +from cadCAD.configuration.utils import proc_trigger, bound_norm_random, ep_time_step, config_sim seeds = { diff --git a/simulations/validation/sweep_config.py b/simulations/validation/sweep_config.py index 2350d95..e014b94 100644 --- a/simulations/validation/sweep_config.py +++ b/simulations/validation/sweep_config.py @@ -4,8 +4,7 @@ from datetime import timedelta import pprint from cadCAD.configuration import append_configs -from cadCAD.configuration.utils import proc_trigger, ep_time_step -from cadCAD.configuration.utils.parameterSweep import config_sim +from cadCAD.configuration.utils import proc_trigger, ep_time_step, config_sim from typing import Dict, List