diff --git a/binarycpython/utils/distribution_functions.py b/binarycpython/utils/distribution_functions.py index 278bbef122b138c9927c955fb2fef5bbc4c71ec1..f5f73e04e5360837a5d041e17cf66e2ff6e60b74 100644 --- a/binarycpython/utils/distribution_functions.py +++ b/binarycpython/utils/distribution_functions.py @@ -130,7 +130,7 @@ def three_part_powerlaw(M, M0, M1, M2, M_MAX, P1, P2, P3): # if M < M0: - p = 0 # Below 0 + p = 0 # Below lower bound elif M0 < M <= M1: p = three_part_powerlaw_constants[0] * (M ** P1) # Between M0 and M1 elif M1 < M <= M2: diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py index 5a3953a22643fda4048d7324db85458d0d543f9c..311e740354350ab5c9303d887bc34987116c87de 100644 --- a/binarycpython/utils/grid.py +++ b/binarycpython/utils/grid.py @@ -344,6 +344,7 @@ class Population(object): so, use a recursive function that goes over the all_info dict and finds those that fit TODO: Fix to write things to the directory. which options do which etc + TODO: theres flawed logic here. rewrite this part pls """ all_info = self.return_all_info( @@ -370,7 +371,11 @@ class Population(object): ) if use_datadir: - base_name = os.path.splitext(self.custom_options["base_filename"])[0] + if not self.custom_options.get('base_filename', None): + base_name = 'simulation_{}'.format(datetime.datetime.strftime(datetime.datetime.now(), '%Y%m%d_%H%M%S')) + else: + base_name = os.path.splitext(self.custom_options["base_filename"])[0] + settings_name = base_name + "_settings.json" # Check directory, make if necessary @@ -461,6 +466,11 @@ class Population(object): # Dry run and getting starcount self.grid_options["probtot"] = 0 + # Put in check + if len(self.grid_options["grid_variables"]) == 0: + print("Error: you havent defined any grid variables! Aborting") + raise ValueError + self.generate_grid_code(dry_run=True) self.load_grid_function() @@ -488,6 +498,8 @@ class Population(object): # self.load_grid_function() + ####### + def cleanup(self): """ Function that handles all the cleaning up after the grid has been generated and/or run @@ -1204,6 +1216,11 @@ class Population(object): # warning; dont use yet. not fully tested. """ + + + + + if self.grid_options["system_generator"]: # Check if there is an output dir configured if self.custom_options.get("data_dir", None): @@ -1241,7 +1258,7 @@ class Population(object): else: full_system_dict = self.bse_options.copy() - for system in self.grid_options["system_generator"]: + for system in self.grid_options["system_generator"](self): # update values with current system values full_system_dict.update(system)