Skip to content
Snippets Groups Projects
Verified Commit 7317f76d authored by Valentin Bruch's avatar Valentin Bruch
Browse files

gen_data: new parameter --vac_omega

parent 50a7abd1
No related branches found
No related tags found
No related merge requests found
...@@ -106,8 +106,11 @@ def gen_option_iter(steps=None, scale=None, **options): ...@@ -106,8 +106,11 @@ def gen_option_iter(steps=None, scale=None, **options):
for index in np.ndindex(*steps): for index in np.ndindex(*steps):
for key, (dim, array) in iter_variables.items(): for key, (dim, array) in iter_variables.items():
options[key] = array[index[dim]] 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)) result = options.copy()
yield 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(): def main():
...@@ -219,6 +222,8 @@ python -m frtrg_kondo.gen_data \\ ...@@ -219,6 +222,8 @@ python -m frtrg_kondo.gen_data \\
fourier_coef_group = phys_group.add_mutually_exclusive_group() fourier_coef_group = phys_group.add_mutually_exclusive_group()
fourier_coef_group.add_argument("--vac", metavar='float', type=float, nargs='+', default=0., fourier_coef_group.add_argument("--vac", metavar='float', type=float, nargs='+', default=0.,
help = "Vac, units of Tkrg") 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='*', fourier_coef_group.add_argument("--fourier_coef", metavar='tuple', type=float, nargs='*',
help = "Voltage Fourier arguments, units of Tkrg") help = "Voltage Fourier arguments, units of Tkrg")
phys_group.add_argument("--fourier_phases", metavar='tuple', type=float, nargs='*', phys_group.add_argument("--fourier_phases", metavar='tuple', type=float, nargs='*',
...@@ -359,16 +364,16 @@ python -m frtrg_kondo.gen_data \\ ...@@ -359,16 +364,16 @@ python -m frtrg_kondo.gen_data \\
if kondo_options["nmax"] < 0: if kondo_options["nmax"] < 0:
settings.logger.error(f"Invalid value nmax={nmax}: must be ≥0") settings.logger.error(f"Invalid value nmax={nmax}: must be ≥0")
continue 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(kondo_options)
settings.logger.debug(solver_options) settings.logger.debug(solver_options)
kondo = Kondo(**kondo_options) kondo = Kondo(**kondo_options)
kondo.run(**solver_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) kid, khash = dm.save_h5(kondo, filename, include)
if find_pole: if find_pole:
pole, solver = kondo.findPole(**solver_options) 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) dm.save_pole(kid, khash, pole)
else: else:
# generate data points in parallel # generate data points in parallel
...@@ -407,7 +412,7 @@ def save_data_mp(queue, lock, solver_options, filename, include='all', find_pole ...@@ -407,7 +412,7 @@ def save_data_mp(queue, lock, solver_options, filename, include='all', find_pole
if kondo_options["nmax"] < 0: if kondo_options["nmax"] < 0:
settings.logger.error(f"Invalid value nmax={kondo_options['nmax']}: must be ≥0") settings.logger.error(f"Invalid value nmax={kondo_options['nmax']}: must be ≥0")
continue 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(kondo_options)
settings.logger.debug(solver_options) settings.logger.debug(solver_options)
kondo = Kondo(**kondo_options) kondo = Kondo(**kondo_options)
...@@ -415,13 +420,13 @@ def save_data_mp(queue, lock, solver_options, filename, include='all', find_pole ...@@ -415,13 +420,13 @@ def save_data_mp(queue, lock, solver_options, filename, include='all', find_pole
lock.acquire() lock.acquire()
try: try:
kid = -1 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) kid, khash = dm.save_h5(kondo, filename, include, overwrite)
finally: finally:
lock.release() lock.release()
if find_pole and kid >= 0: if find_pole and kid >= 0:
pole, solver = kondo.findPole(**solver_options) 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) dm.save_pole(kid, khash, pole)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment