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.
Install a specific version of FEniCS ufl from here, if you meet this error:
ImportError: cannot import name 'cellname2facetname' from 'ufl.cell'
Install OpenMDAO
:
pip install 'openmdao[all]'
Install ATOMiCS
:
git clone
this repository, navigate to the atomics directory.
Then, and use the command pip 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.