Boundary integral multi-trace formulations and Optimised Schwarz Methods
This repository contains the code associated with:
Xavier Claeys and Pierre Marchand (2020). Boundary integral multi-trace formulations and Optimised Schwarz Methods. Computers & Mathematics with Applications, June 2020, Vol. 79, Issue 11, Pages 3241-3256.
Dependencies
C++:
- CMake
- Boost
Python:
- scipy
- pandas
- matplotlib
For some reason, computing the spectrum with scipy did not always work and we used matlab in these cases.
Figures
To reproduce the results of the article:
- Compile the code
mkdir build & cd build
cmake ../
make
- Create the input data
cd ../scripts
./gen_meshes.zsh
generates the meshes inmeshes
./gen_mat.zsh
generates the matrices inoutput/matrices
- Create the results
./gen_iterations.zsh
generate the data (number of iterations with number of interfaces )inoutput/csv
./gen_residus.zsh
generate the data (residual with number of iterations in GMRes )inoutput/csv
- Create the figures
./gen_plot_iterations.zsh
generate the figures (number of iterations with number of interfaces )inoutput/figures
./gen_plot_residus.zsh
generate the figures (residual with number of iterations in GMRes )inoutput/figures
Concerning the spectrum:
- For Configuration II, you can use
python3 compute_spectrum.py --ni 3 --geo non_emboite --type 1
python3 plot_spectrum.py --ni 3 --geo non_emboite --type 1
where ni
is the number of interfaces and type
the setting for
- For Configuration I, you need to
- convert the matrices to matlab format with
python3 to_matlab.py --ni 3 --geo emboite --type 1
- run
compute_spectrum.m
with matlab python3 plot_spectrum.py --ni 3 --geo emboite --type 1
- convert the matrices to matlab format with