SaveLoad module and saving file structureΒΆ

The saving file for ErwinJr2 is a json file discribing the structure of QC layers and optical waveguide.

The save and load functions is independently functioning as the SaveLoad module.

Here is a sample json file

{
    "FileType": "ErwinJr2 Data File",
    "Version": "200504",
    "Description": "dx.doi.org/10.1038/nphoton.2009.262",
    "Wavelength": 4.7,
    "Substrate": "InP",
    "EField": 102.0,
    "x resolution": 1.0,
    "E resolution": 0.5,
    "Solver": "ODE",
    "Temperature": 300.0,
    "Repeats": 3,
    "Materials": {
        "Compostion": ["InGaAs", "AlInAs"],
        "Mole Fraction": [0.66, 0.31]
    },
    "QC Layers": {
        "Material": [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1],
        "Width": [28.0, 26.0, 22.0, 21.0, 18.0, 18.0, 15.0, 13.0, 12.0, 10.0, 42.0, 12.0, 39.0, 14.0, 33.0, 23.0],
        "Doping": [0.0, 1.5, 1.5, 1.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
        "Active Region": [true, false, false, false, false, false, true, true, true, true, true, true, true, true, true, false]
    },
    "Waveguide": {
        "wavelength": 4.7,
        "materials": ["Air", "Au", "SiNx", "InxGa1-xAs", "InxGa1-xAs", "Al1-xInxAs", "Al1-xInxAs", "InxGa1-xAs", "Active Core", "InxGa1-xAs", "InP"],
        "moleFracs": [0.0, 0.0, 0.35, 0.53, 0.53, 0.52, 0.52, 0.53, 0.53, 0.53, 0.0],
        "dopings": [0.0, 0.0, 0.0, 1200.0, 90.0, 2.0, 3.0, 0.5, 0.5, 0.5, 0.0],
        "width": [1.0, 0.45, 0.4, 0.01, 0.5, 0.5, 0.6, 0.2, 1.384, 0.2, 2.0],
        "mobilities": [null, null, null, null, null, null, null, null, null, null, null],
        "custom": {"Active Core": {"index": "(3.286+0j)", "period": [346.0, 40], "gain": 53.4}}
    }
}