LOManalysis#

class LOManalysis(design: QDesign | None = None, renderer_name: str | None = None)[source]#

Performs Lumped Oscillator Model analysis on a simulated or user-provided capacitance matrix.

Default Setup:
  • junctions (Dict)
    • Lj (float): Junction inductance (in nH)

    • Cj (float): Junction capacitance (in fF)

  • freq_readout (float): Coupling readout frequency (in GHz).

  • freq_bus (Union[list, float]): Coupling bus frequencies (in GHz).
    • freq_bus can be a list with the order they appear in the capMatrix.

Data Labels:
  • lumped_oscillator (pd.DataFrame): Lumped oscillator result at the last simulation pass

  • lumped_oscillator_all (dict): of pd.DataFrame. Lumped oscillator resulting

    at every pass of the simulation

Initialize the Lumped Oscillator Model analysis.

Parameters:
  • design (QDesign) – Pointer to the main qiskit-metal design. Used to access the QRenderer. Defaults to None.

  • renderer_name (str, optional) – Which renderer to use. Valid entries: ‘q3d’. Defaults to None.

Attributes

data_labels = ['lumped_oscillator', 'lumped_oscillator_all']#

Default data labels.

default_setup = {'freq_bus': [6.0, 6.2], 'freq_readout': 7.0, 'junctions': {'Cj': 2, 'Lj': 12}}#

Default setup.

logger#

Returns the logger.

lumped_oscillator#

Getter

Returns:

Lumped oscillator result at the last simulation pass.

Return type:

dict

lumped_oscillator_all#

Getter

Returns:

each line corresponds to a simulation pass number

and the remainder of the data is the respective lump oscillator information.

Return type:

pd.DataFrame

setup#

Dictionary intended to be used to modify the analysis behavior.

Returns:

Current setup.

Return type:

Dict

Type:

Getter

supported_data#

Set that contains the names of the variables supported from the analysis.

Returns:

list of supported variable names.

Return type:

set

Type:

Getter

Methods

clear_data(data_name: str | list | None = None)#

Clear data. Can optionally specify one or more labels to delete those labels and data.

Parameters:

data_name (Union[str, list], optional) – Can list specific labels to clean. Defaults to None.

get_data(data_name: str | None = None)#

Retrieves the analysis module data. Returns None if nothing is found.

Parameters:

data_name (str, optional) – Label to query for data. If not specified, the entire dictionary is returned. Defaults to None.

Returns:

The data associated with the label, or the entire list of labels and data.

Return type:

Any

get_data_labels() list#

Retrieves the list of data labels currently set. Returns None if nothing is found.

Returns:

list of data names

Return type:

list

load_simulation_data(data_name: str, data)[source]#

Load simulation data for the following analysis. This will override any data found

Parameters:
  • data_name (str) – name of the variable

  • data (Any) – simulation output

plot_convergence(*args, **kwargs)[source]#

Plots alpha and frequency versus pass number, as well as convergence of delta (in %).

It accepts the same inputs as run_lom(), to allow regenerating the LOM results before plotting them.

plot_convergence_chi(*args, **kwargs)[source]#

Plot convergence of chi and g, both in MHz, as a function of pass number.

It accepts the same inputs as run_lom(), to allow regenerating the LOM results before plotting them.

print_run_args()#

Prints the args and kwargs that were used in the last run() of this Analysis instance.

run(*args, **kwargs)[source]#

Executes sequentially the system capacitance simulation (if a renderer was provided at creation of this object) and lom extraction by executing the methods LumpedElementsSim.run_sim(*args, **kwargs) and LOManalysis.run_lom(). For input parameter, see documentation for LumpedElementsSim.run_sim().

Returns:

Pass numbers (keys) and respective lump oscillator information (values).

Return type:

(dict)

run_lom()[source]#

Executes the lumped oscillator extraction from the capacitance matrix, and based on the setup values.

Returns:

Pass numbers (keys) and their respective capacitance matrices (values).

Return type:

dict

run_sweep(*args, **kwargs)#

User requests sweeper based on arguments from Sweeper.run_sweep().

save_run_args(**kwargs)#

Intended to be used to store the kwargs passed to the run() method, for repeatability and for later identification of the QAnalysis instance.

set_data(data_name: str, data: Any)#

Stores data in a structure for later retrieval. Could be output, intermediate or even input data. Current implementation uses Dict()

Parameters:
  • data_name (str) – Label for the data. Used a storage key.

  • data (Any) – Free format

setup_update(section: str | None = None, **kwargs)#

Intended to modify multiple setup settings at once, while retaining previous settings. If you intend to change a single setting, the better way is: setup.setting1 = value.

Parameters:

section (str) – Setup section that contains the setup keys to update.