Akshay Kumar, Saketh Sridhara, Krishnan Suresh
Department of Mechanical Engineering, University of Wisconsin–Madison
- Install dependencies:
pip install -r requirements.txt- Generate geometry and input data (example):
Open and run the cells in frameOptimize.ipynb to create the input sets.
- Run Abaqus (to generate FD data):
Edit run_abaqus.py parameters then run:
abaqus cae noGUI=run_abaqus.py- Train surrogate model:
Open surrogateBuild.ipynb and execute the cells to load Abaqus output, train the surrogate(s), and save the trained model to the relevant folder (e.g., C4NN2var/SurrogateModel.pth).
- Optimize with the surrogate:
Run frameOptimize.ipynb which loads a saved surrogate, runs multiple optimization starts, and saves results for Abaqus validation.
-
surrogateBuild.ipynb— build and evaluate surrogate models (NN, GPR, RBF), plotting and comparison routines. -
frameOptimize.ipynb— example optimization workflow using a trained surrogate and post-processing/plotting helpers. -
run_abaqus.py— wrapper to run Abaqus analyses for generated designs.
- Surrogates are trained to predict full FD curves; masked targets allow handling of partial/incomplete FD results.
- Neural network training code and plotting helpers are in
src/utilFuncs.pyandSurrogateBuild.ipynb. - GPR and RBF wrappers are available in
src/GPR.pyandsrc/RBF.py.
Run the provided example notebooks (recommended) to reproduce figures and optimization runs. The notebooks include visualization utilities that produce publication-ready PNG outputs (transparent background, controlled aspect ratios).
If you use this code for research, please cite the associated paper.
This repository currently has no license and is intended for research use. Contact the authors for collaboration or reuse permissions.
This work was supported in part by the U.S. Office of Naval Research (PANTHER award N00014-21-1-2916).
