This repository contains the implementation of a Multi-stage 2D Physics-Informed Neural Network (PINN) for Electromigration (EM) modeling.
-
Environment Setup: Create a conda environment from
environment.yml.conda env create -f environment.yml conda activate pinn
-
Data Generation: We used the scripts in the
data_gen/folder to create a synthetic dataset for both first stage and second stage training. -
Train First Stage Model: Train the supervised model to detect the stress in a single wire.
python train_ss.py --data-path ./data/EMdataset_10seg_1n2/
-
Train Second Stage Model: After the first stage is done, train the second stage model to predict boundary conditions and AFD.
python train_afd.py --data-path ./data/test_trees/ --model-path ./run/first_stage/EMdataset_10seg_1n2/
-
First Stage: In the first stage, the base structure components and initial segments are plotted to visualize the foundational topology.
-
Second Stage: The second stage visualizes the complex, refined wire branching or full topology iterations derived from the models. The multi-stage representation visually distinguishes between parent and child segments in the wire progression.

