diff --git a/gen_data.py b/gen_data.py index 3c2daefb6932d743d7f972673a850aad68bd1b61..856ba8fbfd3293e49e7e884ac68eceb6ccdd8410 100644 --- a/gen_data.py +++ b/gen_data.py @@ -106,8 +106,11 @@ def gen_option_iter(steps=None, scale=None, **options): for index in np.ndindex(*steps): for key, (dim, array) in iter_variables.items(): options[key] = array[index[dim]] - settings.logger.debug('step %s/%s: '%(index, steps) + ', '.join('%s=%s'%(key, value) for (key, value) in options.items() if key in iter_variables)) - yield options.copy() + result = options.copy() + if "vac_omega" in result: + result["vac"] = result.pop("vac_omega") * result["omega"] + settings.logger.debug('step %s/%s: '%(index, steps) + ', '.join('%s=%s'%(key, value) for (key, value) in result.items() if key in iter_variables)) + yield result def main(): @@ -219,6 +222,8 @@ python -m frtrg_kondo.gen_data \\ fourier_coef_group = phys_group.add_mutually_exclusive_group() fourier_coef_group.add_argument("--vac", metavar='float', type=float, nargs='+', default=0., help = "Vac, units of Tkrg") + fourier_coef_group.add_argument("--vac_omega", metavar='float', type=float, nargs='+', + help = "Vac/omega") fourier_coef_group.add_argument("--fourier_coef", metavar='tuple', type=float, nargs='*', help = "Voltage Fourier arguments, units of Tkrg") phys_group.add_argument("--fourier_phases", metavar='tuple', type=float, nargs='*', @@ -359,16 +364,16 @@ python -m frtrg_kondo.gen_data \\ if kondo_options["nmax"] < 0: settings.logger.error(f"Invalid value nmax={nmax}: must be ≥0") continue - settings.logger.info(f"Starting with Vdc={kondo_options['vdc']}, Vac={kondo_options['vac']}, Ω={kondo_options['omega']}, nmax={kondo_options['nmax']}") + settings.logger.info(f"Starting with Vdc={kondo_options['vdc']:.8g}, Vac={kondo_options['vac']:.8g}, Ω={kondo_options['omega']:.8g}, nmax={kondo_options['nmax']}") settings.logger.debug(kondo_options) settings.logger.debug(solver_options) kondo = Kondo(**kondo_options) kondo.run(**solver_options) - settings.logger.info(f"Saving Vdc={kondo_options['vdc']}, Vac={kondo_options['vac']}, Ω={kondo_options['omega']} to {filename}") + settings.logger.info(f"Saving Vdc={kondo_options['vdc']:.8g}, Vac={kondo_options['vac']:.8g}, Ω={kondo_options['omega']:.8g} to {filename}") kid, khash = dm.save_h5(kondo, filename, include) if find_pole: pole, solver = kondo.findPole(**solver_options) - settings.logger.info(f"Saving pole for Vdc={kondo_options['vdc']}, Vac={kondo_options['vac']}, Ω={kondo_options['omega']} to database") + settings.logger.info(f"Saving pole for Vdc={kondo_options['vdc']:.8g}, Vac={kondo_options['vac']:.8g}, Ω={kondo_options['omega']:.8g} to database") dm.save_pole(kid, khash, pole) else: # generate data points in parallel @@ -407,7 +412,7 @@ def save_data_mp(queue, lock, solver_options, filename, include='all', find_pole if kondo_options["nmax"] < 0: settings.logger.error(f"Invalid value nmax={kondo_options['nmax']}: must be ≥0") continue - settings.logger.info(f"Starting with Vdc={kondo_options['vdc']}, Vac={kondo_options['vac']}, Ω={kondo_options['omega']}, nmax={kondo_options['nmax']}") + settings.logger.info(f"Starting with Vdc={kondo_options['vdc']:.8g}, Vac={kondo_options['vac']:.8g}, Ω={kondo_options['omega']:.8g}, nmax={kondo_options['nmax']}") settings.logger.debug(kondo_options) settings.logger.debug(solver_options) kondo = Kondo(**kondo_options) @@ -415,13 +420,13 @@ def save_data_mp(queue, lock, solver_options, filename, include='all', find_pole lock.acquire() try: kid = -1 - settings.logger.info(f"Saving Vdc={kondo_options['vdc']}, Vac={kondo_options['vac']}, Ω={kondo_options['omega']} to {filename}") + settings.logger.info(f"Saving Vdc={kondo_options['vdc']:.8g}, Vac={kondo_options['vac']:.8g}, Ω={kondo_options['omega']:.8g} to {filename}") kid, khash = dm.save_h5(kondo, filename, include, overwrite) finally: lock.release() if find_pole and kid >= 0: pole, solver = kondo.findPole(**solver_options) - settings.logger.info(f"Saving pole for Vdc={kondo_options['vdc']}, Vac={kondo_options['vac']}, Ω={kondo_options['omega']} to database") + settings.logger.info(f"Saving pole for Vdc={kondo_options['vdc']:.8g}, Vac={kondo_options['vac']:.8g}, Ω={kondo_options['omega']:.8g} to database") dm.save_pole(kid, khash, pole)