Can be found at arXiv
The following examples can be found in the second submisson of the article:
- Heat minimization of current carring multicables
- Drag minimization for obstacle in Stokes flow
- Drag minimization for orientation of nine obstacles in Stokes flow
The following examples were used in the first submission of the article:
The Poisson comparasion folder is a folder with visual comparasion of the gradients for the shape derivatives using the Hadamard formulas for the MultiMesh FEM and traditional FEM.
A docker container can be built with all the dependencies using the command
cd dockerfiles
docker build --tag mmshapeopt .
cd ..
To run the enviroment with current directory as shared with
docker run --name=mmshapeopt -ti -v $(pwd):/home/fenics/shared mmshapeopt
At an later instance, the container can be started with the following command
docker container start mmshapeopt
First build the docker image mmshapeopt as described above. Then to run the attached docker notebook, run:
docker run --name mmshapeoptnb -w /home/fenics/shared -v $(pwd):/home/fenics/shared -d -p 127.0.0.1:8888:8888 mmshapeopt 'jupyter-notebook --ip=0.0.0.0'
To open the notebook, open a web-browser and go to 127.0.0.1:8888. To get the access key, type:
docker logs mmshapeoptnb
To stop and start the container use the following arguments.
docker container stop mmshapeoptnb
docker container start -i mmshapeoptnb
To use the interactive notebook, go to the Kernel->Restart & Run All
.
If you do not want to use docker, you need the following packages:
- Dolfin 2018.1.0
- Femorph, branch dokken/restructuring, which is pip installable
- IPOPT (v. 3.12.9)
- scipy (>=1.1.0)
- gmsh (v. 3.0.6)
- meshio, pygmsh