-
Notifications
You must be signed in to change notification settings - Fork 0
Project Structure
Understanding the organization and structure of the openqcp-lab repository.
openqcp-lab/
├── 6.B/ # Academic papers and resources
├── coupled_harmonic_oscillators/ # Tutorial 05
├── minimize_expectation_value/ # Tutorial 01
├── nonunitary_quantum_computing/ # Tutorial 03
├── quantum_fourier_transform_abelian/ # Tutorial 00
├── quantum_variational_algorithms/ # Tutorial 04
├── quantum_walk/ # Tutorial 02
├── CONTRIBUTING.md # Contribution guidelines
├── LICENSE # GNU GPL v3+ license
├── Makefile # Build automation
├── NOTEBOOK_TEMPLATE.md # Notebook structure template
├── README.md # Main project documentation
├── REPRODUCING_RESULTS.md # Results reproduction guide
├── requirements.txt # Python dependencies
└── setup_env.sh # Environment setup script
Each tutorial has its own directory:
tutorial_name/
├── README.md # Tutorial-specific documentation
├── *.ipynb # Jupyter notebooks
├── *.qmod # Quantum model files (generated)
├── *.qprog # Quantum program files (generated)
└── figures/ # Generated figures (if applicable)
Root Level:
-
README.md- Main project documentation, setup instructions -
CONTRIBUTING.md- How to contribute to the project -
REPRODUCING_RESULTS.md- How to reproduce results -
NOTEBOOK_TEMPLATE.md- Template for new notebooks
Tutorial Level:
- Each tutorial directory contains a
README.mdwith:- Theory and implementation details
- Software requirements
- Expected outputs
- Contributor information
Notebooks:
-
*.ipynb- Jupyter notebook files - Located in respective tutorial directories
- Contain executable code and documentation
Python Scripts:
-
*.py- Standalone Python scripts (if any) - Located in tutorial directories or
6.B/advanced design/
Quantum Models:
-
*.qmod- Quantum model files (Classiq) -
*.qprog- Quantum program files (Classiq) - Generated when notebooks are executed
- Optional - not required for notebooks to run
Figures:
-
*.png- Generated plots and figures - Located in
figures/subdirectories - Some are precomputed examples
Data Files:
-
*.csv- Measurement results (if any) - Located in tutorial directories
Papers:
-
6.B/*.pdf- Academic papers in PDF format - Organized by author and year
- Related to tutorial topics
Advanced Examples:
-
6.B/advanced design/*.py- Advanced Python examples -
6.B/quantum primitives */- Quantum primitive examples
Tutorial directories use descriptive names:
-
quantum_fourier_transform_abelian/- Descriptive, lowercase, underscores -
minimize_expectation_value/- Clear purpose -
quantum_walk/- Concise, descriptive
Notebook files use descriptive names:
-
qft_abelian_qpe_hadamard.ipynb- Descriptive of content -
minimize_vqc_output.ipynb- Clear purpose -
N_coupled_harmonic_oscillators_1_D_N_2.ipynb- Includes parameters
Generated files follow patterns:
-
*.qmod- Quantum model files -
N-2-dt-*.qmod- Includes parameters in filename -
figures/hs_n_2.png- Descriptive figure names
| # | Tutorial | Directory |
|---|---|---|
| 00 | Quantum Fourier Transform | quantum_fourier_transform_abelian/ |
| 01 | Minimize Expectation Value | minimize_expectation_value/ |
| 02 | Quantum Walk | quantum_walk/ |
| 03 | Non-Unitary Computing | nonunitary_quantum_computing/ |
| 04 | Quantum Variational Algorithms | quantum_variational_algorithms/ |
| 05 | Coupled Harmonic Oscillators | coupled_harmonic_oscillators/ |
Classiq Tutorials:
- Tutorial 00:
quantum_fourier_transform_abelian/ - Tutorial 02:
quantum_walk/ - Tutorial 03:
nonunitary_quantum_computing/ - Tutorial 05:
coupled_harmonic_oscillators/
PennyLane Tutorials:
- Tutorial 01:
minimize_expectation_value/
Qiskit Tutorials:
- Tutorial 04:
quantum_variational_algorithms/
Optimization:
- Tutorial 01:
minimize_expectation_value/ - Tutorial 04:
quantum_variational_algorithms/
Simulation:
- Tutorial 05:
coupled_harmonic_oscillators/
Algorithms:
- Tutorial 00:
quantum_fourier_transform_abelian/ - Tutorial 02:
quantum_walk/ - Tutorial 03:
nonunitary_quantum_computing/
Beginner:
- Tutorial 00:
quantum_fourier_transform_abelian/ - Tutorial 01:
minimize_expectation_value/
Intermediate:
- Tutorial 02:
quantum_walk/ - Tutorial 03:
nonunitary_quantum_computing/ - Tutorial 04:
quantum_variational_algorithms/
Advanced:
- Tutorial 05:
coupled_harmonic_oscillators/
-
Clone Repository:
git clone https://codeberg.org/mkhellat/openqcp-lab.git cd openqcp-lab -
Read Main README:
- Start with
README.mdfor overview and setup
- Start with
-
Choose Tutorial:
- See Tutorial Catalog for details
- Navigate to tutorial directory
-
Read Tutorial README:
- Each tutorial has its own
README.md
- Each tutorial has its own
-
Open Notebook:
- Open
.ipynbfile in Jupyter
- Open
Setup Files:
-
setup_env.sh- Environment setup -
requirements.txt- Dependencies -
Makefile- Build automation
Documentation:
-
README.md- Main documentation -
CONTRIBUTING.md- Contribution guide - Tutorial
README.mdfiles
Academic Resources:
-
6.B/*.pdf- Papers -
6.B/advanced design/- Advanced examples
Generated Content:
-
*.qmod,*.qprog- Quantum models (generated) -
figures/*.png- Figures (some precomputed)
-
.md- Markdown documentation files -
.pdf- PDF papers and documents
-
.ipynb- Jupyter notebooks -
.py- Python scripts -
.qmod- Quantum model files (Classiq) -
.qprog- Quantum program files (Classiq)
-
.csv- Comma-separated values (measurement results) -
.json- JSON configuration files
-
.png- Plot and figure images
Each tutorial is self-contained:
- README.md - Documentation
- Notebook(s) - Executable code
- Optional files - Generated models, figures, data
The 6.B/ directory contains:
- Papers - PDF files organized by author/year
- Advanced examples - Additional code examples
- Quantum primitives - Example quantum operations
Root-level configuration:
- requirements.txt - Python dependencies
- Makefile - Build and automation targets
- setup_env.sh - Environment setup script
-
Follow Naming Conventions:
- Use lowercase with underscores
- Be descriptive
- Include parameters in filenames if relevant
-
Organize by Tutorial:
- Keep tutorial files in tutorial directories
- Use subdirectories for figures/data if needed
-
Document Everything:
- Update README files
- Add comments in code
- Document generated files
-
Version Control:
- Don't commit generated files unnecessarily
- Keep repository clean
- Use
.gitignoreappropriately
- Getting Started - Setup and first steps
- Tutorial Catalog - Complete tutorial reference
- Contributing - How to contribute
- Main repository: codeberg.org/mkhellat/openqcp-lab
Return to: Home | Tutorial Catalog | Getting Started