JohannesHaubner / TopOpt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GNU GPLv3 License Test TopOpt

TopOpt

Code repository for the manuscript

J. Haubner, F. Neumann, M. Ulbrich: A Novel Density Based Approach for Topology Optimization of Stokes Flow, SIAM J. Sci. Comput. (2022, accepted for publication).

The implementation is based on http://www.dolfin-adjoint.org/en/release/documentation/stokes-topology/stokes-topology.html

Usage/Examples

Conda

conda env create -f environment.yml --experimental-solver=libmamba
conda activate topopt

cd topopt
python3 topopt.py

conda deactivate topopt

It has to be ensured that the conda-libmamba-solver is installed.

For practical problems it is furthermore necessary to link IPOPT against HSL when compiling (see comment in http://www.dolfin-adjoint.org/en/release/documentation/stokes-topology/stokes-topology.html).

For running the MMA examples, it is required to clone the github repository https://github.com/arjendeetman/GCMMA-MMA-Python into the folder mma/MMA_Python.

Docker

Alternatively, also Docker can be used (only built for linux/amd64 platforms):

docker pull ghcr.io/johanneshaubner/topopt:latest

cd topopt
docker run -it -v $(pwd):/topopt ghcr.io/johanneshaubner/topopt

In the Docker container:

python3 topopt/topopt.py

Running Tests

To run tests, run the following command

pytest

License

GNU GPLv3

Authors

Acknowledgement

We would like to acknowledge Jørgen Dokken and Henrik Finsberg for the help, support and discussions on reproducibility.

About

License:GNU General Public License v3.0


Languages

Language:Python 95.1%Language:MATLAB 3.8%Language:Dockerfile 1.1%