ATOmiCS stands for Automated Topology Optimization for multidisciplinary problems using FEniCS. It is a Python module that performs topology optimization for various physics problems with automated derivatives. ATOmiCS is implemented based on OpenMDAO and FEniCS. The details of ATOmiCS can be found in the following article:
@article{yan2022topology,
title={Topology optimization with automated derivative computation for multidisciplinary design problems},
author={Yan, Jiayao and Xiang, Ru and Kamensky, David and Tolley, Michael T and Hwang, John T},
journal={Structural and Multidisciplinary Optimization},
volume={65},
number={5},
pages={1--20},
year={2022},
publisher={Springer}
}
A preprint of the above article can be found here.
For a detailed tutorial of ATOMiCS (automated topology optimization using OpenMDAO and FEniCS), please check our online documentations (lsdolab.github.io/atomics/).
To install ATOMiCS and run topology optimization problems, you need to follow these steps:
- Install FEniCS 2019.1.0 partial differential equation (PDE) solver from here.
- For MAC users, the anaconda installation method is recommend. For Ubuntu users, please just install according to the Ubuntu installation guidline. For Windows users (haven't tested), please try the method of installing Ubuntu subsystem.
- Install a specific version of FEniCS ufl from here, if you meet this error:
ImportError: cannot import name 'cellname2facetname' from 'ufl.cell'
- Install
OpenMDAO
:
- The installation of OpenMDAO:
pip install 'openmdao[all]'
- Install
ATOMiCS
:
git clone
this repository, navigate to the atomics directory. Then, and use the commandpip install -e .
to install ATOMiCS.
Other recommandations: while the scipy
optimizer in OpenMDAO works for some small scale problems, we recommend IPOPT
(https://github.com/coin-or/Ipopt/) or SNOPT
(http://ccom.ucsd.edu/~optimizers/downloads/).
Note that SNOPT
is a commercial optimizer.