Update to github version

This commit is contained in:
2026-05-17 11:58:41 +08:00
parent 9f2e3f3f78
commit 52be015967
100 changed files with 870 additions and 675 deletions
+11 -8
View File
@@ -7,6 +7,7 @@ This is the fast-track guide to contributing to **mxPIC**. Adherence to these ru
### <span style="color: #ff57c7;">0. Installation dependencies</span>
- python 3.10.1
- nazca 0.5.13
- build 1.4.4
- gdstk 1.0.0
- numpy 1.22.3
- pandas 1.3.3
@@ -16,15 +17,12 @@ This is the fast-track guide to contributing to **mxPIC**. Adherence to these ru
- myst-parser 3.0.1
- sphinx-rtd-theme 3.1.0
```
pip install sphinx myst-parser sphinx-rtd-theme gdstk==1.0.0
```
## <span style="color: #ff57c7;">1. File & architecture</span>
The repository have an archtecture like this.
```
mxpic_forge/
mxpic/
├── primitives/
│ ├── edge_couplers/
│ │ └── EC_dual_layer_px3.py
@@ -42,10 +40,8 @@ mxpic_forge/
├── others/
├── structures/
├── routing/
── foundries/
└── docs/
└── source/
└── conf.py
── foundries/
```
## <span style="color: #ff57c7;">2. Annotation & Documentation</span>
@@ -84,6 +80,7 @@ The devices are divided into four major types, which is <span style="color: #d2a
In the definitial of classes, compulsary keys are required, including **name** , **show_pins** , all defaults are None.
All classes are cored at the **cell** class of **nazca**, which is generated through an internal method named "generate_gds"
``` python
class GratingCoupler():
def __init__(self,name:"str"=None,....,show_pins:bool=None)
@@ -98,6 +95,12 @@ class GratingCoupler():
return C
```
Please not that each class can be directly generated without any argument input which requires all the arguements to have default values, example below :
``` python
grating = GratingCoupler()
```
---
## <span style="color: #ff57c7;">4. Port information formatting</span>
The basic routing algorthium is based the information between nodes, which is the **pin** attribute inside each file. The formatting of **pin** name will be important.