This program presents a modular paradigm for topology optimization using OpenMDAO, an open-source computational framework for multidisciplinary design optimization.
- gcc version >= 4.7
- OpenMDAO ver. >= 2.2
Originally the program is developed based on OpenMDAO ver. 2.0, so you'll see some DeprecationWarning messages.
Following operations are assumed to take place in the default path. (M2DO_PATH)
-
Move to M2DO_FEA/Python, where Cython wrapper (pyBind.pyx) is located at
(at M2DO_PATH) cd ./OpenLSTO-master/M2DO_FEA/Python/
-
Compile and copy *.so file to OpenMDAO-SIMP path
sh makefile.sh
or
python FEAsetup.py build cp build/lib*/*.so ./../../../Density* cp build/lib*/*.so ./../../../LevelSet*/
Following operations are assumed to take place in the default path. (M2DO_PATH)
-
Move to M2DO_LSM/Python, where Cython wrapper (py_lsmBind.pyx) is located at
(at M2DO_PATH) cd ./OpenLSTO-master/M2DO_LSM/Python/
-
Compile and copy *.so file to OpenMDAO-SIMP path
sh makefile.sh
or
python LSMsetup.py build cp build/lib*/*.so ./../../../LevelSet*
-
Run main python script
(at M2DO_PATH) cd Density_OpenLSTO/ python run_openmdao.py
-
(Optional) Changing a mesh density
In run_openmdao.py, change
nelx = 40 # number of elements in x-direction nely = 20 # number of elements in y-direction
-
Visualize the results
python make_plots.py
-
Run main python script
(at M2DO_PATH) cd LevelSet_OpenLSTO/ python run_LSTO_openLSTO.py
-
(Optional) Changing a mesh density
In run_LSTO_openLSTO.py, change
nelx = 40 # number of elements in x-direction nely = 20 # number of elements in y-direction
-
Visualize the results
python make_plots.py
-
OpenLSTO-lite
Original FEA and LSM routines are derived from OpenLSTO, which is am open-source level-set topology optimization program developed and maintained by researchers of M2DO group led by Prof. Alicia Kim.
Comprehensive documentation is found in the webpage
-
OpenMDAO
The Present program is based on OpenMDAO, an open-source high-performance computing platform for systems analysis and multidisciplinary optimization, written in Python.
-
SLSM library
Implementation details of the level-set method used herein can be found in SLSM library developed my Dr. Lester Hedges.