Skip to content

Repository files navigation

TopOpt.jl logo

TopOpt.jl

Actions Status Documentation (stable) Documentation (dev) codecov Aqua QA Code Style: Blue JET

TopOpt is a topology optimization package written in Julia. It supports structural (linear elasticity) and heat-transfer problems on continuum and truss ground meshes in 2D and 3D, with automatic differentiation through every objective and constraint.

gif1 gif2 gif3 gif4

Installation

See the installation section of the documentation (dev).

Features

The full list of features is maintained in one place, the documentation (dev).

Tutorials

Executable, commented tutorials are hosted on the documentation site: TopOpt.jl Tutorials (dev).

Citation

If you use TopOpt.jl in your research, please cite the following journal paper and conference publications.

@article{TarekRay2020,
  title={Adaptive continuation solid isotropic material with penalization for volume constrained compliance minimization},
  author={Tarek, Mohamed and Ray, Tapabrata},
  journal={Computer Methods in Applied Mechanics and Engineering},
  volume={363},
  pages={112880},
  year={2020},
  doi={10/gg55cc}
}
  • TopOpt.jl: An efficient and high-performance package for topology optimization of continuum structures in the Julia programming language
@inproceedings{tarek2019topoptjl,
  title={TopOpt.jl: An efficient and high-performance package for topology optimization of continuum structures in the Julia programming language},
  author={Tarek, Mohamed},
  booktitle={Proceedings of the 13th World Congress of Structural and Multidisciplinary Optimization},
  year={2019}
}
@inproceedings{huang2021topoptjl,
  title={TopOpt.jl: Truss and Continuum Topology Optimization, Interactive Visualization, Automatic Differentiation and More},
  author={Huang, Yijiang and Tarek, Mohamed},
  booktitle={Proceedings of the 14th World Congress of Structural and Multidisciplinary Optimization},
  year={2021}
}

A standard citation file is provided as CITATION.bib.

Contribute

We welcome new contributors! Please see the open issues for beginner-friendly and research-oriented tasks, or open a new issue to discuss your idea.

Questions?

If you have any questions, join us on the #topopt channel in the Julia slack, open an issue or shoot us an email.

Releases

Packages

Used by

Contributors

Languages