How scopex-asu/maps works
MAPS combines photonic device inverse design, numerical simulation, labeled-data generation, and AI model training. A typical workflow defines a device and optimization objective, evaluates fields and gradients with a physics solver, updates the design, and can generate simulation datasets for training predictors that may accelerate later design. The README documents FDFD, 3D FDTD, and thermo-optical capabilities; sampled source confirms selected solver and optimization behavior, but not every subsystem’s runtime wiring.
Main entry points: base_optimization.py Optimization plan · builder.py Training builder · invdesign.py Design runner · trainer.py Trainer
Components 16
Inverse design
- Device models
core/invdes/models/layers - Optimization plan
core/invdes/models/base_optimization.py - Design runner
core/invdes/invdesign.py - Optimizers
core/invdes/optimizer
Physics simulation
- FDFD solver
core/fdfd - FDTD solver
core/fdtd - Heat solver
core/heat - Ceviche backend
thirdparty/ceviche
Dataset generation
- Dataset launcher
data/fdfd/dataset_generation_launcher.py - Device generators
data/fdfd
AI training
- FDFD dataset
core/train/datasets/fdfd.py - Training builder
core/train/builder.py - Predictor models
core/train/models - Trainer
core/train/trainer.py
Other components
- Engineer
- fdtdx runtime
Connections 19
- Engineer → Design runner: configures design
- Design runner → Optimization plan: runs optimization
- Design runner → Optimizers: builds optimizer
- Optimization plan → Device models: evaluates device
- Optimization plan → FDFD solver: solves fields
- Optimization plan → Heat solver: co-simulates heat
- Optimization plan → FDTD solver: solves FDTD
- FDFD solver → Ceviche backend: uses backend
- FDTD solver → fdtdx runtime: invokes runtime
- Engineer → Dataset launcher: requests data
- Dataset launcher → Device generators: dispatches generation
- Device generators → FDFD solver: simulates devices
- Engineer → Training builder: configures training
- Training builder → FDFD dataset: loads samples
- Training builder → Predictor models: constructs model
- Training builder → Trainer: constructs trainer
- Trainer → Predictor models: trains predictor
- Trainer → FDFD dataset: consumes batches
- Predictor models → Optimization plan: accelerates design