Performance analysis of Surrogates for Non-Linear heat equation

Abstract

Develop Surrogate Models for the nonlinear heat equation

\[\begin{split}\rho(T) c_P(T) \frac{\partial T}{\partial t} = \frac{\partial}{\partial x} \left(\lambda(T) \frac{\partial T}{\partial x}\right) \\ \text{with: } T(x=0,t) = T_\text{ICE} = T(x=x,t=0), T(x=2,t) = T_\text{MELTING} = 273.15 \text{K} \\ T_\text{ICE} \in [100, 200] \text{K}\end{split}\]

Find the material parameters in: [https://doi.org/10.1007/s11157-006-9108-x](https://doi.org/10.1007/s11157-006-9108-x)

Repository Structure

Find the final presentation in the folder Presentation.

In src`there is the source code with different versions. The PINN was struggling to yield the correct temperature behavior, therefore it was discretized in time. In the subfolder `IssuesPINN different attempts for full continuous PINNs can be found, without proper documentation.

To rerun the simulation, run the files in the order 01 - 06.

  1. Generate FEniCSx data to train the ANN on

  2. Find the best ANN with a hyperparameter tuner and train it

  3. Find the best PINN architecture (use less time steps for tuning, to reduce complexity)

  4. Train the best PINN architecture (now use more time steps)

  5. Evaluate the ANN results

  6. Evaluate the PINN

Installation

As a numerical solver, mainly FEniCSx was used and installed via conda. All the calculations were performed on a Linux machine. FEniCSx offers some beta versions for Windows support, but it is recommended to use WSL2 instead. Some issues arose with a macOS and therefore an additional docker container was created. This was not tested and therefore cannot be guaranteed to work properly.

For the ANN, tensorflow2 was used and installed via pip. For PINNs, DeepXDE with the `tensorflow2`backend was used.

Run the following script to install all necessary dependencies via conda.

conda create --name IceMelting python=3.10 -y
conda activate IceMelting2
conda install -c conda-forge fenics-dolfinx=0.8.0 mpich=4.2.1 pyvista=0.43.10 -y
conda install -c conda-forge deepxde==1.12.2 -y
pip install tensorflow==2.18.0 tensorflow_probability==0.25.0 tf_keras==2.18.0

Alternative installation

Use the “environment.yml” file to install all necessary environments

conda env create -f environment.yml

macOS installation using Docker

docker compose build
docker compose run solver

Contact