1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/// `pic_simulation` — Circuit-level simulation of photonic integrated circuits.
///
/// This module provides transfer-matrix and noise models for PIC elements
/// without relying on physical layout (see `pic_design` for that). It is
/// entirely pure-Rust with no external numeric-library dependencies.
///
/// # Sub-modules
///
/// | Module | Contents |
/// |--------|----------|
/// | [`circuit_elements`] | Directional coupler, microring, MZI, complex arithmetic |
/// | [`transfer_matrix`] | Waveguide sections, grating couplers, Y-junctions, cascade |
/// | [`noise_model`] | Shot noise, RIN, PDL, thermal noise, phase noise |
/// | [`yield_model`] | Process variation, Murphy/Poisson yield, Monte Carlo |
///
/// # Quick Example
///
/// ```rust,no_run
/// use oxiphoton::pic_simulation::circuit_elements::{DirectionalCoupler, MachZehnderInterferometer};
///
/// let mzi = MachZehnderInterferometer::symmetric();
/// let t_through = mzi.through_transmission();
/// let t_cross = mzi.cross_transmission();
/// assert!((t_through + t_cross - 1.0).abs() < 1e-10);
/// ```
// ---------------------------------------------------------------------------
// Flat re-exports
// ---------------------------------------------------------------------------
// Complex number and 2×2 transfer matrix — used throughout the module
pub use ;
// PIC building blocks
pub use ;
// Cascade infrastructure
pub use ;
// Noise models
pub use ;
// Yield and variability models
pub use ;