/MultiMeshShapeOpt_code

Code used in "Shape Optimization using the Finite Element Method for Multiple Meshes Using Nitsche Coupling.

Primary LanguagePython

Code used in MultiMesh Shape Opt article

Can be found at arXiv

Overview

The following examples can be found in the second submisson of the article:

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.

Installation

Docker

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

Docker notebooks: A motivational example for MultiMesh

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.

Manual installation

If you do not want to use docker, you need the following packages: