BBN-Q / Auspex

Automated system for python-based experiments
Apache License 2.0
31 stars 14 forks source link

WIP: Parametric Sweeps and DataContainer improvements #494

Open grahamrow opened 3 years ago

grahamrow commented 3 years ago

This has ballooned into a larger PR:

  1. Remove adaptive refinement from the sweeper internals — this can be done using external loops with much less agitation.
  2. Add some general metadata to the AuspexDataContainer format, including a file format version, datestamp, and the possibility of adding arbitrary metadata to the writer. This still needs to be wired up to the experiment class in some useful way.
  3. Improve the way parametric sweep information is stored in the metadata, and improve the API for performing parametric sweeps.
  4. Allow general metafile sweeps for QGL recompilation. Example below:

        def mf(sigma):
            q1.pulse_params["sigma"] = sigma
            mf = RabiAmp(q1, np.linspace(-1,1,21))
            return mf
    
        exp = QubitExperiment(mf(5e-9), averages=5)
        exp.set_fake_data(x6_1, np.linspace(-1, 1, 21), random_mag=0.0)
        exp.add_sweep("q1_sigma", np.linspace(1e-9, 10e-9, 10), metafile_func=mf)
        exp.run_sweeps()

    Unlike before this "q1_sigma" sweep automatically creates a dummy parameter whose value gets passed to the specified metafile_func.