sweep_wafermap
- circuit_analyzer.all.sweep_wafermap(circuit_model, wavelengths, deviation_maps=None, positions=None, parallel=False, parallel_option='number', save_path=None)
- Run a sweep of simulations for the same circuit, but on different positions on the chip causing variations. Use the wafer map information + locations of each building block for an accurate simulation. - The variability configuration is used to define which variations can happen, and how to translate the parameter values of the deviation map onto model parameters. - Parameters:
- circuit_model: CircuitModel
- IPKISS CircuitModel used in the simulation. 
- wavelengths: array-like
- An array of wavelengths, for instance: np.linspace(1.54, 1.56, 1001). 
- deviation_maps: dict
- A mapping of deviation maps per fab parameter. 
- positions: list
- A list of positions on the wafer. For each position, deviations from the maps will be extracted and applied to the circuit model. 
- parallel: bool, optional
- Parallelize the calculations to potentially reduce the simulation time. 
- parallel_option: str
- String of what to parallelize, either over ‘wavelengths’ or over the ‘number’ of simulations. Options are ‘wavelengths’ or ‘number’. 
- save_path: str/path, optional
- Path where the save file will be stored, for instance: save_path = “simulation_results.data”. 
 
- Returns:
- an array of S matrices, one S matrix per sampling.
 
 - Examples - >>> import circuit_analyzer.all as ca >>> from circuit_analyzer.capheve.variability_map import CoherentNoiseMap >>> with ca.setup('/path/to/configuration'): >>> ca.sweep_wafermap( >>> circuit_model=circuit.get_default_view(i3.CircuitModelView), >>> wavelengths=np.linspace(1.5, 1.6, 1), >>> deviation_maps={ >>> "n_eff": CoherentNoiseMap(amplitude=0.1, radius=50.0, seed=0), >>> }, >>> positions=[(0, 0), (500, 500), (1000, 0)], >>> )