This repository contains a fully reproducible manuscript which is a part of OptiPuls project.
Authors: Dmytro Strelnikov [email protected], Roland Herzog [email protected]
Funding: Funding: Project IGF 20.826B (DVS I2.3005) in Forschungsvereinigung Schweißen und verwandte Verfahren e.V. of the Deutschen Verbandes für Schweißen und verwandte Verfahren e.V.
Project page: Simulation Based Optimization of the Time-Dependent Pulse Power for Laser Beam Welding of Aluminum Alloys in Order to Avoid Hot Cracks
A mathematical model for the single spot laser pulse welding based on the quasi-linear heat equation is derived in the paper and a detailed discretization procedure is given. The corresponding optipuls python module provides the outlined discrete model implemented in code utilizing the FEniCS computing platform.
The numerical results presented in the paper can be easily reproduced by following the instructions from this document.
This section provides detailed instructions on reproducing of the numerical results presented in the paper.
We believe that any numerical results presented in a scientific publication must be considered reliable only if the exaсt way they were obtained is clear and hence they can be verified by a reader. The most transparent way to go is to provide an explicit instruction on reproducing of the results, requiring only free software.
Despite it is often not the case in many scientific publications, we intend to encourage reproducibility culture in computational science by setting an example.
A working FEniCS computing platform installation is required as well as the following additional python packages (including their dependencies):
We suppose that make is already installed on your machine provided a UNIX-like system is used.
If you already have FEniCS installed locally, you can use python virtual environments to install the remaining dependencies without cluttering your system:
python3 -m venv --system-site-packages ~/.local/optipuls
source ~/.local/optipuls/bin/activate
pip install git+https://github.com/dstrelnikov/optipuls@optcontrol
pip install matplotlib tabulate
Since it can get quite tricky to install FEniCS, we also provide a bundle of docker images.
Prebuilt optipuilsproject images can be used to reproduce the results provided docker is installed on your system.
Once the depencdencies are satisfied, reproducing of the results is as simple as running make
in the root of the project:
git clone https://gitlab.hrz.tu-chemnitz.de/numapde/Publications/optimal-control-spot-welding
cd optimal-control-spot-welding
make -j$(nproc)
Make will run the computations, produce the plots, the tables, and the final manuscript-numapde-preprint.pdf
file.
Don't forget to build/pull the optipuls
, tabulate
, and numapde/publications
docker images in advance.
Make plots (entails making of the numerical artifacts):
docker run \
-v $(pwd):/home/fenics/shared \
optipulsproject/optipuls:latest \
make plots.all -j$(nproc)
Make tables:
docker run \
-u $UID \
-v $(pwd):/data \
optipulsproject/tabulate:latest \
make tables.all
Make paper:
docker run \
-u $UID \
-v $(pwd):/data \
optipulsproject/publications:latest \
make preprint
In order to not carry the heavy computations locally, you may download the latest numerical artifacts built by GitLab CI.
- Clone the repocitory and open its directory:
git clone [email protected]:numapde/Publications/optimal-control-spot-welding.git
cd optimal-control-spot-welding
- Unpack the downloaded numerical artifacts into
optimal-control-spot-welding
directory:
unzip -o artifacts.zip
- Update the modification time of the numerical artifacts so they are treated up-to-date:
touch numericals/{rampdown,rampdown-noopt,zeroguess}/*
- Run the steps of the previous section. The numerical artifacts won't be recomputed.
manuscript-numapde-preprint.pdf
(latest successful) view, download- numericals (latest successful), download
For anyone how might get interested in implementing a similar reproduction mechanism, we outline the key points of the paper building process.
...