diff --git a/src/single-core-data-gen/generate_signal.py b/src/single-core-data-gen/generate_signal.py index de23574..957a008 100644 --- a/src/single-core-data-gen/generate_signal.py +++ b/src/single-core-data-gen/generate_signal.py @@ -244,8 +244,8 @@ def initialize_fiber_and_data(config, input_data_override=None): D=config["fiber"]["d"], S=config["fiber"]["s"], ) - if config["fiber"]["birefsteps"] > 0: - config["fiber"]["birefseed"] = config["fiber"].get( + if config["fiber"].get("birefsteps", 0) > 0: + seed = config["fiber"].get( "birefseed", (int(time.time() * 1000)) % 2**32 ) py_fiber.birefarray = pypho.birefringence_segment.create_pmd_fibre( @@ -253,7 +253,7 @@ def initialize_fiber_and_data(config, input_data_override=None): py_fiber.l / config["fiber"]["birefsteps"], # maxDeltaD=config["fiber"]["d"]/5, maxDeltaBeta = config["fiber"].get("max_delta_beta", 0), - seed=config["fiber"]["birefseed"], + seed=seed, ) c_params = pypho.cfiber.ParamsWrapper.from_fiber( py_fiber, max_step=1e3 if py_fiber.gamma == 0 else 200 @@ -296,7 +296,7 @@ def save_data(data, config): f"alpha = {config['fiber']['alpha']}", f"D = {config['fiber']['d']}", f"S = {config['fiber']['s']}", - f"birefsteps = {config['fiber']['birefsteps']}", + f"birefsteps = {config['fiber'].get('birefsteps',0)}", f"max_delta_beta = {config['fiber'].get('max_delta_beta', 0)}", f"birefseed = {hex(birefseed)}" if birefseed else "; birefseed = not set", "", @@ -336,7 +336,7 @@ def save_data(data, config): config["fiber"]["d"], config["fiber"]["s"], f"{config['signal']['modulation'].upper()}{config['signal']['mod_order']}", - config["fiber"]["birefsteps"], + config['fiber'].get('birefsteps',0), config["fiber"].get("max_delta_beta", 0), ) @@ -366,7 +366,7 @@ def length_loop(config, lengths, incremental=False, bireflength=None, save=True) else: print(f"\nGenerating data for fiber length {length}m") config["fiber"]["length"] = length - if bireflength is not None: + if bireflength is not None and bireflength > 0: config["fiber"]["birefsteps"] = length // bireflength birefsteps_running += config["fiber"]["birefsteps"] # set the input data to the output data of the previous run @@ -520,9 +520,15 @@ if __name__ == "__main__": add_pypho.show_log() config = get_config() - # lengths = np.arange(50000, 150000+6000, 10000) - lengths = [10000] - length_loop(config, lengths, incremental=False, bireflength=1000, save=True) + ranges = (10000,) + # scales = tuple(range(1, 10)) + scales = (1,) + lengths = [range_ * scale for range_ in ranges for scale in scales] + # lengths.append(10*max(ranges)) + lengths = [*lengths, *lengths] + lengths = sorted(lengths) + + length_loop(config, lengths, incremental=False, bireflength=None, save=True) # birefringence is constant over coupling length -> several 100m -> bireflength=1000 (m) # single_run_with_plot(config, save=False)