diff --git a/docs/source/tutorials/index.rst b/docs/source/tutorials/index.rst index 3770b2bb..84ac037d 100644 --- a/docs/source/tutorials/index.rst +++ b/docs/source/tutorials/index.rst @@ -4,5 +4,5 @@ Tutorials .. toctree:: :maxdepth: 1 - Tutorial-1_getting_started_with_SQuADDS.ipynb + Tutorial-1_Getting_started_with_SQuADDS.ipynb Tutorial-2_Contributing_to_SQuADDS.ipynb diff --git a/squadds/__init__.py b/squadds/__init__.py index e69de29b..27c6cae1 100644 --- a/squadds/__init__.py +++ b/squadds/__init__.py @@ -0,0 +1,12 @@ +import os + +__version__ = '0.1.0' +__license__ = "MIT License" +__copyright__ = 'Sadman Ahmed Shanto, Eli Levenson-Falk 2023' +__author__ = 'Sadman Ahmed Shanto, Eli Levenson-Falk' +__status__ = "Development" +__repo_path__ = os.path.dirname(os.path.abspath(__file__)) +__library_path__ = os.path.join(__repo_path__, "library") + + +from squadds.core.db import SQuADDS_DB \ No newline at end of file diff --git a/squadds/core/__init__.py b/squadds/core/__init__.py index 3ec79d5c..6a93a808 100644 --- a/squadds/core/__init__.py +++ b/squadds/core/__init__.py @@ -1,2 +1,2 @@ from .utils import * -from .selector import * \ No newline at end of file +from .design_patterns import * \ No newline at end of file diff --git a/squadds/core/db.py b/squadds/core/db.py new file mode 100644 index 00000000..8a859f4c --- /dev/null +++ b/squadds/core/db.py @@ -0,0 +1,333 @@ +from squadds.core.design_patterns import SingletonMeta +from datasets import get_dataset_config_names +from datasets import load_dataset +from tabulate import tabulate +import pprint +import pandas as pd + +def flatten_df_second_level(df): + # Initialize an empty dictionary to collect flattened data + flattened_data = {} + + # Iterate over each column in the DataFrame + for column in df.columns: + # Check if the column contains dictionary-like data + if isinstance(df[column].iloc[0], dict): + # Iterate over second-level keys and create new columns + for key in df[column].iloc[0].keys(): + flattened_data[f"{key}"] = df[column].apply(lambda x: x[key] if key in x else None) + else: + # For non-dictionary data, keep as is + flattened_data[column] = df[column] + + # Create a new DataFrame with the flattened data + new_df = pd.DataFrame(flattened_data) + return new_df + + +class SQuADDS_DB(metaclass=SingletonMeta): + + def __init__(self): + self.repo_name = "SQuADDS/SQuADDS_DB" + self.configs = self.supported_config_names() + self.selected_component_name = None + self.selected_component = None + self.selected_data_type = None + self.selected_confg = None + self.selected_qubit = None + self.selected_cavity = None + self.selected_coupler = None + self.selected_system = None + + def supported_components(self): + components = [] + for config in self.configs: + components.append(config.split("-")[0]) + return components + + def supported_component_names(self): + component_names = [] + for config in self.configs: + component_names.append(config.split("-")[1]) + return component_names + + def supported_data_types(self): + data_types = [] + for config in self.configs: + data_types.append(config.split("-")[2]) + return data_types + + def supported_config_names(self): + configs = get_dataset_config_names(self.repo_name) + return configs + + def get_configs(self): + # pretty print the config names + pprint.pprint(self.configs) + + def get_component_names(self, component=None): + if component is None: + print("Please specify a component") + return + if component not in self.supported_components(): + print("Component not supported. Available components are:") + print(self.supported_components()) + return + else: + component_names = [] + for config in self.configs: + if component in config: + component_names.append(config.split("-")[1]) + return component_names + + def view_component_names(self, component=None): + if component is None: + print("Please specify a component") + if component not in self.supported_components(): + print("Component not supported. Available components are:") + print(self.supported_components()+["CLT"]) #TODO: handle dynamically + else: + component_names = [] + for config in self.configs: + if component in config: + component_names.append(config.split("-")[1]) + print(component_names+["CLT"]) #TODO: handle dynamically + + + def view_datasets(self): + components = self.supported_components() + component_names = self.supported_component_names() + data_types = self.supported_data_types() + + # Create a list of rows for the table + table = [components, component_names, data_types] + + # Transpose the table (convert columns to rows) + table = list(map(list, zip(*table))) + + # Print the table with headers + print(tabulate(table, headers=["Component", "Component Name", "Data Available"],tablefmt="fancy_grid")) + + def get_dataset_info(self, component=None, component_name=None, data_type=None): + # do checks + if component is None: + print("Please specify a component") + return + if component_name is None: + print("Please specify a component type") + return + if data_type is None: + print("Please specify a data type") + return + + if component not in self.supported_components(): + print("Component not supported. Available components are:") + print(self.supported_components()) + return + + if component_name not in self.supported_component_names(): + print("Component name not supported. Available component names are:") + print(self.supported_component_names()) + return + if data_type not in self.supported_data_types(): + print("Data type not supported. Available data types are:") + print(self.supported_data_types()) + return + + # print the table of the dataset configs + config = component + "-" + component_name + "-" + data_type + + dataset = load_dataset(self.repo_name, config)["train"] + # describe the dataset and print in table format + print("="*80) + print("Dataset Features:") + pprint.pprint(dataset.features, depth=2) + print("\nDataset Description:") + print(dataset.description) + print("\nDataset Citation:") + print(dataset.citation) + print("\nDataset Homepage:") + print(dataset.homepage) + print("\nDataset License:") + print(dataset.license) + print("\nDataset Size in Bytes:") + print(dataset.size_in_bytes) + print("="*80) + + def view_all_contributors(self): + # Placeholder for the full contributor info + unique_contributors_info = [] + + for config in self.configs: + dataset = load_dataset(self.repo_name, config)["train"] + configs_contrib_info = dataset["contributor"] + + for contrib_info in configs_contrib_info: + # Extracting the relevant information + relevant_info = {key: contrib_info[key] for key in ['uploader', 'PI', 'group', 'institution']} + relevant_info['config'] = config # Add the config to the relevant info + + # Check if this combination of info is already in the list + if not any(existing_info['config'] == config and + existing_info['uploader'] == relevant_info['uploader'] and + existing_info['PI'] == relevant_info['PI'] and + existing_info['group'] == relevant_info['group'] and + existing_info['institution'] == relevant_info['institution'] + for existing_info in unique_contributors_info): + unique_contributors_info.append(relevant_info) + + print(tabulate(unique_contributors_info, headers="keys", tablefmt="fancy_grid")) + + def view_contributors_of_config(self, config): + dataset = load_dataset(self.repo_name, config)["train"] + configs_contrib_info = dataset["contributor"] + unique_contributors_info = [] + + for contrib_info in configs_contrib_info: + # Extracting the relevant information + relevant_info = {key: contrib_info[key] for key in ['uploader', 'PI', 'group', 'institution']} + if relevant_info not in unique_contributors_info: + unique_contributors_info.append(relevant_info) + + print(tabulate(unique_contributors_info, headers='keys', tablefmt="fancy_grid")) + + def view_contributors_of(self, component=None, component_name=None, data_type=None): + config = component + "-" + component_name + "-" + data_type + self.view_contributors_of_config(config) + + def select_components(self, component_dict=None): + # check if dict or string + if isinstance(component_dict, dict): + config = component_dict["component"] + "-" + component_dict["component_name"] + "-" + component_dict["data_type"] + elif isinstance(component_dict, str): + config = component_dict + print("Selected config: ", config) + + def select_system(self, components=None): + # Validation and checks + if isinstance(components, list): + for component in components: + if component not in self.supported_components(): + print(f"Component `{component}` not supported. Available components are:") + print(self.supported_components()) + return + else: + self.selected_system = components + + elif isinstance(components, str): + if components not in self.supported_components(): + print(f"Component `{components}` not supported. Available components are:") + print(self.supported_components()) + return + else: + self.selected_system = components + self.selected_component = components + + def select_qubit(self, qubit=None): + # check whether selected_component is qubit + if (self.selected_system == "qubit") or ("qubit" in self.selected_system): + self.selected_qubit = qubit + self.selected_component_name = qubit + self.selected_data_type = "cap_matrix" # TODO: handle dynamically + else: + raise UserWarning("Selected system is either not specified or does not contain a qubit! Please check `self.selected_system`") + + # check if qubit is supported + if self.selected_qubit not in self.supported_component_names(): + print(f"Qubit `{self.selected_qubit}` not supported. Available qubits are:") + self.view_component_names("qubit") + return + + def select_cavity_claw(self, cavity=None): + # check whether selected_component is cavity + if (self.selected_system == "cavity_claw") or ("cavity_claw" in self.selected_system): + self.selected_cavity = cavity + self.selected_component_name = cavity + self.selected_data_type = "eigenmode" # TODO: handle dynamically + else: + raise UserWarning("Selected system is either not specified or does not contain a cavity! Please check `self.selected_system`") + + # check if cavity is supported + if self.selected_cavity not in self.supported_component_names(): + print(f"Cavity `{self.selected_cavity}` not supported. Available cavities are:") + self.view_component_names("cavity_claw") + return + + def select_cavity(self, cavity=None): + # check whether selected_component is cavity + if (self.selected_system == "cavity") or ("cavity" in self.selected_system): + self.selected_cavity = cavity + self.selected_component_name = cavity + self.selected_data_type = "eigenmode" # TODO: handle dynamically + else: + raise UserWarning("Selected system is either not specified or does not contain a cavity! Please check `self.selected_system`") + + # check if cavity is supported + if self.selected_cavity not in self.supported_component_names(): + print(f"Cavity `{self.selected_cavity}` not supported. Available cavities are:") + self.view_component_names("cavity") + return + + def select_coupler(self, coupler=None): + # check whether selected_component is coupler + self.selected_coupler = coupler + self.selected_component_name = coupler + self.selected_data_type = "cap_matrix" # TODO: handle dynamically + + # check if coupler is supported + if self.selected_coupler not in self.supported_component_names()+["CLT"]: # TODO: handle dynamically + + print(f"Coupler `{self.selected_coupler}` not supported. Available couplers are:") + self.view_component_names("coupler") + return + + def get_dataset(self, data_type=None, component=None, component_name=None): + # Use the instance attributes if the user does not provide them + component = component if component is not None else self.selected_system + component_name = component_name if component_name is not None else self.selected_component_name + + # Check if system and component_name are still None + if component is None or component_name is None: + print("Both system and component name must be defined.") + return + + if data_type is None: + print("Please specify a data type.") + return + + # Check if the component is supported + if component not in self.supported_components(): + print("Component not supported. Available components are:") + print(self.supported_components()) + return + + # Check if the component name is supported + if component_name not in self.supported_component_names(): + print("Component name not supported. Available component names are:") + print(self.supported_component_names()) + return + + # Check if the data type is supported + if data_type not in self.supported_data_types(): + print("Data type not supported. Available data types are:") + print(self.supported_data_types()) + return + + # Construct the configuration string based on the provided or default values + config = f"{component}-{component_name}-{data_type}" + try: + df = load_dataset(self.repo_name, config)["train"].to_pandas() + return flatten_df_second_level(df) + except Exception as e: + print(f"An error occurred while loading the dataset: {e}") + return + + def selected_system_df(self): + if self.selected_system is None: + print("Selected system is not defined.") + return + elif isinstance(self.selected_system, str): + df = self.get_dataset(data_type=self.selected_data_type, component=self.selected_system, component_name=self.selected_component_name) + return df + elif isinstance(self.selected_system, list): + pass diff --git a/squadds/core/design_patterns.py b/squadds/core/design_patterns.py new file mode 100644 index 00000000..7baa4a6c --- /dev/null +++ b/squadds/core/design_patterns.py @@ -0,0 +1,8 @@ +class SingletonMeta(type): + _instances = {} + + def __call__(cls, *args, **kwargs): + if cls not in cls._instances: + instance = super().__call__(*args, **kwargs) + cls._instances[cls] = instance + return cls._instances[cls] diff --git a/squadds/core/selector.py b/squadds/core/selector.py index d44f4793..9bcf98ec 100644 --- a/squadds/core/selector.py +++ b/squadds/core/selector.py @@ -1,4 +1,4 @@ class Selector: - def __init__(self) + def __init__(self): pass \ No newline at end of file diff --git a/squadds/database/db.py b/squadds/database/db.py deleted file mode 100644 index 422d34de..00000000 --- a/squadds/database/db.py +++ /dev/null @@ -1,13 +0,0 @@ -class SQuADDS_DB: - - def __init__(self): - pass - - def get_component_types(self): - pass - - def select_component(self, component_type): - pass - - def get_component(self, component_id): - pass \ No newline at end of file diff --git a/tutorials/Tutorial-1_getting_started_with_SQuADDS.ipynb b/tutorials/Tutorial-1_getting_started_with_SQuADDS.ipynb index 1cfef1ab..f2de987e 100644 --- a/tutorials/Tutorial-1_getting_started_with_SQuADDS.ipynb +++ b/tutorials/Tutorial-1_getting_started_with_SQuADDS.ipynb @@ -19,9 +19,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], "source": [ "%load_ext autoreload\n", "%autoreload 2" @@ -29,9 +38,25 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Obtaining file:///Users/shanto/LFL/SQuADDS/SQuADDS\n", + " Preparing metadata (setup.py) ... \u001b[?25ldone\n", + "\u001b[?25hInstalling collected packages: SQuADDS\n", + " Attempting uninstall: SQuADDS\n", + " Found existing installation: SQuADDS 0.1\n", + " Uninstalling SQuADDS-0.1:\n", + " Successfully uninstalled SQuADDS-0.1\n", + " Running setup.py develop for SQuADDS\n", + "Successfully installed SQuADDS-0.1\n" + ] + } + ], "source": [ "!pip install -e ../." ] @@ -96,7 +121,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -108,11 +133,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 39, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['qubit', 'cavity_claw', 'coupler']\n", + "['TransmonCross', 'RouterMeander', 'NCap']\n", + "['cap_matrix', 'eigenmode', 'cap_matrix']\n" + ] + } + ], "source": [ - "configs" + "components = []\n", + "component_names = []\n", + "data_types = []\n", + "\n", + "for config in configs:\n", + " components.append(config.split(\"-\")[0])\n", + " component_names.append(config.split(\"-\")[1])\n", + " data_types.append(config.split(\"-\")[2])\n", + " \n", + "print(components)\n", + "print(component_names)\n", + "print(data_types)\n", + " " ] }, { @@ -143,10 +190,572 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 161, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "from squadds import SQuADDS_DB" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": {}, + "outputs": [], + "source": [ + "db = SQuADDS_DB()" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "╒═════════════╤══════════════════╤══════════════════╕\n", + "│ Component │ Component Name │ Data Available │\n", + "╞═════════════╪══════════════════╪══════════════════╡\n", + "│ qubit │ TransmonCross │ cap_matrix │\n", + "├─────────────┼──────────────────┼──────────────────┤\n", + "│ cavity_claw │ RouteMeander │ eigenmode │\n", + "├─────────────┼──────────────────┼──────────────────┤\n", + "│ coupler │ NCap │ cap_matrix │\n", + "╘═════════════╧══════════════════╧══════════════════╛\n" + ] + } + ], + "source": [ + "db.view_datasets()" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "================================================================================\n", + "Dataset Features:\n", + "{'contributor': {'PI': Value(dtype='string', id=None),\n", + " 'date_created': Value(dtype='string', id=None),\n", + " 'group': Value(dtype='string', id=None),\n", + " 'institution': Value(dtype='string', id=None),\n", + " 'uploader': Value(dtype='string', id=None)},\n", + " 'design': {'design_options': {...},\n", + " 'design_tool': Value(dtype='string', id=None)},\n", + " 'notes': {},\n", + " 'sim_options': {'renderer_options': {...},\n", + " 'setup': {...},\n", + " 'simulator': Value(dtype='string', id=None)},\n", + " 'sim_results': {'claw_to_claw': Value(dtype='float64', id=None),\n", + " 'claw_to_ground': Value(dtype='float64', id=None),\n", + " 'cross_to_claw': Value(dtype='float64', id=None),\n", + " 'cross_to_cross': Value(dtype='float64', id=None),\n", + " 'cross_to_ground': Value(dtype='float64', id=None),\n", + " 'ground_to_ground': Value(dtype='float64', id=None),\n", + " 'units': Value(dtype='string', id=None)}}\n", + "\n", + "Dataset Description:\n", + "\n", + "\n", + "Dataset Citation:\n", + "\n", + "\n", + "Dataset Homepage:\n", + "\n", + "\n", + "Dataset License:\n", + "\n", + "\n", + "Dataset Size in Bytes:\n", + "9700839\n", + "================================================================================\n" + ] + } + ], + "source": [ + "db.get_dataset_info(component=\"qubit\", component_name=\"TransmonCross\", data_type=\"cap_matrix\")" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "================================================================================\n", + "Dataset Features:\n", + "{'contributor': {'PI': Value(dtype='string', id=None),\n", + " 'date_created': Value(dtype='string', id=None),\n", + " 'group': Value(dtype='string', id=None),\n", + " 'institution': Value(dtype='string', id=None),\n", + " 'uploader': Value(dtype='string', id=None)},\n", + " 'design': {'coupler_type': Value(dtype='string', id=None),\n", + " 'design_options': {...},\n", + " 'design_tool': Value(dtype='string', id=None)},\n", + " 'notes': {},\n", + " 'sim_options': {'setup': {...}, 'simulator': Value(dtype='string', id=None)},\n", + " 'sim_results': {'cavity_frequency': Value(dtype='float64', id=None),\n", + " 'kappa': Value(dtype='float64', id=None),\n", + " 'units': Value(dtype='string', id=None)}}\n", + "\n", + "Dataset Description:\n", + "\n", + "\n", + "Dataset Citation:\n", + "\n", + "\n", + "Dataset Homepage:\n", + "\n", + "\n", + "Dataset License:\n", + "\n", + "\n", + "Dataset Size in Bytes:\n", + "879111\n", + "================================================================================\n" + ] + } + ], + "source": [ + "db.get_dataset_info(component=\"cavity_claw\", component_name=\"RouteMeander\", data_type=\"eigenmode\")" + ] + }, + { + "cell_type": "code", + "execution_count": 205, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
design_optionsdesign_toolPIdate_createdgroupinstitutionuploaderclaw_to_clawclaw_to_groundcross_to_clawcross_to_crosscross_to_groundground_to_groundunitsrenderer_optionssetupsimulator
0{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo94.9742190.865853.73363158.40783158.40783311.25590nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-10-25-153123LFLUSCAndre Kuo82.4428079.193782.93820188.15089188.15089333.52997nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
2{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo83.7641280.181303.16131104.35340104.35340237.02548nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
3{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-10-25-153126LFLUSCAndre Kuo103.3705797.224055.77590174.13928174.13928335.31609nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
4{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo68.9285465.686072.87375120.03923120.03923240.34085nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
......................................................
1929{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo106.43025101.531974.45645174.46380174.46380340.62919nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1930{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142549LFLUSCAndre Kuo121.10943112.625707.95178187.43537187.43537367.34003nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1931{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-10-25-153123LFLUSCAndre Kuo144.56289136.368107.65968172.14561172.14561372.39970nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1932{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo68.7641365.781162.4879556.7523056.75230166.57383nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1933{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142549LFLUSCAndre Kuo58.4574955.507962.5439662.0100062.01000162.42140nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
\n", + "

1934 rows × 17 columns

\n", + "
" + ], + "text/plain": [ + " design_options design_tool \\\n", + "0 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "2 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "3 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "4 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "... ... ... \n", + "1929 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1930 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1931 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1932 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1933 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "\n", + " PI date_created group institution uploader \\\n", + "0 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "1 Eli Levenson-Falk, PhD 2023-10-25-153123 LFL USC Andre Kuo \n", + "2 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "3 Eli Levenson-Falk, PhD 2023-10-25-153126 LFL USC Andre Kuo \n", + "4 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "... ... ... ... ... ... \n", + "1929 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "1930 Eli Levenson-Falk, PhD 2023-09-20-142549 LFL USC Andre Kuo \n", + "1931 Eli Levenson-Falk, PhD 2023-10-25-153123 LFL USC Andre Kuo \n", + "1932 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "1933 Eli Levenson-Falk, PhD 2023-09-20-142549 LFL USC Andre Kuo \n", + "\n", + " claw_to_claw claw_to_ground cross_to_claw cross_to_cross \\\n", + "0 94.97421 90.86585 3.73363 158.40783 \n", + "1 82.44280 79.19378 2.93820 188.15089 \n", + "2 83.76412 80.18130 3.16131 104.35340 \n", + "3 103.37057 97.22405 5.77590 174.13928 \n", + "4 68.92854 65.68607 2.87375 120.03923 \n", + "... ... ... ... ... \n", + "1929 106.43025 101.53197 4.45645 174.46380 \n", + "1930 121.10943 112.62570 7.95178 187.43537 \n", + "1931 144.56289 136.36810 7.65968 172.14561 \n", + "1932 68.76413 65.78116 2.48795 56.75230 \n", + "1933 58.45749 55.50796 2.54396 62.01000 \n", + "\n", + " cross_to_ground ground_to_ground units \\\n", + "0 158.40783 311.25590 nH \n", + "1 188.15089 333.52997 nH \n", + "2 104.35340 237.02548 nH \n", + "3 174.13928 335.31609 nH \n", + "4 120.03923 240.34085 nH \n", + "... ... ... ... \n", + "1929 174.46380 340.62919 nH \n", + "1930 187.43537 367.34003 nH \n", + "1931 172.14561 372.39970 nH \n", + "1932 56.75230 166.57383 nH \n", + "1933 62.01000 162.42140 nH \n", + "\n", + " renderer_options \\\n", + "0 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "2 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "3 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "4 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "... ... \n", + "1929 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1930 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1931 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1932 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1933 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "\n", + " setup simulator \n", + "0 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "2 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "3 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "4 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "... ... ... \n", + "1929 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1930 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1931 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1932 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1933 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "\n", + "[1934 rows x 17 columns]" + ] + }, + "execution_count": 205, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "db.get_dataset(component=\"qubit\", component_name=\"TransmonCross\", data_type=\"cap_matrix\")" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['qubit-TransmonCross-cap_matrix',\n", + " 'cavity_claw-RouteMeander-eigenmode',\n", + " 'coupler-NCap-cap_matrix']\n" + ] + } + ], + "source": [ + "db.get_configs()" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "╒════════════╤════════════════════════╤═════════╤═══════════════╕\n", + "│ uploader │ PI │ group │ institution │\n", + "╞════════════╪════════════════════════╪═════════╪═══════════════╡\n", + "│ Andre Kuo │ Eli Levenson-Falk, PhD │ LFL │ USC │\n", + "╘════════════╧════════════════════════╧═════════╧═══════════════╛\n" + ] + } + ], + "source": [ + "db.view_contributors_of(\"qubit\", \"TransmonCross\", \"cap_matrix\")" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "╒════════════╤════════════════════════╤═════════╤═══════════════╤════════════════════════════════════╕\n", + "│ uploader │ PI │ group │ institution │ config │\n", + "╞════════════╪════════════════════════╪═════════╪═══════════════╪════════════════════════════════════╡\n", + "│ Andre Kuo │ Eli Levenson-Falk, PhD │ LFL │ USC │ qubit-TransmonCross-cap_matrix │\n", + "├────────────┼────────────────────────┼─────────┼───────────────┼────────────────────────────────────┤\n", + "│ Andre Kuo │ Eli Levenson-Falk, PhD │ LFL │ USC │ cavity_claw-RouteMeander-eigenmode │\n", + "├────────────┼────────────────────────┼─────────┼───────────────┼────────────────────────────────────┤\n", + "│ Andre Kuo │ Eli Levenson-Falk, PhD │ LFL │ USC │ coupler-NCap-cap_matrix │\n", + "╘════════════╧════════════════════════╧═════════╧═══════════════╧════════════════════════════════════╛\n" + ] + } + ], + "source": [ + "db.view_all_contributors()" + ] }, { "cell_type": "markdown", @@ -155,6 +764,441 @@ "### Querying for the a target qubit design" ] }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [], + "source": [ + "db.select_system(\"qubit\")" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [], + "source": [ + "db.select_qubit(\"TransmonCross\")" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'qubit'" + ] + }, + "execution_count": 173, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "db.selected_system" + ] + }, + { + "cell_type": "code", + "execution_count": 204, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
design_optionsdesign_toolPIdate_createdgroupinstitutionuploaderclaw_to_clawclaw_to_groundcross_to_clawcross_to_crosscross_to_groundground_to_groundunitsrenderer_optionssetupsimulator
0{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo94.9742190.865853.73363158.40783158.40783311.25590nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-10-25-153123LFLUSCAndre Kuo82.4428079.193782.93820188.15089188.15089333.52997nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
2{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo83.7641280.181303.16131104.35340104.35340237.02548nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
3{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-10-25-153126LFLUSCAndre Kuo103.3705797.224055.77590174.13928174.13928335.31609nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
4{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo68.9285465.686072.87375120.03923120.03923240.34085nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
......................................................
1929{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo106.43025101.531974.45645174.46380174.46380340.62919nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1930{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142549LFLUSCAndre Kuo121.10943112.625707.95178187.43537187.43537367.34003nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1931{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-10-25-153123LFLUSCAndre Kuo144.56289136.368107.65968172.14561172.14561372.39970nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1932{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142547LFLUSCAndre Kuo68.7641365.781162.4879556.7523056.75230166.57383nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
1933{'aedt_hfss_capacitance': 0, 'aedt_hfss_induct...qiskit-metalEli Levenson-Falk, PhD2023-09-20-142549LFLUSCAndre Kuo58.4574955.507962.5439662.0100062.01000162.42140nH{'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name...{'auto_increase_solution_order': True, 'enable...Ansys HFSS
\n", + "

1934 rows × 17 columns

\n", + "
" + ], + "text/plain": [ + " design_options design_tool \\\n", + "0 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "2 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "3 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "4 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "... ... ... \n", + "1929 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1930 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1931 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1932 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "1933 {'aedt_hfss_capacitance': 0, 'aedt_hfss_induct... qiskit-metal \n", + "\n", + " PI date_created group institution uploader \\\n", + "0 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "1 Eli Levenson-Falk, PhD 2023-10-25-153123 LFL USC Andre Kuo \n", + "2 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "3 Eli Levenson-Falk, PhD 2023-10-25-153126 LFL USC Andre Kuo \n", + "4 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "... ... ... ... ... ... \n", + "1929 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "1930 Eli Levenson-Falk, PhD 2023-09-20-142549 LFL USC Andre Kuo \n", + "1931 Eli Levenson-Falk, PhD 2023-10-25-153123 LFL USC Andre Kuo \n", + "1932 Eli Levenson-Falk, PhD 2023-09-20-142547 LFL USC Andre Kuo \n", + "1933 Eli Levenson-Falk, PhD 2023-09-20-142549 LFL USC Andre Kuo \n", + "\n", + " claw_to_claw claw_to_ground cross_to_claw cross_to_cross \\\n", + "0 94.97421 90.86585 3.73363 158.40783 \n", + "1 82.44280 79.19378 2.93820 188.15089 \n", + "2 83.76412 80.18130 3.16131 104.35340 \n", + "3 103.37057 97.22405 5.77590 174.13928 \n", + "4 68.92854 65.68607 2.87375 120.03923 \n", + "... ... ... ... ... \n", + "1929 106.43025 101.53197 4.45645 174.46380 \n", + "1930 121.10943 112.62570 7.95178 187.43537 \n", + "1931 144.56289 136.36810 7.65968 172.14561 \n", + "1932 68.76413 65.78116 2.48795 56.75230 \n", + "1933 58.45749 55.50796 2.54396 62.01000 \n", + "\n", + " cross_to_ground ground_to_ground units \\\n", + "0 158.40783 311.25590 nH \n", + "1 188.15089 333.52997 nH \n", + "2 104.35340 237.02548 nH \n", + "3 174.13928 335.31609 nH \n", + "4 120.03923 240.34085 nH \n", + "... ... ... ... \n", + "1929 174.46380 340.62919 nH \n", + "1930 187.43537 367.34003 nH \n", + "1931 172.14561 372.39970 nH \n", + "1932 56.75230 166.57383 nH \n", + "1933 62.01000 162.42140 nH \n", + "\n", + " renderer_options \\\n", + "0 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "2 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "3 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "4 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "... ... \n", + "1929 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1930 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1931 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1932 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "1933 {'Cj': 0, 'Lj': '10nH', '_Rj': 0, 'design_name... \n", + "\n", + " setup simulator \n", + "0 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "2 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "3 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "4 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "... ... ... \n", + "1929 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1930 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1931 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1932 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "1933 {'auto_increase_solution_order': True, 'enable... Ansys HFSS \n", + "\n", + "[1934 rows x 17 columns]" + ] + }, + "execution_count": 204, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = db.selected_system_df()\n", + "df" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Querying for a target cavity design" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [], + "source": [ + "db.select_system(\"cavity_claw\")" + ] + }, + { + "cell_type": "code", + "execution_count": 212, + "metadata": {}, + "outputs": [], + "source": [ + "db.select_cavity_claw(\"RouteMeander\")" + ] + }, + { + "cell_type": "code", + "execution_count": 219, + "metadata": {}, + "outputs": [], + "source": [ + "db.select_coupler(\"CLT\")" + ] + }, { "cell_type": "code", "execution_count": null, @@ -171,10 +1215,301 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 154, "metadata": {}, "outputs": [], - "source": [] + "source": [ + "db.select_system([\"qubit\",\"cavity_claw\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
coupler_typedesign_optionsdesign_toolPIdate_createdgroupinstitutionuploadercavity_frequencykappaunitssetupsimulator
0CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-01-170608LFLUSCAndre Kuo5.353550e+09161106.598429Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
1CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-04-124953LFLUSCAndre Kuo8.399241e+09268412.116632Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
2CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-09-204334LFLUSCAndre Kuo8.694845e+09255873.654612Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
3CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-08-173545LFLUSCAndre Kuo6.616574e+0930459.761161Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
4CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-09-204334LFLUSCAndre Kuo7.986835e+09208304.221064Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
..........................................
229CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-01-170608LFLUSCAndre Kuo4.949469e+09126438.881378Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
230CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-04-124953LFLUSCAndre Kuo8.805442e+09291439.656224Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
231CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-06-224829LFLUSCAndre Kuo6.597444e+09587144.918000Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
232CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-09-204334LFLUSCAndre Kuo8.116894e+09209744.544864Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
233CLT{'claw_opts': {'connection_pads': {'readout': ...qiskit-metalEli Levenson-Falk, PhD2023-12-01-170608LFLUSCAndre Kuo5.145996e+09155139.565546Hz{'basis_order': 1, 'max_delta_f': 0.05, 'max_p...Ansys HFSS
\n", + "

234 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " coupler_type design_options \\\n", + "0 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "1 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "2 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "3 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "4 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + ".. ... ... \n", + "229 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "230 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "231 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "232 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "233 CLT {'claw_opts': {'connection_pads': {'readout': ... \n", + "\n", + " design_tool PI date_created group \\\n", + "0 qiskit-metal Eli Levenson-Falk, PhD 2023-12-01-170608 LFL \n", + "1 qiskit-metal Eli Levenson-Falk, PhD 2023-12-04-124953 LFL \n", + "2 qiskit-metal Eli Levenson-Falk, PhD 2023-12-09-204334 LFL \n", + "3 qiskit-metal Eli Levenson-Falk, PhD 2023-12-08-173545 LFL \n", + "4 qiskit-metal Eli Levenson-Falk, PhD 2023-12-09-204334 LFL \n", + ".. ... ... ... ... \n", + "229 qiskit-metal Eli Levenson-Falk, PhD 2023-12-01-170608 LFL \n", + "230 qiskit-metal Eli Levenson-Falk, PhD 2023-12-04-124953 LFL \n", + "231 qiskit-metal Eli Levenson-Falk, PhD 2023-12-06-224829 LFL \n", + "232 qiskit-metal Eli Levenson-Falk, PhD 2023-12-09-204334 LFL \n", + "233 qiskit-metal Eli Levenson-Falk, PhD 2023-12-01-170608 LFL \n", + "\n", + " institution uploader cavity_frequency kappa units \\\n", + "0 USC Andre Kuo 5.353550e+09 161106.598429 Hz \n", + "1 USC Andre Kuo 8.399241e+09 268412.116632 Hz \n", + "2 USC Andre Kuo 8.694845e+09 255873.654612 Hz \n", + "3 USC Andre Kuo 6.616574e+09 30459.761161 Hz \n", + "4 USC Andre Kuo 7.986835e+09 208304.221064 Hz \n", + ".. ... ... ... ... ... \n", + "229 USC Andre Kuo 4.949469e+09 126438.881378 Hz \n", + "230 USC Andre Kuo 8.805442e+09 291439.656224 Hz \n", + "231 USC Andre Kuo 6.597444e+09 587144.918000 Hz \n", + "232 USC Andre Kuo 8.116894e+09 209744.544864 Hz \n", + "233 USC Andre Kuo 5.145996e+09 155139.565546 Hz \n", + "\n", + " setup simulator \n", + "0 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "1 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "2 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "3 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "4 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + ".. ... ... \n", + "229 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "230 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "231 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "232 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "233 {'basis_order': 1, 'max_delta_f': 0.05, 'max_p... Ansys HFSS \n", + "\n", + "[234 rows x 13 columns]" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = db.selected_system_df()\n", + "df" + ] }, { "cell_type": "markdown", @@ -194,7 +1529,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Next Steps...\n", + "## Next Steps...\n", "\n", "Let's do a quick recap of what we have learned in this tutorial:\n", "\n", @@ -211,7 +1546,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# License\n", + "## License\n", "
\n", "

This code is a part of SQuADDS

\n", "

Developed by Sadman Ahmed Shanto

\n", @@ -220,11 +1555,6 @@ "

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

\n", "
\n" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] } ], "metadata": { diff --git a/tutorials/Tutorial-2_Contributing_to_SQuADDS.ipynb b/tutorials/Tutorial-2_Contributing_to_SQuADDS.ipynb index 97e80960..f80d123b 100644 --- a/tutorials/Tutorial-2_Contributing_to_SQuADDS.ipynb +++ b/tutorials/Tutorial-2_Contributing_to_SQuADDS.ipynb @@ -290,7 +290,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# License\n", + "## License\n", "
\n", "

This code is a part of SQuADDS

\n", "

Developed by Sadman Ahmed Shanto

\n",