Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
zlatko-minev committed Dec 31, 2024
1 parent fb8081b commit d76f76c
Showing 1 changed file with 18 additions and 30 deletions.
48 changes: 18 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,18 +112,13 @@ Now you're set up and ready to check out some of the other examples from our
[Qiskit Metal Tutorials](https://github.com/Qiskit/qiskit-metal/blob/main/tutorials/) repository or [Qiskit Metal Documentation](https://qiskit-community.github.io/qiskit-metal/tut/).



## Authors and Citation
Qiskit Metal is the work of [many people](https://github.com/Qiskit/qiskit-metal/pulse/monthly) who contribute to the project at different levels. Metal was conceived and developed by [Zlatko Minev](https://www.zlatko-minev.com) at IBM; then co-led with Thomas McConkey. If you use Qiskit Metal, please cite as per the included [BibTeX file](https://github.com/Qiskit/qiskit-metal/blob/main/Qiskit_Metal.bib). For icon attributions, see [here](https://github.com/Qiskit/qiskit-metal/blob/main/qiskit_metal/_gui/_imgs/icon_attributions.txt).


---

# Big Picture Architecutre Overview

### Diagram

The **Qiskit Metal** codebase is organized into several key modules, each with a distinct role in enabling the design, analysis, and visualization of quantum circuits. Below is an overview of the primary components and their interactions:
The **Qiskit Metal** codebase is organized into several key modules, each with a distinct role in enabling the design, analysis, and visualization of quantum circuits. Below is an overview of the primary components and their interactions, discussed deeper in the [Architecture Readme](README_ARCH.md) and the docs:

```mermaid
%%{init: {"flowchart": {"htmlLabels": true}, 'theme':'forest'} }%%
Expand All @@ -146,12 +141,12 @@ The **Qiskit Metal** codebase is organized into several key modules, each with a
subgraph GUI
MetalGUI["MetalGUI"]
ElementsWindow["ElementsWindow"]
NetListWindow["NetListWindow"]
ComponentWidget["ComponentWidget"]
QTableView_AllComponents["QTableView_AllComponents"]
QTreeView_Options["QTreeView_Options"]
QTextEditLogger["QTextEditLogger"]
<!-- ElementsWindow["ElementsWindow"] -->
<!-- NetListWindow["NetListWindow"] -->
<!-- ComponentWidget["ComponentWidget"] -->
<!-- QTableView_AllComponents["QTableView_AllComponents"] -->
<!-- QTreeView_Options["QTreeView_Options"] -->
<!-- QTextEditLogger["QTextEditLogger"] -->
end
subgraph Renderers
Expand Down Expand Up @@ -185,12 +180,12 @@ The **Qiskit Metal** codebase is organized into several key modules, each with a
MetalGUI --> QRendererGui
MetalGUI --> QLibraryComponents
MetalGUI --> QDesign
MetalGUI --> ElementsWindow
<!-- MetalGUI --> ElementsWindow
MetalGUI --> NetListWindow
MetalGUI --> ComponentWidget
MetalGUI --> QTableView_AllComponents
MetalGUI --> QTreeView_Options
MetalGUI --> QTextEditLogger
MetalGUI --> QTextEditLogger -->
QGDSRenderer --> QRenderer
QAnsysRenderer --> QRenderer
QHFSSRenderer --> QRenderer
Expand All @@ -209,7 +204,7 @@ The **Qiskit Metal** codebase is organized into several key modules, each with a
Sweep_Options --> QDesign
class QLibraryComponents,QDesign,QComponent,QRoute,BaseQubit core;
class MetalGUI,ElementsWindow,NetListWindow,ComponentWidget,QTableView_AllComponents,QTreeView_Options,QTextEditLogger gui;
class MetalGUI gui;
class QRenderer,QRendererGui,QGDSRenderer,QAnsysRenderer,QHFSSRenderer,QQ3DRenderer,QPyaedt,QGmshRenderer,QElmerRenderer renderer;
class Parsing,Exceptions,Logging,Toolbox utility;
class Hamiltonian,Sweep_Options analysis;
Expand All @@ -224,16 +219,6 @@ The **Core** module serves as the backbone of Qiskit Metal, housing essential el
- **QRoute**: Specialized class for managing connections between components.
- **BaseQubit**: Represents foundational qubit structures used in circuit designs.

### GUI
The **GUI** module provides tools for user-friendly interaction with Qiskit Metal:
- **MetalGUI**: The primary graphical interface for managing designs and visualizations.
- **ElementsWindow**: Displays available circuit elements.
- **NetListWindow**: Shows the connections between components.
- **ComponentWidget**: Offers detailed views and controls for individual components.
- **QTableView_AllComponents**: Lists all components in the design.
- **QTreeView_Options**: Presents configuration options in a tree structure.
- **QTextEditLogger**: Logs activities and messages for troubleshooting and feedback.

### Renderers
The **Renderers** module facilitates exporting designs to external tools for electromagnetic simulation and layout rendering:
- **QRenderer**: Base class for all renderers.
Expand All @@ -254,12 +239,12 @@ The **Analyses** module includes tools for performing simulations and extracting
- **Hamiltonian**: Supports calculations of Hamiltonian parameters.
- **Sweep Options**: Provides tools for parametric sweeps and optimizations.


### GUI
The **GUI** module provides tools for user-friendly interaction with Qiskit Metal. The **MetalGUI** clas is the primary graphical interface for managing designs and visualizations. It is discussed in more depth in the [Architecture Readme](README_ARCH.md).

### Utilities
The **Utilities** module supports the overall functionality of Qiskit Metal by offering supplementary tools:
- **Parsing**: Manages data parsing for design input and output.
- **Exceptions**: Handles error reporting and debugging.
- **Logging**: Tracks system activities and events.
- **Toolbox**: Provides miscellaneous helper functions.
The **Utilities** module supports the overall functionality of Qiskit Metal by offering supplementary tools.



Expand All @@ -277,6 +262,9 @@ This modular structure ensures scalability, flexibility, and ease of use for des

# Backmatter

## Authors and Citation
Qiskit Metal is the work of [many people](https://github.com/Qiskit/qiskit-metal/pulse/monthly) who contribute to the project at different levels. Metal was conceived and developed by [Zlatko Minev](https://www.zlatko-minev.com) at IBM; then co-led with Thomas McConkey. If you use Qiskit Metal, please cite as per the included [BibTeX file](https://github.com/Qiskit/qiskit-metal/blob/main/Qiskit_Metal.bib). For icon attributions, see [here](https://github.com/Qiskit/qiskit-metal/blob/main/qiskit_metal/_gui/_imgs/icon_attributions.txt).

## Changelog and Release Notes
The changelog provides a quick overview of notable changes for a given release.

Expand Down

0 comments on commit d76f76c

Please sign in to comment.