- Renamed
cct.vph
tocct.freq
(inqmix.circuit.EmbeddingCircuit
). The normalized photon voltage is equivalent to the normalized frequency. I think frequency is easier to understand so I changed it. - Deleted the command line scripts (
bin/
). There was only one script and it was pretty obscure so I descided to delete it. - Moved
qtcurrent_all_freq()
function fromqmix.qtcurrent
toqmix.harmonic_balance
. Again, it's a pretty obscure function and it's only used in theharmonic_balance
module, so I moved it. - Deleted
qtcurrent_std
fromqmix.qtcurrent
. This function calculated the "standard" output values, but this was pretty arbitrary. It also didn't really simplify the package at all so I deleted it.
- Added more detailed benchmarking and profiling scripts (found in
QMix/profile/
). qmix.qtcurrent.qtcurrent
is now ~20% faster for 1 tone.qmix.harmonic_balance.harmonic_balance
is ~20% faster for 1 or 2 tones, and ~10% faster for 3 tones.
- Travis CI now automatically rebuilds the online documentation on each new commit.
- Added information on how to contribute to QMix to README.
- Added docstrings to many private functions. This should allow new users to understand the inner workings a bit better.
QMix/examples/
renamedQMix/notebooks/
- Removed
codemeta.json
andsetup.cfg
. - Fixed several bugs with Travis CI.
- Process experimental data in a consistent order (i.e., I-V and IF data should be processed in the same way).
- Add warning if normal resistance is too low or too high. This can help to detect if you are using the wrong units for the current.
- Make parameters in
qmix.exp.parameters
more consistent. Changes include:voffset_range
, which defines where the voltage offset is potentially found, is now defined as a list. E.g., if the experimental voltage offset could be found anywhere between -0.5mV and 0.1mV, you now usevoffset_range=(-0.5e-3, 0.1e-3)
. This change is backwards compatible, so you can still define it as a float if you like. For example, if you setvoffset_range=1e-3
, this is equivalent tovoffset_range=(-1e-3, 1e-3)
.rn_vmin
andrn_vmax
, which previously defined where the normal resistance was calculated, are now combined intovrn
. Previously, this was defined usingrn_vmin
andrn_vmax
. Now, it is defined usingvrn
as a list. For example, if you previously usedrn_vmin=4e-3
andrn_vmax=5e-3
, you would now usevrn=(4e-3, 5e-3)
. This change is backwards compatible, so you can still usern_vmin
andrn_vmax
.vshot
, which controls where the shot noise slope is calculated, is now a list of lists, so that multiple voltage ranges can be defined. For example, if the shot noise slope is smooth between from 4-5mV and 5.5-6mV, you can definevshot=((4e-3,5e-3),(5.5e-3,6e-3))
. This change is backwards compatible, so you can still use a normal list.cut_low
andcut_high
, which previously defined the region of the first photon step that would be used for impedance recovery, are now combined intofit_range
. For example, if you previously usedcut_low=0.25
andcut_high=0.2
, you should now usefit_interval=(0.25, 0.8)
. (NB: The way that the upper limit is defined has been changed!). In this example, the script will ignore the first 25% of the photon step and the last 20% during the impdance recovery process. This is backwards compatible, so you can still usecut_low
andcut_high
if you like.vgap_guess
andigap_guess
have been removed. They actually weren't needed all along.ifdata_vmax
, which previously defined the maximum IF voltage to import, has been removed. QMix now uses the value fromvmax
instead.ifdata_sigma
, which defines the width of the filter for the IF data, is now defined in units [V]. Previously, it was defined by the number of data points. This is also backwards compatible (ififdata_sigma
is >0.5, it will assume that you are defining it by the number steps).
- Add basic timing scripts for
qmix.harmonic_balance
. Seespeed/
directory. - Use a better initial guess for the junction voltage in the
qmix.harmonic_balance.harmonic_balance
function.
- Improve code coverage. Now 99.0% covered!
- Add command line script to plot IF response from experimental data (
bin/plot-if-response.py
).
- Optimize
qmix.qtcurrent
using Numba and JIT. 4 tone simulations are now 1.5 times faster! - Add basic timing scripts for
qmix.qtcurrent
. Seespeed/
directory.
- Move the code that is used for analyzing the IF response into a new module:
qmix.exp.if_response
.
- Add ability to force embedding impedance in
qmix.exp.exp_data.RawData
. The embedding voltage will then be calculated using this value.
- Improve test coverage for
qmix.circuit
,qmix.respfn
, andqmix.exp.exp_data
. - Add tests for new module (
qmix.exp.if_response
). - Add notebook to recreate plots from Kittara's thesis. (For the purpose of validation.)
- Improved progress messages from
qmix.harmonic_balance.harmonic_balance
. - Add ability to plot response function (
qmix.respfn.RespFn
). - Always use default parameters from
qmix.exp.parameters
(i.e., reduce the number of magic numbers). - Add ability to call
qmix.respfn.RespFn
by adding__call__
method. This will return the interpolated response function (a complex value). - Fix error in
qmix.harmonic_balance.harmonic_balance
(when Thevenin voltage is checked). - Other minor changes to documentation.
- This release was created after the JOSS review.
- There are minor changes to the documentation, but no changes to the code base.
- All plotting functions now accept and return Matplotlib axis objects.
- When analyzing experimental data, you can now pass either CSV files or Numpy arrays to
RawData
andRawData0
.
- In the
qmix.respfn.RespFn
class, thef_idc
,f_ikk
,f_didc
, andf_dikk
attributes were all made private by adding a leading underscore. They are replaced by theidc
,ikk
,didc
anddikk
methods, respectively. - In the experimental data module, the parameter
iv_multiplier
was renamedi_multiplier
.RawData0
andRawData
use this parameter to correct imported current values. (All imported current data is multiplied byi_multiplier
.) I also addedv_multiplier
, which does the same things, except for imported voltage data.
- Dropped Travis-CI testing with Python 3.5-dev and 3.6-dev. QMix is now tested with 3.5, 3.6 and 3.7-dev.
- Added automatic coverage testing through coveralls.io.
- Fixed potential issue with file paths. Previously, file paths were built assuming a mac operating system (e.g.,
"some-dir/this-figure.png"
). The package was updated to now useos.path.join("some-dir", "this-figure.png")
, which is machine independent.
- Added package API to web page.
- Added more information about how experimental is stored and imported into QMix.
- Added information on getting support and contributing to QMix.
- Added descriptions of different response function types to docstring in
qmix.respfn.py
. - Added more comments on keyword arguments and attributes for classes in
qmix.circuit.py
andqmix.respfn.py
. (This should help to explain some of the SIS-related jargon.) - Added use cases for many class methods.
- Fixed documentation for
qmix.exp.parameters.py
. - Updated workflow examples.
- Other (minor) changes.
- Fixed description in setup.py. Previously, there were some non-ASCII characters, which were causing issues on Windows installations.
Initial release.