From 662afb099e8bb65b4617a770f0c615647eb4848e Mon Sep 17 00:00:00 2001
From: Romain Boman <r.boman@uliege.be>
Date: Fri, 28 Oct 2022 17:18:29 +0200
Subject: [PATCH] remove all files

---
 .clang-format                                 |   11 -
 .editorconfig                                 |    8 -
 .gitattributes                                |    6 -
 .gitignore                                    |   66 -
 .gitlab-ci.yml                                |  116 -
 .gitmodules                                   |    3 -
 CMake/FindMPI4PY.cmake                        |   42 -
 CMake/disable-trilinos.cmake                  |   17 -
 CMake/fabulous.cmake                          |   16 -
 CMake/maclam.cmake                            |   19 -
 CMake/mingw32-msys.cmake                      |   26 -
 CMake/mingw32.cmake                           |   28 -
 CMake/msys2.cmake                             |   24 -
 CMakeLists.txt                                |  181 -
 CODEOWNERS                                    |   16 -
 Doxyfile.in                                   | 2493 --------
 LICENSE                                       |  201 -
 README.md                                     |   42 +-
 dox/flow.png                                  |  Bin 2240929 -> 0 bytes
 dox/img.png                                   |  Bin 681759 -> 0 bytes
 dox/logo.jpg                                  |  Bin 10837 -> 0 bytes
 ext/CMakeLists.txt                            |    1 -
 ext/amfe                                      |    1 -
 heat/CMakeLists.txt                           |   20 -
 heat/__init__.py                              |   22 -
 heat/_src/CMakeLists.txt                      |   52 -
 heat/_src/heatw.i                             |  102 -
 heat/broken/heat_multiscale.py                |  111 -
 heat/broken/honeycomb_jalil.geo               |   71 -
 heat/broken/honeycomb_jalil.py                |   55 -
 heat/broken/jalil1.py                         |  247 -
 heat/broken/jalil1_corner.geo                 |   23 -
 heat/broken/jalil1_micro.geo                  |   60 -
 heat/broken/jalil1_micro.py                   |   34 -
 heat/broken/jalil2.py                         |  270 -
 heat/broken/jalil2_honey.geo                  |   71 -
 heat/broken/jalil2_honey.py                   |   54 -
 heat/broken/jalil2_taskpull.py                |   82 -
 heat/broken/rve.geo                           |   60 -
 heat/broken/rve.py                            |   32 -
 heat/fe2.py                                   |  305 -
 heat/matlab/rotK.m                            |   26 -
 heat/models/__init__.py                       |    0
 heat/models/honeycomb.geo                     |   93 -
 heat/models/rect.geo                          |   33 -
 heat/models/rect.py                           |   71 -
 heat/models/rect_stru.geo                     |   44 -
 heat/src/CMakeLists.txt                       |   27 -
 heat/src/heat.h                               |   57 -
 heat/src/wBoundary.cpp                        |   35 -
 heat/src/wBoundary.h                          |   50 -
 heat/src/wCompiledFct.cpp                     |   18 -
 heat/src/wCompiledFct.h                       |  104 -
 heat/src/wDirichlet.cpp                       |   66 -
 heat/src/wDirichlet.h                         |   55 -
 heat/src/wDisplayHook.cpp                     |   32 -
 heat/src/wDisplayHook.h                       |   41 -
 heat/src/wExtractor.cpp                       |   51 -
 heat/src/wExtractor.h                         |   50 -
 heat/src/wHeatTerm.cpp                        |  148 -
 heat/src/wHeatTerm.h                          |   45 -
 heat/src/wMedium.cpp                          |   41 -
 heat/src/wMedium.h                            |   51 -
 heat/src/wPeriodic.cpp                        |  233 -
 heat/src/wPeriodic.h                          |   82 -
 heat/src/wProblem.cpp                         |   58 -
 heat/src/wProblem.h                           |   67 -
 heat/src/wSolver.cpp                          |  712 ---
 heat/src/wSolver.h                            |   79 -
 heat/src/wSource.cpp                          |   35 -
 heat/src/wSource.h                            |   52 -
 heat/tests/basics/anisotropy.py               |   56 -
 heat/tests/basics/dirichletx.py               |   35 -
 heat/tests/basics/dirichletx_stru.py          |   34 -
 heat/tests/basics/dirichlety.py               |   35 -
 heat/tests/basics/mat2hole.geo                |   79 -
 heat/tests/basics/mat2hole.py                 |   61 -
 heat/tests/basics/source.py                   |   35 -
 heat/tests/directors/material.py              |   99 -
 heat/tests/directors/neumann.py               |   73 -
 heat/tests/directors/source.py                |   74 -
 heat/tests/fe2/Lmacro.geo                     |   37 -
 heat/tests/fe2/Lmicro.geo                     |   33 -
 heat/tests/fe2/Lmpi.py                        |   92 -
 heat/tests/fe2/heat_mpi.py                    |   94 -
 heat/tests/fe2/heat_mpi.sge.sh                |   35 -
 heat/tests/fe2/heat_mpi.slurm.sh              |   25 -
 heat/tests/fe2/macro.geo                      |   50 -
 heat/tests/fe2/micro.geo                      |   63 -
 heat/tests/fe2/micro.py                       |   50 -
 heat/tests/nonlinear/mat2.geo                 |   72 -
 heat/tests/nonlinear/mat2vark.py              |   67 -
 heat/tests/periodic/honeycomb.py              |   72 -
 heat/tests/periodic/lincomb.py                |  137 -
 heat/tests/periodic/lincomb_fast.py           |  114 -
 heat/utils.py                                 |   77 -
 heat/viewer.py                                |   49 -
 katoptron/CMAME/MG/beam.geo                   |   81 -
 katoptron/CMAME/MG/beam.py                    |  240 -
 katoptron/CMAME/MG/post.py                    |  141 -
 katoptron/CMAME/__init__.py                   |    1 -
 katoptron/CMAME/mesh/plate.geo                |   86 -
 katoptron/CMAME/mesh/plate_1.geo              |   81 -
 katoptron/CMAME/mesh/plate_2.geo              |   86 -
 katoptron/CMAME/mesh/plate_2_extended.geo     |  174 -
 katoptron/CMAME/model.py                      |  369 --
 .../CMAME/old_slurm/blake_GS_omega.slurm.sh   |   14 -
 .../CMAME/old_slurm/blake_MC_GS.slurm.sh      |   20 -
 .../old_slurm/blake_MC_GS_direct.slurm.sh     |   22 -
 .../old_slurm/blake_MC_GS_fused.slurm.sh      |   20 -
 .../old_slurm/blake_MC_GS_fused_prec.slurm.sh |   20 -
 .../CMAME/old_slurm/blake_MC_MG.slurm.sh      |   22 -
 .../CMAME/old_slurm/blake_MC_MG_2.slurm.sh    |   22 -
 .../CMAME/old_slurm/blake_MC_direct.slurm.sh  |   23 -
 .../CMAME/old_slurm/blake_NO_EP.slurm.sh      |   17 -
 .../blake_convergence_direct.slurm.sh         |   14 -
 .../old_slurm/blake_correlation.slurm.sh      |   20 -
 .../blake_eigenvalues_direct.slurm.sh         |   14 -
 .../old_slurm/blake_eigenvalues_gs.slurm.sh   |   14 -
 .../CMAME/old_slurm/blake_gamma.slurm.sh      |   20 -
 katoptron/CMAME/old_slurm/blake_prec.slurm.sh |   20 -
 .../old_slurm/blake_prec_GS_direct.slurm.sh   |   20 -
 .../blake_prec_GS_direct_lvl.slurm.sh         |   20 -
 katoptron/CMAME/old_slurm/bowman.slurm.sh     |   21 -
 katoptron/CMAME/old_tests/2_cubes_patch_GS.py |  153 -
 .../CMAME/old_tests/2_cubes_patch_GS_klu.py   |  169 -
 .../CMAME/old_tests/2_cubes_patch_direct.py   |  153 -
 katoptron/CMAME/old_tests/clean_A_B.py        |   87 -
 katoptron/CMAME/old_tests/compare_GB.py       |  181 -
 .../CMAME/old_tests/cube_deltas_omegas_GS.py  |  132 -
 .../old_tests/fused_plate_MC_GS_all_cases.py  |  273 -
 .../old_tests/fused_plate_mean_prec_GS.py     |  248 -
 .../old_tests/fused_plate_mean_prec_GS_2.py   |  248 -
 .../old_tests/fused_plate_mean_prec_GS_3.py   |  248 -
 .../old_tests/fused_plate_mean_prec_GS_4.py   |  248 -
 katoptron/CMAME/old_tests/plate.py            |   69 -
 .../CMAME/old_tests/plate_MC_GS_all_cases.py  |  136 -
 .../CMAME/old_tests/plate_MC_GS_case_1.py     |   95 -
 .../CMAME/old_tests/plate_MC_GS_case_2.py     |   96 -
 .../CMAME/old_tests/plate_MC_GS_case_3.py     |   99 -
 .../CMAME/old_tests/plate_MC_GS_case_4.py     |  100 -
 .../old_tests/plate_MC_GS_direct_all_cases.py |  145 -
 .../CMAME/old_tests/plate_MC_MG_all_cases.py  |  156 -
 .../old_tests/plate_MC_MG_all_cases_2.py      |  162 -
 .../CMAME/old_tests/plate_MC_NO_EP_case_1.py  |   98 -
 .../old_tests/plate_MC_NO_EP_case_1_sp.py     |   95 -
 .../CMAME/old_tests/plate_MC_NO_EP_case_2.py  |  100 -
 .../CMAME/old_tests/plate_MC_NO_EP_case_3.py  |  103 -
 .../CMAME/old_tests/plate_MC_NO_EP_case_4.py  |  104 -
 .../CMAME/old_tests/plate_MC_direct_case_1.py |   98 -
 .../CMAME/old_tests/plate_MC_direct_case_2.py |  100 -
 .../CMAME/old_tests/plate_MC_direct_case_3.py |  103 -
 .../CMAME/old_tests/plate_MC_direct_case_4.py |  104 -
 .../old_tests/plate_convergence_direct.py     |   85 -
 .../CMAME/old_tests/plate_correlation.py      |  107 -
 .../CMAME/old_tests/plate_deltas_omegas_GS.py |  120 -
 .../old_tests/plate_deltas_omegas_direct.py   |  111 -
 .../CMAME/old_tests/plate_eigenvalues.py      |   64 -
 .../old_tests/plate_eigenvalues_gamma.py      |   67 -
 katoptron/CMAME/old_tests/plate_extended.py   |   67 -
 katoptron/CMAME/old_tests/plate_mean_gamma.py |  106 -
 katoptron/CMAME/old_tests/plate_mean_prec.py  |  151 -
 .../old_tests/plate_mean_prec_GS_direct.py    |  196 -
 .../plate_mean_prec_GS_direct_lvl.py          |  197 -
 .../plate_mean_prec_GS_direct_opti.py         |  119 -
 .../CMAME/old_tests/plate_vd_Direct_200.py    |  104 -
 .../CMAME/old_tests/plate_vd_Direct_3.py      |  104 -
 katoptron/CMAME/old_tests/plate_vd_GS_200.py  |  108 -
 .../old_tests/plate_vd_GS_200_with_gamma.py   |  107 -
 katoptron/CMAME/old_tests/plate_vd_GS_3.py    |  110 -
 .../old_tests/plate_vd_GS_3_with_gamma.py     |  100 -
 katoptron/CMAME/old_tests/plate_vd_conf.py    |  106 -
 katoptron/CMAME/plate_SPD/blake.slurm.sh      |   20 -
 katoptron/CMAME/plate_SPD/plate.geo           |   43 -
 katoptron/CMAME/plate_SPD/plate.py            |  288 -
 .../CMAME/plate_SPD/plate_convergence.py      |  345 -
 katoptron/CMAME/post_process/2_cube.py        |   36 -
 katoptron/CMAME/post_process/grouping.py      |   73 -
 .../CMAME/post_process/juelich_speedup.py     |   68 -
 katoptron/CMAME/post_process/plate_G.py       |  212 -
 .../CMAME/post_process/plate_GS_direct.py     |  318 -
 .../post_process/plate_GS_direct_fused.py     |  278 -
 katoptron/CMAME/post_process/plate_MC.py      |  357 --
 .../CMAME/post_process/plate_MC_MG_speedup.py |   73 -
 .../plate_MC_MG_speedup_200_ER.py             |   74 -
 .../post_process/plate_MC_MG_speedup_ER.py    |   74 -
 .../post_process/plate_MC_MG_speedup_NER.py   |   75 -
 .../CMAME/post_process/plate_MC_MG_total.py   |   73 -
 .../CMAME/post_process/plate_MC_MG_total_2.py |   76 -
 .../plate_MC_MG_total_2_analysis.py           |   72 -
 katoptron/CMAME/post_process/plate_MC_QoI.py  |   47 -
 .../post_process/plate_MC_QoI_analysis.py     |   67 -
 .../post_process/plate_MC_convergence.py      |   90 -
 .../post_process/plate_MC_convergence_2.py    |  573 --
 .../post_process/plate_MC_convergence_3.py    |  159 -
 .../CMAME/post_process/plate_MC_speedup.py    |   68 -
 .../CMAME/post_process/plate_convergence.py   |   31 -
 katoptron/CMAME/post_process/plate_cor_R.py   |   92 -
 .../CMAME/post_process/plate_deltas_omegas.py |  207 -
 .../plate_deltas_omegas_direct_analysis.py    |  168 -
 .../plate_deltas_omegas_gs_analysis.py        |  170 -
 katoptron/CMAME/post_process/plate_gamma.py   |   40 -
 katoptron/CMAME/post_process/plate_gamma_R.py |   82 -
 katoptron/CMAME/post_process/plate_mean.py    |  196 -
 katoptron/CMAME/post_process/plate_mean_GS.py |  292 -
 .../CMAME/post_process/plate_mean_GS_omega.py |   65 -
 .../post_process/plate_mean_convergence.py    |  223 -
 katoptron/CMAME/slurm/blake_MC_MG.slurm.sh    |   53 -
 .../CMAME/tests/plate_MC_MG_all_cases.py      |  110 -
 katoptron/CMakeLists.txt                      |   12 -
 katoptron/Juelich/UQ/GS.py                    |  290 -
 katoptron/Juelich/UQ/GS_2.py                  |  198 -
 katoptron/Juelich/UQ/__init__.py              |    2 -
 katoptron/Juelich/UQ/copulas.py               |   12 -
 katoptron/Juelich/UQ/halton.py                |  392 --
 katoptron/Juelich/UQ/kde.py                   |   70 -
 katoptron/Juelich/UQ/mirror.py                |  605 --
 katoptron/Juelich/UQ/mirror_2.py              |   73 -
 katoptron/Juelich/UQ/mirror_PCE.py            |  235 -
 .../Juelich/UQ/mirror_PCE_convergence.py      |  353 --
 katoptron/Juelich/UQ/preload.py               |  159 -
 katoptron/Juelich/UQ/speedup.py               |  409 --
 katoptron/Juelich/UQ/test_halton.py           |   67 -
 katoptron/Juelich/UQ/test_kde.py              |   49 -
 katoptron/Juelich/__init__.py                 |    2 -
 katoptron/Juelich/broken/M1.py                |  315 -
 katoptron/Juelich/broken/M1_assembly.py       |  236 -
 .../Juelich/broken/M1_assembly_fused_all.py   |  354 --
 .../Juelich/broken/M1_assembly_fused_mm.py    |  355 --
 katoptron/Juelich/broken/M1_assembly_mm.py    |  454 --
 katoptron/Juelich/broken/M1_mirror_optic.py   |   91 -
 katoptron/Juelich/broken/M1_optic_test.py     |  148 -
 katoptron/Juelich/broken/M1_run.sh            |    4 -
 .../mesh/contact_mirror_assembly_mm.brep      |    3 -
 .../mesh/contact_mirror_assembly_mm.geo       |  367 --
 .../mesh/fused_mirror_assembly_all_mm.brep    |    3 -
 .../mesh/fused_mirror_assembly_all_mm.geo     |  694 --
 .../mesh/fused_mirror_assembly_mm.brep        |    3 -
 .../Juelich/mesh/fused_mirror_assembly_mm.geo |  324 -
 katoptron/Juelich/post_process/AB.py          |  111 -
 katoptron/Juelich/post_process/__init__.py    |    2 -
 .../Juelich/post_process/vtk_post_process.py  |  328 -
 .../post_process/vtk_post_process_2.py        |  961 ---
 katoptron/Juelich/samples_files/Xiao_1.npz    |  Bin 372 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_10.npz   |  Bin 682 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_11.npz   |  Bin 720 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_12.npz   |  Bin 779 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_13.npz   |  Bin 833 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_14.npz   |  Bin 898 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_15.npz   |  Bin 964 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_16.npz   |  Bin 1044 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_17.npz   |  Bin 1094 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_18.npz   |  Bin 1188 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_19.npz   |  Bin 1248 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_2.npz    |  Bin 381 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_20.npz   |  Bin 1332 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_21.npz   |  Bin 1409 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_22.npz   |  Bin 1497 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_23.npz   |  Bin 1590 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_24.npz   |  Bin 1681 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_25.npz   |  Bin 1768 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_26.npz   |  Bin 1873 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_27.npz   |  Bin 1984 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_28.npz   |  Bin 2076 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_29.npz   |  Bin 2191 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_3.npz    |  Bin 445 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_30.npz   |  Bin 2310 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_31.npz   |  Bin 2427 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_32.npz   |  Bin 2559 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_33.npz   |  Bin 2684 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_34.npz   |  Bin 2807 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_35.npz   |  Bin 2956 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_36.npz   |  Bin 3081 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_37.npz   |  Bin 3191 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_38.npz   |  Bin 3318 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_39.npz   |  Bin 3497 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_4.npz    |  Bin 445 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_40.npz   |  Bin 3656 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_41.npz   |  Bin 3770 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_42.npz   |  Bin 3964 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_43.npz   |  Bin 4111 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_44.npz   |  Bin 4245 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_45.npz   |  Bin 4433 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_46.npz   |  Bin 4598 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_47.npz   |  Bin 4719 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_48.npz   |  Bin 4955 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_49.npz   |  Bin 5130 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_5.npz    |  Bin 461 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_50.npz   |  Bin 5305 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_6.npz    |  Bin 517 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_7.npz    |  Bin 559 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_8.npz    |  Bin 575 -> 0 bytes
 katoptron/Juelich/samples_files/Xiao_9.npz    |  Bin 611 -> 0 bytes
 katoptron/Juelich/slurm/blake.slurm.sh        |   43 -
 katoptron/Juelich/slurm/blake_ER_NER.slurm.sh |  101 -
 katoptron/Juelich/slurm/blake_all.slurm.sh    |   47 -
 katoptron/Juelich/slurm/blake_order.slurm.sh  |   43 -
 .../Juelich/slurm/blake_preload.slurm.sh      |   43 -
 katoptron/Juelich/smoothers/AMG_BGS_gs_gs.xml |  226 -
 .../Juelich/smoothers/AMG_BGS_gs_gs_old.xml   |  294 -
 .../Juelich/smoothers/AMG_BGS_gs_gs_rep.xml   |  380 --
 .../Juelich/smoothers/heat_no_contact.xml     |   19 -
 .../smoothers/heat_no_contact_mtgs.xml        |   20 -
 katoptron/Juelich/smoothers/mySIM1.xml        |  190 -
 katoptron/Juelich/smoothers/mySIM1_old.xml    |  190 -
 .../Juelich/tests/M1_assembly_contact.py      |  241 -
 katoptron/Juelich/tests/M1_assembly_fused.py  |  559 --
 .../Juelich/tests/M1_assembly_fused_MC_k.py   |  545 --
 .../tests/M1_assembly_fused_MC_k_order.py     |  554 --
 .../Juelich/tests/M1_assembly_fused_all.py    |  475 --
 .../Juelich/tests/M1_assembly_fused_old.py    |  568 --
 .../tests/M1_assembly_fused_preload.py        |  544 --
 katoptron/__init__.py                         |   10 -
 katoptron/_src/CMakeLists.txt                 |  117 -
 katoptron/_src/katoptronw.i                   |  134 -
 katoptron/convergence.py                      |  335 -
 katoptron/eigenvalues.py                      |  637 --
 katoptron/exe/CMakeLists.txt                  |   90 -
 katoptron/exe/main.cpp                        |  260 -
 katoptron/matlab/Belos/read_belos.m           |   40 -
 katoptron/matlab/Belos/test_belos.m           |   10 -
 katoptron/matlab/Belos/test_belos2.m          |   41 -
 katoptron/matlab/Belos/test_belos3.m          |   41 -
 katoptron/matlab/Belos/test_belos4.m          |   84 -
 katoptron/matlab/Belos/test_belos5.m          |   43 -
 katoptron/matlab/Belos/test_belos6.m          |   76 -
 katoptron/matlab/Belos/test_belos7.m          |  204 -
 katoptron/matlab/Belos/test_belos8.m          |   25 -
 .../matlab/CPU statistic/amesos2_klu2.mat     |  Bin 694 -> 0 bytes
 .../matlab/CPU statistic/amesos_belos.mat     |  Bin 745 -> 0 bytes
 katoptron/matlab/CPU statistic/cube_.tex      |  238 -
 .../cube_test_nic4_distributed.m              |  182 -
 .../cube_test_nic4_distributed_mean.m         |  188 -
 .../CPU statistic/cube_test_nic4_shared.m     |  283 -
 .../matlab/CPU statistic/read_workspace.m     |    5 -
 katoptron/matlab/Krylov/createVandermond.m    |   64 -
 .../matlab/Multigrid/eigenvaluesOneDTest.m    |  113 -
 .../Multigrid/oneDLaplacianEigenvalues.m      |   17 -
 .../matlab/Multigrid/oneDLaplacianMatrix.m    |    9 -
 katoptron/matlab/Multigrid/oneDProlongation.m |   10 -
 katoptron/matlab/Multigrid/oneDRestriction.m  |   10 -
 katoptron/matlab/Multigrid/read_agregate.m    |   20 -
 .../matlab/Multigrid/richardsonSmoother.m     |   14 -
 .../matlab/Multigrid/testOneDProlongation.m   |   96 -
 .../matlab/Multigrid/testOneDRestriction.m    |   98 -
 .../matlab/Multigrid/testOneDTwoGridCycle.m   |  148 -
 .../matlab/Multigrid/testRichardsonSmoother.m |   33 -
 katoptron/matlab/Multigrid/twoGridCycle.m     |  101 -
 katoptron/matlab/Richardson/oneDLaplacian.m   |  117 -
 .../.gitattributes                            |    2 -
 .../LICENSE.TXT                               |  176 -
 .../DrosteEffect-BrewerMap-c64a384/README.md  |   85 -
 .../brewermap.m                               |  518 --
 .../brewermap_view.m                          |  323 -
 .../matlab2tikz-matlab2tikz-722609f/AUTHORS   |    1 -
 .../matlab2tikz-matlab2tikz-722609f/COPYING   |   24 -
 .../matlab2tikz-matlab2tikz-722609f/ChangeLog |  388 --
 .../matlab2tikz-matlab2tikz-722609f/Makefile  |   21 -
 .../matlab2tikz-matlab2tikz-722609f/README.md |   69 -
 .../matlab2tikz-matlab2tikz-722609f/THANKS    |   47 -
 .../logos/matlab2tikz.svg                     |   94 -
 .../src/cleanfigure.m                         |  524 --
 .../src/cond_2                                |   38 -
 .../src/cond_2.tex                            |   38 -
 .../src/figure2dot.m                          |  155 -
 .../src/m2tInputParser.m                      |  256 -
 .../src/matlab2tikz.m                         | 5555 -----------------
 .../src/myfile                                |   43 -
 .../src/private/m2tUpdater.m                  |  142 -
 .../src/test.text                             |  322 -
 .../test/ACID.m                               | 2378 -------
 .../test/README                               |   27 -
 .../test/codeReport.m                         |  268 -
 .../test/data/converted/Makefile              |   23 -
 .../test/data/reference/Makefile              |   19 -
 .../test/herrorbar.m                          |  152 -
 .../test/issues.m                             |   43 -
 .../test/matlab2tikz_acidtest.m               |  609 --
 .../test/myCount.dat                          |   24 -
 .../test/pointReductionTest.m                 |   34 -
 .../test/runtests                             |   56 -
 .../test/testPatches.m                        |  121 -
 .../test/testSurfshader.m                     |  103 -
 .../test/tex/Makefile                         |   33 -
 .../version-0.6.0                             |    6 -
 katoptron/matlab/TPL/matlab2tikz2.m           |   29 -
 katoptron/matlab/TPL/test.tex                 |  130 -
 katoptron/matlab/TPL/test.tex_tmp             |  130 -
 katoptron/matlab/ensemble/eric_data.m         |  571 --
 katoptron/matlab/ensemble/eric_paper.mat      |  Bin 4953 -> 0 bytes
 katoptron/matlab/ensemble/timers.mat          |  Bin 689 -> 0 bytes
 katoptron/matlab/gmsh/distancePointPlane.m    |   13 -
 katoptron/matlab/gmsh/readMshFile.m           |   68 -
 katoptron/matlab/gmsh/showMsh.m               |  129 -
 katoptron/matlab/gmsh/test_readMshFile.m      |   80 -
 katoptron/matlab/gmsh/test_showMsh.m          |   12 -
 .../matlab/matrix graph/load_crs_matrix.m     |   42 -
 katoptron/matlab/matrix graph/show_graph.m    |   52 -
 .../matlab/matrix graph/show_trilinos_graph.m |   31 -
 katoptron/matlab/matrix graph/testSchur.m     |   70 -
 .../matlab/matrix graph/test_show_graph.m     |   42 -
 katoptron/preconditioners/AMG_BGS_gs_gs.xml   |  232 -
 .../preconditioners/BraessSarazin_cheby.xml   |  243 -
 .../preconditioners/BraessSarazin_direct.xml  |  237 -
 .../preconditioners/BraessSarazin_gs.xml      |  249 -
 .../preconditioners/BraessSarazin_jacobi.xml  |  249 -
 .../preconditioners/BraessSarazin_mtgs.xml    |  251 -
 .../IndefiniteBlockDiagonal_cheby.xml         |  250 -
 .../IndefiniteBlockDiagonal_direct.xml        |  244 -
 .../IndefiniteBlockDiagonal_gs.xml            |  256 -
 .../IndefiniteBlockDiagonal_jacobi.xml        |  256 -
 .../IndefiniteBlockDiagonal_mtgs.xml          |  258 -
 katoptron/preconditioners/SIMPLEC_cheby.xml   |  251 -
 katoptron/preconditioners/SIMPLEC_direct.xml  |  245 -
 katoptron/preconditioners/SIMPLEC_gs.xml      |  257 -
 katoptron/preconditioners/SIMPLEC_jacobi.xml  |  257 -
 katoptron/preconditioners/SIMPLEC_mtgs.xml    |  259 -
 katoptron/preconditioners/SIMPLE_cheby.xml    |  251 -
 katoptron/preconditioners/SIMPLE_direct.xml   |  245 -
 .../preconditioners/SIMPLE_direct_2_lvls.xml  |  245 -
 katoptron/preconditioners/SIMPLE_gs.xml       |  257 -
 katoptron/preconditioners/SIMPLE_gs.xml.in    |  257 -
 .../preconditioners/SIMPLE_gs_2_lvls.xml      |  257 -
 .../preconditioners/SIMPLE_gs_3_sweeps.xml    |  257 -
 .../preconditioners/SIMPLE_gs_direct.xml.in   |  250 -
 .../SIMPLE_gs_direct_lvl.xml.in               |  276 -
 .../SIMPLE_gs_direct_lvl_MT.xml.in            |  276 -
 katoptron/preconditioners/SIMPLE_jacobi.xml   |  257 -
 katoptron/preconditioners/SIMPLE_mtgs.xml     |  257 -
 katoptron/preconditioners/Uzawa_cheby.xml     |  250 -
 katoptron/preconditioners/Uzawa_direct.xml    |  244 -
 katoptron/preconditioners/Uzawa_gs.xml        |  256 -
 katoptron/preconditioners/Uzawa_jacobi.xml    |  256 -
 katoptron/preconditioners/Uzawa_mtgs.xml      |  258 -
 katoptron/preconditioners/blockdirect.xml     |   30 -
 katoptron/preconditioners/gs_lvl.xml.in       |   95 -
 katoptron/readers.py                          |  124 -
 katoptron/speedup.py                          |  172 -
 katoptron/src/Algebraic.h                     |   48 -
 katoptron/src/Algebraic.hpp                   |   79 -
 katoptron/src/AlgebraicETI.cpp                |   10 -
 ...StatusTestWeightedGenResNorm_MP_Vector.hpp |  769 ---
 ...petraStatusTestGenResSubNorm_MP_Vector.hpp | 1537 -----
 katoptron/src/CMakeLists.txt                  |   97 -
 katoptron/src/ContactsList.cpp                |  284 -
 katoptron/src/ContactsList.h                  |  500 --
 katoptron/src/DirichletList.h                 |  112 -
 katoptron/src/DirichletList.hpp               |   93 -
 katoptron/src/DirichletListETI.cpp            |   10 -
 katoptron/src/DiscreteProblem.h               |   99 -
 katoptron/src/DiscreteProblem.hpp             | 1424 -----
 katoptron/src/DiscreteProblemETI.cpp          |   10 -
 katoptron/src/Domain.h                        |   74 -
 katoptron/src/ElementComputation.cpp          |   27 -
 katoptron/src/ElementComputation.h            |   46 -
 katoptron/src/ElementComputation.hpp          |  142 -
 katoptron/src/ElementMatrices.h               |   69 -
 katoptron/src/ElementMatrices.hpp             |  300 -
 katoptron/src/ElementMatricesETI.cpp          |   14 -
 katoptron/src/ElementVectors.h                |   42 -
 katoptron/src/ElementVectors.hpp              |  108 -
 katoptron/src/ElementVectorsETI.cpp           |   43 -
 katoptron/src/ElementsList.cpp                |   85 -
 katoptron/src/ElementsList.h                  |  112 -
 katoptron/src/EnsembleReduction.h             |   14 -
 katoptron/src/EnsembleTraits.h                |   30 -
 katoptron/src/Graph.cpp                       |  335 -
 katoptron/src/Graph.h                         |   36 -
 katoptron/src/IterativeSolver.cpp             |  868 ---
 katoptron/src/IterativeSolver.h               |   37 -
 katoptron/src/Kokkos_Init.h                   |   20 -
 katoptron/src/LinearSolver.h                  |  162 -
 katoptron/src/Loads.h                         |   58 -
 katoptron/src/Map.cpp                         |  328 -
 katoptron/src/Map.h                           |   73 -
 katoptron/src/Material.h                      |   77 -
 katoptron/src/MaterialsList.h                 |  170 -
 katoptron/src/Matrices.h                      |  126 -
 katoptron/src/Mortar.cpp                      | 1059 ----
 katoptron/src/Mortar.h                        |  109 -
 katoptron/src/NeumannList.h                   |  196 -
 katoptron/src/NodesList.cpp                   |   28 -
 katoptron/src/NodesList.h                     |   31 -
 katoptron/src/PreloadList.h                   |   77 -
 katoptron/src/ResultsDecl.hpp                 |   62 -
 katoptron/src/ResultsDef.hpp                  |  366 --
 katoptron/src/ResultsETI.cpp                  |   75 -
 katoptron/src/SourcesList.h                   |  164 -
 katoptron/src/StressComputation.h             |  133 -
 katoptron/src/Vectors.h                       |   78 -
 katoptron/src/WeightsList.h                   |  200 -
 katoptron/src/katoptron.h                     |   37 -
 katoptron/src/tMatrix.h                       |  223 -
 katoptron/src/wContact.cpp                    |  443 --
 katoptron/src/wContact.h                      |   84 -
 katoptron/src/wDirichlet.cpp                  |  200 -
 katoptron/src/wDirichlet.h                    |   70 -
 katoptron/src/wDisplayHook.cpp                |   25 -
 katoptron/src/wDisplayHook.h                  |   22 -
 katoptron/src/wMedium.cpp                     |  150 -
 katoptron/src/wMedium.h                       |   67 -
 katoptron/src/wNeumann.cpp                    |  109 -
 katoptron/src/wNeumann.h                      |   50 -
 katoptron/src/wProblem.cpp                    |   49 -
 katoptron/src/wProblem.h                      |   45 -
 katoptron/src/wRandomField.h                  |  177 -
 katoptron/src/wRandomVariable.h               |   25 -
 katoptron/src/wSource.cpp                     |   40 -
 katoptron/src/wSource.h                       |   33 -
 katoptron/src/wSpectralApproach.h             |  115 -
 katoptron/src/wVtkExport_KIM2CLEAN.cpp        |  400 --
 katoptron/src/wVtkExport_KIM2CLEAN.h          |   69 -
 katoptron/src/wWeight.cpp                     |  177 -
 katoptron/src/wWeight.h                       |   67 -
 katoptron/tests/1_cube.geo                    |   39 -
 katoptron/tests/1_cube.py                     |  118 -
 katoptron/tests/1_cube_conv.py                |  123 -
 katoptron/tests/1_cube_k.py                   |   94 -
 katoptron/tests/1_cube_rf.py                  |  140 -
 katoptron/tests/1_cube_tet.geo                |   38 -
 katoptron/tests/1_cube_tet.py                 |  117 -
 katoptron/tests/1_cube_tet_block.py           |  127 -
 katoptron/tests/2_cubes.geo                   |   77 -
 katoptron/tests/2_cubes.py                    |   88 -
 katoptron/tests/2_cubes_fused.geo             |   72 -
 katoptron/tests/2_cubes_heat.py               |  114 -
 katoptron/tests/2_cubes_no_contact.py         |   92 -
 katoptron/tests/2_cubes_patch.geo             |  149 -
 katoptron/tests/2_cubes_patch.py              |  105 -
 katoptron/tests/2_cubes_patch_2_lvls.py       |   94 -
 .../tests/2_cubes_patch_BraessSarazin.py      |  103 -
 .../tests/2_cubes_patch_IndefBlockDiagonal.py |  103 -
 katoptron/tests/2_cubes_patch_SIMPLE.py       |  106 -
 katoptron/tests/2_cubes_patch_SIMPLEC.py      |  103 -
 katoptron/tests/2_cubes_patch_Uzawa.py        |  103 -
 katoptron/tests/2_cubes_sticking.geo          |   72 -
 katoptron/tests/2_cubes_sticking.py           |   88 -
 katoptron/tests/2_cubes_tet.geo               |   75 -
 katoptron/tests/2_cubes_tet.py                |   88 -
 katoptron/tests/3_cubes.geo                   |  107 -
 katoptron/tests/3_cubes_partial_sticking.py   |  105 -
 katoptron/tests/L_shape.py                    |   91 -
 katoptron/tests/L_shape_1.geo                 |   95 -
 katoptron/tests/L_shape_2.geo                 |  167 -
 katoptron/tests/L_shape_curv_1.geo            |  134 -
 katoptron/tests/L_shape_curv_2.geo            |  163 -
 katoptron/tests/M1_optic_test.py              |  124 -
 katoptron/tests/beam.geo                      |  114 -
 katoptron/tests/beam.py                       |  222 -
 katoptron/tests/direct_solver.xml             |  116 -
 katoptron/tests/mirror_data.npz               |  Bin 327176 -> 0 bytes
 katoptron/tests/multigrid_2_lvls_3_1.xml      |  257 -
 katoptron/tests/plate.py                      |   74 -
 katoptron/thesis/test_1/1_cube.geo            |   39 -
 katoptron/thesis/test_1/1_cube.py             |  198 -
 katoptron/thesis/test_1/blake.slurm.sh        |   22 -
 katoptron/thesis/test_1/initial_guess.txt     |  375 --
 katoptron/thesis/test_1/post_process.py       |  341 -
 katoptron/thesis/test_2/1_cube.geo            |   42 -
 katoptron/thesis/test_2/1_cube.py             |  159 -
 katoptron/thesis/test_2/blake.slurm.sh        |   22 -
 katoptron/thesis/test_2/post_process.py       |  136 -
 katoptron/thesis/test_2/prec.xml              |   20 -
 katoptron/thesis/test_2/prec_1.xml            |   16 -
 katoptron/thesis/test_3/beam.geo              |  114 -
 katoptron/thesis/test_3/beam.py               |  238 -
 katoptron/thesis/test_3/blake.slurm.sh        |   22 -
 katoptron/thesis/test_3/ordering.txt          |  640 --
 katoptron/thesis/test_3/post_process.py       |  485 --
 katoptron/thesis/test_4/1_cube.geo            |   42 -
 katoptron/thesis/test_4/1_cube.py             |  148 -
 katoptron/thesis/test_4/blake.slurm.sh        |   61 -
 katoptron/thesis/test_4/blake_N_1.slurm.sh    |   61 -
 katoptron/thesis/test_4/blake_N_2.slurm.sh    |   61 -
 katoptron/thesis/test_4/blake_N_4.slurm.sh    |   61 -
 katoptron/thesis/test_4/blake_N_8.slurm.sh    |   61 -
 katoptron/thesis/test_4/prec.xml              |   20 -
 katoptron/thesis/test_4/prec_1.xml            |   16 -
 katoptron/thesis/test_5/1_bar.py              |  220 -
 katoptron/thesis/test_5/laplacian.py          |  164 -
 katoptron/thesis/test_6/1_cube.geo            |   42 -
 katoptron/thesis/test_6/1_cube.py             |  151 -
 katoptron/thesis/test_6/blake.slurm.sh        |   59 -
 katoptron/thesis/test_6/prec.xml              |   20 -
 katoptron/thesis/test_6/prec_1.xml            |   16 -
 katoptron/thesis/test_6/speedup.py            |  170 -
 katoptron/utilities.py                        |  786 ---
 katoptron/viewer.py                           |  689 --
 run.py                                        |   36 -
 scripts/devenv-mingw.bat                      |   29 -
 scripts/devenv-vs2019.bat                     |   10 -
 tlnos/CMakeLists.txt                          |    8 -
 tlnos/__init__.py                             |    6 -
 tlnos/_src/CMakeLists.txt                     |   46 -
 tlnos/_src/tlnosw.i                           |   53 -
 tlnos/broken/example3.py                      |   15 -
 tlnos/broken/example5.py                      |   15 -
 tlnos/broken/example6.py                      |   15 -
 tlnos/broken/example7.py                      |   15 -
 tlnos/broken/example8.py                      |   15 -
 tlnos/broken/example9.py                      |   15 -
 tlnos/src/CMakeLists.txt                      |   80 -
 .../Example_BCStrategy_Dirichlet_Constant.hpp |   81 -
 ...ple_BCStrategy_Dirichlet_Constant_impl.hpp |  132 -
 tlnos/src/Example_BCStrategy_Factory.hpp      |   90 -
 tlnos/src/Example_ClosureModel_Factory.hpp    |   76 -
 ...e_ClosureModel_Factory_TemplateBuilder.hpp |   66 -
 .../src/Example_ClosureModel_Factory_impl.hpp |  144 -
 tlnos/src/Example_EquationSetFactory.hpp      |   94 -
 tlnos/src/Example_PoissonEquationSet.hpp      |   94 -
 tlnos/src/Example_PoissonEquationSet_impl.hpp |  213 -
 tlnos/src/ExodusInterface.h                   |  231 -
 tlnos/src/TOOLS/PDE_FEM.hpp                   | 1055 ----
 tlnos/src/TOOLS/bfsc_dof_mesh.hpp             |  554 --
 tlnos/src/TOOLS/dofmanager.hpp                |  419 --
 tlnos/src/TOOLS/elasticity.hpp                |  947 ---
 tlnos/src/TOOLS/elasticitySIMP.hpp            |  296 -
 tlnos/src/TOOLS/materials.hpp                 |  252 -
 tlnos/src/TOOLS/meshmanager.hpp               |  711 ---
 tlnos/src/constraint.hpp                      |  218 -
 tlnos/src/data.hpp                            |  843 ---
 tlnos/src/objective.hpp                       |  177 -
 tlnos/src/tlnos.h                             |   36 -
 tlnos/src/wExample1.cpp                       |   98 -
 tlnos/src/wExample1.h                         |   37 -
 tlnos/src/wExample10.cpp                      |   36 -
 tlnos/src/wExample10.h                        |   30 -
 tlnos/src/wExample2.cpp                       |   36 -
 tlnos/src/wExample2.h                         |   30 -
 tlnos/src/wExample3.cpp.disabled              |  373 --
 tlnos/src/wExample3.h.disabled                |   30 -
 tlnos/src/wExample4.cpp                       |  266 -
 tlnos/src/wExample4.h                         |   30 -
 tlnos/src/wExample5.cpp                       |  535 --
 tlnos/src/wExample5.h                         |   30 -
 tlnos/src/wExample6.cpp                       |  533 --
 tlnos/src/wExample6.h                         |   30 -
 tlnos/src/wExample7.cpp.disabled              |  509 --
 tlnos/src/wExample7.h.disabled                |   30 -
 tlnos/src/wExample8.cpp                       |  570 --
 tlnos/src/wExample8.h                         |   30 -
 tlnos/src/wExample9.cpp                       |  466 --
 tlnos/src/wExample9.h                         |   30 -
 tlnos/tests/example1.py                       |   17 -
 tlnos/tests/example10.py                      |   15 -
 tlnos/tests/example2.py                       |   15 -
 tlnos/tests/example4.py                       |   15 -
 tlnos/tests/input.xml                         |    7 -
 .../CMakeDirectoryInformation.cmake           |   16 -
 waves/CMakeFiles/progress.marks               |    1 -
 waves/CMakeLists.txt                          |   33 -
 waves/__init__.py                             |   22 -
 waves/_src/CMakeLists.txt                     |   52 -
 waves/_src/wavesw.i                           |   89 -
 waves/attic/export_xml.py                     |    6 -
 waves/attic/testSonarQ.cpp                    |   22 -
 waves/attic/wDof.cpp                          |    3 -
 waves/attic/wDof.h                            |   43 -
 waves/attic/wField.cpp                        |   32 -
 waves/attic/wField.h                          |   41 -
 waves/attic/wSolver1.cpp                      |    7 -
 waves/attic/wSolver1.h                        |   17 -
 waves/broken/cas1.geo                         |   60 -
 waves/broken/cas1.py                          |   44 -
 waves/broken/geuz/geophysique.geo             |   72 -
 waves/broken/geuz/geophysique.pro             |  149 -
 waves/broken/geuz/geophysique.py              |   52 -
 waves/broken/geuz/geophysique_param.geo       |   20 -
 waves/broken/waves01_onelab.py                |  160 -
 waves/exe/CMakeLists.txt                      |   20 -
 waves/exe/main.cpp                            |   41 -
 waves/models/__init__.py                      |    0
 waves/models/cube.geo                         |   50 -
 waves/models/cube2mat.geo                     |   73 -
 waves/models/plane1mat.py                     |  105 -
 waves/models/plane2mat.py                     |  120 -
 waves/src/CMakeLists.txt                      |   28 -
 waves/src/wBoundary.cpp                       |   35 -
 waves/src/wBoundary.h                         |   46 -
 waves/src/wDisplayHook.cpp                    |   33 -
 waves/src/wDisplayHook.h                      |   41 -
 waves/src/wForwardEuler.cpp                   |  116 -
 waves/src/wForwardEuler.h                     |   42 -
 waves/src/wMedium.cpp                         |   35 -
 waves/src/wMedium.h                           |   47 -
 waves/src/wNewmark.cpp                        |  107 -
 waves/src/wNewmark.h                          |   45 -
 waves/src/wProblem.cpp                        |   68 -
 waves/src/wProblem.h                          |   58 -
 waves/src/wRungeKutta.cpp                     |  142 -
 waves/src/wRungeKutta.h                       |   54 -
 waves/src/wSource.cpp                         |   55 -
 waves/src/wSource.h                           |   50 -
 waves/src/wTimeIntegration.cpp                |  245 -
 waves/src/wTimeIntegration.h                  |   92 -
 waves/src/wWaveTerm.cpp                       |   67 -
 waves/src/wWaveTerm.h                         |   41 -
 waves/src/waves.h                             |   51 -
 waves/srcs.py                                 |   86 -
 waves/tests/attic/bulthuis.geo                |   78 -
 waves/tests/attic/strates.geo                 |   49 -
 waves/tests/mat1/interf1.py                   |   21 -
 waves/tests/mat1/interf2.py                   |   21 -
 waves/tests/mat1/planewave.py                 |   21 -
 waves/tests/mat1/pulse.py                     |   21 -
 waves/tests/mat1/sinsrc.py                    |   21 -
 waves/tests/mat2/interf1.py                   |   21 -
 waves/tests/mat2/pulse.py                     |   21 -
 waves/tests/mat2/reflex.py                    |   21 -
 waves/tests/mat2/sinsrc.py                    |   22 -
 waves/utils.py                                |   38 -
 waves/viewer.py                               |  456 --
 712 files changed, 5 insertions(+), 100012 deletions(-)
 delete mode 100644 .clang-format
 delete mode 100644 .editorconfig
 delete mode 100644 .gitattributes
 delete mode 100644 .gitignore
 delete mode 100644 .gitlab-ci.yml
 delete mode 100644 .gitmodules
 delete mode 100644 CMake/FindMPI4PY.cmake
 delete mode 100644 CMake/disable-trilinos.cmake
 delete mode 100644 CMake/fabulous.cmake
 delete mode 100644 CMake/maclam.cmake
 delete mode 100644 CMake/mingw32-msys.cmake
 delete mode 100644 CMake/mingw32.cmake
 delete mode 100644 CMake/msys2.cmake
 delete mode 100644 CMakeLists.txt
 delete mode 100644 CODEOWNERS
 delete mode 100644 Doxyfile.in
 delete mode 100644 LICENSE
 delete mode 100644 dox/flow.png
 delete mode 100644 dox/img.png
 delete mode 100644 dox/logo.jpg
 delete mode 100644 ext/CMakeLists.txt
 delete mode 160000 ext/amfe
 delete mode 100644 heat/CMakeLists.txt
 delete mode 100644 heat/__init__.py
 delete mode 100644 heat/_src/CMakeLists.txt
 delete mode 100644 heat/_src/heatw.i
 delete mode 100755 heat/broken/heat_multiscale.py
 delete mode 100644 heat/broken/honeycomb_jalil.geo
 delete mode 100755 heat/broken/honeycomb_jalil.py
 delete mode 100755 heat/broken/jalil1.py
 delete mode 100644 heat/broken/jalil1_corner.geo
 delete mode 100644 heat/broken/jalil1_micro.geo
 delete mode 100755 heat/broken/jalil1_micro.py
 delete mode 100755 heat/broken/jalil2.py
 delete mode 100644 heat/broken/jalil2_honey.geo
 delete mode 100755 heat/broken/jalil2_honey.py
 delete mode 100755 heat/broken/jalil2_taskpull.py
 delete mode 100644 heat/broken/rve.geo
 delete mode 100755 heat/broken/rve.py
 delete mode 100755 heat/fe2.py
 delete mode 100644 heat/matlab/rotK.m
 delete mode 100644 heat/models/__init__.py
 delete mode 100644 heat/models/honeycomb.geo
 delete mode 100644 heat/models/rect.geo
 delete mode 100755 heat/models/rect.py
 delete mode 100644 heat/models/rect_stru.geo
 delete mode 100644 heat/src/CMakeLists.txt
 delete mode 100644 heat/src/heat.h
 delete mode 100644 heat/src/wBoundary.cpp
 delete mode 100644 heat/src/wBoundary.h
 delete mode 100644 heat/src/wCompiledFct.cpp
 delete mode 100644 heat/src/wCompiledFct.h
 delete mode 100644 heat/src/wDirichlet.cpp
 delete mode 100644 heat/src/wDirichlet.h
 delete mode 100644 heat/src/wDisplayHook.cpp
 delete mode 100644 heat/src/wDisplayHook.h
 delete mode 100644 heat/src/wExtractor.cpp
 delete mode 100644 heat/src/wExtractor.h
 delete mode 100644 heat/src/wHeatTerm.cpp
 delete mode 100644 heat/src/wHeatTerm.h
 delete mode 100644 heat/src/wMedium.cpp
 delete mode 100644 heat/src/wMedium.h
 delete mode 100644 heat/src/wPeriodic.cpp
 delete mode 100644 heat/src/wPeriodic.h
 delete mode 100644 heat/src/wProblem.cpp
 delete mode 100644 heat/src/wProblem.h
 delete mode 100644 heat/src/wSolver.cpp
 delete mode 100644 heat/src/wSolver.h
 delete mode 100644 heat/src/wSource.cpp
 delete mode 100644 heat/src/wSource.h
 delete mode 100755 heat/tests/basics/anisotropy.py
 delete mode 100755 heat/tests/basics/dirichletx.py
 delete mode 100755 heat/tests/basics/dirichletx_stru.py
 delete mode 100755 heat/tests/basics/dirichlety.py
 delete mode 100644 heat/tests/basics/mat2hole.geo
 delete mode 100755 heat/tests/basics/mat2hole.py
 delete mode 100755 heat/tests/basics/source.py
 delete mode 100755 heat/tests/directors/material.py
 delete mode 100755 heat/tests/directors/neumann.py
 delete mode 100755 heat/tests/directors/source.py
 delete mode 100644 heat/tests/fe2/Lmacro.geo
 delete mode 100644 heat/tests/fe2/Lmicro.geo
 delete mode 100644 heat/tests/fe2/Lmpi.py
 delete mode 100755 heat/tests/fe2/heat_mpi.py
 delete mode 100755 heat/tests/fe2/heat_mpi.sge.sh
 delete mode 100755 heat/tests/fe2/heat_mpi.slurm.sh
 delete mode 100644 heat/tests/fe2/macro.geo
 delete mode 100644 heat/tests/fe2/micro.geo
 delete mode 100755 heat/tests/fe2/micro.py
 delete mode 100644 heat/tests/nonlinear/mat2.geo
 delete mode 100644 heat/tests/nonlinear/mat2vark.py
 delete mode 100755 heat/tests/periodic/honeycomb.py
 delete mode 100755 heat/tests/periodic/lincomb.py
 delete mode 100755 heat/tests/periodic/lincomb_fast.py
 delete mode 100644 heat/utils.py
 delete mode 100644 heat/viewer.py
 delete mode 100644 katoptron/CMAME/MG/beam.geo
 delete mode 100644 katoptron/CMAME/MG/beam.py
 delete mode 100644 katoptron/CMAME/MG/post.py
 delete mode 100644 katoptron/CMAME/__init__.py
 delete mode 100644 katoptron/CMAME/mesh/plate.geo
 delete mode 100644 katoptron/CMAME/mesh/plate_1.geo
 delete mode 100644 katoptron/CMAME/mesh/plate_2.geo
 delete mode 100644 katoptron/CMAME/mesh/plate_2_extended.geo
 delete mode 100644 katoptron/CMAME/model.py
 delete mode 100644 katoptron/CMAME/old_slurm/blake_GS_omega.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_MC_GS.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_MC_GS_direct.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_MC_GS_fused.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_MC_GS_fused_prec.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_MC_MG.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_MC_MG_2.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_MC_direct.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_NO_EP.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_convergence_direct.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_correlation.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_eigenvalues_direct.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_eigenvalues_gs.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_gamma.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_prec.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_prec_GS_direct.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/blake_prec_GS_direct_lvl.slurm.sh
 delete mode 100644 katoptron/CMAME/old_slurm/bowman.slurm.sh
 delete mode 100644 katoptron/CMAME/old_tests/2_cubes_patch_GS.py
 delete mode 100644 katoptron/CMAME/old_tests/2_cubes_patch_GS_klu.py
 delete mode 100644 katoptron/CMAME/old_tests/2_cubes_patch_direct.py
 delete mode 100644 katoptron/CMAME/old_tests/clean_A_B.py
 delete mode 100644 katoptron/CMAME/old_tests/compare_GB.py
 delete mode 100644 katoptron/CMAME/old_tests/cube_deltas_omegas_GS.py
 delete mode 100644 katoptron/CMAME/old_tests/fused_plate_MC_GS_all_cases.py
 delete mode 100644 katoptron/CMAME/old_tests/fused_plate_mean_prec_GS.py
 delete mode 100644 katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_2.py
 delete mode 100644 katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_3.py
 delete mode 100644 katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_4.py
 delete mode 100644 katoptron/CMAME/old_tests/plate.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_GS_all_cases.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_GS_case_1.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_GS_case_2.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_GS_case_3.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_GS_case_4.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_GS_direct_all_cases.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_MG_all_cases.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_MG_all_cases_2.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1_sp.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_NO_EP_case_2.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_NO_EP_case_3.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_NO_EP_case_4.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_direct_case_1.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_direct_case_2.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_direct_case_3.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_MC_direct_case_4.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_convergence_direct.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_correlation.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_deltas_omegas_GS.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_deltas_omegas_direct.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_eigenvalues.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_eigenvalues_gamma.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_extended.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_mean_gamma.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_mean_prec.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_mean_prec_GS_direct.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_lvl.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_opti.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_vd_Direct_200.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_vd_Direct_3.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_vd_GS_200.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_vd_GS_200_with_gamma.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_vd_GS_3.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_vd_GS_3_with_gamma.py
 delete mode 100644 katoptron/CMAME/old_tests/plate_vd_conf.py
 delete mode 100644 katoptron/CMAME/plate_SPD/blake.slurm.sh
 delete mode 100644 katoptron/CMAME/plate_SPD/plate.geo
 delete mode 100644 katoptron/CMAME/plate_SPD/plate.py
 delete mode 100644 katoptron/CMAME/plate_SPD/plate_convergence.py
 delete mode 100644 katoptron/CMAME/post_process/2_cube.py
 delete mode 100644 katoptron/CMAME/post_process/grouping.py
 delete mode 100644 katoptron/CMAME/post_process/juelich_speedup.py
 delete mode 100644 katoptron/CMAME/post_process/plate_G.py
 delete mode 100644 katoptron/CMAME/post_process/plate_GS_direct.py
 delete mode 100644 katoptron/CMAME/post_process/plate_GS_direct_fused.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_MG_speedup.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_MG_speedup_200_ER.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_MG_speedup_ER.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_MG_speedup_NER.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_MG_total.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_MG_total_2.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_MG_total_2_analysis.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_QoI.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_QoI_analysis.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_convergence.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_convergence_2.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_convergence_3.py
 delete mode 100644 katoptron/CMAME/post_process/plate_MC_speedup.py
 delete mode 100644 katoptron/CMAME/post_process/plate_convergence.py
 delete mode 100644 katoptron/CMAME/post_process/plate_cor_R.py
 delete mode 100644 katoptron/CMAME/post_process/plate_deltas_omegas.py
 delete mode 100644 katoptron/CMAME/post_process/plate_deltas_omegas_direct_analysis.py
 delete mode 100644 katoptron/CMAME/post_process/plate_deltas_omegas_gs_analysis.py
 delete mode 100644 katoptron/CMAME/post_process/plate_gamma.py
 delete mode 100644 katoptron/CMAME/post_process/plate_gamma_R.py
 delete mode 100644 katoptron/CMAME/post_process/plate_mean.py
 delete mode 100644 katoptron/CMAME/post_process/plate_mean_GS.py
 delete mode 100644 katoptron/CMAME/post_process/plate_mean_GS_omega.py
 delete mode 100644 katoptron/CMAME/post_process/plate_mean_convergence.py
 delete mode 100644 katoptron/CMAME/slurm/blake_MC_MG.slurm.sh
 delete mode 100644 katoptron/CMAME/tests/plate_MC_MG_all_cases.py
 delete mode 100644 katoptron/CMakeLists.txt
 delete mode 100644 katoptron/Juelich/UQ/GS.py
 delete mode 100644 katoptron/Juelich/UQ/GS_2.py
 delete mode 100644 katoptron/Juelich/UQ/__init__.py
 delete mode 100644 katoptron/Juelich/UQ/copulas.py
 delete mode 100644 katoptron/Juelich/UQ/halton.py
 delete mode 100644 katoptron/Juelich/UQ/kde.py
 delete mode 100644 katoptron/Juelich/UQ/mirror.py
 delete mode 100644 katoptron/Juelich/UQ/mirror_2.py
 delete mode 100644 katoptron/Juelich/UQ/mirror_PCE.py
 delete mode 100644 katoptron/Juelich/UQ/mirror_PCE_convergence.py
 delete mode 100644 katoptron/Juelich/UQ/preload.py
 delete mode 100644 katoptron/Juelich/UQ/speedup.py
 delete mode 100644 katoptron/Juelich/UQ/test_halton.py
 delete mode 100644 katoptron/Juelich/UQ/test_kde.py
 delete mode 100644 katoptron/Juelich/__init__.py
 delete mode 100644 katoptron/Juelich/broken/M1.py
 delete mode 100644 katoptron/Juelich/broken/M1_assembly.py
 delete mode 100644 katoptron/Juelich/broken/M1_assembly_fused_all.py
 delete mode 100644 katoptron/Juelich/broken/M1_assembly_fused_mm.py
 delete mode 100644 katoptron/Juelich/broken/M1_assembly_mm.py
 delete mode 100644 katoptron/Juelich/broken/M1_mirror_optic.py
 delete mode 100644 katoptron/Juelich/broken/M1_optic_test.py
 delete mode 100755 katoptron/Juelich/broken/M1_run.sh
 delete mode 100644 katoptron/Juelich/mesh/contact_mirror_assembly_mm.brep
 delete mode 100644 katoptron/Juelich/mesh/contact_mirror_assembly_mm.geo
 delete mode 100644 katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.brep
 delete mode 100644 katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.geo
 delete mode 100644 katoptron/Juelich/mesh/fused_mirror_assembly_mm.brep
 delete mode 100644 katoptron/Juelich/mesh/fused_mirror_assembly_mm.geo
 delete mode 100755 katoptron/Juelich/post_process/AB.py
 delete mode 100644 katoptron/Juelich/post_process/__init__.py
 delete mode 100644 katoptron/Juelich/post_process/vtk_post_process.py
 delete mode 100644 katoptron/Juelich/post_process/vtk_post_process_2.py
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_1.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_10.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_11.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_12.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_13.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_14.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_15.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_16.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_17.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_18.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_19.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_2.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_20.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_21.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_22.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_23.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_24.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_25.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_26.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_27.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_28.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_29.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_3.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_30.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_31.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_32.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_33.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_34.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_35.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_36.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_37.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_38.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_39.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_4.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_40.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_41.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_42.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_43.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_44.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_45.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_46.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_47.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_48.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_49.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_5.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_50.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_6.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_7.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_8.npz
 delete mode 100644 katoptron/Juelich/samples_files/Xiao_9.npz
 delete mode 100644 katoptron/Juelich/slurm/blake.slurm.sh
 delete mode 100644 katoptron/Juelich/slurm/blake_ER_NER.slurm.sh
 delete mode 100644 katoptron/Juelich/slurm/blake_all.slurm.sh
 delete mode 100644 katoptron/Juelich/slurm/blake_order.slurm.sh
 delete mode 100644 katoptron/Juelich/slurm/blake_preload.slurm.sh
 delete mode 100644 katoptron/Juelich/smoothers/AMG_BGS_gs_gs.xml
 delete mode 100644 katoptron/Juelich/smoothers/AMG_BGS_gs_gs_old.xml
 delete mode 100644 katoptron/Juelich/smoothers/AMG_BGS_gs_gs_rep.xml
 delete mode 100644 katoptron/Juelich/smoothers/heat_no_contact.xml
 delete mode 100644 katoptron/Juelich/smoothers/heat_no_contact_mtgs.xml
 delete mode 100644 katoptron/Juelich/smoothers/mySIM1.xml
 delete mode 100644 katoptron/Juelich/smoothers/mySIM1_old.xml
 delete mode 100644 katoptron/Juelich/tests/M1_assembly_contact.py
 delete mode 100644 katoptron/Juelich/tests/M1_assembly_fused.py
 delete mode 100644 katoptron/Juelich/tests/M1_assembly_fused_MC_k.py
 delete mode 100644 katoptron/Juelich/tests/M1_assembly_fused_MC_k_order.py
 delete mode 100644 katoptron/Juelich/tests/M1_assembly_fused_all.py
 delete mode 100644 katoptron/Juelich/tests/M1_assembly_fused_old.py
 delete mode 100644 katoptron/Juelich/tests/M1_assembly_fused_preload.py
 delete mode 100644 katoptron/__init__.py
 delete mode 100644 katoptron/_src/CMakeLists.txt
 delete mode 100644 katoptron/_src/katoptronw.i
 delete mode 100644 katoptron/convergence.py
 delete mode 100644 katoptron/eigenvalues.py
 delete mode 100644 katoptron/exe/CMakeLists.txt
 delete mode 100644 katoptron/exe/main.cpp
 delete mode 100644 katoptron/matlab/Belos/read_belos.m
 delete mode 100644 katoptron/matlab/Belos/test_belos.m
 delete mode 100644 katoptron/matlab/Belos/test_belos2.m
 delete mode 100644 katoptron/matlab/Belos/test_belos3.m
 delete mode 100644 katoptron/matlab/Belos/test_belos4.m
 delete mode 100644 katoptron/matlab/Belos/test_belos5.m
 delete mode 100644 katoptron/matlab/Belos/test_belos6.m
 delete mode 100644 katoptron/matlab/Belos/test_belos7.m
 delete mode 100644 katoptron/matlab/Belos/test_belos8.m
 delete mode 100644 katoptron/matlab/CPU statistic/amesos2_klu2.mat
 delete mode 100644 katoptron/matlab/CPU statistic/amesos_belos.mat
 delete mode 100644 katoptron/matlab/CPU statistic/cube_.tex
 delete mode 100644 katoptron/matlab/CPU statistic/cube_test_nic4_distributed.m
 delete mode 100644 katoptron/matlab/CPU statistic/cube_test_nic4_distributed_mean.m
 delete mode 100644 katoptron/matlab/CPU statistic/cube_test_nic4_shared.m
 delete mode 100644 katoptron/matlab/CPU statistic/read_workspace.m
 delete mode 100644 katoptron/matlab/Krylov/createVandermond.m
 delete mode 100644 katoptron/matlab/Multigrid/eigenvaluesOneDTest.m
 delete mode 100644 katoptron/matlab/Multigrid/oneDLaplacianEigenvalues.m
 delete mode 100644 katoptron/matlab/Multigrid/oneDLaplacianMatrix.m
 delete mode 100644 katoptron/matlab/Multigrid/oneDProlongation.m
 delete mode 100644 katoptron/matlab/Multigrid/oneDRestriction.m
 delete mode 100644 katoptron/matlab/Multigrid/read_agregate.m
 delete mode 100644 katoptron/matlab/Multigrid/richardsonSmoother.m
 delete mode 100644 katoptron/matlab/Multigrid/testOneDProlongation.m
 delete mode 100644 katoptron/matlab/Multigrid/testOneDRestriction.m
 delete mode 100644 katoptron/matlab/Multigrid/testOneDTwoGridCycle.m
 delete mode 100644 katoptron/matlab/Multigrid/testRichardsonSmoother.m
 delete mode 100644 katoptron/matlab/Multigrid/twoGridCycle.m
 delete mode 100644 katoptron/matlab/Richardson/oneDLaplacian.m
 delete mode 100755 katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/.gitattributes
 delete mode 100755 katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/LICENSE.TXT
 delete mode 100755 katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/README.md
 delete mode 100755 katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap.m
 delete mode 100755 katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap_view.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/AUTHORS
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/COPYING
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/ChangeLog
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/Makefile
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/README.md
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/THANKS
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/logos/matlab2tikz.svg
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cleanfigure.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2.tex
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/figure2dot.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/m2tInputParser.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/matlab2tikz.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/myfile
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/private/m2tUpdater.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/test.text
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/ACID.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/README
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/codeReport.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/converted/Makefile
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/reference/Makefile
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/herrorbar.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/issues.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/matlab2tikz_acidtest.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/myCount.dat
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/pointReductionTest.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/runtests
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testPatches.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testSurfshader.m
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/tex/Makefile
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/version-0.6.0
 delete mode 100644 katoptron/matlab/TPL/matlab2tikz2.m
 delete mode 100644 katoptron/matlab/TPL/test.tex
 delete mode 100644 katoptron/matlab/TPL/test.tex_tmp
 delete mode 100644 katoptron/matlab/ensemble/eric_data.m
 delete mode 100644 katoptron/matlab/ensemble/eric_paper.mat
 delete mode 100644 katoptron/matlab/ensemble/timers.mat
 delete mode 100644 katoptron/matlab/gmsh/distancePointPlane.m
 delete mode 100644 katoptron/matlab/gmsh/readMshFile.m
 delete mode 100644 katoptron/matlab/gmsh/showMsh.m
 delete mode 100644 katoptron/matlab/gmsh/test_readMshFile.m
 delete mode 100644 katoptron/matlab/gmsh/test_showMsh.m
 delete mode 100644 katoptron/matlab/matrix graph/load_crs_matrix.m
 delete mode 100644 katoptron/matlab/matrix graph/show_graph.m
 delete mode 100644 katoptron/matlab/matrix graph/show_trilinos_graph.m
 delete mode 100644 katoptron/matlab/matrix graph/testSchur.m
 delete mode 100644 katoptron/matlab/matrix graph/test_show_graph.m
 delete mode 100644 katoptron/preconditioners/AMG_BGS_gs_gs.xml
 delete mode 100644 katoptron/preconditioners/BraessSarazin_cheby.xml
 delete mode 100644 katoptron/preconditioners/BraessSarazin_direct.xml
 delete mode 100644 katoptron/preconditioners/BraessSarazin_gs.xml
 delete mode 100644 katoptron/preconditioners/BraessSarazin_jacobi.xml
 delete mode 100644 katoptron/preconditioners/BraessSarazin_mtgs.xml
 delete mode 100644 katoptron/preconditioners/IndefiniteBlockDiagonal_cheby.xml
 delete mode 100644 katoptron/preconditioners/IndefiniteBlockDiagonal_direct.xml
 delete mode 100644 katoptron/preconditioners/IndefiniteBlockDiagonal_gs.xml
 delete mode 100644 katoptron/preconditioners/IndefiniteBlockDiagonal_jacobi.xml
 delete mode 100644 katoptron/preconditioners/IndefiniteBlockDiagonal_mtgs.xml
 delete mode 100644 katoptron/preconditioners/SIMPLEC_cheby.xml
 delete mode 100644 katoptron/preconditioners/SIMPLEC_direct.xml
 delete mode 100644 katoptron/preconditioners/SIMPLEC_gs.xml
 delete mode 100644 katoptron/preconditioners/SIMPLEC_jacobi.xml
 delete mode 100644 katoptron/preconditioners/SIMPLEC_mtgs.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_cheby.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_direct.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_direct_2_lvls.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_gs.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_gs.xml.in
 delete mode 100644 katoptron/preconditioners/SIMPLE_gs_2_lvls.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_gs_3_sweeps.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_gs_direct.xml.in
 delete mode 100644 katoptron/preconditioners/SIMPLE_gs_direct_lvl.xml.in
 delete mode 100644 katoptron/preconditioners/SIMPLE_gs_direct_lvl_MT.xml.in
 delete mode 100644 katoptron/preconditioners/SIMPLE_jacobi.xml
 delete mode 100644 katoptron/preconditioners/SIMPLE_mtgs.xml
 delete mode 100644 katoptron/preconditioners/Uzawa_cheby.xml
 delete mode 100644 katoptron/preconditioners/Uzawa_direct.xml
 delete mode 100644 katoptron/preconditioners/Uzawa_gs.xml
 delete mode 100644 katoptron/preconditioners/Uzawa_jacobi.xml
 delete mode 100644 katoptron/preconditioners/Uzawa_mtgs.xml
 delete mode 100644 katoptron/preconditioners/blockdirect.xml
 delete mode 100644 katoptron/preconditioners/gs_lvl.xml.in
 delete mode 100644 katoptron/readers.py
 delete mode 100644 katoptron/speedup.py
 delete mode 100644 katoptron/src/Algebraic.h
 delete mode 100644 katoptron/src/Algebraic.hpp
 delete mode 100644 katoptron/src/AlgebraicETI.cpp
 delete mode 100644 katoptron/src/BelosStatusTestWeightedGenResNorm_MP_Vector.hpp
 delete mode 100644 katoptron/src/BelosXpetraStatusTestGenResSubNorm_MP_Vector.hpp
 delete mode 100644 katoptron/src/CMakeLists.txt
 delete mode 100644 katoptron/src/ContactsList.cpp
 delete mode 100644 katoptron/src/ContactsList.h
 delete mode 100644 katoptron/src/DirichletList.h
 delete mode 100644 katoptron/src/DirichletList.hpp
 delete mode 100644 katoptron/src/DirichletListETI.cpp
 delete mode 100644 katoptron/src/DiscreteProblem.h
 delete mode 100644 katoptron/src/DiscreteProblem.hpp
 delete mode 100644 katoptron/src/DiscreteProblemETI.cpp
 delete mode 100644 katoptron/src/Domain.h
 delete mode 100644 katoptron/src/ElementComputation.cpp
 delete mode 100644 katoptron/src/ElementComputation.h
 delete mode 100644 katoptron/src/ElementComputation.hpp
 delete mode 100644 katoptron/src/ElementMatrices.h
 delete mode 100644 katoptron/src/ElementMatrices.hpp
 delete mode 100644 katoptron/src/ElementMatricesETI.cpp
 delete mode 100644 katoptron/src/ElementVectors.h
 delete mode 100644 katoptron/src/ElementVectors.hpp
 delete mode 100644 katoptron/src/ElementVectorsETI.cpp
 delete mode 100644 katoptron/src/ElementsList.cpp
 delete mode 100644 katoptron/src/ElementsList.h
 delete mode 100644 katoptron/src/EnsembleReduction.h
 delete mode 100644 katoptron/src/EnsembleTraits.h
 delete mode 100644 katoptron/src/Graph.cpp
 delete mode 100644 katoptron/src/Graph.h
 delete mode 100644 katoptron/src/IterativeSolver.cpp
 delete mode 100644 katoptron/src/IterativeSolver.h
 delete mode 100644 katoptron/src/Kokkos_Init.h
 delete mode 100644 katoptron/src/LinearSolver.h
 delete mode 100644 katoptron/src/Loads.h
 delete mode 100644 katoptron/src/Map.cpp
 delete mode 100644 katoptron/src/Map.h
 delete mode 100644 katoptron/src/Material.h
 delete mode 100644 katoptron/src/MaterialsList.h
 delete mode 100644 katoptron/src/Matrices.h
 delete mode 100644 katoptron/src/Mortar.cpp
 delete mode 100644 katoptron/src/Mortar.h
 delete mode 100644 katoptron/src/NeumannList.h
 delete mode 100644 katoptron/src/NodesList.cpp
 delete mode 100644 katoptron/src/NodesList.h
 delete mode 100644 katoptron/src/PreloadList.h
 delete mode 100644 katoptron/src/ResultsDecl.hpp
 delete mode 100644 katoptron/src/ResultsDef.hpp
 delete mode 100644 katoptron/src/ResultsETI.cpp
 delete mode 100644 katoptron/src/SourcesList.h
 delete mode 100644 katoptron/src/StressComputation.h
 delete mode 100644 katoptron/src/Vectors.h
 delete mode 100644 katoptron/src/WeightsList.h
 delete mode 100644 katoptron/src/katoptron.h
 delete mode 100644 katoptron/src/tMatrix.h
 delete mode 100644 katoptron/src/wContact.cpp
 delete mode 100644 katoptron/src/wContact.h
 delete mode 100644 katoptron/src/wDirichlet.cpp
 delete mode 100644 katoptron/src/wDirichlet.h
 delete mode 100644 katoptron/src/wDisplayHook.cpp
 delete mode 100644 katoptron/src/wDisplayHook.h
 delete mode 100644 katoptron/src/wMedium.cpp
 delete mode 100644 katoptron/src/wMedium.h
 delete mode 100644 katoptron/src/wNeumann.cpp
 delete mode 100644 katoptron/src/wNeumann.h
 delete mode 100644 katoptron/src/wProblem.cpp
 delete mode 100644 katoptron/src/wProblem.h
 delete mode 100644 katoptron/src/wRandomField.h
 delete mode 100644 katoptron/src/wRandomVariable.h
 delete mode 100644 katoptron/src/wSource.cpp
 delete mode 100644 katoptron/src/wSource.h
 delete mode 100644 katoptron/src/wSpectralApproach.h
 delete mode 100644 katoptron/src/wVtkExport_KIM2CLEAN.cpp
 delete mode 100644 katoptron/src/wVtkExport_KIM2CLEAN.h
 delete mode 100644 katoptron/src/wWeight.cpp
 delete mode 100644 katoptron/src/wWeight.h
 delete mode 100644 katoptron/tests/1_cube.geo
 delete mode 100644 katoptron/tests/1_cube.py
 delete mode 100644 katoptron/tests/1_cube_conv.py
 delete mode 100644 katoptron/tests/1_cube_k.py
 delete mode 100644 katoptron/tests/1_cube_rf.py
 delete mode 100644 katoptron/tests/1_cube_tet.geo
 delete mode 100644 katoptron/tests/1_cube_tet.py
 delete mode 100644 katoptron/tests/1_cube_tet_block.py
 delete mode 100644 katoptron/tests/2_cubes.geo
 delete mode 100644 katoptron/tests/2_cubes.py
 delete mode 100644 katoptron/tests/2_cubes_fused.geo
 delete mode 100644 katoptron/tests/2_cubes_heat.py
 delete mode 100644 katoptron/tests/2_cubes_no_contact.py
 delete mode 100644 katoptron/tests/2_cubes_patch.geo
 delete mode 100644 katoptron/tests/2_cubes_patch.py
 delete mode 100644 katoptron/tests/2_cubes_patch_2_lvls.py
 delete mode 100644 katoptron/tests/2_cubes_patch_BraessSarazin.py
 delete mode 100644 katoptron/tests/2_cubes_patch_IndefBlockDiagonal.py
 delete mode 100644 katoptron/tests/2_cubes_patch_SIMPLE.py
 delete mode 100644 katoptron/tests/2_cubes_patch_SIMPLEC.py
 delete mode 100644 katoptron/tests/2_cubes_patch_Uzawa.py
 delete mode 100644 katoptron/tests/2_cubes_sticking.geo
 delete mode 100644 katoptron/tests/2_cubes_sticking.py
 delete mode 100644 katoptron/tests/2_cubes_tet.geo
 delete mode 100644 katoptron/tests/2_cubes_tet.py
 delete mode 100644 katoptron/tests/3_cubes.geo
 delete mode 100644 katoptron/tests/3_cubes_partial_sticking.py
 delete mode 100644 katoptron/tests/L_shape.py
 delete mode 100644 katoptron/tests/L_shape_1.geo
 delete mode 100644 katoptron/tests/L_shape_2.geo
 delete mode 100644 katoptron/tests/L_shape_curv_1.geo
 delete mode 100644 katoptron/tests/L_shape_curv_2.geo
 delete mode 100644 katoptron/tests/M1_optic_test.py
 delete mode 100644 katoptron/tests/beam.geo
 delete mode 100644 katoptron/tests/beam.py
 delete mode 100644 katoptron/tests/direct_solver.xml
 delete mode 100644 katoptron/tests/mirror_data.npz
 delete mode 100644 katoptron/tests/multigrid_2_lvls_3_1.xml
 delete mode 100644 katoptron/tests/plate.py
 delete mode 100644 katoptron/thesis/test_1/1_cube.geo
 delete mode 100644 katoptron/thesis/test_1/1_cube.py
 delete mode 100644 katoptron/thesis/test_1/blake.slurm.sh
 delete mode 100644 katoptron/thesis/test_1/initial_guess.txt
 delete mode 100644 katoptron/thesis/test_1/post_process.py
 delete mode 100644 katoptron/thesis/test_2/1_cube.geo
 delete mode 100644 katoptron/thesis/test_2/1_cube.py
 delete mode 100644 katoptron/thesis/test_2/blake.slurm.sh
 delete mode 100644 katoptron/thesis/test_2/post_process.py
 delete mode 100644 katoptron/thesis/test_2/prec.xml
 delete mode 100644 katoptron/thesis/test_2/prec_1.xml
 delete mode 100644 katoptron/thesis/test_3/beam.geo
 delete mode 100644 katoptron/thesis/test_3/beam.py
 delete mode 100644 katoptron/thesis/test_3/blake.slurm.sh
 delete mode 100644 katoptron/thesis/test_3/ordering.txt
 delete mode 100644 katoptron/thesis/test_3/post_process.py
 delete mode 100644 katoptron/thesis/test_4/1_cube.geo
 delete mode 100644 katoptron/thesis/test_4/1_cube.py
 delete mode 100644 katoptron/thesis/test_4/blake.slurm.sh
 delete mode 100644 katoptron/thesis/test_4/blake_N_1.slurm.sh
 delete mode 100644 katoptron/thesis/test_4/blake_N_2.slurm.sh
 delete mode 100644 katoptron/thesis/test_4/blake_N_4.slurm.sh
 delete mode 100644 katoptron/thesis/test_4/blake_N_8.slurm.sh
 delete mode 100644 katoptron/thesis/test_4/prec.xml
 delete mode 100644 katoptron/thesis/test_4/prec_1.xml
 delete mode 100644 katoptron/thesis/test_5/1_bar.py
 delete mode 100644 katoptron/thesis/test_5/laplacian.py
 delete mode 100644 katoptron/thesis/test_6/1_cube.geo
 delete mode 100644 katoptron/thesis/test_6/1_cube.py
 delete mode 100644 katoptron/thesis/test_6/blake.slurm.sh
 delete mode 100644 katoptron/thesis/test_6/prec.xml
 delete mode 100644 katoptron/thesis/test_6/prec_1.xml
 delete mode 100644 katoptron/thesis/test_6/speedup.py
 delete mode 100644 katoptron/utilities.py
 delete mode 100644 katoptron/viewer.py
 delete mode 100755 run.py
 delete mode 100644 scripts/devenv-mingw.bat
 delete mode 100644 scripts/devenv-vs2019.bat
 delete mode 100644 tlnos/CMakeLists.txt
 delete mode 100644 tlnos/__init__.py
 delete mode 100644 tlnos/_src/CMakeLists.txt
 delete mode 100644 tlnos/_src/tlnosw.i
 delete mode 100755 tlnos/broken/example3.py
 delete mode 100755 tlnos/broken/example5.py
 delete mode 100755 tlnos/broken/example6.py
 delete mode 100755 tlnos/broken/example7.py
 delete mode 100755 tlnos/broken/example8.py
 delete mode 100755 tlnos/broken/example9.py
 delete mode 100644 tlnos/src/CMakeLists.txt
 delete mode 100644 tlnos/src/Example_BCStrategy_Dirichlet_Constant.hpp
 delete mode 100644 tlnos/src/Example_BCStrategy_Dirichlet_Constant_impl.hpp
 delete mode 100644 tlnos/src/Example_BCStrategy_Factory.hpp
 delete mode 100644 tlnos/src/Example_ClosureModel_Factory.hpp
 delete mode 100644 tlnos/src/Example_ClosureModel_Factory_TemplateBuilder.hpp
 delete mode 100644 tlnos/src/Example_ClosureModel_Factory_impl.hpp
 delete mode 100644 tlnos/src/Example_EquationSetFactory.hpp
 delete mode 100644 tlnos/src/Example_PoissonEquationSet.hpp
 delete mode 100644 tlnos/src/Example_PoissonEquationSet_impl.hpp
 delete mode 100644 tlnos/src/ExodusInterface.h
 delete mode 100644 tlnos/src/TOOLS/PDE_FEM.hpp
 delete mode 100644 tlnos/src/TOOLS/bfsc_dof_mesh.hpp
 delete mode 100644 tlnos/src/TOOLS/dofmanager.hpp
 delete mode 100644 tlnos/src/TOOLS/elasticity.hpp
 delete mode 100644 tlnos/src/TOOLS/elasticitySIMP.hpp
 delete mode 100644 tlnos/src/TOOLS/materials.hpp
 delete mode 100644 tlnos/src/TOOLS/meshmanager.hpp
 delete mode 100644 tlnos/src/constraint.hpp
 delete mode 100644 tlnos/src/data.hpp
 delete mode 100644 tlnos/src/objective.hpp
 delete mode 100644 tlnos/src/tlnos.h
 delete mode 100644 tlnos/src/wExample1.cpp
 delete mode 100644 tlnos/src/wExample1.h
 delete mode 100644 tlnos/src/wExample10.cpp
 delete mode 100644 tlnos/src/wExample10.h
 delete mode 100644 tlnos/src/wExample2.cpp
 delete mode 100644 tlnos/src/wExample2.h
 delete mode 100644 tlnos/src/wExample3.cpp.disabled
 delete mode 100644 tlnos/src/wExample3.h.disabled
 delete mode 100644 tlnos/src/wExample4.cpp
 delete mode 100644 tlnos/src/wExample4.h
 delete mode 100644 tlnos/src/wExample5.cpp
 delete mode 100644 tlnos/src/wExample5.h
 delete mode 100644 tlnos/src/wExample6.cpp
 delete mode 100644 tlnos/src/wExample6.h
 delete mode 100644 tlnos/src/wExample7.cpp.disabled
 delete mode 100644 tlnos/src/wExample7.h.disabled
 delete mode 100644 tlnos/src/wExample8.cpp
 delete mode 100644 tlnos/src/wExample8.h
 delete mode 100644 tlnos/src/wExample9.cpp
 delete mode 100644 tlnos/src/wExample9.h
 delete mode 100755 tlnos/tests/example1.py
 delete mode 100755 tlnos/tests/example10.py
 delete mode 100755 tlnos/tests/example2.py
 delete mode 100755 tlnos/tests/example4.py
 delete mode 100644 tlnos/tests/input.xml
 delete mode 100644 waves/CMakeFiles/CMakeDirectoryInformation.cmake
 delete mode 100644 waves/CMakeFiles/progress.marks
 delete mode 100644 waves/CMakeLists.txt
 delete mode 100644 waves/__init__.py
 delete mode 100644 waves/_src/CMakeLists.txt
 delete mode 100644 waves/_src/wavesw.i
 delete mode 100644 waves/attic/export_xml.py
 delete mode 100644 waves/attic/testSonarQ.cpp
 delete mode 100644 waves/attic/wDof.cpp
 delete mode 100644 waves/attic/wDof.h
 delete mode 100644 waves/attic/wField.cpp
 delete mode 100644 waves/attic/wField.h
 delete mode 100644 waves/attic/wSolver1.cpp
 delete mode 100644 waves/attic/wSolver1.h
 delete mode 100644 waves/broken/cas1.geo
 delete mode 100755 waves/broken/cas1.py
 delete mode 100644 waves/broken/geuz/geophysique.geo
 delete mode 100644 waves/broken/geuz/geophysique.pro
 delete mode 100755 waves/broken/geuz/geophysique.py
 delete mode 100644 waves/broken/geuz/geophysique_param.geo
 delete mode 100755 waves/broken/waves01_onelab.py
 delete mode 100644 waves/exe/CMakeLists.txt
 delete mode 100644 waves/exe/main.cpp
 delete mode 100644 waves/models/__init__.py
 delete mode 100644 waves/models/cube.geo
 delete mode 100644 waves/models/cube2mat.geo
 delete mode 100755 waves/models/plane1mat.py
 delete mode 100755 waves/models/plane2mat.py
 delete mode 100644 waves/src/CMakeLists.txt
 delete mode 100644 waves/src/wBoundary.cpp
 delete mode 100644 waves/src/wBoundary.h
 delete mode 100644 waves/src/wDisplayHook.cpp
 delete mode 100644 waves/src/wDisplayHook.h
 delete mode 100644 waves/src/wForwardEuler.cpp
 delete mode 100644 waves/src/wForwardEuler.h
 delete mode 100644 waves/src/wMedium.cpp
 delete mode 100644 waves/src/wMedium.h
 delete mode 100644 waves/src/wNewmark.cpp
 delete mode 100644 waves/src/wNewmark.h
 delete mode 100644 waves/src/wProblem.cpp
 delete mode 100644 waves/src/wProblem.h
 delete mode 100644 waves/src/wRungeKutta.cpp
 delete mode 100644 waves/src/wRungeKutta.h
 delete mode 100644 waves/src/wSource.cpp
 delete mode 100644 waves/src/wSource.h
 delete mode 100644 waves/src/wTimeIntegration.cpp
 delete mode 100644 waves/src/wTimeIntegration.h
 delete mode 100644 waves/src/wWaveTerm.cpp
 delete mode 100644 waves/src/wWaveTerm.h
 delete mode 100644 waves/src/waves.h
 delete mode 100644 waves/srcs.py
 delete mode 100755 waves/tests/attic/bulthuis.geo
 delete mode 100644 waves/tests/attic/strates.geo
 delete mode 100755 waves/tests/mat1/interf1.py
 delete mode 100755 waves/tests/mat1/interf2.py
 delete mode 100755 waves/tests/mat1/planewave.py
 delete mode 100755 waves/tests/mat1/pulse.py
 delete mode 100755 waves/tests/mat1/sinsrc.py
 delete mode 100755 waves/tests/mat2/interf1.py
 delete mode 100755 waves/tests/mat2/pulse.py
 delete mode 100755 waves/tests/mat2/reflex.py
 delete mode 100755 waves/tests/mat2/sinsrc.py
 delete mode 100644 waves/utils.py
 delete mode 100644 waves/viewer.py

diff --git a/.clang-format b/.clang-format
deleted file mode 100644
index 60cf9d53..00000000
--- a/.clang-format
+++ /dev/null
@@ -1,11 +0,0 @@
----
-# https://clang.llvm.org/docs/ClangFormatStyleOptions.html#
-# the "Visual Studio" style is similar to:
-BasedOnStyle: LLVM
-UseTab: Never
-IndentWidth: 4
-BreakBeforeBraces: Allman
-AccessModifierOffset: -4
-SortIncludes: false
-ColumnLimit: 0
-...
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index de6044b9..00000000
--- a/.editorconfig
+++ /dev/null
@@ -1,8 +0,0 @@
-# EditorConfig is awesome: https://EditorConfig.org
-
-root = true
-
-[*]
-charset = utf-8
-indent_style = space
-indent_size = 4
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index b2417267..00000000
--- a/.gitattributes
+++ /dev/null
@@ -1,6 +0,0 @@
-*_lfs.msh filter=lfs diff=lfs merge=lfs -text
-*_lfs.apdl filter=lfs diff=lfs merge=lfs -text
-*_lfs.ansys filter=lfs diff=lfs merge=lfs -text
-*.brep filter=lfs diff=lfs merge=lfs -text
-*.stp filter=lfs diff=lfs merge=lfs -text
-
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index c75d6969..00000000
--- a/.gitignore
+++ /dev/null
@@ -1,66 +0,0 @@
-# Compiled Object files
-*.slo
-*.lo
-*.o
-
-# Compiled Dynamic libraries
-*.so
-*.dylib
-
-# Compiled Static libraries
-*.lai
-*.la
-*.a
-
-# Misc
-core
-*.pyc
-__pycache__/
-*.*~
-
-# OS
-.DS_Store
-*.swp
-*.bak
-
-# Workspace
-workspace
-workspace.tar.gz
-*.tar.gz
-*.tgz
-
-# build dir
-build
-
-# gitlab-ci / clang-format
-patches
-
-# Ansys
-*.apdl
-!*_lfs.apdl
-*.ansys
-!*_lfs.ansys
-
-# Gmsh
-*.pos
-*.msh # do not commit the mesh...
-!*_lfs.msh # ... except in the lfs
-#*.opt
-
-# sge output
-*.o*
-*.po*
-
-# matlab
-*.asv
-
-# paraview
-*.ogv
-*.pvsm
-
-# IDE
-.project
-.pydevproject
-.settings
-.vscode
-.vscode/*
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index d905eed8..00000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1,116 +0,0 @@
-# gitlab-ci file for waves
-
-default:
-    image: rboman/waves-py3:2020.3
-    before_script:
-        - source /opt/intel/mkl/bin/mklvars.sh intel64
-        - source /opt/intel/tbb/bin/tbbvars.sh intel64
-        - echo $(nproc)
-        - printenv | sort
-
-.global_tag: &global_tag_def
-    tags:
-        - mn2l
-#        - warson   # you can choose a set of runners here
-
-variables:
-    GIT_SUBMODULE_STRATEGY: recursive
-    GIT_STRATEGY: clone # workaround full clone for each pipeline (https://gitlab.com/gitlab-org/gitlab-runner/-/issues/26993)
-    GIT_LFS_SKIP_SMUDGE: 1 # do not pull LFS
-
-stages:
-    - build
-    - test
-
-format:
-    <<: *global_tag_def
-    stage: build
-    script:
-        - clang-format --version # we use clang-format-10 exclusively
-        - ./ext/amfe/scripts/format_code.py
-        - mkdir -p patches
-        - if git diff --patch --exit-code > patches/clang-format.patch; then echo "Clang format changed nothing"; else echo "Clang format found changes to make!"; false; fi
-    artifacts:
-        paths:
-            - patches/
-        expire_in: 1 day
-        when: on_failure
-    allow_failure: true
-
-build-no-tlnos:
-    <<: *global_tag_def
-    stage: build
-    script:
-        - git submodule init
-        - git submodule update
-        - rm -rf build workspace
-        - mkdir build
-        - cd build
-        - cmake -Wno-dev -C ../CMake/disable-trilinos.cmake ..
-        - make -j 8
-
-build:
-    <<: *global_tag_def
-    stage: build
-    script:
-        - git submodule init
-        - git submodule update
-        - rm -rf build workspace
-        - mkdir build
-        - cd build
-        - cmake -Wno-dev ..
-        - make -j 8
-    artifacts:
-        paths:
-            - build/
-        expire_in: 1 day
-
-build-red:
-    <<: *global_tag_def
-    image: rboman/waves-py3-red:2020.3
-    stage: build
-    script:
-        - git submodule init
-        - git submodule update
-        - rm -rf build workspace
-        - mkdir build
-        - cd build
-        - cmake -Wno-dev ..
-        - make -j 8
-    artifacts:
-        paths:
-            - build/
-        expire_in: 1 day
-            
-doxygen:
-    <<: *global_tag_def
-    stage: test
-    script:
-        - cd build
-        - make dox
-    artifacts:
-        paths:
-            - build/doxygen/
-        expire_in: 1 week
-    dependencies:
-        - build
-
-ctest:
-    <<: *global_tag_def
-    stage: test
-    script:
-        - cd build
-        - ctest --output-on-failure -j 8
-    #timeout: 10 hours  # will be available in 12.3
-    dependencies:
-        - build
-        
-ctest-red:
-    <<: *global_tag_def
-    image: rboman/waves-py3-red:2020.3
-    stage: test
-    script:
-        - cd build
-        - ctest --output-on-failure -j 8 -R katoptron
-    dependencies:
-        - build-red
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index e84a099a..00000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "ext/amfe"]
-	path = ext/amfe
-	url = ../amfe.git
diff --git a/CMake/FindMPI4PY.cmake b/CMake/FindMPI4PY.cmake
deleted file mode 100644
index 9d4bb340..00000000
--- a/CMake/FindMPI4PY.cmake
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-if(NOT MPI4PY_INCLUDE_DIR)
-    execute_process(COMMAND
-      "${PYTHON_EXECUTABLE}" "-c" "import mpi4py; print(mpi4py.get_include())"
-      OUTPUT_VARIABLE MPI4PY_INCLUDE_DIR
-      RESULT_VARIABLE MPI4PY_COMMAND_RESULT
-      OUTPUT_STRIP_TRAILING_WHITESPACE)
-    if(MPI4PY_COMMAND_RESULT)
-        message("waves/CMake/FindMPI4PY: mpi4py not found")
-        set(MPI4PY_FOUND FALSE)
-    else(MPI4PY_COMMAND_RESULT)
-        if (MPI4PY_INCLUDE_DIR MATCHES "Traceback")
-            message("waves/CMake/FindMPI4PY: mpi4py matches traceback")
-            ## Did not successfully include MPI4PY
-            set(MPI4PY_FOUND FALSE)
-        else (MPI4PY_INCLUDE_DIR MATCHES "Traceback")
-            ## successful
-            set(MPI4PY_FOUND TRUE)
-            set(MPI4PY_INCLUDE_DIR ${MPI4PY_INCLUDE_DIR} CACHE STRING "mpi4py include path")
-        endif (MPI4PY_INCLUDE_DIR MATCHES "Traceback")
-    endif(MPI4PY_COMMAND_RESULT)
-else(NOT MPI4PY_INCLUDE_DIR)
-    set(MPI4PY_FOUND TRUE)
-endif(NOT MPI4PY_INCLUDE_DIR)
-# ----------------------------------------------------------------------------
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(MPI4PY DEFAULT_MSG
-				MPI4PY_INCLUDE_DIR)
diff --git a/CMake/disable-trilinos.cmake b/CMake/disable-trilinos.cmake
deleted file mode 100644
index e941f2a4..00000000
--- a/CMake/disable-trilinos.cmake
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-SET(WAVES_USE_KATOPTRON OFF CACHE BOOL "" FORCE)
-SET(WAVES_USE_TLNOS    OFF CACHE BOOL "" FORCE)
diff --git a/CMake/fabulous.cmake b/CMake/fabulous.cmake
deleted file mode 100644
index 77b1fbaa..00000000
--- a/CMake/fabulous.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-FIND_PROGRAM(CMAKE_CXX_COMPILER NAMES icpc)
-FIND_PROGRAM(CMAKE_C_COMPILER   NAMES icc)
diff --git a/CMake/maclam.cmake b/CMake/maclam.cmake
deleted file mode 100644
index fe5d340a..00000000
--- a/CMake/maclam.cmake
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Disable Trilinos (we should test with Trilinos/clang)
-LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
-INCLUDE(disable-trilinos)
-
-SET(Python3_ROOT_DIR "/Library/Frameworks/Python.framework/Versions/3.7" CACHE PATH "" FORCE)
diff --git a/CMake/mingw32-msys.cmake b/CMake/mingw32-msys.cmake
deleted file mode 100644
index 24e405e5..00000000
--- a/CMake/mingw32-msys.cmake
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# MSYS Makefiles (pour MinGW)
-#
-# PATH=c:\MinGW\bin;C:\MinGW\msys\1.0\bin
-
-STRING(REGEX REPLACE "\\\\" "/" MYLOCAL $ENV{MYLOCAL})
-SET(CMAKE_GENERATOR "MSYS Makefiles" CACHE INTERNAL "" FORCE)
-
-SET(MUMPS_LIB_PATH       "${MYLOCAL}/WinMumps-4.10/MUMPS_4.10.0/lib/Release/x64/"  CACHE PATH "" FORCE)
-SET(MUMPS_INCLUDE_PATH   "${MYLOCAL}/WinMumps-4.10/MUMPS_4.10.0/include"           CACHE PATH "" FORCE)
-
-SET(WAVES_USE_MKL    OFF CACHE BOOL "" FORCE)
-SET(BLA_VENDOR    "OpenBlas" CACHE STRING "" FORCE)
diff --git a/CMake/mingw32.cmake b/CMake/mingw32.cmake
deleted file mode 100644
index ba1fd545..00000000
--- a/CMake/mingw32.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# MinGW Makefiles (pour "mingw32-make")
-#
-#  PATH=c:\MinGW\bin;C:\MinGW\msys\1.0\bin (en desactivant "sh.exe" du PATH)
-# ou
-#  PATH=c:\MinGW\bin
-
-STRING(REGEX REPLACE "\\\\" "/" MYLOCAL $ENV{MYLOCAL})
-SET(CMAKE_GENERATOR "MinGW Makefiles" CACHE INTERNAL "" FORCE)
-
-#SET(MUMPS_LIB_PATH       "${MYLOCAL}/WinMumps-4.10/MUMPS_4.10.0/lib/Release/x64/"  CACHE PATH "" FORCE)
-#SET(MUMPS_INCLUDE_PATH   "${MYLOCAL}/WinMumps-4.10/MUMPS_4.10.0/include"           CACHE PATH "" FORCE)
-
-SET(WAVES_USE_MKL    OFF CACHE BOOL "" FORCE)
-SET(BLA_VENDOR    "OpenBlas" CACHE STRING "" FORCE)
diff --git a/CMake/msys2.cmake b/CMake/msys2.cmake
deleted file mode 100644
index 4c5afd03..00000000
--- a/CMake/msys2.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# MSYS2 with MinGW (AC)
-
-SET(CMAKE_GENERATOR "MSYS Makefiles" CACHE INTERNAL "" FORCE)
-SET(WAVES_USE_MKL    OFF CACHE BOOL "" FORCE)
-SET(WAVES_USE_MUMPS  OFF CACHE BOOL "" FORCE)
-
-# Prevent CMake to find TBB from oneAPI (so that it can find TBB from MSYS) 
-IF(DEFINED ENV{ONEAPI_ROOT})
-    UNSET(ENV{ONEAPI_ROOT})
-ENDIF()
diff --git a/CMakeLists.txt b/CMakeLists.txt
deleted file mode 100644
index ddf537d5..00000000
--- a/CMakeLists.txt
+++ /dev/null
@@ -1,181 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# ----------------------------------------------------------------------------
-PROJECT(Waves)
-# ----------------------------------------------------------------------------
-CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
-IF(${CMAKE_VERSION} VERSION_GREATER "3.14.0") # we might want to update the project and use the NEW behavior here
-    cmake_policy(SET CMP0078 OLD)
-    cmake_policy(SET CMP0086 OLD)
-ENDIF()
-
-# -- I/O
-# Lib/Exe dir
-SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH
-                        "Single output directory for building all libraries.")
-SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH
-                        "Single output directory for building all executables.")
-MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
-
-# Build type
-IF(NOT CMAKE_BUILD_TYPE)
-    SET( CMAKE_BUILD_TYPE "Release" CACHE STRING 
-         "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
-         FORCE)
-ENDIF(NOT CMAKE_BUILD_TYPE)
-
-LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake")
-
-# -- GENERAL OPTIONS
-
-# (de)activate modules
-OPTION(WAVES_USE_FLOW        "Compile flow module"             ON)
-OPTION(WAVES_USE_HEAT        "Compile heat module"             ON)
-OPTION(WAVES_USE_MIRRORS     "Compile mirrors module"          ON)
-OPTION(WAVES_USE_KATOPTRON   "Compile katoptron module"        ON)
-OPTION(WAVES_USE_PARAMS      "Compile params module"           ON)
-OPTION(WAVES_USE_TLNOS       "Compile tlnos module"            ON)
-OPTION(WAVES_USE_WAVES       "Compile waves module"            ON)
-
-# --- Disable some Options on Windows
-IF(WIN32)
-    # Trilinos is not available on Windows
-    MESSAGE("Disabling TRILINOS on Windows")
-    SET(WAVES_USE_KATOPTRON OFF CACHE BOOL "" FORCE)
-    SET(WAVES_USE_TLNOS OFF CACHE BOOL "" FORCE)
-ENDIF()
-
-# macros/fcts
-# INCLUDE(fwkMacros)
-
-# -- C++11
-SET(CMAKE_CXX_STANDARD 11) # newer way to set C++11 (requires cmake>=3.1)
-SET(CMAKE_CXX_STANDARD_REQUIRED ON)
-
-# Set specific languages flags
-IF((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Intel"))
-    IF(NOT APPLE)
-        SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-as-needed")
-    ENDIF()
-    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # add verbosity
-    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -Wno-unknown-pragmas -Wno-sign-compare") # merge trilinos
-ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
-    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE)
-    ADD_DEFINITIONS(-D_USE_MATH_DEFINES) # otherwise M_PI is undefined
-    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")  # parallel build with MSVC
-    #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")  # add verbosity
-ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
-    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register")
-    #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything") # add verbosity
-ENDIF()
-
-# -- OS related (from Kim)
-IF(APPLE)
-    SET(CMAKE_MACOSX_RPATH TRUE)
-ENDIF()
-
-# -- Search for Python
-IF (CMAKE_VERSION VERSION_LESS 3.12.0)
-    FIND_PACKAGE(PythonInterp 3.6 REQUIRED)
-    FIND_PACKAGE(PythonLibs 3.6 REQUIRED)
-ELSE()
-    FIND_PACKAGE(Python3 COMPONENTS Interpreter Development)
-    # use Python3_ROOT_DIR if wrong python found (e.g. anaconda)
-    SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
-    SET(PYTHON_LIBRARIES ${Python3_LIBRARIES})
-    SET(PYTHON_INCLUDE_PATH ${Python3_INCLUDE_DIRS}) 
-    SET(PYTHONLIBS_VERSION_STRING ${Python3_VERSION})     
-ENDIF()
-MESSAGE(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}")
-MESSAGE(STATUS "PYTHON_LIBRARIES:FILEPATH=${PYTHON_LIBRARIES}")
-MESSAGE(STATUS "PYTHON_INCLUDE_PATH:FILEPATH=${PYTHON_INCLUDE_PATH}")
-MESSAGE(STATUS "PYTHON_FRAMEWORK_INCLUDES=${PYTHON_FRAMEWORK_INCLUDES}")
-MESSAGE(STATUS "PYTHONLIBS_VERSION_STRING=${PYTHONLIBS_VERSION_STRING}")
-MESSAGE(STATUS "Python_FRAMEWORKS=${Python_FRAMEWORKS}")
-
-# -- Search for SWIG
-FIND_PACKAGE(SWIG REQUIRED)
-IF(CMAKE_GENERATOR MATCHES "Visual Studio") # not MSVC because of nmake & jom
-    SET(CMAKE_SWIG_OUTDIR "${EXECUTABLE_OUTPUT_PATH}/$(Configuration)/")
-ELSE()
-    SET(CMAKE_SWIG_OUTDIR "${EXECUTABLE_OUTPUT_PATH}")
-ENDIF()
-
-# -- Doxygen (https://vicrucann.github.io/tutorials/quick-cmake-doxygen/)
-# check if Doxygen is installed
-FIND_PACKAGE(Doxygen)
-IF(DOXYGEN_FOUND)
-    # set input and output files
-    SET(DOXYGEN_IN ${PROJECT_SOURCE_DIR}/Doxyfile.in)
-    SET(DOXYGEN_OUT ${PROJECT_BINARY_DIR}/Doxyfile)
-    # request to configure the file
-    CONFIGURE_FILE(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
-    # note the option ALL which allows to build the docs together with the application
-    # "make dox" rebuilds the doc
-    ADD_CUSTOM_TARGET( dox #ALL
-        COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
-        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-        COMMENT "Generating API documentation with Doxygen"
-        VERBATIM )
-ELSE()
-    MESSAGE("Doxygen needs to be installed to generate the doxygen documentation")
-ENDIF()
-
-INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}) # to find "amfe_def.h"
-
-# -- CTest
-ENABLE_TESTING()
-
-# -- INSTALL
-IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
-    EXECUTE_PROCESS(COMMAND ${PYTHON_EXECUTABLE} -m site --user-site OUTPUT_VARIABLE PY_SITE OUTPUT_STRIP_TRAILING_WHITESPACE)
-    STRING(REGEX REPLACE "\\\\" "/" PY_SITE ${PY_SITE})
-    SET(CMAKE_INSTALL_PREFIX "${PY_SITE}/waves" CACHE STRING "Install location" FORCE)
-    SET(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT FALSE)
-ENDIF()
-IF(UNIX AND NOT APPLE)
-    SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}")
-ENDIF()
-
-# -- Sub directories
-
-ADD_SUBDIRECTORY( ext )
-
-IF(WAVES_USE_HEAT)
-    ADD_SUBDIRECTORY( heat )
-ENDIF()
-
-IF(WAVES_USE_KATOPTRON)
-    ADD_SUBDIRECTORY( katoptron )
-ENDIF()
-
-IF(WAVES_USE_TLNOS)
-    ADD_SUBDIRECTORY( tlnos )
-ENDIF()
-
-IF(WAVES_USE_WAVES)
-    ADD_SUBDIRECTORY( waves )
-ENDIF()
-
-# -- FINAL
-MESSAGE(STATUS "PROJECT: ${CMAKE_PROJECT_NAME}")
-MESSAGE(STATUS "* SYSTEM NAME=\"${CMAKE_SYSTEM_NAME}\"")
-MESSAGE(STATUS "* CXX COMPILER: ${CMAKE_CXX_COMPILER_ID}")
-MESSAGE(STATUS "* CXX STANDARD: ${CMAKE_CXX_STANDARD}")
-MESSAGE(STATUS "* INSTALL DIR: ${CMAKE_INSTALL_PREFIX}")
-MESSAGE(STATUS "* BUILD TYPE: ${CMAKE_BUILD_TYPE}")
-MESSAGE(STATUS "* VTK SUPPORT: ${USE_VTK}")
-MESSAGE(STATUS "* MKL SUPPORT: ${USE_MKL}")
-MESSAGE(STATUS "* MUMPS SUPPORT: ${USE_MUMPS}")
diff --git a/CODEOWNERS b/CODEOWNERS
deleted file mode 100644
index dd7e745b..00000000
--- a/CODEOWNERS
+++ /dev/null
@@ -1,16 +0,0 @@
-# This is a comment.
-# Each line is a file pattern followed by one or more owners.
-
-# These owners will be the default owners for everything in
-# the repo. Unless a later match takes precedence, they
-# will be requested for review when someone opens a pull request.
-*       @R.Boman
-
-# These owners own a directory and nested subdirectories
-/flow/ @acrovato
-
-# You can also use email addresses if you prefer. They'll be
-# used to look up users just like we do for commit author
-# emails.
-#*.go docs@example.com
-
diff --git a/Doxyfile.in b/Doxyfile.in
deleted file mode 100644
index e3ae7891..00000000
--- a/Doxyfile.in
+++ /dev/null
@@ -1,2493 +0,0 @@
-# Doxyfile 1.8.11
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a double hash (##) is considered a comment and is placed in
-# front of the TAG it is preceding.
-#
-# All text after a single hash (#) is considered a comment and will be ignored.
-# The format is:
-# TAG = value [value, ...]
-# For lists, items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (\" \").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
-# The default value is: UTF-8.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-# double-quotes, unless you are using Doxywizard) that should identify the
-# project for which the documentation is generated. This name is used in the
-# title of most generated pages and in a few other places.
-# The default value is: My Project.
-
-PROJECT_NAME           = waves
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-# could be handy for archiving the generated documentation or if some version
-# control system is used.
-
-PROJECT_NUMBER         = 
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer a
-# quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          = "Basic FE playground"
-
-# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
-# in the documentation. The maximum height of the logo should not exceed 55
-# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
-# the logo to the output directory.
-
-PROJECT_LOGO           = @PROJECT_SOURCE_DIR@/dox/logo.jpg
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-# into which the generated documentation will be written. If a relative path is
-# entered, it will be relative to the location where doxygen was started. If
-# left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = @PROJECT_BINARY_DIR@/doxygen
-
-# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
-# directories (in 2 levels) under the output directory of each output format and
-# will distribute the generated files over these directories. Enabling this
-# option can be useful when feeding doxygen a huge amount of source files, where
-# putting all generated files in the same directory would otherwise causes
-# performance problems for the file system.
-# The default value is: NO.
-
-CREATE_SUBDIRS         = NO
-
-# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
-# characters to appear in the names of generated files. If set to NO, non-ASCII
-# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
-# U+3044.
-# The default value is: NO.
-
-ALLOW_UNICODE_NAMES    = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-# Ukrainian and Vietnamese.
-# The default value is: English.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
-# descriptions after the members that are listed in the file and class
-# documentation (similar to Javadoc). Set to NO to disable this.
-# The default value is: YES.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
-# description of a member or function before the detailed description
-#
-# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-# The default value is: YES.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator that is
-# used to form the text in various listings. Each string in this list, if found
-# as the leading text of the brief description, will be stripped from the text
-# and the result, after processing the whole list, is used as the annotated
-# text. Otherwise, the brief description is used as-is. If left blank, the
-# following values are used ($name is automatically replaced with the name of
-# the entity):The $name class, The $name widget, The $name file, is, provides,
-# specifies, contains, represents, a, an and the.
-
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# doxygen will generate a detailed section even if there is only a brief
-# description.
-# The default value is: NO.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-# The default value is: NO.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
-# before files name in the file list and in the header files. If set to NO the
-# shortest path that makes the file name unique will be used
-# The default value is: YES.
-
-FULL_PATH_NAMES        = YES
-
-# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-# Stripping is only done if one of the specified strings matches the left-hand
-# part of the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the path to
-# strip.
-#
-# Note that you can specify absolute paths here, but also relative paths, which
-# will be relative from the directory where doxygen is started.
-# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
-STRIP_FROM_PATH        = 
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-# path mentioned in the documentation of a class, which tells the reader which
-# header file to include in order to use a class. If left blank only the name of
-# the header file containing the class definition is used. Otherwise one should
-# specify the list of include paths that are normally passed to the compiler
-# using the -I flag.
-
-STRIP_FROM_INC_PATH    = 
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-# less readable) file names. This can be useful is your file systems doesn't
-# support long names like on DOS, Mac, or CD-ROM.
-# The default value is: NO.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-# first line (until the first dot) of a Javadoc-style comment as the brief
-# description. If set to NO, the Javadoc-style will behave just like regular Qt-
-# style comments (thus requiring an explicit @brief command for a brief
-# description.)
-# The default value is: NO.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-# line (until the first dot) of a Qt-style comment as the brief description. If
-# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-# requiring an explicit \brief command for a brief description.)
-# The default value is: NO.
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
-# a brief description. This used to be the default behavior. The new default is
-# to treat a multi-line C++ comment block as a detailed description. Set this
-# tag to YES if you prefer the old behavior instead.
-#
-# Note that setting this tag to YES also means that rational rose comments are
-# not recognized any more.
-# The default value is: NO.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-# documentation from any documented member that it re-implements.
-# The default value is: YES.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
-# page for each member. If set to NO, the documentation of a member will be part
-# of the file/class/namespace that contains it.
-# The default value is: NO.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-# uses this value to replace tabs by spaces in code fragments.
-# Minimum value: 1, maximum value: 16, default value: 4.
-
-TAB_SIZE               = 4
-
-# This tag can be used to specify a number of aliases that act as commands in
-# the documentation. An alias has the form:
-# name=value
-# For example adding
-# "sideeffect=@par Side Effects:\n"
-# will allow you to put the command \sideeffect (or @sideeffect) in the
-# documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES                = 
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST              = 
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C. For
-# instance, some of the names that are used will be different. The list of all
-# members will be omitted, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-# Python sources only. Doxygen will then generate output that is more tailored
-# for that language. For instance, namespaces will be presented as packages,
-# qualified scopes will look different, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources. Doxygen will then generate output that is tailored for Fortran.
-# The default value is: NO.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for VHDL.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given
-# extension. Doxygen has a built-in mapping, but you can override or extend it
-# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
-# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
-# Fortran. In the later case the parser tries to guess whether the code is fixed
-# or free formatted code, this is the default for Fortran type files), VHDL. For
-# instance to make doxygen treat .inc files as Fortran files (default is PHP),
-# and .f files as C (default is Fortran), use: inc=Fortran f=C.
-#
-# Note: For files without extension you can use no_extension as a placeholder.
-#
-# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
-
-EXTENSION_MAPPING      = 
-
-# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you can
-# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-# case of backward compatibilities issues.
-# The default value is: YES.
-
-MARKDOWN_SUPPORT       = YES
-
-# When enabled doxygen tries to link words that correspond to documented
-# classes, or namespaces to their corresponding documentation. Such a link can
-# be prevented in individual cases by putting a % sign in front of the word or
-# globally by setting AUTOLINK_SUPPORT to NO.
-# The default value is: YES.
-
-AUTOLINK_SUPPORT       = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should set this
-# tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string);
-# versus func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-# The default value is: NO.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-# The default value is: NO.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-# will parse them like normal C++ but will assume all classes use public instead
-# of private inheritance when no explicit protection keyword is present.
-# The default value is: NO.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate
-# getter and setter methods for a property. Setting this option to YES will make
-# doxygen to replace the get and set methods by a property in the documentation.
-# This will only work if the methods are indeed getting or setting a simple
-# type. If this is not the case, or you want to show the methods anyway, you
-# should set this option to NO.
-# The default value is: YES.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-# The default value is: NO.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# If one adds a struct or class to a group and this option is enabled, then also
-# any nested class or struct is added to the same group. By default this option
-# is disabled and one has to add nested compounds explicitly via \ingroup.
-# The default value is: NO.
-
-GROUP_NESTED_COMPOUNDS = NO
-
-# Set the SUBGROUPING tag to YES to allow class member groups of the same type
-# (for instance a group of public functions) to be put as a subgroup of that
-# type (e.g. under the Public Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
-# The default value is: YES.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-# are shown inside the group in which they are included (e.g. using \ingroup)
-# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-# and RTF).
-#
-# Note that this feature does not work in combination with
-# SEPARATE_MEMBER_PAGES.
-# The default value is: NO.
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-# with only public data fields or simple typedef fields will be shown inline in
-# the documentation of the scope in which they are defined (i.e. file,
-# namespace, or group documentation), provided this scope is documented. If set
-# to NO, structs, classes, and unions are shown on a separate page (for HTML and
-# Man pages) or section (for LaTeX and RTF).
-# The default value is: NO.
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-# enum is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically be
-# useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-# The default value is: NO.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-# cache is used to resolve symbols given their name and scope. Since this can be
-# an expensive process and often the same symbol appears multiple times in the
-# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-# doxygen will become slower. If the cache is too large, memory is wasted. The
-# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-# symbols. At the end of a run doxygen will report the cache usage and suggest
-# the optimal cache size from a speed point of view.
-# Minimum value: 0, maximum value: 9, default value: 0.
-
-LOOKUP_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
-# documentation are documented, even if no documentation was available. Private
-# class members and static file members will be hidden unless the
-# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-# Note: This will also disable the warnings about undocumented members that are
-# normally produced when WARNINGS is set to YES.
-# The default value is: NO.
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
-# be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PRIVATE        = YES
-
-# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
-# scope will be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PACKAGE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
-# included in the documentation.
-# The default value is: NO.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
-# locally in source files will be included in the documentation. If set to NO,
-# only classes defined in header files are included. Does not have any effect
-# for Java sources.
-# The default value is: YES.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. If set to YES, local methods,
-# which are defined in the implementation section but not in the interface are
-# included in the documentation. If set to NO, only methods in the interface are
-# included.
-# The default value is: NO.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base name of
-# the file that contains the anonymous namespace. By default anonymous namespace
-# are hidden.
-# The default value is: NO.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-# undocumented members inside documented classes or files. If set to NO these
-# members will be included in the various overviews, but no documentation
-# section is generated. This option has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy. If set
-# to NO, these classes will be included in the various overviews. This option
-# has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO, these declarations will be
-# included in the documentation.
-# The default value is: NO.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-# documentation blocks found inside the body of a function. If set to NO, these
-# blocks will be appended to the function's detailed documentation block.
-# The default value is: NO.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation that is typed after a
-# \internal command is included. If the tag is set to NO then the documentation
-# will be excluded. Set it to YES to include the internal documentation.
-# The default value is: NO.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES, upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# The default value is: system dependent.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-# their full class and namespace scopes in the documentation. If set to YES, the
-# scope will be hidden.
-# The default value is: NO.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
-# append additional text to a page's title, such as Class Reference. If set to
-# YES the compound reference will be hidden.
-# The default value is: NO.
-
-HIDE_COMPOUND_REFERENCE= NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-# the files that are included by a file in the documentation of that file.
-# The default value is: YES.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
-# grouped member an include statement to the documentation, telling the reader
-# which file to include in order to use the member.
-# The default value is: NO.
-
-SHOW_GROUPED_MEMB_INC  = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-# files with double quotes in the documentation rather than with sharp brackets.
-# The default value is: NO.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-# documentation for inline members.
-# The default value is: YES.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-# (detailed) documentation of file and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order.
-# The default value is: YES.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-# descriptions of file, namespace and class members alphabetically by member
-# name. If set to NO, the members will appear in declaration order. Note that
-# this will also influence the order of the classes in the class list.
-# The default value is: NO.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-# (brief and detailed) documentation of class members so that constructors and
-# destructors are listed first. If set to NO the constructors will appear in the
-# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-# member documentation.
-# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-# detailed member documentation.
-# The default value is: NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-# of group names into alphabetical order. If set to NO the group names will
-# appear in their defined order.
-# The default value is: NO.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-# fully-qualified names, including namespaces. If set to NO, the class list will
-# be sorted only by class name, not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the alphabetical
-# list.
-# The default value is: NO.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-# type resolution of all parameters of a function it will reject a match between
-# the prototype and the implementation of a member function even if there is
-# only one candidate or it is obvious which candidate to choose by doing a
-# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-# accept a match between prototype and implementation in such cases.
-# The default value is: NO.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
-# list. This list is created by putting \todo commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
-# list. This list is created by putting \test commands in the documentation.
-# The default value is: YES.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
-# list. This list is created by putting \bug commands in the documentation.
-# The default value is: YES.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
-# the deprecated list. This list is created by putting \deprecated commands in
-# the documentation.
-# The default value is: YES.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional documentation
-# sections, marked by \if <section_label> ... \endif and \cond <section_label>
-# ... \endcond blocks.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-# initial value of a variable or macro / define can have for it to appear in the
-# documentation. If the initializer consists of more lines than specified here
-# it will be hidden. Use a value of 0 to hide initializers completely. The
-# appearance of the value of individual variables and macros / defines can be
-# controlled using \showinitializer or \hideinitializer command in the
-# documentation regardless of this setting.
-# Minimum value: 0, maximum value: 10000, default value: 30.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-# the bottom of the documentation of classes and structs. If set to YES, the
-# list will mention the files that were used to generate the documentation.
-# The default value is: YES.
-
-SHOW_USED_FILES        = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-# will remove the Files entry from the Quick Index and from the Folder Tree View
-# (if specified).
-# The default value is: YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-# page. This will remove the Namespaces entry from the Quick Index and from the
-# Folder Tree View (if specified).
-# The default value is: YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command command input-file, where command is the value of the
-# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-# by doxygen. Whatever the program writes to standard output is used as the file
-# version. For an example see the documentation.
-
-FILE_VERSION_FILTER    = 
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option. You can
-# optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
-#
-# Note that if you run doxygen from a directory containing a file called
-# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-# tag is left empty.
-
-LAYOUT_FILE            = 
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-# the reference definitions. This must be a list of .bib files. The .bib
-# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-# For LaTeX the style of the bibliography can be controlled using
-# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-# search path. See also \cite for info how to create references.
-
-CITE_BIB_FILES         = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated to
-# standard output by doxygen. If QUIET is set to YES this implies that the
-# messages are off.
-# The default value is: NO.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
-# this implies that the warnings are on.
-#
-# Tip: Turn warnings on while writing the documentation.
-# The default value is: YES.
-
-WARNINGS               = YES
-
-# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
-# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-# will automatically be disabled.
-# The default value is: YES.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-# are documented, but have no documentation for their parameters or return
-# value. If set to NO, doxygen will only warn about wrong or incomplete
-# parameter documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC       = NO
-
-# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
-# a warning is encountered.
-# The default value is: NO.
-
-WARN_AS_ERROR          = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that doxygen
-# can produce. The string should contain the $file, $line, and $text tags, which
-# will be replaced by the file and line number from which the warning originated
-# and the warning text. Optionally the format may contain $version, which will
-# be replaced by the version of the file (if it could be obtained via
-# FILE_VERSION_FILTER)
-# The default value is: $file:$line: $text.
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning and error
-# messages should be written. If left blank the output is written to standard
-# error (stderr).
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag is used to specify the files and/or directories that contain
-# documented source files. You may enter file names like myfile.cpp or
-# directories like /usr/src/myproject. Separate the files or directories with
-# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
-# Note: If this tag is empty the current directory is searched.
-
-INPUT                  = @PROJECT_SOURCE_DIR@/README.md \
-                         @PROJECT_SOURCE_DIR@/flow/src \
-                         @PROJECT_SOURCE_DIR@/fwk/src \
-                         @PROJECT_SOURCE_DIR@/heat/src \
-                         @PROJECT_SOURCE_DIR@/mirrors/src \
-                         @PROJECT_SOURCE_DIR@/katoptron/src \
-                         @PROJECT_SOURCE_DIR@/tbox/src \
-                         @PROJECT_SOURCE_DIR@/waves/src 
-
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
-# The default value is: UTF-8.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories.
-#
-# Note that for custom extensions or not directly supported extensions you also
-# need to set EXTENSION_MAPPING for the extension otherwise the files are not
-# read by doxygen.
-#
-# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
-# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
-# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
-# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
-# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
-
-FILE_PATTERNS          = *.c \
-                         *.cpp \
-                         *.h \
-                         *.hpp \
-                         *.md
-
-#FILE_PATTERNS          = *.c \
-#                         *.cc \
-#                         *.cxx \
-#                         *.cpp \
-#                         *.c++ \
-#                         *.java \
-#                         *.ii \
-#                         *.ixx \
-#                         *.ipp \
-#                         *.i++ \
-#                         *.inl \
-#                         *.idl \
-#                         *.ddl \
-#                         *.odl \
-#                         *.h \
-#                         *.hh \
-#                         *.hxx \
-#                         *.hpp \
-#                         *.h++ \
-#                         *.cs \
-#                         *.d \
-#                         *.php \
-#                         *.php4 \
-#                         *.php5 \
-#                         *.phtml \
-#                         *.inc \
-#                         *.m \
-#                         *.markdown \
-#                         *.md \
-#                         *.mm \
-#                         *.dox \
-#                         *.py \
-#                         *.pyw \
-#                         *.f90 \
-#                         *.f \
-#                         *.for \
-#                         *.tcl \
-#                         *.vhd \
-#                         *.vhdl \
-#                         *.ucf \
-#                         *.qsf \
-#                         *.as \
-#                         *.js
-
-# The RECURSIVE tag can be used to specify whether or not subdirectories should
-# be searched for input files as well.
-# The default value is: NO.
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-#
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE                = 
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-# The default value is: NO.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = 
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories use the pattern */test/*
-
-EXCLUDE_SYMBOLS        = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or directories
-# that contain example code fragments that are included (see the \include
-# command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank all
-# files are included.
-
-EXAMPLE_PATTERNS       = *
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude commands
-# irrespective of the value of the RECURSIVE tag.
-# The default value is: NO.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or directories
-# that contain images that are to be included in the documentation (see the
-# \image command).
-
-IMAGE_PATH             = @PROJECT_SOURCE_DIR@/dox/
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command:
-#
-# <filter> <input-file>
-#
-# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-# name of an input file. Doxygen will then use the output that the filter
-# program writes to standard output. If FILTER_PATTERNS is specified, this tag
-# will be ignored.
-#
-# Note that the filter must not add or remove lines; it is applied before the
-# code is scanned, but not when the output code is generated. If lines are added
-# or removed, the anchors will not be placed correctly.
-#
-# Note that for custom extensions or not directly supported extensions you also
-# need to set EXTENSION_MAPPING for the extension otherwise the files are not
-# properly processed by doxygen.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form: pattern=filter
-# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-# patterns match the file name, INPUT_FILTER is applied.
-#
-# Note that for custom extensions or not directly supported extensions you also
-# need to set EXTENSION_MAPPING for the extension otherwise the files are not
-# properly processed by doxygen.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will also be used to filter the input files that are used for
-# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-# The default value is: NO.
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-# it is also possible to disable source filtering for a specific pattern using
-# *.ext= (so without naming a filter).
-# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
-FILTER_SOURCE_PATTERNS = 
-
-# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-# is part of the input, its contents will be placed on the main page
-# (index.html). This can be useful if you have a project on for instance GitHub
-# and want to reuse the introduction page also for the doxygen output.
-
-USE_MDFILE_AS_MAINPAGE =  README.md
-
-#---------------------------------------------------------------------------
-# Configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-# generated. Documented entities will be cross-referenced with these sources.
-#
-# Note: To get rid of all source code in the generated output, make sure that
-# also VERBATIM_HEADERS is set to NO.
-# The default value is: NO.
-
-SOURCE_BROWSER         = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body of functions,
-# classes and enums directly into the documentation.
-# The default value is: NO.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-# special comment blocks from generated source code fragments. Normal C, C++ and
-# Fortran comments will always remain visible.
-# The default value is: YES.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
-# The default value is: NO.
-
-REFERENCED_BY_RELATION = NO
-
-# If the REFERENCES_RELATION tag is set to YES then for each documented function
-# all documented entities called/used by that function will be listed.
-# The default value is: NO.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-# to YES then the hyperlinks from functions in REFERENCES_RELATION and
-# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-# link to the documentation.
-# The default value is: YES.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-# source code will show a tooltip with additional information such as prototype,
-# brief description and links to the definition and documentation. Since this
-# will make the HTML file larger and loading of large files a bit slower, you
-# can opt to disable this feature.
-# The default value is: YES.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-SOURCE_TOOLTIPS        = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code will
-# point to the HTML generated by the htags(1) tool instead of doxygen built-in
-# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
-# 4.8.6 or higher.
-#
-# To use it do the following:
-# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-# - Make sure the INPUT points to the root of the source tree
-# - Run doxygen as normal
-#
-# Doxygen will invoke htags (and that will in turn invoke gtags), so these
-# tools must be available from the command line (i.e. in the search path).
-#
-# The result: instead of the source browser generated by doxygen, the links to
-# source code will now point to the output of htags.
-# The default value is: NO.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-# verbatim copy of the header file for each class for which an include is
-# specified. Set to NO to disable this.
-# See also: Section \class.
-# The default value is: YES.
-
-VERBATIM_HEADERS       = YES
-
-# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
-# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
-# cost of reduced performance. This can be particularly helpful with template
-# rich C++ code for which doxygen's built-in parser lacks the necessary type
-# information.
-# Note: The availability of this option depends on whether or not doxygen was
-# generated with the -Duse-libclang=ON option for CMake.
-# The default value is: NO.
-
-CLANG_ASSISTED_PARSING = NO
-
-# If clang assisted parsing is enabled you can provide the compiler with command
-# line options that you would normally use when invoking the compiler. Note that
-# the include paths will already be set by doxygen for the files and directories
-# specified with INPUT and INCLUDE_PATH.
-# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
-
-CLANG_OPTIONS          = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-# compounds will be generated. Enable this if the project contains a lot of
-# classes, structs, unions or interfaces.
-# The default value is: YES.
-
-ALPHABETICAL_INDEX     = NO
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all classes will
-# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-# can be used to specify a prefix (or a list of prefixes) that should be ignored
-# while generating the index headers.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
-# The default value is: YES.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-# generated HTML page (for example: .htm, .php, .asp).
-# The default value is: .html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-# each generated HTML page. If the tag is left blank doxygen will generate a
-# standard header.
-#
-# To get valid HTML the header file that includes any scripts and style sheets
-# that doxygen needs, which is dependent on the configuration options used (e.g.
-# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-# default header using
-# doxygen -w html new_header.html new_footer.html new_stylesheet.css
-# YourConfigFile
-# and then modify the file new_header.html. See also section "Doxygen usage"
-# for information on how to generate the default header that doxygen normally
-# uses.
-# Note: The header is subject to change so you typically have to regenerate the
-# default header when upgrading to a newer version of doxygen. For a description
-# of the possible markers and block names see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-# generated HTML page. If the tag is left blank doxygen will generate a standard
-# footer. See HTML_HEADER for more information on how to generate a default
-# footer and what special commands can be used inside the footer. See also
-# section "Doxygen usage" for information on how to generate the default footer
-# that doxygen normally uses.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-# sheet that is used by each HTML page. It can be used to fine-tune the look of
-# the HTML output. If left blank doxygen will generate a default style sheet.
-# See also section "Doxygen usage" for information on how to generate the style
-# sheet that doxygen normally uses.
-# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-# it is more robust and this tag (HTML_STYLESHEET) will in the future become
-# obsolete.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_STYLESHEET        = 
-
-# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# cascading style sheets that are included after the standard style sheets
-# created by doxygen. Using this option one can overrule certain style aspects.
-# This is preferred over using HTML_STYLESHEET since it does not replace the
-# standard style sheet and is therefore more robust against future updates.
-# Doxygen will copy the style sheet files to the output directory.
-# Note: The order of the extra style sheet files is of importance (e.g. the last
-# style sheet in the list overrules the setting of the previous ones in the
-# list). For an example see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_STYLESHEET  = 
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-# files will be copied as-is; there are no commands or markers available.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_FILES       = 
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-# will adjust the colors in the style sheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-# purple, and 360 is red again.
-# Minimum value: 0, maximum value: 359, default value: 220.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
-# value of 255 will produce the most vivid colors.
-# Minimum value: 0, maximum value: 255, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-# luminance component of the colors in the HTML output. Values below 100
-# gradually make the output lighter, whereas values above 100 make the output
-# darker. The value divided by 100 is the actual gamma applied, so 80 represents
-# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-# change the gamma.
-# Minimum value: 40, maximum value: 240, default value: 80.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to YES can help to show when doxygen was last run and thus if the
-# documentation is up to date.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-# shown in the various tree structured indices initially; the user can expand
-# and collapse entries dynamically later on. Doxygen will expand the tree to
-# such a level that at most the specified number of entries are visible (unless
-# a fully collapsed tree already exceeds this amount). So setting the number of
-# entries 1 will produce a full collapsed tree by default. 0 is a special value
-# representing an infinite number of entries and will result in a full expanded
-# tree by default.
-# Minimum value: 0, maximum value: 9999, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files will be
-# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_DOCSET        = NO
-
-# This tag determines the name of the docset feed. A documentation feed provides
-# an umbrella under which multiple documentation sets from a single provider
-# (such as a company or product suite) can be grouped.
-# The default value is: Doxygen generated docs.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# This tag specifies a string that should uniquely identify the documentation
-# set bundle. This should be a reverse domain-name style string, e.g.
-# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-# The default value is: org.doxygen.Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-# The default value is: Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# The HTML Help Workshop contains a compiler that can convert all HTML output
-# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-# files are now used as the Windows 98 help format, and will replace the old
-# Windows help format (.hlp) on all Windows platforms in the future. Compressed
-# HTML files also contain an index, a table of contents, and you can search for
-# words in the documentation. The HTML workshop also contains a viewer for
-# compressed HTML files.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_HTMLHELP      = NO
-
-# The CHM_FILE tag can be used to specify the file name of the resulting .chm
-# file. You can add a path in front of the file if the result should not be
-# written to the html output directory.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_FILE               = 
-
-# The HHC_LOCATION tag can be used to specify the location (absolute path
-# including file name) of the HTML help compiler (hhc.exe). If non-empty,
-# doxygen will try to run the HTML help compiler on the generated index.hhp.
-# The file has to be specified with full path.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-HHC_LOCATION           = 
-
-# The GENERATE_CHI flag controls if a separate .chi index file is generated
-# (YES) or that it should be included in the master .chm file (NO).
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-GENERATE_CHI           = NO
-
-# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
-# and project file content.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_INDEX_ENCODING     = 
-
-# The BINARY_TOC flag controls whether a binary table of contents is generated
-# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
-# enables the Previous and Next buttons.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members to
-# the table of contents of the HTML help documentation and to the tree view.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-# (.qch) of the generated HTML documentation.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-# the file name of the resulting .qch file. The path specified is relative to
-# the HTML output folder.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QCH_FILE               = 
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
-# The default value is: doc.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_NAME   = 
-
-# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_ATTRS  = 
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_SECT_FILTER_ATTRS  = 
-
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHG_LOCATION           = 
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-# generated, together with the HTML files, they form an Eclipse help plugin. To
-# install this plugin and make it available under the help contents menu in
-# Eclipse, the contents of the directory containing the HTML and XML files needs
-# to be copied into the plugins directory of eclipse. The name of the directory
-# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-# After copying Eclipse needs to be restarted before the help appears.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the Eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have this
-# name. Each documentation set should have its own identifier.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# If you want full control over the layout of the generated HTML pages it might
-# be necessary to disable the index and replace it with your own. The
-# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-# of each HTML page. A value of NO enables the index and the value YES disables
-# it. Since the tabs in the index contain the same information as the navigation
-# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-DISABLE_INDEX          = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information. If the tag
-# value is set to YES, a side panel will be generated containing a tree-like
-# index structure (just like the one that is generated for HTML Help). For this
-# to work a browser that supports JavaScript, DHTML, CSS and frames is required
-# (i.e. any modern browser). Windows users are probably better off using the
-# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_TREEVIEW      = YES
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-# doxygen will group on one line in the generated HTML documentation.
-#
-# Note that a value of 0 will completely suppress the enum values from appearing
-# in the overview section.
-# Minimum value: 0, maximum value: 20, default value: 4.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-# to set the initial width (in pixels) of the frame in which the tree is shown.
-# Minimum value: 0, maximum value: 1500, default value: 250.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-TREEVIEW_WIDTH         = 250
-
-# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
-# external symbols imported via tag files in a separate window.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of LaTeX formulas included as images in
-# the HTML documentation. When you change the font size after a successful
-# doxygen run you need to manually remove any form_*.png images from the HTML
-# output directory to force them to be regenerated.
-# Minimum value: 8, maximum value: 50, default value: 10.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
-# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
-# installed or if you want to formulas look prettier in the HTML output. When
-# enabled you may also need to install MathJax separately and configure the path
-# to it using the MATHJAX_RELPATH option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-USE_MATHJAX            = YES
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
-# The default value is: HTML-CSS.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_FORMAT         = HTML-CSS
-
-# When MathJax is enabled you need to specify the location relative to the HTML
-# output directory using the MATHJAX_RELPATH option. The destination directory
-# should contain the MathJax.js script. For instance, if the mathjax directory
-# is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-# Content Delivery Network so you can quickly see the result without installing
-# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_EXTENSIONS     = 
-
-# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-# example see the documentation.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_CODEFILE       = 
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-# the HTML output. The underlying search engine uses javascript and DHTML and
-# should work on any modern browser. Note that when using HTML help
-# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-# there is already a search function so this one should typically be disabled.
-# For large projects the javascript based search engine can be slow, then
-# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-# search using the keyboard; to jump to the search box use <access key> + S
-# (what the <access key> is depends on the OS and browser, but it is typically
-# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-# key> to jump into the search results window, the results can be navigated
-# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-# the search. The filter options can be selected when the cursor is inside the
-# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-# to select a filter and <Enter> or <escape> to activate or cancel the filter
-# option.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
-# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
-# setting. When disabled, doxygen will generate a PHP script for searching and
-# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
-# and searching needs to be provided by external tools. See the section
-# "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SERVER_BASED_SEARCH    = NO
-
-# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-# script for searching. Instead the search results are written to an XML file
-# which needs to be processed by an external indexer. Doxygen will invoke an
-# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-# search results.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
-#
-# See the section "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH        = NO
-
-# The SEARCHENGINE_URL should point to a search engine hosted by a web server
-# which will return the search results when EXTERNAL_SEARCH is enabled.
-#
-# Doxygen ships with an example indexer (doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
-# Searching" for details.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHENGINE_URL       = 
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-# search data is written to a file for indexing by an external tool. With the
-# SEARCHDATA_FILE tag the name of this file can be specified.
-# The default file is: searchdata.xml.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHDATA_FILE        = searchdata.xml
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-# projects and redirect the results back to the right project.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH_ID     = 
-
-# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-# projects other than the one defined by this configuration file, but that are
-# all added to the same external search index. Each project needs to have a
-# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-# to a relative location where the documentation can be found. The format is:
-# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTRA_SEARCH_MAPPINGS  = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
-# The default value is: YES.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked.
-#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used by the
-# printer.
-# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-# 14 inches) and executive (7.25 x 10.5 inches).
-# The default value is: a4.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-# that should be included in the LaTeX output. The package can be specified just
-# by its name or with the correct syntax as to be used with the LaTeX
-# \usepackage command. To get the times font for instance you can specify :
-# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
-# To use the option intlimits with the amsmath package you can specify:
-# EXTRA_PACKAGES=[intlimits]{amsmath}
-# If left blank no extra packages will be included.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-EXTRA_PACKAGES         = amsmath
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-# generated LaTeX document. The header should contain everything until the first
-# chapter. If it is left blank doxygen will generate a standard header. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
-# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
-# string, for the replacement values of the other commands the user is referred
-# to HTML_HEADER.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER           = 
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-# generated LaTeX document. The footer should contain everything after the last
-# chapter. If it is left blank doxygen will generate a standard footer. See
-# LATEX_HEADER for more information on how to generate a default footer and what
-# special commands can be used inside the footer.
-#
-# Note: Only use a user-defined footer if you know what you are doing!
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_FOOTER           = 
-
-# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
-# LaTeX style sheets that are included after the standard style sheets created
-# by doxygen. Using this option one can overrule certain style aspects. Doxygen
-# will copy the style sheet files to the output directory.
-# Note: The order of the extra style sheet files is of importance (e.g. the last
-# style sheet in the list overrules the setting of the previous ones in the
-# list).
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_STYLESHEET = 
-
-# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the LATEX_OUTPUT output
-# directory. Note that the files will be copied as-is; there are no commands or
-# markers available.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_FILES      = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-# contain links (just like the HTML output) instead of page references. This
-# makes the output suitable for online browsing using a PDF viewer.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PDF_HYPERLINKS         = YES
-
-# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES, to get a
-# higher quality PDF documentation.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-# command to the generated LaTeX files. This will instruct LaTeX to keep running
-# if errors occur, instead of asking the user for help. This option is also used
-# when generating formulas in HTML.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BATCHMODE        = NO
-
-# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-# index chapters (such as File Index, Compound Index, etc.) in the output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HIDE_INDICES     = NO
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-# The default value is: plain.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BIB_STYLE        = plain
-
-# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_TIMESTAMP        = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
-# RTF output is optimized for Word 97 and may not look too pretty with other RTF
-# readers/editors.
-# The default value is: NO.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: rtf.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-# contain hyperlink fields. The RTF file will contain links (just like the HTML
-# output) instead of page references. This makes the output suitable for online
-# browsing using Word or some other Word compatible readers that support those
-# fields.
-#
-# Note: WordPad (write) and others do not support links.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
-#
-# See also section "Doxygen usage" for information on how to generate the
-# default style sheet that doxygen normally uses.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_EXTENSIONS_FILE    = 
-
-# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
-# with syntax highlighting in the RTF output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_SOURCE_CODE        = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
-# classes and files.
-# The default value is: NO.
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it. A directory man3 will be created inside the directory specified by
-# MAN_OUTPUT.
-# The default directory is: man.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to the generated
-# man pages. In case the manual section does not start with a number, the number
-# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-# optional.
-# The default value is: .3.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_EXTENSION          = .3
-
-# The MAN_SUBDIR tag determines the name of the directory created within
-# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
-# MAN_EXTENSION with the initial . removed.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_SUBDIR             = 
-
-# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-# will generate one additional man file for each entity documented in the real
-# man page(s). These additional files only source the real man page, but without
-# them the man command would be unable to find the correct page.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
-# captures the structure of the code including all documentation.
-# The default value is: NO.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: xml.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_OUTPUT             = xml
-
-# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
-# listings (including syntax highlighting and cross-referencing information) to
-# the XML output. Note that enabling this will significantly increase the size
-# of the XML output.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the DOCBOOK output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
-# that can be used to generate PDF.
-# The default value is: NO.
-
-GENERATE_DOCBOOK       = NO
-
-# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-# front of it.
-# The default directory is: docbook.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_OUTPUT         = docbook
-
-# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
-# program listings (including syntax highlighting and cross-referencing
-# information) to the DOCBOOK output. Note that enabling this will significantly
-# increase the size of the DOCBOOK output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_PROGRAMLISTING = NO
-
-#---------------------------------------------------------------------------
-# Configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sf.net) file that captures the
-# structure of the code including all documentation. Note that this feature is
-# still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
-# file that captures the structure of the code including all documentation.
-#
-# Note that this feature is still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
-# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-# output from the Perl module output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
-# formatted so it can be parsed by a human reader. This is useful if you want to
-# understand what is going on. On the other hand, if this tag is set to NO, the
-# size of the Perl module output will be much smaller and Perl will parse it
-# just the same.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file are
-# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-# so different doxyrules.make files included by the same Makefile don't
-# overwrite each other's variables.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
-# C-preprocessor directives found in the sources and include files.
-# The default value is: YES.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
-# in the source code. If set to NO, only conditional compilation will be
-# performed. Macro expansion can be done in a controlled way by setting
-# EXPAND_ONLY_PREDEF to YES.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-# the macro expansion is limited to the macros specified with the PREDEFINED and
-# EXPAND_AS_DEFINED tags.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES, the include files in the
-# INCLUDE_PATH will be searched if a #include is found.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by the
-# preprocessor.
-# This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will be
-# used.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that are
-# defined before the preprocessor is started (similar to the -D option of e.g.
-# gcc). The argument of the tag is a list of macros of the form: name or
-# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-# is assumed. To prevent a macro definition from being undefined via #undef or
-# recursively expanded use the := operator instead of the = operator.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-# tag can be used to specify a list of macro names that should be expanded. The
-# macro definition that is found in the sources will be used. Use the PREDEFINED
-# tag if you want to use a different macro definition that overrules the
-# definition found in the source code.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-# remove all references to function-like macros that are alone on a line, have
-# an all uppercase name, and do not end with a semicolon. Such function macros
-# are typically used for boiler-plate code, and will confuse the parser if not
-# removed.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tag files. For each tag
-# file the location of the external documentation should be added. The format of
-# a tag file without this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where loc1 and loc2 can be relative or absolute paths or URLs. See the
-# section "Linking to external documentation" for more information about the use
-# of tag files.
-# Note: Each tag file must have a unique name (where the name does NOT include
-# the path). If a tag file is not located in the directory in which doxygen is
-# run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-# tag file that is based on the input files it reads. See section "Linking to
-# external documentation" for more information about the usage of tag files.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
-# the class index. If set to NO, only the inherited external classes will be
-# listed.
-# The default value is: NO.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will be
-# listed.
-# The default value is: YES.
-
-EXTERNAL_GROUPS        = YES
-
-# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
-# the related pages index. If set to NO, only the current project's pages will
-# be listed.
-# The default value is: YES.
-
-EXTERNAL_PAGES         = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            = 
-
-# You can include diagrams made with dia in doxygen documentation. Doxygen will
-# then run dia to produce the diagram and insert it in the documentation. The
-# DIA_PATH tag allows you to specify the directory where the dia binary resides.
-# If left empty dia is assumed to be found in the default search path.
-
-DIA_PATH               = 
-
-# If set to YES the inheritance and collaboration graphs will hide inheritance
-# and usage relations if the target is undocumented or is not a class.
-# The default value is: YES.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-# Bell Labs. The other options in this section have no effect if this option is
-# set to NO
-# The default value is: YES.
-
-HAVE_DOT               = YES
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-# to run in parallel. When set to 0 doxygen will base this on the number of
-# processors available in the system. You can set it explicitly to a value
-# larger than 0 to get control over the balance between CPU load and processing
-# speed.
-# Minimum value: 0, maximum value: 32, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_NUM_THREADS        = 0
-
-# When you want a differently looking font in the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the default font as specified with
-# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-# the path where dot can find it using this tag.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTPATH           = 
-
-# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-# graph for each documented class showing the direct and indirect implementation
-# dependencies (inheritance, containment, and class references variables) of the
-# class with other documented classes.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-# groups, showing the direct groups dependencies.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LOOK               = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-# class node. If there are many fields or methods and many nodes the graph may
-# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-# number of items for each type to make the size more manageable. Set this to 0
-# for no limit. Note that the threshold may be exceeded by 50% before the limit
-# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-# but if the number exceeds 15, the total amount of fields shown is limited to
-# 10.
-# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS   = 10
-
-# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-# collaboration graphs will show the relations between templates and their
-# instances.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-# YES then doxygen will generate a graph for each documented file showing the
-# direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDE_GRAPH          = YES
-
-# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-# set to YES then doxygen will generate a graph for each documented file showing
-# the direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command. Disabling a call graph can be
-# accomplished by means of the command \hidecallgraph.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command. Disabling a caller graph can be
-# accomplished by means of the command \hidecallergraph.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-# hierarchy of all classes instead of a textual one.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-# dependencies a directory has on other directories in a graphical way. The
-# dependency relations are determined by the #include relations between the
-# files in the directories.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. For an explanation of the image formats see the section
-# output formats in the documentation of the dot tool (Graphviz (see:
-# http://www.graphviz.org/)).
-# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-# to make the SVG files visible in IE 9+ (other browsers do not have this
-# requirement).
-# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
-# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
-# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
-# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
-# png:gdiplus:gdiplus.
-# The default value is: png.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-#
-# Note that this requires a modern browser other than Internet Explorer. Tested
-# and working are Firefox, Chrome, Safari, and Opera.
-# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-# the SVG files visible. Older versions of IE do not have SVG support.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INTERACTIVE_SVG        = NO
-
-# The DOT_PATH tag can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the \dotfile
-# command).
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOTFILE_DIRS           = 
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the \mscfile
-# command).
-
-MSCFILE_DIRS           = 
-
-# The DIAFILE_DIRS tag can be used to specify one or more directories that
-# contain dia files that are included in the documentation (see the \diafile
-# command).
-
-DIAFILE_DIRS           = 
-
-# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
-# path where java can find the plantuml.jar file. If left blank, it is assumed
-# PlantUML is not used or called during a preprocessing step. Doxygen will
-# generate a warning when it encounters a \startuml command in this case and
-# will not generate output for the diagram.
-
-PLANTUML_JAR_PATH      = 
-
-# When using plantuml, the specified paths are searched for files specified by
-# the !include statement in a plantuml block.
-
-PLANTUML_INCLUDE_PATH  = 
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-# that will be shown in the graph. If the number of nodes in a graph becomes
-# larger than this value, doxygen will truncate the graph, which is visualized
-# by representing a node as a red box. Note that doxygen if the number of direct
-# children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-# Minimum value: 0, maximum value: 10000, default value: 50.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-# generated by dot. A depth value of 3 means that only nodes reachable from the
-# root by following a path via at most 3 edges will be shown. Nodes that lay
-# further from the root node will be omitted. Note that setting this option to 1
-# or 2 may greatly reduce the computation time needed for large code bases. Also
-# note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-# Minimum value: 0, maximum value: 1000, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10) support
-# this, this feature is disabled by default.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-# explaining the meaning of the various boxes and arrows in the dot generated
-# graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP            = YES
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 8dada3ed..00000000
--- a/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
diff --git a/README.md b/README.md
index e38d97e1..bb66284e 100644
--- a/README.md
+++ b/README.md
@@ -1,39 +1,7 @@
 # waves
-Waves is a collection of general utilities and finite element tools for solving various PDE. The code is written in C++ interfaced in python through SWIG, and is developed at the University of Liège.
 
-![](/dox/img.png)
-
-## Features
-Set of python/C++ modules:
-  - [waves](/waves): 3D(Hex8) transient wave equation solver (FEM)
-  - [flow](https://gitlab.uliege.be/am-dept/dartflo): 2D(Tri3) and 3D(Tetra4) steady full potential equation solver (FEM) - moved to [dartflo](https://gitlab.uliege.be/am-dept/dartflo)
-  - [heat](/heat): 2D(Tri3) steady nonlinear heat equation solver (multiscale FE²M)
-  - [katoptron](/katoptron): 3D(Hex8 and Tetra4) linear thermomechanical equations with contact (FEM)
-  - [tlnos](/tlnos): basic Trilinos examples
-
-Additional features:
-  - [x] [Gmsh](http://geuz.org/gmsh/) support for mesh and post-processing
-  - [x] [VTK](http://www.vtk.org/)/[PyQt](https://riverbankcomputing.com/software/pyqt/intro) support for post processing and basic GUI
-  - [x] [OpenBLAS](http://www.openblas.net/) or [Intel MKL](https://software.intel.com/en-us/intel-mkl) support
-  - [x] [Eigen3](http://eigen.tuxfamily.org/index.php?title=Main_Page) support for linear algebra
-     - [Intel Pardiso](https://software.intel.com/content/www/us/en/develop/documentation/mkl-developer-reference-c/top/sparse-solver-routines/intel-mkl-pardiso-parallel-direct-sparse-solver-interface/pardiso.html) support
-     - [MUMPS](http://mumps.enseeiht.fr/) support
-  - [x] [TBB](https://www.threadingbuildingblocks.org/) support for multithreading
-  - [x] [mpi4py](https://bitbucket.org/mpi4py/mpi4py) support for parallelization
-  - [x] [Trilinos](https://trilinos.github.io/) support (for some modules)
-
-## Build
-
-Detailed build instructions can be found in the [wiki](https://gitlab.uliege.be/am-dept/waves/wikis/home).
-
-## References
-
-Liegeois Kim, [GMRES with embedded ensemble propagation for the efficient solution of parametric linear systems in uncertainty quantification of computational models with application to the thermomechanical simulation of an ITER front mirror](http://hdl.handle.net/2268/249334), University of Liège, 2020.
-
-Crovato Adrien, [Steady Transonic Aerodynamic and Aeroelastic Modeling for Preliminary Aircraft Design](http://hdl.handle.net/2268/251906), University of Liège, 2020.
-
-Liegeois K., Boman R., Phipps E., Wiesner T., and Arnst M., [GMRES with embedded ensemble propagation for the efficient solution of parametric linear systems in uncertainty quantification of computational models](http://hdl.handle.net/2268/248201), Computer Methods in Applied Mechanics and Engineering, Vol. 369, 2020.
-
-Crovato A., Boman R., Guner H., Terrapon V., Dimitriadis G., Almeida H., Prado A., Breviglieri C., Cabral P., and Silva, G., [A Full Potential Static Aeroelastic Solver for Preliminary Aircraft Design](http://hdl.handle.net/2268/237955), 18th International Forum on Aeroelasticity and Structural Dynamics, IFASD 2019.
-
-Bilocq Amaury, [Implementation of a viscous-inviscid interaction scheme in a finite element full potential solver](http://hdl.handle.net/2268/252195), University of Liège, 2020.
+This old repository has been split into several components which now live in their own repositories:
+- fwk & tbox: see [dartflo](https://gitlab.uliege.be/am-dept/amfe)
+- flow: see [dartflo](https://gitlab.uliege.be/am-dept/dartflo)
+- waves & heat: see [amfe-solvers](https://gitlab.uliege.be/am-dept/amfe-solvers)
+- katoptron: see [katoptron](https://gitlab.uliege.be/am-dept/katoptron)
diff --git a/dox/flow.png b/dox/flow.png
deleted file mode 100644
index 36072970be132de15bfcdc2dd3dacd19eeef268e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2240929
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%0AP+E`nv7
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%0Aa-3_hs$Bf6p?V}s^~0K3
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%0A3iz6+xY%emnZ#wGd6NsqVt_
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%0DRAa1RspJk!(zwVvshH#a`&()(p=<hP=<M
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%0DKTsl(^yO?W
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%0D4^}S`E;<tb&><R8nxEoT|`i*)~%}Ra%08@<I!-I
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%0D{Jbh#mi2Ob7){R>pgdpHbFf>>?a|pKTdl)#&L8w
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%0AA@;%Nx0Tr{$P`+~aURACZh
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%0D5Y5V9jZDhK|p8r#ZEzgauaP
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%0Dqa$zOd`FO|$%dI}O1
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%0DOmU`_qNm)QKK2m(}sIL5k4(nS7
z4rHef7d#FOh$-PX;pvQR6u%HQsSuB<xH!7|wLXMYBYGsyt>(qcURfn5+U4+0MDs=&
zfIKn7!w#$qkUn$;wkJGF&pbrfJc=V~Mjr>bZE6YFUxsl7HWgE8;V+I1>BgoLXmOPP
z`4R3^(!;P}GLz-;)>-ct*gejcnk|xFAlwbX?mc$L(|HRmvs=bcf`B0z6v?4)<cNPB
z-P_K!_?8wefMyOokx#<&^VYT$gDj{|P=KnGry1ORr6}bDSw%ey33%2TcClkYmb^>;
zm>tAJRNwyX{y~0OAbOhl0@vZR`Q@}u-M-DcZw*qf&gtV9ANgupuH`0gE>J?2TZwZp
z>pbpv=aSq0Ou7SG;f=i)EBgAl=81)wTxCU!K-i{A-EsO}?I{GhQ+<9V@Yw(MT+h%1
zIA=s_GcUt!yTSkC=4af<Uam2>IsX+OJS|AaS$`tVhJkIM=LioIDZ;Fm!X(*V7g+4*
zjB^<z{-mE%wSEnQmGDW&@SUq8uO*4jOUQ5oo%sE+^kt5}`&k`7G>%#&TmYF-(Klh4
z0D4UYJC&EVU%A$b8KypuOMVi*P^pM0vNJU34n{?XvV)kZspMe90NH|4D7_1;nzm;f
z&QU5_Qkn&!f4`WD&0qJ_(WDOOL-l>3t$RDSD}&7$Ol4sOtdfnTP2J)g9<SxHEqXUI
z=F#XFv53+*vTqsO8R=!;7!zmR%HE?lerqS-y)07Q1TZy^E<7Cbj<&Lv9++z6*IWKx
z#A}CC@X|AWTCm~fx#N9+<EuB3V+3t?T9ETSz<qTvGC%jqD`1;^5VvZt#CVynhD<2n
z^+O^HZ0W(*!@UjV8=<LRIF-8BP=D^lRX#{{C~Ni9Ta2~~NyUEw{Y4J(2x?nw<(K=&
z)7<|&kz?ZO1&tn?u#4xzg8)G-i+p|t`)U`4yGT82%W^r%a_CI=*ZaF?y|U+}#8-n7
zd*>20{D(F7+7P$pXE22u*4&3VnqU8z=a6(m@a2CY`gcPLrj3Rj@#jaM<eA=@RI`dO
z=|yh{nU_J47!sNQDwfM-|H?`zL3ZXzkH~V*=1n7Lb2cJD0+`GQwfkM<!vi#UMhoz0
z70B)Yp$aP9Os6Iwt;$%JpfXSbRr9|GrB2&a!wEO<2!W}nTde?5*gB7)GC=*F@t4~s
z=kQ!#7TtR}peiHt@0|%&_GwhUf0SY!;RT!4<#Vv_e-6Cg#8CW=k3D+Npz3GKXux<l
z8X}y2tW*@krV$i51>}ScrX+eP6x)w^t!9DtbRx*kcgUYF5Qbh|nvAS2F4-f{E!w0=
zIHi4pz5BK>9JX>9jc5Hvyn)t63SI*(WATG5R8zD!IR!-;`JlFf%6hQ=0DJ-i9gm1(
znM54$uASu@47C0Br+(wfCBj2;mUk@T>@B=l%0DUH+d@xf2rtgX6%kEr3*L4#4~|^_
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

diff --git a/dox/img.png b/dox/img.png
deleted file mode 100644
index 95122991d7c42905e5ddd927420db557e6d1f73b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 681759
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%0Ahp4CM=8lX85$n#tcD8_$uXykLKAONZ!
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%0D@Xq6>{|@
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

diff --git a/dox/logo.jpg b/dox/logo.jpg
deleted file mode 100644
index 17aeb3377b96b8ec85fed719dd8b3fdc25bd6913..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10837
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

diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt
deleted file mode 100644
index 3c75cd07..00000000
--- a/ext/CMakeLists.txt
+++ /dev/null
@@ -1 +0,0 @@
-ADD_SUBDIRECTORY(amfe)
diff --git a/ext/amfe b/ext/amfe
deleted file mode 160000
index 7b5a21b0..00000000
--- a/ext/amfe
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7b5a21b0c5fc3885a11e98ebc2e5acbd19bc55bf
diff --git a/heat/CMakeLists.txt b/heat/CMakeLists.txt
deleted file mode 100644
index 3fc1d71d..00000000
--- a/heat/CMakeLists.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Add source dir
-ADD_SUBDIRECTORY( src )
-ADD_SUBDIRECTORY( _src )
-
-# Add test dir
-MACRO_AddTest(${CMAKE_CURRENT_SOURCE_DIR}/tests)
diff --git a/heat/__init__.py b/heat/__init__.py
deleted file mode 100644
index 312d11ec..00000000
--- a/heat/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# heat MODULE initialization file
-
-import fwk
-import tbox
-from heatw import *
diff --git a/heat/_src/CMakeLists.txt b/heat/_src/CMakeLists.txt
deleted file mode 100644
index 3507ecc2..00000000
--- a/heat/_src/CMakeLists.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# CMake input file of the SWIG wrapper around "heatw.so"
-
-INCLUDE(${SWIG_USE_FILE})
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
-FILE(GLOB ISRCS *.i)
-
-SET(CMAKE_SWIG_FLAGS "")
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
-
-SET(SWINCFLAGS 
--I${PROJECT_SOURCE_DIR}/heat/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
-)
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
-
-if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
-    SWIG_ADD_MODULE(heatw python ${ISRCS} ${SRCS})
-else()
-    SWIG_ADD_LIBRARY(heatw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
-endif()
-MACRO_DebugPostfix(_heatw)
-
-TARGET_INCLUDE_DIRECTORIES(_heatw PRIVATE ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
-                                          ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src
-                                          ${PYTHON_INCLUDE_PATH}
-)
-
-SWIG_LINK_LIBRARIES(heatw 
-                    heat tbox fwk ${PYTHON_LIBRARIES}
-)
-
-INSTALL(FILES ${CMAKE_SWIG_OUTDIR}/heatw.py DESTINATION ${CMAKE_INSTALL_PREFIX})
-INSTALL(TARGETS _heatw DESTINATION ${CMAKE_INSTALL_PREFIX})
diff --git a/heat/_src/heatw.i b/heat/_src/heatw.i
deleted file mode 100644
index 0e9b0695..00000000
--- a/heat/_src/heatw.i
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// SWIG input file of the 'heat' module
-
-%feature("autodoc","1");
-
-%module(docstring=
-"'heatw' module: projet MP 2015/2016
-(c) ULg - A&M",
-directors="1",
-threads="1"
-) heatw
-%{
-
-#include <string>
-#include <sstream>
-#include <typeinfo>
-#include "heat.h"
-
-#include "wProblem.h"
-
-#include "wBoundary.h"
-#include "wMedium.h"
-#include "wSource.h"
-#include "wDirichlet.h"
-#include "wPeriodic.h"
-
-#include "wSolver.h"
-
-#include "wCompiledFct.h"
-
-#include "wDisplayHook.h"
-
-#include "fwkw.h"
-#include "tboxw.h"
-
-#include "wExtractor.h"
-
-%}
-
-
-%include "fwkw.swg"
-
-// ----------- MODULES UTILISES ------------
-%import "tboxw.i"
-
-// ----------- HEAT CLASSES ----------------
-%include "heat.h"
-
-%shared_ptr(heat::Medium);
-%shared_ptr(heat::Source);
-%shared_ptr(heat::Dirichlet);
-%shared_ptr(heat::Boundary);
-%shared_ptr(heat::Periodic);
-%shared_ptr(heat::Problem);
-%shared_ptr(heat::Solver);
-
-
-
-%feature("director") heat::DisplayHook;
-%include "wDisplayHook.h"
-
-%feature("director:except") {
-    if ($error != NULL) {
-        std::cout << "[in director:except]\n";
-        //throw Swig::DirectorMethodException();
-        throw std::runtime_error("Director problem");
-    }
-}
-
-%include "wDirichlet.h"
-%include "wMedium.h"
-%include "wSource.h"
-%include "wBoundary.h"
-%include "wPeriodic.h"
-%shared_ptr(heat::CompiledFct1a);
-%shared_ptr(heat::CompiledFct2a);
-%shared_ptr(heat::CompiledFct1b);
-%shared_ptr(heat::CompiledFct2b);
-%include "wCompiledFct.h"
-%include "wExtractor.h"
-
-%immutable heat::Problem::msh; // avoids the creation of the setter method
-%include "wProblem.h"
-
-%immutable heat::Solver::pbl; // avoids the creation of the setter method
-%immutable heat::Solver::tms; // avoid the creation of the setter method
-%include "wSolver.h"
diff --git a/heat/broken/heat_multiscale.py b/heat/broken/heat_multiscale.py
deleted file mode 100755
index d8d6cd58..00000000
--- a/heat/broken/heat_multiscale.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# 1er test multiscale (sans MPI)
-
-
-
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-import math
-
-class MicroModel(tbox.Fct2UdU):
-    def __init__(self):
-        tbox.Fct2UdU.__init__(self)
-        print("[m] creation of the micro model")
-
-        self.msh = gmsh.MeshLoader("heat_ms_micro.geo", __file__).execute()
-        self.pbl = h.Problem(self.msh)
-    
-        self.solver = h.Solver(self.pbl)
-        self.solver.nthreads = 1
-        self.solver.save = False
-        self.solver.verbose = 0
-        
-        h.Medium(self.pbl, "Matrix",    tbox.Fct2C(1.,1.,0), 1.0)
-        h.Medium(self.pbl, "Inclusion", tbox.Fct2C(100.,100.,0), 1.0)
-        self.p = h.Periodic(self.pbl, 0.0, 0.0, 0.0)    
-       
-    def eval(self, elem, npg, u, gradu, k, fake):           
-    #def eval(self, u, gradu, k, fake):
-        verb=False
-        
-        TM   = u
-        dTxM = gradu[0]
-        dTyM = gradu[1]
-        dTnorm = math.sqrt(dTxM*dTxM+dTyM*dTyM)
-        if dTnorm==0.0:
-            dTxM = 1.0
-            dTyM = 1.0
-            dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-            
-        if verb: 
-            print("-"*10)
-            print("**solving micro problem...")
-            print("[m] TM   =",TM)
-            print("[m] dTxM =",dTxM)
-            print("[m] dTyM =",dTyM)
-            
-        #if dTxM==0: dTxM=1e-5
-        #if dTyM==0: dTyM=1e-5
-      
-        self.p.reset(TM, dTxM, dTyM)
-        self.solver.start() 
-        
-        qMx = self.p.qM[0]
-        qMy = self.p.qM[1] 
-        
-        if verb:
-            print("[m] qMx =", qMx) 
-            print("[m] qMy =", qMy) 
-        
-        dTnorm = math.sqrt(dTxM*dTxM+dTyM*dTyM)
-        qnorm  = math.sqrt(qMx*qMx+qMy*qMy)
-        ampl   = qnorm / dTnorm
-        
-        ps = -(dTxM*qMx+dTyM*qMy)/dTnorm/qnorm
-        if ps>1.0: ps=1.0
-        if ps<-1.0: ps=-1.0
-        
-        #print ps
-        ang = math.acos(ps)
-        print("ang=", ang, "ampl=", ampl)
-        #print "qMx=", qMx, "ampl*dT=", dTxM*ampl, "res=", qMx-dTxM*ampl
-        cos = math.cos(ang)
-        sin = math.sin(ang)
-        K11 = cos*ampl
-        K21 = sin*ampl
-        K22 = K11
-        K12 = -K21
-          
-        k[0,0]=K11
-        k[1,1]=K22 
-        k[1,0]=K21
-        k[0,1]=K12             
-
-        if verb:
-            print(k)
-
-def main():
-
-    msh = gmsh.MeshLoader("heat_ms_macro.geo", __file__).execute()
-    pbl = h.Problem(msh)
-
-    solver = h.Solver(pbl)
-    solver.nthreads = 1
-    
-    myk = MicroModel()
-    h.Medium(pbl, "S1", myk)
-    
-    h.Dirichlet(pbl,"Left", 0.)
-    h.Dirichlet(pbl,"Right", 10.)
-
-    solver.restol = 1e-6
-    solver.start()
-
-    from heat.viewer import GUI
-    GUI().open('heat_ms_macro')
-    
-if __name__ == "__main__":
-    main()
diff --git a/heat/broken/honeycomb_jalil.geo b/heat/broken/honeycomb_jalil.geo
deleted file mode 100644
index 325d850d..00000000
--- a/heat/broken/honeycomb_jalil.geo
+++ /dev/null
@@ -1,71 +0,0 @@
-// Gmsh project created on Tue Mar 31 15:09:01 2015
-
-L=3; // Length of the cell
-l=2; // Width of the cell
-e=0.15; //width of the hexagonal path
-d=0.75; //Side of the hexagon
-density=0.1;
-
-
-Point(1) = {0, 0, 0, density};
-Point(2) = {0, L, 0, density};
-Point(3) = {l, L, 0, density};
-Point(4) = {l, 0, 0, density};
-Point(5) = {l/2-e/2, L, 0, density};
-Point(6) = {l/2+e/2, L, 0, density};
-Point(7) = {l/2+e/2, 0, 0, density};
-Point(8) = {l/2-e/2, 0, 0, density};
-Point(9) = {l/2-e/2, d/2, 0, density};
-Point(10) = {l/2+e/2, d/2, 0, density};
-Point(11) = {l/2+e/2, L-d/2, 0, density};
-Point(12) = {l/2-e/2, L-d/2, 0, density};
-Point(13) = {0, L/2-d/2, 0, density};
-Point(14) = {0, L/2+d/2, 0, density};
-Point(15) = {l, L/2+d/2, 0, density};
-Point(16) = {l, L/2-d/2, 0, density};
-Point(17) = {l/2, d/2+e/2, 0, density};
-Point(18) = {l/2, L-d/2-e/2, 0, density};
-Point(19) = {e/2, L/2-d/2+e/2, 0, density};
-Point(20) = {e/2, L/2+d/2-e/2, 0, density};
-Point(21) = {l-e/2, L/2+d/2-e/2, 0, density};
-Point(22) = {l-e/2, L/2-d/2+e/2, 0, density};
-Line(1) = {1, 8};
-Line(2) = {8, 7};
-Line(3) = {7, 4};
-Line(4) = {4, 16};
-Line(5) = {16, 15};
-Line(6) = {15, 3};
-Line(7) = {3, 6};
-Line(8) = {6, 5};
-Line(9) = {5, 2};
-Line(10) = {2, 14};
-Line(11) = {14, 13};
-Line(12) = {13, 1};
-Line(13) = {8, 9};
-Line(14) = {7, 10};
-Line(15) = {10, 16};
-Line(16) = {15, 11};
-Line(17) = {11, 6};
-Line(18) = {12, 5};
-Line(19) = {12, 14};
-Line(20) = {13, 9};
-Line(21) = {17, 22};
-Line(22) = {22, 21};
-Line(23) = {21, 18};
-Line(24) = {18, 20};
-Line(25) = {20, 19};
-Line(26) = {19, 17};
-Line Loop(27) = {2, 14, 15, 5, 16, 17, 8, -18, 19, 11, 20, -13};
-Line Loop(28) = {21, 22, 23, 24, 25, 26};
-Plane Surface(29) = {27, 28};
-Line Loop(30) = {1, 13, -20, 12};
-Plane Surface(31) = {30};
-Line Loop(32) = {3, 4, -15, -14};
-Plane Surface(33) = {32};
-Line Loop(34) = {6, 7, -17, -16};
-Plane Surface(35) = {34};
-Line Loop(36) = {9, 10, -19, 18};
-Plane Surface(37) = {36};
-Plane Surface(38) = {28};
-Physical Surface("Skeleton") = {29};
-Physical Surface("Air") = {38, 37, 35, 31, 33};
diff --git a/heat/broken/honeycomb_jalil.py b/heat/broken/honeycomb_jalil.py
deleted file mode 100755
index b6d1d752..00000000
--- a/heat/broken/honeycomb_jalil.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# test periodic BCs
-
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-
-def main():
-    msh = gmsh.MeshLoader("honeycomb_jalil.geo", __file__).execute()
-    pbl = h.Problem(msh)
-
-    solver = h.Solver(pbl)
-    solver.nthreads = 6
-
-    fa=tbox.PwLf()
-    fa.add(0, 80)
-    fa.add(300, 80)
-    fa.add(350, 20)
-    fa.add(450, 10)
-    fa.add(550, 5)
-    fa.add(750, 1)
-    fa.add(1000, 1)
-
-    fs=tbox.PwLf()
-    fs.add(0, 140)
-    fs.add(300, 140)
-    fs.add(350, 180)
-    fs.add(450, 200)
-    fs.add(550, 210)
-    fs.add(750, 220)
-    fs.add(1000, 220)
-
-    fz = tbox.PwLf()
-    fz.add(0,0)
-
-    h.Medium(pbl, "Air", tbox.Fct2PwLf(fa,fa,fz), 1.)
-    h.Medium(pbl, "Skeleton", tbox.Fct2PwLf(fs,fs,fz), 1.)
-
-    TM   = 600.0
-    dTxM = 0.
-    dTyM = 200.
-    p = h.Periodic(pbl, TM, dTxM, dTyM)
-
-    solver.restol = 1e-6
-    solver.start()
-
-    print("mean flux=", p.qM)
-
-    from heat.viewer import GUI
-    GUI().open('honeycomb_jalil')
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/broken/jalil1.py b/heat/broken/jalil1.py
deleted file mode 100755
index 4b546fdd..00000000
--- a/heat/broken/jalil1.py
+++ /dev/null
@@ -1,247 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# test multiscale
-
-# exc:   mpiexec.openmpi -n 12 ./jalil1.py
-
-
-
-
-
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-import math
-import mpi4py.MPI as mpi
-
-comm = mpi.COMM_WORLD
-rank = comm.rank
-siz  = comm.size
-
-"""
-if siz!=2:
-    print "error! siz=%d"% siz
-    import sys; sys.exit()
-"""
-
-class Job:
-    def __init__(self, TM, dTxM, dTyM):
-        # input
-        self.TM   = TM
-        self.dTxM = dTxM
-        self.dTyM = dTyM
-        # output
-        self.K11 = 0.0
-        self.K22 = 0.0
-        self.K12 = 0.0
-        self.K21 = 0.0
-        # killme
-        self.killme = False
-
-class MicroModel(tbox.Fct2UdU):
-    def __init__(self):
-        tbox.Fct2UdU.__init__(self)
-        print("[m] creation of the micro model")
-
-        self.msh = gmsh.MeshLoader("jalil1_micro.geo", __file__).execute()
-        self.pbl = h.Problem(self.msh)
-    
-        self.solver = h.Solver(self.pbl)
-        self.solver.nthreads = 1
-        self.solver.save = False
-        self.solver.verbose = 0
-        
-        h.Medium(self.pbl, "Matrix",    tbox.Fct2C(10.,10.,0), 1.0)
-        h.Medium(self.pbl, "Inclusion", tbox.Fct2C(140.,140.,0), 1.0)
-        self.p = h.Periodic(self.pbl, 0.0, 0.0, 0.0)    
-       
-        self.verb = False
-        
-        self.jobs = []
-        self.ijob = 0
-        
-    def execute(self, job):
-
-        TM   = job.TM
-        dTxM = job.dTxM
-        dTyM = job.dTyM 
-    
-        self.p.reset(TM, dTxM, dTyM)
-        self.solver.start() 
-        
-        # resulting flux qM
-        qMx = self.p.qM[0]
-        qMy = self.p.qM[1]     
- 
-        if self.verb:
-            print("[m] qMx =", qMx) 
-            print("[m] qMy =", qMy) 
-        
-        # convert flux to an anisotropic conductivity "k(2,2)"
-        dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-        qnorm=math.sqrt(qMx*qMx+qMy*qMy)
-        ampl=qnorm/dTnorm
-        
-        ps=-(dTxM*qMx+dTyM*qMy)/dTnorm/qnorm
-        if ps>1.0: ps=1.0
-        if ps<-1.0: ps=-1.0
-        
-        #print ps
-        ang=math.acos(ps)
-        #print "ang=", ang, "ampl=", ampl
-        #print "qMx=", qMx, "ampl*dT=", dTxM*ampl, "res=", qMx-dTxM*ampl
-        cos=math.cos(ang)
-        sin=math.sin(ang)
-        job.K11 = cos*ampl
-        job.K21 = sin*ampl
-        job.K22 = job.K11   # => K22 inutile!
-        job.K12 = -job.K21  # => K12 inutile!
-       
-    def eval(self, elem, npg, u, gradu, k, fake):  # tjs exécuté par rank#0
-        if fake: # on cree un job
-            TM   = u
-            dTxM = gradu[0]
-            dTyM = gradu[1]        
-            dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-            if dTnorm==0.0:
-                dTxM = 1.0
-                dTyM = 1.0
-                dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-                
-            if self.verb: 
-                print("[m] TM   =",TM)
-                print("[m] dTxM =",dTxM)
-                print("[m] dTyM =",dTyM)
-                
-            if self.ijob==0:
-                job = Job(TM, dTxM, dTyM)
-                self.jobs.append(job)
-                #print "[%d] adding job #%d" % (rank,len(self.jobs))
-            else:
-                if self.ijob==len(self.jobs):
-                    self.ijob=0
-                job = self.jobs[self.ijob] 
-                job.TM=TM
-                job.dTxM=dTxM
-                job.dTyM=dTyM
-                self.ijob+=1
-                
-        else: # on retourne le resultat du job 
-            if self.ijob==len(self.jobs):
-                self.ijob=0
-            #print "[%d] retrieving results from job #%d/%d" % (rank, self.ijob, len(self.jobs))
-            job = self.jobs[self.ijob]
-            k[0,0]=job.K11
-            k[1,1]=job.K22 
-            k[1,0]=job.K21
-            k[0,1]=job.K12             
-            self.ijob+=1
-
-
-    def evalall(self):   # tjs exécuté par rank#0
-        #print "looping on %d jobs" % len(self.jobs)
-        
-        # version 1 proc (master travaille seul)
-        if siz==1:
-            for job in self.jobs:
-                self.execute(job) 
-            return
-        
-        # version 2 procs (1 slave - 1 master)
-        """
-        for job in self.jobs:
-            #self.execute(job) 
-            
-            print "[%d] sending job to 1.." % rank          
-            comm.send(job, dest = 1)
-            print "[%d] waiting job from 1.." % rank          
-            job2 = comm.recv(source = 1)
-            print "[%d] job received from 1!" % rank          
-            job.K11=job2.K11
-            job.K22=job2.K22
-            job.K12=job2.K12
-            job.K21=job2.K21
-        """
-        
-        # version N procs
-        i=0
-        njobs=len(self.jobs)
-        slaves=list(range(1,siz))
-        while True:
-            #send jobs to slaves
-            jlist=[]
-            for s in slaves:
-                if i==njobs: break
-                job = self.jobs[i]
-                jlist.append( (job,s) )
-                if self.verb: print("[%d] sending job #%d to %s.." % (rank,i,s))          
-                comm.send(job, dest = s)
-                i+=1
-                
-            if not jlist:
-                break
-                    
-            #receive jobs
-            for (job,s) in jlist:
-                if self.verb: print("[%d] waiting job from %d.." % (rank,s))          
-                job2 = comm.recv(source = s)
-                if self.verb: print("[%d] job received from %d!" % (rank,s))
-                job.K11=job2.K11
-                job.K22=job2.K22
-                job.K12=job2.K12
-                job.K21=job2.K21                
-           
-
-def main():
-   
-    myk = MicroModel() # chaque process a son objet "modèle micro" (distinct)
-        
-    if rank==0:
-        if myk.verb: print("[%d] démarrage du modèle macro" % rank)
-        msh = gmsh.MeshLoader("jalil1_corner.geo", __file__).execute()
-        pbl = h.Problem(msh)
-
-        solver = h.Solver(pbl)
-        solver.nthreads = 1
-
-        h.Medium(pbl, "Volume", myk)
-        
-        h.Dirichlet(pbl,"Top BC", 400.)
-        h.Dirichlet(pbl,"Right BC", 600.)
-
-        solver.restol = 1e-6
-        solver.start()
-
-        # kill slaves:
-        slaves=list(range(1,siz))
-        for s in slaves:
-            job=Job(0,0,0); job.killme=True
-            if myk.verb: print("[%d] sending suicide job to %d" % (rank,s))
-            comm.send(job, dest = s)
-
-        from heat.viewer import GUI
-        GUI().open('jalil1_corner')       
-        
-    else:
-        myk.verb=False
-        if myk.verb: print("[%d] démarrage d'un modèle micro" % rank)
-               
-        while True:
-            # attend un gradient et cree un job
-            if myk.verb: print("[%d] waiting job from 0.." % rank)
-            job = comm.recv(source = 0)  # recoit un job
-            
-            if job.killme:
-                if myk.verb: print("[%d] Aaargl!" % rank)
-                break
-                
-            if myk.verb: print("[%d] job received from 0!" % rank)
-            myk.execute(job)             # execute le job
-            if myk.verb: print("[%d] sending job to 0.." % rank)
-            comm.send(job, dest = 0)     # envoie le resultat
-            if myk.verb: print("[%d] job sent to 0.." % rank)
-
-if __name__ == "__main__":
-    main()
-    print("[%d] end." % rank)
diff --git a/heat/broken/jalil1_corner.geo b/heat/broken/jalil1_corner.geo
deleted file mode 100644
index d7f276db..00000000
--- a/heat/broken/jalil1_corner.geo
+++ /dev/null
@@ -1,23 +0,0 @@
-// Gmsh project created on Sun May 10 12:08:39 2015
-L=10; //Length of each branch
-w=2; // Width of the branch
-d=2; //Density of elements
-d=0.5; //Density of elements
-
-Point(1) = {0, 0, 0, d};
-Point(2) = {L, 0, 0, d};
-Point(3) = {L, w, 0, d};
-Point(4) = {0, L, 0, d};
-Point(5) = {w, L, 0, d};
-Point(6) = {w, w, 0, d};
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 6};
-Line(4) = {6, 5};
-Line(5) = {5, 4};
-Line(6) = {4, 1};
-Line Loop(7) = {6, 1, 2, 3, 4, 5};
-Plane Surface(8) = {7};
-Physical Line("Top BC") = {5};
-Physical Line("Right BC") = {2};
-Physical Surface("Volume") = {8};
diff --git a/heat/broken/jalil1_micro.geo b/heat/broken/jalil1_micro.geo
deleted file mode 100644
index 73f9a94a..00000000
--- a/heat/broken/jalil1_micro.geo
+++ /dev/null
@@ -1,60 +0,0 @@
-// RVE
-
-Lx = 0.01;
-Ly = Lx;
-
-lc = Lx/10;
-
-ix = 6*Lx/10;
-iy = 6*Lx/10;
-iR = 3*Lx/10;
-
-// -- outer boundary
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-// -- inclusion
-
-Point(11) = { ix-iR,  iy, 0, lc};
-Point(12) = { ix,     iy, 0, lc};
-Point(13) = { ix+iR,  iy, 0, lc};
-
-Circle(10) = {11, 12, 13};
-Circle(11) = {13, 12, 11};
-
-Line Loop(11) = {11, 10};
-
-Plane Surface(11) = {11};
-
-// -- matrix
-
-Plane Surface(1) = {1, 11};
-
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("Matrix") = {1};
-Physical Surface("Inclusion") = {11};
-
-
-
-
-
diff --git a/heat/broken/jalil1_micro.py b/heat/broken/jalil1_micro.py
deleted file mode 100755
index 086a8eaf..00000000
--- a/heat/broken/jalil1_micro.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# simple RVE with 2 materials for testing periodic BCs
-
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-
-def main():
-
-    msh = gmsh.MeshLoader("jalil1_micro.geo", __file__).execute()
-
-    pbl = h.Problem(msh)
-
-    solver = h.Solver(pbl)
-    solver.nthreads = 4
-
-    h.Medium(pbl, "Matrix",    tbox.Fct2C(10.,10.,0), 1.0)
-    h.Medium(pbl, "Inclusion", tbox.Fct2C(140.,140.,0), 1.0)
-
-    TM   = 0.0
-    dTxM = 1.0
-    dTyM = 1.0
-    p = h.Periodic(pbl, TM, dTxM, dTyM)
-
-    solver.start()
-    print("flux=", p.qM)
-    
-    from heat.viewer import GUI
-    GUI().open('jalil1_micro')
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/broken/jalil2.py b/heat/broken/jalil2.py
deleted file mode 100755
index cecfa974..00000000
--- a/heat/broken/jalil2.py
+++ /dev/null
@@ -1,270 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# test multiscale
-
-# mpiexec.openmpi --bycore --bind-to-core -n 6 ./run.py heat/tests/jalil2.py
-
-
-
-
-
-
-
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-import math
-
-try:
-    import mpi4py.MPI as mpi
-    comm = mpi.COMM_WORLD
-    rank = comm.rank
-    siz  = comm.size
-    name = mpi.Get_processor_name()
-    print("info: MPI found")
-except:
-    comm = None
-    rank = 0
-    siz  = 1
-    name = "noname"
-    print("info: MPI not found => MPI disabled")
-
-class Job:
-    """ Class containing data transmitted between MPI procs
-    """
-    def __init__(self, id, TM, dTxM, dTyM):
-        # input
-        self.id = id   # debug
-        self.TM   = TM
-        self.dTxM = dTxM
-        self.dTyM = dTyM
-        # output
-        self.K11 = 0.0
-        self.K22 = 0.0 # useless (=K11)
-        self.K12 = 0.0
-        self.K21 = 0.0 # useless (=-K12)
-        # killme
-        self.killme = False
-
-
-class MicroModel(tbox.Fct2UdU):
-    def __init__(self):
-        """
-        creation du micro modele
-        """
-        tbox.Fct2UdU.__init__(self)
-        print("[m] creation of the micro model")
-
-        self.msh = gmsh.MeshLoader("jalil2_honey.geo", __file__).execute()
-        self.pbl = h.Problem(self.msh)
-    
-        self.solver = h.Solver(self.pbl)
-        self.solver.nthreads = 1
-        self.solver.save = False
-        self.solver.verbose = 0
-        
-        self.fa=tbox.PwLf()
-        self.fa.add(0, 80)
-        self.fa.add(300, 80)
-        self.fa.add(350, 20)
-        self.fa.add(450, 10)
-        self.fa.add(550, 5)
-        self.fa.add(750, 1)
-        self.fa.add(1000, 1)
-        
-        self.fs=tbox.PwLf()
-        self.fs.add(0, 140)
-        self.fs.add(300, 140)
-        self.fs.add(350, 180)
-        self.fs.add(450, 200)
-        self.fs.add(550, 210)
-        self.fs.add(750, 220)
-        self.fs.add(1000, 220)
-        
-        self.fz = tbox.PwLf()
-        self.fz.add(0,0) 
-           
-        h.Medium(self.pbl, "Air", tbox.Fct2PwLf(self.fa,self.fa,self.fz), 1.)
-        h.Medium(self.pbl, "Skeleton", tbox.Fct2PwLf(self.fs,self.fs,self.fz), 1.)
-        
-        self.p = h.Periodic(self.pbl, 0.0, 0.0, 0.0)    
-       
-        self.verb = False
-        
-        self.jbz = {}      # liste des jobs
-        
-    def execute(self, job):
-
-        TM   = job.TM
-        dTxM = job.dTxM
-        dTyM = job.dTyM 
-    
-        self.p.reset(TM, dTxM, dTyM)
-        self.solver.start() 
-        
-        # resulting flux qM
-        qMx = self.p.qM[0]
-        qMy = self.p.qM[1]     
- 
-        if self.verb:
-            print("[m] qMx =", qMx) 
-            print("[m] qMy =", qMy) 
-        
-        # convert flux to an anisotropic conductivity "k(2,2)"
-        dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-        qnorm=math.sqrt(qMx*qMx+qMy*qMy)
-        ampl=qnorm/dTnorm
-        
-        ps=-(dTxM*qMx+dTyM*qMy)/dTnorm/qnorm
-        if ps>1.0: ps=1.0
-        if ps<-1.0: ps=-1.0
-        
-        #print ps
-        ang=math.acos(ps)
-        #print "ang=", ang, "ampl=", ampl
-        #print "qMx=", qMx, "ampl*dT=", dTxM*ampl, "res=", qMx-dTxM*ampl
-        cos=math.cos(ang)
-        sin=math.sin(ang)
-        job.K11 = cos*ampl
-        job.K21 = sin*ampl
-        job.K22 = job.K11   # => K22 inutile!
-        job.K12 = -job.K21  # => K12 inutile!
-       
-    def eval(self, elem, npg, u, gradu, k, fake):  # tjs exécuté par rank#0
-        if fake: # on cree un job
-            TM   = u
-            dTxM = gradu[0]
-            dTyM = gradu[1]        
-            dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-            if dTnorm==0.0:
-                dTxM = 1.0
-                dTyM = 1.0
-                dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-                
-            if self.verb: 
-                print("[m] TM   =",TM)
-                print("[m] dTxM =",dTxM)
-                print("[m] dTyM =",dTyM)
-            
-            job = self.jbz.get((elem.no,npg))
-            if job: # job existe deja, on le modifie
-                job.TM=TM
-                job.dTxM=dTxM
-                job.dTyM=dTyM            
-            else: # on ajoute ce job
-                self.jbz[(elem.no,npg)] = Job((elem.no,npg), TM, dTxM, dTyM)
-                #print "[m] creating job", (elem.no,npg)
-                
-                
-        else: # on retourne le resultat du job 
-            
-            job = self.jbz.get((elem.no,npg))
-            if not job:
-                print("[m] job", (elem.no,npg), "not found!")
-            #else:
-            #    print "[m] job", (elem.no,npg), "OK!"
-            k[0,0]=job.K11
-            k[1,1]=job.K22 
-            k[1,0]=job.K21
-            k[0,1]=job.K12
-
-
-    def evalall(self):   # tjs exécuté par rank#0
-    
-        #print "looping on %d jobs" % len(self.jobs)
-        
-        # version 1 proc (master travaille seul)
-        if siz==1:
-            #for job in self.jbz.itervalues():
-            for id,job in self.jbz.items():
-                self.execute(job) 
-            return
-
-        # version N procs
-        it=self.jbz.__iter__()
-        njobs=len(self.jbz)
-        slaves=list(range(1,siz))
-        while True:
-            #send jobs to slaves
-            jlist=[]
-            for s in slaves:
-                try:
-                    jobk = next(it) # get next job
-                except:
-                    break
-                job = self.jbz[jobk]
-                jlist.append( (job,s) )
-                if self.verb: 
-                    print("[%d] sending job %s to %s.." % (rank,jobk,s))          
-                comm.send(job, dest = s)
-                
-            if not jlist: # plus de job?
-                break
-                    
-            #receive jobs
-            for (job,s) in jlist:
-                if self.verb: print("[%d] waiting job from %d.." % (rank,s))          
-                job2 = comm.recv(source = s)
-                if self.verb: print("[%d] job received from %d!" % (rank,s))
-                job.K11=job2.K11
-                job.K22=job2.K22
-                job.K12=job2.K12
-                job.K21=job2.K21                
-       
-
-def main():
-   
-    myk = MicroModel() # chaque process a son objet "modèle micro" (distinct)
-    
-    # faire en sorte que le rank0 charge le micro en 1er
-    
-    if rank==0:
-        if myk.verb: print("[%d] démarrage du modèle macro" % rank)
-        msh = gmsh.MeshLoader("jalil1_corner.geo", __file__).execute()
-        pbl = h.Problem(msh)
-
-        solver = h.Solver(pbl)
-        solver.nthreads = 1
-
-        h.Medium(pbl, "Volume", myk)
-        
-        h.Dirichlet(pbl,"Top BC", 400.)
-        h.Dirichlet(pbl,"Right BC", 600.)
-
-        solver.restol = 1e-6
-        solver.start()
-
-        # kill slaves:
-        slaves=list(range(1,siz))
-        for s in slaves:
-            job=Job((0,0),0,0,0); job.killme=True
-            if myk.verb: print("[%d] sending suicide job to %d" % (rank,s))
-            comm.send(job, dest = s)
-
-        from heat.viewer import GUI
-        GUI().open('jalil1_corner')        
-        
-    else:
-        myk.verb=False
-        if myk.verb: print("[%d] démarrage d'un modèle micro" % rank)
-               
-        while True:
-            # attend un gradient et cree un job
-            if myk.verb: print("[%d] waiting for job from 0.." % rank)
-            job = comm.recv(source = 0)  # recoit un job
-            
-            if job.killme:
-                if myk.verb: print("[%d] Aaargl!" % rank)
-                break
-                
-            if myk.verb: print("[%d] job received from 0!" % rank)
-            myk.execute(job)             # execute le job
-            if myk.verb: print("[%d] sending job results to 0.." % rank)
-            comm.send(job, dest = 0)     # envoie le resultat
-            if myk.verb: print("[%d] job results sent to 0.." % rank)
-
-if __name__ == "__main__":
-    main()
-    print("[%d] end." % rank)
-    
diff --git a/heat/broken/jalil2_honey.geo b/heat/broken/jalil2_honey.geo
deleted file mode 100644
index bb336152..00000000
--- a/heat/broken/jalil2_honey.geo
+++ /dev/null
@@ -1,71 +0,0 @@
-// Gmsh project created on Tue Mar 31 15:09:01 2015
-
-L=0.003; // Length of the cell
-l=0.002; // Width of the cell
-e=0.00015; //width of the hexagonal path
-d=0.00075; //Side of the hexagon
-density=0.0002;
-
-
-Point(1) = {0, 0, 0, density};
-Point(2) = {0, L, 0, density};
-Point(3) = {l, L, 0, density};
-Point(4) = {l, 0, 0, density};
-Point(5) = {l/2-e/2, L, 0, density};
-Point(6) = {l/2+e/2, L, 0, density};
-Point(7) = {l/2+e/2, 0, 0, density};
-Point(8) = {l/2-e/2, 0, 0, density};
-Point(9) = {l/2-e/2, d/2, 0, density};
-Point(10) = {l/2+e/2, d/2, 0, density};
-Point(11) = {l/2+e/2, L-d/2, 0, density};
-Point(12) = {l/2-e/2, L-d/2, 0, density};
-Point(13) = {0, L/2-d/2, 0, density};
-Point(14) = {0, L/2+d/2, 0, density};
-Point(15) = {l, L/2+d/2, 0, density};
-Point(16) = {l, L/2-d/2, 0, density};
-Point(17) = {l/2, d/2+e/2, 0, density};
-Point(18) = {l/2, L-d/2-e/2, 0, density};
-Point(19) = {e/2, L/2-d/2+e/2, 0, density};
-Point(20) = {e/2, L/2+d/2-e/2, 0, density};
-Point(21) = {l-e/2, L/2+d/2-e/2, 0, density};
-Point(22) = {l-e/2, L/2-d/2+e/2, 0, density};
-Line(1) = {1, 8};
-Line(2) = {8, 7};
-Line(3) = {7, 4};
-Line(4) = {4, 16};
-Line(5) = {16, 15};
-Line(6) = {15, 3};
-Line(7) = {3, 6};
-Line(8) = {6, 5};
-Line(9) = {5, 2};
-Line(10) = {2, 14};
-Line(11) = {14, 13};
-Line(12) = {13, 1};
-Line(13) = {8, 9};
-Line(14) = {7, 10};
-Line(15) = {10, 16};
-Line(16) = {15, 11};
-Line(17) = {11, 6};
-Line(18) = {12, 5};
-Line(19) = {12, 14};
-Line(20) = {13, 9};
-Line(21) = {17, 22};
-Line(22) = {22, 21};
-Line(23) = {21, 18};
-Line(24) = {18, 20};
-Line(25) = {20, 19};
-Line(26) = {19, 17};
-Line Loop(27) = {2, 14, 15, 5, 16, 17, 8, -18, 19, 11, 20, -13};
-Line Loop(28) = {21, 22, 23, 24, 25, 26};
-Plane Surface(29) = {27, 28};
-Line Loop(30) = {1, 13, -20, 12};
-Plane Surface(31) = {30};
-Line Loop(32) = {3, 4, -15, -14};
-Plane Surface(33) = {32};
-Line Loop(34) = {6, 7, -17, -16};
-Plane Surface(35) = {34};
-Line Loop(36) = {9, 10, -19, 18};
-Plane Surface(37) = {36};
-Plane Surface(38) = {28};
-Physical Surface("Skeleton") = {29};
-Physical Surface("Air") = {38, 37, 35, 31, 33};
diff --git a/heat/broken/jalil2_honey.py b/heat/broken/jalil2_honey.py
deleted file mode 100755
index 8f352db3..00000000
--- a/heat/broken/jalil2_honey.py
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# simple RVE with 2 materials for testing periodic BCs
-
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-
-def main():
-
-    msh = gmsh.MeshLoader("jalil2_honey.geo", __file__).execute()
-
-    pbl = h.Problem(msh)
-
-    solver = h.Solver(pbl)
-    solver.nthreads = 4
-
-    fa = tbox.PwLf()
-    fa.add(0, 80)
-    fa.add(300, 80)
-    fa.add(350, 20)
-    fa.add(450, 10)
-    fa.add(550, 5)
-    fa.add(750, 1)
-    fa.add(1000, 1)
-
-    fs = tbox.PwLf()
-    fs.add(0, 140)
-    fs.add(300, 140)
-    fs.add(350, 180)
-    fs.add(450, 200)
-    fs.add(550, 210)
-    fs.add(750, 220)
-    fs.add(1000, 220)
-
-    fz = tbox.PwLf()
-    fz.add(0,0)
-
-    h.Medium(pbl, "Air", tbox.Fct2PwLf(fa,fa,fz), 1.)
-    h.Medium(pbl, "Skeleton", tbox.Fct2PwLf(fs,fs,fz), 1.)
-
-    TM   = 500.0
-    dTxM = 1.0
-    dTyM = 0.0
-    p= h.Periodic(pbl, TM, dTxM, dTyM)
-
-    solver.start()
-    print("flux=", p.qM)
-    from heat.viewer import GUI
-    GUI().open('jalil2_honey')
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/broken/jalil2_taskpull.py b/heat/broken/jalil2_taskpull.py
deleted file mode 100755
index 8335695e..00000000
--- a/heat/broken/jalil2_taskpull.py
+++ /dev/null
@@ -1,82 +0,0 @@
-
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# test multiscale - version "task pull"
-# exc:
-# mpiexec.openmpi --bycore --bind-to-core -n 6 ./run.py heat/tests/jalil2_taskpull.py
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-import heat.fe2 as fe2
-
-class HoneyComb:
-    def __init__(self):
-        self.msh = gmsh.MeshLoader("jalil2_honey.geo", __file__).execute()
-        self.pbl = h.Problem(self.msh)
-    
-        self.solver = h.Solver(self.pbl)
-        self.solver.nthreads = 1
-        self.solver.save = False
-        self.solver.verbose = 0
-        
-        self.fa=tbox.PwLf()
-        self.fa.add(0, 80)
-        self.fa.add(300, 80)
-        self.fa.add(350, 20)
-        self.fa.add(450, 10)
-        self.fa.add(550, 5)
-        self.fa.add(750, 1)
-        self.fa.add(1000, 1)
-        
-        self.fs=tbox.PwLf()
-        self.fs.add(0, 140)
-        self.fs.add(300, 140)
-        self.fs.add(350, 180)
-        self.fs.add(450, 200)
-        self.fs.add(550, 210)
-        self.fs.add(750, 220)
-        self.fs.add(1000, 220)
-        
-        self.fz = tbox.PwLf()
-        self.fz.add(0,0) 
-           
-        h.Medium(self.pbl, "Air", tbox.Fct2PwLf(self.fa,self.fa,self.fz), 1.)
-        h.Medium(self.pbl, "Skeleton", tbox.Fct2PwLf(self.fs,self.fs,self.fz), 1.) 
-           
-        self.p = h.Periodic(self.pbl, 0.0, 0.0, 0.0) 
-
-
-class Lshape:
-    def __init__(self, law):
-        self.msh = gmsh.MeshLoader("jalil1_corner.geo", __file__).execute()
-        self.pbl = h.Problem(self.msh)
-
-        self.solver = h.Solver(self.pbl)
-        self.solver.nthreads = 1
-
-        h.Medium(self.pbl, "Volume", law)
-        
-        h.Dirichlet(self.pbl,"Top BC", 400.)
-        h.Dirichlet(self.pbl,"Right BC", 600.)
-
-        self.solver.restol = 1e-6
-
-
-
-if __name__ == "__main__":
-
-    micro = HoneyComb()
-
-    if fe2.rank==0:
-        law = fe2.FE2(micro)
-        macro = Lshape(law)
-        master = fe2.Master(macro)
-        master.start()
-    else:
-        worker = fe2.Worker(micro)
-        worker.start()
-
-    
-
-
diff --git a/heat/broken/rve.geo b/heat/broken/rve.geo
deleted file mode 100644
index 2d6ba6b4..00000000
--- a/heat/broken/rve.geo
+++ /dev/null
@@ -1,60 +0,0 @@
-// RVE
-
-Lx = 1.0;
-Ly = Lx;
-
-lc = Lx/20;
-
-ix = Lx/2;
-iy = Ly/2;
-iR = Lx/4;
-
-// -- outer boundary
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-// -- inclusion
-
-Point(11) = { ix-iR,  iy, 0, lc};
-Point(12) = { ix,     iy, 0, lc};
-Point(13) = { ix+iR,  iy, 0, lc};
-
-Circle(10) = {11, 12, 13};
-Circle(11) = {13, 12, 11};
-
-Line Loop(11) = {11, 10};
-
-Plane Surface(11) = {11};
-
-// -- matrix
-
-Plane Surface(1) = {1, 11};
-
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("Matrix") = {1};
-Physical Surface("Inclusion") = {11};
-
-
-
-
-
diff --git a/heat/broken/rve.py b/heat/broken/rve.py
deleted file mode 100755
index c474fddf..00000000
--- a/heat/broken/rve.py
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# simple RVE with 2 materials for testing periodic BCs
-
-import heat as h
-import tbox
-import tbox.gmsh as gmsh
-
-def main():
-
-    msh = gmsh.MeshLoader("rve.geo", __file__).execute()
-
-    pbl = h.Problem(msh)
-
-    solver = h.Solver(pbl)
-    solver.nthreads = 4
-
-    h.Medium(pbl, "Matrix",    tbox.Fct2C(10.,1.,0), 1.0)
-    h.Medium(pbl, "Inclusion", tbox.Fct2C(100.,100.,0), 1.0)
-
-    TM   = 55.0
-    dTxM = 30.0
-    dTyM = 1.0
-    h.Periodic(pbl, TM, dTxM, dTyM)
-
-    solver.start()
-
-    from heat.viewer import GUI
-    GUI().open(pbl.msh.name)
-    
-if __name__ == "__main__":
-    main()
diff --git a/heat/fe2.py b/heat/fe2.py
deleted file mode 100755
index 268d97a0..00000000
--- a/heat/fe2.py
+++ /dev/null
@@ -1,305 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# FE² for "heat" - version "MPI task pull"
-
-import heat as h
-import tbox
-import math
-
-verb = False  # set to True for (a lot of) debug info
-
-try:
-    import mpi4py.MPI as mpi
-    comm = mpi.COMM_WORLD
-    rank = comm.rank
-    siz  = comm.size
-    name = mpi.Get_processor_name()
-    status = mpi.Status()
-    print("info: MPI found")
-except:
-    comm = None
-    rank = 0
-    siz  = 1
-    name = "noname"
-    print("info: MPI not found => MPI disabled")
-
-def barrier():
-    if comm:
-        comm.Barrier()
-
-def enum(*sequential, **named):
-    enums = dict(list(zip(sequential, list(range(len(sequential))))), **named)
-    return type('Enum', (), enums)
-
-tags = enum('READY', 'DONE', 'EXIT', 'START', 'WAKEUP', 'SUICIDE')
-
-
-
-class Job:
-    """ Class containing data transmitted between MPI procs
-    """
-    def __init__(self, id, TM, dTxM, dTyM):
-        # input
-        self.id = id
-        self.TM   = TM
-        self.dTxM = dTxM
-        self.dTyM = dTyM
-        # output
-        self.K11 = 0.0
-        self.K22 = 0.0 # useless (=K11)
-        self.K12 = 0.0
-        self.K21 = 0.0 # useless (=-K12)
-        
-    def execute(self, fem):
-        """
-        [executed by worker processes]
-        solve a given job and calculate "k"
-        """
-        TM   = self.TM
-        dTxM = self.dTxM
-        dTyM = self.dTyM 
-    
-        fem.p.reset(TM, dTxM, dTyM)
-        fem.solver.start(fem.gmshWriter) 
-        
-        # resulting flux qM
-        qMx = fem.p.qM[0]
-        qMy = fem.p.qM[1]     
- 
-        if verb:
-            print("[%d] qMx = %f" % (rank,qMx)) 
-            print("[%d] qMy = %f" % (rank,qMy)) 
-        
-        # convert flux to an anisotropic conductivity "k(2,2)"
-        dTnorm = math.sqrt(dTxM*dTxM+dTyM*dTyM)
-        qnorm  = math.sqrt(qMx*qMx+qMy*qMy)
-        ampl   = qnorm / dTnorm
-        
-        if 1:
-            cos=-(dTxM*qMx+dTyM*qMy)/dTnorm/qnorm
-            sin=-(dTxM*qMy-dTyM*qMx)/dTnorm/qnorm
-        else:
-            ps=-(dTxM*qMx+dTyM*qMy)/dTnorm/qnorm
-            if ps>1.0: ps=1.0
-            if ps<-1.0: ps=-1.0
-            
-            #print ps
-            ang = math.acos(ps)
-            #print "ang=", ang, "ampl=", ampl
-            #print "qMx=", qMx, "ampl*dT=", dTxM*ampl, "res=", qMx-dTxM*ampl
-            cos = math.cos(ang)
-            sin = math.sin(ang)
-            
-        self.K11 = cos*ampl
-        self.K21 = sin*ampl
-        self.K22 = self.K11   # => K22 inutile!
-        self.K12 = -self.K21  # => K12 inutile!
-
-
-class FE2(tbox.Fct2UdU):
-    def __init__(self, femicro):
-        """
-        creation du micro modele
-        """
-        tbox.Fct2UdU.__init__(self)
-
-        self.fem = femicro     # micro model (utile uniqt si 1 thread)  
-        self.jbz = {}          # list of jobs
-        
-        if verb: print("[%d] creation of the micro model" % rank)
-
-    def eval(self, elem, npg, u, gradu, k, fake):  # tjs exécuté par rank#0
-        """
-        [executed by the master process]
-        compute "k" from "u" and "gradu" 
-        at element #elem and gauss point #npg
-        if "fake=True" => create a job to be run later in parallel
-        """
-        if fake: # on cree un job
-            TM   = u
-            dTxM = gradu[0]
-            dTyM = gradu[1]        
-            dTnorm = math.sqrt(dTxM*dTxM+dTyM*dTyM)
-            if dTnorm==0.0:
-                dTxM = 1.0
-                dTyM = 1.0
-                dTnorm=math.sqrt(dTxM*dTxM+dTyM*dTyM)
-                
-            if verb: 
-                print("[m] TM   =",TM)
-                print("[m] dTxM =",dTxM)
-                print("[m] dTyM =",dTyM)
-            
-            job = self.jbz.get((elem.no,npg))
-            if job: # job existe deja, on le modifie
-                job.TM   = TM
-                job.dTxM = dTxM
-                job.dTyM = dTyM            
-            else: # on ajoute ce job
-                self.jbz[(elem.no,npg)] = Job((elem.no,npg), TM, dTxM, dTyM)
-                #print "[m] creating job", (elem.no,npg)
- 
-        else: # on retourne le resultat du job 
-            
-            job = self.jbz.get((elem.no,npg))
-            if not job:
-                print("[m] job", (elem.no,npg), "not found!")
-            k.resize(2, 2)
-            k[0,0] = job.K11
-            k[1,1] = job.K22 
-            k[1,0] = job.K21
-            k[0,1] = job.K12
-
-    def evalall(self):   # tjs exécuté par rank#0
-    
-        import sys
-        sys.stdout.flush()
-        
-        if verb: print("[0] looping on %d jobs" % len(self.jbz))
-        
-        # version 1 proc (master works alone)
-        if siz==1:
-            #for job in self.jbz.itervalues():
-            for id,job in self.jbz.items():
-                job.execute(self.fem) 
-            return
-
-        # version N procs
-        it=self.jbz.__iter__()
-        njobs=len(self.jbz)
-        slaves=list(range(1,siz))
-        
-        for s in slaves:
-            if verb: print("[0] sending wake-up signal to worker", s)
-            comm.send(None, dest=s, tag=tags.WAKEUP)
-        
-        num_workers = siz-1
-        closed_workers = 0
-        while closed_workers<num_workers:
-            # get a msg from any source
-            data = comm.recv(source=mpi.ANY_SOURCE, 
-                             tag=mpi.ANY_TAG, status=status)
-            source = status.Get_source()
-            tag = status.Get_tag()
-            if tag == tags.READY:
-                if verb: print("[0] worker %d is ready" % source)
-                # worker is ready - send a new task
-                job = None
-                try:
-                    jobk = next(it) # get next job
-                    job = self.jbz[jobk]
-                except:
-                    pass
-                if job:
-                    if verb: print("[0] sending job to %d" % source)
-                    comm.send(job, dest=source, tag=tags.START)
-                else:
-                    if verb: print("[0] job list is empty! sending EXIT to %d" % source)
-                    comm.send(None, dest=source, tag=tags.EXIT)
-                    # other workers are still calculating...
-                    # master should wait for them
-            elif tag==tags.DONE:
-                if verb: print("[0] worker %d gives me its results" % source)
-                # worker has done its job - get the results
-                job = self.jbz[data.id]
-                job.K11=data.K11
-                job.K22=data.K22
-                job.K12=data.K12
-                job.K21=data.K21
-            elif tag==tags.EXIT:
-                closed_workers+=1
-                if verb: print("[0] worker %d exited (%d worker(s) still running)" % (source, num_workers-closed_workers))
-                
-        if verb: print("[0] done.")
-        
-class Master:
-    """
-    MPI Process with rank #0
-    """
-    def __init__(self, macro):
-        self.macro = macro
-
-    def start(self):
-        """
-        master loop
-        """
-        global rank
-        if rank!=0: 
-            raise Exception("this routine should be called with MPI rank=0")
-        if verb: print("[%d] starting master" % rank)
-        self.macro.solver.start(self.macro.gmshWriter)
-
-        self.killslaves()
-        
-        # show results if requested
-        from fwk.wutils import parseargs
-        args = parseargs()
-        if not args.nogui:
-            print("\n<CLOSE gmsh to quit!>")    
-            from heat.viewer import GUI
-            GUI().open(self.macro.msh.name)
-        
-    def killslaves(self):
-        slaves=list(range(1,siz))
-        for s in slaves:
-            if verb: print("[%d] sending suicide job to %d" % (rank,s))
-            comm.send(None, dest=s, tag=tags.SUICIDE)
-
-
-class Worker:
-    """
-    MPI Process with rank #1-#n
-    """
-    def __init__(self, micro):
-        self.micro = micro
-        
-    def start(self):
-        """
-        worker loop
-        """
-        global rank
-        if rank==0: 
-            raise Exception("this routine should be called with MPI rank!=0")
-        
-        if verb: print("[%d] starting worker" % rank)
-        while True:
-            comm.recv(source=0, tag=mpi.ANY_TAG, status=status)
-            tag = status.Get_tag()
-            if tag==tags.WAKEUP:
-                if verb: print("[%d] waking up" % rank)
-                while True:
-                    comm.send(None, dest=0, tag=tags.READY)
-                    job = comm.recv(source=0, tag=mpi.ANY_TAG, status=status)
-                    tag = status.Get_tag()
-                    if tag==tags.START:
-                        if verb: print("[%d] starting job" % rank)
-                        job.execute(self.micro)
-                        if verb: print("[%d] sending job results" % rank)
-                        comm.send(job, dest=0, tag=tags.DONE)
-                    elif tag==tags.EXIT:
-                        if verb: print("[%d] sending exit confirmation" % rank)
-                        comm.send(None, dest=0, tag=tags.EXIT)
-                        break
-            elif tag==tags.SUICIDE:
-                if verb: print("[%d] I'm dying..." % rank)
-                if rank==2:
-                    print(self.micro.solver.tms)
-                break
-
-   
diff --git a/heat/matlab/rotK.m b/heat/matlab/rotK.m
deleted file mode 100644
index 0f952d70..00000000
--- a/heat/matlab/rotK.m
+++ /dev/null
@@ -1,26 +0,0 @@
-
-self_theta = 20;
-self_kx=1;
-self_ky=100;
-u=0;
-
-t = (self_theta) * pi/180.0
-u1 = 0. ; t1=-t;
-u2 = 10. ; t2 = t;
-
-t = t1+(t2-t1)/(u2-u1)*(u-u1);
-
-kx = self_kx;
-ky = self_ky;
-
-co = cos(t);
-si = sin(t);
-
-R = [[co, -si],
-              [si, co]];
-Kt = [[kx, 0.0],
-                [0.0, ky]];
-Tmp = R*Kt;
-Kxy = Tmp*R';
-
-Kxy
diff --git a/heat/models/__init__.py b/heat/models/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/heat/models/honeycomb.geo b/heat/models/honeycomb.geo
deleted file mode 100644
index ba4ec75f..00000000
--- a/heat/models/honeycomb.geo
+++ /dev/null
@@ -1,93 +0,0 @@
-// honeycomb structure
-
-DefineConstant[ l = { 10.0, Min 1, Max 20, Step 1, Name "Lengths/hex edge length" }  ];
-DefineConstant[ k = {  1.0, Min 1, Max  2, Step 1, Name "Lengths/bound. thickness" }  ];
-DefineConstant[ lc = {  1./3, Min 1e-5, Max  1, Step 1e-5, Name "Mesh/density" }  ];
-
-
-alp=30*Pi/180;
-
-Point(1) = {0, 0, 0, lc};
-Point(2) = {l*Cos(alp), l*Sin(alp), 0, lc};
-Point(3) = {l*Cos(alp), l*Sin(alp)+l, 0, lc};
-Point(4) = {0, 2*l*Sin(alp)+l, 0, lc};
-Point(5) = {-l*Cos(alp), l*Sin(alp), 0, lc};
-Point(6) = {-l*Cos(alp), l*Sin(alp)+l, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 6};
-Line(5) = {6, 5};
-Line(6) = {5, 1};
-
-Point(7) = {-k*Sin(alp), -k*Cos(alp), 0, lc};
-Point(8) = {+k*Sin(alp), -k*Cos(alp), 0, lc};
-Point(9) = {-k*Sin(alp)-l*Cos(alp), -k*Cos(alp)+l*Sin(alp), 0, lc};
-Point(10) = {+k*Sin(alp)+l*Cos(alp), -k*Cos(alp)+l*Sin(alp), 0, lc};
-Point(11) = {-k*Sin(alp), -k*Cos(alp)-l/2, 0, lc};
-Point(12) = {+k*Sin(alp), -k*Cos(alp)-l/2, 0, lc};
-Point(13) = {-k*Sin(alp)-l*Cos(alp), -k*Cos(alp)-l/2, 0, lc};
-Point(14) = {+k*Sin(alp)+l*Cos(alp), -k*Cos(alp)-l/2, 0, lc};
-
-
-Point(15) = {-k*Sin(alp), 2*l*Sin(alp)+l+k*Cos(alp), 0, lc};
-Point(16) = {+k*Sin(alp), 2*l*Sin(alp)+l+k*Cos(alp), 0, lc};
-Point(17) = {-k*Sin(alp)-l*Cos(alp), 2*l*Sin(alp)+l+k*Cos(alp)-l*Sin(alp), 0, lc};
-Point(18) = {+k*Sin(alp)+l*Cos(alp), 2*l*Sin(alp)+l+k*Cos(alp)-l*Sin(alp), 0, lc};
-Point(19) = {-k*Sin(alp), 2*l*Sin(alp)+l+k*Cos(alp)+l/2, 0, lc};
-Point(20) = {+k*Sin(alp), 2*l*Sin(alp)+l+k*Cos(alp)+l/2, 0, lc};
-Point(21) = {-k*Sin(alp)-l*Cos(alp), 2*l*Sin(alp)+l+k*Cos(alp)+l/2, 0, lc};
-Point(22) = {+k*Sin(alp)+l*Cos(alp), 2*l*Sin(alp)+l+k*Cos(alp)+l/2, 0, lc};
-
-
-Line(7) = {13, 11};
-Line(8) = {11, 12};
-Line(9) = {12, 14};
-Line(10) = {14, 10};
-Line(11) = {10, 18};
-Line(12) = {18, 22};
-Line(13) = {22, 20};
-Line(14) = {20, 19};
-Line(15) = {19, 21};
-Line(16) = {21, 17};
-Line(17) = {17, 9};
-Line(18) = {9, 13};
-Line(19) = {11, 7};
-Line(20) = {7, 9};
-Line(21) = {8, 12};
-Line(22) = {8, 10};
-Line(23) = {18, 16};
-Line(24) = {16, 20};
-Line(25) = {19, 15};
-Line(26) = {15, 17};
-
-
-Line Loop(27) = {4, 5, 6, 1, 2, 3};
-Plane Surface(28) = {27};
-Line Loop(29) = {20, 18, 7, 19};
-Plane Surface(30) = {29};
-Line Loop(31) = {-22, +10, +9, +21};
-Plane Surface(32) = {31};
-Line Loop(33) = {-23, -24, +13, +12};
-Plane Surface(34) = {33};
-Line Loop(35) = {-26, +16, +15, -25};
-Plane Surface(36) = {35};
-
-Line Loop(37) = {-26, -17, +20, +19, -8, +21, -22, -11, -23, -24, -14, -25};
-Plane Surface(38) = {27, 37};
-
-Physical Line("Left") = {16, 17, 18};
-Physical Line("Right") = {10, 11, 12};
-Physical Line("Bottom") = {7, 8, 9};
-Physical Line("Top") = {15, 14, 13};
-
-Physical Surface("Hexagon") = {28, 32, 30, 36, 34};
-Physical Surface("Borders") = {38};
-
-
-
-Physical Point("P1") = {13};
-
-
-
diff --git a/heat/models/rect.geo b/heat/models/rect.geo
deleted file mode 100644
index 03c11edf..00000000
--- a/heat/models/rect.geo
+++ /dev/null
@@ -1,33 +0,0 @@
-// rectangle (unstructured triangles)
-
-DefineConstant[ Lx = {  10, Min 1, Max 20, Step 1, Name "Lengths/Lx" }  ];
-DefineConstant[ Ly = {  10, Min 1, Max 20, Step 1, Name "Lengths/Ly" }  ];
-
-DefineConstant[ lc = { 1.2, Min 0.1, Max 20, Step 1, Name "Mesh/lc" }  ];
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-Plane Surface(1) = {1};
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("S1") = {1};
-
diff --git a/heat/models/rect.py b/heat/models/rect.py
deleted file mode 100755
index a7233327..00000000
--- a/heat/models/rect.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# simple test on a square using 'heat'
-
-import heat as h
-import heat.utils
-import tbox
-import tbox.gmsh as gmsh
-
-def main(**d):
-    
-    # default params
-    p={}
-    p['Lx'] = 10.
-    p['Ly'] = 10.
-    p['Nx'] = 10    # structured mesh params
-    p['Ny'] = 10
-    p['lc'] = 0.5   # unstructured mesh params
-    p['stru'] = False 
-    p['src'] = False 
-    p['bc'] = 'dirichletx'
-    p.update(d)    
-
-    # configure/build mesh
-    if p['stru']:
-        pars={ 'Lx' : p['Lx'] , 'Ly' : p['Ly'], 'Nx' : p['Nx'], 'Ny' : p['Ny']}
-        msh = gmsh.MeshLoader("rect_stru.geo",__file__).execute(**pars)    
-    else:
-        pars={ 'Lx' : p['Lx'] , 'Ly' : p['Ly'], 'lc' : p['lc']}
-        msh = gmsh.MeshLoader("rect.geo",__file__).execute(**pars)
-    # define mesh writer
-    gmshWriter = tbox.GmshExport(msh)
-
-    pbl = h.Problem(msh)
-
-    # medium/boundary conditions
-    pbl.add(h.Medium(msh, "S1", tbox.Fct2C(1e-5,1e-5, 0)))
-    
-    if p['bc']=='dirichletx':
-        pbl.add(h.Dirichlet(msh,"Left",  3.))
-        pbl.add(h.Dirichlet(msh,"Right", 5.))
-    elif p['bc']=='dirichlety':
-        pbl.add(h.Dirichlet(msh,"Bottom", 3.))
-        pbl.add(h.Dirichlet(msh,"Top",    5.))
-
-    if p['src']:    
-        pbl.add(h.Source(msh, "S1", tbox.Fct0C(1e-6)))
-
-    # solve problem
-    solver = heat.utils.solve(pbl, gmshWriter)  
-    return solver
-
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/models/rect_stru.geo b/heat/models/rect_stru.geo
deleted file mode 100644
index ba5dd5b3..00000000
--- a/heat/models/rect_stru.geo
+++ /dev/null
@@ -1,44 +0,0 @@
-// rectangle (unstructured triangles)
-
-DefineConstant[ Lx = { 10, Min 1, Max 20, Step 1, Name "Lengths/Lx" }  ];
-DefineConstant[ Ly = { 10, Min 1, Max 20, Step 1, Name "Lengths/Ly" }  ];
-
-DefineConstant[ Nx = { 10, Min 1, Max 20, Step 1, Name "Mesh/Nx" }  ];
-DefineConstant[ Ny = { 10, Min 1, Max 20, Step 1, Name "Mesh/Ny" }  ];
-
-lc=Lx/Nx;
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-Plane Surface(1) = {1};
-
-
-// regular mesh
-Transfinite Line {1, 3} = Nx+1 Using Progression 1;
-Transfinite Line {4, 2} = Ny+1 Using Progression 1;
-Transfinite Surface {1};
-//Recombine Surface {1}; // for quads
-
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("S1") = {1};
-
diff --git a/heat/src/CMakeLists.txt b/heat/src/CMakeLists.txt
deleted file mode 100644
index 84c672b3..00000000
--- a/heat/src/CMakeLists.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# CMake input file of heat.so
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.hpp)
-
-ADD_LIBRARY(heat SHARED ${SRCS})
-MACRO_DebugPostfix(heat)
-TARGET_INCLUDE_DIRECTORIES(heat PUBLIC ${PROJECT_SOURCE_DIR}/heat/src)
-
-TARGET_LINK_LIBRARIES(heat tbox)
-
-INSTALL(TARGETS heat DESTINATION ${CMAKE_INSTALL_PREFIX})
-
-SOURCE_GROUP(base REGULAR_EXPRESSION ".*\\.(cpp|inl|hpp|h)")
diff --git a/heat/src/heat.h b/heat/src/heat.h
deleted file mode 100644
index ef7f4617..00000000
--- a/heat/src/heat.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// global header of the "heat" module
-
-#ifndef HEAT_H
-#define HEAT_H
-
-#if defined(WIN32)
-#ifdef heat_EXPORTS
-#define HEAT_API __declspec(dllexport)
-#else
-#define HEAT_API __declspec(dllimport)
-#endif
-#else
-#define HEAT_API
-#endif
-
-#include "tbox.h"
-
-/**
- * @brief this namespace avoids conflicts with similar names in 'waves'
- */
-
-namespace heat
-{
-class Problem;
-class Medium;
-class Dirichlet;
-class Solver;
-class Periodic;
-class Boundary;
-class Source;
-class Extractor;
-
-class NodePair;
-
-class HeatTerm;
-
-// not used yet
-class DisplayHook;
-}; // namespace heat
-
-#endif //HEAT_H
diff --git a/heat/src/wBoundary.cpp b/heat/src/wBoundary.cpp
deleted file mode 100644
index 2ec22218..00000000
--- a/heat/src/wBoundary.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wBoundary.h"
-#include "wProblem.h"
-#include "wTag.h"
-using namespace heat;
-
-Boundary::Boundary(std::shared_ptr<MshData> _msh, int no, std::shared_ptr<Fct0> _f) : Group(_msh, no), f(_f)
-{
-    //pbl.bnds.push_back(this);
-}
-
-Boundary::Boundary(std::shared_ptr<MshData> _msh, std::string const &name, std::shared_ptr<Fct0> _f) : Group(_msh, name), f(_f)
-{
-    //pbl.bnds.push_back(this);
-}
-
-void Boundary::write(std::ostream &out) const
-{
-    out << "Boundary on " << *tag;
-}
diff --git a/heat/src/wBoundary.h b/heat/src/wBoundary.h
deleted file mode 100644
index 3c0b8679..00000000
--- a/heat/src/wBoundary.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WBOUNDARY_H
-#define WBOUNDARY_H
-
-#include "heat.h"
-#include "wGroup.h"
-#include "wFct0.h"
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief boundaries which requires a special treatment (such as prescribed fluxes)
- */
-
-class HEAT_API Boundary : public Group
-{
-public:
-#ifndef SWIG
-    std::shared_ptr<Fct0> f;
-#endif
-    Boundary(std::shared_ptr<MshData> _msh, int no, std::shared_ptr<Fct0> _f);
-    Boundary(std::shared_ptr<MshData> _msh, std::string const &name, std::shared_ptr<Fct0> _f);
-    virtual ~Boundary() { std::cout << "~Boundary()\n"; }
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-
-} // namespace heat
-
-#endif //WBOUNDARY_H
diff --git a/heat/src/wCompiledFct.cpp b/heat/src/wCompiledFct.cpp
deleted file mode 100644
index 91310881..00000000
--- a/heat/src/wCompiledFct.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wCompiledFct.h"
-using namespace heat;
diff --git a/heat/src/wCompiledFct.h b/heat/src/wCompiledFct.h
deleted file mode 100644
index f8d13926..00000000
--- a/heat/src/wCompiledFct.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WCOMPILEDFCT_H
-#define WCOMPILEDFCT_H
-
-#include "heat.h"
-#include "wFct0.h"
-#include "wFct1.h"
-#include "wFct2.h"
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief cfr heat_vark.py (version scalaire)
- */
-
-class HEAT_API CompiledFct1a : public Fct0XYZ
-{
-    double k1, k2;
-
-public:
-    CompiledFct1a(double _k1, double _k2) : k1(_k1), k2(_k2) {}
-
-    virtual double eval(Eigen::Vector3d const &pos) const override
-    {
-        double x = pos(0);
-        double y = pos(1);
-        double L = 1;
-        return (k1 + k2) / 2 + fabs(k2 - k1) / 2 * sin(2 * M_PI / L * 4 * (x + y / 2));
-    }
-};
-
-/**
- * @brief cfr heat_vark.py (version matricielle)
- */
-
-class HEAT_API CompiledFct1b : public Fct2XYZ
-{
-    double k1, k2;
-
-public:
-    CompiledFct1b(double _k1, double _k2) : k1(_k1), k2(_k2) {}
-
-    virtual void eval(Eigen::Vector3d const &pos, Eigen::MatrixXd &out, bool fake) const override
-    {
-        double x = pos(0);
-        double y = pos(1);
-        double L = 1;
-        out.resize(2, 2);
-        out(1, 1) = out(0, 0) = (k1 + k2) / 2 + fabs(k2 - k1) / 2 * sin(2 * M_PI / L * 4 * (x + y / 2));
-        out(0, 1) = out(1, 0) = 0.0;
-    }
-};
-
-/**
- * @brief cfr heat_nl.py (version scalaire)
- */
-class HEAT_API CompiledFct2a : public Fct0U
-{
-public:
-    CompiledFct2a() {}
-
-    virtual double eval(double u) const override
-    {
-        return 10 + u * u;
-    }
-};
-
-/**
- * @brief cfr heat_nl.py (version matricielle)
- */
-class HEAT_API CompiledFct2b : public Fct2U
-{
-public:
-    CompiledFct2b() {}
-
-    virtual void eval(double u, Eigen::MatrixXd &out, bool fake) const override
-    {
-        out.resize(2, 2);
-        out(0, 0) = out(1, 1) = 10 + u * u;
-        out(0, 1) = out(1, 0) = u * u;
-    }
-};
-
-}; // namespace heat
-
-#endif //WCOMPILEDFCT_H
diff --git a/heat/src/wDirichlet.cpp b/heat/src/wDirichlet.cpp
deleted file mode 100644
index 932ee6f1..00000000
--- a/heat/src/wDirichlet.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wDirichlet.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <algorithm>
-using namespace heat;
-
-Dirichlet::Dirichlet(std::shared_ptr<MshData> _msh, int no, double _val) : Group(_msh, no), val(_val)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-    std::sort(nodes.begin(), nodes.end());
-    auto it = std::unique(nodes.begin(), nodes.end());
-    nodes.resize(std::distance(nodes.begin(), it));
-
-    //pbl.dBCs.push_back(this);
-}
-
-Dirichlet::Dirichlet(std::shared_ptr<MshData> _msh, std::string const &name, double _val) : Group(_msh, name), val(_val)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-    std::sort(nodes.begin(), nodes.end());
-    auto it = std::unique(nodes.begin(), nodes.end());
-    nodes.resize(std::distance(nodes.begin(), it));
-
-    //pbl.dBCs.push_back(this);
-}
-
-/**
- *  @brief default implementation (prescribes "val" to all nodes)
- */
-
-void Dirichlet::apply(std::vector<double> &rhs)
-{
-    for (auto n : nodes)
-        rhs[n->row] = val;
-}
-
-void Dirichlet::write(std::ostream &out) const
-{
-    out << "heat::Dirichlet on " << *tag << " (val=" << val << ")\n";
-    for (auto n : nodes)
-    {
-        out << '\t' << *n << '\n';
-    }
-}
diff --git a/heat/src/wDirichlet.h b/heat/src/wDirichlet.h
deleted file mode 100644
index 6ebf97ba..00000000
--- a/heat/src/wDirichlet.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WDIRICHLET_H
-#define WDIRICHLET_H
-
-#include "heat.h"
-#include "wGroup.h"
-#include <vector>
-#include <string>
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief manage Dirichlet BC
- *
- * @todo gerer Dirichlet comme Boundary (avec une Fct en argument au lieu d'un scalaire)
- */
-
-class HEAT_API Dirichlet : public Group
-{
-public:
-    std::vector<Node *> nodes;
-    double val; ///< value for a constant BC
-
-    Dirichlet(std::shared_ptr<MshData> _msh, int no, double _val = 0.0);
-    Dirichlet(std::shared_ptr<MshData> _msh, std::string const &name, double _val = 0.0);
-    virtual ~Dirichlet() { std::cout << "~Dirichlet()\n"; }
-
-    virtual void apply(std::vector<double> &rhs);
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-
-} // namespace heat
-
-#endif //WDIRICHLET_H
diff --git a/heat/src/wDisplayHook.cpp b/heat/src/wDisplayHook.cpp
deleted file mode 100644
index 33264943..00000000
--- a/heat/src/wDisplayHook.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wDisplayHook.h"
-using namespace heat;
-
-DisplayHook::DisplayHook()
-{
-}
-
-void DisplayHook::display(int nt, double t, std::vector<double> &u)
-{
-    std::cout << "DisplayHook::display()\n";
-}
-
-void DisplayHook::refresh()
-{
-    std::cout << "DisplayHook::refresh()\n";
-}
diff --git a/heat/src/wDisplayHook.h b/heat/src/wDisplayHook.h
deleted file mode 100644
index 58dcbaf4..00000000
--- a/heat/src/wDisplayHook.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WDISPLAYHOOK_H
-#define WDISPLAYHOOK_H
-
-#include "heat.h"
-#include "wObject.h"
-#include <vector>
-
-namespace heat
-{
-
-/**
- * @brief quad element
- */
-
-class HEAT_API DisplayHook : public fwk::wObject
-{
-public:
-    DisplayHook();
-    virtual void display(int nt, double t, std::vector<double> &u);
-    virtual void refresh();
-};
-
-} // namespace heat
-
-#endif //WDISPLAYHOOK_H
diff --git a/heat/src/wExtractor.cpp b/heat/src/wExtractor.cpp
deleted file mode 100644
index f62392d7..00000000
--- a/heat/src/wExtractor.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wExtractor.h"
-#include "wGroup.h"
-#include "wSolver.h"
-#include "wTag.h"
-#include "wNode.h"
-
-using namespace heat;
-
-void Extractor::write(std::ostream &out) const
-{
-    out << "Extractor on " << grp;
-}
-
-Extractor::Extractor(Solver &_solver, Group &_grp) : solver(_solver), grp(_grp)
-{
-    // create a node list
-    for (auto e : grp.tag->elems) /// cfr Dirichlet
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-    std::sort(nodes.begin(), nodes.end());
-    auto it = std::unique(nodes.begin(), nodes.end());
-    nodes.resize(std::distance(nodes.begin(), it));
-}
-
-std::vector<double>
-Extractor::execute()
-{
-    std::vector<double> &vec = solver.T1; // vector of temperatures
-
-    std::vector<double> ret;
-    for (auto n : nodes)
-        ret.push_back(vec[n->row]);
-
-    return ret;
-}
diff --git a/heat/src/wExtractor.h b/heat/src/wExtractor.h
deleted file mode 100644
index fb79c377..00000000
--- a/heat/src/wExtractor.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WEXTRACTOR_H
-#define WEXTRACTOR_H
-
-#include "heat.h"
-#include "wExtract.h"
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief an object able to extract scalar results from the model
- */
-
-class HEAT_API Extractor : public fwk::Extract
-{
-    Solver &solver;
-    Group &grp;
-
-public:
-    Extractor(Solver &_solver, Group &_grp);
-    virtual ~Extractor() { std::cout << "~Extractor()\n"; }
-    virtual std::vector<double> execute() override;
-    std::vector<Node *> nodes; ///< faire une classe intermediaire group/dirichlet (nodegroup)
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-
-} // namespace heat
-
-#endif //WEXTRACTOR_H
diff --git a/heat/src/wHeatTerm.cpp b/heat/src/wHeatTerm.cpp
deleted file mode 100644
index 8cecc32c..00000000
--- a/heat/src/wHeatTerm.cpp
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wHeatTerm.h"
-
-#include "wElement.h"
-#include "wCache.h"
-#include "wGauss.h"
-#include "wFct0.h"
-#include "wFct2.h"
-
-using namespace heat;
-using namespace tbox;
-
-/**
- * @brief Build volume terms for the heat equation on one element
- */
-Eigen::MatrixXd HeatTerm::build(Element const &e, std::vector<double> const &u, Fct2 const &f, bool fake)
-{
-    // Get precomputed values
-    Cache &cache = e.getVCache();
-    Gauss &gauss = cache.getVGauss();
-
-    Eigen::MatrixXd K = Eigen::MatrixXd::Zero(e.nodes.size(), e.nodes.size());
-    if (fake) // fake run - fill MPI job list
-    {
-        for (size_t k = 0; k < gauss.getN(); ++k)
-        {
-            Eigen::MatrixXd fk;
-            f.eval(e, u, k, fk, fake);
-        }
-    }
-    else // true run - use MPI cached results
-    {
-        // Gauss integration
-        for (size_t k = 0; k < gauss.getN(); ++k)
-        {
-            // Jacobian inverse, shape functions and function evaluation
-            Eigen::MatrixXd const &J = e.getJinv(k);
-            Eigen::MatrixXd const &dff = cache.getDsf(k);
-            Eigen::MatrixXd fk;
-            f.eval(e, u, k, fk, fake);
-
-            // Elementary stiffness matrix
-            K += (fk * J * dff).transpose() * J * dff * gauss.getW(k) * e.getDetJ(k);
-        }
-    }
-    return K;
-}
-
-/**
- * @brief Build surface/volume flux on one element
- */
-Eigen::VectorXd HeatTerm::build(Element const &e, std::vector<double> const &u, Fct0 const &f)
-{
-    // Get precomputed values
-    Cache &cache = e.getVCache();
-    Gauss &gauss = cache.getVGauss();
-
-    // Gauss integration
-    Eigen::VectorXd s = Eigen::VectorXd::Zero(e.nodes.size());
-    for (size_t k = 0; k < gauss.getN(); ++k)
-        s += cache.getSf(k) * f.eval(e, u, k) * gauss.getW(k) * e.getDetJ(k);
-    return s;
-}
-
-/**
- * @brief Build volume flux of the heat equation on one element
- * @todo not used
- */
-Eigen::VectorXd HeatTerm::build2(Element const &e, std::vector<double> const &u, Fct2 const &f)
-{
-    // Get precomputed values
-    Cache &cache = e.getVCache();
-    Gauss &gauss = cache.getVGauss();
-
-    // Gauss integration
-    Eigen::VectorXd qV = Eigen::VectorXd::Zero(e.nodes.size());
-    for (size_t k = 0; k < gauss.getN(); ++k)
-    {
-        // Shape functions, gradient and flux evaluation
-        Eigen::MatrixXd const &dff = cache.getDsf(k);
-        Eigen::MatrixXd fk(2, 2);
-        f.eval(e, u, k, fk, false);
-
-        // Elementary flux vector
-        qV += (fk * e.computeGradient(u, k)).transpose() * e.getJinv(k) * dff * gauss.getW(k) * e.getDetJ(k);
-    }
-    return qV;
-}
-
-/**
- * @brief Compute (integrate) volume flux
- */
-Eigen::VectorXd HeatTerm::computeFlux(Element const &e, std::vector<double> const &u, Fct2 const &f)
-{
-    // Get precomputed values
-    Cache &cache = e.getVCache();
-    Gauss &gauss = cache.getVGauss();
-
-    // Gauss integration
-    Eigen::VectorXd qV = Eigen::Vector2d::Zero(); // 2 dimensions
-    for (size_t k = 0; k < gauss.getN(); ++k)
-    {
-        // Gradient and matrix function evaluation
-        Eigen::VectorXd gradk = e.computeGradient(u, k);
-        Eigen::MatrixXd fk(2, 2);
-        f.eval(e, u, k, fk, false);
-
-        qV -= fk * gradk * gauss.getW(k) * e.getDetJ(k);
-    }
-    return qV;
-}
-
-/**
- * @brief Compute (integrate) matrix
- */
-Eigen::MatrixXd HeatTerm::computeMatrix(Element const &e, std::vector<double> const &u, Fct2 const &f)
-{
-    // Get precomputed values
-    Cache &cache = e.getVCache();
-    Gauss &gauss = cache.getVGauss();
-
-    // Gauss integration
-    Eigen::MatrixXd out = Eigen::Matrix2d::Zero(); // 2 dimensions, should match fk size
-    for (size_t k = 0; k < gauss.getN(); ++k)
-    {
-        // Function evaluation
-        Eigen::MatrixXd fk;
-        f.eval(e, u, k, fk, false);
-
-        out += fk * gauss.getW(k) * e.getDetJ(k);
-    }
-    return out;
-}
diff --git a/heat/src/wHeatTerm.h b/heat/src/wHeatTerm.h
deleted file mode 100644
index 12f9bc51..00000000
--- a/heat/src/wHeatTerm.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WHEATTERM_H
-#define WHEATTERM_H
-
-#include "heat.h"
-
-#include <vector>
-#include <Eigen/Dense>
-
-namespace heat
-{
-
-/**
- * @brief Formulation of heat terms
- */
-class HEAT_API HeatTerm
-{
-public:
-    // Volume
-    static Eigen::MatrixXd build(tbox::Element const &e, std::vector<double> const &u, tbox::Fct2 const &f, bool fake);
-    static Eigen::VectorXd build2(tbox::Element const &e, std::vector<double> const &u, tbox::Fct2 const &f);
-    // Boundary and Source
-    static Eigen::VectorXd build(tbox::Element const &e, std::vector<double> const &u, tbox::Fct0 const &f);
-    // Functionals
-    static Eigen::VectorXd computeFlux(tbox::Element const &e, std::vector<double> const &u, tbox::Fct2 const &f);
-    static Eigen::MatrixXd computeMatrix(tbox::Element const &e, std::vector<double> const &u, tbox::Fct2 const &f);
-};
-
-} // namespace heat
-#endif //WHEATTERM_H
diff --git a/heat/src/wMedium.cpp b/heat/src/wMedium.cpp
deleted file mode 100644
index ad307a6d..00000000
--- a/heat/src/wMedium.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wMedium.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wFct2.h"
-using namespace heat;
-
-Medium::Medium(std::shared_ptr<MshData> _msh, int no,
-               std::shared_ptr<Fct2> _k, double _rhoc) : Group(_msh, no),
-                                                         k(_k), rhoc(_rhoc)
-{
-    //pbl.media.push_back(this);
-}
-
-Medium::Medium(std::shared_ptr<MshData> _msh, std::string const &name,
-               std::shared_ptr<Fct2> _k, double _rhoc) : Group(_msh, name),
-                                                         k(_k), rhoc(_rhoc)
-{
-    std::cout << "tag=" << *tag << std::endl;
-    //pbl.media.push_back(this);
-}
-
-void Medium::write(std::ostream &out) const
-{
-    out << "Medium on " << *tag << " with k=" << this->k << " rhoc=" << this->rhoc;
-}
diff --git a/heat/src/wMedium.h b/heat/src/wMedium.h
deleted file mode 100644
index 5ba9b425..00000000
--- a/heat/src/wMedium.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WMEDIUM_H
-#define WMEDIUM_H
-
-#include "heat.h"
-#include "wGroup.h"
-#include "wFct0.h"
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief a thermal medium (with k, rhoc)
- */
-
-class HEAT_API Medium : public Group
-{
-public:
-#ifndef SWIG
-    std::shared_ptr<Fct2> k;
-    double rhoc;
-#endif
-    Medium(std::shared_ptr<MshData> _msh, int no, std::shared_ptr<Fct2> _k, double _rhoc = 1.0);
-    Medium(std::shared_ptr<MshData> _msh, std::string const &name, std::shared_ptr<Fct2> _k, double _rhoc = 1.0);
-    virtual ~Medium() { std::cout << "~Medium()\n"; }
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-
-} // namespace heat
-
-#endif //WMEDIUM_H
diff --git a/heat/src/wPeriodic.cpp b/heat/src/wPeriodic.cpp
deleted file mode 100644
index 56930814..00000000
--- a/heat/src/wPeriodic.cpp
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wPeriodic.h"
-#include "wProblem.h"
-#include "wMedium.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <list>
-#include <algorithm>
-using namespace heat;
-
-HEAT_API std::ostream &
-operator<<(std::ostream &out, NodePair const &obj)
-{
-    out << "node #" << obj.n->no << " <=> node #" << obj.d->no;
-    return out;
-}
-
-NodePair::NodePair(Node *_n, Node *_d, double tol) : n(_n), d(_d)
-{
-    Eigen::Vector3d l = d->pos - n->pos;
-    if (fabs(l(0)) > tol && fabs(l(1)) > tol)
-    {
-        std::stringstream s;
-        s << " node #" << n->no << " and node #" << d->no << " are not facing each other!\n";
-        throw std::runtime_error(s.str());
-    }
-}
-
-Periodic::Periodic(std::shared_ptr<heat::Problem> _pbl,
-                   double _TM, double _dTxM, double _dTyM) : wSharedObject(), pbl(_pbl)
-{
-    //pbl->pdic = this;
-    reset(_TM, _dTxM, _dTyM);
-    verbose = false;
-}
-
-void Periodic::reset(double _TM, double _dTxM, double _dTyM)
-{
-    TM = _TM;
-    dTxM = _dTxM;
-    dTyM = _dTyM;
-    qM = Eigen::Vector3d::Zero();
-}
-
-void Periodic::write(std::ostream &out) const
-{
-    out << "heat::Periodic\n";
-    out << "\tT_M     = " << TM << '\n';
-    out << "\tgradT_M = (" << dTxM << ", " << dTyM << ")\n";
-}
-
-void Periodic::init()
-{
-    if (!LR.empty())
-        return;
-
-    //std::cout << "Periodic::init()\n";
-
-    // build a list of nodes related to all the media
-    if (verbose)
-    {
-        std::cout << "extracting nodes from " << pbl->media.size()
-                  << " medi" << ((pbl->media.size() == 1) ? "um" : "a") << "...\n";
-    }
-    std::list<Node *> nlist;
-    for (auto mat : pbl->media)
-        for (auto e : mat->tag->elems)
-            for (auto n : e->nodes)
-                nlist.push_back(n);
-    nlist.sort();
-    nlist.unique();
-    if (verbose)
-        std::cout << "number of nodes:" << nlist.size() << '\n';
-    if (nlist.empty())
-        throw std::runtime_error("Periodic::init() - no mesh!");
-
-    // compute bbox (p1,p3)
-
-    Eigen::Vector3d p1 = (*nlist.begin())->pos;
-    Eigen::Vector3d p3 = p1;
-    for (auto n : nlist)
-    {
-        Eigen::Vector3d p = n->pos;
-        if (p(0) < p1(0))
-            p1(0) = p(0);
-        if (p(0) > p3(0))
-            p3(0) = p(0);
-        if (p(1) < p1(1))
-            p1(1) = p(1);
-        if (p(1) > p3(1))
-            p3(1) = p(1);
-    }
-    if (verbose)
-    {
-        std::cout << "bounding box:\n";
-        std::cout << "\tp1=" << p1 << '\n';
-        std::cout << "\tp3=" << p3 << '\n';
-    }
-
-    // compute smallest distance between 2 nodes (mesh characteristic length)
-    double lc = std::numeric_limits<double>::max();
-    for (auto mat : pbl->media)
-        for (auto e : mat->tag->elems)
-            for (auto n1 : e->nodes)
-                for (auto n2 : e->nodes)
-                    if (n1 != n2)
-                    {
-                        double l = (n1->pos - n2->pos).norm();
-                        if (l < lc)
-                            lc = l;
-                    }
-    if (verbose)
-        std::cout << "characteristic length = " << lc << '\n';
-
-    // build ordered lists of nodes on boundaries
-    auto nL = nodesOnEdge(nlist, lc, p1, 0, "L");
-    auto nR = nodesOnEdge(nlist, lc, p3, 0, "R");
-    auto nB = nodesOnEdge(nlist, lc, p1, 1, "B");
-    auto nT = nodesOnEdge(nlist, lc, p3, 1, "T");
-
-    // corners detection
-    double eps = lc / 10.;
-
-    corners.resize(4);
-
-    {
-        if (verbose)
-            std::cout << "detecting corners...\n";
-        auto itP1 = nL.begin();
-        auto itP2 = nR.begin();
-        auto itP4 = --nL.end();
-        auto itP3 = --nR.end();
-
-        corners[0] = *itP1;
-        corners[1] = *itP2;
-        corners[2] = *itP3;
-        corners[3] = *itP4;
-
-        NodePair(*itP1, *itP2, eps); // error check
-        NodePair(*itP2, *itP3, eps); // error check
-        NodePair(*itP3, *itP4, eps); // error check
-        NodePair(*itP4, *itP1, eps); // error check
-
-        if (verbose)
-            for (auto n : corners)
-                std::cout << '\t' << *n << '\n';
-
-        // build LR node pairs
-        if (verbose)
-            std::cout << "detecting node pairs : left-right (LR)...\n";
-        for (auto itL = ++itP1, itR = ++itP2; itL != itP4 && itR != itP3; ++itL, ++itR)
-            LR.push_back(NodePair(*itL, *itR, eps));
-        /*
-        for(auto np : LR)
-            std::cout << '\t' << np << '\n';
-        */
-    }
-
-    // build TB node pairs
-    {
-        auto itP1 = nB.begin();
-        auto itP2 = --nB.end();
-        auto itP4 = nT.begin();
-        auto itP3 = --nT.end();
-
-        if (verbose)
-            std::cout << "detecting node pairs : bottom-top (BT)...\n";
-        for (auto itB = ++itP1, itT = ++itP4; itB != itP2 && itT != itP3; ++itB, ++itT)
-            BT.push_back(NodePair(*itB, *itT, eps));
-        /*
-        for(auto np : BT)
-            std::cout << '\t' << np << '\n';
-            */
-    }
-}
-
-std::vector<Node *>
-Periodic::nodesOnEdge(std::list<Node *> const &nlist,
-                      double lc, Eigen::Vector3d const &pt,
-                      int c, std::string const &name) const
-{
-    struct LessThan
-    {
-        int comp;
-        LessThan(int c) : comp(c) {}
-        inline bool operator()(Node *const &o1, Node *const &o2) const
-        {
-            return (o1->pos(comp) < o2->pos(comp));
-        }
-    };
-
-    std::vector<Node *> lnods;
-    double eps = lc / 10.;
-    double xF = pt(c);
-    for (auto n : nlist)
-    {
-        double px = n->pos(c);
-        if (xF - eps < px && px < xF + eps)
-            lnods.push_back(n);
-    }
-    std::sort(lnods.begin(), lnods.end(), LessThan((c == 1) ? 0 : 1));
-
-    if (verbose)
-        std::cout << "nodes on " << name << " boundary: " << lnods.size() << '\n';
-    if (lnods.size() < 2)
-    {
-        std::stringstream str;
-        str << "Periodic::nodesOnEdge - not enough nodes on " << name << " boundary!\n";
-        throw std::runtime_error(str.str());
-    }
-
-    /*
-    for(auto n : lnods)
-        std::cout << '\t' << *n << '\n';
-    */
-    return lnods;
-}
diff --git a/heat/src/wPeriodic.h b/heat/src/wPeriodic.h
deleted file mode 100644
index 0e1d4c9a..00000000
--- a/heat/src/wPeriodic.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WPERIODIC_H
-#define WPERIODIC_H
-
-#include "heat.h"
-#include "wObject.h"
-#include <vector>
-#include <string>
-#include <list>
-#include <memory>
-#include <Eigen/Dense>
-
-using namespace tbox;
-
-namespace heat
-{
-
-#ifndef SWIG
-class HEAT_API NodePair
-{
-public:
-    Node *n;
-    Node *d;
-    NodePair(Node *_n, Node *_d, double tol = 1e-12);
-    friend HEAT_API std::ostream &operator<<(std::ostream &out, NodePair const &obj);
-};
-#endif //SWIG
-
-/**
- * @brief manages periodic BCs
- */
-
-class HEAT_API Periodic : public fwk::wSharedObject
-{
-    std::shared_ptr<heat::Problem> pbl;
-
-public:
-#ifndef SWIG
-    double TM;
-    double dTxM;
-    double dTyM;
-    std::vector<NodePair> LR;    ///< left-right boundaries
-    std::vector<NodePair> BT;    ///< bottom-top boundaries
-    std::vector<Node *> corners; ///< corner nodes
-#endif
-    Eigen::Vector3d qM; ///< calculated mean flux
-    bool verbose;       ///< print on/off
-
-    Periodic(std::shared_ptr<heat::Problem> _pbl, double _TM, double _dTxM, double _dTyM);
-    virtual ~Periodic() { std::cout << "~Periodic()\n"; }
-
-    void reset(double _TM, double _dTxM, double _dTyM);
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-
-    void init();
-#endif
-
-private:
-    std::vector<Node *>
-    nodesOnEdge(std::list<Node *> const &nlist, double lc, Eigen::Vector3d const &pt, int c, std::string const &name) const;
-};
-
-} // namespace heat
-
-#endif //WPERIODIC_H
diff --git a/heat/src/wProblem.cpp b/heat/src/wProblem.cpp
deleted file mode 100644
index 90d4fdc3..00000000
--- a/heat/src/wProblem.cpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wProblem.h"
-#include "wMedium.h"
-#include "wBoundary.h"
-#include "wSource.h"
-#include "wPeriodic.h" // sinon:  warning C4150: deletion of pointer to incomplete type 'heat::Periodic'; no destructor called
-#include "wElement.h"
-
-#include "wTag.h"
-using namespace heat;
-
-Problem::Problem(std::shared_ptr<MshData> _msh) : msh(_msh), pdic(NULL)
-{
-}
-
-void Problem::write(std::ostream &out) const
-{
-    out << "heat::Problem:\n";
-}
-
-Problem::~Problem()
-{
-    std::cout << "~Problem()\n";
-}
-
-/**
- * @brief Initialize the elements precomputed values
- */
-void Problem::initElems()
-{
-    // Update volume Jacobian
-    for (auto vol : media)
-        for (auto e : vol->tag->elems)
-            e->initValues(true);
-    // Update volume Jacobian (volume source)
-    for (auto vol : srcs)
-        for (auto e : vol->tag->elems)
-            e->initValues(true);
-    // Update surface Jacobian (Neumann B.C.)
-    for (auto surf : bnds)
-        for (auto e : surf->tag->elems)
-            e->initValues(false);
-}
\ No newline at end of file
diff --git a/heat/src/wProblem.h b/heat/src/wProblem.h
deleted file mode 100644
index 875aa6da..00000000
--- a/heat/src/wProblem.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WPROBLEM_H
-#define WPROBLEM_H
-
-#include "heat.h"
-#include "wObject.h"
-#include <memory>
-#include <iostream>
-#include <vector>
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief a class containing the problem parameters
- */
-
-class HEAT_API Problem : public fwk::wSharedObject
-{
-public:
-    std::shared_ptr<MshData> msh; ///< Mesh structure
-#ifndef SWIG
-    std::vector<std::shared_ptr<Medium>> media;   ///< Materials
-    std::vector<std::shared_ptr<Dirichlet>> dBCs; ///< Dirichlet boundary conditions
-
-    std::vector<std::shared_ptr<Source>> srcs;   ///< volumic sources
-    std::vector<std::shared_ptr<Boundary>> bnds; ///< prescribed fluxes on the boundary
-
-    std::shared_ptr<Periodic> pdic; ///< periodic BC
-#endif
-
-public:
-    Problem(std::shared_ptr<MshData> _msh);
-    virtual ~Problem();
-
-    void add(std::shared_ptr<Medium> m) { media.push_back(m); }
-    void add(std::shared_ptr<Dirichlet> d) { dBCs.push_back(d); }
-    void add(std::shared_ptr<Source> s) { srcs.push_back(s); }
-    void add(std::shared_ptr<Boundary> b) { bnds.push_back(b); }
-    void add(std::shared_ptr<Periodic> p) { pdic = p; }
-
-#ifndef SWIG
-    void initElems();
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-
-} // namespace heat
-
-#endif //WPROBLEM_H
diff --git a/heat/src/wSolver.cpp b/heat/src/wSolver.cpp
deleted file mode 100644
index 0148904f..00000000
--- a/heat/src/wSolver.cpp
+++ /dev/null
@@ -1,712 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wSolver.h"
-#include "wMshData.h"
-#include "wNode.h"
-#include "wElement.h"
-#include "wTri3.h"
-#include "wTimer.h"
-#include "wTag.h"
-#include "wFct2.h"
-#include "wProblem.h"
-#include "wMedium.h"
-#include "wSource.h"
-#include "wBoundary.h"
-#include "wDirichlet.h"
-#include "wDisplayHook.h"
-#include "wPeriodic.h"
-#include "wHeatTerm.h"
-#include "wResults.h"
-#include "wMshExport.h"
-#include "wLinearSolver.h"
-
-#include <Eigen/Sparse>
-#include <typeinfo>
-#include <algorithm>
-#include <iomanip>
-#include <deque>
-
-#include <tbb/global_control.h>
-#include <tbb/parallel_for_each.h>
-#include <tbb/spin_mutex.h>
-using namespace heat;
-using namespace fwk;
-
-#undef min
-#undef max
-
-Solver::Solver(std::shared_ptr<Problem> _pbl, std::shared_ptr<tbox::LinearSolver> _linsol) : pbl(_pbl), linsol(_linsol)
-{
-    dhook = NULL;
-
-    // default values
-    nthreads = 1;
-    verbose = 1;
-    stopit = false;
-    restol = 1e-2;
-    itmax = 100;
-    save = true;
-
-    // update element memory
-    pbl->initElems();
-}
-
-Solver::~Solver()
-{
-    std::cout << "~Solver()\n";
-}
-
-/**
- * @todo planter clairement si pas de Medium
- * @todo calculer la taille du systeme en fct du nombre de noeuds des physical groups utilisés
- */
-void Solver::start(MshExport *mshWriter)
-{
-    tbb::spin_mutex mutex;
-    tbb::global_control control(tbb::global_control::max_allowed_parallelism, nthreads);
-
-    // start timers
-    tms["total"].start();
-    tms["prepro"].start(); // ----- start preprocessing phase
-
-    if (verbose > 1)
-        std::cout << *this;
-
-    auto msh = pbl->msh;
-
-    // setup results
-    T1.resize(msh->nodes.size(), 0.); // in case of restart
-    Eigen::Map<Eigen::VectorXd> T1_(T1.data(), T1.size());
-
-    Results results;
-    results.scalars_at_nodes["T"] = &T1;
-
-    // initial temperature guess
-    if (!pbl->dBCs.empty())
-    {
-        double tmin = std::numeric_limits<double>::max();
-        double tmax = std::numeric_limits<double>::min();
-        for (auto dBC : pbl->dBCs)
-        {
-            double v = dBC->val;
-            if (v < tmin)
-                tmin = v;
-            if (v > tmax)
-                tmax = v;
-        }
-        /*
-        std::cout << "tmin=" << tmin << "\n";
-        std::cout << "tmax=" << tmax << "\n";
-        */
-        for (auto n : msh->nodes)
-            T1[n->row] = (tmin + tmax) / 2;
-
-        for (auto dBC : pbl->dBCs)
-            dBC->apply(T1);
-    }
-
-    // periodic BCs
-    if (pbl->pdic)
-    {
-        if (!pbl->dBCs.empty())
-            throw std::runtime_error("cannot manage periodic BCs and Dirichlet BCs simultaneously!\n");
-        pbl->pdic->init();
-
-        // initial guess for T
-        for (auto n : msh->nodes)
-            T1[n->row] = pbl->pdic->TM;
-    }
-    tms["prepro"].stop(); // ----- end of preprocessing phase
-
-    // --------------------------------------------------------------------
-    // Iteration LOOP
-    // --------------------------------------------------------------------
-
-    int it = 0;
-    while (it <= itmax)
-    {
-        std::vector<double> rhs(msh->nodes.size());                                             // dummy RHS
-        Eigen::Map<Eigen::VectorXd> rhs_ = Eigen::Map<Eigen::VectorXd>(rhs.data(), rhs.size()); // actual RHS
-
-        tms["Kass"].start();
-        // K matrix assembly
-        Eigen::SparseMatrix<double, Eigen::RowMajor> K(msh->nodes.size(), msh->nodes.size());
-        buildK(K, rhs_);
-        //tomatlab("K.txt", K);
-        //throw std::runtime_error("stop!");
-        tms["Kass"].stop();
-
-        tms["BCs"].start();
-
-        if (!pbl->pdic)
-        {
-            builds(rhs_); // sources
-            buildq(rhs_); // prescribed fluxes (=sources over lines)
-
-            // BCs
-            for (auto dBC : pbl->dBCs) // apply Dirichlet BCs to RHS
-                dBC->apply(rhs);
-        }
-        tms["BCs"].stop();
-        //std::cout << rhs << "\n";
-
-        // residual calculation
-        tms["residual"].start();
-
-        // method #1
-        Eigen::VectorXd qint = K * T1_; // calcul de q_int = K T1:
-
-        // method #2
-        if (0)
-        {
-            Eigen::VectorXd qint2;
-            buildqint(qint2); // calcul de q_int par integration du flux sur l'elem
-            double normdiff = (qint - qint2).norm();
-            //if(verbose>1)
-            std::cout << "norm diff=" << normdiff << '\n';
-        }
-
-        /*
-        for(auto i=0; i<msh->nodes.size(); ++i)
-            std::cout << i << ":" << qint[i] << "," << qint2[i] << "\n";
-        */
-
-        Eigen::VectorXd res = qint - rhs_; // residual
-        double rnorm2 = res.norm();
-        double rnorminf = res.lpNorm<Eigen::Infinity>();
-        tms["residual"].stop();
-
-        if (verbose > 0)
-        {
-            std::cout << std::fixed << std::setprecision(3);
-            std::cout << " * it #" << std::setw(3) << std::left << it
-                      << " |r|2 = " << std::setw(9) << std::scientific << std::right << rnorm2
-                      << "  |r|inf = " << std::setw(9) << std::scientific << std::right << rnorminf << '\n';
-        }
-        // check convergence
-        if (rnorm2 < restol && it != 0)
-            break;
-        it++;
-
-        // solve
-        tms["solve"].start();
-        if (verbose > 1)
-            std::cout << "solving...\n";
-        if (it == 1)
-        {
-            linsol->analyze(K);
-        }
-        linsol->factorize(K);
-        linsol->solve(rhs_, T1_);
-        tms["solve"].stop();
-    }
-    if (it > itmax)
-    {
-        std::cout << "\n**WARNING! iterative process failed to converge\n";
-        std::cout << "           in less than " << itmax << " iterations!\n\n"; // TODO: generer une erreur!
-    }
-
-    // --------------------------------------------------------------------
-    // Postprocessing
-    // --------------------------------------------------------------------
-
-    if (verbose > 1)
-        std::cout << "postpro...\n";
-    tms["post"].start();
-
-    // setup results
-
-    std::vector<double> gradT_x(msh->elems.size());         ///< gradT_x
-    std::vector<double> gradT_y(msh->elems.size());         ///< gradT_y
-    std::vector<Eigen::Vector3d> gradT(msh->elems.size());  ///< gradT
-    std::vector<Eigen::Vector3d> kgradT(msh->elems.size()); ///< gradT
-    std::vector<double> kmoy11(msh->elems.size());          ///< mean k11 / element
-    std::vector<double> kmoy22(msh->elems.size());          ///< mean k22 / element
-    std::vector<double> kmoy12(msh->elems.size());          ///< mean k12 / element
-    std::vector<double> kmoy21(msh->elems.size());          ///< mean k21 / element
-    std::vector<Eigen::MatrixXd> kmoy(msh->elems.size());
-    for (auto &km : kmoy)
-        km = Eigen::Matrix3d::Zero();
-
-    results.scalars_at_elems["gradT_x"] = &gradT_x;
-    results.scalars_at_elems["gradT_y"] = &gradT_y;
-    results.scalars_at_elems["k11"] = &kmoy11;
-    results.scalars_at_elems["k22"] = &kmoy22;
-    results.scalars_at_elems["k12"] = &kmoy12;
-    results.scalars_at_elems["k21"] = &kmoy21;
-    results.vectors_at_elems["gradT"] = &gradT;
-    results.vectors_at_elems["q [heat flux]"] = &kgradT;
-    results.tensors_at_elems["k [tensor]"] = &kmoy;
-
-    double Vtot = 0.0;
-    Eigen::Vector2d qM = Eigen::Vector2d::Zero();
-    for (auto mat : pbl->media)
-    {
-        tbb::parallel_for_each(mat->tag->elems.begin(), mat->tag->elems.end(), [&](Element *e) {
-            if (e->type() != ElType::TRI3)
-                return;
-            //std::cout << "processing element #" << e->no << "\n";
-
-            // (flux moyen . volume) sur l'element
-            Eigen::VectorXd qV = HeatTerm::computeFlux(*e, T1, *mat->k);
-
-            double V = e->getVol();
-
-            if (save)
-            {
-                // gradient of T at GP 0
-                Eigen::VectorXd grad = e->computeGradient(T1, 0);
-                int i = e->no - 1;
-                gradT_x[i] = grad(0);
-                gradT_y[i] = grad(1);
-                gradT[i] = Eigen::Vector3d(grad(0), grad(1), 0);
-
-                // mean q over the element
-                kgradT[i] = Eigen::Vector3d(qV(0) / V, qV(1) / V, 0);
-
-                // mean k over the element
-                Eigen::MatrixXd kmean = HeatTerm::computeMatrix(*e, T1, *mat->k) / V;
-                kmoy11[i] = kmean(0, 0);
-                kmoy22[i] = kmean(1, 1);
-                kmoy12[i] = kmean(0, 1);
-                kmoy21[i] = kmean(1, 0);
-
-                // tensor
-                kmean.conservativeResize(3, 3);
-                kmean.row(2) = Eigen::RowVector3d::Zero();
-                kmean.col(2) = Eigen::Vector3d::Zero();
-                kmoy[i] = kmean;
-                //std::cout << kmean << '\n';
-            }
-
-            tbb::spin_mutex::scoped_lock lock(mutex);
-            Vtot += V;
-            qM += qV; // qM = qM + qV
-        });
-    }
-    qM /= Vtot;
-
-    if (verbose > 1)
-    {
-        std::cout << "Vtot = " << Vtot << '\n';
-        std::cout << "qM = " << qM << '\n';
-    }
-
-    // periodic BCs
-    if (pbl->pdic)
-    {
-        pbl->pdic->qM = Eigen::Vector3d(qM(0), qM(1), 0.);
-        if (verbose > 1)
-        {
-            std::cout << "=> k_x = " << ((pbl->pdic->dTxM == 0.0) ? 0 : qM(0) / pbl->pdic->dTxM) << '\n';
-            std::cout << "=> k_y = " << ((pbl->pdic->dTyM == 0.0) ? 0 : qM(1) / pbl->pdic->dTyM) << '\n';
-        }
-    }
-
-    if (save)
-    {
-        if (verbose > 1)
-            std::cout << "saving results to disk...\n";
-        mshWriter->save(msh->name, results);
-    }
-
-    tms["post"].stop();
-    tms["total"].stop();
-
-    if (verbose > 0)
-    {
-        std::cout << "---CPU statistics ---\n";
-        std::cout << tms;
-        std::cout << "---------------------\n";
-    }
-}
-
-void Solver::buildK(Eigen::SparseMatrix<double, Eigen::RowMajor> &K2, Eigen::Map<Eigen::VectorXd> &rhs)
-{
-    tbb::spin_mutex mutex;
-
-    std::shared_ptr<MshData> msh = pbl->msh;
-
-    // List of triplets to build matrix
-    std::deque<Eigen::Triplet<double>> T;
-
-    // periodic BCs
-    // (on va sommer les lignes des noeuds "d" sur celles des noeuds "n")
-
-    std::vector<int> rows(msh->nodes.size());
-    for (size_t i = 0; i < msh->nodes.size(); ++i)
-        rows[i] = msh->nodes[i]->row;
-
-    if (pbl->pdic)
-    {
-        for (auto np : pbl->pdic->BT)
-            rows[np.d->row] = np.n->row;
-        for (auto np : pbl->pdic->LR)
-            rows[np.d->row] = np.n->row;
-    }
-
-    if (verbose > 1)
-        std::cout << "building K (TBB/lambda) using " << nthreads << " threads...\n";
-
-    bool useTBB = false;
-    if (useTBB)
-    {
-        // 1-STEP PROCEDURE
-
-        for (auto mat : pbl->media)
-        {
-            if (verbose > 1)
-                std::cout << "\tprocessing " << *mat << '\n';
-            tbb::parallel_for_each(mat->tag->elems.begin(), mat->tag->elems.end(), [&](Element *e) {
-                if (e->type() != ElType::TRI3)
-                    return;
-                //std::cout << "processing element #" << e->no << "\n";
-
-                Eigen::MatrixXd Ke = HeatTerm::build(*e, T1, *mat->k, false);
-
-                // assembly
-                tbb::spin_mutex::scoped_lock lock(mutex);
-                for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-                {
-                    Node *nodi = e->nodes[ii];
-                    for (size_t jj = 0; jj < e->nodes.size(); ++jj)
-                    {
-                        Node *nodj = e->nodes[jj];
-                        T.push_back(Eigen::Triplet<double>(rows[nodi->row], nodj->row, Ke(ii, jj)));
-                    }
-                }
-            });
-        }
-    }
-    else
-    {
-        // 3-STEP PROCEDURE
-
-        // *** build Job list - "fake run"
-
-        if (verbose > 1)
-            std::cout << "building job list...\n";
-
-        for (auto mat : pbl->media)
-        {
-            if (verbose > 1)
-                std::cout << "\tprocessing " << *mat << '\n';
-            std::for_each(mat->tag->elems.begin(), mat->tag->elems.end(),
-                          [&](Element *e) {
-                              if (e->type() != ElType::TRI3)
-                                  return;
-                              Eigen::MatrixXd Ke = HeatTerm::build(*e, T1, *mat->k, true); // bidon
-                          });
-        }
-
-        // *** execute all jobs generated during the fake run
-
-        if (verbose > 1)
-            std::cout << "executing job list...\n";
-        for (auto mat : pbl->media)
-            mat->k->evalall();
-
-        // ***  perform the assembly with the results ("true run")
-
-        if (verbose > 1)
-            std::cout << "performing assembly...\n";
-
-        for (auto mat : pbl->media)
-        {
-            if (verbose > 1)
-                std::cout << "\tprocessing " << *mat << '\n';
-
-            std::for_each(mat->tag->elems.begin(), mat->tag->elems.end(), [&](Element *e) { // devrait pouvoir etre fait en TBB...
-                if (e->type() != ElType::TRI3)
-                    return;
-                Eigen::MatrixXd Ke = HeatTerm::build(*e, T1, *mat->k, false);
-
-                // assembly
-                //tbb::spin_mutex::scoped_lock lock(mutex);
-                for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-                {
-                    Node *nodi = e->nodes[ii];
-                    for (size_t jj = 0; jj < e->nodes.size(); ++jj)
-                    {
-                        Node *nodj = e->nodes[jj];
-                        T.push_back(Eigen::Triplet<double>(rows[nodi->row], nodj->row, Ke(ii, jj)));
-                    }
-                }
-            });
-        }
-        if (verbose > 1)
-            std::cout << "assembly done.\n";
-    }
-    // Build matrix without BCs
-    K2.setFromTriplets(T.begin(), T.end());
-
-    // periodic BCs
-    if (pbl->pdic)
-    {
-        // equations \theta_d (R,T) fct (L,B)
-        double lx = pbl->pdic->corners[1]->pos(0) - pbl->pdic->corners[0]->pos(0);
-        double ly = pbl->pdic->corners[3]->pos(1) - pbl->pdic->corners[0]->pos(1);
-        if (verbose > 1)
-            std::cout << "lx = " << lx << '\n';
-        if (verbose > 1)
-            std::cout << "ly = " << ly << '\n';
-        double TM = pbl->pdic->TM;
-        double dTxM = pbl->pdic->dTxM;
-        double dTyM = pbl->pdic->dTyM;
-
-        for (auto np : pbl->pdic->LR)
-        {
-            // clears related row
-            for (Eigen::SparseMatrix<double, Eigen::RowMajor>::InnerIterator it(K2, np.d->row); it; ++it)
-                it.valueRef() = 0.;
-
-            K2.coeffRef(np.d->row, np.d->row) = 1.0;
-            K2.coeffRef(np.d->row, np.n->row) = -1.0;
-            rhs(np.d->row) = lx * dTxM;
-        }
-
-        for (auto np : pbl->pdic->BT)
-        {
-            // clears related row
-            for (Eigen::SparseMatrix<double, Eigen::RowMajor>::InnerIterator it(K2, np.d->row); it; ++it)
-                it.valueRef() = 0.;
-
-            K2.coeffRef(np.d->row, np.d->row) = 1.0;
-            K2.coeffRef(np.d->row, np.n->row) = -1.0;
-            rhs(np.d->row) = ly * dTyM;
-        }
-
-        // corners \theta_2,3,4 fct \theta_1
-
-        for (auto i = 0; i < 4; ++i)
-        {
-            Node *nod = pbl->pdic->corners[i];
-            // clears related row
-            for (Eigen::SparseMatrix<double, Eigen::RowMajor>::InnerIterator it(K2, nod->row); it; ++it)
-                it.valueRef() = 0.;
-        }
-
-        Node *n1 = pbl->pdic->corners[0];
-        for (auto i = 1; i < 4; ++i)
-        {
-            Node *ni = pbl->pdic->corners[i];
-            K2.coeffRef(ni->row, ni->row) = 1.0;
-            K2.coeffRef(ni->row, n1->row) = -1.0;
-        }
-        Node *n2 = pbl->pdic->corners[1];
-        Node *n3 = pbl->pdic->corners[2];
-        Node *n4 = pbl->pdic->corners[3];
-        rhs(n2->row) = lx * dTxM;
-        rhs(n3->row) = lx * dTxM + ly * dTyM;
-        rhs(n4->row) = ly * dTyM;
-
-        // thermal energy consistency condition (n1->row)
-
-        double Vtot = 0.0;
-        double rhocM_Vtot = 0;
-        for (auto mat : pbl->media)
-        {
-            //std::cout << "\tprocessing " << *mat << '\n';
-            tbb::parallel_for_each(mat->tag->elems.begin(), mat->tag->elems.end(), [&](Element *e) {
-                if (e->type() != ElType::TRI3)
-                    return;
-                //std::cout << "processing element #" << e->no << "\n";
-
-                // ** Ce matrix => K matrix
-                Eigen::VectorXd Ce = HeatTerm::build(*e, T1, Fct0C(1.0));
-
-                // assembly
-                tbb::spin_mutex::scoped_lock lock(mutex);
-                for (size_t jj = 0; jj < e->nodes.size(); ++jj)
-                {
-                    Node *nodj = e->nodes[jj];
-                    K2.coeffRef(n1->row, nodj->row) += (mat->rhoc) * Ce(jj);
-
-                    Vtot += Ce(jj);
-                    rhocM_Vtot += (mat->rhoc) * Ce(jj);
-                }
-            });
-        }
-        rhs(n1->row) = rhocM_Vtot * TM;
-        if (verbose > 1)
-            std::cout << "Vtot=" << Vtot << "\n";
-        if (verbose > 1)
-            std::cout << "rhocM_Vtot=" << rhocM_Vtot << "\n";
-    }
-
-    if (!pbl->dBCs.empty())
-    {
-        if (verbose > 1)
-            std::cout << "applying Dirichlet BCs...\n";
-
-        // apply Dirichlet BCs to K
-        for (auto dBC : pbl->dBCs)
-        {
-            for (auto nod : dBC->nodes)
-            {
-                //std::cout << "processing " << *nod << "\n";
-                for (Eigen::SparseMatrix<double, Eigen::RowMajor>::InnerIterator it(K2, nod->row); it; ++it)
-                {
-                    if (it.row() == it.col())
-                        it.valueRef() = 1.;
-                    else
-                        it.valueRef() = 0.;
-                }
-            }
-        }
-        if (verbose > 1)
-            std::cout << "done." << std::endl;
-    }
-
-    // Clean matrix and turn to compressed row format
-    K2.prune(0.);
-    K2.makeCompressed();
-
-    if (verbose > 1)
-    {
-        std::cout << "K (" << K2.rows() << "," << K2.cols() << ") nnz=" << K2.nonZeros() << "\n";
-    }
-}
-
-void Solver::buildqint(Eigen::VectorXd &qint)
-{
-    tbb::spin_mutex mutex;
-
-    qint = Eigen::VectorXd::Zero(pbl->msh->nodes.size());
-
-    for (auto mat : pbl->media)
-    {
-        if (verbose > 1)
-            std::cout << "\tprocessing " << *mat << '\n';
-        tbb::parallel_for_each(mat->tag->elems.begin(), mat->tag->elems.end(), [&](Element *e) {
-            if (e->type() != ElType::TRI3)
-                return;
-            //std::cout << "processing element #" << e->no << "\n";
-
-            Eigen::VectorXd qe = HeatTerm::build2(*e, T1, *mat->k);
-
-            // assembly
-            tbb::spin_mutex::scoped_lock lock(mutex);
-            for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-            {
-                Node *nodi = e->nodes[ii];
-                qint(nodi->row) += qe(ii);
-            }
-        });
-    }
-
-    if (!pbl->dBCs.empty())
-    {
-        if (verbose > 1)
-            std::cout << "applying Dirichlet BCs...\n";
-
-        // apply Dirichlet BCs to qint
-        for (auto dBC : pbl->dBCs)
-        {
-            for (auto nod : dBC->nodes)
-            {
-                qint(nod->row) = T1[nod->row]; // pour comparer avec K.T1
-            }
-        }
-        if (verbose > 1)
-            std::cout << "done." << std::endl;
-    }
-}
-
-/**
- * @brief volume sources
- */
-
-void Solver::builds(Eigen::Map<Eigen::VectorXd> &s)
-{
-    tbb::spin_mutex mutex;
-
-    if (verbose > 1)
-        std::cout << "building s (TBB/lambda) using " << nthreads << " threads...\n";
-
-    for (auto src : pbl->srcs)
-    {
-        //std::cout << "\tprocessing " << *src << '\n';
-        tbb::parallel_for_each(src->tag->elems.begin(), src->tag->elems.end(), [&](Element *e) {
-            if (e->type() != ElType::TRI3 && e->type() != ElType::LINE2)
-                return;
-            //std::cout << "processing element #" << e->no << "\n";
-
-            // ** se vector => s vector
-            Eigen::VectorXd se = HeatTerm::build(*e, T1, *src->f);
-
-            // assembly
-            tbb::spin_mutex::scoped_lock lock(mutex);
-
-            for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-            {
-                Node *nodi = e->nodes[ii];
-                s(nodi->row) += se(ii);
-            }
-        });
-    }
-
-    if (verbose > 1)
-    {
-        std::cout << "s (" << s.size() << ")\n";
-    }
-}
-
-/**
- * @brief terme BC Neumann (pourrait etre mergé avec "builds"... c'est idem)
- * @todo merge this routine with builds
- */
-void Solver::buildq(Eigen::Map<Eigen::VectorXd> &q)
-{
-    tbb::spin_mutex mutex;
-
-    if (verbose > 1)
-        std::cout << "building q (TBB/lambda) using " << nthreads << " threads...\n";
-
-    for (auto bnd : pbl->bnds)
-    {
-        //std::cout << "\tprocessing " << *src << '\n';
-        tbb::parallel_for_each(bnd->tag->elems.begin(), bnd->tag->elems.end(), [&](Element *e) {
-            if (e->type() != ElType::LINE2)
-                return;
-            //std::cout << "processing element #" << e->no << "\n";
-
-            // ** qe vector => q vector
-            Eigen::VectorXd qe = HeatTerm::build(*e, T1, *bnd->f);
-
-            // assembly
-            tbb::spin_mutex::scoped_lock lock(mutex);
-
-            for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-            {
-                Node *nodi = e->nodes[ii];
-                q(nodi->row) += qe(ii);
-            }
-        });
-    }
-
-    if (verbose > 1)
-    {
-        std::cout << "q (" << q.size() << ")\n";
-    }
-}
-
-void Solver::write(std::ostream &out) const
-{
-    out << "heat::Solver"
-        << "\n";
-}
diff --git a/heat/src/wSolver.h b/heat/src/wSolver.h
deleted file mode 100644
index bd83c28c..00000000
--- a/heat/src/wSolver.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WSOLVER_H
-#define WSOLVER_H
-
-#include "heat.h"
-#include "wObject.h"
-#include "wTimer.h"
-#include "wTimers.h"
-#include "wElement.h"
-#include <iostream>
-#include <vector>
-#include <memory>
-#include <Eigen/Sparse>
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief heat solver
- */
-
-class HEAT_API Solver : public fwk::wSharedObject
-{
-public:
-    int verbose;
-#ifndef SWIG
-    DisplayHook *dhook;
-
-#endif
-    std::shared_ptr<Problem> pbl;
-    std::shared_ptr<tbox::LinearSolver> linsol; ///< linear solver
-
-    bool stopit;            ///< stop the calculation
-    int nthreads;           ///< # of threads for the assembly
-    fwk::Timers tms;        ///< timers
-    std::vector<double> T1; ///< nodal temperatures
-    double restol;          ///< tolerance on the residual
-    int itmax;              ///< max number of iterations
-    bool save;              ///< calculate all results
-public:
-    Solver(std::shared_ptr<Problem> _pbl, std::shared_ptr<tbox::LinearSolver> _linsol);
-    virtual ~Solver();
-
-    virtual void start(MshExport *mshWriter);
-
-    void setGUI(DisplayHook &hook) { dhook = &hook; }
-
-    void stop() { stopit = true; }
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-
-private:
-    void buildK(Eigen::SparseMatrix<double, Eigen::RowMajor> &K2, Eigen::Map<Eigen::VectorXd> &rhs);
-    void builds(Eigen::Map<Eigen::VectorXd> &s);
-    void buildq(Eigen::Map<Eigen::VectorXd> &s);
-    void buildqint(Eigen::VectorXd &qint);
-};
-
-} // namespace heat
-
-#endif //WSOLVER_H
diff --git a/heat/src/wSource.cpp b/heat/src/wSource.cpp
deleted file mode 100644
index 149c18d1..00000000
--- a/heat/src/wSource.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wSource.h"
-#include "wProblem.h"
-#include "wTag.h"
-using namespace heat;
-
-Source::Source(std::shared_ptr<MshData> _msh, int no, std::shared_ptr<Fct0> _f) : Group(_msh, no), f(_f)
-{
-    //pbl.srcs.push_back(this);
-}
-
-Source::Source(std::shared_ptr<MshData> _msh, std::string const &name, std::shared_ptr<Fct0> _f) : Group(_msh, name), f(_f)
-{
-    //pbl.srcs.push_back(this);
-}
-
-void Source::write(std::ostream &out) const
-{
-    out << "heat::Source on " << *tag << '\n';
-}
diff --git a/heat/src/wSource.h b/heat/src/wSource.h
deleted file mode 100644
index b83b7263..00000000
--- a/heat/src/wSource.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WSOURCE_H
-#define WSOURCE_H
-
-#include "heat.h"
-#include "wGroup.h"
-#include "wFct0.h"
-#include <vector>
-#include <string>
-
-using namespace tbox;
-
-namespace heat
-{
-
-/**
- * @brief manage (volumic) heat sources
- */
-
-class HEAT_API Source : public Group
-{
-public:
-#ifndef SWIG
-    std::shared_ptr<Fct0> f;
-#endif
-    Source(std::shared_ptr<MshData> _msh, int no, std::shared_ptr<Fct0> _f);
-    Source(std::shared_ptr<MshData> _msh, std::string const &name, std::shared_ptr<Fct0> _f);
-    virtual ~Source() { std::cout << "~Source()\n"; }
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-
-} // namespace heat
-
-#endif //WSOURCE_H
diff --git a/heat/tests/basics/anisotropy.py b/heat/tests/basics/anisotropy.py
deleted file mode 100755
index 97b0ef25..00000000
--- a/heat/tests/basics/anisotropy.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# simple test on a square : heat source + anisotropy
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-
-def main():
-
-    # mesh a unit square
-    pars = {'Lx' : 1 , 'Ly' : 1, 'Nx' : 30, 'Ny' : 30}
-    msh = gmsh.MeshLoader("../../models/rect_stru.geo",__file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    # medium/boundary conditions
-    pbl.add(h.Source(msh, "S1", tbox.Fct0C(1.0))) # heat src
-
-    pbl.add(h.Medium(msh, "S1", tbox.Fct2C(2.0,1.0,-1.0))) # anisotropy
-
-    pbl.add(h.Dirichlet(msh,"Left", 0.))
-    pbl.add(h.Dirichlet(msh,"Right", 0.))
-    pbl.add(h.Dirichlet(msh,"Bottom", 0.))
-    pbl.add(h.Dirichlet(msh,"Top", 0.))
-
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)
-
-    # check results
-    x1,y1,T1 = u.getTemp(solver,"S1")
-    tests = CTests()
-    tests.add(CTest('max(T)', max(T1), 0.053841, 1e-2))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/basics/dirichletx.py b/heat/tests/basics/dirichletx.py
deleted file mode 100755
index 65a7c5be..00000000
--- a/heat/tests/basics/dirichletx.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import heat.utils as u
-from fwk.testing import *
-
-if __name__ == "__main__":
-    import heat.models.rect as m
-    solver = m.main(bc='dirichletx')
-
-    x1,y1,T1 = u.getTemp(solver,"Bottom")
-    
-    u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', sum(T1) / len(T1), 4.0, 1e-9))
-    tests.add(CTest('max(Tbottom)', max(T1), 5.0))
-    tests.add(CTest('min(Tbottom)', min(T1), 3.0))
-    tests.run()
-    
diff --git a/heat/tests/basics/dirichletx_stru.py b/heat/tests/basics/dirichletx_stru.py
deleted file mode 100755
index cd444f39..00000000
--- a/heat/tests/basics/dirichletx_stru.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import heat.utils as u
-from fwk.testing import *
-
-if __name__ == "__main__":
-    import heat.models.rect as m
-    solver = m.main(bc='dirichletx', stru=True)
-    
-    x1,y1,T1 = u.getTemp(solver,"Bottom")
-    
-    u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', sum(T1) / len(T1), 4.0, 1e-9))
-    tests.add(CTest('max(Tbottom)', max(T1), 5.0))
-    tests.add(CTest('min(Tbottom)', min(T1), 3.0))
-    tests.run()
diff --git a/heat/tests/basics/dirichlety.py b/heat/tests/basics/dirichlety.py
deleted file mode 100755
index abcedb8b..00000000
--- a/heat/tests/basics/dirichlety.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import heat.utils as u
-from fwk.testing import *
-
-if __name__ == "__main__":
-    import heat.models.rect as m
-    solver = m.main(bc='dirichlety',Lx=5, lc=0.5)
-    
-    x1,y1,T1 = u.getTemp(solver,"Left", sort='y')
-    
-    u.simpleplot(y1, T1, xlabel='y [mm]', title='Temperature along y')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Tleft)', sum(T1) / len(T1), 4.0, 1e-9))
-    tests.add(CTest('max(Tleft)', max(T1), 5.0))
-    tests.add(CTest('min(Tleft)', min(T1), 3.0))
-    tests.run()
-
diff --git a/heat/tests/basics/mat2hole.geo b/heat/tests/basics/mat2hole.geo
deleted file mode 100644
index 98f855e6..00000000
--- a/heat/tests/basics/mat2hole.geo
+++ /dev/null
@@ -1,79 +0,0 @@
-// 2 materials and a hole
-
-lc = 0.5;
-Lx = 13;
-Ly = 9;
-
-
-ix = 3;
-iy = 3;
-//iR = 1.5;
-DefineConstant[ iR = { 1.5, Min 0.5, Max 1.5, Step 0.1, Name "Lengths/iR" }  ];
-
-hx = Lx-3;
-hy = Ly-4;
-hR = 2.5;
-
-
-// -- outer boundary
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-
-// -- inclusion
-Point(11) = { ix-iR,  iy, 0, lc/2};
-Point(12) = { ix,     iy, 0, lc/2};
-Point(13) = { ix+iR,  iy, 0, lc/2};
-
-Circle(10) = {11, 12, 13};
-Circle(11) = {13, 12, 11};
-
-Line Loop(11) = {11, 10};
-
-Plane Surface(11) = {11};
-
-// -- hole
-
-Point(21) = { hx-hR,  hy, 0, lc/2};
-Point(22) = { hx,     hy, 0, lc/2};
-Point(23) = { hx+hR,  hy, 0, lc/2};
-
-Circle(20) = {21, 22, 23};
-Circle(21) = {23, 22, 21};
-
-Line Loop(21) = {21, 20};
-
-
-// -- matrix
-Plane Surface(1) = {1, 11, 21};
-
-
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("Matrix") = {1};
-Physical Surface("Inclusion") = {11};
-
-
-
-
-
diff --git a/heat/tests/basics/mat2hole.py b/heat/tests/basics/mat2hole.py
deleted file mode 100755
index e0e3153b..00000000
--- a/heat/tests/basics/mat2hole.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-
-def main(**d):
-    # default params
-    p={}
-    p['iR'] = 1.0
-    p.update(d) 
-
-    msh = gmsh.MeshLoader("mat2hole.geo",__file__).execute(**p)
-    gmshWriter = tbox.GmshExport(msh)
-
-    pbl = h.Problem(msh)
-
-    pbl.add(h.Medium(msh, "Matrix", tbox.Fct2C(1e-5,1e-5,0)))
-    pbl.add(h.Medium(msh, "Inclusion", tbox.Fct2C(1e5,1e5,0)))
-    
-    pbl.add(h.Source(msh, "Inclusion", tbox.Fct0C(1e-4)))
-
-    gleft = h.Dirichlet(msh,"Left", 3.)
-    pbl.add(gleft)
-    gright = h.Dirichlet(msh,"Right",5.)
-    pbl.add(gright)
-
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)
-
-    # extract some results
-    x1,y1,T1 = u.getTemp(solver,"Top", sort='x')
-    
-    u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Ttop)', sum(T1) / len(T1), 6.639428, 1e-3))
-    tests.add(CTest('max(Ttop)', max(T1), 8.3445125, 1e-3))
-    tests.add(CTest('min(Ttop)', min(T1), 3.0))
-    tests.run()
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/basics/source.py b/heat/tests/basics/source.py
deleted file mode 100755
index 65d0fe84..00000000
--- a/heat/tests/basics/source.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import heat.utils as u
-from fwk.testing import *
-
-if __name__ == "__main__":
-    import heat.models.rect as m
-    solver = m.main(bc='dirichletx', src=True)
-
-    x1,y1,T1 = u.getTemp(solver,"Bottom")
-    
-    u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', sum(T1) / len(T1), 4.791563, 1e-4))
-    tests.add(CTest('max(Tbottom)', max(T1), 5.449610, 1e-4))
-    tests.add(CTest('min(Tbottom)', min(T1), 3.0))
-    tests.run()
-    
diff --git a/heat/tests/directors/material.py b/heat/tests/directors/material.py
deleted file mode 100755
index a0dc3916..00000000
--- a/heat/tests/directors/material.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# simple test where 
-# the material anisotropy depends on temperature
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-
-class MyMaterial(tbox.Fct2U):
-    """
-    Custom material
-    calculates the conductivity tensor
-    as a function of the local temperature
-    """
-    def __init__(self, kx, ky, theta):
-        tbox.Fct2U.__init__(self)
-        self.kx = kx
-        self.ky = ky
-        self.theta = theta
-                            
-    def eval(self, u, k, fake):
-        import numpy as np
-        import math
-        t = (self.theta) *math.pi/180.0 
-        u1 = 0. ; t1=-t
-        u2 = 10. ; t2 = t
-        
-        t = t1+(t2-t1)/(u2-u1)*(u-u1)
-        
-        kx = self.kx
-        ky = self.ky
-        
-        co = math.cos(t)
-        si = math.sin(t)
-        
-        R = np.array([[co, -si],
-                      [si, co]])
-        Kt = np.array([[kx, 0.0],
-                        [0.0, ky]])
-        Tmp = np.dot(R,Kt)
-        Kxy = np.dot(Tmp,R.T)
-         
-        k.resize(2, 2)
-        k[0,0]=Kxy[0,0]
-        k[1,1]=Kxy[1,1]
-        k[1,0]=Kxy[1,0]
-        k[0,1]=Kxy[0,1]
-        #print k
-
-def main():
-    # mesh a unit square
-    pars={ 'Lx' : 1 , 'Ly' : 1, 'Nx' : 20, 'Ny' : 10}
-    msh = gmsh.MeshLoader("../../models/rect_stru.geo",__file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    # medium/boundary conditions
-    myk = MyMaterial(1., 100., 20.)   # version python
-    #myk=h.CompiledFct2b() # compiled version (not the same fct)
-    pbl.add(h.Medium(msh, "S1", myk))
-    pbl.add(h.Dirichlet(msh,"Left", 0.))
-    pbl.add(h.Dirichlet(msh,"Right", 10.))
-
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)
-
-    # extract some results
-    x1,y1,T1 = u.getTemp(solver,"Top", sort='x')
-    
-    u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Ttop)', sum(T1) / len(T1), 5.0, 5e-2))
-    tests.add(CTest('max(Ttop)', max(T1), 10, 1e-3))
-    tests.add(CTest('min(Ttop)', min(T1), 0, 0.1))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/directors/neumann.py b/heat/tests/directors/neumann.py
deleted file mode 100755
index 8cdd8e2a..00000000
--- a/heat/tests/directors/neumann.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# test of Neumann BCs
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-
-class MyFlux(tbox.Fct0XYZ):
-    def __init__(self, ampl, cx, cy, freq):
-        tbox.Fct0XYZ.__init__(self)
-        self.freq = freq
-        self.ampl = ampl
-        self.cx   = cx
-        self.cy   = cy
-    def eval(self, pt):
-        import math
-        x = pt[0]-self.cx
-        y = pt[1]-self.cy
-        return self.ampl*math.sin(math.pi*self.freq*math.sqrt(x*x+y*y)/1.)
-
-
-def main():
-    # mesh a unit square
-    pars={ 'Lx' : 1 , 'Ly' : 1, 'Nx' : 50, 'Ny' : 50}
-    msh = gmsh.MeshLoader("../../models/rect_stru.geo",__file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    # medium/boundary conditions
-    pbl.add(h.Medium(msh, "S1", tbox.Fct2C(1.0,1.0,0.0)))
-    f1 = MyFlux(100, 0, 0, 2.0)
-    f2 = MyFlux(100, 1, 1, 2.0)
-    pbl.add(h.Boundary(msh, "Left", f1))    # <== Neumann
-    pbl.add(h.Boundary(msh, "Right", f2))   # <== Neumann
-    pbl.add(h.Dirichlet(msh, "Bottom", 0.))
-    pbl.add(h.Dirichlet(msh, "Top", 0.))
-
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)
-
-    # extract some results
-    x1,y1,T1 = u.getTemp(solver,"Left", sort='y')
-    
-    u.simpleplot(y1, T1, xlabel='y [mm]', title='Temperature along y')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Tleft)', sum(T1) / len(T1), 0.0, 1e-6))
-    tests.add(CTest('max(Tleft)', max(T1), 15.782894, 1e-3))
-    tests.add(CTest('max+min(Tleft)', max(T1)+min(T1), 0.0, 1e-6))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/directors/source.py b/heat/tests/directors/source.py
deleted file mode 100755
index 83c28a92..00000000
--- a/heat/tests/directors/source.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# simple test on a square using 'heat'
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-import math
-
-class MySource(tbox.Fct0XYZ):
-    """
-    Custom heat source
-    """
-    def __init__(self, cx, cy, freq):
-        tbox.Fct0XYZ.__init__(self)
-        self.freq = freq
-        self.cx   = cx
-        self.cy   = cy
-    def eval(self, pt):
-        x = pt[0]-self.cx
-        y = pt[1]-self.cy
-        return math.sin(2*math.pi*self.freq*math.sqrt(x*x+y*y)/1.)
-
-def main():
-
-    # mesh a unit square
-    pars={ 'Lx' : 1 , 'Ly' : 1, 'Nx' : 50, 'Ny' : 50}
-    msh = gmsh.MeshLoader("../../models/rect_stru.geo",__file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    # source calculated by python using swig directors
-    pbl.add(h.Source(msh, "S1", MySource(0.2,0.3, 5.0)))
-
-    # medium/boundary conditions
-    pbl.add(h.Medium(msh, "S1", tbox.Fct2C(0.1, 0.1, 0.0)))
-    pbl.add(h.Dirichlet(msh,"Left", 0.))
-    pbl.add(h.Dirichlet(msh,"Right", 0.))
-    pbl.add(h.Dirichlet(msh,"Bottom", 0.))
-    pbl.add(h.Dirichlet(msh,"Top", 0.))
-
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)
-
-    # extract some results
-    x1,y1,T1 = u.getTemp(solver,"S1", sort='y')
-    
-    u.simpleplot(y1, T1, xlabel='y [mm]', title='Temperature along y')
-       
-    tests = CTests()
-    tests.add(CTest('max(T)', max(T1), 0.014730, 1e-3))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/fe2/Lmacro.geo b/heat/tests/fe2/Lmacro.geo
deleted file mode 100644
index 2df0b02f..00000000
--- a/heat/tests/fe2/Lmacro.geo
+++ /dev/null
@@ -1,37 +0,0 @@
-// L
-
-lc = 3;
-
-Lx1 = 10;
-Lx2 = 20;
-
-Ly1 = 10;
-Ly2 = 20;
-
-Point(1) = { 0,       0, 0, lc};
-Point(2) = { Lx1,     0, 0, lc};
-Point(3) = { Lx1+Lx2, 0, 0, lc};
-
-Point(4) = { 0,       Ly1, 0, lc};
-Point(5) = { Lx1,     Ly1, 0, lc};
-Point(6) = { Lx1+Lx2, Ly1, 0, lc};
-
-Point(7) = { 0,       Ly1+Ly2, 0, lc};
-Point(8) = { Lx1,     Ly1+Ly2, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 6};
-Line(4) = {6, 5};
-Line(5) = {5, 8};
-Line(6) = {8, 7};
-Line(7) = {7, 4};
-Line(8) = {4, 1};
-
-Line Loop(9) = {5, 6, 7, 8, 1, 2, 3, 4};
-
-Plane Surface(10) = {9};
-
-Physical Line("Top") = {6};
-Physical Line("Right") = {3};
-Physical Surface("S1") = {10};
diff --git a/heat/tests/fe2/Lmicro.geo b/heat/tests/fe2/Lmicro.geo
deleted file mode 100644
index 1e5af699..00000000
--- a/heat/tests/fe2/Lmicro.geo
+++ /dev/null
@@ -1,33 +0,0 @@
-// square with 2 materials
-
-lc = 5e-3;
-
-Lx1 = 5e-3;
-Lx2 = 5e-3;
-
-Ly1 = 10e-3;
-
-Point(1) = { 0,       0, 0, lc};
-Point(2) = { Lx1,     0, 0, lc};
-Point(3) = { Lx1+Lx2, 0, 0, lc};
-
-Point(4) = { 0,       Ly1, 0, lc};
-Point(5) = { Lx1,     Ly1, 0, lc};
-Point(6) = { Lx1+Lx2, Ly1, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 6};
-Line(4) = {6, 5};
-Line(5) = {5, 4};
-Line(6) = {4, 1};
-Line(7) = {2, 5};
-
-Line Loop(8) = {5, 6, 1, 7};
-Plane Surface(9) = {8};
-
-Line Loop(10) = {4, -7, 2, 3};
-Plane Surface(11) = {10};
-
-Physical Surface("S1") = {9};
-Physical Surface("S2") = {11};
diff --git a/heat/tests/fe2/Lmpi.py b/heat/tests/fe2/Lmpi.py
deleted file mode 100644
index cd8ce77f..00000000
--- a/heat/tests/fe2/Lmpi.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# test multiscale - version "task pull"
-# exc:
-# mpiexec.openmpi --bycore --bind-to-core -n 6 ./run.py heat/tests/fe2/heat_mpi.py
-
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from tbox.solvers import LinearSolver
-import heat.fe2 as fe2
-from fwk.testing import *
-
-class Micro:
-    def __init__(self):
-        self.msh = gmsh.MeshLoader("Lmicro.geo", __file__).execute()
-        self.gmshWriter = tbox.GmshExport(self.msh)
-        self.pbl = h.Problem(self.msh)
-
-        self.pbl.add(h.Medium(self.msh, "S1",    tbox.Fct2C(1.,1.,0), 1.0))
-        self.pbl.add(h.Medium(self.msh, "S2", tbox.Fct2C(5.,5.,0), 1.0))
-        self.p = h.Periodic(self.pbl, 0.0, 0.0, 0.0)
-        self.pbl.add(self.p)
-        
-        self.solver = h.Solver(self.pbl, LinearSolver().pardiso())
-        self.solver.nthreads = 1
-        self.solver.save = False
-        self.solver.verbose = 0
-             
-class Macro:
-    def __init__(self, law):
-        self.msh = gmsh.MeshLoader("Lmacro.geo", __file__).execute()
-        self.gmshWriter = tbox.GmshExport(self.msh)
-        self.pbl = h.Problem(self.msh)
-
-        self.pbl.add(h.Medium(self.msh, "S1", law))
-        self.pbl.add(h.Dirichlet(self.msh,"Top", 0.))
-        self.pbl.add(h.Dirichlet(self.msh,"Right", 10.))
-
-        self.solver = h.Solver(self.pbl, LinearSolver().pardiso())
-        self.solver.nthreads = 1
-        self.solver.restol = 1e-10 
-        self.solver.itmax = 1000 
-
-if __name__ == "__main__":
-
-    # le gmsh ne doit pas etre fait par toutes les machines
-    if fe2.rank==0:
-        micro = Micro()
-    fe2.barrier() # ok uniqut sur 1node
-
-    if fe2.rank==0:
-        law = fe2.FE2(micro)
-        macro = Macro(law)
-        master = fe2.Master(macro)
-        master.start()
-    else:
-        micro = Micro()
-        worker = fe2.Worker(micro)
-        worker.start()
-
-#    if fe2.rank==0:
-#        x1,y1,T1 = u.getTemp(macro.solver,"Bottom", sort='x')
-#        
-#        u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-#           
-#        tests = CTests()
-#        tests.add(CTest('mean(Tleft)', sum(T1)/len(T1), 4.683412, 1e-6))
-#        tests.add(CTest('max(Tleft)', max(T1), 10.0))
-#        tests.add(CTest('min(Tleft)', min(T1), 0.0))
-#        tests.run()
-   
-
-
diff --git a/heat/tests/fe2/heat_mpi.py b/heat/tests/fe2/heat_mpi.py
deleted file mode 100755
index 7b2dc037..00000000
--- a/heat/tests/fe2/heat_mpi.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# test multiscale - version "task pull"
-# linux:
-#   mpiexec.openmpi --bycore --bind-to-core -n 6 ./run.py heat/tests/fe2/heat_mpi.py
-# windows (msmpi):
-#   mpiexec -n 6 python run.py heat\tests\fe2\heat_mpi.py
-
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from tbox.solvers import LinearSolver
-import heat.fe2 as fe2
-from fwk.testing import *
-
-class Micro:
-    def __init__(self):
-        self.msh = gmsh.MeshLoader("micro.geo", __file__).execute()
-        self.gmshWriter = tbox.GmshExport(self.msh)
-        self.pbl = h.Problem(self.msh)
-
-        self.pbl.add(h.Medium(self.msh, "Matrix",    tbox.Fct2C(1.,1.,0), 1.0))
-        self.pbl.add(h.Medium(self.msh, "Inclusion", tbox.Fct2C(100.,100.,0), 1.0))
-        self.p = h.Periodic(self.pbl, 0.0, 0.0, 0.0)
-        self.pbl.add(self.p)
-        
-        self.solver = h.Solver(self.pbl, LinearSolver().pardiso())
-        self.solver.nthreads = 1
-        self.solver.save = False
-        self.solver.verbose = 0
-             
-class Macro:
-    def __init__(self, law):
-        self.msh = gmsh.MeshLoader("macro.geo", __file__).execute()
-        self.gmshWriter = tbox.GmshExport(self.msh)
-        self.pbl = h.Problem(self.msh)
-
-        self.pbl.add(h.Medium(self.msh, "S1", law))
-        self.pbl.add(h.Dirichlet(self.msh,"Left", 0.))
-        self.pbl.add(h.Dirichlet(self.msh,"Right", 10.))
-
-        self.solver = h.Solver(self.pbl, LinearSolver().pardiso())
-        self.solver.nthreads = 1
-        self.solver.restol = 1e-6  
-
-if __name__ == "__main__":
-
-    # le gmsh ne doit pas etre fait par toutes les machines
-    if fe2.rank==0:
-        micro = Micro()
-    fe2.barrier() # ok uniqut sur 1node
-
-    if fe2.rank==0:
-        law = fe2.FE2(micro)
-        macro = Macro(law)
-        master = fe2.Master(macro)
-        master.start()
-    else:
-        micro = Micro()
-        worker = fe2.Worker(micro)
-        worker.start()
-
-    if fe2.rank==0:
-        # extract some results
-        x1,y1,T1 = u.getTemp(macro.solver,"Bottom", sort='x')
-        
-        u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-           
-        tests = CTests()
-        tests.add(CTest('mean(Tleft)', sum(T1) / len(T1), 4.683412, 2e-5))
-        tests.add(CTest('max(Tleft)', max(T1), 10.0))
-        tests.add(CTest('min(Tleft)', min(T1), 0.0))
-        tests.run()
-   
-
-
diff --git a/heat/tests/fe2/heat_mpi.sge.sh b/heat/tests/fe2/heat_mpi.sge.sh
deleted file mode 100755
index d850c830..00000000
--- a/heat/tests/fe2/heat_mpi.sge.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-#
-# Your job name
-#$ -N heat_mpi 
-#
-# Use current working directory
-#$ -cwd
-#
-# Join stdout and stderr
-#$ -j y
-#
-# pe (Parallel environment) request. Set your number of processors here.
-#$ -pe openmpi 12 
-#
-# Run job through bash shell
-#$ -S /bin/bash
-#
-# Mail notifications
-#$ -m beas
-#$ -M boman
-#
-# Use this queue
-#$ -q lomem.q
-## If modules are needed, source modules environment:
-#. /etc/profile.d/modules.sh
-# Add any modules you might require:
-#module add shared sge openmpi/gcc abaqus
-
-. ~/.bash_profile $SGE_O_HOST 
-
-echo "Got $NSLOTS processors."
-
-module list
-mpirun python ./run.py --nogui heat/tests/fe2/heat_mpi.py 
-
diff --git a/heat/tests/fe2/heat_mpi.slurm.sh b/heat/tests/fe2/heat_mpi.slurm.sh
deleted file mode 100755
index d1a5391e..00000000
--- a/heat/tests/fe2/heat_mpi.slurm.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-# Submission script for NIC4 
-#SBATCH --job-name=heat_mpi
-#SBATCH --time=00:40:00 # hh:mm:ss
-#
-#SBATCH --ntasks=4 
-#SBATCH --mem-per-cpu=400 # megabytes 
-#SBATCH --partition=defq 
-#
-#SBATCH --mail-user=rboman
-#SBATCH --mail-type=ALL
-#
-#SBATCH --comment=math0471
-#SBATCH --output=heat_mpi.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST 
-
-env | egrep ^SLURM
-module list
-mpirun --version
-
-
-mpirun python-mpi heat_mpi.py
-#mpirun -v --bind-to none --tag-output --report-bindings -d --display-allocation  python-mpi heat_mpi.py 
-
diff --git a/heat/tests/fe2/macro.geo b/heat/tests/fe2/macro.geo
deleted file mode 100644
index 904403fb..00000000
--- a/heat/tests/fe2/macro.geo
+++ /dev/null
@@ -1,50 +0,0 @@
-// simple regularly-meshed square
-
-lc = 2;
-
-Lx = 10;
-Ly = 10;
-
-Nx=3;
-Ny=3;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-Plane Surface(1) = {1};
-
-/*
-// regular mesh
-Transfinite Line {1, 3} = Nx Using Progression 1;
-Transfinite Line {4, 2} = Ny Using Progression 1;
-Transfinite Surface {1};
-*/
-
-
-//Recombine Surface {1}; // for quads
-
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("S1") = {1};
-
-Mesh.Algorithm = 5; // gmsh 4.5 change the default algo from Delaunay(5) to FrontalDelaunay (6). Force Delaunay for non regression tests
\ No newline at end of file
diff --git a/heat/tests/fe2/micro.geo b/heat/tests/fe2/micro.geo
deleted file mode 100644
index 0555c587..00000000
--- a/heat/tests/fe2/micro.geo
+++ /dev/null
@@ -1,63 +0,0 @@
-// RVE
-
-Lx = 1.0e-3;
-Ly = Lx;
-
-lc = Lx/10;
-
-ix = Lx/2;
-iy = Ly/2;
-iLx = 2*Lx/3;
-iLy = 2*Lx/3;
-
-// -- outer boundary
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-// -- inclusion
-
-Point(11) = { ix-iLx/2,   iy-iLy/2, 0, lc};
-Point(12) = { ix+iLx/2,   iy-iLy/2, 0, lc};
-Point(13) = { ix+iLx/2,   iy+iLy/2, 0, lc};
-Point(14) = { ix-iLx/2,   iy+iLy/2, 0, lc};
-
-Line(11) = {11, 12};
-Line(12) = {12, 13};
-Line(13) = {13, 11};
-//Line(14) = {14, 11};
-
-Line Loop(11) = {11, 12, 13};//, 14};
-
-Plane Surface(11) = {11};
-
-// -- matrix
-
-Plane Surface(1) = {1, 11};
-
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("Matrix") = {1};
-Physical Surface("Inclusion") = {11};
-
-Mesh.Algorithm = 5; // gmsh 4.5 change the default algo from Delaunay(5) to FrontalDelaunay (6). Force Delaunay for non regression tests
-
-
diff --git a/heat/tests/fe2/micro.py b/heat/tests/fe2/micro.py
deleted file mode 100755
index 7ec064a1..00000000
--- a/heat/tests/fe2/micro.py
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# check the micro problem
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-
-def main(TM, dTxM, dTyM):
-    msh = gmsh.MeshLoader("micro.geo", __file__).execute()
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    pbl.add(h.Medium(msh, "Matrix",    tbox.Fct2C(1.,1.,0), 1.0))
-    pbl.add(h.Medium(msh, "Inclusion", tbox.Fct2C(100.,100.,0), 1.0))
-    p = h.Periodic(pbl, TM, dTxM, dTyM)
-    pbl.add(p) 
-      
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)   
-      
-    # extract some results            
-    tests = CTests()
-    tests.add(CTest('mean flux X', p.qM[0], -2.278200, 1e-4))
-    tests.add(CTest('mean flux Y', p.qM[1], -2.278258, 1e-4))
-    tests.run()
-
-if __name__ == "__main__":
-    TM   = 1.0
-    dTxM = 1.0
-    dTyM = 1.0
-    main(TM, dTxM, dTyM)
diff --git a/heat/tests/nonlinear/mat2.geo b/heat/tests/nonlinear/mat2.geo
deleted file mode 100644
index 0c0b3a28..00000000
--- a/heat/tests/nonlinear/mat2.geo
+++ /dev/null
@@ -1,72 +0,0 @@
-// 2 materials and a hole
-
-lc = 0.5;
-Lx = 50;
-Ly = 10;
-
-
-ix = 8;
-iy = 6;
-DefineConstant[ iR = { 3.0, Min 0.5, Max 1.5, Step 0.1, Name "Lengths/iR" }  ];
-
-hx = Lx-8;
-hy = Ly-6;
-DefineConstant[ hR = { 3.0, Min 0.5, Max 1.5, Step 0.1, Name "Lengths/hR" }  ];
-
-
-// -- outer boundary
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(1) = {1, 2, 3, 4};
-
-
-// -- inclusion #1
-Point(11) = { ix-iR,  iy, 0, lc};
-Point(12) = { ix,     iy, 0, lc};
-Point(13) = { ix+iR,  iy, 0, lc};
-
-Circle(10) = {11, 12, 13};
-Circle(11) = {13, 12, 11};
-
-Line Loop(11) = {11, 10};
-Plane Surface(11) = {11};
-
-// -- inclusion #2
-
-Point(21) = { hx-hR,  hy, 0, lc};
-Point(22) = { hx,     hy, 0, lc};
-Point(23) = { hx+hR,  hy, 0, lc};
-
-Circle(20) = {21, 22, 23};
-Circle(21) = {23, 22, 21};
-
-Line Loop(21) = {21, 20};
-Plane Surface(21) = {21};
-
-// -- matrix
-Plane Surface(1) = {1, 11, 21};
-
-Physical Point("P1") = {1};
-Physical Point("P2") = {2};
-Physical Point("P3") = {3};
-Physical Point("P4") = {4};
-
-Physical Line("Bottom") = {1};
-Physical Line("Right") = {2};
-Physical Line("Top") = {3};
-Physical Line("Left") = {4};
-
-Physical Surface("Matrix") = {1};
-Physical Surface("Inclusion") = {11, 21};
-
-
diff --git a/heat/tests/nonlinear/mat2vark.py b/heat/tests/nonlinear/mat2vark.py
deleted file mode 100644
index 396dc994..00000000
--- a/heat/tests/nonlinear/mat2vark.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-
-def main(**d):
-
-    # default params
-    msh = gmsh.MeshLoader("mat2.geo",__file__).execute()
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    fa=tbox.PwLf()
-    fa.add(0, 100)
-    fa.add(150, 100)
-    fa.add(300, 100)
-
-    fb=tbox.PwLf()
-    fb.add(0,   10)
-    fb.add(130, 10)
-    fb.add(170, 1000)
-    fb.add(300, 1000)
-
-    fz = tbox.PwLf()
-    fz.add(0,0)
-
-    pbl.add(h.Medium(msh, "Matrix", tbox.Fct2PwLf(fa,fa,fz)))
-    pbl.add(h.Medium(msh, "Inclusion", tbox.Fct2PwLf(fb,fb,fz)))
-    
-    pbl.add(h.Dirichlet(msh, "Left", 0.))
-    pbl.add(h.Dirichlet(msh, "Right", 300.))
-    
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)
-    
-    # extract some results
-    x1,y1,T1 = u.getTemp(solver,"Top", sort='x')
-    
-    u.simpleplot(x1, T1, xlabel='x [mm]', title='Temperature along x')
-       
-    tests = CTests()
-    tests.add(CTest('mean(Ttop)', sum(T1) / len(T1), 169, 1., forceabs=True))
-    tests.add(CTest('max(Ttop)', max(T1), 300))
-    tests.add(CTest('min(Ttop)', min(T1), 0., refval=300))
-    tests.run()
-    
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/periodic/honeycomb.py b/heat/tests/periodic/honeycomb.py
deleted file mode 100755
index 3a868c19..00000000
--- a/heat/tests/periodic/honeycomb.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# test periodic BCs on a honeycomb structure
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-from fwk.testing import *
-
-class MyMaterial(tbox.Fct2U):
-    def __init__(self):
-        tbox.Fct2U.__init__(self)
-    def eval(self, u, k, fake):
-        t1 = -5.
-        t2 = 45.
-        k1 = 1.
-        k2 = 100.
-        k.resize(2, 2)
-        k[0,0] = k[1,1] = k1+(k2-k1)/(t2-t1)*(u-t1)
-        k[0,1] = k[1,0] = 0.
-        #k[0,0] = k[1,1] = k1 # simple case
-        #print "returning k=%f" %k
-        return k
-
-def main():
-    # mesh a unit square
-    pars={ 'h' : 10. , 'k' : 1., 'lc' : 1. / 3.}
-    msh = gmsh.MeshLoader("../../models/honeycomb.geo",__file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    pbl.add(h.Medium(msh, "Hexagon", tbox.Fct2C(10,10,0), 1.0))
-    f = MyMaterial()
-    pbl.add(h.Medium(msh, "Borders", f, 1.0))
-
-    TM   = 20.
-    dTxM = 1.
-    dTyM = 1.
-    p = h.Periodic(pbl, TM, dTxM, dTyM)
-    pbl.add(p)
-    
-    # solve problem
-    solver = u.solve(pbl, gmshWriter) 
-
-    # extract some results            
-    tests = CTests()
-    tests.add(CTest('mean flux X', p.qM[0], -12.6239, 1e-4))
-    tests.add(CTest('mean flux Y', p.qM[1], -12.4904, 1e-4))
-    tests.run()
-
-
-
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/periodic/lincomb.py b/heat/tests/periodic/lincomb.py
deleted file mode 100755
index d5cbf01d..00000000
--- a/heat/tests/periodic/lincomb.py
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# calculate the conductivity matrix of a particular problem
-# from the linear combination of 2 calculations (2 perpendicular gradients)
-# then, checks if the resulting flux is the same as a direct calculation
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-import fwk
-from fwk.testing import *
-
-class MyMaterial(tbox.Fct2XYZ):
-    """
-    the considered conductivity is a function of the position (x,y)
-    """
-    def __init__(self, k1, k2):
-        tbox.Fct2XYZ.__init__(self)
-        self.k1 = k1
-        self.k2 = k2
-    def eval(self, pt, k, fake):
-        x = pt[0]
-        y = pt[1]
-        L = 1.
-        import math
-        v = (self.k1+self.k2)/2 + abs(self.k2-self.k1)/2*math.sin(2*math.pi/L*4*(x+y/2))
-        k.resize(2, 2)
-        k[0,0] = k[1,1] = v
-        k[0,1] = k[1,0] = 0.
-        #k[0,0] = self.k1  # constant
-        #k[1,1] = self.k2
-
-
-def solve(TM, dTxM, dTyM):
-    """
-    solve one FE problem (for given mean values of T and gradT)
-    """
-    pars={ 'Lx' : 1 , 'Ly' : 1, 'Nx' : 20, 'Ny' : 20}
-    msh = gmsh.MeshLoader("../../models/rect_stru.geo",__file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)    
-
-    myk = MyMaterial(1.,1000.)
-    pbl.add(h.Medium(msh, "S1", myk))
-
-    p = h.Periodic(pbl, TM, dTxM, dTyM)
-    pbl.add(p)
-    
-    # solve problem
-    solver = u.solve(pbl, gmshWriter)
-
-    q1i = p.qM[0]
-    q2i = p.qM[1]
-
-    return (q1i, q2i)
-
-
-def main():
-
-    chrono = fwk.Timer(); chrono.start()
-
-    # ------------- main problem ----------------------
-    # -------------------------------------------------
-
-    TM0   = 0.0
-    dTxM0 = 0.3
-    dTyM0 = 0.2
- 
-    q1i,q2i = solve(TM0, dTxM0, dTyM0)
-    print("flux along x dir = ", q1i)
-    print("flux along y dir = ", q2i)
-
-        
-    # ------------- linear combination ----------------
-    # -------------------------------------------------
-
-    TM   = TM0
-    dTxM = 1.0   # <= gradX =1
-    dTyM = 0.0
-    
-    K11,K21 = solve(TM, dTxM, dTyM)
-    print("flux along x dir = ", K11)
-    print("flux along y dir = ", K21)    
-    
-    # -------------------------------------------------
-
-    TM   = TM0
-    dTxM = 0.0
-    dTyM = 1.0   # <= gradY =1
-
-    K12,K22 = solve(TM, dTxM, dTyM)
-    print("flux along x dir = ", K12)
-    print("flux along y dir = ", K22)
-
-    # -------------------------------------------------
-    # try to calculate the first flux 
-    # with the computed sensitivity matrix
-    # -------------------------------------------------
-
-    q1 = K11*dTxM0 + K12*dTyM0
-    q2 = K21*dTxM0 + K22*dTyM0
-
-    print()
-    print("K=[[", K11, ",", K12,"]")
-    print("   [", K21, ",", K22,"]]\n")
-    
-    print("q  (linear combination) =",q1,q2)
-    print("qi (direct calculation) =",q1i,q2i)
-    print(chrono)
-    
-    tests = CTests()
-    tests.add(CTest('q-qi (x)', abs(q1-q1i), 0.0, 1e-6))
-    tests.add(CTest('q-qi (y)', abs(q2-q2i), 0.0, 1e-6))
-    tests.run()
-
-
-
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/tests/periodic/lincomb_fast.py b/heat/tests/periodic/lincomb_fast.py
deleted file mode 100755
index c1b9677b..00000000
--- a/heat/tests/periodic/lincomb_fast.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# A NETTOYER
-
-import heat as h
-import heat.utils as u
-import tbox
-import tbox.gmsh as gmsh
-import fwk
-from fwk.testing import *
-
-class MyF(tbox.Fct2XYZ):
-    def __init__(self, k1, k2):
-        tbox.Fct2XYZ.__init__(self)
-        self.k1 = k1
-        self.k2 = k2
-        
-    def eval(self, pt, k, fake):
-        x = pt[0]
-        y = pt[1]
-        L = 1.
-        import math
-        v = (self.k1+self.k2) / 2 + abs(self.k2-self.k1)/2*math.sin(2*math.pi/L*4*(x+y/2))
-        k.resize(2, 2)
-        k[0,0] = k[1,1] = v;
-        """
-        return (self.k1+self.k2)/2+ abs(self.k2-self.k1)/2*math.sin(2*math.pi/L*4*x)*math.sin(2*math.pi/L*4*y)
-
-        if ((int(x/L*10))%2) ^ ((int(y/L*10))%2) ==1:
-            return self.k1
-        else:
-            return self.k2
-        """
-
-def main():
-
-    chrono = fwk.Timer(); chrono.start()
-    from fwk.wutils import parseargs
-    args=parseargs()
-
-    # main problem
-    msh = gmsh.MeshLoader("../../models/rect.geo", __file__).execute()
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = h.Problem(msh)
-
-    myk = h.CompiledFct1b(1., 1000.)
-    pbl.add(h.Medium(msh, "S1", myk))
-
-    TM   = 0.0
-    dTxM = 0.3
-    dTyM = 0.2
-    p = h.Periodic(pbl, TM, dTxM, dTyM)
-    pbl.add(p)
-    
-    solver = u.solve(pbl, gmshWriter)
-
-    q1i = p.qM[0]
-    q2i = p.qM[1]        
-    
-    # sensitivity
-
-    p.reset(TM, 1.0, 0.0)
-    solver.start(gmshWriter)
-    K11 = p.qM[0]
-    K21 = p.qM[1]
-    if not args.nogui:     
-        from heat.viewer import GUI
-        GUI().open(pbl.msh.name)
-        
-    p.reset(TM, 0.0, 1.0)
-    solver.start(gmshWriter)
-    K12 = p.qM[0]
-    K22 = p.qM[1]
-    if not args.nogui:  
-        from heat.viewer import GUI
-        GUI().open(pbl.msh.name)
-        
-    # try to calculate the first flux with the computed sensitivity matrix
-
-    q1 = K11*dTxM+K12*dTyM
-    q2 = K21*dTxM+K22*dTyM
-    print()
-    print("K=[[", -K11, ",", -K12,"]")
-    print("   [", -K21, ",", -K22,"]]")
-    print("q  =", q1, q2)
-    print("qi =", q1i, q2i)
-    print()
-    chrono.stop()
-    print(chrono)
-
-    tests = CTests()
-    tests.add(CTest('q-qi (x)', abs(q1-q1i), 0.0, 1e-6))
-    tests.add(CTest('q-qi (y)', abs(q2-q2i), 0.0, 1e-6))
-    tests.run()
-    
-
-if __name__ == "__main__":
-    main()
diff --git a/heat/utils.py b/heat/utils.py
deleted file mode 100644
index 29987fe3..00000000
--- a/heat/utils.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import tbox
-import heat as h
-
-def solve(pbl, writer):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-    
-    from tbox.solvers import LinearSolver
-    solver = h.Solver(pbl, LinearSolver().pardiso())
-    solver.nthreads = args.k
-    solver.restol = 1e-6
-    solver.start(writer)
-
-    if not args.nogui:
-        from heat.viewer import GUI
-        GUI().open( pbl.msh.name ) 
-           
-    return solver
-
-def getTemp(solver, linelabel="Bottom", sort='x'):
-    """
-    extract x,y,T on a line & return 3 numpy arrays
-    """     
-    nodes_bot = tbox.Group(solver.pbl.msh, linelabel)
-    extr = h.Extractor(solver, nodes_bot)
-
-    import numpy as np
-    v = np.array(extr.execute())
-    
-    nos = np.zeros_like(v, dtype=np.int)
-    nxs = np.zeros_like(v)
-    nys = np.zeros_like(v)
-    for i in range(len(v)):
-        n = extr.nodes[i]
-        nos[i] = n.no
-        nxs[i] = n.pos[0]
-        nys[i] = n.pos[1]
-    if sort=='x':  
-        iis = np.argsort(nxs)
-    else:
-        iis = np.argsort(nys)
-    return (nxs[iis], nys[iis], v[iis])
-
-
-def simpleplot(x, y, xlabel='x',title=''):
-
-    # plot results using matplotlib
-    from fwk.wutils import parseargs
-    args = parseargs()
-    if not args.nogui:
-        import matplotlib.pyplot as plt
-        plt.plot(x, y, 'bo-',lw=2)   
-        plt.xlabel(xlabel)
-        #plt.ylim(0,150)
-        plt.title(title)
-        plt.grid(True)
-        plt.show()
-
-    
diff --git a/heat/viewer.py b/heat/viewer.py
deleted file mode 100644
index c6b48f4b..00000000
--- a/heat/viewer.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import os, os.path
-
-class GUI:
-    def __init__(self):
-        pass
-    def open(self,prefix):
-        mshfile = prefix+".msh"
-        if not os.path.isfile(mshfile):
-            raise Exception("file not found %s" % mshfile)
-        posfile = prefix+".pos"
-        if not os.path.isfile(posfile):
-            raise Exception("file not found %s" % posfile)
-        optfile = prefix+".opt"
-        if not os.path.isfile(optfile):
-            self.defopt(optfile)
-        cmd="gmsh %s %s %s" % (mshfile, posfile, optfile)
-        os.system(cmd)        
-
-    def defopt(self,fname='heat.opt'):
-        f = open(fname,'w')
-        f.write("General.Orthographic = 0;\n")
-        f.write("View[0].Visible = 1;\n")
-        f.write("View[0].IntervalsType = 3;  // filled iso\n")
-        for i in range(1,10):
-            f.write("View[%d].Visible = 0;\n" % i)
-        f.write("View[8].TensorType = 4;\n")
-        f.write("View[8].VectorType = 1;\n")
-        f.write("View[8].ArrowSizeMax = 20;\n")
-        f.write("//View[8].ExternalView = 8;\n")
-        f.close()
-    
diff --git a/katoptron/CMAME/MG/beam.geo b/katoptron/CMAME/MG/beam.geo
deleted file mode 100644
index df548c67..00000000
--- a/katoptron/CMAME/MG/beam.geo
+++ /dev/null
@@ -1,81 +0,0 @@
-SetFactory("OpenCASCADE");
-If(GMSH_MAJOR_VERSION!=3 || GMSH_MINOR_VERSION!=0 || GMSH_PATCH_VERSION!=6)
-  Printf("gmsh %g.%g.%g is not supported by this .geo",GMSH_MAJOR_VERSION,GMSH_MINOR_VERSION,GMSH_PATCH_VERSION);
-Else
-  LX = 10;
-  LY = 10;
-  lx2 = 2;
-  ly1 = 2;
-  ly2 = 7;
-  LZ = 1;
-
-  lc = 0.1;
-
-  nX1 = 5;
-  nY1 = 3;
-  nX2 = 3;
-  nX3 = 4;
-  nY2 = 6;  
-  nZ = 1;
-
-  Point(1)  = { 0.,  LY-ly1, 0.,     lc};
-  Point(2)  = { 0.,  LY, 0.,     lc};
-  Point(3)  = { LX-lx2,  LY, 0.,     lc};
-  Point(4)  = { LX-lx2,  LY-ly1, 0.,     lc};
-  Point(5)  = { LX,  LY, 0.,     lc};
-  Point(6)  = { LX,  LY-ly1, 0.,     lc};  
-
-  Point(7)  = { LX-lx2,  0., 0.,     lc};
-  Point(8)  = { LX-lx2,  ly2, 0.,     lc};
-  Point(9)  = { LX,  ly2, 0.,     lc};
-  Point(10)  = { LX,  0., 0.,     lc};
-
-  Line(1) = {1, 2};
-  Line(2) = {2, 3};
-  Line(3) = {3, 4};
-  Line(4) = {4, 1};
-  Line(5) = {3, 5};
-  Line(6) = {5, 6};
-  Line(7) = {6, 4};
-
-  Line(8) = {7, 8};
-  Line(9) = {8, 9};
-  Line(10) = {9, 10};
-  Line(11) = {10, 7};  
-
-  Transfinite Line {1, 3, 6} = nY1 Using Progression 1;
-  Transfinite Line {2, 4} = nX1 Using Progression 1;
-  Transfinite Line {5, 7} = nX3 Using Progression 1;
-
-  Transfinite Line {8, 10} = nY2 Using Progression 1;
-  Transfinite Line {9, 11} = nX2 Using Progression 1;
-
-  Line Loop(9) = {1, 2, 3, 4};
-  Plane Surface(9) = {9};
-  Transfinite Surface {9};
-  Recombine Surface {9};
-
-  Line Loop(10) = {-3, 5, 6, 7};
-  Plane Surface(10) = {10};
-  Transfinite Surface {10};
-  Recombine Surface {10};  
-
-  Line Loop(12) = {8, 9, 10, 11};
-  Plane Surface(12) = {12};
-  Transfinite Surface {12};
-  Recombine Surface {12};  
-
-  Extrude {0, 0, LZ}
-  {
-    Surface{9,10,12}; Layers{nZ}; Recombine;
-  }
-
-  Physical Volume("body") = {1,2,3};
-
-  Physical Surface("load 1") = {14};
-  Physical Surface("load 2") = {20};
-  Physical Surface("clamped 1") = {13};
-  Physical Surface("clamped 2") = {25};
-  Physical Surface("conctact 1") = {18};
-  Physical Surface("conctact 2") = {23};
-EndIf
diff --git a/katoptron/CMAME/MG/beam.py b/katoptron/CMAME/MG/beam.py
deleted file mode 100644
index 3dc43478..00000000
--- a/katoptron/CMAME/MG/beam.py
+++ /dev/null
@@ -1,240 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_beam_test(msh, comm, test_case):
-
-    directory = str(test_case)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    pbl = m.Problem(msh, comm)
-
-    ensemble_size = 1
-
-    # Units are in mm
-    E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-    nu = 0.35 * np.ones(ensemble_size)
-    k = 0.
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamped 1", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    m.Dirichlet(pbl, "clamped 2", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-
-    f = 70 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-    zero = np.zeros(ensemble_size)
-    one = np.ones(ensemble_size)
-    m.Neumann(pbl, 'load 1', 'load', 0, zero, 1, -f, 0, zero, 0, one,
-              ensemble_size)
-    m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -f, 0, zero, 0, one,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 1e-8
-    solverList['Maximum Iterations'] = 200
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    if test_case == 1:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 1
-        mueluParams['coarse: type'] = "RELAXATION"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['relaxation: type'] = "Gauss-Seidel"
-        mueluParamsSub2['relaxation: sweeps'] = 3
-        mueluParamsSub2['relaxation: damping factor'] = 0.75
-
-        mueluParams['verbosity'] = "high"
-
-        mueluParams['coarse: params'] = mueluParamsSub2
-
-        solverList['mueluParams'] = mueluParams
-
-    elif test_case == 2:
-        file_dir = os.path.dirname(__file__)
-        muelu_xml_in = file_dir + '/../../preconditioners/gs_lvl.xml.in'
-
-        old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                       '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                       '$SCHUR_omega', '$SimpleSmoother_damping', "$N_LVLS", "$N_SIZES", "$EXPORT_DATA"]
-        new_strings = [
-            '3',
-            '3',
-            '3',
-            '0.75',
-            '1',
-            '1',
-            '2',
-            '18',
-            "true"
-        ]
-        u.replace_strings(muelu_xml_in, work_dir + '/gs.xml',
-                          old_strings, new_strings)
-        solverList['use xml file'] = True
-        solverList['MueLu xml file name'] = work_dir + '/gs.xml'
-
-    elif test_case == 2.5:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 2
-        mueluParams['smoother: type'] = "RELAXATION"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-        mueluParamsSub2['relaxation: type'] = "Gauss-Seidel"
-        mueluParamsSub2['relaxation: sweeps'] = 3
-        mueluParamsSub2['relaxation: damping factor'] = 0.75
-
-        mueluParams['verbosity'] = "high"
-        mueluParams['smoother: params'] = mueluParamsSub2
-        mueluParams['coarse: type'] = "Klu"
-        mueluParams['coarse: max size'] = 18
-        #mueluParams['aggregation: min agg size'] = 5
-        #mueluParams['aggregation: max selected neighbors'] = 1
-        mueluParams['aggregation: export visualization data'] = True
-        exportdata = Teuchos.ParameterList()
-        exportdata['A'] = '{0,1}'
-        exportdata['P'] = '{0}'
-        exportdata['R'] = '{0}'
-        exportdata['Aggregates'] = '{0}'
-        mueluParams['export data'] = exportdata
-        solverList['mueluParams'] = mueluParams
-
-    else:
-        norm = tbox.Vector3d(0, 1, 0)
-        cont = m.Contact(pbl, "conctact 1", "contact", norm)
-        cont.setInitialyOpen()
-        cont.setNoUpdate()
-        if test_case == 4 or test_case == 6:
-            cont.setSticking()
-        cont.setMaster(pbl, "conctact 2", norm)
-
-        file_dir = os.path.dirname(__file__)
-
-        if test_case == 3 or test_case == 4:
-            muelu_xml_in = file_dir + '/../../preconditioners/SIMPLE_gs_direct.xml.in'
-
-            old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                           '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                           '$SCHUR_omega', '$SimpleSmoother_damping']
-            if test_case == 4:
-                new_strings = [
-                    '3',
-                    '3',
-                    '3',
-                    '0.75',
-                    '1',
-                    '1'
-                ]
-            else:
-                new_strings = [
-                    '3',
-                    '1',
-                    '3',
-                    '0.75',
-                    '1',
-                    '1'
-                ]
-        else:
-            muelu_xml_in = file_dir + '/../../preconditioners/SIMPLE_gs_direct_lvl.xml.in'
-
-            old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                           '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                           '$SCHUR_omega', '$SimpleSmoother_damping', "$N_LVLS", "$N_SIZES", "$EXPORT_DATA"]
-            if test_case == 6:
-                new_strings = [
-                    '3',
-                    '3',
-                    '3',
-                    '0.75',
-                    '1',
-                    '1',
-                    '2',
-                    '18',
-                    "true"
-                ]
-            else:
-                new_strings = [
-                    '3',
-                    '1',
-                    '3',
-                    '0.75',
-                    '1',
-                    '1',
-                    '2',
-                    '18',
-                    "true"
-                ]
-        u.replace_strings(muelu_xml_in, work_dir + '/SIMPLE_gs_direct.xml',
-                          old_strings, new_strings)
-        solverList['MueLu xml file name'] = work_dir + '/SIMPLE_gs_direct.xml'
-
-    solverList['convert MueLu xml file'] = True
-    solverList['Create Preconditioned Matrix'] = True
-
-    solverList['Print Teuchos timers'] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = 'BlockGmres'
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 3, ensemble_size)
-    slv.start()
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-    os.chdir('..')
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = gmsh.MeshLoader('beam.geo', file_dir).execute()
-
-    for i in range(1, 7):
-        evaluate_beam_test(msh, comm, i)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/MG/post.py b/katoptron/CMAME/MG/post.py
deleted file mode 100644
index 405eab92..00000000
--- a/katoptron/CMAME/MG/post.py
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-import os
-import fwk
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.cutter as vtkC
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    input_file_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_MG_beam_12/'
-
-    filename_A_1 = input_file_dir + '1/Applied_Matrix_mm.txt'
-    filename_A_2 = input_file_dir + '2/Applied_Matrix_mm.txt'
-    filename_A_3 = input_file_dir + '3/Applied_Matrix_mm.txt'
-    filename_A_4 = input_file_dir + '4/Applied_Matrix_mm.txt'
-    filename_A_5 = input_file_dir + '5/Applied_Matrix_mm.txt'
-    filename_A_6 = input_file_dir + '6/Applied_Matrix_mm.txt'
-
-    filename_AQ_1 = input_file_dir + '1/Applied_Preconditioned_Matrix_mm.txt'
-    filename_AQ_2 = input_file_dir + '2/Applied_Preconditioned_Matrix_mm.txt'
-    filename_AQ_3 = input_file_dir + '3/Applied_Preconditioned_Matrix_mm.txt'
-    filename_AQ_4 = input_file_dir + '4/Applied_Preconditioned_Matrix_mm.txt'
-    filename_AQ_5 = input_file_dir + '5/Applied_Preconditioned_Matrix_mm.txt'
-    filename_AQ_6 = input_file_dir + '6/Applied_Preconditioned_Matrix_mm.txt'
-
-    filename_Q_1 = input_file_dir + '1/Applied_Preconditioner_mm.txt'
-    filename_Q_2 = input_file_dir + '2/Applied_Preconditioner_mm.txt'
-    filename_Q_3 = input_file_dir + '3/Applied_Preconditioner_mm.txt'
-    filename_Q_4 = input_file_dir + '4/Applied_Preconditioner_mm.txt'
-    filename_Q_5 = input_file_dir + '5/Applied_Preconditioner_mm.txt'
-    filename_Q_6 = input_file_dir + '6/Applied_Preconditioner_mm.txt'
-
-    filename_b = input_file_dir + '1/b_mm_after_bc.txt'
-
-    b = read_mm(filename_b, is_sparse=False)
-
-    Q_1 = read_mm(filename_Q_1, is_sparse=False)
-    Q_2 = read_mm(filename_Q_2, is_sparse=False)
-    Q_3 = read_mm(filename_Q_3, is_sparse=False)
-    Q_4 = read_mm(filename_Q_4, is_sparse=False)
-    Q_5 = read_mm(filename_Q_5, is_sparse=False)
-    Q_6 = read_mm(filename_Q_6, is_sparse=False)
-
-    b_1 = np.zeros((Q_1.shape[0],))
-    b_2 = np.zeros((Q_2.shape[0],))
-    b_3 = np.zeros((Q_3.shape[0],))
-    b_4 = np.zeros((Q_4.shape[0],))
-    b_5 = np.zeros((Q_5.shape[0],))
-    b_6 = np.zeros((Q_6.shape[0],))
-
-    b_1[0:len(b)] = b
-    b_2[0:len(b)] = b
-    b_3[0:len(b)] = b
-    b_4[0:len(b)] = b
-    b_5[0:len(b)] = b
-    b_6[0:len(b)] = b
-
-    x_1 = np.zeros((len(b_1),))
-    x_2 = np.zeros((len(b_2),))
-    x_3 = np.zeros((len(b_3),))
-    x_4 = np.zeros((len(b_4),))
-    x_5 = np.zeros((len(b_5),))
-    x_6 = np.zeros((len(b_6),))
-
-    A_1 = read_mm(filename_A_1, is_sparse=False)
-    A_2 = read_mm(filename_A_2, is_sparse=False)
-    A_3 = read_mm(filename_A_3, is_sparse=False)
-    A_4 = read_mm(filename_A_4, is_sparse=False)
-    A_5 = read_mm(filename_A_5, is_sparse=False)
-    A_6 = read_mm(filename_A_6, is_sparse=False)
-
-    r_1 = A_1.dot(x_1) - b_1
-    r_2 = A_2.dot(x_2) - b_2
-    r_3 = A_3.dot(x_3) - b_3
-    r_4 = A_4.dot(x_4) - b_4
-    r_5 = A_5.dot(x_5) - b_5
-    r_6 = A_6.dot(x_6) - b_6
-
-    AQ_1 = read_mm(filename_AQ_1, is_sparse=False)
-    AQ_2 = read_mm(filename_AQ_2, is_sparse=False)
-    AQ_3 = read_mm(filename_AQ_3, is_sparse=False)
-    AQ_4 = read_mm(filename_AQ_4, is_sparse=False)
-    AQ_5 = read_mm(filename_AQ_5, is_sparse=False)
-    AQ_6 = read_mm(filename_AQ_6, is_sparse=False)
-
-    plt.figure()
-    plt.plot(Q_2.dot(r_2))
-    plt.plot(Q_5.dot(r_5))
-    plt.figure()
-    tmp = Q_5.dot(r_5)
-    tmp[0:len(r_2)] = tmp[0:len(r_2)] - Q_2.dot(r_2)
-    plt.plot(tmp)
-    # plt.plot(Q_2.dot(r_2))
-
-    # plt.plot(Q_4.dot(r_4))
-    # plt.figure()
-    # plt.spy(A_1)
-    # plt.figure()
-    # plt.spy(A_3)
-    plt.figure()
-    plt.spy(Q_2, precision=1e-8)
-    plt.figure()
-    plt.spy(Q_5, precision=1e-8)
-    plt.figure()
-    tmp = Q_5
-    tmp[0:252, 0:252] = tmp[0:252, 0:252] - Q_2
-    plt.spy(tmp, precision=1e-8)
-
-    plt.figure()
-    tmp = A_5
-    tmp[0:252, 0:252] = tmp[0:252, 0:252] - A_2
-    plt.spy(tmp, precision=1e-8)
-
-    tmp = np.abs(A_1.flatten())
-    print(np.min(tmp[tmp != 0.]))
-    tmp = np.abs(A_3.flatten())
-    print(np.min(tmp[tmp != 0.]))
-
-    plt.figure()
-    tmp = AQ_5
-    tmp[0:252, 0:252] = tmp[0:252, 0:252] - AQ_2
-    plt.spy(tmp, precision=1e-8)
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/__init__.py b/katoptron/CMAME/__init__.py
deleted file mode 100644
index 0129f367..00000000
--- a/katoptron/CMAME/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-# -*- coding: utf-8; -*-
diff --git a/katoptron/CMAME/mesh/plate.geo b/katoptron/CMAME/mesh/plate.geo
deleted file mode 100644
index d157a23f..00000000
--- a/katoptron/CMAME/mesh/plate.geo
+++ /dev/null
@@ -1,86 +0,0 @@
-SetFactory("OpenCASCADE");
-If(GMSH_MAJOR_VERSION<=3 && GMSH_MINOR_VERSION<=0 && GMSH_PATCH_VERSION<=6)
-  Printf("gmsh %g.%g.%g is not supported by this .geo",GMSH_MAJOR_VERSION,GMSH_MINOR_VERSION,GMSH_PATCH_VERSION);
-Else
-  LX = 10;
-  LY = 10;
-  LZ = 1;
-
-  CX = LX/2;
-  CY = LY/2;
-
-  R = 2;
-  dR = 0;
-
-  nT = 40;
-  nZ = 3;
-  ndR = 20;
-
-  PI = Acos (-1.);
-
-  lc = 1;
-
-  Point(201)  = { CX,    CY,  0.,     lc};
-
-  Point(202)  = { CX+(R+dR)*Cos(1*PI/4),  CY+(R+dR)*Sin(1*PI/4), 0.,     lc};
-  Point(203)  = { CX+(R+dR)*Cos(3*PI/4),  CY+(R+dR)*Sin(3*PI/4), 0.,     lc};
-  Point(204)  = { CX+(R+dR)*Cos(5*PI/4),  CY+(R+dR)*Sin(5*PI/4), 0.,     lc};
-  Point(205)  = { CX+(R+dR)*Cos(7*PI/4),  CY+(R+dR)*Sin(7*PI/4), 0.,     lc};
-
-  Point(206)  = { LX,  LY, 0.,     lc};
-  Point(207)  = { 0.,  LY, 0.,     lc};
-  Point(208)  = { 0.,  0., 0.,     lc};
-  Point(209)  = { LX,  0., 0.,     lc};
-
-  Circle(2101) = {202, 201, 203};
-  Circle(2102) = {203, 201, 204};
-  Circle(2103) = {204, 201, 205};
-  Circle(2104) = {205, 201, 202};
-
-  Line(2105) = {206, 207};
-  Line(2106) = {207, 208};
-  Line(2107) = {208, 209};
-  Line(2108) = {209, 206};
-
-  Line(2201) = {202, 206};
-  Line(2202) = {203, 207};
-  Line(2203) = {204, 208};
-  Line(2204) = {205, 209};
-
-  Transfinite Line {2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108} = nT Using Progression 1;
-  Transfinite Line {2201, 2202, 2203, 2204} = ndR Using Progression 1;
-
-  Line Loop(201) = {2101, 2202, -2105, -2201};
-  Plane Surface(201) = {201};
-  Transfinite Surface {201};
-  Recombine Surface {201};
-
-  Line Loop(202) = {2202, 2106, -2203, -2102};
-  Plane Surface(202) = {202};
-  Transfinite Surface {202};
-  Recombine Surface {202};
-
-  Line Loop(203) = {2103, 2204, -2107, -2203};
-  Plane Surface(203) = {203};
-  Transfinite Surface {203};
-  Recombine Surface {203};
-
-  Line Loop(204) = {2104, 2201, -2108, -2204};
-  Plane Surface(204) = {204};
-  Transfinite Surface {204};
-  Recombine Surface {204};
-
-  Extrude {0, 0, LZ}
-  {
-    Surface{201,202,203,204}; Layers{nZ}; Recombine;
-  }
-
-  Physical Volume("body") = {1,2,3,4};
-  //+
-  Physical Surface("outer part boundary") = {205,212,214,218};
-  Physical Surface("load 1") = {207};
-  Physical Surface("load 2") = {216};
-  Physical Point("clamped xyz") = {214};
-  Physical Point("clamped xy") = {208};
-  Physical Point("clamped y") = {217};
-EndIf
diff --git a/katoptron/CMAME/mesh/plate_1.geo b/katoptron/CMAME/mesh/plate_1.geo
deleted file mode 100644
index 719e836d..00000000
--- a/katoptron/CMAME/mesh/plate_1.geo
+++ /dev/null
@@ -1,81 +0,0 @@
-SetFactory("OpenCASCADE");
-If(GMSH_MAJOR_VERSION<=3 && GMSH_MINOR_VERSION<=0 && GMSH_PATCH_VERSION<6)
-  Printf("gmsh %g.%g.%g is not supported by this .geo",GMSH_MAJOR_VERSION,GMSH_MINOR_VERSION,GMSH_PATCH_VERSION);
-Else
-  LX = 10;
-  LY = 10;
-  LZ = 1;
-
-  CX = LX/2;
-  CY = LY/2;
-
-  R = 2;
-  dR = 1;
-
-  nT = 30;
-  nZ = 5;
-  ndR = 10;
-
-  PI = Acos (-1.);
-
-  lc = 1;
-
-  Point(1)  = { CX,    CY,  0.,     lc};
-  Point(2)  = { CX+R*Cos(1*PI/4),  CY+R*Sin(1*PI/4), 0.,     lc};
-  Point(3)  = { CX+R*Cos(3*PI/4),  CY+R*Sin(3*PI/4), 0.,     lc};
-  Point(4)  = { CX+R*Cos(5*PI/4),  CY+R*Sin(5*PI/4), 0.,     lc};
-  Point(5)  = { CX+R*Cos(7*PI/4),  CY+R*Sin(7*PI/4), 0.,     lc};
-
-  Point(6)  = { CX+(R+dR)*Cos(1*PI/4),  CY+(R+dR)*Sin(1*PI/4), 0.,     lc};
-  Point(7)  = { CX+(R+dR)*Cos(3*PI/4),  CY+(R+dR)*Sin(3*PI/4), 0.,     lc};
-  Point(8)  = { CX+(R+dR)*Cos(5*PI/4),  CY+(R+dR)*Sin(5*PI/4), 0.,     lc};
-  Point(9)  = { CX+(R+dR)*Cos(7*PI/4),  CY+(R+dR)*Sin(7*PI/4), 0.,     lc};
-
-  Circle(101) = {2, 1, 3};
-  Circle(102) = {3, 1, 4};
-  Circle(103) = {4, 1, 5};
-  Circle(104) = {5, 1, 2};
-
-  Circle(105) = {6, 1, 7};
-  Circle(106) = {7, 1, 8};
-  Circle(107) = {8, 1, 9};
-  Circle(108) = {9, 1, 6};
-
-  Line(201) = {2, 6};
-  Line(202) = {3, 7};
-  Line(203) = {4, 8};
-  Line(204) = {5, 9};
-
-  Transfinite Line {101, 102, 103, 104, 105, 106, 107, 108} = nT Using Progression 1;
-  Transfinite Line {201, 202, 203, 204} = ndR Using Progression 1;
-
-  Line Loop(1) = {101, 202, -105, -201};
-  Plane Surface(1) = {1};
-  Transfinite Surface {1};
-  Recombine Surface {1};
-
-  Line Loop(2) = {202, 106, -203, -102};
-  Plane Surface(2) = {2};
-  Transfinite Surface {2};
-  Recombine Surface {2};
-
-  Line Loop(3) = {103, 204, -107, -203};
-  Plane Surface(3) = {3};
-  Transfinite Surface {3};
-  Recombine Surface {3};
-
-  Line Loop(4) = {104, 201, -108, -204};
-  Plane Surface(4) = {4};
-  Transfinite Surface {4};
-  Recombine Surface {4};
-
-  Extrude {0, 0, LZ}
-  {
-    Surface{1,2,3,4}; Layers{nZ}; Recombine;
-  }
-  Physical Volume("body") = {1,2,3,4};
-  //+
-  Physical Surface("inner part boundary") = {7,10,16,19};
-  //+
-  Physical Surface("inner boundary") = {12, 5, 18, 14};
-EndIf
diff --git a/katoptron/CMAME/mesh/plate_2.geo b/katoptron/CMAME/mesh/plate_2.geo
deleted file mode 100644
index 9b35b6d8..00000000
--- a/katoptron/CMAME/mesh/plate_2.geo
+++ /dev/null
@@ -1,86 +0,0 @@
-SetFactory("OpenCASCADE");
-If(GMSH_MAJOR_VERSION<=3 && GMSH_MINOR_VERSION<=0 && GMSH_PATCH_VERSION<6)
-  Printf("gmsh %g.%g.%g is not supported by this .geo",GMSH_MAJOR_VERSION,GMSH_MINOR_VERSION,GMSH_PATCH_VERSION);
-Else
-  LX = 10;
-  LY = 10;
-  LZ = 1;
-
-  CX = LX/2;
-  CY = LY/2;
-
-  R = 2;
-  dR = 1;
-
-  nT = 20;
-  nZ = 3;
-  ndR = 10;
-
-  PI = Acos (-1.);
-
-  lc = 1;
-
-  Point(201)  = { CX,    CY,  0.,     lc};
-
-  Point(202)  = { CX+(R+dR)*Cos(1*PI/4),  CY+(R+dR)*Sin(1*PI/4), 0.,     lc};
-  Point(203)  = { CX+(R+dR)*Cos(3*PI/4),  CY+(R+dR)*Sin(3*PI/4), 0.,     lc};
-  Point(204)  = { CX+(R+dR)*Cos(5*PI/4),  CY+(R+dR)*Sin(5*PI/4), 0.,     lc};
-  Point(205)  = { CX+(R+dR)*Cos(7*PI/4),  CY+(R+dR)*Sin(7*PI/4), 0.,     lc};
-
-  Point(206)  = { LX,  LY, 0.,     lc};
-  Point(207)  = { 0.,  LY, 0.,     lc};
-  Point(208)  = { 0.,  0., 0.,     lc};
-  Point(209)  = { LX,  0., 0.,     lc};
-
-  Circle(2101) = {202, 201, 203};
-  Circle(2102) = {203, 201, 204};
-  Circle(2103) = {204, 201, 205};
-  Circle(2104) = {205, 201, 202};
-
-  Line(2105) = {206, 207};
-  Line(2106) = {207, 208};
-  Line(2107) = {208, 209};
-  Line(2108) = {209, 206};
-
-  Line(2201) = {202, 206};
-  Line(2202) = {203, 207};
-  Line(2203) = {204, 208};
-  Line(2204) = {205, 209};
-
-  Transfinite Line {2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108} = nT Using Progression 1;
-  Transfinite Line {2201, 2202, 2203, 2204} = ndR Using Progression 1;
-
-  Line Loop(201) = {2101, 2202, -2105, -2201};
-  Plane Surface(201) = {201};
-  Transfinite Surface {201};
-  Recombine Surface {201};
-
-  Line Loop(202) = {2202, 2106, -2203, -2102};
-  Plane Surface(202) = {202};
-  Transfinite Surface {202};
-  Recombine Surface {202};
-
-  Line Loop(203) = {2103, 2204, -2107, -2203};
-  Plane Surface(203) = {203};
-  Transfinite Surface {203};
-  Recombine Surface {203};
-
-  Line Loop(204) = {2104, 2201, -2108, -2204};
-  Plane Surface(204) = {204};
-  Transfinite Surface {204};
-  Recombine Surface {204};
-
-  Extrude {0, 0, LZ}
-  {
-    Surface{201,202,203,204}; Layers{nZ}; Recombine;
-  }
-
-  Physical Volume("body") = {1,2,3,4};
-  //+
-  Physical Surface("outer part boundary") = {205,212,214,218};
-  Physical Surface("load 1") = {207};
-  Physical Surface("load 2") = {216};
-  Physical Point("clamped xyz") = {214};
-  Physical Point("clamped xy") = {208};
-  Physical Point("clamped y") = {217};
-EndIf
diff --git a/katoptron/CMAME/mesh/plate_2_extended.geo b/katoptron/CMAME/mesh/plate_2_extended.geo
deleted file mode 100644
index 130383a3..00000000
--- a/katoptron/CMAME/mesh/plate_2_extended.geo
+++ /dev/null
@@ -1,174 +0,0 @@
-SetFactory("OpenCASCADE");
-If(GMSH_MAJOR_VERSION<=3 && GMSH_MINOR_VERSION<=0 && GMSH_PATCH_VERSION<6)
-  Printf("gmsh %g.%g.%g is not supported by this .geo",GMSH_MAJOR_VERSION,GMSH_MINOR_VERSION,GMSH_PATCH_VERSION);
-Else
-  LX = 10;
-  LY = 10;
-  LZ = 1;
-
-  NX = 4;
-  NY = 4;
-
-  CX = LX/2;
-  CY = LY/2;
-
-  R = 2;
-  dR = 1;
-
-  nT = 20;
-  nZ = 3;
-  ndR = 10;
-
-  PI = Acos (-1.);
-
-  lc = 1;
-
-  Point(201)  = { CX,    CY,  0.,     lc};
-
-  Point(202)  = { CX+(R+dR)*Cos(1*PI/4),  CY+(R+dR)*Sin(1*PI/4), 0.,     lc};
-  Point(203)  = { CX+(R+dR)*Cos(3*PI/4),  CY+(R+dR)*Sin(3*PI/4), 0.,     lc};
-  Point(204)  = { CX+(R+dR)*Cos(5*PI/4),  CY+(R+dR)*Sin(5*PI/4), 0.,     lc};
-  Point(205)  = { CX+(R+dR)*Cos(7*PI/4),  CY+(R+dR)*Sin(7*PI/4), 0.,     lc};
-
-  Point(206)  = { LX,  LY, 0.,     lc};
-  Point(207)  = { 0.,  LY, 0.,     lc};
-  Point(208)  = { 0.,  0., 0.,     lc};
-  Point(209)  = { LX,  0., 0.,     lc};
-
-  Circle(2101) = {202, 201, 203};
-  Circle(2102) = {203, 201, 204};
-  Circle(2103) = {204, 201, 205};
-  Circle(2104) = {205, 201, 202};
-
-  Line(2105) = {206, 207};
-  Line(2106) = {207, 208};
-  Line(2107) = {208, 209};
-  Line(2108) = {209, 206};
-
-  Line(2201) = {202, 206};
-  Line(2202) = {203, 207};
-  Line(2203) = {204, 208};
-  Line(2204) = {205, 209};
-
-  Point(301)  = { -NX*LX,  NY*LY+LY, 0.,     lc};
-  Point(302)  = { 0,  NY*LY+LY, 0.,     lc};
-  Point(303)  = { -NX*LX,  LY, 0.,     lc};
-
-  Line(311) = {301, 302};
-  Line(312) = {302, 207};
-  Line(313) = {207, 303};
-  Line(314) = {303, 301};
-
-  Point(501)  = { LX,  NY*LY+LY, 0.,     lc};
-  Point(502)  = { LX+NX*LX,  NY*LY+LY, 0.,     lc};
-  Point(503)  = { LX+NX*LX,  LY, 0.,     lc};
-
-  Line(511) = {501, 502};
-  Line(512) = {502, 503};
-  Line(513) = {503, 206};
-  Line(514) = {206, 501};
-
-  Point(801)  = { -NX*LX,  0, 0.,     lc};
-  Point(802)  = { 0,  -NY*LY, 0.,     lc};
-  Point(803)  = { -NX*LX,  -NY*LY, 0.,     lc};
-
-  Line(811) = {801, 208};
-  Line(812) = {208, 802};
-  Line(813) = {802, 803};
-  Line(814) = {803, 801};
-
-  Point(1001)  = { LX+NX*LX,  0, 0.,     lc};
-  Point(1002)  = { LX+NX*LX,  -NY*LY, 0.,     lc};
-  Point(1003)  = { LX,  -NY*LY, 0.,     lc};
-
-  Line(1011) = {209, 1001};
-  Line(1012) = {1001, 1002};
-  Line(1013) = {1002, 1003};
-  Line(1014) = {1003, 209};
-
-  Line(411) = {302, 501};
-  Line(611) = {801, 303};
-  Line(711) = {503, 1001};
-  Line(911) = {1003, 802};
-
-  Transfinite Line {2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 411, 611, 711, 911} = nT Using Progression 1;
-  Transfinite Line {2201, 2202, 2203, 2204} = ndR Using Progression 1;
-  Transfinite Line {311,511,313,513,811,1011,813,1013} = NX*nT Using Progression 1;
-  Transfinite Line {314,814,312,812,514,1014,512,1012} = NY*nT Using Progression 1;
-
-  Line Loop(201) = {2101, 2202, -2105, -2201};
-  Plane Surface(201) = {201};
-  Transfinite Surface {201};
-  Recombine Surface {201};
-
-  Line Loop(202) = {2202, 2106, -2203, -2102};
-  Plane Surface(202) = {202};
-  Transfinite Surface {202};
-  Recombine Surface {202};
-
-  Line Loop(203) = {2103, 2204, -2107, -2203};
-  Plane Surface(203) = {203};
-  Transfinite Surface {203};
-  Recombine Surface {203};
-
-  Line Loop(204) = {2104, 2201, -2108, -2204};
-  Plane Surface(204) = {204};
-  Transfinite Surface {204};
-  Recombine Surface {204};
-
-  Line Loop(205) = {311, 312, 313, 314};
-  Plane Surface(205) = {205};
-  Transfinite Surface {205};
-  Recombine Surface {205};
-
-  Line Loop(206) = {511, 512, 513, 514};
-  Plane Surface(206) = {206};
-  Transfinite Surface {206};
-  Recombine Surface {206};
-
-  Line Loop(207) = {811, 812, 813, 814};
-  Plane Surface(207) = {207};
-  Transfinite Surface {207};
-  Recombine Surface {207};
-
-  Line Loop(208) = {1011, 1012, 1013, 1014};
-  Plane Surface(208) = {208};
-  Transfinite Surface {208};
-  Recombine Surface {208};
-
-  Line Loop(209) = {411, -514, 2105, -312};
-  Plane Surface(209) = {209};
-  Transfinite Surface {209};
-  Recombine Surface {209};
-
-  Line Loop(210) = {-313, 2106, -811, 611};
-  Plane Surface(210) = {210};
-  Transfinite Surface {210};
-  Recombine Surface {210};
-
-  Line Loop(1211) = {-513, 711, -1011, 2108};
-  Plane Surface(1211) = {1211};
-  Transfinite Surface {1211};
-  Recombine Surface {1211};
-
-  Line Loop(2212) = {2107, -1014, 911, -812};
-  Plane Surface(2212) = {2212};
-  Transfinite Surface {2212};
-  Recombine Surface {2212};
-
-  allSurfaces[] = Surface "*";
-  Extrude {0, 0, LZ}
-  {
-    Surface{allSurfaces[]}; Layers{nZ}; Recombine;
-  }
-
-  Physical Volume("body") = {1,2,3,4,5,6,7,8,9,10,11,12};
-  //+
-  Physical Surface("outer part boundary") = {2226,2213,2220,2222};
-  Physical Surface("load 1") = {2229,2234,2249};
-  Physical Surface("load 2") = {2241,2246,2255};
-  Physical Point("clamped xyz") = {1020};
-  Physical Point("clamped xy") = {803};
-  Physical Point("clamped y") = {1022};
-
-EndIf
diff --git a/katoptron/CMAME/model.py b/katoptron/CMAME/model.py
deleted file mode 100644
index e6d85a72..00000000
--- a/katoptron/CMAME/model.py
+++ /dev/null
@@ -1,369 +0,0 @@
-#!/usr/bin/env python3
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-defaut_params = {
-    'Is exp':
-    True,
-    'Is random':
-    True,
-    'Correlation length X':
-    20.,
-    'Correlation length Y':
-    20.,
-    'Correlation length Z':
-    0.,
-    'Number of KL Terms X':
-    5,
-    'Number of KL Terms Y':
-    5,
-    'Number of KL Terms Z':
-    3,
-    'Dispersion level':
-    0.1,
-    'gamma':
-    4368992.,
-    'MueLu xml from current_dir':
-    True,
-    'MueLu xml use template':
-    True,
-    'MueLu xml file name':
-    '/SIMPLE_gs.xml',
-    'MueLu xml template file name':
-    '/../preconditioners/SIMPLE_gs.xml.in',
-    'MueLu xml params name': [
-        '$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-        '$BLOCK_00_GS_sweeps', '$BLOCK_11_GS_sweeps', '$BLOCK_00_GS_damping',
-        '$BLOCK_11_GS_damping', '$SCHUR_omega', '$SimpleSmoother_damping'
-    ],
-    'MueLu xml params': ['3', '3', '10', '10', '1.6', '1.6', '0.5', '1.'],
-    'Write matrix and vectors':
-    False,
-    'Write txt files':
-    False,
-    'inner clamped':
-    False
-}
-
-
-def get_parameters(case_id, first_sample_id):
-    """
-    This function returns the python dictionary that includes 
-    the parameters for a given test case
-    """
-    p = defaut_params
-
-    if case_id == 0:
-        p['Is random'] = False
-    elif case_id == 1:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.1
-    elif case_id == 2:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.3
-    elif case_id == 3:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-    elif case_id == 4:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.3
-    elif case_id == 5:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.1
-    elif case_id == 6:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.3
-    elif case_id == 7:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.01
-    elif case_id == 8:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.01
-    elif case_id == 9:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.01
-
-    if p['Is random'] == True:
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = first_sample_id * nuw**2
-        p['Number Phi of previously drawn samples'] = first_sample_id * nuw**2
-
-    p['MueLu xml file name'] = '/SIMPLE_MG.xml'
-    p['MueLu xml template file name'] = '/../preconditioners/SIMPLE_gs_direct_lvl.xml.in'
-    p['MueLu xml params name'] = [
-        '$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-        '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping', '$SCHUR_omega',
-        '$SimpleSmoother_damping', "$N_LVLS", "$N_SIZES", "$EXPORT_DATA",
-        "$SimpleSmoother_sweeps"
-    ]
-    p['MueLu xml params'] = [
-        '3', '3', '3', '0.8', '0.8', '1', '2', '18', "true", '1'
-    ]
-
-    p['Is exp'] = False
-    p['gamma'] = 0.
-    p['Write vtk files'] = False
-    return p
-
-
-def Compute_QoIs(filename):
-    import tboxVtk.reader as vtkR
-    import tboxVtk.lineExtractor as vtkC
-
-    QoI = np.zeros((4, ))
-    reader = vtkR.Reader()
-    reader.open(filename)
-    cutter = vtkC.LineExtractor(reader.reader.GetOutputPort())
-    c_output = cutter.cut(1, [
-        5.,
-        5.,
-        0.5,
-    ], [
-        10.,
-        5.,
-        0.5,
-    ],
-                          tag_name='volume_id')
-    pts, tri, vals = cutter.extract(c_output, ['von Mises'], atPoint=False)
-    QoI[0] = vals['von Mises'][0]
-
-    c_output = cutter.cut(1, [
-        5.,
-        5.,
-        0.5,
-    ], [
-        5.,
-        10.,
-        0.5,
-    ],
-                          tag_name='volume_id')
-    pts, tri, vals = cutter.extract(c_output, ['von Mises'], atPoint=False)
-    QoI[1] = vals['von Mises'][0]
-
-    c_output = cutter.cut(1, [
-        5.,
-        5.,
-        0.5,
-    ], [
-        0.,
-        5.,
-        0.5,
-    ],
-                          tag_name='volume_id')
-    pts, tri, vals = cutter.extract(c_output, ['von Mises'], atPoint=False)
-    QoI[2] = vals['von Mises'][0]
-
-    c_output = cutter.cut(1, [
-        5.,
-        5.,
-        0.5,
-    ], [
-        5.,
-        0.,
-        0.5,
-    ],
-                          tag_name='volume_id')
-    pts, tri, vals = cutter.extract(c_output, ['von Mises'], atPoint=False)
-    QoI[3] = vals['von Mises'][0]
-    return QoI
-
-
-class plate_model:
-    def __init__(self,
-                 ensemble_size,
-                 randomVariable,
-                 msh,
-                 comm,
-                 file_dir,
-                 current_dir,
-                 p=defaut_params):
-
-        if p['MueLu xml use template']:
-            old_strings = p['MueLu xml params name']
-            new_strings = p['MueLu xml params']
-
-            muelu_xml_in = file_dir + p['MueLu xml template file name']
-            u.replace_strings(muelu_xml_in,
-                              current_dir + p['MueLu xml file name'],
-                              old_strings, new_strings)
-
-        pbl = m.Problem(msh, comm)
-
-        # Units are in mm
-        E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-        nu = 0.35 * np.ones(ensemble_size)
-        k = 0.
-        d = 0.
-        m.Medium(pbl, "body", "test", E, nu, k, d)
-
-        m.Dirichlet(pbl, "clamped xyz", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                    ensemble_size)
-        m.Dirichlet(pbl, "clamped xy", "Clamped", 1, 0., 1, 0., 0, 0., 0, 0.,
-                    ensemble_size)
-        m.Dirichlet(pbl, "clamped y", "Clamped", 0, 0., 1, 0., 0, 0., 0, 0.,
-                    ensemble_size)
-
-        if p['inner clamped']:
-            m.Dirichlet(pbl, "inner boundary", "Clamped", 1, 0., 1, 0., 1, 0.,
-                        0, 0., ensemble_size)
-
-        norm = tbox.Vector3d(0, 0, -1)
-        cont = m.Contact(pbl, 'inner part boundary', 'contact', norm)
-        cont.setMeshTying()
-        cont.setMaster(pbl, 'outer part boundary', norm)
-        f = 700 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-        zero = np.zeros(ensemble_size)
-        one = np.ones(ensemble_size)
-
-        m.Neumann(pbl, 'load 1', 'load', 0, zero, 1, f, 0, zero, 0, one,
-                  ensemble_size)
-        m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -f, 0, zero, 0, one,
-                  ensemble_size)
-
-        solverList = Teuchos.ParameterList()
-        solverList['Ensemble Convergence Tolerance'] = 1e-7
-        solverList['Maximum Iterations'] = 500
-        solverList['Verbosity'] = 33
-        solverList['Flexible Gmres'] = False
-        solverList['Output Style'] = 1
-        solverList['Output Frequency'] = 1
-
-        if p['MueLu xml from current_dir']:
-            solverList['MueLu xml file name'] = current_dir + \
-                p['MueLu xml file name']
-        else:
-            solverList['MueLu xml file name'] = file_dir + \
-                p['MueLu xml file name']
-        solverList['convert MueLu xml file'] = True
-        solverList['Print Teuchos timers'] = True
-
-        solverList['gamma'] = p['gamma']
-        solverList['Use preconditioner'] = True
-
-        solverList['type'] = 'BlockGmres'
-        solverList['Maximum active set iteration'] = 1
-
-        solverList['Write matrix and vectors'] = p['Write matrix and vectors']
-        solverList['Write txt files'] = p['Write txt files']
-        solverList['Write vtk files'] = p['Write vtk files']
-
-        if p["Is exp"]:
-            num_random_variables = randomVariable.shape[1]
-        else:
-            num_random_variables = 0
-
-        for i in range(0, num_random_variables):
-            rand = randomVariable[:, i]
-            pbl.add(m.RandomVariable(rand))
-
-        randomParams = Teuchos.ParameterList()
-
-        randomParams['Is random'] = p['Is random']
-        if randomParams['Is random']:
-            randomParams['Is exp'] = p['Is exp']
-            if p["Is exp"]:
-                randomParams['Begin X'] = 0.
-                randomParams['Begin Y'] = 0.
-                randomParams['Begin Z'] = 0.
-                randomParams['End X'] = 10.
-                randomParams['End Y'] = 10.
-                randomParams['End Z'] = 1.
-                randomParams['Number random variables'] = num_random_variables
-                randomParams['Correlation length X'] = p[
-                    'Correlation length X']
-                randomParams['Correlation length Y'] = p[
-                    'Correlation length Y']
-                randomParams['Correlation length Z'] = p[
-                    'Correlation length Z']
-                randomParams['Number of KL Terms X'] = p[
-                    'Number of KL Terms X']
-                randomParams['Number of KL Terms Y'] = p[
-                    'Number of KL Terms Y']
-                randomParams['Number of KL Terms Z'] = p[
-                    'Number of KL Terms Z']
-                randomParams['Maximum Nonlinear Solver Iterations'] = 5000
-                randomParams['Bound Perturbation Size'] = 1E-10
-            else:
-                randomParams['Correlation length'] = p['Correlation length']
-                randomParams['Wavenumber cutoff'] = p['Wavenumber cutoff']
-                randomParams['Wavenumber discretization points'] = p[
-                    'Wavenumber discretization points']
-                randomParams['Number Z of previously drawn samples'] = p[
-                    'Number Z of previously drawn samples']
-                randomParams['Number Phi of previously drawn samples'] = p[
-                    'Number Phi of previously drawn samples']
-
-            randomParams['Mean'] = E[0] / (2. * (1. + nu[0]))
-            randomParams['Dispersion level'] = p['Dispersion level']
-
-            solverList['randomParams'] = randomParams
-
-        self.pbl = pbl
-        self.solverList = solverList
-        self.ensemble_size = ensemble_size
-
-    def run(self):
-        self.slv = m.IterativeSolver(self.pbl, self.solverList, 3,
-                                     self.ensemble_size)
-        self.slv.start()
-        f = open('timers.txt', 'w')
-        print(self.slv.getTimers(), file=f)
-        f.closed
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir + '/mesh',
-                        work_dir, comm, rank, size)
-
-    np.random.seed(42)
-    N = 1
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-
-    p = get_parameters(0, 0)
-    p['Write txt files'] = True
-    p['Write vtk files'] = True
-
-    ensemble_size = 1
-
-    pm = plate_model(ensemble_size, randomVariable, msh, comm, file_dir,
-                     work_dir, p)
-
-    nThreads = u.Initialize_Kokkos()
-    pm.run()
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_slurm/blake_GS_omega.slurm.sh b/katoptron/CMAME/old_slurm/blake_GS_omega.slurm.sh
deleted file mode 100644
index 1f044eaa..00000000
--- a/katoptron/CMAME/old_slurm/blake_GS_omega.slurm.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=omega_GS
-#SBATCH --time=41:59:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/omega_GS.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-python run.py katoptron/CMAME/post_process/plate_mean_GS.py
diff --git a/katoptron/CMAME/old_slurm/blake_MC_GS.slurm.sh b/katoptron/CMAME/old_slurm/blake_MC_GS.slurm.sh
deleted file mode 100644
index 48a66683..00000000
--- a/katoptron/CMAME/old_slurm/blake_MC_GS.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=MC_G
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_GS.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_GS_all_cases.py
diff --git a/katoptron/CMAME/old_slurm/blake_MC_GS_direct.slurm.sh b/katoptron/CMAME/old_slurm/blake_MC_GS_direct.slurm.sh
deleted file mode 100644
index f3010479..00000000
--- a/katoptron/CMAME/old_slurm/blake_MC_GS_direct.slurm.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=GS_direct
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_GS_direct.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=48
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_GS_direct_all_cases.py
diff --git a/katoptron/CMAME/old_slurm/blake_MC_GS_fused.slurm.sh b/katoptron/CMAME/old_slurm/blake_MC_GS_fused.slurm.sh
deleted file mode 100644
index 1014b6e9..00000000
--- a/katoptron/CMAME/old_slurm/blake_MC_GS_fused.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=MC_G
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_GS.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/fused_plate_MC_GS_all_cases.py
diff --git a/katoptron/CMAME/old_slurm/blake_MC_GS_fused_prec.slurm.sh b/katoptron/CMAME/old_slurm/blake_MC_GS_fused_prec.slurm.sh
deleted file mode 100644
index c001d63b..00000000
--- a/katoptron/CMAME/old_slurm/blake_MC_GS_fused_prec.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=MC_G
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_GS.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/fused_plate_mean_prec_GS.py
diff --git a/katoptron/CMAME/old_slurm/blake_MC_MG.slurm.sh b/katoptron/CMAME/old_slurm/blake_MC_MG.slurm.sh
deleted file mode 100644
index 4fa094a9..00000000
--- a/katoptron/CMAME/old_slurm/blake_MC_MG.slurm.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=MC_MG
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_MG.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=48
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_MG_all_cases.py
diff --git a/katoptron/CMAME/old_slurm/blake_MC_MG_2.slurm.sh b/katoptron/CMAME/old_slurm/blake_MC_MG_2.slurm.sh
deleted file mode 100644
index a20dca60..00000000
--- a/katoptron/CMAME/old_slurm/blake_MC_MG_2.slurm.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=MC_MG
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_MG.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=48
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_MG_all_cases_2.py
diff --git a/katoptron/CMAME/old_slurm/blake_MC_direct.slurm.sh b/katoptron/CMAME/old_slurm/blake_MC_direct.slurm.sh
deleted file mode 100644
index dd624883..00000000
--- a/katoptron/CMAME/old_slurm/blake_MC_direct.slurm.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate_UQ
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_direct.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_direct_case_1.py
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_direct_case_2.py
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_direct_case_3.py
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_direct_case_4.py
diff --git a/katoptron/CMAME/old_slurm/blake_NO_EP.slurm.sh b/katoptron/CMAME/old_slurm/blake_NO_EP.slurm.sh
deleted file mode 100644
index 844b9c3c..00000000
--- a/katoptron/CMAME/old_slurm/blake_NO_EP.slurm.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate_UQ
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_UQ.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-python run.py -k 24 katoptron/CMAME/tests/plate_MC_NO_EP_case_1.py
-python run.py -k 24 katoptron/CMAME/tests/plate_MC_NO_EP_case_2.py
-python run.py -k 24 katoptron/CMAME/tests/plate_MC_NO_EP_case_3.py
-python run.py -k 24 katoptron/CMAME/tests/plate_MC_NO_EP_case_4.py
diff --git a/katoptron/CMAME/old_slurm/blake_convergence_direct.slurm.sh b/katoptron/CMAME/old_slurm/blake_convergence_direct.slurm.sh
deleted file mode 100644
index e9d6c2c2..00000000
--- a/katoptron/CMAME/old_slurm/blake_convergence_direct.slurm.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=conv_KLU
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_convergence_direct.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-python run.py katoptron/CMAME/tests/plate_convergence_direct.py
diff --git a/katoptron/CMAME/old_slurm/blake_correlation.slurm.sh b/katoptron/CMAME/old_slurm/blake_correlation.slurm.sh
deleted file mode 100644
index 436291f1..00000000
--- a/katoptron/CMAME/old_slurm/blake_correlation.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate_corr
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_corr.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_correlation.py
diff --git a/katoptron/CMAME/old_slurm/blake_eigenvalues_direct.slurm.sh b/katoptron/CMAME/old_slurm/blake_eigenvalues_direct.slurm.sh
deleted file mode 100644
index 5695e45b..00000000
--- a/katoptron/CMAME/old_slurm/blake_eigenvalues_direct.slurm.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=omegas_KLU
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_deltas_omegas_direct.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-mpirun -np 8 python run.py katoptron/CMAME/tests/plate_deltas_omegas_direct.py
diff --git a/katoptron/CMAME/old_slurm/blake_eigenvalues_gs.slurm.sh b/katoptron/CMAME/old_slurm/blake_eigenvalues_gs.slurm.sh
deleted file mode 100644
index fb90109d..00000000
--- a/katoptron/CMAME/old_slurm/blake_eigenvalues_gs.slurm.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=omegas_GS
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 2
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_deltas_omegas_GS.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-mpirun -np 16 python run.py katoptron/CMAME/tests/plate_deltas_omegas_GS.py
diff --git a/katoptron/CMAME/old_slurm/blake_gamma.slurm.sh b/katoptron/CMAME/old_slurm/blake_gamma.slurm.sh
deleted file mode 100644
index 5f70c54d..00000000
--- a/katoptron/CMAME/old_slurm/blake_gamma.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate_gamma
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_gamma.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_mean_gamma.py
diff --git a/katoptron/CMAME/old_slurm/blake_prec.slurm.sh b/katoptron/CMAME/old_slurm/blake_prec.slurm.sh
deleted file mode 100644
index 79eba568..00000000
--- a/katoptron/CMAME/old_slurm/blake_prec.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate_prec
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_prec.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_mean_prec.py
diff --git a/katoptron/CMAME/old_slurm/blake_prec_GS_direct.slurm.sh b/katoptron/CMAME/old_slurm/blake_prec_GS_direct.slurm.sh
deleted file mode 100644
index 10a5cadb..00000000
--- a/katoptron/CMAME/old_slurm/blake_prec_GS_direct.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate_prec
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_prec.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_mean_prec_GS_direct.py
diff --git a/katoptron/CMAME/old_slurm/blake_prec_GS_direct_lvl.slurm.sh b/katoptron/CMAME/old_slurm/blake_prec_GS_direct_lvl.slurm.sh
deleted file mode 100644
index 5644e3fa..00000000
--- a/katoptron/CMAME/old_slurm/blake_prec_GS_direct_lvl.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate_prec
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_prec.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_mean_prec_GS_direct_lvl.py
diff --git a/katoptron/CMAME/old_slurm/bowman.slurm.sh b/katoptron/CMAME/old_slurm/bowman.slurm.sh
deleted file mode 100644
index 27b82e58..00000000
--- a/katoptron/CMAME/old_slurm/bowman.slurm.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/bash
-# Submission script for Bowman
-#SBATCH --job-name=plate_UQ
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p knl-delta
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate_UQ.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=256
-
-export KMP_HW_SUBSET=64c,4t
-export KMP_AFFINITY=balanced
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC.py
diff --git a/katoptron/CMAME/old_tests/2_cubes_patch_GS.py b/katoptron/CMAME/old_tests/2_cubes_patch_GS.py
deleted file mode 100644
index c589f510..00000000
--- a/katoptron/CMAME/old_tests/2_cubes_patch_GS.py
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-#import matplotlib.pyplot as plt
-
-from katoptron.eigenvalues import *
-from katoptron.convergence import *
-
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from PyTrilinos import Teuchos
-
-
-def evaluate_cubes(args, msh, comm, ensemble_size, _E, file_dir):
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0.,
-                 1, 0., 1, 0., 0, 0., ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0,
-              zero, 1, p, 0, zero, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['gamma'] = 29.58164477018121
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/SIMPLE_gs.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-    if ensemble_size == 1:
-        solverList['Create Preconditioned Matrix'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, args.k, solverList,
-                                3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, args.k, solverList,
-                                3, ensemble_size)
-
-    slv.start()
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    geo_name = '../tests/2_cubes_patch.geo'
-    mesh_name = '2_cubes_patch.msh'
-    partitioned_mesh_name = '2_cubes_patch.msh'
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    gmsh.MeshLoader(geo_name, __file__).execute()
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + work_dir + '/' + mesh_name + ' -o ' + \
-            work_dir + '/' + partitioned_mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    N = 32
-
-    E = np.linspace(5., 15.0, num=N)
-
-    ensemble_sizes = [1, 8, 16, 32]
-
-    for e in range(0, len(ensemble_sizes)):
-        directory = str(ensemble_sizes[e])
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        for i in range(0, (N // ensemble_sizes[e])):
-            directory = str(i)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_cubes(
-                args, msh, comm, ensemble_sizes[e], E[i*ensemble_sizes[e]:(i+1)*ensemble_sizes[e]], file_dir)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/2_cubes_patch_GS_klu.py b/katoptron/CMAME/old_tests/2_cubes_patch_GS_klu.py
deleted file mode 100644
index 324f0989..00000000
--- a/katoptron/CMAME/old_tests/2_cubes_patch_GS_klu.py
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-#import matplotlib.pyplot as plt
-
-from katoptron.eigenvalues import *
-from katoptron.convergence import *
-
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from PyTrilinos import Teuchos
-
-
-def evaluate_cubes(args, msh, comm, ensemble_size, _E, file_dir):
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0.,
-                 1, 0., 1, 0., 0, 0., ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0,
-              zero, 1, p, 0, zero, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['gamma'] = 29.58164477018121
-
-    old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                   '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                   '$SCHUR_omega', '$SimpleSmoother_damping']
-    new_strings = ['3', '3', '100', '1.75', '0.05', '1.']
-
-    muelu_xml_in = file_dir + p['MueLu xml template file name']
-    u.replace_strings(muelu_xml_in, current_dir +
-                      p['MueLu xml file name'], old_strings, new_strings)
-
-    p['MueLu xml template file name'] = '/../preconditioners/SIMPLE_gs.xml.in'
-    p['MueLu xml params name'] = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                                  '$BLOCK_00_GS_sweeps', '$BLOCK_11_GS_sweeps',
-                                  '$BLOCK_00_GS_damping', '$BLOCK_11_GS_damping',
-                                  '$SCHUR_omega', '$SimpleSmoother_damping']
-    p['MueLu xml params'] = ['3', '3', '100', '1.75', '0.05', '1.']
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/SIMPLE_gs.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-    if ensemble_size == 1:
-        solverList['Create Preconditioned Matrix'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, args.k, solverList,
-                                3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, args.k, solverList,
-                                3, ensemble_size)
-
-    slv.start()
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    geo_name = '../tests/2_cubes_patch.geo'
-    mesh_name = '2_cubes_patch.msh'
-    partitioned_mesh_name = '2_cubes_patch.msh'
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    gmsh.MeshLoader(geo_name, __file__).execute()
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + work_dir + '/' + mesh_name + ' -o ' + \
-            work_dir + '/' + partitioned_mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    N = 32
-
-    E = np.linspace(5., 15.0, num=N)
-
-    ensemble_sizes = [1, 8, 16, 32]
-
-    for e in range(0, len(ensemble_sizes)):
-        directory = str(ensemble_sizes[e])
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        for i in range(0, (N // ensemble_sizes[e])):
-            directory = str(i)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_cubes(
-                args, msh, comm, ensemble_sizes[e], E[i*ensemble_sizes[e]:(i+1)*ensemble_sizes[e]], file_dir)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/2_cubes_patch_direct.py b/katoptron/CMAME/old_tests/2_cubes_patch_direct.py
deleted file mode 100644
index b3b82242..00000000
--- a/katoptron/CMAME/old_tests/2_cubes_patch_direct.py
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-#import matplotlib.pyplot as plt
-
-from katoptron.eigenvalues import *
-from katoptron.convergence import *
-
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from PyTrilinos import Teuchos
-
-
-def evaluate_cubes(args, msh, comm, ensemble_size, _E, file_dir):
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0.,
-                 1, 0., 1, 0., 0, 0., ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0,
-              zero, 1, p, 0, zero, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['gamma'] = 29.58164477018121
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/SIMPLE_direct.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-    if ensemble_size == 1:
-        solverList['Create Preconditioned Matrix'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, args.k, solverList,
-                                3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, args.k, solverList,
-                                3, ensemble_size)
-
-    slv.start()
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    geo_name = '../tests/2_cubes_patch.geo'
-    mesh_name = '2_cubes_patch.msh'
-    partitioned_mesh_name = '2_cubes_patch.msh'
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    gmsh.MeshLoader(geo_name, __file__).execute()
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + work_dir + '/' + mesh_name + ' -o ' + \
-            work_dir + '/' + partitioned_mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    N = 32
-
-    E = np.linspace(5., 15.0, num=N)
-
-    ensemble_sizes = [1, 8, 16, 32]
-
-    for e in range(0, len(ensemble_sizes)):
-        directory = str(ensemble_sizes[e])
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        for i in range(0, (N // ensemble_sizes[e])):
-            directory = str(i)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_cubes(
-                args, msh, comm, ensemble_sizes[e], E[i*ensemble_sizes[e]:(i+1)*ensemble_sizes[e]], file_dir)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/clean_A_B.py b/katoptron/CMAME/old_tests/clean_A_B.py
deleted file mode 100644
index 98b2e7b3..00000000
--- a/katoptron/CMAME/old_tests/clean_A_B.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-from scipy import sparse
-
-
-def write_mm(filename, matrix, drow=0, dcol=0):
-    f = open(filename, 'w')
-    print('%%MatrixMarket matrix', file=f)
-    print(str(int(matrix.shape[0])) + ' ' + str(int(matrix.shape[1])) + ' ' + str(int(matrix.count_nonzero())), file=f)
-
-    row, col = matrix.nonzero()
-    for i in range(0, matrix.count_nonzero()):
-        print(str(int(row[i]+1+drow)) + ' ' + str(int(col[i]+1+dcol)) + ' ' + '{0:1.17e}'.format(matrix[row[i], col[i]]), file=f)
-
-    f.closed
-
-
-def write_vector_mm(filename, vec, n):
-    f = open(filename, 'w')
-    print('%%MatrixMarket matrix', file=f)
-    print(str(int(n)), file=f)
-    for i in range(0, n):
-        if i < vec.size:
-            print('{0:1.17e}'.format(vec[i]), file=f)
-        else:
-            print('{0:1.17e}'.format(0.), file=f)
-
-    f.closed
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    input_file_dir = '/Users/kimliegeois/Desktop/workspace 5/katoptron_tests_beam'
-
-    filename_Q = input_file_dir + '/ApCTC_mm.txt'
-    filename_GT = input_file_dir + '/B_mm.txt'
-    filename_f = input_file_dir + '/b_mm_after_bc.txt'
-
-    Q = read_mm(filename_Q)
-    Q = get_symmetrical_part(Q)
-    GT = read_mm(filename_GT)
-    G = GT.transpose()
-    f = read_mm(filename_f, is_sparse=False)
-
-    print(Q.shape)
-    print(Q.count_nonzero())
-
-    write_vector_mm('f_mm.txt', f, G.shape[0]+G.shape[1])
-
-    write_mm('Q_mm.txt', Q)
-    write_mm('G_mm.txt', G, dcol=Q.shape[0])
-    write_mm('GT_mm.txt', GT, drow=Q.shape[0])
-
-    Afull = read_mm(
-        "/Users/kimliegeois/Desktop/workspace 7/katoptron_tests_beam/Applied_Matrix_mm.txt", is_sparse=False)
-    A = sparse.csr_matrix(Afull)
-
-    print(A.count_nonzero())
-
-    write_mm('A_full_mm.txt', A)
-    write_mm('C_mm.txt', A[Q.shape[0]:A.shape[0], Q.shape[1]:A.shape[1]])
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/compare_GB.py b/katoptron/CMAME/old_tests/compare_GB.py
deleted file mode 100644
index 640c83fa..00000000
--- a/katoptron/CMAME/old_tests/compare_GB.py
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-from scipy import sparse
-import matplotlib.pyplot as plt
-
-def test1():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    input_file_dir = '/Users/kimliegeois/Desktop/gaston'
-
-    filename_GT = input_file_dir + '/B_mm.txt'
-
-    GT_gaston = read_mm(filename_GT)
-
-    X = np.loadtxt(filename_GT, skiprows=2)
-
-    row_gaston = X[:, 0].astype(int)-1
-    col_gaston = X[:, 1].astype(int)-1
-    data_gaston = X[:, 2]    
-
-    input_file_dir = '/Users/kimliegeois/Desktop/blake'
-
-    filename_GT = input_file_dir + '/B_mm.txt'
-
-    GT_blake = read_mm(filename_GT)
-
-    X = np.loadtxt(filename_GT, skiprows=2)
-
-    row_blake = X[:, 0].astype(int)-1
-    col_blake = X[:, 1].astype(int)-1
-    data_blake = X[:, 2]   
-
-    nNode = 341
-
-    plot_indices = np.arange(80,120,1,dtype=int)
-
-    print(col_gaston[plot_indices])
-    print(col_blake[plot_indices])
-
-    indT = np.argwhere(col_gaston <= nNode)
-    indMech = np.argwhere(col_gaston > nNode)
-
-
-    col_gaston_2 = np.copy(col_gaston)
-
-    col_gaston_2[indT] = (col_gaston[indT]+1)*4-1
-
-    indexNodes =  np.floor((col_gaston_2[indMech] - nNode)/3.)
-    rest = (col_gaston_2[indMech] - nNode) - 3*indexNodes
-
-    plt.figure()
-    plt.plot(indexNodes[plot_indices],'*')
-
-    plt.figure()
-    plt.plot(rest[plot_indices],'*')
-
-    col_gaston_2[indMech] = indexNodes*4+rest
-
-    #print(col_gaston[0:30])
-    print(col_gaston_2[plot_indices])
-    print(col_blake[plot_indices])
-
-    print(np.amax(np.abs(data_gaston-data_blake)))
-    print(np.amax(np.abs(col_gaston_2-col_blake)))
-    print(np.amax(np.abs(row_gaston-row_blake)))
-
-    plt.figure()
-    plt.plot(col_gaston_2[plot_indices]-col_blake[plot_indices],'*')
-    #plt.show()
-
-def test2():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    input_file_dir = '/Users/kimliegeois/Desktop/gaston'
-
-    filename_GT = input_file_dir + '/B_T_mm.txt'
-
-    GT_gaston = read_mm(filename_GT)
-
-    X = np.loadtxt(filename_GT, skiprows=2)
-
-    row_gaston = X[:, 0].astype(int)-1
-    col_gaston = X[:, 1].astype(int)-1
-    data_gaston = X[:, 2]    
-
-    input_file_dir = '/Users/kimliegeois/Desktop/blake'
-
-    filename_GT = input_file_dir + '/B_T_mm.txt'
-
-    GT_blake = read_mm(filename_GT)
-
-    X = np.loadtxt(filename_GT, skiprows=2)
-
-    row_blake = X[:, 0].astype(int)-1
-    col_blake = X[:, 1].astype(int)-1
-    data_blake = X[:, 2]   
-
-    nNode = 341
-
-    indT = np.argwhere(row_gaston <= nNode)
-    indMech = np.argwhere(row_gaston > nNode)
-
-    plot_indices = np.arange(80,120,1,dtype=int)
-
-    row_gaston_2 = np.copy(row_gaston)
-
-    row_gaston_2[indT] = (row_gaston[indT]+1)*4-1
-
-    indexNodes =  np.floor((row_gaston_2[indMech] - nNode)/3.)
-    rest = (row_gaston_2[indMech] - nNode) - 3*indexNodes
-
-    plt.figure()
-    plt.plot(indexNodes[plot_indices],'*')
-
-    plt.figure()
-    plt.plot(rest[plot_indices],'*')
-
-    row_gaston_2[indMech] = indexNodes*4+rest
-
-
-
-    row_gaston_order = row_gaston_2*100+col_gaston
-    row_blake_order = row_blake*100+col_blake
-
-    order_gaston = np.argsort(row_gaston_order)
-    order_blake = np.argsort(row_blake_order)
-
-    print(row_gaston_2[plot_indices])
-    print(row_blake[plot_indices])
-
-    print(np.amax(np.abs(data_gaston[order_gaston]-data_blake[order_blake])))
-    print(np.amax(np.abs(row_gaston_2[order_gaston]-row_blake[order_blake])))
-    print(np.amax(np.abs(col_gaston[order_gaston]-col_blake[order_blake])))
-
-
-    #print(np.sum(row_gaston_2-row_blake))
-
-    plt.figure()
-    plt.plot(row_gaston_2[order_gaston]-row_blake[order_blake],'*')
-    #plt.show()
-
-def main():
-    test2()
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/cube_deltas_omegas_GS.py b/katoptron/CMAME/old_tests/cube_deltas_omegas_GS.py
deleted file mode 100644
index 23505af4..00000000
--- a/katoptron/CMAME/old_tests/cube_deltas_omegas_GS.py
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    n_sweeps_Q = 10
-    damp_Q = 1.6
-
-    n_sweeps_R = 10
-    damp_R = 1.6
-
-    omega = 0.5
-
-    N = 32
-
-    input_file_dir = file_dir + \
-        '/../../workspace/katoptron_CMAME_tests_2_cubes_patch_convergence/1/'
-
-    sample_per_rank = np.ceil((N / siz))
-    i_min = rank*sample_per_rank
-    i_max = i_min+sample_per_rank
-
-    if i_min > N:
-        i_min = N
-    if i_max > N:
-        i_max = N
-
-    i_min = int(i_min)
-    i_max = int(i_max)
-
-    print('Rank ' + str(rank) + ' from sample ' + str(i_min) + ':' + str(i_max))
-
-    for i in range(i_min, i_max):
-        timers = fwk.Timers()
-
-        filename_Q = input_file_dir + str(i) + '/ApCTC_mm.txt'
-        filename_GT = input_file_dir + str(i) + '/B_mm.txt'
-        filename_f = input_file_dir + str(i) + '/b_mm_after_bc.txt'
-
-        timers['Read files'].start()
-        Q = read_mm(filename_Q)
-        Q = get_symmetrical_part(Q)
-        GT = read_mm(filename_GT)
-        G = GT.transpose()
-        f = read_mm(filename_f, is_sparse=False)
-        timers['Read files'].stop()
-
-        timers['Compute R'].start()
-        R = approx_Schur_complement(Q, G, GT)
-        timers['Compute R'].stop()
-
-        timers['Compute invR'].start()
-        invR = Gauss_Seidel(R, n=n_sweeps_R, damping=damp_R)
-        timers['Compute invR'].stop()
-
-        print(timers)
-
-        timers['Compute the inverse of Q'].start()
-        invQ = Gauss_Seidel(Q, n=n_sweeps_Q, damping=damp_Q)
-        timers['Compute the inverse of Q'].stop()
-
-        print(timers)
-
-        timers['Compute the preconditioned matrix'].start()
-        AinvP = SIMPLE_preconditioned_matrix(
-            Q, invQ, G, GT, R, invR, omega=omega)
-        timers['Compute the preconditioned matrix'].stop()
-
-        print(timers)
-
-        tmp = np.zeros(AinvP.shape)
-        for i in range(0, AinvP.shape[0]):
-            tmp[i, i] = 1
-            tmp[:, i] = AinvP.dot(tmp[:, i])
-
-        print(AinvP.shape)
-
-        w, v, cond = compute_eig_and_departure_from_orthogonality(tmp)
-        print(cond)
-
-        return
-        timers['Compute the basis'].start()
-
-        n = Q.shape[0]+R.shape[0]
-        b = np.zeros((n,))
-        b[0:len(f)] = f
-
-        N = 2
-        m_max = 6000
-        V, W = compute_VW(AinvP, b, m=m_max, N=N)
-        timers['Compute the basis'].stop()
-
-        print(timers)
-
-        timers['Compute the eigenvalues'].start()
-        deltas, omegas = compute_deltas_omegas(V, W, b)
-        timers['Compute the eigenvalues'].stop()
-
-        print(timers)
-
-        timers['Write the eigenvalues'].start()
-        write_eigenvalues(deltas, work_dir+'/deltas_GS_GS_' + str(i) + '.txt')
-        np.savetxt(work_dir+'/omegas_GS_GS_' + str(i) + '.txt', omegas)
-        timers['Write the eigenvalues'].stop()
-
-        f = open('timers_' + str(i) + '.txt', 'w')
-        print(timers, file=f)
-        f.closed
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/fused_plate_MC_GS_all_cases.py b/katoptron/CMAME/old_tests/fused_plate_MC_GS_all_cases.py
deleted file mode 100644
index 858bfe31..00000000
--- a/katoptron/CMAME/old_tests/fused_plate_MC_GS_all_cases.py
+++ /dev/null
@@ -1,273 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""@package docstring
-This test runs the four different cases as defined in table 2 of the paper
-with a SIMPLE-GS-GS preconditioner.
-"""
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def get_parameters(case_id, first_sample_id):
-    """
-    This function returns the python dictionary that includes 
-    the parameters for a given test case
-    """
-    p = model.defaut_params
-
-    if case_id == 1:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.1
-    elif case_id == 2:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.3
-    elif case_id == 3:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-    elif case_id == 4:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.3
-    elif case_id == 5:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.1
-    elif case_id == 6:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.3
-
-    p['Wavenumber cutoff'] = 8.
-    p['Wavenumber discretization points'] = nuw
-    p['Number Z of previously drawn samples'] = first_sample_id * nuw**2
-    p['Number Phi of previously drawn samples'] = first_sample_id * nuw**2
-
-    p['Is exp'] = False
-    return p
-
-
-def evaluate_one_ensemble(ensemble_size, case_id, first_sample_id, msh, comm,
-                          file_dir):
-    """
-    This function evaluates one ensemble for a given test case
-    """
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = get_parameters(case_id, first_sample_id)
-
-    pbl = m.Problem(msh, comm)
-
-    # Units are in mm
-    E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-    nu = 0.35 * np.ones(ensemble_size)
-    k = 0.
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamped xyz", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    m.Dirichlet(pbl, "clamped xy", "Clamped", 1, 0., 1, 0., 0, 0., 0, 0.,
-                ensemble_size)
-    m.Dirichlet(pbl, "clamped y", "Clamped", 0, 0., 1, 0., 0, 0., 0, 0.,
-                ensemble_size)
-
-    f = 700 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-    zero = np.zeros(ensemble_size)
-    one = np.ones(ensemble_size)
-    m.Neumann(pbl, 'load 1', 'load', 0, zero, 1, f, 0, zero, 0, one,
-              ensemble_size)
-    m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -f, 0, zero, 0, one,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 1e-6
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    prec = 3
-
-    if prec == 1:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 1
-        mueluParams['coarse: type'] = "CHEBYSHEV"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['chebyshev: degree'] = 20
-
-        mueluParams['verbosity'] = "high"
-
-        mueluParams['coarse: params'] = mueluParamsSub2
-    elif prec == 2:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 1
-        mueluParams['coarse: type'] = "RELAXATION"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-        mueluParamsSub2['relaxation: sweeps'] = 10
-        mueluParamsSub2['relaxation: damping factor'] = 1.75
-
-        mueluParams['verbosity'] = "high"
-
-        mueluParams['coarse: params'] = mueluParamsSub2
-    elif prec == 3:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 2
-        mueluParams['smoother: type'] = "RELAXATION"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-        mueluParamsSub2['relaxation: sweeps'] = 10
-        mueluParamsSub2['relaxation: damping factor'] = 1.75
-
-        mueluParams['verbosity'] = "high"
-
-        mueluParams['smoother: params'] = mueluParamsSub2
-
-        mueluParams['coarse: type'] = "Klu"
-        mueluParams['coarse: max size'] = 18
-
-    solverList['convert MueLu xml file'] = True
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Print Teuchos timers'] = True
-
-    solverList['gamma'] = p['gamma']
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = 'BlockGmres'
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Write matrix and vectors'] = p['Write matrix and vectors']
-    solverList['Write txt files'] = p['Write txt files']
-
-    if p["Is exp"]:
-        num_random_variables = randomVariable.shape[1]
-    else:
-        num_random_variables = 0
-
-    for i in range(0, num_random_variables):
-        rand = randomVariable[:, i]
-        pbl.add(m.RandomVariable(rand))
-
-    randomParams = Teuchos.ParameterList()
-
-    randomParams['Is random'] = True
-    randomParams['Is exp'] = p['Is exp']
-    if p["Is exp"]:
-        randomParams['Begin X'] = 0.
-        randomParams['Begin Y'] = 0.
-        randomParams['Begin Z'] = 0.
-        randomParams['End X'] = 10.
-        randomParams['End Y'] = 10.
-        randomParams['End Z'] = 1.
-        randomParams['Number random variables'] = num_random_variables
-        randomParams['Correlation length X'] = p['Correlation length X']
-        randomParams['Correlation length Y'] = p['Correlation length Y']
-        randomParams['Correlation length Z'] = p['Correlation length Z']
-        randomParams['Number of KL Terms X'] = p['Number of KL Terms X']
-        randomParams['Number of KL Terms Y'] = p['Number of KL Terms Y']
-        randomParams['Number of KL Terms Z'] = p['Number of KL Terms Z']
-        randomParams['Maximum Nonlinear Solver Iterations'] = 5000
-        randomParams['Bound Perturbation Size'] = 1E-10
-    else:
-        randomParams['Correlation length'] = p['Correlation length']
-        randomParams['Wavenumber cutoff'] = p['Wavenumber cutoff']
-        randomParams['Wavenumber discretization points'] = p[
-            'Wavenumber discretization points']
-        randomParams['Number Z of previously drawn samples'] = p[
-            'Number Z of previously drawn samples']
-        randomParams['Number Phi of previously drawn samples'] = p[
-            'Number Phi of previously drawn samples']
-
-    randomParams['Mean'] = E[0] / (2. * (1. + nu[0]))
-    randomParams['Dispersion level'] = p['Dispersion level']
-
-    solverList['randomParams'] = randomParams
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 3, ensemble_size)
-    slv.start()
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-
-def evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir):
-    """
-    This function loop over the test cases, the ensemble sizes,
-    and the ensembles
-    """
-    for case_id in case_ids:
-        directory_case_id = 'case_' + str(case_id)
-        if not os.path.exists(directory_case_id):
-            os.makedirs(directory_case_id)
-        os.chdir(directory_case_id)
-        for ensemble_size in ensemble_sizes:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-
-            N_ensemble = N // ensemble_size
-            for ensemble_index in range(0, N_ensemble):
-                directory = str(ensemble_index)
-                if not os.path.exists(directory):
-                    os.makedirs(directory)
-                os.chdir(directory)
-
-                first_sample_id = ensemble_index * ensemble_size
-
-                evaluate_one_ensemble(ensemble_size, case_id, first_sample_id,
-                                      msh, comm, file_dir)
-                os.chdir('..')
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = gmsh.MeshLoader('plate.geo', file_dir).execute()
-
-    N = 32
-    ensemble_sizes = [1, 8, 16, 32]
-    case_ids = [1, 2, 3, 4, 5, 6]
-
-    evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS.py b/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS.py
deleted file mode 100644
index 262ff4e3..00000000
--- a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS.py
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_prec(msh, comm, file_dir, Ngs, omegags, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pbl = m.Problem(msh, comm)
-
-    # Units are in mm
-    E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-    nu = 0.35 * np.ones(ensemble_size)
-    k = 0.
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamped xyz", "Clamped", 1, 0.,
-                1, 0., 1, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped xy", "Clamped", 1, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped y", "Clamped", 0, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-
-    f = 700 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-    zero = np.zeros(ensemble_size)
-    one = np.ones(ensemble_size)
-    m.Neumann(pbl, 'load 1', 'load', 0, zero, 1,
-              f, 0, zero, 0, one, ensemble_size)
-    m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -
-              f, 0, zero, 0, one, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 1e-6
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 3
-    mueluParams['max levels'] = 1
-    mueluParams['coarse: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = Ngs
-    mueluParamsSub2['relaxation: damping factor'] = omegags
-
-    mueluParams['verbosity'] = "high"
-
-    mueluParams['coarse: params'] = mueluParamsSub2
-
-    solverList['convert MueLu xml file'] = True
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Print Teuchos timers'] = True
-
-    solverList['gamma'] = p['gamma']
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = 'BlockGmres'
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Write matrix and vectors'] = p['Write matrix and vectors']
-    solverList['Write txt files'] = p['Write txt files']
-
-    if p["Is exp"]:
-        num_random_variables = randomVariable.shape[1]
-    else:
-        num_random_variables = 0
-
-    for i in range(0, num_random_variables):
-        rand = randomVariable[:, i]
-        pbl.add(m.RandomVariable(rand))
-
-    randomParams = Teuchos.ParameterList()
-
-    randomParams['Is random'] = True
-    randomParams['Is exp'] = p['Is exp']
-    if p["Is exp"]:
-        randomParams['Begin X'] = 0.
-        randomParams['Begin Y'] = 0.
-        randomParams['Begin Z'] = 0.
-        randomParams['End X'] = 10.
-        randomParams['End Y'] = 10.
-        randomParams['End Z'] = 1.
-        randomParams['Number random variables'] = num_random_variables
-        randomParams['Correlation length X'] = p['Correlation length X']
-        randomParams['Correlation length Y'] = p['Correlation length Y']
-        randomParams['Correlation length Z'] = p['Correlation length Z']
-        randomParams['Number of KL Terms X'] = p['Number of KL Terms X']
-        randomParams['Number of KL Terms Y'] = p['Number of KL Terms Y']
-        randomParams['Number of KL Terms Z'] = p['Number of KL Terms Z']
-        randomParams['Maximum Nonlinear Solver Iterations'] = 5000
-        randomParams['Bound Perturbation Size'] = 1E-10
-    else:
-        randomParams['Correlation length'] = p['Correlation length']
-        randomParams['Wavenumber cutoff'] = p['Wavenumber cutoff']
-        randomParams['Wavenumber discretization points'] = p['Wavenumber discretization points']
-        randomParams['Number Z of previously drawn samples'] = p['Number Z of previously drawn samples']
-        randomParams['Number Phi of previously drawn samples'] = p['Number Phi of previously drawn samples']
-
-    randomParams['Mean'] = E[0] / (2.*(1.+nu[0]))
-    randomParams['Dispersion level'] = p['Dispersion level']
-
-    solverList['randomParams'] = randomParams
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 3, ensemble_size)
-    slv.start()
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-
-def evaluate_all_prec(msh, comm, file_dir, prec_params):
-
-    N = prec_params.shape[0]
-
-    for i in range(0, N):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        current_dir = os.getcwd()
-
-        Ngs = int(prec_params[i, 0])
-        omegags = prec_params[i, 1]
-
-        directory = 'mean_case'
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        evaluate_prec(msh, comm, file_dir, Ngs, omegags)
-        os.chdir('..')
-
-        for ensemble_size in [8]:
-            directory = 'ensemble_reduction_' + str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_prec(msh,
-                          comm,
-                          file_dir,
-                          Ngs, omegags,
-                          ensemble_size=ensemble_size)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = gmsh.MeshLoader('plate.geo', file_dir).execute()
-
-    GS_sweeps_00_min = 1
-    GS_sweeps_00_max = 41
-    delta_GS_sweeps_00 = 1
-
-    N_GS_sweeps_00 = int(
-        np.ceil(
-            ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-    # Damping has to be between 0 and 2
-    GS_damping_00_min = 0.001
-    GS_damping_00_max = 1.999
-    N_GS_damping_00 = 50
-
-    sweeps_00 = np.arange(GS_sweeps_00_min, GS_sweeps_00_max,
-                          delta_GS_sweeps_00)
-    damping_00 = np.linspace(GS_damping_00_min, GS_damping_00_max,
-                             N_GS_damping_00)
-
-    N = N_GS_sweeps_00 * N_GS_damping_00
-
-    prec_params = np.zeros((N, 2))
-
-    i = 0
-
-    for i_0 in range(0, N_GS_sweeps_00):
-        for i_1 in range(0, N_GS_damping_00):
-            prec_params[i, :] = [
-                sweeps_00[i_0], damping_00[i_1]
-            ]
-            i = i + 1
-
-    np.savetxt('prec_params.txt', prec_params)
-
-    evaluate_all_prec(msh, comm, file_dir, prec_params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_2.py b/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_2.py
deleted file mode 100644
index a0ec6175..00000000
--- a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_2.py
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_prec(msh, comm, file_dir, Ngs, omegags, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pbl = m.Problem(msh, comm)
-
-    # Units are in mm
-    E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-    nu = 0.35 * np.ones(ensemble_size)
-    k = 0.
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamped xyz", "Clamped", 1, 0.,
-                1, 0., 1, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped xy", "Clamped", 1, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped y", "Clamped", 0, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-
-    f = 700 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-    zero = np.zeros(ensemble_size)
-    one = np.ones(ensemble_size)
-    m.Neumann(pbl, 'load 1', 'load', 0, zero, 1,
-              f, 0, zero, 0, one, ensemble_size)
-    m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -
-              f, 0, zero, 0, one, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 1e-6
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 3
-    mueluParams['max levels'] = 1
-    mueluParams['coarse: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = Ngs
-    mueluParamsSub2['relaxation: damping factor'] = omegags
-
-    mueluParams['verbosity'] = "high"
-
-    mueluParams['coarse: params'] = mueluParamsSub2
-
-    solverList['convert MueLu xml file'] = True
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Print Teuchos timers'] = True
-
-    solverList['gamma'] = p['gamma']
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = 'BlockGmres'
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Write matrix and vectors'] = p['Write matrix and vectors']
-    solverList['Write txt files'] = p['Write txt files']
-
-    if p["Is exp"]:
-        num_random_variables = randomVariable.shape[1]
-    else:
-        num_random_variables = 0
-
-    for i in range(0, num_random_variables):
-        rand = randomVariable[:, i]
-        pbl.add(m.RandomVariable(rand))
-
-    randomParams = Teuchos.ParameterList()
-
-    randomParams['Is random'] = True
-    randomParams['Is exp'] = p['Is exp']
-    if p["Is exp"]:
-        randomParams['Begin X'] = 0.
-        randomParams['Begin Y'] = 0.
-        randomParams['Begin Z'] = 0.
-        randomParams['End X'] = 10.
-        randomParams['End Y'] = 10.
-        randomParams['End Z'] = 1.
-        randomParams['Number random variables'] = num_random_variables
-        randomParams['Correlation length X'] = p['Correlation length X']
-        randomParams['Correlation length Y'] = p['Correlation length Y']
-        randomParams['Correlation length Z'] = p['Correlation length Z']
-        randomParams['Number of KL Terms X'] = p['Number of KL Terms X']
-        randomParams['Number of KL Terms Y'] = p['Number of KL Terms Y']
-        randomParams['Number of KL Terms Z'] = p['Number of KL Terms Z']
-        randomParams['Maximum Nonlinear Solver Iterations'] = 5000
-        randomParams['Bound Perturbation Size'] = 1E-10
-    else:
-        randomParams['Correlation length'] = p['Correlation length']
-        randomParams['Wavenumber cutoff'] = p['Wavenumber cutoff']
-        randomParams['Wavenumber discretization points'] = p['Wavenumber discretization points']
-        randomParams['Number Z of previously drawn samples'] = p['Number Z of previously drawn samples']
-        randomParams['Number Phi of previously drawn samples'] = p['Number Phi of previously drawn samples']
-
-    randomParams['Mean'] = E[0] / (2.*(1.+nu[0]))
-    randomParams['Dispersion level'] = p['Dispersion level']
-
-    solverList['randomParams'] = randomParams
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 3, ensemble_size)
-    slv.start()
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-
-def evaluate_all_prec(msh, comm, file_dir, prec_params):
-
-    N = prec_params.shape[0]
-
-    for i in range(500, 1000):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        current_dir = os.getcwd()
-
-        Ngs = int(prec_params[i, 0])
-        omegags = prec_params[i, 1]
-
-        directory = 'mean_case'
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        evaluate_prec(msh, comm, file_dir, Ngs, omegags)
-        os.chdir('..')
-
-        for ensemble_size in [8]:
-            directory = 'ensemble_reduction_' + str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_prec(msh,
-                          comm,
-                          file_dir,
-                          Ngs, omegags,
-                          ensemble_size=ensemble_size)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = gmsh.MeshLoader('plate.geo', file_dir).execute()
-
-    GS_sweeps_00_min = 1
-    GS_sweeps_00_max = 41
-    delta_GS_sweeps_00 = 1
-
-    N_GS_sweeps_00 = int(
-        np.ceil(
-            ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-    # Damping has to be between 0 and 2
-    GS_damping_00_min = 0.001
-    GS_damping_00_max = 1.999
-    N_GS_damping_00 = 50
-
-    sweeps_00 = np.arange(GS_sweeps_00_min, GS_sweeps_00_max,
-                          delta_GS_sweeps_00)
-    damping_00 = np.linspace(GS_damping_00_min, GS_damping_00_max,
-                             N_GS_damping_00)
-
-    N = N_GS_sweeps_00 * N_GS_damping_00
-
-    prec_params = np.zeros((N, 2))
-
-    i = 0
-
-    for i_0 in range(0, N_GS_sweeps_00):
-        for i_1 in range(0, N_GS_damping_00):
-            prec_params[i, :] = [
-                sweeps_00[i_0], damping_00[i_1]
-            ]
-            i = i + 1
-
-    np.savetxt('prec_params.txt', prec_params)
-
-    evaluate_all_prec(msh, comm, file_dir, prec_params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_3.py b/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_3.py
deleted file mode 100644
index db9723d0..00000000
--- a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_3.py
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_prec(msh, comm, file_dir, Ngs, omegags, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pbl = m.Problem(msh, comm)
-
-    # Units are in mm
-    E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-    nu = 0.35 * np.ones(ensemble_size)
-    k = 0.
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamped xyz", "Clamped", 1, 0.,
-                1, 0., 1, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped xy", "Clamped", 1, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped y", "Clamped", 0, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-
-    f = 700 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-    zero = np.zeros(ensemble_size)
-    one = np.ones(ensemble_size)
-    m.Neumann(pbl, 'load 1', 'load', 0, zero, 1,
-              f, 0, zero, 0, one, ensemble_size)
-    m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -
-              f, 0, zero, 0, one, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 1e-6
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 3
-    mueluParams['max levels'] = 1
-    mueluParams['coarse: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = Ngs
-    mueluParamsSub2['relaxation: damping factor'] = omegags
-
-    mueluParams['verbosity'] = "high"
-
-    mueluParams['coarse: params'] = mueluParamsSub2
-
-    solverList['convert MueLu xml file'] = True
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Print Teuchos timers'] = True
-
-    solverList['gamma'] = p['gamma']
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = 'BlockGmres'
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Write matrix and vectors'] = p['Write matrix and vectors']
-    solverList['Write txt files'] = p['Write txt files']
-
-    if p["Is exp"]:
-        num_random_variables = randomVariable.shape[1]
-    else:
-        num_random_variables = 0
-
-    for i in range(0, num_random_variables):
-        rand = randomVariable[:, i]
-        pbl.add(m.RandomVariable(rand))
-
-    randomParams = Teuchos.ParameterList()
-
-    randomParams['Is random'] = True
-    randomParams['Is exp'] = p['Is exp']
-    if p["Is exp"]:
-        randomParams['Begin X'] = 0.
-        randomParams['Begin Y'] = 0.
-        randomParams['Begin Z'] = 0.
-        randomParams['End X'] = 10.
-        randomParams['End Y'] = 10.
-        randomParams['End Z'] = 1.
-        randomParams['Number random variables'] = num_random_variables
-        randomParams['Correlation length X'] = p['Correlation length X']
-        randomParams['Correlation length Y'] = p['Correlation length Y']
-        randomParams['Correlation length Z'] = p['Correlation length Z']
-        randomParams['Number of KL Terms X'] = p['Number of KL Terms X']
-        randomParams['Number of KL Terms Y'] = p['Number of KL Terms Y']
-        randomParams['Number of KL Terms Z'] = p['Number of KL Terms Z']
-        randomParams['Maximum Nonlinear Solver Iterations'] = 5000
-        randomParams['Bound Perturbation Size'] = 1E-10
-    else:
-        randomParams['Correlation length'] = p['Correlation length']
-        randomParams['Wavenumber cutoff'] = p['Wavenumber cutoff']
-        randomParams['Wavenumber discretization points'] = p['Wavenumber discretization points']
-        randomParams['Number Z of previously drawn samples'] = p['Number Z of previously drawn samples']
-        randomParams['Number Phi of previously drawn samples'] = p['Number Phi of previously drawn samples']
-
-    randomParams['Mean'] = E[0] / (2.*(1.+nu[0]))
-    randomParams['Dispersion level'] = p['Dispersion level']
-
-    solverList['randomParams'] = randomParams
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 3, ensemble_size)
-    slv.start()
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-
-def evaluate_all_prec(msh, comm, file_dir, prec_params):
-
-    N = prec_params.shape[0]
-
-    for i in range(1000, 1500):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        current_dir = os.getcwd()
-
-        Ngs = int(prec_params[i, 0])
-        omegags = prec_params[i, 1]
-
-        directory = 'mean_case'
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        evaluate_prec(msh, comm, file_dir, Ngs, omegags)
-        os.chdir('..')
-
-        for ensemble_size in [8]:
-            directory = 'ensemble_reduction_' + str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_prec(msh,
-                          comm,
-                          file_dir,
-                          Ngs, omegags,
-                          ensemble_size=ensemble_size)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = gmsh.MeshLoader('plate.geo', file_dir).execute()
-
-    GS_sweeps_00_min = 1
-    GS_sweeps_00_max = 41
-    delta_GS_sweeps_00 = 1
-
-    N_GS_sweeps_00 = int(
-        np.ceil(
-            ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-    # Damping has to be between 0 and 2
-    GS_damping_00_min = 0.001
-    GS_damping_00_max = 1.999
-    N_GS_damping_00 = 50
-
-    sweeps_00 = np.arange(GS_sweeps_00_min, GS_sweeps_00_max,
-                          delta_GS_sweeps_00)
-    damping_00 = np.linspace(GS_damping_00_min, GS_damping_00_max,
-                             N_GS_damping_00)
-
-    N = N_GS_sweeps_00 * N_GS_damping_00
-
-    prec_params = np.zeros((N, 2))
-
-    i = 0
-
-    for i_0 in range(0, N_GS_sweeps_00):
-        for i_1 in range(0, N_GS_damping_00):
-            prec_params[i, :] = [
-                sweeps_00[i_0], damping_00[i_1]
-            ]
-            i = i + 1
-
-    np.savetxt('prec_params.txt', prec_params)
-
-    evaluate_all_prec(msh, comm, file_dir, prec_params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_4.py b/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_4.py
deleted file mode 100644
index 714a034b..00000000
--- a/katoptron/CMAME/old_tests/fused_plate_mean_prec_GS_4.py
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_prec(msh, comm, file_dir, Ngs, omegags, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pbl = m.Problem(msh, comm)
-
-    # Units are in mm
-    E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-    nu = 0.35 * np.ones(ensemble_size)
-    k = 0.
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamped xyz", "Clamped", 1, 0.,
-                1, 0., 1, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped xy", "Clamped", 1, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "clamped y", "Clamped", 0, 0.,
-                1, 0., 0, 0., 0, 0., ensemble_size)
-
-    f = 700 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-    zero = np.zeros(ensemble_size)
-    one = np.ones(ensemble_size)
-    m.Neumann(pbl, 'load 1', 'load', 0, zero, 1,
-              f, 0, zero, 0, one, ensemble_size)
-    m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -
-              f, 0, zero, 0, one, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 1e-6
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 3
-    mueluParams['max levels'] = 1
-    mueluParams['coarse: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = Ngs
-    mueluParamsSub2['relaxation: damping factor'] = omegags
-
-    mueluParams['verbosity'] = "high"
-
-    mueluParams['coarse: params'] = mueluParamsSub2
-
-    solverList['convert MueLu xml file'] = True
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Print Teuchos timers'] = True
-
-    solverList['gamma'] = p['gamma']
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = 'BlockGmres'
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Write matrix and vectors'] = p['Write matrix and vectors']
-    solverList['Write txt files'] = p['Write txt files']
-
-    if p["Is exp"]:
-        num_random_variables = randomVariable.shape[1]
-    else:
-        num_random_variables = 0
-
-    for i in range(0, num_random_variables):
-        rand = randomVariable[:, i]
-        pbl.add(m.RandomVariable(rand))
-
-    randomParams = Teuchos.ParameterList()
-
-    randomParams['Is random'] = True
-    randomParams['Is exp'] = p['Is exp']
-    if p["Is exp"]:
-        randomParams['Begin X'] = 0.
-        randomParams['Begin Y'] = 0.
-        randomParams['Begin Z'] = 0.
-        randomParams['End X'] = 10.
-        randomParams['End Y'] = 10.
-        randomParams['End Z'] = 1.
-        randomParams['Number random variables'] = num_random_variables
-        randomParams['Correlation length X'] = p['Correlation length X']
-        randomParams['Correlation length Y'] = p['Correlation length Y']
-        randomParams['Correlation length Z'] = p['Correlation length Z']
-        randomParams['Number of KL Terms X'] = p['Number of KL Terms X']
-        randomParams['Number of KL Terms Y'] = p['Number of KL Terms Y']
-        randomParams['Number of KL Terms Z'] = p['Number of KL Terms Z']
-        randomParams['Maximum Nonlinear Solver Iterations'] = 5000
-        randomParams['Bound Perturbation Size'] = 1E-10
-    else:
-        randomParams['Correlation length'] = p['Correlation length']
-        randomParams['Wavenumber cutoff'] = p['Wavenumber cutoff']
-        randomParams['Wavenumber discretization points'] = p['Wavenumber discretization points']
-        randomParams['Number Z of previously drawn samples'] = p['Number Z of previously drawn samples']
-        randomParams['Number Phi of previously drawn samples'] = p['Number Phi of previously drawn samples']
-
-    randomParams['Mean'] = E[0] / (2.*(1.+nu[0]))
-    randomParams['Dispersion level'] = p['Dispersion level']
-
-    solverList['randomParams'] = randomParams
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 3, ensemble_size)
-    slv.start()
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-
-def evaluate_all_prec(msh, comm, file_dir, prec_params):
-
-    N = prec_params.shape[0]
-
-    for i in range(1500, N):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        current_dir = os.getcwd()
-
-        Ngs = int(prec_params[i, 0])
-        omegags = prec_params[i, 1]
-
-        directory = 'mean_case'
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        evaluate_prec(msh, comm, file_dir, Ngs, omegags)
-        os.chdir('..')
-
-        for ensemble_size in [8]:
-            directory = 'ensemble_reduction_' + str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_prec(msh,
-                          comm,
-                          file_dir,
-                          Ngs, omegags,
-                          ensemble_size=ensemble_size)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = gmsh.MeshLoader('plate.geo', file_dir).execute()
-
-    GS_sweeps_00_min = 1
-    GS_sweeps_00_max = 41
-    delta_GS_sweeps_00 = 1
-
-    N_GS_sweeps_00 = int(
-        np.ceil(
-            ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-    # Damping has to be between 0 and 2
-    GS_damping_00_min = 0.001
-    GS_damping_00_max = 1.999
-    N_GS_damping_00 = 50
-
-    sweeps_00 = np.arange(GS_sweeps_00_min, GS_sweeps_00_max,
-                          delta_GS_sweeps_00)
-    damping_00 = np.linspace(GS_damping_00_min, GS_damping_00_max,
-                             N_GS_damping_00)
-
-    N = N_GS_sweeps_00 * N_GS_damping_00
-
-    prec_params = np.zeros((N, 2))
-
-    i = 0
-
-    for i_0 in range(0, N_GS_sweeps_00):
-        for i_1 in range(0, N_GS_damping_00):
-            prec_params[i, :] = [
-                sweeps_00[i_0], damping_00[i_1]
-            ]
-            i = i + 1
-
-    np.savetxt('prec_params.txt', prec_params)
-
-    evaluate_all_prec(msh, comm, file_dir, prec_params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate.py b/katoptron/CMAME/old_tests/plate.py
deleted file mode 100644
index 01b9e96d..00000000
--- a/katoptron/CMAME/old_tests/plate.py
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def main():
-
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 1
-    num_random_variables = 20
-    #randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    #randomVariable = np.resize(randomVariable,(N,num_random_variables))
-    randomVariable = np.zeros((N, num_random_variables))
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../tests/direct_solver.xml'
-    p['Write txt files'] = True
-    p['Write matrix and vectors'] = True
-
-    ensemble_size = 1
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_GS_all_cases.py b/katoptron/CMAME/old_tests/plate_MC_GS_all_cases.py
deleted file mode 100644
index e54831da..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_GS_all_cases.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""@package docstring
-This test runs the four different cases as defined in table 2 of the paper
-with a SIMPLE-GS-GS preconditioner.
-"""
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def get_parameters(case_id, first_sample_id):
-    """
-    This function returns the python dictionary that includes 
-    the parameters for a given test case
-    """
-    p = model.defaut_params
-
-    if case_id == 1:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.1
-    elif case_id == 2:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.3
-    elif case_id == 3:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-    elif case_id == 4:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.3
-    elif case_id == 5:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.1
-    elif case_id == 6:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.3
-
-    p['Wavenumber cutoff'] = 8.
-    p['Wavenumber discretization points'] = nuw
-    p['Number Z of previously drawn samples'] = first_sample_id * nuw**2
-    p['Number Phi of previously drawn samples'] = first_sample_id * nuw**2
-
-    p['Is exp'] = False
-    return p
-
-
-def evaluate_one_ensemble(ensemble_size, case_id, first_sample_id, msh, comm,
-                          file_dir):
-    """
-    This function evaluates one ensemble for a given test case
-    """
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = get_parameters(case_id, first_sample_id)
-
-    pm = model.plate_model(ensemble_size, np.array([0]), msh, comm, file_dir,
-                           work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir):
-    """
-    This function loop over the test cases, the ensemble sizes,
-    and the ensembles
-    """
-    for case_id in case_ids:
-        directory_case_id = 'case_' + str(case_id)
-        if not os.path.exists(directory_case_id):
-            os.makedirs(directory_case_id)
-        os.chdir(directory_case_id)
-        for ensemble_size in ensemble_sizes:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-
-            N_ensemble = N // ensemble_size
-            for ensemble_index in range(0, N_ensemble):
-                directory = str(ensemble_index)
-                if not os.path.exists(directory):
-                    os.makedirs(directory)
-                os.chdir(directory)
-
-                first_sample_id = ensemble_index * ensemble_size
-
-                evaluate_one_ensemble(ensemble_size, case_id, first_sample_id,
-                                      msh, comm, file_dir)
-                os.chdir('..')
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    N = 960
-    ensemble_sizes = [1, 8, 16, 32]
-    case_ids = [1, 2, 3, 4, 5, 6]
-
-    evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_GS_case_1.py b/katoptron/CMAME/old_tests/plate_MC_GS_case_1.py
deleted file mode 100644
index 872bc1f4..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_GS_case_1.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 20
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_GS_case_2.py b/katoptron/CMAME/old_tests/plate_MC_GS_case_2.py
deleted file mode 100644
index b0ae7acf..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_GS_case_2.py
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['Dispersion level'] = 0.3
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 20
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_GS_case_3.py b/katoptron/CMAME/old_tests/plate_MC_GS_case_3.py
deleted file mode 100644
index 5a370e81..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_GS_case_3.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['Correlation length X'] = 10.
-    p['Correlation length Y'] = 10.
-    p['Number of KL Terms X'] = 15
-    p['Number of KL Terms Y'] = 15
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 70
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_GS_case_4.py b/katoptron/CMAME/old_tests/plate_MC_GS_case_4.py
deleted file mode 100644
index 9dd999aa..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_GS_case_4.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['Correlation length X'] = 10.
-    p['Correlation length Y'] = 10.
-    p['Number of KL Terms X'] = 15
-    p['Number of KL Terms Y'] = 15
-    p['Dispersion level'] = 0.3
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 70
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_GS_direct_all_cases.py b/katoptron/CMAME/old_tests/plate_MC_GS_direct_all_cases.py
deleted file mode 100644
index 7019bce9..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_GS_direct_all_cases.py
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""@package docstring
-This test runs the four different cases as defined in table 2 of the paper
-with a SIMPLE-GS-GS preconditioner.
-"""
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def get_parameters(case_id, first_sample_id):
-    """
-    This function returns the python dictionary that includes 
-    the parameters for a given test case
-    """
-    p = model.defaut_params
-
-    if case_id == 1:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.1
-    elif case_id == 2:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.3
-    elif case_id == 3:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-    elif case_id == 4:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.3
-    elif case_id == 5:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.1
-    elif case_id == 6:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.3
-
-    p['Wavenumber cutoff'] = 8.
-    p['Wavenumber discretization points'] = nuw
-    p['Number Z of previously drawn samples'] = first_sample_id * nuw**2
-    p['Number Phi of previously drawn samples'] = first_sample_id * nuw**2
-
-    p['MueLu xml file name'] = '/SIMPLE_GS_direct.xml'
-    p['MueLu xml template file name'] = '/../preconditioners/SIMPLE_gs_direct.xml.in'
-    p['MueLu xml params name'] = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                                  '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                                  '$SCHUR_omega', '$SimpleSmoother_damping']
-    p['MueLu xml params'] = [
-        '3', '3', '16', '1.8', '1', '1'
-    ]
-
-    p['Is exp'] = False
-    p['gamma'] = 0.
-    return p
-
-
-def evaluate_one_ensemble(ensemble_size, case_id, first_sample_id, msh, comm,
-                          file_dir):
-    """
-    This function evaluates one ensemble for a given test case
-    """
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = get_parameters(case_id, first_sample_id)
-
-    pm = model.plate_model(ensemble_size, np.array([0]), msh, comm, file_dir,
-                           work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir):
-    """
-    This function loop over the test cases, the ensemble sizes,
-    and the ensembles
-    """
-    for case_id in case_ids:
-        directory_case_id = 'case_' + str(case_id)
-        if not os.path.exists(directory_case_id):
-            os.makedirs(directory_case_id)
-        os.chdir(directory_case_id)
-        for ensemble_size in ensemble_sizes:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-
-            N_ensemble = (N // ensemble_size)
-            for ensemble_index in range(0, N_ensemble):
-                directory = str(ensemble_index)
-                if not os.path.exists(directory):
-                    os.makedirs(directory)
-                os.chdir(directory)
-
-                first_sample_id = ensemble_index * ensemble_size
-
-                evaluate_one_ensemble(ensemble_size, case_id, first_sample_id,
-                                      msh, comm, file_dir)
-                os.chdir('..')
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    N = 96
-    ensemble_sizes = [1, 8, 16, 32]
-    case_ids = [1, 2, 3, 4, 5, 6]
-
-    evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_MG_all_cases.py b/katoptron/CMAME/old_tests/plate_MC_MG_all_cases.py
deleted file mode 100644
index b31f9c5d..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_MG_all_cases.py
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""@package docstring
-This test runs the four different cases as defined in table 2 of the paper
-with a SIMPLE-GS-GS preconditioner.
-"""
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def get_parameters(case_id, first_sample_id):
-    """
-    This function returns the python dictionary that includes 
-    the parameters for a given test case
-    """
-    p = model.defaut_params
-
-    if case_id == 0:
-        p['Is random'] = False
-    elif case_id == 1:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.1
-    elif case_id == 2:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.3
-    elif case_id == 3:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-    elif case_id == 4:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.3
-    elif case_id == 5:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.1
-    elif case_id == 6:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.3
-
-    if p['Is random'] == True:
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = first_sample_id * nuw**2
-        p['Number Phi of previously drawn samples'] = first_sample_id * nuw**2
-
-    p['MueLu xml file name'] = '/SIMPLE_MG.xml'
-    p['MueLu xml template file name'] = '/../preconditioners/SIMPLE_gs_direct_lvl.xml.in'
-    p['MueLu xml params name'] = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                                  '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                                  '$SCHUR_omega', '$SimpleSmoother_damping', "$N_LVLS", "$N_SIZES", "$EXPORT_DATA", "$SimpleSmoother_sweeps"]
-    p['MueLu xml params'] = [
-        '3', '3', '3', '0.8', '0.8', '1', '2', '18', "true", '1'
-    ]
-
-    p['Is exp'] = False
-    p['gamma'] = 0.
-    return p
-
-
-def evaluate_one_ensemble(ensemble_size, case_id, first_sample_id, msh, comm,
-                          file_dir):
-    """
-    This function evaluates one ensemble for a given test case
-    """
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = get_parameters(case_id, first_sample_id)
-
-    pm = model.plate_model(ensemble_size, np.array([0]), msh, comm, file_dir,
-                           work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir):
-    """
-    This function loop over the test cases, the ensemble sizes,
-    and the ensembles
-    """
-    for case_id in case_ids:
-        directory_case_id = 'case_' + str(case_id)
-        if not os.path.exists(directory_case_id):
-            os.makedirs(directory_case_id)
-        os.chdir(directory_case_id)
-        for ensemble_size in ensemble_sizes:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-
-            N_ensemble = (N // ensemble_size)
-            for ensemble_index in range(0, N_ensemble):
-                directory = str(ensemble_index)
-                if not os.path.exists(directory):
-                    os.makedirs(directory)
-                os.chdir(directory)
-
-                first_sample_id = ensemble_index * ensemble_size
-
-                evaluate_one_ensemble(ensemble_size, case_id, first_sample_id,
-                                      msh, comm, file_dir)
-                os.chdir('..')
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    deterministic = True
-
-    if deterministic:
-        N = 1
-        ensemble_sizes = [1]
-        case_ids = [0]
-    else:
-        N = 64
-        ensemble_sizes = [1, 8, 16, 32]
-        case_ids = [1, 2, 3, 4, 5, 6]
-
-    evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_MG_all_cases_2.py b/katoptron/CMAME/old_tests/plate_MC_MG_all_cases_2.py
deleted file mode 100644
index 7c90bac1..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_MG_all_cases_2.py
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""@package docstring
-This test runs the four different cases as defined in table 2 of the paper
-with a SIMPLE-GS-GS preconditioner.
-"""
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def get_parameters(case_id, first_sample_id):
-    """
-    This function returns the python dictionary that includes 
-    the parameters for a given test case
-    """
-    p = model.defaut_params
-
-    if case_id == 0:
-        p['Is random'] = False
-    elif case_id == 1:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.1
-    elif case_id == 2:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.3
-    elif case_id == 3:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-    elif case_id == 4:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.3
-    elif case_id == 5:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.1
-    elif case_id == 6:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.3
-
-    if p['Is random'] == True:
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = first_sample_id * nuw**2
-        p['Number Phi of previously drawn samples'] = first_sample_id * nuw**2
-
-    p['MueLu xml file name'] = '/SIMPLE_MG.xml'
-    p['MueLu xml template file name'] = '/../../preconditioners/SIMPLE_gs_direct_lvl_MT.xml.in'
-    p['MueLu xml params name'] = [
-        '$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-        '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping', '$SCHUR_omega',
-        '$SimpleSmoother_damping', "$N_LVLS", "$N_SIZES", "$EXPORT_DATA",
-        "$SimpleSmoother_sweeps"
-    ]
-    p['MueLu xml params'] = [
-        '3', '3', '3', '0.8', '0.8', '1', '2', '18', "true", '1'
-    ]
-
-    p['Is exp'] = False
-    #p['gamma'] = 0.
-    return p
-
-
-def evaluate_one_ensemble(ensemble_size, case_id, first_sample_id, msh, comm,
-                          file_dir):
-    """
-    This function evaluates one ensemble for a given test case
-    """
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = get_parameters(case_id, first_sample_id)
-
-    pm = model.plate_model(ensemble_size, np.array([0]), msh, comm, file_dir,
-                           work_dir, p)
-    pm.run()
-
-
-def evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir):
-    """
-    This function loop over the test cases, the ensemble sizes,
-    and the ensembles
-    """
-    for case_id in case_ids:
-        directory_case_id = 'case_' + str(case_id)
-        if not os.path.exists(directory_case_id):
-            os.makedirs(directory_case_id)
-        os.chdir(directory_case_id)
-        for ensemble_size in ensemble_sizes:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-
-            N_ensemble = (N // ensemble_size)
-            for ensemble_index in range(0, N_ensemble):
-                directory = str(ensemble_index)
-                if not os.path.exists(directory):
-                    os.makedirs(directory)
-                os.chdir(directory)
-
-                first_sample_id = ensemble_index * ensemble_size
-
-                evaluate_one_ensemble(ensemble_size, case_id, first_sample_id,
-                                      msh, comm, file_dir)
-                os.chdir('..')
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir + '/../mesh',
-                        work_dir, comm, rank, size)
-
-    deterministic = False
-
-    if deterministic:
-        N = 1
-        ensemble_sizes = [1]
-        case_ids = [0]
-    else:
-        N = 64
-        ensemble_sizes = [1, 8, 16, 32]
-        case_ids = [1, 2, 3, 4, 5, 6]
-
-    nThreads = u.Initialize_Kokkos()
-    evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir)
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1.py b/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1.py
deleted file mode 100644
index b6cbaf52..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    p['Write txt files'] = True
-    p['Write matrix and vectors'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = (N // ensemble_size)
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 32
-    num_random_variables = 20
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1_sp.py b/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1_sp.py
deleted file mode 100644
index 17fbd571..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_1_sp.py
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, index, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    nuw = 128
-
-    p = model.defaut_params
-    p["Correlation length"] = 5.
-    p["Wavenumber cutoff"] = 8.
-    p["Wavenumber discretization points"] = nuw
-
-    p["Number Z of previously drawn samples"] = index*nuw**2
-    p["Number Phi of previously drawn samples"] = index*nuw**2
-
-    p["Is exp"] = False
-
-    pm = model.plate_model(
-        ensemble_size, [0.], msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, N, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N_ensemble = (N // ensemble_size)
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(
-            ensemble_size, ensemble_index, msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    N = 2
-
-    evaluate_all_ensembles(1, N, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_2.py b/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_2.py
deleted file mode 100644
index d1b1b4a2..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_2.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    p['Dispersion level'] = 0.3
-
-    p['Write txt files'] = True
-    p['Write matrix and vectors'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = (N // ensemble_size)
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 32
-    num_random_variables = 20
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_3.py b/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_3.py
deleted file mode 100644
index 901fc84f..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_3.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    p['Correlation length X'] = 5.
-    p['Correlation length Y'] = 5.
-    p['Number of KL Terms X'] = 15
-    p['Number of KL Terms Y'] = 15
-
-    p['Write txt files'] = True
-    p['Write matrix and vectors'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = (N // ensemble_size)
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 32
-    num_random_variables = 105
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_4.py b/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_4.py
deleted file mode 100644
index e35f3a2a..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_NO_EP_case_4.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    p['Correlation length X'] = 5.
-    p['Correlation length Y'] = 5.
-    p['Number of KL Terms X'] = 15
-    p['Number of KL Terms Y'] = 15
-    p['Dispersion level'] = 0.3
-
-    p['Write txt files'] = True
-    p['Write matrix and vectors'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = (N // ensemble_size)
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 32
-    num_random_variables = 105
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_direct_case_1.py b/katoptron/CMAME/old_tests/plate_MC_direct_case_1.py
deleted file mode 100644
index dc5cebe5..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_direct_case_1.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 20
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_direct_case_2.py b/katoptron/CMAME/old_tests/plate_MC_direct_case_2.py
deleted file mode 100644
index e8f8366c..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_direct_case_2.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    p['Dispersion level'] = 0.3
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 20
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_direct_case_3.py b/katoptron/CMAME/old_tests/plate_MC_direct_case_3.py
deleted file mode 100644
index 72d3dfd3..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_direct_case_3.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    p['Correlation length X'] = 10.
-    p['Correlation length Y'] = 10.
-    p['Number of KL Terms X'] = 15
-    p['Number of KL Terms Y'] = 15
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 70
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_MC_direct_case_4.py b/katoptron/CMAME/old_tests/plate_MC_direct_case_4.py
deleted file mode 100644
index b3c8cb6c..00000000
--- a/katoptron/CMAME/old_tests/plate_MC_direct_case_4.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    p['Correlation length X'] = 10.
-    p['Correlation length Y'] = 10.
-    p['Number of KL Terms X'] = 15
-    p['Number of KL Terms Y'] = 15
-    p['Dispersion level'] = 0.3
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 96
-    num_random_variables = 70
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(16, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(32, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_convergence_direct.py b/katoptron/CMAME/old_tests/plate_convergence_direct.py
deleted file mode 100644
index e133243e..00000000
--- a/katoptron/CMAME/old_tests/plate_convergence_direct.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-from katoptron.eigenvalues import *
-from katoptron.convergence import *
-import os
-import fwk
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    N = 32
-
-    k_max = 20
-
-    matrix_input_file_dir = file_dir + \
-        '/../../workspace/katoptron_CMAME_tests_plate_MC_NO_EP/1/'
-    deltas_input_file_dir = file_dir + \
-        '/../../workspace/katoptron_CMAME_tests_plate_deltas_omegas_direct/'
-
-    for i in range(0, N):
-        timers = fwk.Timers()
-
-        filename_Q = matrix_input_file_dir + str(i) + '/ApCTC_mm.txt'
-        filename_GT = matrix_input_file_dir + str(i) + '/B_mm.txt'
-        filename_f = matrix_input_file_dir + str(i) + '/b_mm_after_bc.txt'
-
-        timers['Read files'].start()
-        Q = read_mm(filename_Q)
-        Q = get_symmetrical_part(Q)
-        GT = read_mm(filename_GT)
-        G = GT.transpose()
-        f = read_mm(filename_f, is_sparse=False)
-        A = create_block(Q, G, GT, None)
-        n = A.shape[0]
-        x0 = np.zeros((n,))
-        b = np.zeros((n,))
-        b[0:len(f)] = f
-        omegas = np.loadtxt(deltas_input_file_dir +
-                            '/omegas_direct_direct_' + str(i) + '.txt')
-        n_omegas = len(omegas)
-
-        tmp = np.loadtxt(deltas_input_file_dir +
-                         '/deltas_direct_direct_' + str(i) + '.txt')
-
-        deltas = np.zeros((n_omegas,), dtype=np.complex128)
-        deltas.real = tmp[:, 0]
-        deltas.imag = tmp[:, 1]
-
-        timers['Read files'].stop()
-        print(timers)
-
-        timers['Compute the convergence'].start()
-        convergence = compute_convergence(
-            k_max, n_omegas, omegas, deltas, A, b, x0, verbose=True)
-        timers['Compute the basconvergenceis'].stop()
-        print(timers)
-
-        np.savetxt(work_dir+'/convergence_' + str(i) + '.txt', convergence)
-
-        f = open('timers_' + str(i) + '.txt', 'w')
-        print(timers, file=f)
-        f.closed
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_correlation.py b/katoptron/CMAME/old_tests/plate_correlation.py
deleted file mode 100644
index 8ddb22f9..00000000
--- a/katoptron/CMAME/old_tests/plate_correlation.py
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_correlation(correlation, msh, comm, file_dir, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-
-    nuw = 128
-    p['Correlation length'] = correlation
-    p['Dispersion level'] = 0.1
-
-    p['Wavenumber cutoff'] = 8.
-    p['Wavenumber discretization points'] = nuw
-    p['Number Z of previously drawn samples'] = 0
-    p['Number Phi of previously drawn samples'] = 0
-    p['Is exp'] = False
-
-    pm = model.plate_model(ensemble_size, randomVariable, msh, comm, file_dir,
-                           work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_correlation(correlations, msh, comm, file_dir):
-
-    N = correlations.shape[0]
-    for i in range(0, N):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        for ensemble_size in [1, 8]:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_correlation(
-                correlations[i], msh, comm, file_dir, ensemble_size)
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    N = 200
-    correlation_min_exp = -1
-    correlation_max_exp = np.log10(2)
-
-    correlations = np.logspace(
-        correlation_min_exp, correlation_max_exp, N, endpoint=True)
-
-    np.savetxt('correlations.txt', correlations)
-
-    evaluate_all_correlation(correlations, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_deltas_omegas_GS.py b/katoptron/CMAME/old_tests/plate_deltas_omegas_GS.py
deleted file mode 100644
index 8ac06ecd..00000000
--- a/katoptron/CMAME/old_tests/plate_deltas_omegas_GS.py
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    n_sweeps_Q = 10
-    damp_Q = 1.6
-
-    n_sweeps_R = 10
-    damp_R = 1.6
-
-    omega = 0.5
-
-    N = 32
-
-    input_file_dir = file_dir + '/../../workspace/katoptron_CMAME_tests_plate_MC_NO_EP/1/'
-
-    sample_per_rank = np.ceil((N / siz))
-    i_min = rank*sample_per_rank
-    i_max = i_min+sample_per_rank
-
-    if i_min > N:
-        i_min = N
-    if i_max > N:
-        i_max = N
-
-    i_min = int(i_min)
-    i_max = int(i_max)
-
-    print('Rank ' + str(rank) + ' from sample ' + str(i_min) + ':' + str(i_max))
-
-    for i in range(i_min, i_max):
-        timers = fwk.Timers()
-
-        filename_Q = input_file_dir + str(i) + '/ApCTC_mm.txt'
-        filename_GT = input_file_dir + str(i) + '/B_mm.txt'
-        filename_f = input_file_dir + str(i) + '/b_mm_after_bc.txt'
-
-        timers['Read files'].start()
-        Q = read_mm(filename_Q)
-        Q = get_symmetrical_part(Q)
-        GT = read_mm(filename_GT)
-        G = GT.transpose()
-        f = read_mm(filename_f, is_sparse=False)
-        timers['Read files'].stop()
-
-        timers['Compute R'].start()
-        R = approx_Schur_complement(Q, G, GT)
-        timers['Compute R'].stop()
-
-        timers['Compute invR'].start()
-        invR = Gauss_Seidel(R, n=n_sweeps_R, damping=damp_R)
-        timers['Compute invR'].stop()
-
-        print(timers)
-
-        timers['Compute the inverse of Q'].start()
-        invQ = Gauss_Seidel(Q, n=n_sweeps_Q, damping=damp_Q)
-        timers['Compute the inverse of Q'].stop()
-
-        print(timers)
-
-        timers['Compute the preconditioned matrix'].start()
-        AinvP = SIMPLE_preconditioned_matrix(
-            Q, invQ, G, GT, R, invR, omega=omega)
-        timers['Compute the preconditioned matrix'].stop()
-
-        print(timers)
-
-        timers['Compute the basis'].start()
-
-        n = Q.shape[0]+R.shape[0]
-        b = np.zeros((n,))
-        b[0:len(f)] = f
-
-        N = 2
-        m_max = 6000
-        V, W = compute_VW(AinvP, b, m=m_max, N=N)
-        timers['Compute the basis'].stop()
-
-        print(timers)
-
-        timers['Compute the eigenvalues'].start()
-        deltas, omegas = compute_deltas_omegas(V, W, b)
-        timers['Compute the eigenvalues'].stop()
-
-        print(timers)
-
-        timers['Write the eigenvalues'].start()
-        write_eigenvalues(deltas, work_dir+'/deltas_GS_GS_' + str(i) + '.txt')
-        np.savetxt(work_dir+'/omegas_GS_GS_' + str(i) + '.txt', omegas)
-        timers['Write the eigenvalues'].stop()
-
-        f = open('timers_' + str(i) + '.txt', 'w')
-        print(timers, file=f)
-        f.closed
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_deltas_omegas_direct.py b/katoptron/CMAME/old_tests/plate_deltas_omegas_direct.py
deleted file mode 100644
index 1172faee..00000000
--- a/katoptron/CMAME/old_tests/plate_deltas_omegas_direct.py
+++ /dev/null
@@ -1,111 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    N = 32
-
-    input_file_dir = file_dir + '/../../workspace/katoptron_CMAME_tests_plate_MC_NO_EP/1/'
-
-    sample_per_rank = np.ceil((N / siz))
-    i_min = rank*sample_per_rank
-    i_max = (rank+1)*sample_per_rank
-
-    if i_min > N:
-        i_min = N
-    if i_max > N:
-        i_max = N
-
-    i_min = int(i_min)
-    i_max = int(i_max)
-
-    for i in range(i_min, i_max):
-        timers = fwk.Timers()
-
-        filename_Q = input_file_dir + str(i) + '/ApCTC_mm.txt'
-        filename_GT = input_file_dir + str(i) + '/B_mm.txt'
-        filename_f = input_file_dir + str(i) + '/b_mm_after_bc.txt'
-
-        timers['Read files'].start()
-        Q = read_mm(filename_Q)
-        Q = get_symmetrical_part(Q)
-        GT = read_mm(filename_GT)
-        G = GT.transpose()
-        f = read_mm(filename_f, is_sparse=False)
-        timers['Read files'].stop()
-
-        timers['Compute R'].start()
-        R = approx_Schur_complement(Q, G, GT)
-        timers['Compute R'].stop()
-
-        timers['Compute invR'].start()
-        invR = compute_inv(R)
-        timers['Compute invR'].stop()
-
-        print(timers)
-
-        timers['Compute the inverse of Q'].start()
-        invQG = compute_inv_on_image(Q, G)
-        timers['Compute the inverse of Q'].stop()
-
-        print(timers)
-
-        timers['Compute the preconditioned matrix'].start()
-        AinvP = SIMPLE_prec(Q, invQG, G, GT, R, invR, True)
-        timers['Compute the preconditioned matrix'].stop()
-
-        print(timers)
-
-        timers['Compute the basis'].start()
-
-        n = Q.shape[0]+R.shape[0]
-        b = np.zeros((n,))
-        b[0:len(f)] = f
-
-        N = 1
-        V = compute_V(AinvP, b, m=0, N=N)
-        W = compute_W(AinvP, b, V, N=N)
-
-        timers['Compute the basis'].stop()
-
-        print(timers)
-
-        timers['Compute the eigenvalues'].start()
-        deltas, omegas = compute_deltas_omegas(V, W, b)
-        timers['Compute the eigenvalues'].stop()
-
-        print(timers)
-
-        timers['Write the eigenvalues'].start()
-        write_eigenvalues(deltas, work_dir +
-                          '/deltas_direct_direct_' + str(i) + '.txt')
-        np.savetxt(work_dir+'/omegas_direct_direct_' + str(i) + '.txt', omegas)
-        timers['Write the eigenvalues'].stop()
-
-        f = open('timers_' + str(i) + '.txt', 'w')
-        print(timers, file=f)
-        f.closed
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_eigenvalues.py b/katoptron/CMAME/old_tests/plate_eigenvalues.py
deleted file mode 100644
index 7a05cca6..00000000
--- a/katoptron/CMAME/old_tests/plate_eigenvalues.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    N = 32
-
-    input_file_dir = file_dir + '/../../workspace/katoptron_CMAME_tests_plate_MC_NO_EP/1/'
-
-    i_min = 0
-    i_max = N
-
-    for i in range(i_min, i_max):
-        timers = fwk.Timers()
-
-        filename_Q = input_file_dir + str(i) + '/ApCTC_mm.txt'
-        filename_GT = input_file_dir + str(i) + '/B_mm.txt'
-
-        timers['Read files'].start()
-        Q = read_mm(filename_Q)
-        GT = read_mm(filename_GT)
-        G = GT.transpose()
-        timers['Read files'].stop()
-
-        timers['Compute R'].start()
-        R = approx_Schur_complement(Q, G, GT)
-        timers['Compute R'].stop()
-
-        print(timers)
-
-        timers['Compute the inverse of Q'].start()
-        invQG = compute_inv_on_image(Q, G)
-        timers['Compute the inverse of Q'].stop()
-
-        print(timers)
-
-        timers['Compute the eigenvalues'].start()
-        v = eigenvalues_SR(invQG, G, GT, R, True)
-        timers['Compute the eigenvalues'].stop()
-
-        print(timers)
-
-        timers['Write the eigenvalues'].start()
-        write_eigenvalues(
-            v, work_dir+'/eigenvalues_direct_direct_' + str(i) + '.txt')
-        timers['Write the eigenvalues'].stop()
-
-        f = open('timers_' + str(i) + '.txt', 'w')
-        print(timers, file=f)
-        f.closed
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_eigenvalues_gamma.py b/katoptron/CMAME/old_tests/plate_eigenvalues_gamma.py
deleted file mode 100644
index ff8a16ee..00000000
--- a/katoptron/CMAME/old_tests/plate_eigenvalues_gamma.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-from scipy.sparse import eye
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    N = 200
-    gamma_min_exp = -2
-    gamma_max_exp = 10
-
-    gammas = np.logspace(gamma_min_exp, gamma_max_exp, N, endpoint=True)
-
-    input_file_dir = file_dir + '/../../workspace/katoptron_CMAME_tests_plate_MC_NO_EP/1/'
-
-    filename_K = input_file_dir + '0/A_mm_after_bc.txt'
-    filename_GT = input_file_dir + '0/B_mm.txt'
-
-    K = read_mm(filename_K)
-    GT = read_mm(filename_GT)
-    G = GT.transpose()
-
-    for i in range(0, N):
-        timers = fwk.Timers()
-
-        Q = K + gammas[i] * G * GT
-
-        timers['Compute R'].start()
-        R = approx_Schur_complement(Q, G, GT)
-        timers['Compute R'].stop()
-
-        print(timers)
-
-        timers['Compute the inverse of Q'].start()
-        invQG = compute_inv_on_image(Q, G)
-        timers['Compute the inverse of Q'].stop()
-
-        print(timers)
-
-        timers['Compute the eigenvalues'].start()
-        v = eigenvalues_SR(invQG, G, GT, R, True)
-        timers['Compute the eigenvalues'].stop()
-
-        print(timers)
-
-        timers['Write the eigenvalues'].start()
-        write_eigenvalues(
-            v, work_dir+'/eigenvalues_direct_direct_' + str(i) + '.txt')
-        timers['Write the eigenvalues'].stop()
-
-        f = open('timers_' + str(i) + '.txt', 'w')
-        print(timers, file=f)
-        f.closed
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_extended.py b/katoptron/CMAME/old_tests/plate_extended.py
deleted file mode 100644
index 13303831..00000000
--- a/katoptron/CMAME/old_tests/plate_extended.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def main():
-
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2_extended.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 1
-    num_random_variables = 20
-    #randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    #randomVariable = np.resize(randomVariable,(N,num_random_variables))
-    randomVariable = np.zeros((N, num_random_variables))
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-
-    ensemble_size = 1
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_mean_gamma.py b/katoptron/CMAME/old_tests/plate_mean_gamma.py
deleted file mode 100644
index 5b4324bc..00000000
--- a/katoptron/CMAME/old_tests/plate_mean_gamma.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_gamma(gamma, msh, comm, file_dir, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['gamma'] = gamma
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pm = model.plate_model(ensemble_size, randomVariable, msh, comm, file_dir,
-                           work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_gamma(gammas, msh, comm, file_dir):
-
-    N = gammas.shape[0]
-    for i in range(0, N):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        for ensemble_size in [1, 8]:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_gamma(gammas[i], msh, comm, file_dir, ensemble_size)
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    N = 200
-    gamma_min_exp = -2
-    gamma_max_exp = 10
-
-    gammas = np.logspace(gamma_min_exp, gamma_max_exp, N, endpoint=True)
-
-    np.savetxt('gammas.txt', gammas)
-
-    evaluate_all_gamma(gammas, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_mean_prec.py b/katoptron/CMAME/old_tests/plate_mean_prec.py
deleted file mode 100644
index 69e0663e..00000000
--- a/katoptron/CMAME/old_tests/plate_mean_prec.py
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_prec(msh, comm, file_dir, muelu_xml):
-
-    work_dir = os.getcwd()
-
-    p = model.defaut_params
-    p['MueLu xml use template'] = False
-
-    N = 1
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_prec(msh, comm, file_dir, muelu_xml_in, prec_params):
-
-    N = prec_params.shape[0]
-
-    for i in range(0, N):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        current_dir = os.getcwd()
-
-        old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                       '$BLOCK_00_GS_sweeps', '$BLOCK_11_GS_sweeps',
-                       '$BLOCK_00_GS_damping', '$BLOCK_11_GS_damping',
-                       '$SCHUR_omega', '$SimpleSmoother_damping']
-        new_strings = ['3', '3', str(int(prec_params[i, 0])), str(int(prec_params[i, 1])), str(
-            prec_params[i, 2]), str(prec_params[i, 3]), str(prec_params[i, 4]), str(prec_params[i, 5])]
-
-        u.replace_strings(muelu_xml_in, current_dir +
-                          '/SIMPLE_gs.xml', old_strings, new_strings)
-
-        evaluate_prec(msh, comm, file_dir, current_dir+'/SIMPLE_gs.xml')
-
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    muelu_xml_in = file_dir + '/../preconditioners/SIMPLE_gs.xml.in'
-
-    N_GS_sweeps_00 = 1
-    N_GS_sweeps_11 = 1
-    N_GS_damping_00 = 6
-    N_GS_damping_11 = 6
-    N_SS_omega = 6
-    N_SS_damping = 6
-
-    GS_sweeps_00_min = 10
-    GS_sweeps_00_max = 11
-
-    GS_sweeps_11_min = 10
-    GS_sweeps_11_max = 11
-
-    GS_damping_00_min = 0.9
-    GS_damping_00_max = 1.5
-
-    GS_damping_11_min = 0.9
-    GS_damping_11_max = 1.5
-
-    SS_omega_min = 0.7
-    SS_omega_max = 1.1
-
-    SS_damping_min = 0.8
-    SS_damping_max = 1.2
-
-    sweeps_00 = np.arange(GS_sweeps_00_min, GS_sweeps_00_max, N_GS_sweeps_00)
-    sweeps_11 = np.arange(GS_sweeps_11_min, GS_sweeps_11_max, N_GS_sweeps_11)
-    damping_00_min = np.linspace(
-        GS_damping_00_min, GS_damping_00_max, N_GS_damping_00)
-    damping_11_min = np.linspace(
-        GS_damping_11_min, GS_damping_11_max, N_GS_damping_11)
-    SS_omega = np.linspace(SS_omega_min, SS_omega_max, N_SS_omega)
-    SS_damping = np.linspace(SS_damping_min, SS_damping_max, N_SS_damping)
-
-    N = N_GS_sweeps_00 * N_GS_sweeps_11 * N_GS_damping_00 * \
-        N_GS_damping_11 * N_SS_omega * N_SS_damping
-
-    prec_params = np.zeros((N, 6))
-
-    i = 0
-
-    for i_0 in range(0, N_GS_sweeps_00):
-        for i_1 in range(0, N_GS_sweeps_11):
-            for i_2 in range(0, N_GS_damping_00):
-                for i_3 in range(0, N_GS_damping_11):
-                    for i_4 in range(0, N_SS_omega):
-                        for i_5 in range(0, N_SS_damping):
-                            prec_params[i, :] = [sweeps_00[i_0], sweeps_11[i_1], damping_00_min[i_2],
-                                                 damping_11_min[i_3], SS_omega[i_4], SS_damping[i_5]]
-                            i = i + 1
-
-    np.savetxt('prec_params.txt', prec_params)
-
-    evaluate_all_prec(msh, comm, file_dir, muelu_xml_in, prec_params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct.py b/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct.py
deleted file mode 100644
index 0e35fc87..00000000
--- a/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct.py
+++ /dev/null
@@ -1,196 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_prec(msh, comm, file_dir, muelu_xml, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml use template'] = False
-    p['MueLu xml from current_dir'] = True
-    p['MueLu xml file name'] = '/../SIMPLE_gs_direct.xml'
-    p['gamma'] = 0.
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pm = model.plate_model(ensemble_size, randomVariable, msh, comm, file_dir,
-                           work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_prec(msh, comm, file_dir, muelu_xml_in, prec_params):
-
-    N = prec_params.shape[0]
-
-    for i in range(0, N):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        current_dir = os.getcwd()
-
-        old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                       '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                       '$SCHUR_omega', '$SimpleSmoother_damping']
-        new_strings = [
-            '3', '3',
-            str(int(prec_params[i, 0])),
-            str(prec_params[i, 1]),
-            str(prec_params[i, 2]),
-            str(prec_params[i, 3])
-        ]
-
-        print(muelu_xml_in)
-        u.replace_strings(muelu_xml_in, current_dir + '/SIMPLE_gs_direct.xml',
-                          old_strings, new_strings)
-        print(current_dir + '/SIMPLE_gs_direct.xml')
-
-        directory = 'mean_case'
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        evaluate_prec(msh, comm, file_dir,
-                      current_dir + '/SIMPLE_gs_direct.xml')
-        os.chdir('..')
-
-        for ensemble_size in [8]:
-            directory = 'ensemble_reduction_' + str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_prec(msh,
-                          comm,
-                          file_dir,
-                          current_dir + '/SIMPLE_gs_direct.xml',
-                          ensemble_size=ensemble_size)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    muelu_xml_in = file_dir + '/../preconditioners/SIMPLE_gs_direct.xml.in'
-
-    GS_sweeps_00_min = 16
-    GS_sweeps_00_max = 41
-    delta_GS_sweeps_00 = 2
-
-    N_GS_sweeps_00 = int(
-        np.ceil(
-            ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-    # Damping has to be between 0 and 2
-    GS_damping_00_min = 0.001
-    GS_damping_00_max = 1.999
-    N_GS_damping_00 = 20
-
-    # Omega has to be between 0 and 1
-    SS_omega_min = 1.
-    SS_omega_max = 1.2
-    N_SS_omega = 1
-
-    SS_damping_min = 1.
-    SS_damping_max = 1.2
-    N_SS_damping = 1
-
-    sweeps_00 = np.arange(GS_sweeps_00_min, GS_sweeps_00_max,
-                          delta_GS_sweeps_00)
-    damping_00 = np.linspace(GS_damping_00_min, GS_damping_00_max,
-                             N_GS_damping_00)
-    SS_omega = np.linspace(SS_omega_min, SS_omega_max, N_SS_omega)
-    SS_damping = np.linspace(SS_damping_min, SS_damping_max, N_SS_damping)
-
-    N = N_GS_sweeps_00 * N_GS_damping_00 * N_SS_omega * N_SS_damping
-    '''
-    N = 12
-    
-    prec_params = np.array([[8, 1.75, 0.46363636363636374, 1.],
-                   [10, 1.75, 0.3545454545454546, 1.],
-                   [12, 1.75, 0.390909090909091, 1.],
-                   [14, 1.8045454545454545, 0.42727272727272736, 1.],
-                   [16, 1.8227272727272728, 0.42727272727272736, 1.],
-                   [18, 1.8045454545454545, 0.3545454545454546, 1.],
-                   [20, 1.8227272727272728, 0.390909090909091, 1.],
-                   [22, 1.8227272727272728, 0.390909090909091, 1.],
-                   [24, 1.8590909090909091, 0.390909090909091, 1.],
-                   [26, 1.8590909090909091, 0.3545454545454546, 1.],
-                   [28, 1.8590909090909091, 0.3545454545454546, 1.],
-                   [30, 1.8772727272727272, 0.390909090909091, 1.]])
-
-    '''
-    prec_params = np.zeros((N, 4))
-
-    i = 0
-
-    for i_0 in range(0, N_GS_sweeps_00):
-        for i_1 in range(0, N_GS_damping_00):
-            for i_2 in range(0, N_SS_omega):
-                for i_3 in range(0, N_SS_damping):
-                    prec_params[i, :] = [
-                        sweeps_00[i_0], damping_00[i_1], SS_omega[i_2],
-                        SS_damping[i_3]
-                    ]
-                    i = i + 1
-
-    np.savetxt('prec_params.txt', prec_params)
-
-    evaluate_all_prec(msh, comm, file_dir, muelu_xml_in, prec_params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_lvl.py b/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_lvl.py
deleted file mode 100644
index 4b4b46e3..00000000
--- a/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_lvl.py
+++ /dev/null
@@ -1,197 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_prec(msh, comm, file_dir, muelu_xml, ensemble_size=1):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml use template'] = False
-    p['MueLu xml from current_dir'] = True
-    p['MueLu xml file name'] = '/../SIMPLE_gs_direct.xml'
-    #p['gamma'] = 0.
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pm = model.plate_model(ensemble_size, randomVariable, msh, comm, file_dir,
-                           work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_prec(msh, comm, file_dir, muelu_xml_in, prec_params):
-
-    N = prec_params.shape[0]
-
-    for i in range(0, N):
-        directory = str(i)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        current_dir = os.getcwd()
-
-        old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                       '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                       '$SCHUR_omega', '$SimpleSmoother_damping', "$N_LVLS"]
-        new_strings = [
-            '3', '3',
-            str(int(prec_params[i, 0])),
-            str(prec_params[i, 1]),
-            str(prec_params[i, 2]),
-            str(prec_params[i, 3]),
-            '2'
-        ]
-
-        print(muelu_xml_in)
-        u.replace_strings(muelu_xml_in, current_dir + '/SIMPLE_gs_direct.xml',
-                          old_strings, new_strings)
-        print(current_dir + '/SIMPLE_gs_direct.xml')
-
-        directory = 'mean_case'
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        evaluate_prec(msh, comm, file_dir,
-                      current_dir + '/SIMPLE_gs_direct.xml')
-        os.chdir('..')
-
-        for ensemble_size in [8]:
-            directory = 'ensemble_reduction_' + str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-            evaluate_prec(msh,
-                          comm,
-                          file_dir,
-                          current_dir + '/SIMPLE_gs_direct.xml',
-                          ensemble_size=ensemble_size)
-            os.chdir('..')
-
-        os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    muelu_xml_in = file_dir + '/../preconditioners/SIMPLE_gs_direct_lvl.xml.in'
-
-    GS_sweeps_00_min = 6
-    GS_sweeps_00_max = 7
-    delta_GS_sweeps_00 = 1
-
-    N_GS_sweeps_00 = int(
-        np.ceil(
-            ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-    # Damping has to be between 0 and 2
-    GS_damping_00_min = 0.01
-    GS_damping_00_max = 1.99
-    N_GS_damping_00 = 8
-
-    # Omega has to be between 0 and 1
-    SS_omega_min = 0.5
-    SS_omega_max = 1.
-    N_SS_omega = 8
-
-    SS_damping_min = 1.
-    SS_damping_max = 1.
-    N_SS_damping = 1
-
-    sweeps_00 = np.arange(GS_sweeps_00_min, GS_sweeps_00_max,
-                          delta_GS_sweeps_00)
-    damping_00 = np.linspace(GS_damping_00_min, GS_damping_00_max,
-                             N_GS_damping_00)
-    SS_omega = np.linspace(SS_omega_min, SS_omega_max, N_SS_omega)
-    SS_damping = np.linspace(SS_damping_min, SS_damping_max, N_SS_damping)
-
-    N = N_GS_sweeps_00 * N_GS_damping_00 * N_SS_omega * N_SS_damping
-    '''
-    N = 12
-    
-    prec_params = np.array([[8, 1.75, 0.46363636363636374, 1.],
-                   [10, 1.75, 0.3545454545454546, 1.],
-                   [12, 1.75, 0.390909090909091, 1.],
-                   [14, 1.8045454545454545, 0.42727272727272736, 1.],
-                   [16, 1.8227272727272728, 0.42727272727272736, 1.],
-                   [18, 1.8045454545454545, 0.3545454545454546, 1.],
-                   [20, 1.8227272727272728, 0.390909090909091, 1.],
-                   [22, 1.8227272727272728, 0.390909090909091, 1.],
-                   [24, 1.8590909090909091, 0.390909090909091, 1.],
-                   [26, 1.8590909090909091, 0.3545454545454546, 1.],
-                   [28, 1.8590909090909091, 0.3545454545454546, 1.],
-                   [30, 1.8772727272727272, 0.390909090909091, 1.]])
-
-    '''
-    prec_params = np.zeros((N, 4))
-
-    i = 0
-
-    for i_0 in range(0, N_GS_sweeps_00):
-        for i_1 in range(0, N_GS_damping_00):
-            for i_2 in range(0, N_SS_omega):
-                for i_3 in range(0, N_SS_damping):
-                    prec_params[i, :] = [
-                        sweeps_00[i_0], damping_00[i_1], SS_omega[i_2],
-                        SS_damping[i_3]
-                    ]
-                    i = i + 1
-
-    np.savetxt('prec_params.txt', prec_params)
-
-    evaluate_all_prec(msh, comm, file_dir, muelu_xml_in, prec_params)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_opti.py b/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_opti.py
deleted file mode 100644
index b48d802e..00000000
--- a/katoptron/CMAME/old_tests/plate_mean_prec_GS_direct_opti.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-from katoptron.readers import *
-
-
-def f(x):
-    import sys
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-    orig_stdout = sys.stdout
-    sys.stdout = open('file', 'w')
-    file_dir = os.path.dirname(__file__)
-    muelu_xml_in = file_dir + '/../preconditioners/SIMPLE_gs_direct.xml.in'
-
-    directory = 'tmp'
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-    N = 8
-
-    current_dir = os.getcwd()
-
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, current_dir)
-
-    old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                   '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                   '$SCHUR_omega', '$SimpleSmoother_damping']
-    new_strings = ['3', '3', str(N), str(x[0]), str(x[1]), '0']
-
-    u.replace_strings(muelu_xml_in, current_dir +
-                      '/SIMPLE_gs_direct.xml', old_strings, new_strings)
-
-    evaluate_prec(msh, comm, file_dir, current_dir+'/SIMPLE_gs_direct.xml')
-
-    iter_indices, residuals = read_Belos(current_dir+'/belos_out.txt', 1)
-    os.chdir('..')
-    sys.stdout.close()
-    sys.stdout = orig_stdout
-    return iter_indices[-1]
-
-
-def fp(x):
-    epsi = 1e-5
-    jaco = np.zeros((2, 1))
-    jaco[0] = ((f(x+epsi*np.array([1, 0])) -
-                       f(x-epsi*np.array([1, 0]))) / (2*epsi))
-    jaco[1] = ((f(x+epsi*np.array([0, 1])) -
-                       f(x-epsi*np.array([0, 1]))) / (2*epsi))
-    return jaco
-
-
-def evaluate_prec(msh, comm, file_dir, muelu_xml, ensemble_size=1):
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/SIMPLE_gs_direct.xml'
-
-    N = ensemble_size
-    num_random_variables = 20
-    randomVariable = np.zeros((N, num_random_variables))
-    if ensemble_size is not 1:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-
-        p['Wavenumber cutoff'] = 8.
-        p['Wavenumber discretization points'] = nuw
-        p['Number Z of previously drawn samples'] = 0
-        p['Number Phi of previously drawn samples'] = 0
-        p['Is exp'] = False
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def main():
-    from scipy import optimize
-    import numpy as np
-
-    x0 = np.array([1.7, 0.5])
-    bnds = ((1., 2.), (0., 1.))
-    xopt = optimize.minimize(f, x0, jac=fp, bounds=bnds, options={
-                             'maxiter': 200, 'disp': 1})
-
-    print(xopt)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_vd_Direct_200.py b/katoptron/CMAME/old_tests/plate_vd_Direct_200.py
deleted file mode 100644
index 5af82db3..00000000
--- a/katoptron/CMAME/old_tests/plate_vd_Direct_200.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-    p['Dispersion level'] = 0.1
-    p['gamma'] = 0.
-    p['inner clamped'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 8
-    num_random_variables = 200
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_vd_Direct_3.py b/katoptron/CMAME/old_tests/plate_vd_Direct_3.py
deleted file mode 100644
index 27ca8e1e..00000000
--- a/katoptron/CMAME/old_tests/plate_vd_Direct_3.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-    p['Dispersion level'] = 0.1
-    p['gamma'] = 0.
-    p['inner clamped'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 8
-    num_random_variables = 3
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_vd_GS_200.py b/katoptron/CMAME/old_tests/plate_vd_GS_200.py
deleted file mode 100644
index eee345c8..00000000
--- a/katoptron/CMAME/old_tests/plate_vd_GS_200.py
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['Dispersion level'] = 0.1
-    p['gamma'] = 0.
-    p['inner clamped'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 8
-    num_random_variables = 200
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    pert = 1e-2
-    randomVariable = np.zeros((N, num_random_variables))
-    randomVariable[0, :] = np.random.normal(0, 1, num_random_variables)
-    for i in range(1, N):
-        randomVariable[i, :] = randomVariable[0, :] + pert * \
-            np.random.uniform(-1, 1, num_random_variables)
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_vd_GS_200_with_gamma.py b/katoptron/CMAME/old_tests/plate_vd_GS_200_with_gamma.py
deleted file mode 100644
index d38b5905..00000000
--- a/katoptron/CMAME/old_tests/plate_vd_GS_200_with_gamma.py
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['Dispersion level'] = 0.1
-    p['inner clamped'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 8
-    num_random_variables = 200
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    pert = 1e-2
-    randomVariable = np.zeros((N, num_random_variables))
-    randomVariable[0, :] = np.random.normal(0, 1, num_random_variables)
-    for i in range(1, N):
-        randomVariable[i, :] = randomVariable[0, :] + pert * \
-            np.random.uniform(-1, 1, num_random_variables)
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_vd_GS_3.py b/katoptron/CMAME/old_tests/plate_vd_GS_3.py
deleted file mode 100644
index a52659a9..00000000
--- a/katoptron/CMAME/old_tests/plate_vd_GS_3.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['Dispersion level'] = 0.1
-    #p['gamma'] = '{4663653.515942637,5000307.969231523,5125491.581727843,4650754.5340228975,4802461.555172057,4330669.2615991,4289095.323914186,4521634.142120181}'
-    p['MueLu xml template file name'] = '/../preconditioners/SIMPLE_gs_direct.xml.in'
-    p['MueLu xml params name'] = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                                  '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                                  '$SCHUR_omega', '$SimpleSmoother_damping']
-    p['MueLu xml params'] = ['3', '3', '100', '1.75', '0.05', '1.']
-
-    #p['inner clamped'] = True
-
-    #p['Write txt files'] = True
-    #p['Write matrix and vectors'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 8
-    num_random_variables = 3
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_vd_GS_3_with_gamma.py b/katoptron/CMAME/old_tests/plate_vd_GS_3_with_gamma.py
deleted file mode 100644
index ed1538f6..00000000
--- a/katoptron/CMAME/old_tests/plate_vd_GS_3_with_gamma.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.defaut_params
-    p['Dispersion level'] = 0.1
-    p['inner clamped'] = True
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-
-def evaluate_all_ensembles(ensemble_size, randomVariable, msh, comm, file_dir):
-
-    directory = str(ensemble_size)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = randomVariable.shape[0]
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        directory = str(ensemble_index)
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-
-        evaluate_one_ensemble(ensemble_size, randomVariable[ensemble_index:(
-            ensemble_index+ensemble_size), :], msh, comm, file_dir)
-
-        os.chdir('..')
-
-    os.chdir('..')
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    np.random.seed(42)
-    N = 8
-    num_random_variables = 3
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    randomVariable = np.resize(randomVariable, (N, num_random_variables))
-
-    np.savetxt('randomVariable.txt', randomVariable)
-
-    evaluate_all_ensembles(1, randomVariable, msh, comm, file_dir)
-    evaluate_all_ensembles(8, randomVariable, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/old_tests/plate_vd_conf.py b/katoptron/CMAME/old_tests/plate_vd_conf.py
deleted file mode 100644
index 90d65d7a..00000000
--- a/katoptron/CMAME/old_tests/plate_vd_conf.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def main():
-
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.msh', 'plate_1_tmp', 'plate_2.msh',
-                        'plate_2_tmp', 'plate_fused', file_dir, work_dir)
-
-    directory = str(1)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    np.random.seed(42)
-    N = 1
-    num_random_variables = 20
-    #randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    #randomVariable = np.resize(randomVariable,(N,num_random_variables))
-    randomVariable = np.zeros((N, num_random_variables))
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-    p['Write txt files'] = True
-    p['Write matrix and vectors'] = True
-    p['gamma'] = 100.
-
-    ensemble_size = 1
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-    os.chdir('..')
-
-    directory = str(2)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    np.random.seed(42)
-    N = 1
-    num_random_variables = 20
-    #randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    #randomVariable = np.resize(randomVariable,(N,num_random_variables))
-    randomVariable = np.zeros((N, num_random_variables))
-
-    p = model.defaut_params
-    p['MueLu xml from current_dir'] = False
-    p['MueLu xml use template'] = False
-    p['MueLu xml file name'] = '/../preconditioners/SIMPLE_direct.xml'
-    p['Write txt files'] = True
-    p['Write matrix and vectors'] = True
-    p['gamma'] = 4368992.
-
-    ensemble_size = 1
-
-    pm = model.plate_model(ensemble_size, randomVariable,
-                           msh, comm, file_dir, work_dir, p)
-    pm.run(args.k)
-
-    os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/plate_SPD/blake.slurm.sh b/katoptron/CMAME/plate_SPD/blake.slurm.sh
deleted file mode 100644
index 122ec86a..00000000
--- a/katoptron/CMAME/plate_SPD/blake.slurm.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=plate
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/plate.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_SPD/plate.py
diff --git a/katoptron/CMAME/plate_SPD/plate.geo b/katoptron/CMAME/plate_SPD/plate.geo
deleted file mode 100644
index 4e9dedd0..00000000
--- a/katoptron/CMAME/plate_SPD/plate.geo
+++ /dev/null
@@ -1,43 +0,0 @@
-SetFactory("OpenCASCADE");
-If(GMSH_MAJOR_VERSION!=3 || GMSH_MINOR_VERSION!=0 || GMSH_PATCH_VERSION!=6)
-  Printf("gmsh %g.%g.%g is not supported by this .geo",GMSH_MAJOR_VERSION,GMSH_MINOR_VERSION,GMSH_PATCH_VERSION);
-Else
-  LX = 10;
-  LY = 10;
-  LZ = 1;
-
-  nX = 15;
-  nY = 15;
-  nZ = 1;
-
-  Point(1)  = { 0.,  0., 0.,     lc};
-  Point(2)  = { 0.,  LY, 0.,     lc};
-  Point(3)  = { LX,  LY, 0.,     lc};
-  Point(4)  = { LX,  0., 0.,     lc};
-
-  Line(1) = {1, 2};
-  Line(2) = {2, 3};
-  Line(3) = {3, 4};
-  Line(4) = {4, 1};
-
-  Transfinite Line {1, 3} = nY Using Progression 1;
-  Transfinite Line {2, 4} = nX Using Progression 1;
-
-  Line Loop(5) = {1, 2, 3, 4};
-  Plane Surface(5) = {5};
-  Transfinite Surface {5};
-  Recombine Surface {5};
-
-  Extrude {0, 0, LZ}
-  {
-    Surface{5}; Layers{nZ}; Recombine;
-  }
-
-  Physical Volume("body") = {1};
-
-  Physical Surface("load 1") = {7};
-  Physical Surface("load 2") = {9};
-  Physical Point("clamped xyz") = {1};
-  Physical Point("clamped xy") = {5};
-  Physical Point("clamped y") = {4};
-EndIf
diff --git a/katoptron/CMAME/plate_SPD/plate.py b/katoptron/CMAME/plate_SPD/plate.py
deleted file mode 100644
index 24508e88..00000000
--- a/katoptron/CMAME/plate_SPD/plate.py
+++ /dev/null
@@ -1,288 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""@package docstring
-This test runs the four different cases as defined in table 2 of the paper
-with a SIMPLE-GS-GS preconditioner.
-"""
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def get_parameters(case_id, first_sample_id):
-    """
-    This function returns the python dictionary that includes 
-    the parameters for a given test case
-    """
-    p = model.defaut_params
-
-    if case_id == 1:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.1
-    elif case_id == 2:
-        nuw = 128
-        p['Correlation length'] = 20.
-        p['Dispersion level'] = 0.3
-    elif case_id == 3:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.1
-    elif case_id == 4:
-        nuw = 128
-        p['Correlation length'] = 5.
-        p['Dispersion level'] = 0.3
-    elif case_id == 5:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.1
-    elif case_id == 6:
-        nuw = 128
-        p['Correlation length'] = 2.
-        p['Dispersion level'] = 0.3
-
-    p['Wavenumber cutoff'] = 8.
-    p['Wavenumber discretization points'] = nuw
-    p['Number Z of previously drawn samples'] = first_sample_id * nuw**2
-    p['Number Phi of previously drawn samples'] = first_sample_id * nuw**2
-    p['Write matrix and vectors'] = False
-    p['Write txt files'] = False
-
-    p['Is exp'] = False
-    return p
-
-
-def evaluate_one_ensemble(ensemble_size, case_id, first_sample_id, msh, comm,
-                          file_dir, max_iter):
-    """
-    This function evaluates one ensemble for a given test case
-    """
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = get_parameters(case_id, first_sample_id)
-
-    pbl = m.Problem(msh, comm)
-
-    # Units are in mm
-    E = 70000 * np.ones(ensemble_size)  # 70e9 Pa = 70000 MPa
-    nu = 0.35 * np.ones(ensemble_size)
-    k = 0.
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamped xyz", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    m.Dirichlet(pbl, "clamped xy", "Clamped", 1, 0., 1, 0., 0, 0., 0, 0.,
-                ensemble_size)
-    m.Dirichlet(pbl, "clamped y", "Clamped", 0, 0., 1, 0., 0, 0., 0, 0.,
-                ensemble_size)
-
-    f = 700 * np.ones(ensemble_size)  # 700e6 Pa = 700 MPa
-    zero = np.zeros(ensemble_size)
-    one = np.ones(ensemble_size)
-    m.Neumann(pbl, 'load 1', 'load', 0, zero, 1, f, 0, zero, 0, one,
-              ensemble_size)
-    m.Neumann(pbl, 'load 2', 'load', 0, zero, 1, -f, 0, zero, 0, one,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 1e-8
-    solverList['Maximum Iterations'] = max_iter
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    prec = 2
-
-    if prec == 1:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 1
-        mueluParams['coarse: type'] = "CHEBYSHEV"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['chebyshev: degree'] = 20
-
-        mueluParams['verbosity'] = "high"
-
-        mueluParams['coarse: params'] = mueluParamsSub2
-    elif prec == 2:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 1
-        mueluParams['coarse: type'] = "RELAXATION"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-        mueluParamsSub2['relaxation: sweeps'] = 3
-        mueluParamsSub2['relaxation: damping factor'] = 1.75
-
-        mueluParams['verbosity'] = "high"
-
-        mueluParams['coarse: params'] = mueluParamsSub2
-    elif prec == 3:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 2
-        mueluParams['smoother: type'] = "RELAXATION"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['relaxation: type'] = "MT Gauss-Seidel"
-        mueluParamsSub2['relaxation: sweeps'] = 10
-        mueluParamsSub2['relaxation: damping factor'] = 1.75
-
-        mueluParams['verbosity'] = "high"
-
-        mueluParams['smoother: params'] = mueluParamsSub2
-
-        mueluParams['coarse: type'] = "Klu"
-        mueluParams['coarse: max size'] = 18
-
-    solverList['convert MueLu xml file'] = True
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Print Teuchos timers'] = True
-
-    solverList['gamma'] = p['gamma']
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = 'BlockGmres'
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Write matrix and vectors'] = p['Write matrix and vectors']
-    solverList['Write txt files'] = p['Write txt files']
-
-    if p["Is exp"]:
-        num_random_variables = randomVariable.shape[1]
-    else:
-        num_random_variables = 0
-
-    for i in range(0, num_random_variables):
-        rand = randomVariable[:, i]
-        pbl.add(m.RandomVariable(rand))
-
-    randomParams = Teuchos.ParameterList()
-
-    randomParams['Is random'] = True
-    randomParams['Is exp'] = p['Is exp']
-    if p["Is exp"]:
-        randomParams['Begin X'] = 0.
-        randomParams['Begin Y'] = 0.
-        randomParams['Begin Z'] = 0.
-        randomParams['End X'] = 10.
-        randomParams['End Y'] = 10.
-        randomParams['End Z'] = 1.
-        randomParams['Number random variables'] = num_random_variables
-        randomParams['Correlation length X'] = p['Correlation length X']
-        randomParams['Correlation length Y'] = p['Correlation length Y']
-        randomParams['Correlation length Z'] = p['Correlation length Z']
-        randomParams['Number of KL Terms X'] = p['Number of KL Terms X']
-        randomParams['Number of KL Terms Y'] = p['Number of KL Terms Y']
-        randomParams['Number of KL Terms Z'] = p['Number of KL Terms Z']
-        randomParams['Maximum Nonlinear Solver Iterations'] = 5000
-        randomParams['Bound Perturbation Size'] = 1E-10
-    else:
-        randomParams['Correlation length'] = p['Correlation length']
-        randomParams['Wavenumber cutoff'] = p['Wavenumber cutoff']
-        randomParams['Wavenumber discretization points'] = p[
-            'Wavenumber discretization points']
-        randomParams['Number Z of previously drawn samples'] = p[
-            'Number Z of previously drawn samples']
-        randomParams['Number Phi of previously drawn samples'] = p[
-            'Number Phi of previously drawn samples']
-
-    randomParams['Mean'] = (E[0] / (2. * (1. + nu[0])))
-    randomParams['Dispersion level'] = p['Dispersion level']
-
-    solverList['randomParams'] = randomParams
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 3, ensemble_size)
-    slv.start()
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-
-def evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir):
-    """
-    This function loop over the test cases, the ensemble sizes,
-    and the ensembles
-    """
-    for case_id in case_ids:
-        directory_case_id = 'case_' + str(case_id)
-        if not os.path.exists(directory_case_id):
-            os.makedirs(directory_case_id)
-        os.chdir(directory_case_id)
-        for ensemble_size in ensemble_sizes:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-
-            N_ensemble = N // ensemble_size
-            for ensemble_index in range(0, N_ensemble):
-                directory = str(ensemble_index)
-                if not os.path.exists(directory):
-                    os.makedirs(directory)
-                os.chdir(directory)
-
-                first_sample_id = ensemble_index * ensemble_size
-
-                n_iter = np.arange(1, 105)
-                n_it = len(n_iter)
-                #n_it = 6
-                # np.linspace(10,200,n_it,dtype=int)
-
-                for i_it in range(0, n_it):
-                    max_iter = n_iter[i_it]
-                    directory = str(max_iter)
-                    if not os.path.exists(directory):
-                        os.makedirs(directory)
-                    os.chdir(directory)
-                    evaluate_one_ensemble(ensemble_size, case_id, first_sample_id,
-                                          msh, comm, file_dir, max_iter)
-                    os.chdir('..')
-
-                os.chdir('..')
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = gmsh.MeshLoader('plate.geo', file_dir).execute()
-
-    N = 8
-    ensemble_sizes = [1, 8]
-    case_ids = [1]
-
-    evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/plate_SPD/plate_convergence.py b/katoptron/CMAME/plate_SPD/plate_convergence.py
deleted file mode 100644
index d05f89e9..00000000
--- a/katoptron/CMAME/plate_SPD/plate_convergence.py
+++ /dev/null
@@ -1,345 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-"""@package docstring
-This file is used to loop over cases and samples and plot their mechanical properties and solution fields.
-"""
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.cutter as vtkC
-
-from katoptron.CMAME.model import Compute_QoIs
-
-
-def plot_2D_mesh(pts, quad, ax):
-    """
-    This function plots a 2D quad mesh on a given matplotlib axis
-    """
-    import matplotlib.pyplot as plt
-    for i in range(0, quad.shape[0]):
-        x = np.zeros((quad.shape[1] + 1, ))
-        y = np.zeros((quad.shape[1] + 1, ))
-        for j in range(0, quad.shape[1]):
-            x[j] = pts[quad[i, j], 0]
-            y[j] = pts[quad[i, j], 1]
-        x[-1] = pts[quad[i, 0], 0]
-        y[-1] = pts[quad[i, 0], 1]
-        ax.plot(x, y, '--k', linewidth=0.5)
-
-
-def cut_of_one_case(case_id,
-                    ensemble_size,
-                    n_samples,
-                    iters,
-                    file_MC_base_dir):
-    """
-    This function loops over the samples of a given test case and plot them
-    """
-    import matplotlib.pyplot as plt
-
-    base_directory = 'case_' + str(case_id)
-    if not os.path.exists(base_directory):
-        os.makedirs(base_directory)
-        os.makedirs(base_directory + '/sample')
-        os.makedirs(base_directory + '/sample_ER_dif')
-    base_directory_sample = base_directory + '/sample'
-    base_directory_sample_ER_dif = base_directory + '/sample_ER_dif'
-    for i in range(0, n_samples):
-
-        input_MC_file_dir = file_MC_base_dir + \
-            str(case_id) + '/1/' + str(i) + '/104/'
-        mshName_sample_no_EP = input_MC_file_dir + 'plate_ast1_s0_0'
-        pts, tri, vals = cut_plate(mshName_sample_no_EP, False)
-        pts_2, quad = extract_quad_msh(mshName_sample_no_EP)
-
-        x = pts[:, 0]
-        y = pts[:, 1]
-
-        plot_one_sampel(x, y, tri, vals, pts_2, quad, False)
-        plt.savefig(base_directory_sample + '/' + str(i) + '.png', dpi=400)
-
-        for i_it in range(0, len(iters)):
-
-            i_ensemble = (i // ensemble_size)
-            i_sample = np.mod(i, ensemble_size)
-
-            #input_MC_file_dir = file_MC_base_dir + str(case_id) + '/1/' + str(i) + '/' + str(iters[i_it]) + '/'
-
-            input_MC_file_dir = file_MC_base_dir + str(case_id) + '/' + str(
-                ensemble_size) + '/' + str(i_ensemble) + '/' + str(iters[i_it]) + '/'
-            mshName_sample_EP = input_MC_file_dir + 'plate_ast1_s' + str(
-                i_sample) + '_0'
-
-            pts_EP, tri_EP, vals_EP = cut_plate(mshName_sample_EP,  False)
-
-            plot_one_sampel(x, y, tri, vals_EP, pts_2, quad, False)
-            plt.savefig(base_directory_sample + '/' + str(i) + '_' +
-                        str(iters[i_it]) + '_e_' + str(ensemble_size) + '.png', dpi=400)
-
-            plot_diff_abs(x, y, tri, vals, vals_EP, pts_2, quad, False)
-            plt.savefig(base_directory_sample_ER_dif + '/' + str(i) + '_' +
-                        str(iters[i_it]) + '_e_' + str(ensemble_size) + '.png', dpi=400)
-
-            input_MC_file_dir = file_MC_base_dir + \
-                str(case_id) + '/1/' + str(i) + '/' + str(iters[i_it]) + '/'
-            mshName_sample_EP = input_MC_file_dir + 'plate_ast1_s0_0'
-
-            pts_EP, tri_EP, vals_EP = cut_plate(mshName_sample_EP,  False)
-
-            plot_one_sampel(x, y, tri, vals_EP, pts_2, quad, False)
-            plt.savefig(base_directory_sample + '/' + str(i) +
-                        '_' + str(iters[i_it]) + '_e_1.png', dpi=400)
-
-            plot_diff_abs(x, y, tri, vals, vals_EP, pts_2, quad, False)
-            plt.savefig(base_directory_sample_ER_dif + '/' +
-                        str(i) + '_' + str(iters[i_it]) + '_e_1.png', dpi=400)
-
-            plt.close('all')
-
-
-def extract_quad_msh(mshName):
-    """
-    This function extracts the 2D quad mesh out of a hexahedron mesh
-    """
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    rdata = reader.reader.GetOutput()
-
-    _pts = rdata.GetPoints()
-    pts = np.zeros((_pts.GetNumberOfPoints(), 2))
-    pts_indices = np.zeros((_pts.GetNumberOfPoints(), ), dtype=int)
-    for i in range(0, pts.shape[0]):
-        if _pts.GetPoint(i)[2] <= 0.01:
-            for j in range(0, 2):
-                pts[i][j] = _pts.GetPoint(i)[j]
-            pts_indices[i] = 1
-    n_elems = rdata.GetNumberOfCells()
-    quad = []
-    for i in range(0, n_elems):
-        elem = rdata.GetCell(i)
-        for j in range(0, 6):
-            face = elem.GetFace(j)
-            points_id = np.zeros((4, ), dtype=int)
-            good_face = True
-            for k in range(0, 4):
-                points_id[k] = face.GetPointId(k)
-                if pts_indices[points_id[k]] != 1:
-                    good_face = False
-                    break
-            if good_face:
-                if len(quad) == 0:
-                    quad = points_id.reshape((1, 4))
-                else:
-                    quad = np.append(quad, points_id.reshape((1, 4)), axis=0)
-    return pts, quad
-
-
-def cut_plate(mshName, at_point=False):
-    """
-    This function cuts the vtk files in the middle and extracts both point
-    and element data.
-    """
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    cutter = vtkC.Cutter(reader.reader.GetOutputPort())
-    c_output = cutter.cut(1, [0., 0., 0.5], [0., 0., 1.], tag_name='volume_id')
-    if at_point:
-        pts, tri, vals = cutter.extract(c_output,
-                                        3,
-                                        ['u', 'x', 'y', 'z', 'G', 'von Mises'],
-                                        atPoint=True)
-    else:
-        pts, tri, vals = cutter.extract(c_output,
-                                        3, ['u', 'x', 'y', 'z'],
-                                        atPoint=True)
-        pts_2, tri_2, vals_2 = cutter.extract(c_output,
-                                              3, ['G', 'von Mises'],
-                                              atPoint=False)
-        vals.update(vals_2)
-
-    return pts, tri, vals
-
-
-def plot_2D_cut_values_at_node(x, y, tri, value, n_levels=16):
-    """
-    This function plots data at node.
-    """
-    import matplotlib.pyplot as plt
-    value = value.reshape((len(x), ))
-    if max(value) - min(value) > 0:
-        levels = np.linspace(min(value), max(value), n_levels)
-        plt.set_cmap('coolwarm')
-        plt.tricontour(x,
-                       y,
-                       tri,
-                       value,
-                       levels,
-                       linestyles='-',
-                       colors='black',
-                       linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, value, levels)
-    else:
-        axtri = plt.tricontourf(x, y, tri, value)
-    plt.gca().set_aspect('equal')
-    return axtri
-
-
-def plot_2D_cut_values_at_elem(x,
-                               y,
-                               tri_1,
-                               value,
-                               v_min=0,
-                               v_max=0,
-                               n_levels=16,
-                               shading=False):
-    """
-    This function plots data at element.
-    """
-    import matplotlib.pyplot as plt
-
-    value = value.reshape((tri_1.shape[0], ))
-    if v_min == v_max:
-        v_min = min(value)
-        v_max = max(value)
-
-    levels = np.linspace(v_min, v_max, n_levels)
-    plt.set_cmap('coolwarm')
-    if shading:
-        axtri = plt.tripcolor(x, y, tri_1, value, shading='gouraud')
-    else:
-        axtri = plt.tripcolor(x, y, tri_1, value, levels)
-    plt.gca().set_aspect('equal')
-    return axtri
-
-
-def plot_one_sampel(x, y, tri, vals_s, pts_2, quad, at_point=False):
-    """
-    This function plots data of a given sample.
-    """
-    import matplotlib.pyplot as plt
-
-    fig = plt.figure(figsize=(15, 4))
-
-    ax = plt.subplot(131)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x, y, tri, vals_s['G'])
-        plot_2D_mesh(pts_2, quad, ax)
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['G'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.title('G')
-
-    plt.subplot(132)
-    tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['y'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal', format='%.0e')
-    plt.title('y')
-
-    ax = plt.subplot(133)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x, y, tri, vals_s['von Mises'])
-        plot_2D_mesh(pts_2, quad, ax)
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['von Mises'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.title('von Mises')
-
-
-def plot_diff_abs(x, y, tri, vals, vals_s, pts_2, quad, at_point=False):
-    """
-    This function plots the difference between data of a given sample and the mean sample.
-    """
-    import matplotlib.pyplot as plt
-
-    fig = plt.figure(figsize=(15, 4))
-
-    plt.subplot(131)
-    tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['x'] - vals['x'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal', format='%.0e')
-    plt.title('delta x')
-
-    plt.subplot(132)
-    tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['y'] - vals['y'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal', format='%.0e')
-    plt.title('delta y')
-
-    plt.subplot(133)
-    tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['z'] - vals['z'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal', format='%.0e')
-    plt.title('delta z')
-
-
-def plot_diff_rel(x,
-                  y,
-                  tri,
-                  vals,
-                  vals_s,
-                  pts_2,
-                  quad,
-                  v_min=-10,
-                  v_max=10,
-                  at_point=False):
-    """
-    This function plots the relative difference between data of a given sample and the mean sample.
-    """
-    import matplotlib.pyplot as plt
-
-    fig = plt.figure(figsize=(15, 4))
-
-    diff_G = vals_s['G'] - vals['G']
-    diff_G_rel = (100 * diff_G / vals['G'])
-
-    plt.subplot(121)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x,
-                                         y,
-                                         tri,
-                                         diff_G_rel,
-                                         v_min=v_min,
-                                         v_max=v_max)
-        plot_2D_mesh(pts_2, quad, plt.gca())
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, diff_G_rel)
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.clim(v_min, v_max)
-    plt.title('delta G relative')
-
-    diff_vM = vals_s['von Mises'] - vals['von Mises']
-    diff_vM_rel = (100 * diff_vM / vals['von Mises'])
-
-    plt.subplot(122)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x,
-                                         y,
-                                         tri,
-                                         diff_vM_rel,
-                                         v_min=v_min,
-                                         v_max=v_max)
-        plot_2D_mesh(pts_2, quad, plt.gca())
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, diff_vM_rel)
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.clim(v_min, v_max)
-    plt.title('delta von Mises relative')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/fused/katoptron_CMAME_tests_plate_SPD_plate_MG/case_'
-
-    n_it = 6
-    iters = np.arange(1, 60)  # np.linspace(10,200,n_it,dtype=int)
-
-    n_samples = 8
-    cut_of_one_case(1, 8, n_samples, iters, file_MC_base_dir)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/2_cube.py b/katoptron/CMAME/post_process/2_cube.py
deleted file mode 100644
index 2fc5d440..00000000
--- a/katoptron/CMAME/post_process/2_cube.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-import os
-import fwk
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    input_file_dir = '/Users/kimliegeois/Desktop/katoptron/katoptron_tests_2_cubes_patch/'
-
-    filename_Q = input_file_dir + 'A_mm_after_bc.txt'
-    filename_GT = input_file_dir + 'B_mm.txt'
-
-    Q = read_mm(filename_Q)
-    Q = get_symmetrical_part(Q)
-    GT = read_mm(filename_GT)
-
-    norm_Q = sparse_matrix_2_norm(Q)
-    norm_GT = sparse_matrix_2_norm(GT)
-
-    print(norm_Q)
-    print(norm_GT)
-    print((norm_Q / norm_GT))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/grouping.py b/katoptron/CMAME/post_process/grouping.py
deleted file mode 100644
index bb53ff5b..00000000
--- a/katoptron/CMAME/post_process/grouping.py
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-# require a git clone https://github.com/kliegeois/Same-Size-K-Means.git
-
-
-
-
-from clustering.equal_groups import EqualGroupsKMeans
-import numpy as np
-import matplotlib.pyplot as plt
-from sklearn.decomposition import PCA
-from mpl_toolkits.mplot3d import Axes3D
-
-
-def compute_the_groups(N, ensemble_size, num_random_variables):
-
-    np.random.seed(42)
-
-    n_clusters = int(N // ensemble_size)
-
-    randomVariable = np.random.normal(0, 1, num_random_variables*N)
-    X = np.resize(randomVariable, (N, num_random_variables))
-
-    clf = EqualGroupsKMeans(n_clusters=n_clusters)
-
-    clf.fit(X)
-
-    Z = clf.predict(X)
-    Z = Z.astype(int)
-
-    for i in range(0, n_clusters):
-        l_s = len(np.argwhere(Z == i))
-        if l_s != ensemble_size:
-            print('Ensemble ' + str(i) + ' has ' + str(l_s) +
-                  ' samples instead of ' + str(ensemble_size))
-
-    np.savetxt('Groupe_id_s_'+str(ensemble_size) +
-               '_'+str(N)+'.txt', Z, fmt='%i')
-
-    indices = np.argsort(Z)
-
-    np.savetxt('Reordering_s_'+str(ensemble_size) +
-               '_'+str(N)+'.txt', indices, fmt='%i')
-
-    '''
-    reduced_data = PCA(n_components=3).fit_transform(X)
-
-    fig = plt.figure()
-    ax = fig.add_subplot(111, projection='3d')
-
-    x_min, x_max = reduced_data[:, 0].min() - 1, reduced_data[:, 0].max() + 1
-    y_min, y_max = reduced_data[:, 1].min() - 1, reduced_data[:, 1].max() + 1
-    z_min, z_max = reduced_data[:, 2].min() - 1, reduced_data[:, 2].max() + 1
-    ax.scatter(reduced_data[:, 0], reduced_data[:, 1],reduced_data[:, 2], s = 20, c=Z)
-    ax.set_xlim(x_min, x_max)
-    ax.set_ylim(y_min, y_max)
-    ax.set_zlim(z_min, z_max)
-    plt.show()
-    '''
-
-
-def main():
-
-    N = 960
-    num_random_variables = 20
-
-    compute_the_groups(N, 8, num_random_variables)
-    compute_the_groups(N, 16, num_random_variables)
-    compute_the_groups(N, 32, num_random_variables)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/juelich_speedup.py b/katoptron/CMAME/post_process/juelich_speedup.py
deleted file mode 100644
index f09084b7..00000000
--- a/katoptron/CMAME/post_process/juelich_speedup.py
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.speedup import *
-
-
-def speedup_of_one_case(n_samples, ensemble_sizes, quantiles,
-                        querylines, use_waves_timers, use_teuchos_timers,
-                        per_iteration):
-    import matplotlib.pyplot as plt
-
-    file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_Juelich_tests_M1_assembly_fused_MC_ER_2/'
-    # try:
-    speedup = compute_speedup(n_samples, ensemble_sizes, file_MC_base_dir,
-                              querylines, per_iteration, quantiles,
-                              use_waves_timers, use_teuchos_timers, True)
-
-    plot_speedup(speedup, ensemble_sizes, np.arange(0, len(querylines)),
-                 'case_', querylines, per_iteration)
-    plt.savefig('case_.png', dpi=400)
-
-    save_speedup(speedup, ensemble_sizes, querylines, 'case_')
-
-    R = compute_R(n_samples, ensemble_sizes, file_MC_base_dir, quantiles,
-                  True)
-    save_R(R, 'case_')
-    # except:
-    #    print '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_case_' + case_id + '  has not all the files'
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 64
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SimpleSmoother: Apply: total (total)',
-        'MueLu: SimpleSmoother: Correction step: Compute rhs (total)',
-        'MueLu: SimpleSmoother: Correction step: Solve block 11 (total)',
-        'MueLu: SimpleSmoother: Prediction step: Compute rhs (total)',
-        'MueLu: SimpleSmoother: Prediction step: Solve block 00 (total)'
-    ]
-    use_waves_timers = np.array([0, 7, 8], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True
-    ]
-
-    speedup_of_one_case(n_samples, ensemble_sizes, quantiles,
-                        querylines, use_waves_timers, use_teuchos_timers,
-                        per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_G.py b/katoptron/CMAME/post_process/plate_G.py
deleted file mode 100644
index f250efcd..00000000
--- a/katoptron/CMAME/post_process/plate_G.py
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-import os
-import fwk
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.cutter as vtkC
-
-
-def Kirsch_equations(x, y, center_x, center_y, a, sigma_inf):
-
-    centered_x = x-center_x
-    centered_y = y-center_y
-
-    r = np.abs(centered_x+centered_y*1.0j)
-    theta = np.angle(centered_x+centered_y*1.0j) - (np.pi / 2)
-
-    half_sigma_inf = ((sigma_inf / 2))
-
-    ar = (a / r)
-    ar_p_2 = np.power(ar, 2)
-    ar_p_4 = np.power(ar, 4)
-
-    cos2theta = np.cos(2*theta)
-    sin2theta = np.sin(2*theta)
-
-    sigma_rr = half_sigma_inf*(1-ar_p_2)+half_sigma_inf * \
-        (1-4*ar_p_2+3*ar_p_4)*cos2theta
-    sigma_thetatheta = half_sigma_inf * \
-        (1+ar_p_2)-half_sigma_inf*(1+3*ar_p_4)*cos2theta
-    tau_rtheta = -half_sigma_inf*(1+2*ar_p_2-3*ar_p_4)*sin2theta
-
-    VM = np.sqrt(np.square(sigma_rr)+np.square(sigma_thetatheta) -
-                 sigma_rr*sigma_thetatheta+3*np.square(tau_rtheta))
-
-    return VM
-
-
-def cut_plate(mshName):
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    cutter = vtkC.Cutter(reader.reader.GetOutputPort())
-    c_output = cutter.cut(1, [0., 0., 0.5], [0., 0., 1.], tag_name='volume_id')
-    pts, tri, vals = cutter.extract(
-        c_output, 3, ['u', 'x', 'y', 'z', 'G_point'], atPoint=True)
-    pts_2, tri_2, vals_2 = cutter.extract(
-        c_output, 3, ['G', 'von Mises'], atPoint=False)
-    vals.update(vals_2)
-
-    return pts, tri, vals
-
-
-def extract_quad_msh(mshName):
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    rdata = reader.reader.GetOutput()
-
-    _pts = rdata.GetPoints()
-    pts = np.zeros((_pts.GetNumberOfPoints(), 2))
-    pts_indices = np.zeros((_pts.GetNumberOfPoints(),), dtype=int)
-    for i in range(0, pts.shape[0]):
-        if _pts.GetPoint(i)[2] <= 0.01:
-            for j in range(0, 2):
-                pts[i][j] = _pts.GetPoint(i)[j]
-            pts_indices[i] = 1
-    n_elems = rdata.GetNumberOfCells()
-    quad = []
-    for i in range(0, n_elems):
-        elem = rdata.GetCell(i)
-        for j in range(0, 6):
-            face = elem.GetFace(j)
-            points_id = np.zeros((4,), dtype=int)
-            good_face = True
-            for k in range(0, 4):
-                points_id[k] = face.GetPointId(k)
-                if pts_indices[points_id[k]] != 1:
-                    good_face = False
-                    break
-            if good_face:
-                if len(quad) == 0:
-                    quad = points_id.reshape((1, 4))
-                else:
-                    quad = np.append(quad, points_id.reshape((1, 4)), axis=0)
-    return pts, quad
-
-
-def plot_2D_cut_values_at_node(x, y, tri, value, v_min, v_max, n_levels=16):
-    import matplotlib.pyplot as plt
-    value = value.reshape((len(x),))
-    levels = np.linspace(v_min, v_max, n_levels)
-    #print levels
-
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(x, y, tri, value, levels, linestyles='-',
-                   colors='black', linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, value, levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0,
-                        hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-
-def plot_2D_cut_values_at_elem(x, y, tri_1, value, v_min, v_max, n_levels=16, shading=False):
-    import matplotlib.pyplot as plt
-
-    value = value.reshape((tri_1.shape[0],))
-
-    levels = np.linspace(v_min, v_max, n_levels)
-    #print levels
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    if shading:
-        plt.tripcolor(x, y, tri_1, value, shading='gouraud')
-    else:
-        plt.tripcolor(x, y, tri_1, value, levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0,
-                        hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-
-def plot_2D_mesh(pts, quad):
-    import matplotlib.pyplot as plt
-    fig = plt.figure(figsize=(8, 8))
-    f = open('mesh_2.tex', 'w')
-    print('\begin{tikzpicture}', file=f)
-    for i in range(0, quad.shape[0]):
-        x = np.zeros((quad.shape[1]+1,))
-        y = np.zeros((quad.shape[1]+1,))
-        for j in range(0, quad.shape[1]):
-            x[j] = pts[quad[i, j], 0]
-            y[j] = pts[quad[i, j], 1]
-        x[-1] = pts[quad[i, 0], 0]
-        y[-1] = pts[quad[i, 0], 1]
-        string_1 = '\draw[thick] '
-        for j in range(0, quad.shape[1]+1):
-            string_1 = string_1 + '(' + str(x[j]) + ',' + str(y[j]) + ')'
-            if j == quad.shape[1]:
-                string_1 = string_1 + ';'
-            else:
-                string_1 = string_1 + '--'
-
-        print(string_1, file=f)
-        plt.plot(x, y, 'black')
-    plt.gca().set_aspect('equal')
-
-    print('\end{tikzpicture}', file=f)
-    f.closed
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    n_samples = 8
-    n_cases = 6
-
-    for i in range(0, n_cases):
-        min_G = 1e9
-        max_G = 0
-        for j in range(0, n_samples):
-            input_file_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_2/case_' + \
-                str(i+1)+'/8/0/'
-
-            mshName = input_file_dir+'plate_fused_ast1_s'+str(j)+'_0'
-
-            pts, tri, vals = cut_plate(mshName)
-
-            if max_G <= np.amax(vals['G_point']):
-                max_G = np.amax(vals['G_point'])
-            if min_G >= np.amin(vals['G_point']):
-                min_G = np.amin(vals['G_point'])
-
-        print('Case ' + str(i))
-        print(min_G)
-        print(max_G)
-
-        for j in range(0, n_samples):
-            input_file_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_2/case_' + \
-                str(i+1)+'/8/0/'
-
-            mshName = input_file_dir+'plate_fused_ast1_s'+str(j)+'_0'
-
-            pts, tri, vals = cut_plate(mshName)
-
-            x = pts[:, 0]
-            y = pts[:, 1]
-
-            plot_2D_cut_values_at_node(
-                x, y, tri, vals['G_point'], min_G, max_G)
-            plt.savefig("G_"+str(i)+"_"+str(j)+".pdf",
-                        transparent=True, bbox_inches='tight', pad_inches=-0.05)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_GS_direct.py b/katoptron/CMAME/post_process/plate_GS_direct.py
deleted file mode 100644
index bde36488..00000000
--- a/katoptron/CMAME/post_process/plate_GS_direct.py
+++ /dev/null
@@ -1,318 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-from katoptron.readers import *
-import os
-import fwk
-"""@package docstring
-This file is used to investigate the choice of prec parameters.
-"""
-
-
-def read_timer_all(n_cases, sub_cases, file_MC_base_dir):
-    querylines = ['Belos: Operation Op*x',
-                  'Belos: Operation Prec*x',
-                  'Belos: DGKS[2]: Orthogonalization',
-                  'Belos: DGKS[2]: Ortho (Inner Product)',
-                  'Belos: DGKS[2]: Ortho (Norm)',
-                  'Belos: DGKS[2]: Ortho (Update)',
-                  'Belos: PseudoBlockGmresSolMgr total solve time']
-    timer = np.zeros((n_cases, len(sub_cases), len(querylines)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            timer[i, j, :] = read_teuchos_timers(
-                input_MC_file_dir+'teuchos_timers.txt', querylines)
-    return timer
-
-
-def read_iter_all(n_cases, sub_cases, file_MC_base_dir):
-    iter = np.zeros((n_cases, len(sub_cases)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', 1)
-            iter[i][j] = iter_indices[-1]
-    return iter
-
-
-def read_timer_tensor(n_cases, sub_cases, file_MC_base_dir, sizes):
-    import numpy as np
-    timer = read_timer_all(n_cases, sub_cases, file_MC_base_dir)
-
-    n_0 = sizes[0]
-    n_1 = sizes[1]
-    n_2 = sizes[2]
-    n_3 = sizes[3]
-
-    timer_tensor = np.zeros(
-        (n_0, n_1, n_2, n_3, len(sub_cases), timer.shape[2]))
-
-    i = 0
-
-    for i_0 in range(0, n_0):
-        for i_1 in range(0, n_1):
-            for i_2 in range(0, n_2):
-                for i_3 in range(0, n_3):
-                    if i < timer.shape[0]:
-                        timer_tensor[i_0, i_1, i_2, i_3, :, :] = timer[i, :, :]
-                        i = i + 1
-                    else:
-                        return timer_tensor
-
-    return timer_tensor
-
-
-def read_iter_tensor(n_cases, sub_cases, file_MC_base_dir, sizes):
-    import numpy as np
-    iter = read_iter_all(n_cases, sub_cases, file_MC_base_dir)
-
-    n_0 = sizes[0]
-    n_1 = sizes[1]
-    n_2 = sizes[2]
-    n_3 = sizes[3]
-
-    iter_tensor = np.zeros((n_0, n_1, n_2, n_3, len(sub_cases)))
-
-    i = 0
-
-    for i_0 in range(0, n_0):
-        for i_1 in range(0, n_1):
-            for i_2 in range(0, n_2):
-                for i_3 in range(0, n_3):
-                    if i < iter.shape[0]:
-                        iter_tensor[i_0, i_1, i_2, i_3, :] = iter[i, :]
-                        i = i + 1
-                    else:
-                        return iter_tensor
-
-    return iter_tensor
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    test = 1
-    EP = True
-    if test == 1:
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/gaussian/katoptron_CMAME_tests_plate_mean_prec_GS_direct/'
-        #file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_mean_prec_GS_direct/'
-        sub_cases = ['mean_case', 'ensemble_reduction_8']
-
-        GS_sweeps_00_min = 16
-        GS_sweeps_00_max = 41
-        delta_GS_sweeps_00 = 2
-
-        N_GS_sweeps_00 = int(
-            np.ceil(
-                ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-        # Damping has to be between 0 and 2
-        GS_damping_00_min = 1.75
-        GS_damping_00_max = 1.9
-        N_GS_damping_00 = 8
-
-        # Omega has to be between 0 and 1
-        SS_omega_min = 0.001
-        SS_omega_max = 0.5
-        N_SS_omega = 12
-
-        SS_damping_min = 1.
-        SS_damping_max = 1.2
-        N_SS_damping = 1
-
-        n_cases = 1248
-    elif test == 2:
-        file_MC_base_dir = file_dir + \
-            '/../../../workspace/katoptron_CMAME_tests_plate_mean_prec_GS_direct_alphabeta_1/'
-        sub_cases = ['mean_case', 'ensemble_reduction_8']
-
-        GS_sweeps_00_min = 16
-        GS_sweeps_00_max = 41
-        delta_GS_sweeps_00 = 2
-
-        N_GS_sweeps_00 = int(
-            np.ceil(
-                ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-        # Damping has to be between 0 and 2
-        GS_damping_00_min = 0.001
-        GS_damping_00_max = 1.999
-        N_GS_damping_00 = 20
-
-        # Omega has to be between 0 and 1
-        SS_omega_min = 1.
-        SS_omega_max = 1.2
-        N_SS_omega = 1
-
-        SS_damping_min = 1.
-        SS_damping_max = 1.2
-        N_SS_damping = 1
-
-        n_cases = 260
-
-    elif test == 3:
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_mean_prec_GS_direct_lvl/'
-        sub_cases = ['mean_case']
-
-        GS_sweeps_00_min = 16
-        GS_sweeps_00_max = 17
-        delta_GS_sweeps_00 = 1
-
-        N_GS_sweeps_00 = int(
-            np.ceil(
-                ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-        # Damping has to be between 0 and 2
-        GS_damping_00_min = 0.001
-        GS_damping_00_max = 0.8
-        N_GS_damping_00 = 50
-
-        # Omega has to be between 0 and 1
-        SS_omega_min = 0.75
-        SS_omega_max = 1.1
-        N_SS_omega = 5
-
-        SS_damping_min = 1.
-        SS_damping_max = 1.
-        N_SS_damping = 1
-
-        n_cases = 181
-        EP = False
-
-    iter = read_iter_tensor(n_cases, sub_cases, file_MC_base_dir, [
-                            N_GS_sweeps_00, N_GS_damping_00, N_SS_omega, N_SS_damping])
-    timer = read_timer_tensor(n_cases, sub_cases, file_MC_base_dir, [
-                              N_GS_sweeps_00, N_GS_damping_00, N_SS_omega, N_SS_damping])
-
-    sweeps_00 = np.arange(
-        GS_sweeps_00_min, GS_sweeps_00_max, delta_GS_sweeps_00)
-    damping_00 = np.linspace(
-        GS_damping_00_min, GS_damping_00_max, N_GS_damping_00)
-    SS_omega = np.linspace(SS_omega_min, SS_omega_max, N_SS_omega)
-    SS_damping = np.linspace(SS_damping_min, SS_damping_max, N_SS_damping)
-
-    from mpl_toolkits.mplot3d import Axes3D
-    import matplotlib.pyplot as plt
-    from matplotlib import cm
-
-    opti = np.zeros((N_GS_sweeps_00, 3), dtype=int)
-    opti_2 = np.zeros((N_GS_sweeps_00, 3), dtype=int)
-    opti_iter = np.zeros((N_GS_sweeps_00, 1), dtype=int)
-    opti_iter_2 = np.zeros((N_GS_sweeps_00, 1), dtype=int)
-    opti_iter_2_one = np.zeros((N_GS_sweeps_00, 1), dtype=int)
-    R = np.zeros((N_GS_sweeps_00, 1))
-    opti_time = np.zeros((N_GS_sweeps_00, 7))
-    opti_time_2 = np.zeros((N_GS_sweeps_00, 7))
-    opti_time_per_iter = np.zeros((N_GS_sweeps_00, 7))
-
-    #opti_iter_8 = np.array([500,469,382,338,280,255,254,239,218,213,204,197],dtype=int)
-
-    for i in range(0, N_GS_sweeps_00):
-        tmp = iter[i, :, :, :, 0]
-        tmp[tmp == 0] = 1000
-        opti[i, :] = np.unravel_index(np.argmin(tmp, axis=None), tmp.shape)
-        print(str(sweeps_00[i]) + ' ' + str(damping_00[opti[i, 0]]
-                                            ) + ' ' + str(SS_omega[opti[i, 1]]))
-        opti_iter[i] = iter[i, opti[i, 0], opti[i, 1], 0, 0]
-        opti_time[i, :] = timer[i, opti[i, 0], opti[i, 1], 0, 0, :]
-        if EP:
-            tmp2 = iter[i, :, :, :, 1]
-            opti_2[i, :] = np.unravel_index(
-                np.argmin(tmp2, axis=None), tmp.shape)
-            print(str(sweeps_00[i]) + ' ' + str(damping_00[opti_2[i, 0]]
-                                                ) + ' ' + str(SS_omega[opti_2[i, 1]]))
-            opti_iter_2[i] = iter[i, opti_2[i, 0], opti_2[i, 1], 0, 1]
-            opti_iter_2_one[i] = iter[i, opti_2[i, 0], opti_2[i, 1], 0, 0]
-            opti_time_2[i, :] = timer[i, opti_2[i, 0], opti_2[i, 1], 0, 1, :]
-            if opti_iter_2[i] == 1000:
-                R[i] = 10.
-            else:
-                R[i] = opti_iter_2[i]*1. / opti_iter[i]
-            for j in range(0, 7):
-                opti_time_per_iter[i, j] = (
-                    opti_time[i, j] / opti_iter[i])
-            #R[i] = opti_iter_8[i]*1. / opti_iter[i]
-
-    tmp = np.zeros((N_GS_sweeps_00, 2))
-    tmp[:, 0] = sweeps_00[:]
-    tmp[:, 1] = np.reshape(opti_iter, (N_GS_sweeps_00,))
-    np.savetxt('opti_iter.txt', tmp)
-    if EP:
-        tmp[:, 1] = np.reshape(opti_iter_2, (N_GS_sweeps_00,))
-        np.savetxt('opti_iter_2.txt', tmp)
-        tmp[:, 1] = np.reshape(opti_iter_2_one, (N_GS_sweeps_00,))
-        np.savetxt('opti_iter_2_one.txt', tmp)
-
-    plt.subplot(511)
-    plt.plot(sweeps_00, opti_iter)
-    plt.grid()
-    plt.subplot(512)
-    plt.plot(sweeps_00, opti_iter)
-    if EP:
-        plt.plot(sweeps_00, opti_iter_2)
-        plt.plot(sweeps_00, opti_iter_2_one)
-    plt.grid()
-    plt.subplot(513)
-    if EP:
-        plt.plot(sweeps_00, R)
-    plt.grid()
-    plt.subplot(514)
-    plt.plot(sweeps_00, damping_00[opti[:, 0]])
-    if EP:
-        plt.plot(sweeps_00, damping_00[opti_2[:, 0]])
-    plt.grid()
-    plt.subplot(515)
-    plt.plot(sweeps_00, SS_omega[opti[:, 1]])
-    if EP:
-        plt.plot(sweeps_00, SS_omega[opti_2[:, 1]])
-    plt.grid()
-    print(np.argmin(opti_time[:, 6]))
-    print(opti)
-    plt.figure()
-    for i in range(0, N_GS_sweeps_00):
-        plt.subplot(2, N_GS_sweeps_00, 1+i)
-        plt.plot(damping_00, iter[i, :, opti[i, 1], 0, 0])
-        plt.scatter(damping_00[opti[i, 0]], opti_iter[i], c='red')
-        plt.subplot(2, N_GS_sweeps_00, 1+i+N_GS_sweeps_00)
-        plt.plot(SS_omega, iter[i, opti[i, 0], :, 0, 0])
-        plt.scatter(SS_omega[opti[i, 1]], opti_iter[i], c='red')
-    '''
-    plt.figure()
-    plt.plot(sweeps_00,damping_00[opti[:,0]])
-    
-    plt.figure()
-    plt.plot(sweeps_00,SS_omega[opti[:,1]])
-
-    plt.figure()
-    for i in range(0,8):
-        plt.plot(damping_00,iter[0,:,i,0,0])
-    
-    plt.figure()
-    for i in range(0,8):
-        plt.plot(SS_omega,iter[0,i,:,0,0])
-
-    plt.figure()
-    for i in range(0,6):
-        plt.plot(SS_omega,iter[i,5,:,0,0])
-
-    for i in range(0,N_GS_sweeps_00):
-        fig = plt.figure()
-        ax = fig.add_subplot(111, projection='3d')
-        X, Y = np.meshgrid(SS_omega,damping_00)
-        ax.plot_surface(X, Y, iter[i,:,:,0,0], cmap=cm.coolwarm,
-                           linewidth=0, alpha=0.8)
-        ax.set_zlim(0, 400)
-        ax.scatter(SS_omega[opti[i,1]],damping_00[opti[i,0]],opti_iter[i], c='red')
-    '''
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_GS_direct_fused.py b/katoptron/CMAME/post_process/plate_GS_direct_fused.py
deleted file mode 100644
index ea15b899..00000000
--- a/katoptron/CMAME/post_process/plate_GS_direct_fused.py
+++ /dev/null
@@ -1,278 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-from katoptron.readers import *
-import os
-import fwk
-"""@package docstring
-This file is used to investigate the choice of prec parameters.
-"""
-
-
-def read_timer_all(n_cases, sub_cases, file_MC_base_dir):
-    querylines = ['Belos: Operation Op*x',
-                  'Belos: Operation Prec*x',
-                  'Belos: DGKS[2]: Orthogonalization',
-                  'Belos: DGKS[2]: Ortho (Inner Product)',
-                  'Belos: DGKS[2]: Ortho (Norm)',
-                  'Belos: DGKS[2]: Ortho (Update)',
-                  'Belos: PseudoBlockGmresSolMgr total solve time']
-    timer = np.zeros((n_cases, len(sub_cases), len(querylines)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            timer[i, j, :] = read_teuchos_timers(
-                input_MC_file_dir+'teuchos_timers.txt', querylines)
-    return timer
-
-
-def read_iter_all(n_cases, sub_cases, file_MC_base_dir):
-    iter = np.zeros((n_cases, len(sub_cases)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', 1)
-            iter[i][j] = iter_indices[-1]
-    return iter
-
-
-def read_timer_tensor(n_cases, sub_cases, file_MC_base_dir, sizes):
-    import numpy as np
-    timer = read_timer_all(n_cases, sub_cases, file_MC_base_dir)
-
-    n_0 = sizes[0]
-    n_1 = sizes[1]
-    n_2 = sizes[2]
-    n_3 = sizes[3]
-
-    timer_tensor = np.zeros(
-        (n_0, n_1, n_2, n_3, len(sub_cases), timer.shape[2]))
-
-    i = 0
-
-    for i_0 in range(0, n_0):
-        for i_1 in range(0, n_1):
-            for i_2 in range(0, n_2):
-                for i_3 in range(0, n_3):
-                    if i < timer.shape[0]:
-                        timer_tensor[i_0, i_1, i_2, i_3, :, :] = timer[i, :, :]
-                        i = i + 1
-                    else:
-                        return timer_tensor
-
-    return timer_tensor
-
-
-def read_iter_tensor(n_cases, sub_cases, file_MC_base_dir, sizes):
-    import numpy as np
-    iter = read_iter_all(n_cases, sub_cases, file_MC_base_dir)
-
-    n_0 = sizes[0]
-    n_1 = sizes[1]
-    n_2 = sizes[2]
-    n_3 = sizes[3]
-
-    iter_tensor = np.zeros((n_0, n_1, n_2, n_3, len(sub_cases)))
-
-    i = 0
-
-    for i_0 in range(0, n_0):
-        for i_1 in range(0, n_1):
-            for i_2 in range(0, n_2):
-                for i_3 in range(0, n_3):
-                    if i < iter.shape[0]:
-                        iter_tensor[i_0, i_1, i_2, i_3, :] = iter[i, :]
-                        i = i + 1
-                    else:
-                        return iter_tensor
-
-    return iter_tensor
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    test = 2
-    if test == 1:
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/gaussian/katoptron_CMAME_tests_plate_mean_prec_GS_direct/'
-        #file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_mean_prec_GS_direct/'
-        sub_cases = ['mean_case', 'ensemble_reduction_8']
-
-        GS_sweeps_00_min = 16
-        GS_sweeps_00_max = 41
-        delta_GS_sweeps_00 = 2
-
-        N_GS_sweeps_00 = int(
-            np.ceil(
-                ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-        # Damping has to be between 0 and 2
-        GS_damping_00_min = 1.75
-        GS_damping_00_max = 1.9
-        N_GS_damping_00 = 8
-
-        # Omega has to be between 0 and 1
-        SS_omega_min = 0.001
-        SS_omega_max = 0.5
-        N_SS_omega = 12
-
-        SS_damping_min = 1.
-        SS_damping_max = 1.2
-        N_SS_damping = 1
-
-        n_cases = 1248
-    elif test == 2:
-        file_MC_base_dir = file_dir + \
-            '/../../../workspace/katoptron_CMAME_tests_fused_plate_mean_prec_GS/'
-        sub_cases = ['mean_case', 'ensemble_reduction_8']
-
-        GS_sweeps_00_min = 1
-        GS_sweeps_00_max = 41
-        delta_GS_sweeps_00 = 1
-
-        N_GS_sweeps_00 = int(
-            np.ceil(
-                ((GS_sweeps_00_max - GS_sweeps_00_min * 1.) / delta_GS_sweeps_00)))
-
-        # Damping has to be between 0 and 2
-        GS_damping_00_min = 0.001
-        GS_damping_00_max = 1.999
-        N_GS_damping_00 = 50
-
-        # Omega has to be between 0 and 1
-        SS_omega_min = 1.
-        SS_omega_max = 1.2
-        N_SS_omega = 1
-
-        SS_damping_min = 1.
-        SS_damping_max = 1.2
-        N_SS_damping = 1
-
-        n_cases = 2000
-
-    iter = read_iter_tensor(n_cases, sub_cases, file_MC_base_dir, [
-                            N_GS_sweeps_00, N_GS_damping_00, N_SS_omega, N_SS_damping])
-    timer = read_timer_tensor(n_cases, sub_cases, file_MC_base_dir, [
-                              N_GS_sweeps_00, N_GS_damping_00, N_SS_omega, N_SS_damping])
-
-    sweeps_00 = np.arange(
-        GS_sweeps_00_min, GS_sweeps_00_max, delta_GS_sweeps_00)
-    damping_00 = np.linspace(
-        GS_damping_00_min, GS_damping_00_max, N_GS_damping_00)
-    SS_omega = np.linspace(SS_omega_min, SS_omega_max, N_SS_omega)
-    SS_damping = np.linspace(SS_damping_min, SS_damping_max, N_SS_damping)
-
-    from mpl_toolkits.mplot3d import Axes3D
-    import matplotlib.pyplot as plt
-    from matplotlib import cm
-
-    opti = np.zeros((N_GS_sweeps_00, 3), dtype=int)
-    opti_2 = np.zeros((N_GS_sweeps_00, 3), dtype=int)
-    opti_iter = np.zeros((N_GS_sweeps_00, 1), dtype=int)
-    opti_iter_2 = np.zeros((N_GS_sweeps_00, 1), dtype=int)
-    opti_iter_2_one = np.zeros((N_GS_sweeps_00, 1), dtype=int)
-    R = np.zeros((N_GS_sweeps_00, 1))
-    opti_time = np.zeros((N_GS_sweeps_00, 7))
-    opti_time_2 = np.zeros((N_GS_sweeps_00, 7))
-    opti_time_per_iter = np.zeros((N_GS_sweeps_00, 7))
-
-    #opti_iter_8 = np.array([500,469,382,338,280,255,254,239,218,213,204,197],dtype=int)
-
-    for i in range(0, N_GS_sweeps_00):
-        tmp = iter[i, :, :, :, 0]
-        tmp2 = iter[i, :, :, :, 1]
-        tmp3 = np.copy(tmp)
-        tmp3[tmp3 >= 1000] = 1
-        opti[i, :] = np.unravel_index(np.argmin(tmp, axis=None), tmp.shape)
-        opti_2[i, :] = np.unravel_index(np.argmin(tmp2, axis=None), tmp.shape)
-        print(str(sweeps_00[i]) + ' ' + str(damping_00[opti[i, 0]]
-                                            ) + ' ' + str(SS_omega[opti[i, 1]]))
-        print(str(sweeps_00[i]) + ' ' + str(damping_00[opti_2[i, 0]]
-                                            ) + ' ' + str(SS_omega[opti_2[i, 1]]))
-        opti_iter[i] = iter[i, opti[i, 0], opti[i, 1], 0, 0]
-        opti_iter_2[i] = iter[i, opti_2[i, 0], opti_2[i, 1], 0, 1]
-        opti_iter_2_one[i] = iter[i, opti_2[i, 0], opti_2[i, 1], 0, 0]
-        opti_time[i, :] = timer[i, opti[i, 0], opti[i, 1], 0, 0, :]
-        opti_time_2[i, :] = timer[i, opti_2[i, 0], opti_2[i, 1], 0, 1, :]
-        if opti_iter_2[i] == 1000:
-            R[i] = 10.
-        else:
-            R[i] = opti_iter_2[i]*1. / opti_iter[i]
-        for j in range(0, 7):
-            opti_time_per_iter[i, j] = (opti_time[i, j] / opti_iter[i])
-        #R[i] = opti_iter_8[i]*1. / opti_iter[i]
-
-    plt.subplot(411)
-    plt.plot(sweeps_00, opti_iter)
-    plt.grid()
-    plt.subplot(412)
-    plt.plot(sweeps_00, opti_iter)
-    plt.plot(sweeps_00, opti_iter_2)
-    plt.plot(sweeps_00, opti_iter_2_one)
-    plt.grid()
-    plt.subplot(413)
-    plt.plot(sweeps_00, R)
-    plt.grid()
-    plt.subplot(414)
-    plt.plot(sweeps_00, damping_00[opti[:, 0]])
-    plt.plot(sweeps_00, damping_00[opti_2[:, 0]])
-    plt.grid()
-    #print np.argmin(opti_time[:,6])
-    #print opti
-
-    tmp = np.zeros((N_GS_sweeps_00, 2))
-    tmp[:, 0] = sweeps_00[:]
-    tmp[:, 1] = np.reshape(opti_iter, (N_GS_sweeps_00,))
-    np.savetxt('opti_iter.txt', tmp)
-    tmp[:, 1] = np.reshape(opti_iter_2, (N_GS_sweeps_00,))
-    np.savetxt('opti_iter_2.txt', tmp)
-    tmp[:, 1] = np.reshape(opti_iter_2_one, (N_GS_sweeps_00,))
-    np.savetxt('opti_iter_2_one.txt', tmp)
-    '''
-    plt.figure()
-    for i in range(0,N_GS_sweeps_00):
-        plt.subplot(2,N_GS_sweeps_00,1+i)
-        plt.plot(damping_00,iter[i,:,opti[i,1],0,0])
-        plt.scatter(damping_00[opti[i,0]],opti_iter[i], c='red')
-        plt.subplot(2,N_GS_sweeps_00,1+i+N_GS_sweeps_00)
-        plt.plot(SS_omega,iter[i,opti[i,0],:,0,0])
-        plt.scatter(SS_omega[opti[i,1]],opti_iter[i], c='red')
-    
-    plt.figure()
-    plt.plot(sweeps_00,damping_00[opti[:,0]])
-    
-    plt.figure()
-    plt.plot(sweeps_00,SS_omega[opti[:,1]])
-
-    plt.figure()
-    for i in range(0,8):
-        plt.plot(damping_00,iter[0,:,i,0,0])
-    
-    plt.figure()
-    for i in range(0,8):
-        plt.plot(SS_omega,iter[0,i,:,0,0])
-
-    plt.figure()
-    for i in range(0,6):
-        plt.plot(SS_omega,iter[i,5,:,0,0])
-
-    for i in range(0,N_GS_sweeps_00):
-        fig = plt.figure()
-        ax = fig.add_subplot(111, projection='3d')
-        X, Y = np.meshgrid(SS_omega,damping_00)
-        ax.plot_surface(X, Y, iter[i,:,:,0,0], cmap=cm.coolwarm,
-                           linewidth=0, alpha=0.8)
-        ax.set_zlim(0, 400)
-        ax.scatter(SS_omega[opti[i,1]],damping_00[opti[i,0]],opti_iter[i], c='red')
-    '''
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC.py b/katoptron/CMAME/post_process/plate_MC.py
deleted file mode 100644
index e30d1341..00000000
--- a/katoptron/CMAME/post_process/plate_MC.py
+++ /dev/null
@@ -1,357 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-"""@package docstring
-This file is used to loop over cases and samples and plot their mechanical properties and solution fields.
-"""
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.cutter as vtkC
-
-from katoptron.CMAME.model import Compute_QoIs
-
-
-def plot_2D_mesh(pts, quad, ax):
-    """
-    This function plots a 2D quad mesh on a given matplotlib axis
-    """
-    import matplotlib.pyplot as plt
-    for i in range(0, quad.shape[0]):
-        x = np.zeros((quad.shape[1] + 1, ))
-        y = np.zeros((quad.shape[1] + 1, ))
-        for j in range(0, quad.shape[1]):
-            x[j] = pts[quad[i, j], 0]
-            y[j] = pts[quad[i, j], 1]
-        x[-1] = pts[quad[i, 0], 0]
-        y[-1] = pts[quad[i, 0], 1]
-        ax.plot(x, y, '--k', linewidth=0.5)
-
-
-def cut_of_one_case(case_id,
-                    ensemble_size,
-                    n_samples,
-                    v_min,
-                    v_max,
-                    file_MC_mean,
-                    file_MC_base_dir,
-                    at_point=False):
-    """
-    This function loops over the samples of a given test case and plot them
-    """
-    import matplotlib.pyplot as plt
-
-    pts, tri, vals = cut_plate(file_MC_mean, at_point)
-    pts_2, quad = extract_quad_msh(file_MC_mean)
-
-    x = pts[:, 0]
-    y = pts[:, 1]
-
-    QoIs = np.zeros((4, n_samples))
-
-    plot_one_sampel(x, y, tri, vals, pts_2, quad, at_point)
-    plt.savefig('mean_case.png', dpi=400)
-
-    file_MC_base_dir_tmp = file_MC_base_dir + str(case_id) + '/' + str(
-        ensemble_size) + '/'
-
-    directory = 'case_' + str(case_id)
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-        os.makedirs(directory + '/sample')
-        os.makedirs(directory + '/abs')
-        os.makedirs(directory + '/rel')
-
-    for i in range(0, n_samples):
-        i_ensemble = (i // ensemble_size)
-        i_sample = np.mod(i, ensemble_size)
-        input_MC_file_dir = file_MC_base_dir_tmp + str(i_ensemble) + '/'
-        mshName_sample = input_MC_file_dir + 'plate_fused_ast1_s' + str(
-            i_sample) + '_0'
-
-        QoIs[:, i] = Compute_QoIs(mshName_sample)
-
-        pts_s, tri_s, vals_s = cut_plate(mshName_sample, at_point)
-
-        plot_one_sampel(x, y, tri, vals_s, pts_2, quad, at_point)
-        plt.savefig(directory + '/sample/' + str(i) + '.png', dpi=400)
-        plot_diff_rel(x,
-                      y,
-                      tri,
-                      vals,
-                      vals_s,
-                      pts_2,
-                      quad,
-                      v_min=v_min,
-                      v_max=v_max,
-                      at_point=at_point)
-        plt.savefig(directory + '/rel/' + str(i) + '.png', dpi=400)
-        plot_diff_abs(x, y, tri, vals, vals_s, pts_2, quad, at_point)
-        plt.savefig(directory + '/abs/' + str(i) + '.png', dpi=400)
-        plt.close('all')
-    for i in range(0, 4):
-        plt.figure()
-        plt.hist(QoIs[i, :], bins=80, density=True)
-        plt.xlabel('[MPa]')
-        plt.savefig('QoI_' + str(i) + '_case_' + str(case_id) + '.png',
-                    dpi=400)
-
-        plt.close('all')
-
-
-def extract_quad_msh(mshName):
-    """
-    This function extracts the 2D quad mesh out of a hexahedron mesh
-    """
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    rdata = reader.reader.GetOutput()
-
-    _pts = rdata.GetPoints()
-    pts = np.zeros((_pts.GetNumberOfPoints(), 2))
-    pts_indices = np.zeros((_pts.GetNumberOfPoints(), ), dtype=int)
-    for i in range(0, pts.shape[0]):
-        if _pts.GetPoint(i)[2] <= 0.01:
-            for j in range(0, 2):
-                pts[i][j] = _pts.GetPoint(i)[j]
-            pts_indices[i] = 1
-    n_elems = rdata.GetNumberOfCells()
-    quad = []
-    for i in range(0, n_elems):
-        elem = rdata.GetCell(i)
-        for j in range(0, 6):
-            face = elem.GetFace(j)
-            points_id = np.zeros((4, ), dtype=int)
-            good_face = True
-            for k in range(0, 4):
-                points_id[k] = face.GetPointId(k)
-                if pts_indices[points_id[k]] != 1:
-                    good_face = False
-                    break
-            if good_face:
-                if len(quad) == 0:
-                    quad = points_id.reshape((1, 4))
-                else:
-                    quad = np.append(quad, points_id.reshape((1, 4)), axis=0)
-    return pts, quad
-
-
-def cut_plate(mshName, at_point=False):
-    """
-    This function cuts the vtk files in the middle and extracts both point
-    and element data.
-    """
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    cutter = vtkC.Cutter(reader.reader.GetOutputPort())
-    c_output = cutter.cut(1, [0., 0., 0.5], [0., 0., 1.], tag_name='volume_id')
-    if at_point:
-        pts, tri, vals = cutter.extract(c_output,
-                                        3,
-                                        ['u', 'x', 'y', 'z', 'G', 'von Mises'],
-                                        atPoint=True)
-    else:
-        pts, tri, vals = cutter.extract(c_output,
-                                        3, ['u', 'x', 'y', 'z'],
-                                        atPoint=True)
-        pts_2, tri_2, vals_2 = cutter.extract(c_output,
-                                              3, ['G', 'von Mises'],
-                                              atPoint=False)
-        vals.update(vals_2)
-
-    return pts, tri, vals
-
-
-def plot_2D_cut_values_at_node(x, y, tri, value, n_levels=16):
-    """
-    This function plots data at node.
-    """
-    import matplotlib.pyplot as plt
-    value = value.reshape((len(x), ))
-    if max(value) - min(value) > 0:
-        levels = np.linspace(min(value), max(value), n_levels)
-        plt.set_cmap('coolwarm')
-        plt.tricontour(x,
-                       y,
-                       tri,
-                       value,
-                       levels,
-                       linestyles='-',
-                       colors='black',
-                       linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, value, levels)
-    else:
-        axtri = plt.tricontourf(x, y, tri, value)
-    plt.gca().set_aspect('equal')
-    return axtri
-
-
-def plot_2D_cut_values_at_elem(x,
-                               y,
-                               tri_1,
-                               value,
-                               v_min=0,
-                               v_max=0,
-                               n_levels=16,
-                               shading=False):
-    """
-    This function plots data at element.
-    """
-    import matplotlib.pyplot as plt
-
-    value = value.reshape((tri_1.shape[0], ))
-    if v_min == v_max:
-        v_min = min(value)
-        v_max = max(value)
-
-    levels = np.linspace(v_min, v_max, n_levels)
-    plt.set_cmap('coolwarm')
-    if shading:
-        axtri = plt.tripcolor(x, y, tri_1, value, shading='gouraud')
-    else:
-        axtri = plt.tripcolor(x, y, tri_1, value, levels)
-    plt.gca().set_aspect('equal')
-    return axtri
-
-
-def plot_one_sampel(x, y, tri, vals_s, pts_2, quad, at_point=False):
-    """
-    This function plots data of a given sample.
-    """
-    import matplotlib.pyplot as plt
-
-    fig = plt.figure(figsize=(15, 4))
-
-    ax = plt.subplot(131)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x, y, tri, vals_s['G'])
-        plot_2D_mesh(pts_2, quad, ax)
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['G'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.title('G')
-
-    plt.subplot(132)
-    tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['y'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal', format='%.0e')
-    plt.title('y')
-
-    ax = plt.subplot(133)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x, y, tri, vals_s['von Mises'])
-        plot_2D_mesh(pts_2, quad, ax)
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['von Mises'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.title('von Mises')
-
-
-def plot_diff_abs(x, y, tri, vals, vals_s, pts_2, quad, at_point=False):
-    """
-    This function plots the difference between data of a given sample and the mean sample.
-    """
-    import matplotlib.pyplot as plt
-
-    fig = plt.figure(figsize=(15, 4))
-
-    plt.subplot(131)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x, y, tri, vals_s['G'] - vals['G'])
-        plot_2D_mesh(pts_2, quad, plt.gca())
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['G'] - vals['G'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.title('delta G')
-
-    plt.subplot(132)
-    tmp = plot_2D_cut_values_at_node(x, y, tri, vals_s['y'] - vals['y'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal', format='%.0e')
-    plt.title('delta y')
-
-    plt.subplot(133)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(
-            x, y, tri, vals_s['von Mises'] - vals['von Mises'])
-        plot_2D_mesh(pts_2, quad, plt.gca())
-    else:
-        tmp = plot_2D_cut_values_at_node(
-            x, y, tri, vals_s['von Mises'] - vals['von Mises'])
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.title('delta von Mises')
-
-
-def plot_diff_rel(x,
-                  y,
-                  tri,
-                  vals,
-                  vals_s,
-                  pts_2,
-                  quad,
-                  v_min=-10,
-                  v_max=10,
-                  at_point=False):
-    """
-    This function plots the relative difference between data of a given sample and the mean sample.
-    """
-    import matplotlib.pyplot as plt
-
-    fig = plt.figure(figsize=(15, 4))
-
-    diff_G = vals_s['G'] - vals['G']
-    diff_G_rel = (100 * diff_G / vals['G'])
-
-    plt.subplot(121)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x,
-                                         y,
-                                         tri,
-                                         diff_G_rel,
-                                         v_min=v_min,
-                                         v_max=v_max)
-        plot_2D_mesh(pts_2, quad, plt.gca())
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, diff_G_rel)
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.clim(v_min, v_max)
-    plt.title('delta G relative')
-
-    diff_vM = vals_s['von Mises'] - vals['von Mises']
-    diff_vM_rel = (100 * diff_vM / vals['von Mises'])
-
-    plt.subplot(122)
-    if not at_point:
-        tmp = plot_2D_cut_values_at_elem(x,
-                                         y,
-                                         tri,
-                                         diff_vM_rel,
-                                         v_min=v_min,
-                                         v_max=v_max)
-        plot_2D_mesh(pts_2, quad, plt.gca())
-    else:
-        tmp = plot_2D_cut_values_at_node(x, y, tri, diff_vM_rel)
-    fig.colorbar(tmp, ax=plt.gca(), orientation='horizontal')
-    plt.clim(v_min, v_max)
-    plt.title('delta von Mises relative')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-
-    file_MC_mean = file_dir + \
-        '/../../../workspace/katoptron_CMAME_tests_plate/plate_fused_ast1_s0_0'
-
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/gaussian/katoptron_CMAME_tests_plate_MC_GS_all_cases/case_'
-    n_samples = 96
-    for i in range(1, 7):
-        cut_of_one_case(i, 32, n_samples, -10, 10, file_MC_mean,
-                        file_MC_base_dir, False)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_MG_speedup.py b/katoptron/CMAME/post_process/plate_MC_MG_speedup.py
deleted file mode 100644
index f7a178a3..00000000
--- a/katoptron/CMAME/post_process/plate_MC_MG_speedup.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-from katoptron.speedup import *
-
-
-def speedup_of_one_case(case_id, n_samples, ensemble_sizes, quantiles,
-                        querylines, use_waves_timers, use_teuchos_timers,
-                        per_iteration):
-    import matplotlib.pyplot as plt
-
-    case_id = str(case_id)
-    file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_NER/case_' + case_id
-    #'/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases 2/case_' + case_id
-    # try:
-    speedup = compute_speedup(n_samples, ensemble_sizes, file_MC_base_dir,
-                              querylines, per_iteration, quantiles,
-                              use_waves_timers, use_teuchos_timers, False)
-
-    plot_speedup(speedup, ensemble_sizes, np.arange(0, len(querylines)),
-                 'case_' + case_id, querylines, per_iteration)
-    plt.savefig('case_' + case_id + '.png', dpi=400)
-
-    save_speedup(speedup, ensemble_sizes, querylines, 'case_' + case_id)
-
-    R = compute_R(n_samples, ensemble_sizes, file_MC_base_dir, quantiles,
-                  False)
-    save_R(R, 'case_' + case_id)
-    # except:
-    #    print '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_case_' + case_id + '  has not all the files'
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 64
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0'
-    ]
-    use_waves_timers = np.array([0, 7, 8], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True
-    ]
-
-    for i in range(1, 7):
-        speedup_of_one_case(i, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers,
-                            per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_MG_speedup_200_ER.py b/katoptron/CMAME/post_process/plate_MC_MG_speedup_200_ER.py
deleted file mode 100644
index fd58d82a..00000000
--- a/katoptron/CMAME/post_process/plate_MC_MG_speedup_200_ER.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-from katoptron.speedup import *
-
-
-def speedup_of_one_case(case_id, n_samples, ensemble_sizes, quantiles,
-                        querylines, use_waves_timers, use_teuchos_timers,
-                        per_iteration):
-    import matplotlib.pyplot as plt
-
-    case_id = str(case_id)
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_200/case_' + case_id
-    #'/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases 2/case_' + case_id
-    # try:
-    speedup = compute_speedup(n_samples, ensemble_sizes, file_MC_base_dir,
-                              querylines, per_iteration, quantiles,
-                              use_waves_timers, use_teuchos_timers, True)
-
-    plot_speedup(speedup, ensemble_sizes, np.arange(0, len(querylines)),
-                 'case_' + case_id, querylines, per_iteration)
-    plt.savefig('case_' + case_id + '.png', dpi=400)
-
-    save_speedup(speedup, ensemble_sizes, querylines, 'case_' + case_id)
-
-    R = compute_R(n_samples, ensemble_sizes, file_MC_base_dir, quantiles, True)
-    save_R(R, 'case_' + case_id)
-    # except:
-    #    print '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_case_' + case_id + '  has not all the files'
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 32
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0'
-    ]
-    use_waves_timers = np.array([0, 7, 8], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, True
-    ]
-
-    for i in range(1, 2):
-        speedup_of_one_case(i, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers,
-                            per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_MG_speedup_ER.py b/katoptron/CMAME/post_process/plate_MC_MG_speedup_ER.py
deleted file mode 100644
index 5356e91a..00000000
--- a/katoptron/CMAME/post_process/plate_MC_MG_speedup_ER.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-from katoptron.speedup import *
-
-
-def speedup_of_one_case(case_id, n_samples, ensemble_sizes, quantiles,
-                        querylines, use_waves_timers, use_teuchos_timers,
-                        per_iteration):
-    import matplotlib.pyplot as plt
-
-    case_id = str(case_id)
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_2_ER_2/case_' + case_id
-    #'/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases 2/case_' + case_id
-    # try:
-    speedup = compute_speedup(n_samples, ensemble_sizes, file_MC_base_dir,
-                              querylines, per_iteration, quantiles,
-                              use_waves_timers, use_teuchos_timers, True)
-
-    plot_speedup(speedup, ensemble_sizes, np.arange(0, len(querylines)),
-                 'case_' + case_id, querylines, per_iteration)
-    plt.savefig('case_' + case_id + '.png', dpi=400)
-
-    save_speedup(speedup, ensemble_sizes, querylines, 'case_' + case_id)
-
-    R = compute_R(n_samples, ensemble_sizes, file_MC_base_dir, quantiles, True)
-    save_R(R, 'case_' + case_id)
-    # except:
-    #    print '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_case_' + case_id + '  has not all the files'
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 64
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0'
-    ]
-    use_waves_timers = np.array([0, 7, 8], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, True
-    ]
-
-    for i in range(1, 7):
-        speedup_of_one_case(i, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers,
-                            per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_MG_speedup_NER.py b/katoptron/CMAME/post_process/plate_MC_MG_speedup_NER.py
deleted file mode 100644
index b96fb608..00000000
--- a/katoptron/CMAME/post_process/plate_MC_MG_speedup_NER.py
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-from katoptron.speedup import *
-
-
-def speedup_of_one_case(case_id, n_samples, ensemble_sizes, quantiles,
-                        querylines, use_waves_timers, use_teuchos_timers,
-                        per_iteration):
-    import matplotlib.pyplot as plt
-
-    case_id = str(case_id)
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_2_NER_2/case_' + case_id
-    #'/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases 2/case_' + case_id
-    # try:
-    speedup = compute_speedup(n_samples, ensemble_sizes, file_MC_base_dir,
-                              querylines, per_iteration, quantiles,
-                              use_waves_timers, use_teuchos_timers, False)
-
-    plot_speedup(speedup, ensemble_sizes, np.arange(0, len(querylines)),
-                 'case_' + case_id, querylines, per_iteration)
-    plt.savefig('case_' + case_id + '.png', dpi=400)
-
-    save_speedup(speedup, ensemble_sizes, querylines, 'case_' + case_id)
-
-    R = compute_R(n_samples, ensemble_sizes, file_MC_base_dir, quantiles,
-                  False)
-    save_R(R, 'case_' + case_id)
-    # except:
-    #    print '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_case_' + case_id + '  has not all the files'
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 64
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0'
-    ]
-    use_waves_timers = np.array([0, 7, 8], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, True
-    ]
-
-    for i in range(1, 7):
-        speedup_of_one_case(i, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers,
-                            per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_MG_total.py b/katoptron/CMAME/post_process/plate_MC_MG_total.py
deleted file mode 100644
index 213eaf0c..00000000
--- a/katoptron/CMAME/post_process/plate_MC_MG_total.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.speedup import *
-
-
-def CPU_time_per_one_case(case_id, n_samples, ensemble_sizes, quantiles,
-                          querylines, use_waves_timers, use_teuchos_timers,
-                          per_iteration):
-    import matplotlib.pyplot as plt
-
-    case_id = str(case_id)
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_2_NER_2/case_' + case_id
-    timers = read_timers_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                            file_MC_base_dir, querylines,
-                                            use_waves_timers,
-                                            use_teuchos_timers)
-
-    print(timers.shape)
-
-    for i in range(0, timers.shape[2]):
-        print(querylines[i])
-        string = ''
-        for e in range(0, timers.shape[0]):
-            string = string + str(
-                round(np.sum(((timers[e, :, i] / ensemble_sizes[e]) / n_samples)),
-                      3)) + ' & '
-        print(string)
-        print(' ')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 64
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: PseudoBlockGmresSolMgr total solve time',
-        'MueLu: Hierarchy: Setup (total)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0',
-        'compute contact matrices', 'compute block 00 matrix', 'graph'
-    ]
-    use_waves_timers = np.array([0, 7, 8, 20, 21, 22], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, True
-    ]
-
-    for i in range(6, 7):
-        CPU_time_per_one_case(i, n_samples, ensemble_sizes, quantiles,
-                              querylines, use_waves_timers, use_teuchos_timers,
-                              per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_MG_total_2.py b/katoptron/CMAME/post_process/plate_MC_MG_total_2.py
deleted file mode 100644
index 3d62c68e..00000000
--- a/katoptron/CMAME/post_process/plate_MC_MG_total_2.py
+++ /dev/null
@@ -1,76 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.speedup import *
-
-
-def CPU_time_per_one_case(case_id, n_samples, ensemble_sizes, quantiles,
-                          querylines, use_waves_timers, use_teuchos_timers,
-                          per_iteration):
-    import matplotlib.pyplot as plt
-
-    case_id = str(case_id)
-    file_MC_base_dir = '/Volumes/HD_SEAGATE/CMAME/Plate/MC/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_' + case_id
-    timers = read_timers_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                            file_MC_base_dir, querylines,
-                                            use_waves_timers,
-                                            use_teuchos_timers)
-
-    print(timers.shape)
-
-    for i in range(0, timers.shape[2]):
-        print(querylines[i])
-        string = ''
-        for e in range(0, timers.shape[0]):
-            string = string + str(
-                round(np.sum((timers[e, :, i] / ensemble_sizes[e])), 3)) + ' & '
-        print(string)
-        print(' ')
-
-        for e in range(0, timers.shape[0]):
-            tmp = timers[0, :, 7] - timers[0, :, 8] - timers[0, :, 0]
-            np.savez('total_s' + str(ensemble_sizes[e]), time=tmp)
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 6400
-    ensemble_sizes = [1]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'domain', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: PseudoBlockGmresSolMgr total solve time',
-        'MueLu: Hierarchy: Setup (total)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0',
-        'compute contact matrices', 'compute block 00 matrix', 'dp'
-    ]
-    use_waves_timers = np.array([0, 7, 8, 20, 21, 22], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, True
-    ]
-
-    for i in range(6, 7):
-        CPU_time_per_one_case(i, n_samples, ensemble_sizes, quantiles,
-                              querylines, use_waves_timers, use_teuchos_timers,
-                              per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_MG_total_2_analysis.py b/katoptron/CMAME/post_process/plate_MC_MG_total_2_analysis.py
deleted file mode 100644
index af77082d..00000000
--- a/katoptron/CMAME/post_process/plate_MC_MG_total_2_analysis.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.speedup import *
-import os
-import matplotlib2tikz
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-
-    current_dir = os.getcwd()
-
-    npzfile = np.load(
-        current_dir +
-        '/../katoptron_CMAME_tests_post_process_plate_MC_MG_total_2/total_s1.npz'
-    )
-    time_s1 = npzfile['time']
-    npzfile = np.load(
-        current_dir +
-        '/../katoptron_CMAME_tests_post_process_plate_MC_MG_total_2/total_s32.npz'
-    )
-    time_s32 = npzfile['time']
-
-    ensemble_size = 32
-
-    cum_sp = np.zeros((200, ))
-    each_sp = np.zeros((200, ))
-
-    time_s1_s32 = np.zeros((200, ))
-    time_s32_s32 = np.zeros((200, ))
-
-    cum_time_s1 = 0.
-    cum_time_s32 = 0.
-
-    for i in range(0, 200):
-        current_s1 = np.sum(time_s1[i * ensemble_size:(i + 1) * ensemble_size])
-        current_s32 = time_s32[i * ensemble_size]
-
-        time_s1_s32[i] = current_s1
-        time_s32_s32[i] = current_s32
-
-        cum_time_s1 = cum_time_s1 + current_s1
-        cum_time_s32 = cum_time_s32 + current_s32
-
-        each_sp[i] = (current_s1 / current_s32)
-        cum_sp[i] = (cum_time_s1 / cum_time_s32)
-
-    plt.figure()
-    plt.plot(time_s1)
-
-    plt.figure()
-    plt.plot(time_s32)
-
-    print(np.sum(time_s1_s32))
-    print(np.sum(time_s32_s32))
-
-    plt.figure()
-    plt.plot(time_s1_s32)
-    plt.plot(time_s32_s32)
-    plt.figure()
-    plt.plot(each_sp)
-    plt.figure()
-    plt.plot(cum_sp)
-    matplotlib2tikz.save("speedup.tex")
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_QoI.py b/katoptron/CMAME/post_process/plate_MC_QoI.py
deleted file mode 100644
index 6cb77300..00000000
--- a/katoptron/CMAME/post_process/plate_MC_QoI.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-"""@package docstring
-This file is used to loop over cases and samples and plot their mechanical properties and solution fields.
-"""
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.cutter as vtkC
-
-from katoptron.CMAME.model import Compute_QoIs
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-
-    file_MC_base_dir = '/Volumes/HD_SEAGATE/CMAME/Plate/MC/katoptron_CMAME_tests_plate_MC_MG_all_cases_2/case_6/'
-    n_samples = 6400
-
-    QoIs = np.zeros((4, n_samples))
-
-    ensemble_size = 32
-
-    for i in range(0, n_samples):
-        i_ensemble = (i // ensemble_size)
-        i_sample = np.mod(i, ensemble_size)
-        input_MC_file_dir = file_MC_base_dir + str(ensemble_size) + '/' + str(
-            i_ensemble) + '/'
-        mshName_sample = input_MC_file_dir + 'plate_fused_ast1_s' + str(
-            i_sample) + '_0'
-
-        QoIs[:, i] = Compute_QoIs(mshName_sample)
-
-    print(QoIs)
-
-    np.savez('qois_s' + str(ensemble_size), QoIs=QoIs)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_QoI_analysis.py b/katoptron/CMAME/post_process/plate_MC_QoI_analysis.py
deleted file mode 100644
index 275aa2b3..00000000
--- a/katoptron/CMAME/post_process/plate_MC_QoI_analysis.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-
-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-"""@package docstring
-This file is used to loop over cases and samples and plot their mechanical properties and solution fields.
-"""
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.cutter as vtkC
-
-from katoptron.CMAME.model import Compute_QoIs
-import matplotlib2tikz
-from scipy import stats
-
-
-def write_tikz_hist(filename, bins, n):
-    f = open(filename, 'w')
-    print('\\path [fill=c2, fill opacity=0.5] (axis cs:' + str(
-        bins[0]) + ', 0)', file=f)
-    for i in range(0, len(n)):
-        print('--(axis cs:' + str(bins[i]) + ', ' + str(n[i]) + ')', file=f)
-        print('--(axis cs:' + str(bins[i + 1]) + ', ' + str(n[i]) + ')', file=f)
-    print('--(axis cs:' + str(bins[-1]) + ', 0)', file=f)
-    print('--cycle;', file=f)
-    f.closed
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-
-    current_dir = os.getcwd()
-
-    npzfile = np.load(
-        current_dir +
-        '/../katoptron_CMAME_tests_post_process_plate_MC_QoI/qois_s1.npz')
-    QoIs = npzfile['QoIs']
-
-    n, bins, patches = plt.hist(QoIs[0, :],
-                                100,
-                                density=True,
-                                facecolor='g',
-                                alpha=0.75)
-    write_tikz_hist('QoI_s1.tex', bins, n)
-
-    kde = stats.gaussian_kde(QoIs[0, :])
-
-    x = np.linspace(1500., 5000., 100)
-
-    p = kde(x)
-
-    plt.figure()
-    plt.plot(x, p)
-    matplotlib2tikz.save("kde_s1.tex")
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_convergence.py b/katoptron/CMAME/post_process/plate_MC_convergence.py
deleted file mode 100644
index 08d16027..00000000
--- a/katoptron/CMAME/post_process/plate_MC_convergence.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.readers import *
-
-
-def read_iter_all_ensemble_sizes(n_samples, ensemble_sizes, file_MC_base_dir, reduction=False):
-    iter = np.zeros((len(ensemble_sizes), n_samples))
-    for i in range(0, len(ensemble_sizes)):
-        file_MC_base_dir_2 = file_MC_base_dir + \
-            '/' + str(ensemble_sizes[i])+'/'
-        for j in range(0, int((n_samples // ensemble_sizes[i]))):
-            input_MC_file_dir = file_MC_base_dir_2 + str(j)+'/'
-            es = ensemble_sizes[i]
-            if reduction:
-                es = 1
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', es)
-            for k in range(0, ensemble_sizes[i]):
-                iter[i][j*ensemble_sizes[i]+k] = iter_indices[-1]
-    return iter
-
-
-def plot_iter_all_ensemble_sizes(n_samples, iter):
-    import matplotlib.pyplot as plt
-    plt.figure()
-    plt.plot(list(range(0, n_samples)),
-             iter[0][:], 'bo', markersize=8, zorder=1)
-    plt.plot(list(range(0, n_samples)),
-             iter[1][:], 'ro', markersize=6, zorder=2)
-    plt.plot(list(range(0, n_samples)),
-             iter[2][:], 'go', markersize=4, zorder=2)
-    plt.plot(list(range(0, n_samples)),
-             iter[3][:], 'ko', markersize=2, zorder=3)
-    plt.xlabel('sample')
-    plt.ylabel('Number of iterations to converge')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 960
-    ensemble_sizes = [1, 8, 16, 32]
-    for case_id in range(1, 5):
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_GS_case_' + \
-            str(case_id)+'_ER'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.savefig('GS_case_'+str(case_id)+'_ER.png', dpi=400)
-            np.savetxt('GS_case_'+str(case_id)+'_ER.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_direct_case_' + \
-            str(case_id)+'_ER'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.savefig('direct_case_'+str(case_id)+'_ER.png', dpi=400)
-            np.savetxt('direct_case_'+str(case_id) +
-                       '_ER.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_GS_case_' + \
-            str(case_id)+'_NER'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.savefig('GS_case_'+str(case_id)+'_NER.png', dpi=400)
-            np.savetxt('GS_case_'+str(case_id)+'_NER.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_direct_case_' + \
-            str(case_id)+'_NER'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.savefig('direct_case_'+str(case_id)+'_NER.png', dpi=400)
-            np.savetxt('direct_case_'+str(case_id) +
-                       '_NER.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_convergence_2.py b/katoptron/CMAME/post_process/plate_MC_convergence_2.py
deleted file mode 100644
index b0eba9e4..00000000
--- a/katoptron/CMAME/post_process/plate_MC_convergence_2.py
+++ /dev/null
@@ -1,573 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.readers import *
-
-
-def read_iter_all_ensemble_sizes(n_samples, ensemble_sizes, file_MC_base_dir, reduction=False):
-    iter = np.zeros((len(ensemble_sizes), n_samples))
-    for i in range(0, len(ensemble_sizes)):
-        file_MC_base_dir_2 = file_MC_base_dir + \
-            '/' + str(ensemble_sizes[i])+'/'
-        for j in range(0, int((n_samples // ensemble_sizes[i]))):
-            input_MC_file_dir = file_MC_base_dir_2 + str(j)+'/'
-            es = ensemble_sizes[i]
-            if reduction:
-                es = 1
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', es)
-            for k in range(0, ensemble_sizes[i]):
-                iter[i][j*ensemble_sizes[i]+k] = iter_indices[-1]
-    return iter
-
-
-def plot_iter_all_ensemble_sizes(n_samples, iter, print_all=False):
-    import matplotlib.pyplot as plt
-    plt.figure()
-    plt.plot(list(range(0, n_samples)),
-             iter[0][:], 'bo', markersize=8, zorder=1)
-    ensemble_size = 8
-    for i in range(0, int(np.ceil(n_samples*1./ensemble_size))):
-        plt.plot(list(range(ensemble_size*i, ensemble_size*(i+1))),
-                 iter[1][ensemble_size*i:ensemble_size*(i+1)], '-ro', linewidth=3, markersize=6, zorder=2)
-    if print_all:
-        ensemble_size = 16
-        for i in range(0, int(np.ceil(n_samples*1./ensemble_size))):
-            plt.plot(list(range(ensemble_size*i, ensemble_size*(i+1))),
-                     iter[2][ensemble_size*i:ensemble_size*(i+1)], '-go', linewidth=2, markersize=4, zorder=2)
-        ensemble_size = 32
-        for i in range(0, int(np.ceil(n_samples*1./ensemble_size))):
-            plt.plot(list(range(ensemble_size*i, ensemble_size*(i+1))),
-                     iter[3][ensemble_size*i:ensemble_size*(i+1)], '-ko', linewidth=1, markersize=2, zorder=3)
-    plt.xlabel('sample')
-    plt.ylabel('Number of iterations to converge')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 8
-    ensemble_sizes = [1, 8]
-    for case_id in range(1, 2):
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/tests_plate_vd/katoptron_CMAME_tests_plate_vd_Direct_3'
-        iter = read_iter_all_ensemble_sizes(
-            n_samples, ensemble_sizes, file_MC_base_dir, True)
-        plot_iter_all_ensemble_sizes(n_samples, iter)
-        plt.savefig('Direct_3.png', dpi=400)
-        np.savetxt('Direct_3.txt', iter, delimiter=' ')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/tests_plate_vd/katoptron_CMAME_tests_plate_vd_Direct_200'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.savefig('Direct_200.png', dpi=400)
-            np.savetxt('Direct_200.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/tests_plate_vd/katoptron_CMAME_tests_plate_vd_GS_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_3.png', dpi=400)
-            np.savetxt('GS_3.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/tests_plate_vd/katoptron_CMAME_tests_plate_vd_GS_200'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_200.png', dpi=400)
-            np.savetxt('GS_200.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS/katoptron_CMAME_tests_plate_vd_GS_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_3_005.png', dpi=400)
-            np.savetxt('GS_3_005.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS/katoptron_CMAME_tests_plate_vd_GS_200'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_200_005.png', dpi=400)
-            np.savetxt('GS_200_005.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS_2/katoptron_CMAME_tests_plate_vd_GS_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_3_0005.png', dpi=400)
-            np.savetxt('GS_3_0005.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS_2/katoptron_CMAME_tests_plate_vd_GS_200'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_200_0005.png', dpi=400)
-            np.savetxt('GS_200_0005.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS_3/katoptron_CMAME_tests_plate_vd_GS_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_3_0005_group.png', dpi=400)
-            np.savetxt('GS_3_0005_group.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS_3/katoptron_CMAME_tests_plate_vd_GS_200'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_200_0005_group.png', dpi=400)
-            np.savetxt('GS_200_0005_group.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS_3_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter)
-            plt.grid()
-            plt.ylim([0, 850])
-            plt.savefig('GS_3_no_gamma.png', dpi=400)
-            np.savetxt('GS_3_no_gamma.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        n_samples = 32
-        ensemble_sizes = [1, 8, 16, 32]
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/fused/katoptron_CMAME_tests_fused_plate_MC_GS_all_cases/case_1'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([40, 100])
-            plt.savefig('SPD_case_1_MG.png', dpi=400)
-            np.savetxt('SPD_case_1_MG.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/fused/katoptron_CMAME_tests_fused_plate_MC_GS_all_cases/case_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([40, 100])
-            plt.savefig('SPD_case_2_MG.png', dpi=400)
-            np.savetxt('SPD_case_2_MG.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/fused/katoptron_CMAME_tests_fused_plate_MC_GS_all_cases/case_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([0, 150])
-            plt.savefig('SPD_case_3_MG.png', dpi=400)
-            np.savetxt('SPD_case_3_MG.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/fused/katoptron_CMAME_tests_fused_plate_MC_GS_all_cases/case_4'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([0, 150])
-            plt.savefig('SPD_case_4_MG.png', dpi=400)
-            np.savetxt('SPD_case_4_MG.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/fused/katoptron_CMAME_tests_fused_plate_MC_GS_all_cases/case_5'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([0, 150])
-            plt.savefig('SPD_case_5_MG.png', dpi=400)
-            np.savetxt('SPD_case_5_MG.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/fused/katoptron_CMAME_tests_fused_plate_MC_GS_all_cases/case_6'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([0, 150])
-            plt.savefig('SPD_case_6_MG.png', dpi=400)
-            np.savetxt('SPD_case_6_MG.txt', iter, delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-
-        n_samples = 896
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_1'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([75, 150])
-            plt.savefig('MC_MG_case_1.png', dpi=400)
-            np.savetxt('MC_MG_case_1.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([75, 150])
-            plt.savefig('MC_MG_case_2.png', dpi=400)
-            np.savetxt('MC_MG_case_2.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([75, 150])
-            plt.savefig('MC_MG_case_3.png', dpi=400)
-            np.savetxt('MC_MG_case_3.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_4'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([75, 150])
-            plt.savefig('MC_MG_case_4.png', dpi=400)
-            np.savetxt('MC_MG_case_4.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_5'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([75, 150])
-            plt.savefig('MC_MG_case_5.png', dpi=400)
-            np.savetxt('MC_MG_case_5.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/MG/all/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_6'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([75, 150])
-            plt.savefig('MC_MG_case_6.png', dpi=400)
-            np.savetxt('MC_MG_case_6.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        n_samples = 96
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_Juelich_tests_M1_assembly_fused_MC_NER_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([190, 210])
-            plt.savefig('Juelich_NER.png', dpi=400)
-            np.savetxt('Juelich_NER.txt', np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_Juelich_tests_M1_assembly_fused_MC_ER_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([190, 310])
-            plt.savefig('Juelich_ER.png', dpi=400)
-            np.savetxt('Juelich_ER.txt', np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-
-        n_samples = 64
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_1'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 150])
-            plt.savefig('MC_MG_case_1_2.png', dpi=400)
-            np.savetxt('MC_MG_case_1_2.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases/case_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 150])
-            plt.savefig('MC_MG_case_2_2.png', dpi=400)
-            np.savetxt('MC_MG_case_2_2.txt', np.transpose(iter), delimiter=' ')
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_ER/case_1'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 400])
-            plt.savefig('MC_MG_case_1_ER.png', dpi=400)
-            np.savetxt('MC_MG_case_1_ER.txt',
-                       np.transpose(iter), delimiter=' ')
-            print('MC_MG_case_1_ER')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_ER/case_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 400])
-            plt.savefig('MC_MG_case_2_ER.png', dpi=400)
-            np.savetxt('MC_MG_case_2_ER.txt',
-                       np.transpose(iter), delimiter=' ')
-            print('MC_MG_case_2_ER')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_ER/case_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 400])
-            plt.savefig('MC_MG_case_3_ER.png', dpi=400)
-            np.savetxt('MC_MG_case_3_ER.txt',
-                       np.transpose(iter), delimiter=' ')
-            print('MC_MG_case_3_ER')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_ER/case_4'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 400])
-            plt.savefig('MC_MG_case_4_ER.png', dpi=400)
-            np.savetxt('MC_MG_case_4_ER.txt',
-                       np.transpose(iter), delimiter=' ')
-            print('MC_MG_case_4_ER')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_ER/case_5'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 400])
-            plt.savefig('MC_MG_case_5_ER.png', dpi=400)
-            np.savetxt('MC_MG_case_5_ER.txt',
-                       np.transpose(iter), delimiter=' ')
-            print('MC_MG_case_5_ER')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_ER/case_6'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([50, 400])
-            plt.savefig('MC_MG_case_6_ER.png', dpi=400)
-            np.savetxt('MC_MG_case_6_ER.txt',
-                       np.transpose(iter), delimiter=' ')
-            print('MC_MG_case_6_ER')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_NER/case_1'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([100, 150])
-            plt.savefig('MC_MG_case_1_NER.png', dpi=400)
-            np.savetxt('MC_MG_case_1_NER.txt',
-                       np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_NER/case_2'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([100, 150])
-            plt.savefig('MC_MG_case_2_NER.png', dpi=400)
-            np.savetxt('MC_MG_case_2_NER.txt',
-                       np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_NER/case_3'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([100, 150])
-            plt.savefig('MC_MG_case_3_NER.png', dpi=400)
-            np.savetxt('MC_MG_case_3_NER.txt',
-                       np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_NER/case_4'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([100, 150])
-            plt.savefig('MC_MG_case_4_NER.png', dpi=400)
-            np.savetxt('MC_MG_case_4_NER.txt',
-                       np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_NER/case_5'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([100, 150])
-            plt.savefig('MC_MG_case_5_NER.png', dpi=400)
-            np.savetxt('MC_MG_case_5_NER.txt',
-                       np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-        file_MC_base_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_4_NER/case_6'
-        try:
-            iter = read_iter_all_ensemble_sizes(
-                n_samples, ensemble_sizes, file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            plt.grid()
-            plt.ylim([100, 150])
-            plt.savefig('MC_MG_case_6_NER.png', dpi=400)
-            np.savetxt('MC_MG_case_6_NER.txt',
-                       np.transpose(iter), delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_convergence_3.py b/katoptron/CMAME/post_process/plate_MC_convergence_3.py
deleted file mode 100644
index 94b16298..00000000
--- a/katoptron/CMAME/post_process/plate_MC_convergence_3.py
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.readers import *
-
-
-def read_iter_all_ensemble_sizes(n_samples,
-                                 ensemble_sizes,
-                                 file_MC_base_dir,
-                                 reduction=False):
-    iter = np.zeros((len(ensemble_sizes), n_samples))
-    for i in range(0, len(ensemble_sizes)):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(
-            ensemble_sizes[i]) + '/'
-        for j in range(0, int((n_samples // ensemble_sizes[i]))):
-            input_MC_file_dir = file_MC_base_dir_2 + str(j) + '/'
-            es = ensemble_sizes[i]
-            if reduction:
-                es = 1
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', es)
-            for k in range(0, ensemble_sizes[i]):
-                iter[i][j * ensemble_sizes[i] + k] = iter_indices[-1]
-    return iter
-
-
-def plot_iter_all_ensemble_sizes(n_samples, iter, print_all=False):
-    import matplotlib.pyplot as plt
-    plt.figure()
-    plt.plot(list(range(0, n_samples)),
-             iter[0][:], 'bo', markersize=8, zorder=1)
-    ensemble_size = 8
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        plt.plot(list(range(ensemble_size * i, ensemble_size * (i + 1))),
-                 iter[1][ensemble_size * i:ensemble_size * (i + 1)],
-                 '-ro',
-                 linewidth=3,
-                 markersize=6,
-                 zorder=2)
-    if print_all:
-        ensemble_size = 16
-        for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-            plt.plot(list(range(ensemble_size * i, ensemble_size * (i + 1))),
-                     iter[2][ensemble_size * i:ensemble_size * (i + 1)],
-                     '-go',
-                     linewidth=2,
-                     markersize=4,
-                     zorder=2)
-        ensemble_size = 32
-        for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-            plt.plot(list(range(ensemble_size * i, ensemble_size * (i + 1))),
-                     iter[3][ensemble_size * i:ensemble_size * (i + 1)],
-                     '-ko',
-                     linewidth=1,
-                     markersize=2,
-                     zorder=3)
-    plt.xlabel('sample')
-    plt.ylabel('Number of iterations to converge')
-
-
-def write_tex(n_samples, iter, filename):
-    f = open(filename, 'w')
-    print('\\addplot [c1, mark=*, mark size=2pt, mark options={solid}, only marks]', file=f)
-    print('table [row sep=crcr] {%', file=f)
-    for i in range(0, n_samples):
-        print(str(i) + ' ' + str(iter[0][i]) + '\\\\', file=f)
-    print('};', file=f)
-    print('\\label{pgfplots:noEP}', file=f)
-    ensemble_size = 8
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        print('\\addplot [line width=2pt, c2]', file=f)
-        print('table [row sep=crcr] {%', file=f)
-        print(str(ensemble_size * i) + ' ' + str(
-            iter[1][ensemble_size * i]) + '\\\\', file=f)
-        print(str(ensemble_size *
-                  (i + 1)) + ' ' + str(iter[1][ensemble_size *
-                                               (i + 1) - 1]) + '\\\\', file=f)
-        print('};', file=f)
-    print('\\label{pgfplots:s8}', file=f)
-    ensemble_size = 16
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        print('\\addplot [line width=1.5pt, c3]', file=f)
-        print('table [row sep=crcr] {%', file=f)
-        print(str(ensemble_size * i) + ' ' + str(
-            iter[2][ensemble_size * i]) + '\\\\', file=f)
-        print(str(ensemble_size *
-                  (i + 1)) + ' ' + str(iter[2][ensemble_size *
-                                               (i + 1) - 1]) + '\\\\', file=f)
-        print('};', file=f)
-    print('\\label{pgfplots:s16}', file=f)
-    ensemble_size = 32
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        print('\\addplot [line width=1.pt, c4]', file=f)
-        print('table [row sep=crcr] {%', file=f)
-        print(str(ensemble_size * i) + ' ' + str(
-            iter[3][ensemble_size * i]) + '\\\\', file=f)
-        print(str(ensemble_size *
-                  (i + 1)) + ' ' + str(iter[3][ensemble_size *
-                                               (i + 1) - 1]) + '\\\\', file=f)
-        print('};', file=f)
-    print('\\label{pgfplots:s32}', file=f)
-    f.closed
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 64
-    ensemble_sizes = [1, 8, 16, 32]
-
-    for case_id in [1, 2, 3, 4, 5, 6]:
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_2_ER_2/case_' + str(
-            case_id)
-        try:
-            iter = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                                file_MC_base_dir, True)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            write_tex(n_samples, iter,
-                      'MC_MG_case_' + str(case_id) + '_ER.tex')
-            plt.grid()
-            plt.ylim([100, 400])
-            plt.savefig('MC_MG_case_' + str(case_id) + '_ER.png', dpi=400)
-            np.savetxt('MC_MG_case_' + str(case_id) + '_ER.txt',
-                       np.transpose(iter),
-                       delimiter=' ')
-            print('MC_MG_case_' + str(case_id) + '_ER')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-
-        file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_2_NER_2/case_' + str(
-            case_id)
-        try:
-            iter = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                                file_MC_base_dir, False)
-            plot_iter_all_ensemble_sizes(n_samples, iter, True)
-            write_tex(n_samples, iter,
-                      'MC_MG_case_' + str(case_id) + '_NER.tex')
-            plt.grid()
-            plt.ylim([100, 400])
-            plt.savefig('MC_MG_case_' + str(case_id) + '_NER.png', dpi=400)
-            np.savetxt('MC_MG_case_' + str(case_id) + '_NER.txt',
-                       np.transpose(iter),
-                       delimiter=' ')
-            iter2 = np.transpose(iter)
-            sum_iter = np.zeros((4, 1))
-            for i in range(0, 4):
-                sum_iter[i] = np.sum(iter2[:, i])
-            print(sum_iter / sum_iter[0])
-        except:
-            print(file_MC_base_dir + ' has not all the files')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_MC_speedup.py b/katoptron/CMAME/post_process/plate_MC_speedup.py
deleted file mode 100644
index f60e31c2..00000000
--- a/katoptron/CMAME/post_process/plate_MC_speedup.py
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-from katoptron.speedup import *
-
-
-def speedup_of_one_case(case_id, GS, ensemble_reduction, n_samples, ensemble_sizes, quantiles, querylines, use_waves_timers, use_teuchos_timers, per_iteration):
-    import matplotlib.pyplot as plt
-    if GS:
-        prec = 'GS_'
-    else:
-        prec = 'direct_'
-
-    if ensemble_reduction:
-        case_id = str(case_id)+'_ER'
-    else:
-        case_id = str(case_id)+'_NER'
-
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_' + \
-        prec+'case_' + case_id
-    try:
-        speedup = compute_speedup(n_samples, ensemble_sizes, file_MC_base_dir, querylines,
-                                  per_iteration, quantiles, use_waves_timers, use_teuchos_timers, ensemble_reduction)
-
-        plot_speedup(speedup, ensemble_sizes, np.arange(
-            0, len(querylines)), prec+'case_' + case_id, querylines, per_iteration)
-        plt.savefig(prec+'case_' + case_id + '.png', dpi=400)
-
-        save_speedup(speedup, ensemble_sizes,
-                     querylines, prec+'case_' + case_id)
-
-        R = compute_R(n_samples, ensemble_sizes, file_MC_base_dir,
-                      quantiles, ensemble_reduction)
-        save_R(R, 'R_'+prec+'case_' + case_id)
-    except:
-        print('/Volumes/HD_SONY/CMAME/Plate/katoptron_CMAME_tests_plate_MC_' +
-              prec+'case_' + case_id + '  has not all the files')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    n_samples = 32
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = ['computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x', 'Belos: DGKS[2]: Orthogonalization',
-                  'Belos: DGKS[2]: Ortho (Inner Product)', 'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)', 'total']
-    use_waves_timers = np.array([0, 7], dtype=int)
-    use_teuchos_timers = np.array([1, 2, 3, 4, 5, 6], dtype=int)
-    per_iteration = [False, True, True, False, False, False, False, False]
-
-    for i in range(1, 5):
-        speedup_of_one_case(i, False, True, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers, per_iteration)
-        speedup_of_one_case(i, True, True, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers, per_iteration)
-        speedup_of_one_case(i, False, False, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers, per_iteration)
-        speedup_of_one_case(i, True, False, n_samples, ensemble_sizes, quantiles,
-                            querylines, use_waves_timers, use_teuchos_timers, per_iteration)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_convergence.py b/katoptron/CMAME/post_process/plate_convergence.py
deleted file mode 100644
index 5e76dd27..00000000
--- a/katoptron/CMAME/post_process/plate_convergence.py
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-from katoptron.readers import *
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_2_NER/case_2/1/2/'
-    iter_indices_1, residuals_1 = read_Belos(
-        file_base_dir + 'belos_out.txt', 1)
-
-    file_base_dir = '/Volumes/HD_SONY/CMAME/Final_MT/katoptron_CMAME_tests_plate_MC_MG_all_cases_2_NER/case_2/32/0/'
-    iter_indices_2, residuals_2 = read_Belos(
-        file_base_dir + 'belos_out.txt', 3)
-
-    print(residuals_2.shape)
-
-    plt.figure()
-    plt.plot(iter_indices_1, residuals_1)
-    plt.plot(iter_indices_2, residuals_2[:, 2])
-    plt.yscale('log')
-    plt.grid(True)
-
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_cor_R.py b/katoptron/CMAME/post_process/plate_cor_R.py
deleted file mode 100644
index e2ad9dcc..00000000
--- a/katoptron/CMAME/post_process/plate_cor_R.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-from katoptron.readers import *
-import os
-import fwk
-"""@package docstring
-This file is used to investigate the choice of prec parameters.
-"""
-
-
-def read_timer_all(n_cases, sub_cases, file_MC_base_dir):
-    querylines = ['Belos: Operation Op*x',
-                  'Belos: Operation Prec*x',
-                  'Belos: DGKS[2]: Orthogonalization',
-                  'Belos: DGKS[2]: Ortho (Inner Product)',
-                  'Belos: DGKS[2]: Ortho (Norm)',
-                  'Belos: DGKS[2]: Ortho (Update)',
-                  'Belos: PseudoBlockGmresSolMgr total solve time']
-    timer = np.zeros((n_cases, len(sub_cases), len(querylines)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            timer[i, j, :] = read_teuchos_timers(
-                input_MC_file_dir+'teuchos_timers.txt', querylines)
-    return timer
-
-
-def read_iter_all(n_cases, sub_cases, file_MC_base_dir):
-    iter = np.zeros((n_cases, len(sub_cases)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', 1)
-            iter[i][j] = iter_indices[-1]
-    return iter
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/gaussian/katoptron_CMAME_tests_plate_correlation/'
-    #file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_mean_prec_GS_direct/'
-    sub_cases = ['1', '8']
-
-    N = 200
-    correlation_min_exp = -1
-    correlation_max_exp = np.log10(2)
-
-    correlations = np.logspace(
-        correlation_min_exp, correlation_max_exp, N, endpoint=True)
-
-    iter = read_iter_all(N, sub_cases, file_MC_base_dir)
-    timer = read_timer_all(N, sub_cases, file_MC_base_dir)
-
-    from mpl_toolkits.mplot3d import Axes3D
-    import matplotlib.pyplot as plt
-    from matplotlib import cm
-
-    plt.subplot(211)
-    plt.semilogx(correlations, iter[:, 0])
-    plt.semilogx(correlations, iter[:, 1])
-    plt.xlabel('correlation length')
-    plt.ylabel('iter')
-    plt.subplot(212)
-    plt.semilogx(correlations, np.divide(iter[:, 1], iter[:, 0]))
-    plt.xlabel('correlation length')
-    plt.ylabel('R')
-
-    plt.figure()
-    plt.subplot(211)
-    plt.plot(1./correlations, iter[:, 0])
-    plt.plot(1./correlations, iter[:, 1])
-    plt.xlabel('1./correlation length')
-    plt.ylabel('iter')
-    plt.subplot(212)
-    plt.plot(1./correlations, np.divide(iter[:, 1], iter[:, 0]))
-    plt.xlabel('1./correlation length')
-    plt.ylabel('R')
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_deltas_omegas.py b/katoptron/CMAME/post_process/plate_deltas_omegas.py
deleted file mode 100644
index fb834496..00000000
--- a/katoptron/CMAME/post_process/plate_deltas_omegas.py
+++ /dev/null
@@ -1,207 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-
-def plot_as_bar_plot(x, y, semilog=False):
-    import matplotlib.pyplot as plt
-    plt.figure()
-
-    for i in range(0, len(x)):
-        if i == 0:
-            x_bar = np.array([x[0], 0.5*x[0]+0.5*x[1]])
-            y_bar = np.array([y[0], y[0]])
-        elif i != len(x)-1:
-            x_bar = np.append(x_bar, [x_bar[-1], 0.5*x[i]+0.5*x[i+1]])
-            y_bar = np.append(y_bar, [y[i], y[i]])
-        else:
-            x_bar = np.append(x_bar, [x_bar[-1], x[i]])
-            y_bar = np.append(y_bar, [y[i], y[i]])
-            break
-    if semilog:
-        plt.semilogy(x_bar, y_bar)
-    else:
-        plt.plot(x_bar, y_bar)
-
-
-def analysis_deltas_omegas(n_samples, base_dir, GS, write):
-    import matplotlib.pyplot as plt
-    current_n = 1
-
-    theta = np.zeros((current_n, n_samples))
-    omegas = np.zeros((current_n, n_samples))
-    deltas = np.zeros((current_n, n_samples), dtype=np.complex128)
-
-    if GS:
-        base_dir_omega = base_dir + 'GS/omegas_GS_GS_'
-        base_dir_delta = base_dir + 'GS/deltas_GS_GS_'
-    else:
-        base_dir_omega = base_dir + 'direct/omegas_direct_direct_'
-        base_dir_delta = base_dir + 'direct/deltas_direct_direct_'
-    for i in range(0, n_samples):
-        tmp_delta = np.loadtxt(base_dir_delta+str(i)+'.txt')
-        omegas_c = np.loadtxt(base_dir_omega+str(i)+'.txt')
-
-        n = tmp_delta.shape[0]
-
-        if current_n < n:
-
-            theta_tmp = np.zeros((n, n_samples))
-            omegas_tmp = np.zeros((n, n_samples))
-            deltas_tmp = np.zeros((n, n_samples), dtype=np.complex128)
-
-            theta_tmp[0:current_n, :] = theta
-            omegas_tmp[0:current_n, :] = omegas
-            deltas_tmp[0:current_n, :] = deltas
-
-            theta = theta_tmp
-            omegas = omegas_tmp
-            deltas = deltas_tmp
-
-            current_n = n
-
-        deltas_c = np.zeros((n,), dtype=np.complex128)
-
-        deltas_c.real = tmp_delta[:, 0]
-        deltas_c.imag = tmp_delta[:, 1]
-
-        deltas[0:n, i] = deltas_c
-
-        omegas[0:n, i] = omegas_c
-
-        theta_c = compute_theta(deltas_c)
-
-        theta[0:n, i] = theta_c
-
-        sort_indices = np.argsort(theta_c)
-        theta_c = theta_c[sort_indices]
-        deltas_c = deltas_c[sort_indices]
-        omegas_c = omegas_c[sort_indices]
-
-        N = 720
-        theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta(
-            theta_c, deltas_c, omegas_c, N)
-
-        indices = np.zeros((n,))
-        sort_indices = np.argsort(-omegas_c)
-        indices[sort_indices[0:30]] = 1
-        plot_eigenvalues_on_unit_circle_highlight(deltas_c, indices)
-        plot_polar_function(theta_discrete, deriv_delta, 1.5, 2.5)
-        plot_polar_function(theta_discrete, deriv_delta_omega, 3, 4)
-        plt.title('Sample ' + str(i))
-        if GS:
-            plt.savefig('fig_GS_'+str(i)+'.png')
-        else:
-            plt.savefig('fig_direct_'+str(i)+'.png')
-
-        plot_as_bar_plot(theta_discrete, deriv_delta_omega)
-        plt.title('Sample ' + str(i))
-        if GS:
-            plt.savefig('fig_GS_omegas_'+str(i)+'.png')
-        else:
-            plt.savefig('fig_direct_omegas_'+str(i)+'.png')
-
-        tmp = np.ones((len(theta[0:n, i]), 2))
-        tmp[:, 0] = theta[0:n, i]
-        if write:
-            if GS:
-                np.savetxt('theta_GS_'+str(i)+'.txt', tmp)
-            else:
-                np.savetxt('theta_direct_'+str(i)+'.txt', tmp)
-
-        tmp = np.ones((len(theta_discrete), 2))
-        tmp[:, 0] = theta_discrete
-
-        if write:
-            if GS:
-                np.savetxt('theta_GS_discrete_'+str(i)+'.txt', tmp)
-                np.savetxt('deriv_GS_delta_'+str(i)+'.tex', deriv_delta)
-                np.savetxt('deriv_GS_delta_omega_' +
-                           str(i)+'.tex', deriv_delta_omega)
-            else:
-                np.savetxt('theta_direct_discrete_'+str(i)+'.txt', tmp)
-                np.savetxt('deriv_direct_delta_'+str(i)+'.tex', deriv_delta)
-                np.savetxt('deriv_direct_delta_omega_' +
-                           str(i)+'.tex', deriv_delta_omega)
-
-    if write:
-        if GS:
-            np.savetxt('omegas_GS_all.txt', omegas)
-        else:
-            np.savetxt('omegas_direct_all.txt', omegas)
-
-    ensemble_sizes = np.array([8, 16, 32])
-
-    for i_s in range(0, len(ensemble_sizes)):
-        s = ensemble_sizes[i_s]
-        for i in range(0, n_samples, s):
-            i_sample_min = i
-            i_sample_max = i_sample_min + s
-
-            omegas_s = omegas[:, i_sample_min:i_sample_max].flatten('F')
-            deltas_s = deltas[:, i_sample_min:i_sample_max].flatten('F')
-            theta_s = theta[:, i_sample_min:i_sample_max].flatten('F')
-            index = np.argwhere(np.absolute(deltas_s) >= 0.9)
-
-            omegas_s = omegas_s[index]
-            deltas_s = deltas_s[index]
-            theta_s = theta_s[index]
-
-            sort_indices = np.argsort(theta_s)
-            theta_s = theta_s[sort_indices]
-            deltas_s = deltas_s[sort_indices]
-            omegas_s = omegas_s[sort_indices]
-
-            N = 720
-            theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta(
-                theta_s, deltas_s, omegas_s, N)
-
-            n = len(omegas_s)
-            indices = np.zeros((n,))
-            sort_indices = np.argsort(-omegas_s)
-            indices[sort_indices[0:30]] = 1
-            plot_eigenvalues_on_unit_circle_highlight(deltas_s, indices)
-            plot_polar_function(theta_discrete, deriv_delta, 1.5, 2.5)
-            plot_polar_function(theta_discrete, deriv_delta_omega, 3, 4)
-            plt.title('Ensemble ' + str(int((i // s))) +
-                      ' of ensemble size ' + str(s))
-            if GS:
-                plt.savefig('fig_s_GS_' + str(s) + '_' +
-                            str(int((i // s))) + '.png')
-            else:
-                plt.savefig('fig_s_direct_' + str(s) + '_' +
-                            str(int((i // s))) + '.png')
-            plt.clf()
-            plt.close()
-            plot_as_bar_plot(theta_discrete, deriv_delta_omega)
-            plt.title('Ensemble ' + str(int((i // s))) +
-                      ' of ensemble size ' + str(s))
-            if GS:
-                plt.savefig('fig_s_GS_omegas_' + str(s) + '_' +
-                            str(int((i // s))) + '.png')
-            else:
-                plt.savefig('fig_s_direct_omegas_' + str(s) +
-                            '_' + str(int((i // s))) + '.png')
-            plt.clf()
-            plt.close()
-
-
-def main():
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    n_samples = 32
-
-    base_dir = file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_deltas_omegas_'
-    write = False
-
-    analysis_deltas_omegas(n_samples, base_dir, True, write)
-    analysis_deltas_omegas(n_samples, base_dir, False, write)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_deltas_omegas_direct_analysis.py b/katoptron/CMAME/post_process/plate_deltas_omegas_direct_analysis.py
deleted file mode 100644
index 9bd4fea0..00000000
--- a/katoptron/CMAME/post_process/plate_deltas_omegas_direct_analysis.py
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-
-def plot_as_bar_plot(x, y, semilog=False):
-    import matplotlib.pyplot as plt
-    plt.figure(figsize=(15, 4))
-
-    for i in range(0, len(x)):
-        if i == 0:
-            x_bar = np.array([x[0], 0.5*x[0]+0.5*x[1]])
-            y_bar = np.array([y[0], y[0]])
-        elif i != len(x)-1:
-            x_bar = np.append(x_bar, [x_bar[-1], 0.5*x[i]+0.5*x[i+1]])
-            y_bar = np.append(y_bar, [y[i], y[i]])
-        else:
-            x_bar = np.append(x_bar, [x_bar[-1], x[i]])
-            y_bar = np.append(y_bar, [y[i], y[i]])
-            break
-    if semilog:
-        plt.semilogy(x_bar, y_bar)
-    else:
-        plt.plot(x_bar, y_bar)
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    current_n = 1
-    n_samples = 32
-
-    theta = np.zeros((current_n, n_samples))
-    omegas = np.zeros((current_n, n_samples))
-    deltas = np.zeros((current_n, n_samples), dtype=np.complex128)
-
-    for i in range(0, n_samples):
-        tmp_delta = np.loadtxt(
-            file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_deltas_omegas_direct/deltas_direct_direct_'+str(i)+'.txt')
-        omegas_c = np.loadtxt(
-            file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_deltas_omegas_direct/omegas_direct_direct_'+str(i)+'.txt')
-
-        n = tmp_delta.shape[0]
-
-        if current_n < n:
-
-            theta_tmp = np.zeros((n, n_samples))
-            omegas_tmp = np.zeros((n, n_samples))
-            deltas_tmp = np.zeros((n, n_samples), dtype=np.complex128)
-
-            theta_tmp[0:current_n, :] = theta
-            omegas_tmp[0:current_n, :] = omegas
-            deltas_tmp[0:current_n, :] = deltas
-
-            theta = theta_tmp
-            omegas = omegas_tmp
-            deltas = deltas_tmp
-
-            current_n = n
-
-        deltas_c = np.zeros((n,), dtype=np.complex128)
-
-        deltas_c.real = tmp_delta[:, 0]
-        deltas_c.imag = tmp_delta[:, 1]
-
-        deltas[0:n, i] = deltas_c
-
-        omegas[0:n, i] = omegas_c
-
-        theta_c = compute_theta(deltas_c)
-
-        theta[0:n, i] = theta_c
-
-        sort_indices = np.argsort(theta_c)
-        theta_c = theta_c[sort_indices]
-        deltas_c = deltas_c[sort_indices]
-        omegas_c = omegas_c[sort_indices]
-
-        N = 720
-        theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta(
-            theta_c, deltas_c, omegas_c, N)
-
-        indices = np.zeros((n,))
-        sort_indices = np.argsort(-omegas_c)
-        indices[sort_indices[0:30]] = 1
-        plot_eigenvalues_on_unit_circle_highlight(deltas_c, indices)
-        plot_polar_function(theta_discrete, deriv_delta, 1.5, 2.5)
-        plot_polar_function(theta_discrete, deriv_delta_omega, 3, 4)
-        plt.title('Sample ' + str(i))
-        plt.savefig('fig_'+str(i)+'.png')
-
-        plot_as_bar_plot(theta_discrete, deriv_delta_omega)
-        plt.title('Sample ' + str(i))
-        plt.savefig('fig_omegas_'+str(i)+'.png')
-
-        tmp = np.ones((len(theta[0:n, i]), 2))
-        tmp[:, 0] = theta[0:n, i]
-        np.savetxt('theta_'+str(i)+'.txt', tmp)
-
-        tmp = np.ones((len(theta_discrete), 2))
-        tmp[:, 0] = theta_discrete
-        np.savetxt('theta_discrete_'+str(i)+'.txt', tmp)
-        np.savetxt('deriv_delta_'+str(i)+'.tex', deriv_delta)
-        np.savetxt('deriv_delta_omega_'+str(i)+'.tex', deriv_delta_omega)
-
-    np.savetxt('omegas_all.txt', omegas)
-
-    ensemble_sizes = np.array([8, 16, 32])
-
-    for i_s in range(0, len(ensemble_sizes)):
-        s = ensemble_sizes[i_s]
-        for i in range(0, n_samples, s):
-            i_sample_min = i
-            i_sample_max = i_sample_min + s
-
-            omegas_s = omegas[:, i_sample_min:i_sample_max].flatten('F')
-            deltas_s = deltas[:, i_sample_min:i_sample_max].flatten('F')
-            theta_s = theta[:, i_sample_min:i_sample_max].flatten('F')
-            index = np.argwhere(np.absolute(deltas_s) >= 0.9)
-
-            omegas_s = omegas_s[index]
-            deltas_s = deltas_s[index]
-            theta_s = theta_s[index]
-
-            sort_indices = np.argsort(theta_s)
-            theta_s = theta_s[sort_indices]
-            deltas_s = deltas_s[sort_indices]
-            omegas_s = omegas_s[sort_indices]
-
-            N = 720
-            theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta(
-                theta_s, deltas_s, omegas_s, N)
-
-            n = len(omegas_s)
-            indices = np.zeros((n,))
-            sort_indices = np.argsort(-omegas_s)
-            indices[sort_indices[0:30]] = 1
-            plot_eigenvalues_on_unit_circle_highlight(deltas_s, indices)
-            plot_polar_function(theta_discrete, deriv_delta, 1.5, 2.5)
-            plot_polar_function(theta_discrete, deriv_delta_omega, 3, 4)
-            plt.title('Ensemble ' + str(int((i // s))) +
-                      ' of ensemble size ' + str(s))
-
-            plt.savefig('fig_s_' + str(s) + '_' +
-                        str(int((i // s))) + '.png')
-            plt.clf()
-            plt.close()
-            plot_as_bar_plot(theta_discrete, deriv_delta_omega)
-            plt.title('Ensemble ' + str(int((i // s))) +
-                      ' of ensemble size ' + str(s))
-            plt.savefig('fig_s_omegas_' + str(s) + '_' +
-                        str(int((i // s))) + '.png')
-            plt.clf()
-            plt.close()
-    if display:
-        plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_deltas_omegas_gs_analysis.py b/katoptron/CMAME/post_process/plate_deltas_omegas_gs_analysis.py
deleted file mode 100644
index 1a9609a2..00000000
--- a/katoptron/CMAME/post_process/plate_deltas_omegas_gs_analysis.py
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-
-def plot_as_bar_plot(x, y, semilog=False):
-    import matplotlib.pyplot as plt
-    plt.figure()
-
-    for i in range(0, len(x)):
-        if i == 0:
-            x_bar = np.array([x[0], 0.5*x[0]+0.5*x[1]])
-            y_bar = np.array([y[0], y[0]])
-        elif i != len(x)-1:
-            x_bar = np.append(x_bar, [x_bar[-1], 0.5*x[i]+0.5*x[i+1]])
-            y_bar = np.append(y_bar, [y[i], y[i]])
-        else:
-            x_bar = np.append(x_bar, [x_bar[-1], x[i]])
-            y_bar = np.append(y_bar, [y[i], y[i]])
-            break
-    if semilog:
-        plt.semilogy(x_bar, y_bar)
-    else:
-        plt.plot(x_bar, y_bar)
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = True
-
-    current_n = 1
-    n_samples = 32
-
-    theta = np.zeros((current_n, n_samples))
-    omegas = np.zeros((current_n, n_samples))
-    deltas = np.zeros((current_n, n_samples), dtype=np.complex128)
-
-    for i in range(0, n_samples):
-        tmp_delta = np.loadtxt(
-            file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_deltas_omegas_GS/deltas_GS_GS_'+str(i)+'.txt')
-        omegas_c = np.loadtxt(
-            file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_deltas_omegas_GS/omegas_GS_GS_'+str(i)+'.txt')
-
-        n = tmp_delta.shape[0]
-
-        deltas_c = np.zeros((n,), dtype=np.complex128)
-
-        deltas_c.real = tmp_delta[:, 0]
-        deltas_c.imag = tmp_delta[:, 1]
-
-        index = np.argwhere(np.absolute(deltas_c) >= 0.95)
-        n = len(index)
-
-        deltas_c = deltas_c[index].reshape((n,))
-        omegas_c = omegas_c[index].reshape((n,))
-
-        if current_n < n:
-
-            theta_tmp = np.zeros((n, n_samples))
-            omegas_tmp = np.zeros((n, n_samples))
-            deltas_tmp = np.zeros((n, n_samples), dtype=np.complex128)
-
-            theta_tmp[0:current_n, :] = theta
-            omegas_tmp[0:current_n, :] = omegas
-            deltas_tmp[0:current_n, :] = deltas
-
-            theta = theta_tmp
-            omegas = omegas_tmp
-            deltas = deltas_tmp
-
-            current_n = n
-
-        deltas[0:n, i] = deltas_c
-        omegas[0:n, i] = omegas_c
-
-        theta_c = compute_theta(deltas_c)
-
-        theta[0:n, i] = theta_c
-
-        N = 720
-        theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta(
-            theta_c, deltas_c, omegas_c, N)
-
-        # plot_as_bar_plot(theta_discrete,deriv_delta_omega)
-
-        indices = np.zeros((n,))
-        sort_indices = np.argsort(-omegas_c)
-        indices[sort_indices[0:30]] = 1
-        # plot_eigenvalues_on_unit_circle_highlight(deltas_c,indices)
-        # plot_polar_function(theta_discrete,deriv_delta,1.5,2.5)
-        # plot_polar_function(theta_discrete,deriv_delta_omega,3,4)
-        #plt.title('Sample ' + str(i))
-        # plt.savefig('fig_'+str(i)+'.png')
-
-        #sort_indices = np.argsort(theta_c)
-        # plt.figure()
-        #plt.bar(theta_c[sort_indices],omegas_c[sort_indices], width=0.1, alpha=0.6, align="center")
-        # plt.plot(theta_c[sort_indices],omegas_c[sort_indices])
-
-        #tmp = np.ones((len(theta[0:n,i]),2))
-        #tmp[:,0] = theta[0:n,i]
-        # np.savetxt('theta_'+str(i)+'.txt',tmp)
-
-        #tmp = np.ones((len(theta_discrete),2))
-        #tmp[:,0] = theta_discrete
-        # np.savetxt('theta_discrete_'+str(i)+'.txt',tmp)
-        # np.savetxt('deriv_delta_'+str(i)+'.tex',deriv_delta)
-        # np.savetxt('deriv_delta_omega_'+str(i)+'.tex',deriv_delta_omega)
-
-    # np.savetxt('omegas_all.txt',omegas)
-
-    theta = theta.flatten('F')
-    deltas = deltas.flatten('F')
-    omegas = omegas.flatten('F')
-
-    N = 720
-    theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta(
-        theta, deltas, omegas, N)
-    plot_as_bar_plot(theta_discrete, deriv_delta_omega)
-    #sort_indices = np.argsort(theta)
-    # plt.figure()
-    #plt.bar(theta[sort_indices],omegas[sort_indices], width=0.1, alpha=0.6, align="center")
-
-    '''
-    ensemble_sizes = np.array([8,16,32])
-
-    for i_s in range(0,len(ensemble_sizes)):
-      s = ensemble_sizes[i_s]
-      for i in range(0,n_samples,s):
-        i_sample_min = i
-        i_sample_max = i_sample_min + s
-        
-        omegas_s = omegas[:,i_sample_min:i_sample_max].flatten('F')
-        deltas_s = deltas[:,i_sample_min:i_sample_max].flatten('F')
-        theta_s = theta[:,i_sample_min:i_sample_max].flatten('F')
-        index = np.argwhere(np.absolute(deltas_s)>=0.9)
-        
-        omegas_s = omegas_s[index]
-        deltas_s = deltas_s[index]
-        theta_s = theta_s[index]
-        
-        N = 1000
-        theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta(theta_s,deltas_s,omegas_s,N)
-
-        n = len(omegas_s)
-        indices = np.zeros((n,))
-        sort_indices = np.argsort(-omegas_s)
-        indices[sort_indices[0:30]] = 1
-        plot_eigenvalues_on_unit_circle_highlight(deltas_s,indices)
-        plot_polar_function(theta_discrete,deriv_delta,1.5,2.5)
-        plot_polar_function(theta_discrete,deriv_delta_omega,3,4)
-        plt.title('Ensemble ' + str(int(i/s)) + ' of ensemble size ' + str(s))
-        
-        plt.savefig('fig_s_'+ str(s) +'_' + str(int(i/s)) + '.png')
-    '''
-    if display:
-        plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_gamma.py b/katoptron/CMAME/post_process/plate_gamma.py
deleted file mode 100644
index eaaa22a8..00000000
--- a/katoptron/CMAME/post_process/plate_gamma.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-import os
-import fwk
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    input_file_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_vd_GS_3_3/1/'
-
-    for i in range(0, 8):
-        filename_Q = input_file_dir + str(i) + '/A_mm_after_bc.txt'
-        filename_GT = input_file_dir + str(i) + '/B_mm.txt'
-
-        Q = read_mm(filename_Q)
-        #Q = get_symmetrical_part(Q)
-        GT = read_mm(filename_GT)
-
-        norm_Q = sparse_matrix_2_norm(Q)
-        norm_GT = sparse_matrix_2_norm(GT)
-
-        print((norm_Q / norm_GT))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_gamma_R.py b/katoptron/CMAME/post_process/plate_gamma_R.py
deleted file mode 100644
index 3902d82d..00000000
--- a/katoptron/CMAME/post_process/plate_gamma_R.py
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-from katoptron.readers import *
-import os
-import fwk
-"""@package docstring
-This file is used to investigate the choice of prec parameters.
-"""
-
-
-def read_timer_all(n_cases, sub_cases, file_MC_base_dir):
-    querylines = ['Belos: Operation Op*x',
-                  'Belos: Operation Prec*x',
-                  'Belos: DGKS[2]: Orthogonalization',
-                  'Belos: DGKS[2]: Ortho (Inner Product)',
-                  'Belos: DGKS[2]: Ortho (Norm)',
-                  'Belos: DGKS[2]: Ortho (Update)',
-                  'Belos: PseudoBlockGmresSolMgr total solve time']
-    timer = np.zeros((n_cases, len(sub_cases), len(querylines)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            timer[i, j, :] = read_teuchos_timers(
-                input_MC_file_dir+'teuchos_timers.txt', querylines)
-    return timer
-
-
-def read_iter_all(n_cases, sub_cases, file_MC_base_dir):
-    iter = np.zeros((n_cases, len(sub_cases)))
-    for i in range(0, n_cases):
-        file_MC_base_dir_2 = file_MC_base_dir + '/' + str(i)+'/'
-        for j in range(0, len(sub_cases)):
-            input_MC_file_dir = file_MC_base_dir_2 + str(sub_cases[j])+'/'
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', 1)
-            iter[i][j] = iter_indices[-1]
-    return iter
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    file_MC_base_dir = '/Volumes/HD_SONY/CMAME/Plate/gaussian/katoptron_CMAME_tests_plate_mean_gamma/'
-    #file_dir + '/../../../workspace/katoptron_CMAME_tests_plate_mean_prec_GS_direct/'
-    sub_cases = ['1', '8']
-
-    N = 200
-    gamma_min_exp = -2
-    gamma_max_exp = 10
-
-    gammas = np.logspace(gamma_min_exp, gamma_max_exp, N, endpoint=True)
-
-    iter = read_iter_all(N, sub_cases, file_MC_base_dir)
-    timer = read_timer_all(N, sub_cases, file_MC_base_dir)
-
-    from mpl_toolkits.mplot3d import Axes3D
-    import matplotlib.pyplot as plt
-    from matplotlib import cm
-
-    plt.subplot(211)
-    plt.semilogx(gammas, iter[:, 0])
-    plt.semilogx(gammas, iter[:, 1])
-    plt.semilogx([4368992., 4368992.], [200, 1000], '--k')
-    plt.xlabel('gamma')
-    plt.ylabel('iter')
-    plt.subplot(212)
-    plt.semilogx(gammas, np.divide(iter[:, 1], iter[:, 0]))
-    plt.xlabel('gamma')
-    plt.ylabel('R')
-    plt.semilogx([4368992., 4368992.], [1, 5], '--k')
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_mean.py b/katoptron/CMAME/post_process/plate_mean.py
deleted file mode 100644
index 545e96f8..00000000
--- a/katoptron/CMAME/post_process/plate_mean.py
+++ /dev/null
@@ -1,196 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-import os
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.cutter as vtkC
-
-
-def Kirsch_equations(x, y, center_x, center_y, a, sigma_inf):
-
-    centered_x = x-center_x
-    centered_y = y-center_y
-
-    r = np.abs(centered_x+centered_y*1.0j)
-    theta = np.angle(centered_x+centered_y*1.0j) - (np.pi / 2)
-
-    half_sigma_inf = ((sigma_inf / 2))
-
-    ar = (a / r)
-    ar_p_2 = np.power(ar, 2)
-    ar_p_4 = np.power(ar, 4)
-
-    cos2theta = np.cos(2*theta)
-    sin2theta = np.sin(2*theta)
-
-    sigma_rr = half_sigma_inf*(1-ar_p_2)+half_sigma_inf * \
-        (1-4*ar_p_2+3*ar_p_4)*cos2theta
-    sigma_thetatheta = half_sigma_inf * \
-        (1+ar_p_2)-half_sigma_inf*(1+3*ar_p_4)*cos2theta
-    tau_rtheta = -half_sigma_inf*(1+2*ar_p_2-3*ar_p_4)*sin2theta
-
-    VM = np.sqrt(np.square(sigma_rr)+np.square(sigma_thetatheta) -
-                 sigma_rr*sigma_thetatheta+3*np.square(tau_rtheta))
-
-    return VM
-
-
-def cut_plate(mshName):
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    cutter = vtkC.Cutter(reader.reader.GetOutputPort())
-    c_output = cutter.cut(1, [0., 0., 0.5], [0., 0., 1.], tag_name='volume_id')
-    pts, tri, vals = cutter.extract(
-        c_output, 3, ['u', 'x', 'y', 'z'], atPoint=True)
-    pts_2, tri_2, vals_2 = cutter.extract(
-        c_output, 3, ['G', 'von Mises'], atPoint=False)
-    vals.update(vals_2)
-
-    return pts, tri, vals
-
-
-def extract_quad_msh(mshName):
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    rdata = reader.reader.GetOutput()
-
-    _pts = rdata.GetPoints()
-    pts = np.zeros((_pts.GetNumberOfPoints(), 2))
-    pts_indices = np.zeros((_pts.GetNumberOfPoints(),), dtype=int)
-    for i in range(0, pts.shape[0]):
-        if _pts.GetPoint(i)[2] <= 0.01:
-            for j in range(0, 2):
-                pts[i][j] = _pts.GetPoint(i)[j]
-            pts_indices[i] = 1
-    n_elems = rdata.GetNumberOfCells()
-    quad = []
-    for i in range(0, n_elems):
-        elem = rdata.GetCell(i)
-        for j in range(0, 6):
-            face = elem.GetFace(j)
-            points_id = np.zeros((4,), dtype=int)
-            good_face = True
-            for k in range(0, 4):
-                points_id[k] = face.GetPointId(k)
-                if pts_indices[points_id[k]] != 1:
-                    good_face = False
-                    break
-            if good_face:
-                if len(quad) == 0:
-                    quad = points_id.reshape((1, 4))
-                else:
-                    quad = np.append(quad, points_id.reshape((1, 4)), axis=0)
-    return pts, quad
-
-
-def plot_2D_cut_values_at_node(x, y, tri, value, v_min, v_max, n_levels=16):
-    import matplotlib.pyplot as plt
-    value = value.reshape((len(x),))
-    levels = np.linspace(v_min, v_max, n_levels)
-    print(levels)
-
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(x, y, tri, value, levels, linestyles='-',
-                   colors='black', linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, value, levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0,
-                        hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-
-def plot_2D_cut_values_at_elem(x, y, tri_1, value, v_min, v_max, n_levels=16, shading=False):
-    import matplotlib.pyplot as plt
-
-    value = value.reshape((tri_1.shape[0],))
-
-    levels = np.linspace(v_min, v_max, n_levels)
-    print(levels)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    if shading:
-        plt.tripcolor(x, y, tri_1, value, shading='gouraud')
-    else:
-        plt.tripcolor(x, y, tri_1, value, levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0,
-                        hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-
-def plot_2D_mesh(pts, quad):
-    import matplotlib.pyplot as plt
-    fig = plt.figure(figsize=(8, 8))
-    f = open('mesh_2.tex', 'w')
-    print('\begin{tikzpicture}', file=f)
-    for i in range(0, quad.shape[0]):
-        x = np.zeros((quad.shape[1]+1,))
-        y = np.zeros((quad.shape[1]+1,))
-        for j in range(0, quad.shape[1]):
-            x[j] = pts[quad[i, j], 0]
-            y[j] = pts[quad[i, j], 1]
-        x[-1] = pts[quad[i, 0], 0]
-        y[-1] = pts[quad[i, 0], 1]
-        string_1 = '\draw[thick] '
-        for j in range(0, quad.shape[1]+1):
-            string_1 = string_1 + '(' + str(x[j]) + ',' + str(y[j]) + ')'
-            if j == quad.shape[1]:
-                string_1 = string_1 + ';'
-            else:
-                string_1 = string_1 + '--'
-
-        print(string_1, file=f)
-        plt.plot(x, y, 'black')
-    plt.gca().set_aspect('equal')
-
-    print('\end{tikzpicture}', file=f)
-    f.closed
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    input_file_dir = '/Users/kimliegeois/Desktop/katoptron_CMAME_tests_plate_MC_MG_all_cases_2/case_1/8/0/'
-
-    mshName = input_file_dir+'plate_fused_ast1_s0_0'
-
-    pts, tri, vals = cut_plate(mshName)
-    pts_2, quad = extract_quad_msh(mshName)
-
-    plot_2D_mesh(pts_2, quad)
-
-    x = pts[:, 0]
-    y = pts[:, 1]
-
-    VM_theory = Kirsch_equations(x, y, 5, 5, 2, 700)
-    plot_2D_cut_values_at_node(x, y, tri, VM_theory, 0, 3100)
-    plt.savefig("mean_VM_theory.pdf", transparent=True,
-                bbox_inches='tight', pad_inches=-0.05)
-
-    # plot_2D_cut_values_at_node(x,y,tri,vals['u'])
-    plot_2D_cut_values_at_node(x, y, tri, vals['G'], -0.07967112, 0.15190813)
-    plt.savefig("G_0.pdf", transparent=True,
-                bbox_inches='tight', pad_inches=-0.05)
-
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_mean_GS.py b/katoptron/CMAME/post_process/plate_mean_GS.py
deleted file mode 100644
index 0fefac3e..00000000
--- a/katoptron/CMAME/post_process/plate_mean_GS.py
+++ /dev/null
@@ -1,292 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-import os
-import fwk
-"""@package docstring
-This file is used to investigate the convergence of the SOR (Gauss-Seidel with damping factor in [0,2]).
-"""
-
-Verbose = False
-
-algo_inverse = 4
-
-
-def save_data(name, omegas, rhos):
-    tmp = np.zeros((len(omegas), 2))
-    tmp[:, 0] = omegas
-    tmp[:, 1] = rhos
-    np.savetxt(name, tmp)
-
-
-def Inv_triangular_matrix_1(A):
-    """
-    This function computes the inverse of a triangular matrix based on
-    https://math.stackexchange.com/questions/1003801/inverse-of-an-invertible-upper-triangular-matrix-of-order-3
-
-    This one is slow but precise!
-    """
-    from scipy.sparse import eye
-    n = A.shape[0]
-    invA = eye(n)
-    tmp = A
-    for i in range(1, n - 1):
-        invA = invA + tmp
-        tmp = tmp * A
-    return invA
-
-
-def Inv_triangular_matrix_2(A):
-    """
-    This function computes the inverse of a triangular matrix based on
-    forward substitution
-
-    This one is fast but not precise!
-    """
-    from scipy.sparse import eye
-    from scipy.sparse import csr_matrix
-    n = A.shape[0]
-    invA = np.zeros((n, n))
-    tmpA = A.todense()
-    for i in range(0, n):
-        invA[i, :] = invA[i, :] - A[i, 0:(i - 1)].dot(invA[0:(i - 1), :])
-        invA[i, i] = 1.
-    return csr_matrix(invA)
-
-
-def Inv_triangular_matrix_3(A, B):
-    from scipy.sparse.linalg import spsolve_triangular
-    n = A.shape[0]
-    X = np.zeros((n, n))
-
-    for i in range(1, n):
-        #X[:,[i]] = spsolve_triangular(A, B[:,i])
-        tmp = A.tocsr()[0:i, :].tocsc()[:, 0:i]
-        X[0:i, [i]] = spsolve_triangular(tmp, B[0:i, i])
-    return X
-
-
-def Inv_triangular_matrix_4(A):
-    """
-    This function computes the inverse of a triangular matrix based on
-    a recursive approach
-
-    This one is fast and precise!
-    """
-    from scipy.sparse import csr_matrix
-    from scipy.sparse import eye
-    n = A.shape[0]
-
-    n_max = 100
-
-    if n < n_max:
-        return Inv_triangular_matrix_1(eye(n) - A).todense()
-    else:
-        n1 = n // 2
-        invA = np.zeros((n, n))
-        invA[0:n1, 0:n1] = Inv_triangular_matrix_4(A[0:n1, 0:n1])
-        invA[n1:n, n1:n] = Inv_triangular_matrix_4(A[n1:n, n1:n])
-        tmp = invA[n1:n, n1:n] * A[n1:n, 0:n1]
-        invA[n1:n, 0:n1] = -tmp.dot(invA[0:n1, 0:n1])
-        return invA
-
-
-def M_Jac(A):
-    """
-    This function returns the iterative matrix of the Jacobi approach applied on A
-    If this matrix has a spectral radius strictly smaller than 1, the optimal 
-    damping parameters of the SOR applied on A can be deduced analytically.
-    """
-    from scipy.sparse import diags
-    from scipy.sparse import eye
-    invD = diags(1. / A.diagonal(), 0)
-    n = A.shape[0]
-    return eye(n) - invD * A
-
-
-def M_SOR(A, omega):
-    """
-    This function returns the iterative matrix of the SOR approach applied on A.
-    """
-    from scipy.sparse import tril
-    from scipy.sparse import triu
-    from scipy.sparse import eye
-    from scipy.sparse import diags
-    from scipy.sparse.linalg import inv
-    from scipy.sparse.linalg import spsolve_triangular
-
-    E = -tril(A, -1)
-    F = -triu(A, 1)
-    invD = diags(1. / A.diagonal(), 0)
-
-    L = invD * E
-    U = invD * F
-    I = eye(A.shape[0])
-
-    if algo_inverse == 1:
-        x = Inv_triangular_matrix_1(omega * L) * ((1. - omega) * I + omega * U)
-    elif algo_inverse == 2:
-        x = Inv_triangular_matrix_2(I - omega * L) * (
-            (1. - omega) * I + omega * U)
-    elif algo_inverse == 3:
-        x = Inv_triangular_matrix_3(I - omega * L,
-                                    ((1. - omega) * I + omega * U).todense())
-    elif algo_inverse == 4:
-        x = Inv_triangular_matrix_4(I - omega * L) * (
-            (1. - omega) * I + omega * U)
-    return x
-
-
-def spectral_radius_analysis(A,
-                             N,
-                             timers,
-                             tmp_name,
-                             omega_min=0.,
-                             omega_max=2.):
-    """
-    This function computes the spectral radii.
-    """
-    timers['Compute M_Jac'].start()
-    m_Jac = M_Jac(A)
-    timers['Compute M_Jac'].stop()
-    timers['Compute rho_Jac'].start()
-    rho_Jac = spectral_radius(m_Jac)
-    timers['Compute rho_Jac'].stop()
-
-    if Verbose:
-        if rho_Jac >= 1.:
-            print('The Jacobi approach does not converge on this matrix as rho(M_Jac) = ' + str(
-                rho_Jac))
-        else:
-            print('The Jacobi approach does converge on this matrix as rho(M_Jac) = ' + str(
-                rho_Jac))
-
-    omegas = np.linspace(omega_min, omega_max, N)
-    rho_SOR = np.ones(omegas.shape)
-
-    for i in range(0, N):
-        if 0. < omegas[i] and omegas[i] < 2.:
-            timers['Compute M_SOR'].start()
-            m_SOR = M_SOR(A, omegas[i])
-            timers['Compute M_SOR'].stop()
-            timers['Compute rho_SOR'].start()
-            try:
-                rho_SOR[i] = spectral_radius(m_SOR)
-            except:
-                rho_SOR[i:(N + 1)] = 1.
-                timers['Compute M_SOR'].stop()
-                break
-            timers['Compute M_SOR'].stop()
-
-            if Verbose:
-                if rho_SOR[i] >= 1.:
-                    print('The SOR approach does not converge on this matrix as rho(M_SOR) = ' + str(
-                        rho_SOR[i]) + ' with omega = ' + str(omegas[i]))
-                else:
-                    print('The SOR approach does converge on this matrix as rho(M_SOR) = ' + str(
-                        rho_SOR[i]) + ' with omega = ' + str(omegas[i]))
-            print(str(((100. * i) // N)) +
-                  ' % of the omegas are evaluated ')
-            save_data(tmp_name, omegas, rho_SOR)
-            if Verbose:
-                print(timers)
-
-    return rho_Jac, omegas, rho_SOR
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    timers = fwk.Timers()
-
-    timers['Read data'].start()
-    input_file_dir = file_dir + '/../../../workspace/katoptron_CMAME_tests_plate/'
-    filename_K = input_file_dir + 'A_mm_after_bc.txt'
-    filename_GT = input_file_dir + 'B_mm.txt'
-    filename_rhs = input_file_dir + 'b_mm_after_bc.txt'
-
-    K = read_mm(filename_K)
-    K = get_symmetrical_part(K)
-    GT = read_mm(filename_GT)
-    G = GT.transpose()
-    timers['Read data'].stop()
-    timers['Compute and apply gamma'].start()
-    norm_K = sparse_matrix_2_norm(K)
-    norm_GT = sparse_matrix_2_norm(GT)
-
-    b = read_mm(filename_rhs, is_sparse=False)
-    b0 = b[0:K.shape[0]]
-
-    gamma = (norm_K / norm_GT)
-
-    Q = K + gamma * G * GT
-    timers['Compute and apply gamma'].stop()
-
-    from numpy import linalg as LA
-
-    n = 20
-    gs = Gauss_Seidel(K, n=n, damping=1.)
-    xn, norm_res_K = gs.dot_with_norm(b0)
-    gs = Gauss_Seidel(K, n=n, damping=0.8)
-    xn, norm_res_Q = gs.dot_with_norm(b0)
-
-    n_omegas = 50
-    omegas = np.linspace(0., 2., n_omegas)
-    res_omegas = np.zeros((n_omegas, n+2))
-    res_omegas[:, 0] = omegas
-    import matplotlib.pyplot as plt
-    plt.figure()
-    for i in range(0, n_omegas):
-        gs = Gauss_Seidel(K, n=n, damping=omegas[i])
-        xn, norm_res = gs.dot_with_norm(b0)
-        tmp = (norm_res / norm_res[0])
-        res_omegas[i, 1:n+2] = np.reshape(tmp[:], (n+1,))
-        plt.plot(tmp)
-    plt.grid()
-
-    plt.figure()
-    plt.plot(omegas, res_omegas[:, 1])
-    plt.plot(omegas, res_omegas[:, 2])
-    plt.plot(omegas, res_omegas[:, 3])
-    print(res_omegas)
-    for i in range(1, n+1):
-        j = np.argmin(res_omegas[:, i+1])
-        print(omegas[j])
-    np.savetxt('res_omegas.txt', res_omegas)
-
-    plt.show()
-
-    print(timers)
-
-    '''
-    R = approx_Schur_complement(Q, G, GT)
-
-    N = 5
-
-    timers_R = fwk.Timers()
-    timers_Q = fwk.Timers()
-    rho_Jac_R, omegas_R, rho_SOR_R = spectral_radius_analysis(R,
-                                                              N,
-                                                              timers_R,
-                                                              'tmp_SOR_R.out',
-                                                              omega_min=0.,
-                                                              omega_max=1.)
-    save_data('SOR_R.out', omegas_R, rho_SOR_R)
-    print timers_R
-    rho_Jac_Q, omegas_Q, rho_SOR_Q = spectral_radius_analysis(Q,
-                                                              N,
-                                                              timers_Q,
-                                                              'tmp_SOR_Q.out',
-                                                              omega_min=0.8,
-                                                              omega_max=2.)
-    save_data('SOR_Q.out', omegas_Q, rho_SOR_Q)
-    np.savetxt('Jac.out', (rho_Jac_R, rho_Jac_Q))
-    print timers_Q
-    '''
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_mean_GS_omega.py b/katoptron/CMAME/post_process/plate_mean_GS_omega.py
deleted file mode 100644
index b4df656e..00000000
--- a/katoptron/CMAME/post_process/plate_mean_GS_omega.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-from katoptron.eigenvalues import *
-from katoptron.readers import *
-import os
-import fwk
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    input_file_dir = file_dir + '/../../../workspace/katoptron_CMAME_tests_plate/'
-
-    mshName = input_file_dir+'plate_fused_ast1_s0_0'
-
-    filename_Q = input_file_dir + 'ApCTC_mm.txt'  # 'A_mm_after_bc.txt' #
-    filename_GT = input_file_dir + 'B_mm.txt'
-
-    Q = read_mm(filename_Q)
-    Q = get_symmetrical_part(Q)
-    GT = read_mm(filename_GT)
-    G = GT.transpose()
-
-    R = approx_Schur_complement(Q, G, GT)
-
-    if diagonal_dominance(R):
-        print('R is diagonally dominant')
-    else:
-        print('R is not diagonally dominant')
-    if diagonal_dominance(Q):
-        print('Q is diagonally dominant')
-    else:
-        print('Q is not diagonally dominant')
-
-    if is_SPD(R):
-        print('R is SPD')
-    else:
-        print('R is not SPD')
-
-    if is_SPD(Q):
-        print('Q is SPD')
-    else:
-        print('Q is not SPD')
-    #Qjac = jacobi_iteration_matrix(Q)
-    #Rjac = jacobi_iteration_matrix(R)
-
-    #mu_Q = np.absolute(spectral_radius(Qjac))
-    #mu_R = np.absolute(spectral_radius(Rjac))
-
-    #print mu_Q
-    #print mu_R
-
-    #print 2/(1+np.sqrt(1-mu_Q**2))
-    #print 2/(1+np.sqrt(1-mu_R**2))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/post_process/plate_mean_convergence.py b/katoptron/CMAME/post_process/plate_mean_convergence.py
deleted file mode 100644
index 7ba726c6..00000000
--- a/katoptron/CMAME/post_process/plate_mean_convergence.py
+++ /dev/null
@@ -1,223 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.eigenvalues import *
-import os
-import fwk
-
-import vtk
-import tboxVtk
-import tboxVtk.reader as vtkR
-import tboxVtk.lineExtractor as vtkC
-
-
-def Kirsch_equations(x, y, center_x, center_y, a, sigma_inf):
-
-    centered_x = x-center_x
-    centered_y = y-center_y
-
-    r = np.abs(centered_x+centered_y*1.0j)
-    theta = np.angle(centered_x+centered_y*1.0j) - (np.pi / 2)
-
-    half_sigma_inf = ((sigma_inf / 2))
-
-    ar = (a / r)
-    ar_p_2 = np.power(ar, 2)
-    ar_p_4 = np.power(ar, 4)
-
-    cos2theta = np.cos(2*theta)
-    sin2theta = np.sin(2*theta)
-
-    sigma_rr = half_sigma_inf*(1-ar_p_2)+half_sigma_inf * \
-        (1-4*ar_p_2+3*ar_p_4)*cos2theta
-    sigma_thetatheta = half_sigma_inf * \
-        (1+ar_p_2)-half_sigma_inf*(1+3*ar_p_4)*cos2theta
-    tau_rtheta = -half_sigma_inf*(1+2*ar_p_2-3*ar_p_4)*sin2theta
-
-    VM = np.sqrt(np.square(sigma_rr)+np.square(sigma_thetatheta) -
-                 sigma_rr*sigma_thetatheta+3*np.square(tau_rtheta))
-
-    return VM
-
-
-def cut_plate(mshName):
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    cutter = vtkC.Cutter(reader.reader.GetOutputPort())
-    c_output = cutter.cut(1, [0., 0., 0.5], [0., 0., 1.], tag_name='volume_id')
-    pts, tri, vals = cutter.extract(
-        c_output, 3, ['u', 'x', 'y', 'z'], atPoint=True)
-    pts_2, tri_2, vals_2 = cutter.extract(
-        c_output, 3, ['G', 'von Mises'], atPoint=False)
-    vals.update(vals_2)
-
-    return pts, tri, vals
-
-
-def cut_line(mshName, P1, P2):
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    cutter = vtkC.LineExtractor(reader.reader.GetOutputPort())
-    c_output = cutter.cut(1, P1, P2, tag_name='volume_id')
-    pts, tri, vals = cutter.extract(
-        c_output, ['u', 'x', 'y', 'z'], atPoint=True)
-    pts_2, tri_2, vals_2 = cutter.extract(
-        c_output, ['G', 'von Mises'], atPoint=False)
-    vals.update(vals_2)
-
-    return pts, tri, vals
-
-
-def extract_quad_msh(mshName):
-    reader = vtkR.Reader()
-    reader.open(mshName)
-    rdata = reader.reader.GetOutput()
-
-    _pts = rdata.GetPoints()
-    pts = np.zeros((_pts.GetNumberOfPoints(), 2))
-    pts_indices = np.zeros((_pts.GetNumberOfPoints(),), dtype=int)
-    for i in range(0, pts.shape[0]):
-        if _pts.GetPoint(i)[2] <= 0.01:
-            for j in range(0, 2):
-                pts[i][j] = _pts.GetPoint(i)[j]
-            pts_indices[i] = 1
-    n_elems = rdata.GetNumberOfCells()
-    quad = []
-    for i in range(0, n_elems):
-        elem = rdata.GetCell(i)
-        for j in range(0, 6):
-            face = elem.GetFace(j)
-            points_id = np.zeros((4,), dtype=int)
-            good_face = True
-            for k in range(0, 4):
-                points_id[k] = face.GetPointId(k)
-                if pts_indices[points_id[k]] != 1:
-                    good_face = False
-                    break
-            if good_face:
-                if len(quad) == 0:
-                    quad = points_id.reshape((1, 4))
-                else:
-                    quad = np.append(quad, points_id.reshape((1, 4)), axis=0)
-    return pts, quad
-
-
-def plot_2D_cut_values_at_node(x, y, tri, value, v_min, v_max, n_levels=16):
-    import matplotlib.pyplot as plt
-    value = value.reshape((len(x),))
-    levels = np.linspace(v_min, v_max, n_levels)
-    print(levels)
-
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(x, y, tri, value, levels, linestyles='-',
-                   colors='black', linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, value, levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0,
-                        hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-
-def plot_2D_cut_values_at_elem(x, y, tri_1, value, v_min, v_max, n_levels=16, shading=False):
-    import matplotlib.pyplot as plt
-
-    value = value.reshape((tri_1.shape[0],))
-
-    levels = np.linspace(v_min, v_max, n_levels)
-    print(levels)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    if shading:
-        plt.tripcolor(x, y, tri_1, value, shading='gouraud')
-    else:
-        plt.tripcolor(x, y, tri_1, value, levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0,
-                        hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-
-def plot_2D_mesh(pts, quad):
-    import matplotlib.pyplot as plt
-    fig = plt.figure(figsize=(8, 8))
-    f = open('mesh_2.tex', 'w')
-    print('\begin{tikzpicture}', file=f)
-    for i in range(0, quad.shape[0]):
-        x = np.zeros((quad.shape[1]+1,))
-        y = np.zeros((quad.shape[1]+1,))
-        for j in range(0, quad.shape[1]):
-            x[j] = pts[quad[i, j], 0]
-            y[j] = pts[quad[i, j], 1]
-        x[-1] = pts[quad[i, 0], 0]
-        y[-1] = pts[quad[i, 0], 1]
-        string_1 = '\draw[thick] '
-        for j in range(0, quad.shape[1]+1):
-            string_1 = string_1 + '(' + str(x[j]) + ',' + str(y[j]) + ')'
-            if j == quad.shape[1]:
-                string_1 = string_1 + ';'
-            else:
-                string_1 = string_1 + '--'
-
-        print(string_1, file=f)
-        plt.plot(x, y, 'black')
-    plt.gca().set_aspect('equal')
-
-    print('\end{tikzpicture}', file=f)
-    f.closed
-
-
-def plot_1D_data_per_elem(pts, elems, vals):
-    import matplotlib.pyplot as plt
-
-    plt.figure()
-    for i in range(0, elems.shape[0]):
-        if i == 0:
-            x = np.array([pts[elems[i][0]], pts[elems[i][1]]])
-            y = np.array([vals[i], vals[i]])
-        else:
-            x = np.append(x, [pts[elems[i][0]], pts[elems[i][1]]])
-            y = np.append(y, [vals[i], vals[i]])
-
-    plt.plot(x, y, 'r')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    display = False
-
-    mshName_extended_1 = file_dir + \
-        '/../../../workspace/katoptron_CMAME_tests_plate_extended/plate_fused_ast1_s0_0'
-    mshName_extended_2 = file_dir + \
-        '/../../../workspace/katoptron_CMAME_tests_plate_extended_1/plate_fused_ast1_s0_0'
-    mshName_mean = file_dir + \
-        '/../../../workspace/katoptron_CMAME_tests_plate/plate_fused_ast1_s0_0'
-
-    i = 0
-    for mshName in [mshName_extended_1, mshName_extended_2, mshName_mean]:
-        if i == 2:
-            pts, tri, vals = cut_line(mshName, [5., 5., 0.5], [10, 5., 0.5])
-        else:
-            pts, tri, vals = cut_line(mshName, [5., 5., 0.5], [50, 5., 0.5])
-        VM_theory = Kirsch_equations(pts+5, np.zeros(pts.shape), 5, 0, 2, 700)
-        plot_1D_data_per_elem(pts, tri, vals['von Mises'])
-        plt.plot(pts, VM_theory)
-        plt.ylabel('[MPa]')
-        plt.xlabel('Pos')
-        plt.savefig('fig_'+str(i)+'.png')
-        i = i + 1
-    # plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMAME/slurm/blake_MC_MG.slurm.sh b/katoptron/CMAME/slurm/blake_MC_MG.slurm.sh
deleted file mode 100644
index a1025926..00000000
--- a/katoptron/CMAME/slurm/blake_MC_MG.slurm.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=MC_MG
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/MC_MG.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=48
-export KMP_PLACE_THREADS=24c,2t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-function setEnsembleReduction(){
-  remove2env INCLUDE "${Trilinos_DIR}/include"
-  remove2env LIB "${Trilinos_DIR}/lib"
-  remove2env PYTHONPATH "${Trilinos_DIR}/lib/python2.7/site-packages"
-  remove2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages/PyTrilinos"
-  remove2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages"
-  remove2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib"
-  if [ “$1” == “false” ]; then
-    export Trilinos_DIR=$Trilinos_DIR_NO_ER
-    export Waves_DIR=$Waves_DIR_NO_ER
-    export ensemble_reduction="false"
-  else
-    export Trilinos_DIR=$Trilinos_DIR_ER
-    export Waves_DIR=$Waves_DIR_ER
-    export ensemble_reduction="true"
-  fi
-  add2env INCLUDE "${Trilinos_DIR}/include" end
-  add2env LIB "${Trilinos_DIR}/lib" end
-  add2env PYTHONPATH "${Trilinos_DIR}/lib/python2.7/site-packages" front
-  add2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages/PyTrilinos" end
-  add2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages" end
-  add2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib" end
-  cd $Waves_DIR
-}
-
-setEnsembleReduction false
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_MG_all_cases.py
-
-setEnsembleReduction true
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/CMAME/tests/plate_MC_MG_all_cases.py
diff --git a/katoptron/CMAME/tests/plate_MC_MG_all_cases.py b/katoptron/CMAME/tests/plate_MC_MG_all_cases.py
deleted file mode 100644
index fa7ce389..00000000
--- a/katoptron/CMAME/tests/plate_MC_MG_all_cases.py
+++ /dev/null
@@ -1,110 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-"""@package docstring
-This test runs the four different cases as defined in table 2 of the paper
-with a SIMPLE-GS-GS preconditioner.
-"""
-
-
-
-
-
-import katoptron.CMAME.model as model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-
-def evaluate_one_ensemble(ensemble_size, case_id, first_sample_id, msh, comm,
-                          file_dir):
-    """
-    This function evaluates one ensemble for a given test case
-    """
-    work_dir = os.getcwd()
-    args = parseargs()
-
-    p = model.get_parameters(case_id, first_sample_id)
-    p['MueLu xml template file name'] = '/../../preconditioners/SIMPLE_gs_direct_lvl_MT.xml.in'
-
-    pm = model.plate_model(ensemble_size, np.array([0]), msh, comm, file_dir,
-                           work_dir, p)
-    pm.run()
-
-
-def evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir):
-    """
-    This function loop over the test cases, the ensemble sizes,
-    and the ensembles
-    """
-    for case_id in case_ids:
-        directory_case_id = 'case_' + str(case_id)
-        if not os.path.exists(directory_case_id):
-            os.makedirs(directory_case_id)
-        os.chdir(directory_case_id)
-        for ensemble_size in ensemble_sizes:
-            directory = str(ensemble_size)
-            if not os.path.exists(directory):
-                os.makedirs(directory)
-            os.chdir(directory)
-
-            N_ensemble = N // ensemble_size
-            for ensemble_index in range(0, N_ensemble):
-                directory = str(ensemble_index)
-                if not os.path.exists(directory):
-                    os.makedirs(directory)
-                os.chdir(directory)
-
-                first_sample_id = ensemble_index * ensemble_size
-
-                evaluate_one_ensemble(ensemble_size, case_id, first_sample_id,
-                                      msh, comm, file_dir)
-                os.chdir('..')
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    # Units in the meshes are in mm
-    msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                        'plate_2_tmp', 'plate_fused', file_dir + '/../mesh',
-                        work_dir, comm, rank, size)
-
-    deterministic = False
-
-    if deterministic:
-        N = 1
-        ensemble_sizes = [1]
-        case_ids = [0]
-    else:
-        N = 96
-        ensemble_sizes = [1, 8, 16, 24, 32]
-        case_ids = [1, 2, 3, 4, 5, 6, 7, 8, 9]
-
-    nThreads = u.Initialize_Kokkos()
-    evaluate_all_ensembles(ensemble_sizes, case_ids, N, msh, comm, file_dir)
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/CMakeLists.txt b/katoptron/CMakeLists.txt
deleted file mode 100644
index 3b458a43..00000000
--- a/katoptron/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-# Kim, you need to set your dependencies here!
-
-# Add source and exe dir
-ADD_SUBDIRECTORY( src )
-ADD_SUBDIRECTORY( _src )
-
-ADD_SUBDIRECTORY( exe )
-
-# Add test dir
-MACRO_AddTest(${CMAKE_CURRENT_SOURCE_DIR}/tests)
-MACRO_AddTest(${CMAKE_CURRENT_SOURCE_DIR}/tests 2)
-
diff --git a/katoptron/Juelich/UQ/GS.py b/katoptron/Juelich/UQ/GS.py
deleted file mode 100644
index 34ad8a5f..00000000
--- a/katoptron/Juelich/UQ/GS.py
+++ /dev/null
@@ -1,290 +0,0 @@
-import numpy
-
-from katoptron.eigenvalues import *
-from scipy.sparse import eye
-import matplotlib.pyplot as plt
-import scipy
-
-import katoptron.utilities as u
-
-
-def spectral_radii_bound(A, omega_min=0., omega_max=2., n_omega=100):
-    from scipy.sparse import tril
-    from scipy.sparse import triu
-    from scipy.sparse import eye
-    from scipy.sparse import diags
-    from scipy.sparse import issparse
-
-    omegas = np.linspace(omega_min, omega_max, n_omega)
-    rhos = np.ones((n_omega, ))
-
-    Adiag = A.diagonal()
-
-    invD = diags(1. / Adiag, 0)
-
-    scaled_A = invD * A
-
-    L = -tril(scaled_A, -1)
-    U = -triu(scaled_A, 1)
-
-    n = A.shape[0]
-
-    #n = 100
-
-    l_n = np.zeros((n, ))
-    u_n = np.zeros((n, ))
-
-    l_2n = np.zeros((n, n - 1))
-    u_2n = np.zeros((n, n - 1))
-
-    T_l_n = np.zeros((n, ))
-    T_u_n = np.zeros((n, ))
-    L_abs = np.abs(L)
-    U_abs = np.abs(U)
-
-    l_n = L_abs.sum(axis=1)
-    u_n = U_abs.sum(axis=1)
-
-    T_l_n = L_abs.max(axis=1)
-    T_u_n = U_abs.max(axis=1)
-
-    if np.max(l_n) > 1:
-        print('error')
-        return omegas, rhos
-    if np.max(T_l_n) > 1:
-        print('error')
-        return omegas, rhos
-    '''
-    for i in range(0,n):
-        print i
-        print n
-        tmp = L.getrow(i)
-        T_l_n[i] = np.max(np.abs(tmp))
-        tmp = U.getrow(i)
-        T_l_n[i] = np.max(np.abs(tmp))
-    '''
-
-    for i in range(0, n):
-        for j in range(0, i):
-            u_2n[i, j] = u_n[i] + u_n[j]
-            l_2n[i, j] = l_n[i] + l_n[j]
-        for j in range(i + 1, n):
-            u_2n[i, j - 1] = u_n[i] + u_n[j]
-            l_2n[i, j - 1] = l_n[i] + l_n[j]
-
-    for omega_i in range(0, n_omega):
-        omega = omegas[omega_i]
-
-        tmp_1 = np.divide(2 * np.abs(1 - omega) + omega * u_2n,
-                          2. - omega * l_2n)
-
-        max_1 = np.amax(tmp_1)
-
-        tmp_2 = np.zeros((n, ))
-        for i in range(0, n):
-            scalar_1 = ((np.abs(1 - omega) + omega * u_n[i]) / (1 -
-                                                                      omega * l_n[i]))
-            scalar_2 = ((np.abs(1 - omega)) / (1 - omega * T_u_n[i]))
-            scalar_3 = np.abs(1 - omega) + omega * u_n[i]
-            scalar_4 = np.max([scalar_2, scalar_3])
-            tmp_2[i] = np.min([scalar_1, scalar_4])
-
-        max_2 = np.max(tmp_2)
-
-        rhos[i] = np.max([max_1, max_2])
-
-    return omegas, rhos
-
-
-def is_Z_matrix(A):
-    from scipy.sparse import diags
-    Adiag = A.diagonal()
-
-    D = diags(Adiag, 0)
-
-    Aoff = A - D
-
-    max_row = Aoff.max(axis=1)
-
-    if np.max(max_row) <= 0:
-        return True
-    else:
-        return False
-
-
-def is_M_matrix(A):
-    is_Z = is_Z_matrix(A)
-    if not is_Z:
-        return False
-    is_spd = is_SPD(A)
-
-    return is_spd
-
-
-def spectral_radii(A, omegas, n_power=10):
-    from scipy.sparse import tril
-    from scipy.sparse import triu
-    from scipy.sparse import eye
-    from scipy.sparse import diags
-    from scipy.sparse import issparse
-
-    n_omega = len(omegas)
-    rhos = np.ones((n_omega, ))
-
-    E = -tril(A, -1)
-    F = -triu(A, 1)
-    invD = diags(1. / A.diagonal(), 0)
-    n = A.shape[0]
-    I = eye(n)
-
-    for omega_i in range(0, n_omega):
-        #print omega_i
-        omega = omegas[omega_i]
-        if omega == 0. or omega == 2.:
-            rhos[omega_i] = 1.
-        else:
-            N = I - omega * invD * E
-            M = (1. - omega) * I + omega * invD * F
-            rhos[omega_i] = np.min([gen_power_method(M, N, n=n_power), 1.])
-
-        #print rhos
-
-    return rhos
-
-
-def main():
-    comm, rank, siz = u.import_MPI()
-
-    post_process = True
-
-    #base_dir = '/Volumes/HD_SONY/Thesis/Juelich/GS/order_44/1/0/'
-
-    #A_u = read_mm(base_dir+'A_00_mm.txt', -1, True, True, False)
-    #A_T = read_mm(base_dir+'A_11_mm.txt', -1, True, True, True)
-
-    # scipy.sparse.save_npz('A_T.npz',A_T)
-    # scipy.sparse.save_npz('A_u.npz',A_u)
-
-    if post_process:
-        omegas = np.loadtxt('omegas.txt')
-        rho_T = np.loadtxt('rho_T.txt')
-        rho_u = np.loadtxt('rho_u.txt')
-
-        omegas = np.loadtxt('results_3/omegas.txt')
-        rho_T = np.loadtxt('results_3/rho_T.txt')
-        rho_u_A = np.loadtxt('results_3/rho_u_A.txt')
-        rho_u_B = np.loadtxt('results_3/rho_u_B.txt')
-
-        rho_T[omegas >= 1.75] = 1.
-        i_T = np.argmin(rho_T)
-        i_u_A = np.argmin(rho_u_A)
-        i_u_B = np.argmin(rho_u_B)
-
-        print(omegas[i_T])
-        print(omegas[i_u_A])
-        print(omegas[i_u_B])
-
-        plt.figure()
-        plt.plot(omegas, rho_T)
-        plt.plot(omegas, rho_u_A)
-        plt.plot(omegas, rho_u_B)
-        plt.show()
-
-    else:
-        print('Read data: start')
-
-        A_T = scipy.sparse.load_npz('A_T.npz')
-        A_u_A = scipy.sparse.load_npz('A_u.npz')
-        A_u_B = scipy.sparse.load_npz('A_u_B.npz')
-
-        print('Read data: end ' + str(siz))
-
-        print('Spectral radius computation')
-
-        n_omega = 201
-        n_power = 100
-        omegas = np.linspace(0., 2., n_omega)
-
-        n_omega_per_MPI = int(np.floor(float(n_omega) / siz))
-        my_first_i = n_omega_per_MPI * rank
-        my_last_i = my_first_i + n_omega_per_MPI
-        n_my_data = my_last_i-my_first_i
-
-        omegas_tmp = omegas[my_first_i:my_last_i]
-
-        rho_u_A = np.ones((n_omega, 1))
-        rho_u_B = np.ones((n_omega, 1))
-        rho_T = np.zeros((n_omega, 1))
-
-        rho_u_A_tmp = spectral_radii(A_u_A, omegas_tmp, n_power=n_power)
-        rho_u_B_tmp = spectral_radii(A_u_B, omegas_tmp, n_power=n_power)
-        rho_T_tmp = spectral_radii(A_T, omegas_tmp, n_power=n_power)
-
-        if rank == 0:
-            np.savetxt('omegas_'+str(rank)+'.txt', omegas_tmp)
-            np.savetxt('rho_T_'+str(rank)+'.txt', rho_T_tmp)
-            np.savetxt('rho_u_'+str(rank)+'_A.txt', rho_u_A_tmp)
-            np.savetxt('rho_u_'+str(rank)+'_B.txt', rho_u_B_tmp)
-
-            if n_my_data > 1:
-                for j in range(0, n_my_data):
-                    rho_u_A[my_first_i+j] = rho_u_A_tmp[j]
-                    rho_u_B[my_first_i+j] = rho_u_B_tmp[j]
-                    rho_T[my_first_i+j] = rho_T_tmp[j]
-            else:
-                rho_u_A[my_first_i] = rho_u_A_tmp
-                rho_u_B[my_first_i] = rho_u_B_tmp
-                rho_T[my_first_i] = rho_T_tmp
-
-            for i in range(1, siz):
-                first_i = n_omega_per_MPI * i
-                last_i = first_i + n_omega_per_MPI
-
-                n_data = last_i-first_i
-
-                data = comm.recv(source=i, tag=11)
-
-                if n_data > 1:
-                    for j in range(0, n_data):
-                        rho_u_A[first_i+j] = data[j]
-                else:
-                    rho_u_A[first_i] = data
-
-                data = comm.recv(source=i, tag=11)
-
-                if n_data > 1:
-                    for j in range(0, n_data):
-                        rho_u_B[first_i+j] = data[j]
-                else:
-                    rho_u_B[first_i] = data
-
-                data = comm.recv(source=i, tag=11)
-
-                if n_data > 1:
-                    for j in range(0, n_data):
-                        rho_T[first_i+j] = data[j]
-                else:
-                    rho_T[first_i] = data
-        else:
-            np.savetxt('omegas_'+str(rank)+'.txt', omegas_tmp)
-            np.savetxt('rho_T_'+str(rank)+'.txt', rho_T_tmp)
-            np.savetxt('rho_u_'+str(rank)+'_A.txt', rho_u_A_tmp)
-            np.savetxt('rho_u_'+str(rank)+'_B.txt', rho_u_B_tmp)
-            comm.send(rho_u_A_tmp, dest=0, tag=11)
-            comm.send(rho_u_B_tmp, dest=0, tag=11)
-            comm.send(rho_T_tmp, dest=0, tag=11)
-
-        if rank == 0:
-            print(omegas)
-            print(rho_T)
-            print(rho_u_A)
-            print(rho_u_B)
-
-            np.savetxt('omegas.txt', omegas)
-            np.savetxt('rho_T.txt', rho_T)
-            np.savetxt('rho_u_A.txt', rho_u_A)
-            np.savetxt('rho_u_B.txt', rho_u_B)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/GS_2.py b/katoptron/Juelich/UQ/GS_2.py
deleted file mode 100644
index ca05f675..00000000
--- a/katoptron/Juelich/UQ/GS_2.py
+++ /dev/null
@@ -1,198 +0,0 @@
-import numpy
-
-from katoptron.eigenvalues import *
-from scipy.sparse import eye
-import matplotlib.pyplot as plt
-import scipy
-
-import katoptron.utilities as u
-
-
-def spectral_radii_bound(A, omega_min=0., omega_max=2., n_omega=100):
-    from scipy.sparse import tril
-    from scipy.sparse import triu
-    from scipy.sparse import eye
-    from scipy.sparse import diags
-    from scipy.sparse import issparse
-
-    omegas = np.linspace(omega_min, omega_max, n_omega)
-    rhos = np.ones((n_omega, ))
-
-    Adiag = A.diagonal()
-
-    invD = diags(1. / Adiag, 0)
-
-    scaled_A = invD * A
-
-    L = -tril(scaled_A, -1)
-    U = -triu(scaled_A, 1)
-
-    n = A.shape[0]
-
-    #n = 100
-
-    l_n = np.zeros((n, ))
-    u_n = np.zeros((n, ))
-
-    l_2n = np.zeros((n, n - 1))
-    u_2n = np.zeros((n, n - 1))
-
-    T_l_n = np.zeros((n, ))
-    T_u_n = np.zeros((n, ))
-    L_abs = np.abs(L)
-    U_abs = np.abs(U)
-
-    l_n = L_abs.sum(axis=1)
-    u_n = U_abs.sum(axis=1)
-
-    T_l_n = L_abs.max(axis=1)
-    T_u_n = U_abs.max(axis=1)
-
-    if np.max(l_n) > 1:
-        print('error')
-        return omegas, rhos
-    if np.max(T_l_n) > 1:
-        print('error')
-        return omegas, rhos
-    '''
-    for i in range(0,n):
-        print i
-        print n
-        tmp = L.getrow(i)
-        T_l_n[i] = np.max(np.abs(tmp))
-        tmp = U.getrow(i)
-        T_l_n[i] = np.max(np.abs(tmp))
-    '''
-
-    for i in range(0, n):
-        for j in range(0, i):
-            u_2n[i, j] = u_n[i] + u_n[j]
-            l_2n[i, j] = l_n[i] + l_n[j]
-        for j in range(i + 1, n):
-            u_2n[i, j - 1] = u_n[i] + u_n[j]
-            l_2n[i, j - 1] = l_n[i] + l_n[j]
-
-    for omega_i in range(0, n_omega):
-        omega = omegas[omega_i]
-
-        tmp_1 = np.divide(2 * np.abs(1 - omega) + omega * u_2n,
-                          2. - omega * l_2n)
-
-        max_1 = np.amax(tmp_1)
-
-        tmp_2 = np.zeros((n, ))
-        for i in range(0, n):
-            scalar_1 = ((np.abs(1 - omega) + omega * u_n[i]) / (1 -
-                                                                      omega * l_n[i]))
-            scalar_2 = ((np.abs(1 - omega)) / (1 - omega * T_u_n[i]))
-            scalar_3 = np.abs(1 - omega) + omega * u_n[i]
-            scalar_4 = np.max([scalar_2, scalar_3])
-            tmp_2[i] = np.min([scalar_1, scalar_4])
-
-        max_2 = np.max(tmp_2)
-
-        rhos[i] = np.max([max_1, max_2])
-
-    return omegas, rhos
-
-
-def is_Z_matrix(A):
-    from scipy.sparse import diags
-    Adiag = A.diagonal()
-
-    D = diags(Adiag, 0)
-
-    Aoff = A - D
-
-    max_row = Aoff.max(axis=1)
-
-    if np.max(max_row) <= 0:
-        return True
-    else:
-        return False
-
-
-def is_M_matrix(A):
-    is_Z = is_Z_matrix(A)
-    if not is_Z:
-        return False
-    is_spd = is_SPD(A)
-
-    return is_spd
-
-
-def spectral_radii(A, omegas, n_power=10):
-    from scipy.sparse import tril
-    from scipy.sparse import triu
-    from scipy.sparse import eye
-    from scipy.sparse import diags
-    from scipy.sparse import issparse
-
-    n_omega = len(omegas)
-    rhos = np.ones((n_omega, ))
-
-    E = -tril(A, -1)
-    F = -triu(A, 1)
-    invD = diags(1. / A.diagonal(), 0)
-    n = A.shape[0]
-    I = eye(n)
-
-    for omega_i in range(0, n_omega):
-        #print omega_i
-        omega = omegas[omega_i]
-        if omega == 0. or omega == 2.:
-            rhos[omega_i] = 1.
-        else:
-            N = I - omega * invD * E
-            M = (1. - omega) * I + omega * invD * F
-            rhos[omega_i] = np.min([gen_power_method(M, N, n=n_power), 1.])
-
-        #print rhos
-
-    return rhos
-
-
-def main():
-    comm, rank, siz = u.import_MPI()
-
-    post_process = True
-
-    base_dir = '/Users/kimliegeois/Desktop/preload/katoptron_tests_1_cube_tet_block_5/1/'
-
-    A = read_mm(base_dir+'A_mm_after_bc.txt', -1)
-    A_u = read_mm(base_dir+'A_00_mm.txt', -1, True, True, False)
-    A_T = read_mm(base_dir+'A_11_mm.txt', -1, True, True, True)
-
-    B = jacobi_iteration_matrix(A)
-    B_u = jacobi_iteration_matrix(get_symmetrical_part(A_u))
-    B_T = jacobi_iteration_matrix(A_T)
-
-    sp = spectral_radius(B)
-    sp_u = spectral_radius(B_u)
-    sp_T = spectral_radius(B_T)
-
-    A_u_f = A_u.todense()
-    index = np.array([3, 4, 5, 15, 16, 17, 18, 19, 20, 21, 22, 23])
-    # => rho = 0.875 (sum off diag = 1.8904321, diag = 2.16049383) nu = 0.2
-    index = np.array([3, 15, 18, 21])
-    index = np.array([4, 16, 19, 22])  # => rho = 0.875
-    # index = np.array([5,17,20,23]) #=> rho = 0.4285714285714285 nu = 0.2
-    # => rho = .3035714285714295 (sum off diag = 3.2793209800000005, diag = 2.16049383) nu = 0.2
-    index = np.array([3, 4, 15, 16, 18, 19, 21, 22])
-    # if nu = 0 OK! rho(B_u) = 0.8125
-    A_u_f_1 = A_u_f[index, :]
-    A_u_f_2 = A_u_f_1[:, index]
-    print(A_u_f_2)
-    print(sp)
-    print(sp_u)
-    print(sp_T)
-
-    B_u = jacobi_iteration_matrix(scipy.sparse.csr_matrix(A_u_f_2))
-
-    print(B_u.todense())
-    sp_u = spectral_radius(B_u)
-    print(sp_u)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/__init__.py b/katoptron/Juelich/UQ/__init__.py
deleted file mode 100644
index e8aed8a0..00000000
--- a/katoptron/Juelich/UQ/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# -*- coding: utf-8 -*-
-# katoptron.Juelich.post_process MODULE initialization file
diff --git a/katoptron/Juelich/UQ/copulas.py b/katoptron/Juelich/UQ/copulas.py
deleted file mode 100644
index 118c368d..00000000
--- a/katoptron/Juelich/UQ/copulas.py
+++ /dev/null
@@ -1,12 +0,0 @@
-
-from scipy.stats import lognorm
-import numpy as np
-
-
-def lognormal(points, means, sigmas):
-    randomVariable = np.zeros(points.shape)
-    for i in range(0, points.shape[0]):
-        randomVariable[i, :] = lognorm.ppf(points[i, :],
-                                           sigmas[i],
-                                           scale=np.exp(means[i]))
-    return randomVariable
diff --git a/katoptron/Juelich/UQ/halton.py b/katoptron/Juelich/UQ/halton.py
deleted file mode 100644
index 0fc60976..00000000
--- a/katoptron/Juelich/UQ/halton.py
+++ /dev/null
@@ -1,392 +0,0 @@
-def halton ( i, m ):
-
-#*****************************************************************************80
-#
-## HALTON computes an element of a Halton sequence.
-#
-#  Licensing:
-#
-#    This code is distributed under the GNU LGPL license.
-#
-#  Modified:
-#
-#    10 August 2016
-#
-#  Author:
-#
-#    John Burkardt
-#
-#  Reference:
-#
-#    John Halton,
-#    On the efficiency of certain quasi-random sequences of points
-#    in evaluating multi-dimensional integrals,
-#    Numerische Mathematik,
-#    Volume 2, pages 84-90, 1960.
-#
-#  Parameters:
-#
-#    Input, integer I, the index of the element of the sequence.
-#    0 <= I.
-#
-#    Input, integer M, the spatial dimension.
-#    1 <= M <= 1600.
-#
-#    Output, real R(M), the element of the sequence with index I.
-#
-  import numpy as np
-
-  i = int ( i )
-
-  t = np.ones ( m )
-
-  t = i * t
-#
-#  Carry out the computation.
-#
-  prime_inv = np.zeros ( m )
-  for j in range ( 0, m ):
-    prime_inv[j] = 1.0 / float ( prime ( j ) )
-
-  r = np.zeros ( m )
-
-  while ( 0 < np.sum ( t ) ):
-    for j in range ( 0, m ):
-      d = ( t[j] % prime ( j ) )
-      r[j] = r[j] + float ( d ) * prime_inv[j]
-      prime_inv[j] = (prime_inv[j] / prime ( j ))
-      t[j] = ( t[j] // prime ( j ) )
-
-  return r
-
-def halton_base ( i, m, b ):
-
-#*****************************************************************************80
-#
-## HALTON_BASE computes an element of a Halton sequence with user bases.
-#
-#  Licensing:
-#
-#    This code is distributed under the GNU LGPL license.
-#
-#  Modified:
-#
-#    11 August 2016
-#
-#  Author:
-#
-#    John Burkardt
-#
-#  Reference:
-#
-#    John Halton,
-#    On the efficiency of certain quasi-random sequences of points
-#    in evaluating multi-dimensional integrals,
-#    Numerische Mathematik,
-#    Volume 2, pages 84-90, 1960.
-#
-#  Parameters:
-#
-#    Input, integer I, the index of the element of the sequence.
-#    0 <= I.
-#
-#    Input, integer M, the spatial dimension.
-#
-#    Input, integer B(M), the bases to use for each dimension.
-#
-#    Output, real R(M), the element of the sequence with index I.
-#
-  import numpy as np
-
-  i = int ( i )
-
-  t = np.ones ( m )
-
-  t = i * t
-#
-#  Carry out the computation.
-#
-  b_inv = np.zeros ( m )
-  for j in range ( 0, m ):
-    b_inv[j] = 1.0 / b[j]
-
-  r = np.zeros ( m )
-
-  while ( 0 < np.sum ( t ) ):
-    for j in range ( 0, m ):
-      d = ( t[j] % b[j] )
-      r[j] = r[j] + float ( d ) * b_inv[j]
-      b_inv[j] = (b_inv[j] / b[j])
-      t[j] = ( t[j] // b[j] )
-
-  return r
-
-def halton_inverse ( r, m ):
-
-#*****************************************************************************80
-#
-## HALTON_INVERSE inverts an element of the Halton sequence.
-#
-#  Licensing:
-#
-#    This code is distributed under the GNU LGPL license.
-#
-#  Modified:
-#
-#    10 August 2016
-#
-#  Author:
-#
-#    John Burkardt
-#
-#  Parameters:
-#
-#    Input, real R(M), the I-th element of the Halton sequence.
-#    0 <= R < 1.0
-#
-#    Input, integer M, the spatial dimension.
-#
-#    Output, integer I, the index of the element of the sequence.
-#
-  import numpy as np
-  from sys import exit
-
-  for j in range ( 0, m ):
-    if ( r[j] < 0.0 or 1.0 <= r[j] ):
-      print ( '' )
-      print ( 'HALTON_INVERSE - Fatal error!' )
-      print ( '  0 <= R < 1.0 is required.' )
-      exit ( 'HALTON_INVERSE - Fatal error!' )
-#
-#  Compute the index based on the first component,
-#  because base 2 is reliable.
-#
-  t = r[0]
-  i = 0
-  p = 1
-
-  while ( t != 0 ):
-    t = t * 2.0
-    d = np.floor ( t )
-    i = i + d * p
-    p = p * 2
-    t = t - d
-
-  return i
-
-def prime ( n ):
-
-#*****************************************************************************80
-#
-##  PRIME returns returns any of the first PRIME_MAX prime numbers.
-#
-#  Discussion:
-#
-#    PRIME_MAX is 1600, and the largest prime stored is 13499.
-#
-#    Thanks to Bart Vandewoestyne for pointing out a typo, 18 February 2005.
-#
-#  Licensing:
-#
-#    This code is distributed under the GNU LGPL license. 
-#
-#  Modified:
-#
-#    05 December 2014
-#
-#  Author:
-#
-#    John Burkardt
-#
-#  Reference:
-#
-#    Milton Abramowitz and Irene Stegun,
-#    Handbook of Mathematical Functions,
-#    US Department of Commerce, 1964, pages 870-873.
-#
-#    Daniel Zwillinger,
-#    CRC Standard Mathematical Tables and Formulae,
-#    30th Edition,
-#    CRC Press, 1996, pages 95-98.
-#
-#  Parameters:
-#
-#    Input, integer N, the index of the desired prime number.
-#    In general, is should be true that 0 <= N < PRIME_MAX.
-#
-#    Output, integer P, the N-th prime. 
-#
-  import numpy as np
-  from sys import exit
-
-  prime_max = 1600
-
-  prime_vector = np.array ( [
-        2,    3,    5,    7,   11,   13,   17,   19,   23,   29, \
-       31,   37,   41,   43,   47,   53,   59,   61,   67,   71, \
-       73,   79,   83,   89,   97,  101,  103,  107,  109,  113, \
-      127,  131,  137,  139,  149,  151,  157,  163,  167,  173, \
-      179,  181,  191,  193,  197,  199,  211,  223,  227,  229, \
-      233,  239,  241,  251,  257,  263,  269,  271,  277,  281, \
-      283,  293,  307,  311,  313,  317,  331,  337,  347,  349, \
-      353,  359,  367,  373,  379,  383,  389,  397,  401,  409, \
-      419,  421,  431,  433,  439,  443,  449,  457,  461,  463, \
-      467,  479,  487,  491,  499,  503,  509,  521,  523,  541, \
-      547,  557,  563,  569,  571,  577,  587,  593,  599,  601, \
-      607,  613,  617,  619,  631,  641,  643,  647,  653,  659, \
-      661,  673,  677,  683,  691,  701,  709,  719,  727,  733, \
-      739,  743,  751,  757,  761,  769,  773,  787,  797,  809, \
-      811,  821,  823,  827,  829,  839,  853,  857,  859,  863, \
-      877,  881,  883,  887,  907,  911,  919,  929,  937,  941, \
-      947,  953,  967,  971,  977,  983,  991,  997, 1009, 1013, \
-     1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069, \
-     1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151, \
-     1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223, \
-     1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291, \
-     1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373, \
-     1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451, \
-     1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511, \
-     1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583, \
-     1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657, \
-     1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733, \
-     1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811, \
-     1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889, \
-     1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987, \
-     1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053, \
-     2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129, \
-     2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213, \
-     2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287, \
-     2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357, \
-     2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423, \
-     2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531, \
-     2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617, \
-     2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687, \
-     2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741, \
-     2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819, \
-     2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903, \
-     2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999, \
-     3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079, \
-     3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181, \
-     3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257, \
-     3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331, \
-     3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413, \
-     3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511, \
-     3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571, \
-     3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643, \
-     3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727, \
-     3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821, \
-     3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907, \
-     3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989, \
-     4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057, \
-     4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, 4133, 4139, \
-     4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231, \
-     4241, 4243, 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297, \
-     4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409, \
-     4421, 4423, 4441, 4447, 4451, 4457, 4463, 4481, 4483, 4493, \
-     4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583, \
-     4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657, \
-     4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751, \
-     4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831, \
-     4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937, \
-     4943, 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003, \
-     5009, 5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087, \
-     5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179, \
-     5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279, \
-     5281, 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387, \
-     5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443, \
-     5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521, \
-     5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, 5639, \
-     5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693, \
-     5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791, \
-     5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857, \
-     5861, 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939, \
-     5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053, \
-     6067, 6073, 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133, \
-     6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221, \
-     6229, 6247, 6257, 6263, 6269, 6271, 6277, 6287, 6299, 6301, \
-     6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367, \
-     6373, 6379, 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473, \
-     6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571, \
-     6577, 6581, 6599, 6607, 6619, 6637, 6653, 6659, 6661, 6673, \
-     6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761, \
-     6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833, \
-     6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917, \
-     6947, 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997, \
-     7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103, \
-     7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207, \
-     7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, 7297, \
-     7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411, \
-     7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, 7489, 7499, \
-     7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561, \
-     7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621, 7639, 7643, \
-     7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723, \
-     7727, 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829, \
-     7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919, \
-     7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009, 8011, 8017, \
-     8039, 8053, 8059, 8069, 8081, 8087, 8089, 8093, 8101, 8111, \
-     8117, 8123, 8147, 8161, 8167, 8171, 8179, 8191, 8209, 8219, \
-     8221, 8231, 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291, \
-     8293, 8297, 8311, 8317, 8329, 8353, 8363, 8369, 8377, 8387, \
-     8389, 8419, 8423, 8429, 8431, 8443, 8447, 8461, 8467, 8501, \
-     8513, 8521, 8527, 8537, 8539, 8543, 8563, 8573, 8581, 8597, \
-     8599, 8609, 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677, \
-     8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731, 8737, 8741, \
-     8747, 8753, 8761, 8779, 8783, 8803, 8807, 8819, 8821, 8831, \
-     8837, 8839, 8849, 8861, 8863, 8867, 8887, 8893, 8923, 8929, \
-     8933, 8941, 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011, \
-     9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091, 9103, 9109, \
-     9127, 9133, 9137, 9151, 9157, 9161, 9173, 9181, 9187, 9199, \
-     9203, 9209, 9221, 9227, 9239, 9241, 9257, 9277, 9281, 9283, \
-     9293, 9311, 9319, 9323, 9337, 9341, 9343, 9349, 9371, 9377, \
-     9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433, 9437, 9439, \
-     9461, 9463, 9467, 9473, 9479, 9491, 9497, 9511, 9521, 9533, \
-     9539, 9547, 9551, 9587, 9601, 9613, 9619, 9623, 9629, 9631, \
-     9643, 9649, 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733, \
-     9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791, 9803, 9811, \
-     9817, 9829, 9833, 9839, 9851, 9857, 9859, 9871, 9883, 9887, \
-     9901, 9907, 9923, 9929, 9931, 9941, 9949, 9967, 9973,10007, \
-    10009,10037,10039,10061,10067,10069,10079,10091,10093,10099, \
-    10103,10111,10133,10139,10141,10151,10159,10163,10169,10177, \
-    10181,10193,10211,10223,10243,10247,10253,10259,10267,10271, \
-    10273,10289,10301,10303,10313,10321,10331,10333,10337,10343, \
-    10357,10369,10391,10399,10427,10429,10433,10453,10457,10459, \
-    10463,10477,10487,10499,10501,10513,10529,10531,10559,10567, \
-    10589,10597,10601,10607,10613,10627,10631,10639,10651,10657, \
-    10663,10667,10687,10691,10709,10711,10723,10729,10733,10739, \
-    10753,10771,10781,10789,10799,10831,10837,10847,10853,10859, \
-    10861,10867,10883,10889,10891,10903,10909,10937,10939,10949, \
-    10957,10973,10979,10987,10993,11003,11027,11047,11057,11059, \
-    11069,11071,11083,11087,11093,11113,11117,11119,11131,11149, \
-    11159,11161,11171,11173,11177,11197,11213,11239,11243,11251, \
-    11257,11261,11273,11279,11287,11299,11311,11317,11321,11329, \
-    11351,11353,11369,11383,11393,11399,11411,11423,11437,11443, \
-    11447,11467,11471,11483,11489,11491,11497,11503,11519,11527, \
-    11549,11551,11579,11587,11593,11597,11617,11621,11633,11657, \
-    11677,11681,11689,11699,11701,11717,11719,11731,11743,11777, \
-    11779,11783,11789,11801,11807,11813,11821,11827,11831,11833, \
-    11839,11863,11867,11887,11897,11903,11909,11923,11927,11933, \
-    11939,11941,11953,11959,11969,11971,11981,11987,12007,12011, \
-    12037,12041,12043,12049,12071,12073,12097,12101,12107,12109, \
-    12113,12119,12143,12149,12157,12161,12163,12197,12203,12211, \
-    12227,12239,12241,12251,12253,12263,12269,12277,12281,12289, \
-    12301,12323,12329,12343,12347,12373,12377,12379,12391,12401, \
-    12409,12413,12421,12433,12437,12451,12457,12473,12479,12487, \
-    12491,12497,12503,12511,12517,12527,12539,12541,12547,12553, \
-    12569,12577,12583,12589,12601,12611,12613,12619,12637,12641, \
-    12647,12653,12659,12671,12689,12697,12703,12713,12721,12739, \
-    12743,12757,12763,12781,12791,12799,12809,12821,12823,12829, \
-    12841,12853,12889,12893,12899,12907,12911,12917,12919,12923, \
-    12941,12953,12959,12967,12973,12979,12983,13001,13003,13007, \
-    13009,13033,13037,13043,13049,13063,13093,13099,13103,13109, \
-    13121,13127,13147,13151,13159,13163,13171,13177,13183,13187, \
-    13217,13219,13229,13241,13249,13259,13267,13291,13297,13309, \
-    13313,13327,13331,13337,13339,13367,13381,13397,13399,13411, \
-    13417,13421,13441,13451,13457,13463,13469,13477,13487,13499 ] )
-
-  if ( n < 0 or prime_max <= n ):
-    print ( '' )
-    print ( 'PRIME - Fatal error!' )
-    print ( '  0 <= N < %d' % ( prime_max ) )
-    exit ( 'PRIME - Fatal error!' )
-
-  return prime_vector[n]
\ No newline at end of file
diff --git a/katoptron/Juelich/UQ/kde.py b/katoptron/Juelich/UQ/kde.py
deleted file mode 100644
index bec1e921..00000000
--- a/katoptron/Juelich/UQ/kde.py
+++ /dev/null
@@ -1,70 +0,0 @@
-
-import numpy as np
-import matplotlib.pyplot as plt
-import scipy.stats as st
-
-
-def compute_kde(A):
-    # Take a 2D array of m x n entries where n is the number of samples
-    # and m the number of QoI
-
-    kernel = st.gaussian_kde(A)
-    return kernel
-
-
-def resample_kde(kernel, n_samples):
-    # Sample the QoI based on the estimated pdf
-
-    samples = kernel.resample(size=n_samples)
-    return samples
-
-
-def box_prob_MC(kernel, min_bounds, max_bounds, n_samples):
-    # Evaluate the probability to be in a box
-
-    samples = resample_kde(kernel, n_samples)
-
-    insamples = np.ones((n_samples,))
-    for j in range(0, n_samples):
-        for i in range(0, len(min_bounds)):
-            insamples[j] = bool(insamples[j]) & (
-                samples[i, j] >= min_bounds[i]) & (samples[i, j] <= max_bounds[i])
-
-    prob = np.sum(insamples)/float(n_samples)
-
-    return prob
-
-
-def plot_kde(kernel, xbounds, ybounds, fixed_values, random_index):
-
-    xx, yy = np.mgrid[xbounds[0]:xbounds[1]:100j, ybounds[0]:ybounds[1]:100j]
-
-    positions_x = xx.ravel()
-    positions_y = yy.ravel()
-
-    positions = np.zeros((len(fixed_values)+2, len(positions_x)))
-
-    fixed_i = 0
-
-    for i in range(0, positions.shape[0]):
-        if i == random_index[0]:
-            positions[i, :] = positions_x
-        elif i == random_index[1]:
-            positions[i, :] = positions_y
-        else:
-            positions[i, :] = fixed_values[fixed_i] * \
-                np.ones(positions[i, :].shape)
-            fixed_i = fixed_i + 1
-
-    f = np.reshape(kernel(positions).T, xx.shape)
-
-    fig = plt.figure(figsize=(8, 8))
-    ax = fig.gca()
-    ax.set_xlim(xbounds[0], xbounds[1])
-    ax.set_ylim(ybounds[0], ybounds[1])
-    cfset = ax.contourf(xx, yy, f, cmap='coolwarm')
-    ax.imshow(np.rot90(f), cmap='coolwarm', extent=[
-              xbounds[0], xbounds[1], ybounds[0], ybounds[1]])
-    cset = ax.contour(xx, yy, f, colors='k')
-    ax.clabel(cset, inline=1, fontsize=10)
-    return fig, ax
diff --git a/katoptron/Juelich/UQ/mirror.py b/katoptron/Juelich/UQ/mirror.py
deleted file mode 100644
index 5a79cdaf..00000000
--- a/katoptron/Juelich/UQ/mirror.py
+++ /dev/null
@@ -1,605 +0,0 @@
-
-
-
-
-
-import numpy as np
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-import matplotlib.tri as mtri
-
-from katoptron.Juelich.UQ.kde import *
-import katoptron.utilities as u
-
-
-def convergence_qoi(qoi):
-    mean_qoi = np.zeros((len(qoi), ))
-    for i in range(0, len(qoi)):
-        mean_qoi[i] = np.mean(qoi[0:i])
-    return mean_qoi
-
-
-def compute_qoi(base_dir, ensemble_size, ensemble_index, l):
-    OAX, OAY = 0.0595, 0.017
-    npzfile = np.load(base_dir + str(ensemble_size) + '/' +
-                      str(ensemble_index) + '/mirror_data_all.npz')
-    x = npzfile['x']
-    y = npzfile['y']
-    z = 0. * x
-    dz = npzfile['dz']
-    T = npzfile['T']
-    tri = npzfile['tri']
-    optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz[:, l], "m", np.array([OAX, OAY]))
-    print(optical_coefficients)
-    return [
-        np.max(T[:, l]),
-        np.min(T[:, l]),
-        np.mean(T[:, l]), 1000 * np.mean(dz[:, l]), optical_coefficients[0],
-        optical_coefficients[1], optical_coefficients[2],
-        optical_coefficients[3], optical_coefficients[4]
-    ]  # optical_coefficients[0]]
-
-
-def irregularly_plot(x,
-                     y,
-                     z,
-                     x_min,
-                     x_max,
-                     y_min,
-                     y_max,
-                     ngridx=400,
-                     ngridy=400,
-                     scale=1):
-
-    xi = np.linspace(x_min, x_max, ngridx)
-    yi = np.linspace(y_min, y_max, ngridy)
-
-    triang = mtri.Triangulation(x, y)
-    interpolator = mtri.LinearTriInterpolator(triang, z)
-    Xi, Yi = np.meshgrid(xi, yi)
-    zi = interpolator(Xi, Yi)
-
-    #fig = plt.figure()
-    #ax = fig.gca(projection='3d')
-    #ax.plot_surface(Xi, Yi, zi, cmap='jet',vmin=np.amin(z),vmax=np.amax(z))
-    #ax.scatter(x,y,z)
-
-    fig = plt.figure()
-    ax = fig.gca()
-    levels = np.linspace(np.amin(z * scale),
-                         np.amax(z * scale),
-                         16,
-                         endpoint=True)
-
-    cf = ax.contourf(Xi, Yi, zi * scale, levels, cmap="jet")
-    ax.contour(xi, yi, zi * scale, levels, linewidths=0.5, colors='k')
-    ax.set_aspect('equal')
-
-    cbar = fig.colorbar(cf, ticks=levels)
-
-    return fig, cbar
-
-
-def irregularly_tol_plot(x,
-                         y,
-                         QoI,
-                         x_min,
-                         x_max,
-                         y_min,
-                         y_max,
-                         ngridx=200,
-                         ngridy=200,
-                         scale=1.):
-
-    xi = np.linspace(x_min, x_max, ngridx)
-    yi = np.linspace(y_min, y_max, ngridy)
-
-    triang = mtri.Triangulation(x, y)
-    interpolator_0 = mtri.LinearTriInterpolator(triang, QoI[0, :])
-    interpolator_1 = mtri.LinearTriInterpolator(triang, QoI[1, :])
-    interpolator_2 = mtri.LinearTriInterpolator(triang, QoI[2, :])
-    interpolator_3 = mtri.LinearTriInterpolator(triang, QoI[3, :])
-    interpolator_4 = mtri.LinearTriInterpolator(triang, QoI[4, :])
-
-    Xi, Yi = np.meshgrid(xi, yi)
-
-    z_0 = interpolator_0(Xi, Yi)
-    z_1 = interpolator_1(Xi, Yi)
-    z_2 = interpolator_2(Xi, Yi)
-    z_3 = interpolator_3(Xi, Yi)
-    z_4 = interpolator_4(Xi, Yi)
-
-    z_5 = np.copy(z_0)
-
-    for i in range(0, z_0.shape[0]):
-        for j in range(0, z_0.shape[1]):
-            if np.isfinite(z_0[i, j]):
-                z_5[i, j] = u.check_optical_tolerance(
-                    [z_0[i, j], z_1[i, j], z_2[i, j], z_3[i, j], z_4[i, j]],
-                    "mm",
-                    scale=scale)
-            else:
-                z_5[i, j] = z_0[i, j]
-
-    #fig = plt.figure()
-    #ax = fig.gca(projection='3d')
-    #ax.plot_surface(Xi, Yi, zi, cmap='jet',vmin=np.amin(z),vmax=np.amax(z))
-    #ax.scatter(x,y,z)
-
-    fig = plt.figure()
-    ax = fig.gca()
-    levels = np.linspace(0., 1., 3, endpoint=True)
-
-    cf = ax.contourf(Xi, Yi, z_5, levels, cmap="jet")
-    ax.contour(xi, yi, z_5, levels, linewidths=0.5, colors='k')
-    ax.set_aspect('equal')
-
-    cbar = fig.colorbar(cf, ticks=levels)
-
-
-def clip_scater(x, y, z, x_lim, y_lim, z_lim):
-    x_new = np.array([])
-    y_new = np.array([])
-    z_new = np.array([])
-    for i in np.arange(len(x)):
-        if x[i] >= x_lim[0] and x[i] <= x_lim[1] and y[i] >= y_lim[0] and y[
-                i] <= y_lim[1] and z[i] >= z_lim[0] and z[i] <= z_lim[1]:
-            x_new = np.append(x_new, x[i])
-            y_new = np.append(y_new, y[i])
-            z_new = np.append(z_new, z[i])
-    return x_new, y_new, z_new
-
-
-def plot_kde_2D(x, y, x_min, x_max, y_min, y_max, ngridx=200, ngridy=200):
-
-    xi = np.linspace(x_min, x_max, ngridx)
-    yi = np.linspace(y_min, y_max, ngridy)
-
-    xx, yy = np.meshgrid(xi, yi)
-    positions = np.vstack([xx.ravel(), yy.ravel()])
-    values = np.vstack([x, y])
-    kernel = st.gaussian_kde(values)
-    f = np.reshape(kernel(positions).T, xx.shape)
-
-    fig = plt.figure()
-    ax = fig.gca()
-    ax.set_xlim(x_min, x_max)
-    ax.set_ylim(y_min, y_max)
-
-    levels = np.linspace(np.amin(f), np.amax(f), 16, endpoint=True)
-
-    # Contourf plot
-    cfset = ax.contourf(xx, yy, f, levels, cmap='Blues')
-    ## Or kernel density estimate plot instead of the contourf plot
-    #ax.imshow(np.rot90(f), cmap='Blues', extent=[xmin, xmax, ymin, ymax])
-    # Contour plot
-    cset = ax.contour(xx, yy, f, levels, linewidths=0.5, colors='k')
-    # Label plot
-    # ax.clabel(cset, inline=1, fontsize=10)
-    plt.xlabel('Heat conductivity spacer 1 $[$W/mK$]$')
-    plt.ylabel('Heat conductivity spacer 2 $[$W/mK$]$')
-    #plt.plot(345,345,'+')
-    ax.set_aspect('equal')
-    cbar = fig.colorbar(cfset, ticks=levels)
-    cbar.set_label('pdf $[m^2K^2/W^2]$')
-    plt.savefig("kde.pdf", dpi=100)
-
-
-def plot_kde_1D(qoi, id, xlabel, ylabel, x_min, x_max, nx=200):
-
-    min_qoi = x_min
-    max_qoi = x_max
-
-    kernel = compute_kde(qoi)
-
-    qoi_lin = np.linspace(min_qoi, max_qoi, nx)
-    plt.figure()
-    plt.plot(qoi_lin, kernel(qoi_lin))
-    plt.xlabel(xlabel)
-    plt.ylabel(ylabel)
-    plt.savefig('kde_' + id + '.pdf', dpi=100)
-
-
-def main():
-
-    N = 640
-    base_dir = '/Users/kimliegeois/Desktop/QoI_results_27/'
-    ensemble_size = 1
-
-    N = 640
-    base_dir = '/Users/kimliegeois/Desktop/QoI_results_2_AlN/'
-    ensemble_size = 16
-
-    N = 453
-    base_dir = '/Users/kimliegeois/Desktop/QoI_results_3/'
-    ensemble_size = 1
-
-    N = 453
-    base_dir = '/Volumes/HD_SONY/Thesis/Juelich/all_results_NER/'
-    ensemble_size = 1
-    data_name = 'qois_xiao_2.data'
-
-    N = 79
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/order_2_30/order_20/'
-    ensemble_size = 1
-    data_name = 'A2_xiao_20.data'
-
-    N = 79
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/ER/MPI_2/'
-    ensemble_size = 1
-    data_name = 'B2_xiao_20.data'
-
-    #N = 3200
-    #base_dir = '/Volumes/HD_SONY/juelich/k_conductivity/QoI_results_8/'
-    #ensemble_size = 32
-
-    n_qoi = 10
-    n_rand = 3
-
-    optical_coefficients_all = np.zeros((n_qoi, N))
-    random_variables = np.zeros((n_rand, N))
-
-    x = random_variables[0, :]
-    y = random_variables[2, :]
-
-    for i in range(0, n_rand):
-        filename = base_dir + 'randomVariable_' + str(i + 1) + '.txt'
-        tmp = np.loadtxt(filename)
-        #print tmp[2741]
-        random_variables[i, :] = tmp[0:N]
-    
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        for l in range(0,ensemble_size):
-            filename = base_dir+str(ensemble_size)+'/'+str(ensemble_index)+'/mirror_optical_results_'+str(l)+'.npz'
-            npzfile = np.load(filename)
-            optical_coefficients = npzfile['optical_coefficients']
-            optical_coefficients_all[0:9,ensemble_index*ensemble_size+l] = compute_qoi(base_dir,ensemble_size,ensemble_index,l) #optical_coefficients     
-            #optical_coefficients_all[4:9,ensemble_index*ensemble_size+l] = optical_coefficients
-            optical_coefficients_all[9,ensemble_index*ensemble_size+l] = u.check_optical_tolerance(optical_coefficients_all[4:9,ensemble_index*ensemble_size+l], "mm", max_fringe = 0.0056)    
-    np.save(data_name,optical_coefficients_all)
-    
-    optical_coefficients_all = np.load(data_name + '.npy')
-    optical_coefficients_all_1 = np.copy(optical_coefficients_all)
-    print(optical_coefficients_all_1)
-    print(optical_coefficients_all_1.shape)
-    '''
-    ensemble_size = 8
-
-    N_ensemble = N / ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        print ensemble_index
-        for l in range(0,ensemble_size):
-            filename = base_dir+str(ensemble_size)+'/'+str(ensemble_index)+'/mirror_optical_results_'+str(l)+'.npz'
-            npzfile = np.load(filename)
-            optical_coefficients = npzfile['optical_coefficients']
-            optical_coefficients_all[:,ensemble_index*ensemble_size+l] = compute_qoi(base_dir,ensemble_size,ensemble_index,l) #optical_coefficients     
-
-    optical_coefficients_all_8 = np.copy(optical_coefficients_all)
-
-
-    print optical_coefficients_all_1
-    print optical_coefficients_all_8
-
-    print optical_coefficients_all_8-optical_coefficients_all_1
-    print (optical_coefficients_all_8-optical_coefficients_all_1)/optical_coefficients_all_1
-    '''
-
-    qoi = optical_coefficients_all_1[0, :]
-
-    kernel = compute_kde(qoi)
-
-    T = np.linspace(100, 170, 200)
-    plt.figure()
-    plt.plot(T, kernel(T))
-    #plt.show()
-
-    print('-----')
-    print(np.mean(qoi))
-    #print np.mean(qoi[random_variables[0,:]<=random_variables[1,:]])
-    #print np.mean(qoi[random_variables[0,:]>random_variables[1,:]])
-    print('-----')
-
-    mean_qoi = convergence_qoi(qoi)
-    plt.figure()
-    plt.plot(mean_qoi - mean_qoi[-1])
-
-    qoi = optical_coefficients_all_1[3, :]
-
-    print(np.min(qoi))
-    print(np.max(qoi))
-
-    kernel = compute_kde(qoi)
-
-    max_dz = np.linspace(0.000135, 0.00015, 200)
-    plt.figure()
-    plt.plot(max_dz, kernel(max_dz))
-    max_dz = np.linspace(0.000145, 0.00015, 100)
-    ax = plt.gca()
-    ax.fill_between(max_dz,
-                    0,
-                    kernel(max_dz),
-                    facecolor='red',
-                    interpolate=True)
-
-    print('-----')
-    print(np.mean(qoi))
-    #print np.mean(qoi[random_variables[0,:]<=random_variables[1,:]])
-    #print np.mean(qoi[random_variables[0,:]>random_variables[1,:]])
-    print('-----')
-
-    mean_qoi = convergence_qoi(qoi)
-    plt.figure()
-    plt.plot(mean_qoi - mean_qoi[-1])
-
-    print(np.sum(kernel(max_dz)) * (max_dz[1] - max_dz[0]))
-    #plot_kde(kernel,[370,380],[330,340],[],[0,1])
-    ''' 
-    ensemble_size = 1
-    ensemble_index = 3
-    for i in range(0, 8):
-        npzfile = np.load(base_dir+str(ensemble_size)+'/'+str(ensemble_index)+'/mirror_data_' + str(i) + '.npz')
-        x_i = npzfile['x']
-        y_i = npzfile['y']
-        z_i = 0. * x_i
-        dz_i = npzfile['dz']
-        tri_i = npzfile['tri']
-        if i == 0:
-            x = x_i
-            y = y_i
-            z = z_i
-            dz = dz_i
-            tri = tri_i
-            nNodes = len(x)
-        else:
-            x = np.append(x, x_i, axis=0)
-            y = np.append(y, y_i, axis=0)
-            z = np.append(z, z_i, axis=0)
-            dz = np.append(dz, dz_i, axis=0)
-            tri = np.append(tri, tri_i + nNodes, axis=0)
-            nNodes = len(x)             
-    x_1_0 = dz[:,0]
-    ensemble_size = 8
-    ensemble_index = 0
-    for i in range(0, 8):
-        npzfile = np.load(base_dir+str(ensemble_size)+'/'+str(ensemble_index)+'/mirror_data_' + str(i) + '.npz')
-        x_i = npzfile['x']
-        y_i = npzfile['y']
-        z_i = 0. * x_i
-        dz_i = npzfile['dz']
-        tri_i = npzfile['tri']
-        if i == 0:
-            x = x_i
-            y = y_i
-            z = z_i
-            dz = dz_i
-            tri = tri_i
-            nNodes = len(x)
-        else:
-            x = np.append(x, x_i, axis=0)
-            y = np.append(y, y_i, axis=0)
-            z = np.append(z, z_i, axis=0)
-            dz = np.append(dz, dz_i, axis=0)
-            tri = np.append(tri, tri_i + nNodes, axis=0)
-            nNodes = len(x)                        
-    x_8_0 = dz[:,3] 
-
-    plt.figure()
-    plt.plot(x_1_0)
-    plt.plot(x_8_0) 
-
-    plt.figure()
-    plt.plot(x_1_0-x_8_0)     
-    '''
-
-    #triang = mtri.Triangulation(x, y)
-
-    plot_kde_2D(x, y, 50, 230, 50, 230, ngridx=200, ngridy=200)
-
-    scales = np.linspace(0.2, 0.3, 20)
-
-    for scale in scales:
-        #150,800,150,800
-        print(x.shape)
-        print(y.shape)
-        print(optical_coefficients_all_1.shape)
-        irregularly_tol_plot(x,
-                             y,
-                             optical_coefficients_all_1[4:9, :],
-                             50,
-                             230,
-                             50,
-                             230,
-                             ngridx=200,
-                             ngridy=200,
-                             scale=scale)
-
-        plt.xlabel('Heat conductivity spacer 1 $[$W/mK$]$')
-        plt.ylabel('Heat conductivity spacer 2 $[$W/mK$]$')
-
-        #plt.plot(345,345,'+')
-
-        scale_name = str(scale).replace(".", "_")
-        plt.savefig('qoi_scale_' + scale_name + '.pdf', dpi=100)
-
-    for i in range(0, n_qoi - 1):
-        #fig = plt.figure()
-        #ax = fig.gca(projection='3d')
-        #ax.plot_trisurf(triang, optical_coefficients_all_1[i,:], cmap='jet')
-        #irregularly_plot(x,y,optical_coefficients_all_1[i,:],150,1000,150,1000)
-        #irregularly_plot(x,y,optical_coefficients_all_1[i,:],100,800,100,800)
-        scale = 1
-        if i == 5 or i == 6:
-            scale = 1000
-
-        fig, cbar = irregularly_plot(x,
-                                     y,
-                                     optical_coefficients_all_1[i, :],
-                                     50,
-                                     230,
-                                     50,
-                                     230,
-                                     ngridx=2000,
-                                     ngridy=2000,
-                                     scale=scale)
-
-        plt.xlabel('Heat conductivity spacer 1 $[$W/mK$]$')
-        plt.ylabel('Heat conductivity spacer 2 $[$W/mK$]$')
-
-        #plt.plot(345,345,'+')
-
-        if i == 0:
-            plt.title('Maximal temperature on the mirror surface')
-            cbar.set_label('Temperature $[^\circ$C$]$')
-            id_name = 'max_temp'
-            xlabel = 'Temperature $[^\circ$C$]$'
-            ylabel = 'pdf $[1/ \,^\circ$C$]$'
-            x_min = 100
-            x_max = 150
-        if i == 1:
-            plt.title('Minimal temperature on the mirror surface')
-            cbar.set_label('Temperature $[^\circ$C$]$')
-            id_name = 'min_temp'
-            xlabel = 'Temperature $[^\circ$C$]$'
-            ylabel = 'pdf $[1/ \,^\circ$C$]$'
-            x_min = 100
-            x_max = 150
-        if i == 2:
-            plt.title('Mean temperature on the mirror surface')
-            cbar.set_label('Temperature $[^\circ$C$]$')
-            id_name = 'mean_temp'
-            xlabel = 'Temperature $[^\circ$C$]$'
-            ylabel = 'pdf $[1/ \,^\circ$C$]$'
-            x_min = 100
-            x_max = 150
-        if i == 3:
-            plt.title('Mean z displacement of the mirror surface')
-            cbar.set_label('Displacement $[$mm$]$')
-            id_name = 'mean_z'
-            xlabel = 'Displacement $[$mm$]$'
-            ylabel = 'pdf $[1/ mm]$'
-            x_min = 0.008
-            x_max = 0.016
-        if i == 4:
-            plt.title('Translation')
-            cbar.set_label('Displacement $[$mm$]$')
-            id_name = 'translation'
-            xlabel = 'Displacement $[$mm$]$'
-            ylabel = 'pdf $[1/ mm]$'
-            x_min = 0.024
-            x_max = 0.03
-        if i == 5:
-            plt.title('Rotation y')
-            cbar.set_label('$[$mrads$]$')
-            id_name = 'rotation_y'
-            xlabel = '$[$mrads$]$'
-            ylabel = 'pdf $[1/ mrads]$'
-            x_min = 0.
-            x_max = 0.1
-        if i == 6:
-            plt.title('Rotation x')
-            cbar.set_label('$[$mrads$]$')
-            id_name = 'rotation_x'
-            xlabel = '$[$mrads$]$'
-            ylabel = 'pdf $[1/ mrads]$'
-            x_min = -0.1
-            x_max = 0.01
-        if i == 7:
-            plt.title('Curvature')
-            cbar.set_label('$[$mm$]$')
-            id_name = 'curvature'
-            xlabel = '$[$mm$]$'
-            ylabel = 'pdf $[1/ mm]$'
-            x_min = -0.02
-            x_max = 0.01
-        if i == 8:
-            plt.title('Irregularity')
-            cbar.set_label('$[$mm$]$')
-            id_name = 'irregularity'
-            xlabel = '$[$mm$]$'
-            ylabel = 'pdf $[1/ mm]$'
-            x_min = 0.004
-            x_max = 0.007
-
-        plt.savefig("qoi_" + str(i) + ".pdf", dpi=100)
-
-        plot_kde_1D(optical_coefficients_all_1[i, :] * scale,
-                    id_name,
-                    xlabel,
-                    ylabel,
-                    x_min,
-                    x_max,
-                    nx=1000)
-
-        tmp = np.zeros((len(x), 3))
-        tmp[:, 0] = x
-        tmp[:, 1] = y
-        tmp[:, 2] = optical_coefficients_all_1[i, :]
-
-        np.savetxt("qoi_" + str(i) + ".txt", tmp)
-
-        if i == n_qoi - 1:
-            radius = 578.8807505281204
-            x_circle = np.linspace(130, 560, 1000)
-            #plt.plot(x_circle,np.sqrt(radius**2-x_circle**2))
-        #ax.scatter(x, y, optical_coefficients_all_1[i,:])
-
-    for i in range(0, n_qoi):
-        fig = plt.figure()
-        ax = fig.gca(projection='3d')
-
-        print('-------')
-        print(np.amax(optical_coefficients_all_1[i, :]))
-        print(np.amin(optical_coefficients_all_1[i, :]))
-
-        #if i == n_qoi-1:
-        #    z_max = 0.000133
-        #    z_min = 0.000131
-
-        #    x_new,y_new,z_new = clip_scater(x, y, optical_coefficients_all_1[i,:],[300, 400],[300, 400],[z_min, z_max])
-        #else:
-        x_new, y_new, z_new = x, y, optical_coefficients_all_1[i, :]
-
-        ax.scatter(x_new, y_new, z_new)
-
-        #if i == n_qoi-1:
-        #    ax.set_xlim(300, 400)
-        #    ax.set_ylim(300, 400)
-        #    ax.set_zlim(z_min, z_max)
-
-    #fig = plt.figure()
-    #ax = fig.gca(projection='3d')
-    #for i in range(0, 3):
-    #    ax.plot_trisurf(triang, optical_coefficients_all_1[i,:], cmap='jet')
-    '''   
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')
-    ax.scatter(optical_coefficients_all[0,:], optical_coefficients_all[1,:], optical_coefficients_all[2,:])
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')
-    ax.scatter(optical_coefficients_all[0,:], optical_coefficients_all[1,:], optical_coefficients_all[3,:])
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')    
-    ax.scatter(optical_coefficients_all[0,:], optical_coefficients_all[1,:], optical_coefficients_all[4,:])
-    '''
-
-    #kernel = compute_kde(optical_coefficients_all)
-
-    #plot_kde(kernel,[0.0915,0.94],[1.78638639e-04,2.01983639e-04],[-5.16471018e-05,-6.05417325e-02,4.14012494e-02],[0,1])
-
-    qoi = optical_coefficients_all_1[-1, :]
-
-    not_blurred = np.sum(qoi) / float(len(qoi))
-    blurred = 1. - not_blurred
-
-    print('not blurred')
-    print(not_blurred)
-    print('blurred')
-    print(blurred)
-
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/mirror_2.py b/katoptron/Juelich/UQ/mirror_2.py
deleted file mode 100644
index ac1edaee..00000000
--- a/katoptron/Juelich/UQ/mirror_2.py
+++ /dev/null
@@ -1,73 +0,0 @@
-import numpy as np
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-import matplotlib.tri as mtri
-
-from katoptron.Juelich.UQ.kde import *
-import katoptron.utilities as u
-from numpy import linalg as LA
-
-
-def compute_qoi(base_dir, ensemble_size, ensemble_index, l):
-    OAX, OAY = 0.0595, 0.017
-    npzfile = np.load(base_dir + str(ensemble_size) + '/' +
-                      str(ensemble_index) + '/mirror_data_all.npz')
-    x = npzfile['x']
-    y = npzfile['y']
-    z = 0. * x
-    dz = npzfile['dz']
-    T = npzfile['T']
-    tri = npzfile['tri']
-
-    fig = plt.figure()
-    axtri = plt.tricontourf(x, y, tri, T[:, l], vmin=330., vmax=375.)
-    cb = fig.colorbar(axtri, orientation="horizontal")
-    return x, y, tri, T[:, l]
-
-
-def main():
-
-    N = 8
-    # '/Volumes/HD_SONY/juelich/k_conductivity/QoI_results_7/'
-    base_dir = '/Users/kimliegeois/Desktop/QoI_results_7/'
-    n_qoi = 5
-    n_rand = 3
-    ensemble_size = 1
-
-    optical_coefficients_all = np.zeros((n_qoi, N))
-    random_variables = np.zeros((n_rand, N))
-
-    ensemble_size = 1
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        for l in range(0, ensemble_size):
-            x, y, tri, dz = compute_qoi(base_dir, ensemble_size,
-                                        ensemble_index, l)
-            if l == 0 and ensemble_index == 0:
-                dz_1 = dz.reshape((len(dz), 1))
-            else:
-                dz_1 = np.append(dz_1, dz.reshape((len(dz), 1)), axis=1)
-    ensemble_size = 8
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        for l in range(0, ensemble_size):
-            x, y, tri, dz = compute_qoi(base_dir, ensemble_size,
-                                        ensemble_index, l)
-            if l == 0 and ensemble_index == 0:
-                dz_8 = dz.reshape((len(dz), 1))
-            else:
-                dz_8 = np.append(dz_8, dz.reshape((len(dz), 1)), axis=1)
-
-    for i in range(0, N):
-        #fig = plt.figure()
-        #axtri = plt.tricontourf(x, y, tri, np.abs(dz_1[:,i]-dz_8[:,i])/dz_1[:,i] )
-        #cb = fig.colorbar(axtri, orientation="horizontal")
-        print(LA.norm(dz_1[:, i] - dz_8[:, i]))
-        print(LA.norm(dz_1[:, i]))
-        print((LA.norm(dz_1[:, i] - dz_8[:, i]) / LA.norm(dz_1[:, i])))
-        print('-----')
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/mirror_PCE.py b/katoptron/Juelich/UQ/mirror_PCE.py
deleted file mode 100644
index 1e01230b..00000000
--- a/katoptron/Juelich/UQ/mirror_PCE.py
+++ /dev/null
@@ -1,235 +0,0 @@
-import numpy as np
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-import matplotlib.tri as mtri
-from matplotlib import cm
-
-import os
-
-from katoptron.Juelich.UQ.kde import *
-import katoptron.utilities as u
-
-import scipy as sc
-
-
-def build_exponents_L2(order):
-    exponents = np.zeros(((order + 1)**2, 2), dtype=int)
-    exponents[:, 0], exponents[:, 1] = np.divmod(np.arange((order + 1)**2),
-                                                 order + 1)
-    return exponents
-
-
-def build_exponents_L1(order):
-    exponents = build_exponents_L2(order)
-    tmp = exponents[np.where((exponents.T[0] + exponents.T[1]) <= order), :]
-    return tmp[0, :, :]
-
-
-def build_PCE_system(x,
-                     y,
-                     weights,
-                     exponents,
-                     p0=np.array([0, 0]),
-                     scale=np.array([1, 1]),
-                     monomial=True):
-    n = len(x)
-    m = exponents.shape[0]
-    Z = np.zeros((n, m))
-    W = np.zeros((n, n))
-
-    if not monomial:
-        u = 1. - (x - 30.) / 76.
-        v = -1. + (y - 30.) / 76.
-
-    for i in range(0, m):
-        if monomial:
-            Z[:, i] = (((x - p0[0]) / scale[0]))**exponents[i, 0] * (
-                ((y - p0[1]) / scale[1]))**exponents[i, 1]
-        else:
-            p_m_x = np.ones(u.shape)
-            index = np.argwhere(v < 1)
-            p_m_x[index] = (
-                (2 * u[index] + v[index] + 1) / (1 - v[index]))
-            p_m = sc.special.eval_legendre(exponents[i, 0], p_m_x)
-            p_n = sc.special.eval_jacobi(exponents[i, 1],
-                                         2 * exponents[i, 0] + 1, 0, v)
-            Z[:, i] = p_m * (((1 - v) / 2))**exponents[i, 0] * p_n
-    for i in range(0, n):
-        W[i, i] = weights[i]
-
-    ZTW = Z.T.dot(W)
-    ZTWZ = ZTW.dot(Z)
-
-    ZTWZinv = np.linalg.pinv(ZTWZ)
-    Ainv = ZTWZinv.dot(ZTW)
-    return Ainv
-
-
-def evaluate_PCE(x,
-                 y,
-                 coefficients,
-                 exponents,
-                 p0=np.array([0, 0]),
-                 scale=np.array([1, 1]),
-                 monomial=True):
-    n = len(x)
-    m = exponents.shape[0]
-    z = np.zeros((n, ))
-
-    if not monomial:
-        u = 1. - (x - 30.) / 76.
-        v = -1. + (y - 30.) / 76.
-
-    for i in range(0, m):
-        if monomial:
-            z = z + coefficients[i] * (
-                ((x - p0[0]) / scale[0]))**exponents[i, 0] * (
-                    ((y - p0[1]) / scale[1]))**exponents[i, 1]
-        else:
-            p_m_x = np.ones(u.shape)
-            index = np.argwhere(v < 1)
-            p_m_x[index] = (
-                (2 * u[index] + v[index] + 1) / (1 - v[index]))
-            p_m = sc.special.eval_legendre(exponents[i, 0], p_m_x)
-            p_n = sc.special.eval_jacobi(exponents[i, 1],
-                                         2 * exponents[i, 0] + 1, 0, v)
-            z = z + coefficients[i] * p_m * (
-                ((1 - v) / 2))**exponents[i, 0] * p_n
-    return z
-
-
-def triangular_mesh(n_x, n_y, x_min=30, x_max=180, y_min=30, y_max=180):
-    x = np.linspace(x_min, x_max, n_x, endpoint=True)
-    y = np.linspace(y_min, y_max, n_y, endpoint=True)
-    x, y = np.meshgrid(x, y)
-    x = x.flatten()
-    y = y.flatten()
-
-    x_TRI = x[np.where(x >= y)]
-    y_TRI = y[np.where(x >= y)]
-
-    tri = mtri.Triangulation(x_TRI, y_TRI)
-
-    return x_TRI, y_TRI, tri
-
-
-def compute_coeff(Ainv, z):
-    coefficients = Ainv.dot(z)
-    return coefficients
-
-
-def write_patch(tri, z, filename):
-    f = open(filename + "_data.txt", "w+")
-    print("x y c", file=f)
-    for i in range(0, tri.triangles.shape[0]):
-        for j in range(0, 3):
-            index = tri.triangles[i, j]
-            print(str(tri.x[index]) + " " + str(
-                tri.y[index]) + " " + str(z[index]), file=f)
-        print(" ", file=f)
-
-    f.close()
-    f = open(filename + "_range.txt", "w+")
-    print(np.amin(z), file=f)
-    print(np.amax(z), file=f)
-    f.close()
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-
-    N = 20
-    loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) + '.npz')
-    samples = loaded['samples']
-    N = samples.shape[0]
-
-    x = samples[0:N, 0]
-    y = samples[0:N, 1]
-    weights = loaded['weights']
-
-    #qois = np.load('../katoptron_Juelich_UQ_mirror/qois_xiao.data.npy')
-    qois = np.load('../katoptron_Juelich_UQ_mirror/qois_xiao_2.data.npy')
-    qois = np.load('../katoptron_Juelich_UQ_mirror/A2_xiao_20.data.npy')
-    qois = np.load('../katoptron_Juelich_UQ_mirror/B2_xiao_20.data.npy')
-
-    preloads_A2_N = np.loadtxt(
-        '../katoptron_Juelich_UQ_preload/preloads_A2_N.txt')
-    preloads_B2_N = np.loadtxt(
-        '../katoptron_Juelich_UQ_preload/preloads_B2_N.txt')
-
-    x_0 = [30, 30]
-    scale = [150, 150]
-
-    n_x = 30
-    n_y = 30
-
-    monomial = False
-
-    order = 10
-    exponents = build_exponents_L1(order)
-    Ainv = build_PCE_system(x,
-                            y,
-                            weights,
-                            exponents,
-                            x_0,
-                            scale,
-                            monomial=monomial)
-
-    for z_index in range(0, 9):
-        z = qois[z_index, :]
-        filename = 'qoi_' + str(z_index)
-
-        coefficients = compute_coeff(Ainv, z)
-        print(len(coefficients))
-
-        x_PCE, y_PCE, tri = triangular_mesh(n_x, n_y)
-
-        z_PCE = evaluate_PCE(x_PCE,
-                             y_PCE,
-                             coefficients,
-                             exponents,
-                             x_0,
-                             scale,
-                             monomial=monomial)
-
-        write_patch(tri, z_PCE, filename)
-
-    for z_index in range(0, 3):
-        z = preloads_A2_N[:, z_index]
-        filename = 'qoi_preload_A_' + str(z_index)
-
-        coefficients = compute_coeff(Ainv, z)
-        print(len(coefficients))
-
-        x_PCE, y_PCE, tri = triangular_mesh(n_x, n_y)
-
-        z_PCE = evaluate_PCE(x_PCE,
-                             y_PCE,
-                             coefficients,
-                             exponents,
-                             x_0,
-                             scale,
-                             monomial=monomial)
-
-        write_patch(tri, -0.001 * z_PCE, filename)
-        z = preloads_B2_N[:, z_index]
-        filename = 'qoi_preload_B_' + str(z_index)
-
-        coefficients = compute_coeff(Ainv, z)
-        print(len(coefficients))
-
-        x_PCE, y_PCE, tri = triangular_mesh(n_x, n_y)
-
-        z_PCE = evaluate_PCE(x_PCE,
-                             y_PCE,
-                             coefficients,
-                             exponents,
-                             x_0,
-                             scale,
-                             monomial=monomial)
-
-        write_patch(tri, -0.001 * z_PCE, filename)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/mirror_PCE_convergence.py b/katoptron/Juelich/UQ/mirror_PCE_convergence.py
deleted file mode 100644
index 20728794..00000000
--- a/katoptron/Juelich/UQ/mirror_PCE_convergence.py
+++ /dev/null
@@ -1,353 +0,0 @@
-import numpy as np
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-import matplotlib.tri as mtri
-from matplotlib import cm
-
-import os
-
-from katoptron.Juelich.UQ.kde import *
-import katoptron.utilities as u
-
-import scipy as sc
-
-
-def build_exponents_L2(order):
-    exponents = np.zeros(((order + 1)**2, 2), dtype=int)
-    exponents[:, 0], exponents[:, 1] = np.divmod(np.arange((order + 1)**2),
-                                                 order + 1)
-    return exponents
-
-
-def build_exponents_L1(order):
-    exponents = build_exponents_L2(order)
-    tmp = exponents[np.where((exponents.T[0] + exponents.T[1]) <= order), :]
-    return tmp[0, :, :]
-
-
-def build_PCE_system(x,
-                     y,
-                     weights,
-                     exponents,
-                     p0=np.array([0, 0]),
-                     scale=np.array([1, 1]),
-                     monomial=True):
-    n = len(x)
-    m = exponents.shape[0]
-    Z = np.zeros((n, m))
-    W = np.zeros((n, n))
-
-    if not monomial:
-        u = 1. - (x - 30.) / 76.
-        v = -1. + (y - 30.) / 76.
-
-    for i in range(0, m):
-        if monomial:
-            Z[:, i] = (((x - p0[0]) / scale[0]))**exponents[i, 0] * (
-                ((y - p0[1]) / scale[1]))**exponents[i, 1]
-        else:
-            p_m_x = np.ones(u.shape)
-            index = np.argwhere(v < 1)
-            p_m_x[index] = (
-                (2 * u[index] + v[index] + 1) / (1 - v[index]))
-            p_m = sc.special.eval_legendre(exponents[i, 0], p_m_x)
-            p_n = sc.special.eval_jacobi(exponents[i, 1],
-                                         2 * exponents[i, 0] + 1, 0, v)
-            Z[:, i] = p_m * (((1 - v) / 2))**exponents[i, 0] * p_n
-    for i in range(0, n):
-        W[i, i] = weights[i]
-
-    ZTW = Z.T.dot(W)
-    ZTWZ = ZTW.dot(Z)
-
-    ZTWZinv = np.linalg.pinv(ZTWZ)
-    Ainv = ZTWZinv.dot(ZTW)
-    return Ainv
-
-
-def evaluate_PCE(x,
-                 y,
-                 coefficients,
-                 exponents,
-                 p0=np.array([0, 0]),
-                 scale=np.array([1, 1]),
-                 monomial=True):
-    n = len(x)
-    m = exponents.shape[0]
-    z = np.zeros((n, ))
-
-    if not monomial:
-        u = 1. - (x - 30.) / 76.
-        v = -1. + (y - 30.) / 76.
-
-    for i in range(0, m):
-        if monomial:
-            z = z + coefficients[i] * (
-                ((x - p0[0]) / scale[0]))**exponents[i, 0] * (
-                    ((y - p0[1]) / scale[1]))**exponents[i, 1]
-        else:
-            p_m_x = np.ones(u.shape)
-            index = np.argwhere(v < 1)
-            p_m_x[index] = (
-                (2 * u[index] + v[index] + 1) / (1 - v[index]))
-            p_m = sc.special.eval_legendre(exponents[i, 0], p_m_x)
-            p_n = sc.special.eval_jacobi(exponents[i, 1],
-                                         2 * exponents[i, 0] + 1, 0, v)
-            z = z + coefficients[i] * p_m * (
-                ((1 - v) / 2))**exponents[i, 0] * p_n
-    return z
-
-
-def triangular_mesh(n_x, n_y, x_min=30, x_max=180, y_min=30, y_max=180):
-    x = np.linspace(x_min, x_max, n_x, endpoint=True)
-    y = np.linspace(y_min, y_max, n_y, endpoint=True)
-    x, y = np.meshgrid(x, y)
-    x = x.flatten()
-    y = y.flatten()
-
-    x_TRI = x[np.where(x >= y)]
-    y_TRI = y[np.where(x >= y)]
-
-    tri = mtri.Triangulation(x_TRI, y_TRI)
-
-    return x_TRI, y_TRI, tri
-
-
-def compute_coeff(Ainv, z):
-    coefficients = Ainv.dot(z)
-    return coefficients
-
-
-def write_patch(tri, z, filename):
-    f = open(filename + "_data.txt", "w+")
-    print("x y c", file=f)
-    for i in range(0, tri.triangles.shape[0]):
-        for j in range(0, 3):
-            index = tri.triangles[i, j]
-            print(str(tri.x[index]) + " " + str(
-                tri.y[index]) + " " + str(z[index]), file=f)
-        print(" ", file=f)
-
-    f.close()
-    f = open(filename + "_range.txt", "w+")
-    print(np.amin(z), file=f)
-    print(np.amax(z), file=f)
-    f.close()
-
-
-def compute_qoi(base_dir, ensemble_size, ensemble_index, l):
-    OAX, OAY = 0.0595, 0.017
-    npzfile = np.load(base_dir + str(ensemble_size) + '/' +
-                      str(ensemble_index) + '/mirror_data_all.npz')
-    x = npzfile['x']
-    y = npzfile['y']
-    z = 0. * x
-    dz = npzfile['dz']
-    T = npzfile['T']
-    tri = npzfile['tri']
-    optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz[:, l], "m", np.array([OAX, OAY]))
-    print(optical_coefficients)
-    return [
-        np.max(T[:, l]),
-        np.min(T[:, l]),
-        np.mean(T[:, l]), 1000 * np.mean(dz[:, l]), optical_coefficients[0],
-        optical_coefficients[1], optical_coefficients[2],
-        optical_coefficients[3], optical_coefficients[4]
-    ]
-
-
-def read_data(order, base_dir, ax, display=False):
-
-    result_file = 'qois_' + str(order) + '.npz'
-    if os.path.isfile(result_file):
-        loaded = np.load(result_file)
-        qois = loaded['qois']
-        samples = loaded['samples']
-        weights = loaded['weights']
-        if display:
-            #fig = plt.figure()
-            #ax = fig.gca(projection='3d')
-            ax.scatter(samples[:, 0], samples[:, 1], qois[:, -2])
-
-    else:
-        file_dir = os.path.dirname(__file__)
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(order) +
-                         '.npz')
-        samples = loaded['samples']
-        weights = loaded['weights']
-        N = samples.shape[0]
-
-        order_base_dir = base_dir + str(order) + '/1/'
-
-        n_qois = 9
-
-        qois = np.zeros((N, n_qois))
-
-        for i in range(0, N):
-
-            loaded = np.load(order_base_dir + str(i) + '/mirror_data_all.npz')
-            T = loaded['T']
-            loaded = np.load(order_base_dir + str(i) +
-                             '/mirror_optical_results_0.npz')
-            optical_coefficients = loaded['optical_coefficients']
-
-            #qois[i, 0] = np.min(T)
-            #qois[i, 1] = np.mean(T)
-            #qois[i, 2] = np.max(T)
-            #qois[i, 3:8] = optical_coefficients
-
-            qois[i, :] = compute_qoi(base_dir + str(order) + '/', 1, i, 0)
-
-        np.savez('qois_' + str(order),
-                 qois=qois,
-                 samples=samples,
-                 weights=weights)
-
-    return qois, samples, weights
-
-
-def generate_random_samples(N):
-    tmp = np.random.rand(3*N, 2)
-    index = np.argwhere(tmp[:, 0] >= tmp[:, 1])
-
-    tmp_2 = tmp[index[0:N], :]
-
-    samples = 30. + 150*tmp_2
-
-    samples = np.reshape(samples, (N, 2))
-
-    return samples
-
-
-def main():
-    base_dir = "/Users/kimliegeois/Desktop/Juelich/order_2_30/order_"
-
-    orders = np.arange(2, 32, 2)
-    n_orders = len(orders)
-
-    x_0 = [30, 30]
-    scale = [150, 150]
-
-    monomial = False
-
-    x_PCE = np.array([180., 30.])
-    y_PCE = np.array([180., 30.])
-
-    #value = np.array([0.0109, -0.04723])
-    #which_qoi = -2
-
-    value = np.array([0.00688, 0.00742])
-    which_qoi = -1
-
-    #value = np.array([105.13469634968574, 172.45597099271995])
-    #which_qoi = 1
-
-    #value = np.array([120.26643788294894, 189.0950734335578])
-    #which_qoi = 0
-
-    error = np.zeros((n_orders, 2))
-
-    cauchy_error = np.zeros((n_orders-1, ))
-
-    N_vec = np.zeros((n_orders, 1))
-    N_vec_2 = np.zeros((n_orders, 1))
-
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')
-
-    n_real = 100000
-
-    rand_samples = generate_random_samples(n_real)
-
-    rand_z = np.zeros((n_real, len(orders)))
-
-    for i in range(0, n_orders):
-        order = orders[i]
-        qois, samples, weights = read_data(order, base_dir, ax, True)
-
-        N = len(samples[:, 0])
-
-        N_vec[i] = N
-
-        d = (order / 2)
-
-        x = samples[0:N, 0]
-        y = samples[0:N, 1]
-
-        exponents = build_exponents_L1(d)
-        Ainv = build_PCE_system(x,
-                                y,
-                                weights,
-                                exponents,
-                                x_0,
-                                scale,
-                                monomial=monomial)
-
-        coefficients = compute_coeff(Ainv, qois[:, which_qoi])
-
-        N_vec_2[i] = len(coefficients)
-
-        z_PCE = evaluate_PCE(x_PCE,
-                             y_PCE,
-                             coefficients,
-                             exponents,
-                             x_0,
-                             scale,
-                             monomial=monomial)
-
-        rand_z[:, i] = evaluate_PCE(rand_samples[:, 0],
-                                    rand_samples[:, 1],
-                                    coefficients,
-                                    exponents,
-                                    x_0,
-                                    scale,
-                                    monomial=monomial)
-
-        error[i, 0] = np.abs(z_PCE[0] - value[0])
-        error[i, 1] = np.abs(z_PCE[1] - value[1])
-
-        if i != 0:
-            cauchy_error[i -
-                         1] = np.mean(np.power(rand_z[:, i]-rand_z[:, i-1], 2))
-
-    print((error[:, 0] / value[0]))
-    print((error[:, 1] / value[1]))
-
-    tmp = np.zeros((len(orders), 2))
-    tmp[:, 0] = (orders / 2)
-
-    tmp[:, 1] = np.abs((error[:, 0] / value[0]))
-    np.savetxt('birr.txt', tmp)
-
-    tmp[:, 1] = np.abs((error[:, 1] / value[1]))
-    np.savetxt('airr.txt', tmp)
-
-    plt.figure()
-    plt.plot((orders / 2), np.abs((error[:, 0] / value[0])))
-    plt.plot((orders / 2), np.abs((error[:, 1] / value[1])))
-
-    plt.figure()
-    plt.plot((orders / 2), N_vec)
-    plt.plot((orders / 2), N_vec_2)
-
-    print(cauchy_error)
-    plt.figure()
-    plt.plot(cauchy_error)
-
-    plt.figure()
-    plt.semilogy(cauchy_error)
-
-    tmp = np.zeros((len(orders)-1, 2))
-    tmp[:, 0] = np.arange(2, 16, 1)
-    tmp[:, 1] = cauchy_error
-    np.savetxt('cauchy_error.txt', tmp)
-
-    plt.figure()
-    plt.semilogy((orders / 2), np.abs((error[:, 0] / value[0])))
-    plt.semilogy((orders / 2), np.abs((error[:, 1] / value[1])))
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/preload.py b/katoptron/Juelich/UQ/preload.py
deleted file mode 100644
index a4006b93..00000000
--- a/katoptron/Juelich/UQ/preload.py
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
-
-
-
-import numpy
-import vtk
-
-from katoptron.Juelich.post_process.vtk_post_process import *
-import os
-
-
-def compute_qoi(filename, mm=True, scale_x=1.):
-    reader = vtk.vtkXMLPUnstructuredGridReader()
-    reader.SetFileName(filename)
-    reader.Update()
-
-    scale = 1.
-    if mm:
-        scale = 1000.
-
-    OX = 0.0529999991413206 * scale * scale_x  # *10
-    OY = 0.0440000002272427 * scale * scale_x  # *10
-    OZ = -0.038604540600378885 * scale * scale_x  # *10
-    # Previously: -0.0413666241463175
-
-    F1 = compute_integrated_F(6, 8, OX, OY, OZ, 0, 0, 1, reader)
-    F2 = compute_integrated_F(7, 8, OX, OY, OZ, 0, 0, 1, reader)
-    F3 = compute_integrated_F(8, 8, OX, OY, OZ, 0, 0, 1, reader)
-    return F1, F2, F3
-
-
-def compute_and_write_preloads(base_dir, filename_out, N, ensemble_size,
-                               n_qoi):
-    preloads = np.zeros((N, n_qoi))
-
-    N_ensemble = N // ensemble_size
-    for ensemble_index in range(0, N_ensemble):
-        for l in range(0, ensemble_size):
-            filename = base_dir + str(ensemble_size) + '/' + str(
-                ensemble_index
-            ) + '/fused_mirror_assembly_mm_part_2_ast1_s' + str(l) + '.pvtu'
-            F1, F2, F3 = compute_qoi(filename)
-            preloads[ensemble_index * ensemble_size + l, 0] = F1
-            preloads[ensemble_index * ensemble_size + l, 1] = F2
-            preloads[ensemble_index * ensemble_size + l, 2] = F3
-
-    np.savetxt(filename_out, preloads)
-    return preloads
-
-
-def main():
-
-    file_dir = os.path.dirname(__file__)
-
-    compute = False
-    if compute:
-        N = 2
-        ensemble_size = 1
-        n_qoi = 3
-
-        base_dir = file_dir + \
-            '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused/MPI_2/A2/'
-        preloads_A2 = compute_and_write_preloads(base_dir, 'preloads_A2.txt',
-                                                 N, ensemble_size, n_qoi)
-        print(preloads_A2)
-
-        base_dir = file_dir + \
-            '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused/MPI_2/A2_baking/'
-        preloads_A2_baking = compute_and_write_preloads(
-            base_dir, 'preloads_A2_baking.txt', N, ensemble_size, n_qoi)
-        print(preloads_A2_baking)
-
-        base_dir = file_dir + \
-            '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused/MPI_2/B2/'
-        preloads_B2 = compute_and_write_preloads(base_dir, 'preloads_B2.txt',
-                                                 N, ensemble_size, n_qoi)
-        print(preloads_B2)
-
-        base_dir = file_dir + \
-            '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused/MPI_2/B2_baking/'
-        preloads_B2_baking = compute_and_write_preloads(
-            base_dir, 'preloads_B2_baking.txt', N, ensemble_size, n_qoi)
-        print(preloads_B2_baking)
-
-        np.savetxt('preloads_A2_dif.txt', preloads_A2 - preloads_A2_baking)
-        np.savetxt('preloads_B2_dif.txt', preloads_B2 - preloads_B2_baking)
-
-        N = 79
-
-        base_dir = file_dir + \
-            '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused_preload/MPI_2/A2/'
-        preloads_A2_N = compute_and_write_preloads(base_dir,
-                                                   'preloads_A2_N.txt', N,
-                                                   ensemble_size, n_qoi)
-
-        print(preloads_A2_N)
-
-        np.savetxt('preloads_A2_N_dif.txt',
-                   preloads_A2_N - preloads_A2_baking[0])
-
-        base_dir = file_dir + \
-            '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused_preload/MPI_2/B2/'
-        preloads_B2_N = compute_and_write_preloads(base_dir,
-                                                   'preloads_B2_N.txt', N,
-                                                   ensemble_size, n_qoi)
-
-        print(preloads_B2_N)
-
-        np.savetxt('preloads_B2_N_dif.txt',
-                   preloads_B2_N - preloads_B2_baking[0])
-    else:
-        N = 20
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) +
-                         '.npz')
-        samples = loaded['samples']
-        N = samples.shape[0]
-
-        preloads_A2_N = np.loadtxt('preloads_A2_N.txt')
-        preloads_B2_N = np.loadtxt('preloads_B2_N.txt')
-
-        tmp = np.zeros((N, 3))
-        tmp[:, 0] = samples[:, 0]
-        tmp[:, 1] = samples[:, 1]
-        tmp[:, 2] = preloads_A2_N[:, 0]
-        np.savetxt('qoi_A_P1.txt', tmp, fmt='%f')
-        tmp[:, 2] = preloads_A2_N[:, 1]
-        np.savetxt('qoi_A_P2.txt', tmp, fmt='%f')
-        tmp[:, 2] = preloads_A2_N[:, 2]
-        np.savetxt('qoi_A_P3.txt', tmp, fmt='%f')
-
-        tmp[:, 2] = preloads_B2_N[:, 0]
-        np.savetxt('qoi_B_P1.txt', tmp, fmt='%f')
-        tmp[:, 2] = preloads_B2_N[:, 1]
-        np.savetxt('qoi_B_P2.txt', tmp, fmt='%f')
-        tmp[:, 2] = preloads_B2_N[:, 2]
-        np.savetxt('qoi_B_P3.txt', tmp, fmt='%f')
-
-        print(np.amin(preloads_A2_N[:, 0]))
-        print(np.amax(preloads_A2_N[:, 0]))
-
-        print(np.amin(preloads_A2_N[:, 1]))
-        print(np.amax(preloads_A2_N[:, 1]))
-
-        print(np.amin(preloads_A2_N[:, 2]))
-        print(np.amax(preloads_A2_N[:, 2]))
-
-        print(np.amin(preloads_B2_N[:, 0]))
-        print(np.amax(preloads_B2_N[:, 0]))
-
-        print(np.amin(preloads_B2_N[:, 1]))
-        print(np.amax(preloads_B2_N[:, 1]))
-
-        print(np.amin(preloads_B2_N[:, 2]))
-        print(np.amax(preloads_B2_N[:, 2]))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/speedup.py b/katoptron/Juelich/UQ/speedup.py
deleted file mode 100644
index de8d588c..00000000
--- a/katoptron/Juelich/UQ/speedup.py
+++ /dev/null
@@ -1,409 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from katoptron.speedup import *
-import matplotlib.pyplot as plt
-import os
-
-
-def plot_iter_all_ensemble_sizes(n_samples, iter):
-    import matplotlib.pyplot as plt
-    plt.figure()
-    plt.plot(list(range(0, n_samples)),
-             iter[0][:], 'bo', markersize=8, zorder=1)
-    if iter.shape[0] >= 2:
-        plt.plot(list(range(0, n_samples)),
-                 iter[1][:], 'ro', markersize=6, zorder=2)
-    if iter.shape[0] >= 3:
-        plt.plot(list(range(0, n_samples)),
-                 iter[2][:], 'go', markersize=4, zorder=2)
-    if iter.shape[0] >= 4:
-        plt.plot(list(range(0, n_samples)),
-                 iter[3][:], 'ko', markersize=2, zorder=3)
-    plt.xlabel('sample')
-    plt.ylabel('Number of iterations to converge')
-
-
-def speedup_of_one_case(file_MC_base_dir,
-                        n_samples,
-                        ensemble_sizes,
-                        quantiles,
-                        querylines,
-                        use_waves_timers,
-                        use_teuchos_timers,
-                        per_iteration,
-                        iter_2,
-                        reduction=False):
-    import matplotlib.pyplot as plt
-
-    if reduction:
-        name = 'case_ER'
-    else:
-        name = 'case'
-
-    speedup = compute_speedup(n_samples,
-                              ensemble_sizes,
-                              file_MC_base_dir,
-                              querylines,
-                              per_iteration,
-                              quantiles,
-                              use_waves_timers,
-                              use_teuchos_timers,
-                              reduction,
-                              remove_write=True,
-                              remove_block=True)
-
-    plot_speedup(speedup, ensemble_sizes, np.arange(0, len(querylines)), name,
-                 querylines, per_iteration)
-    plt.savefig(name + '.png', dpi=400)
-
-    save_speedup(speedup, ensemble_sizes, querylines, name)
-
-    R = compute_R(n_samples, ensemble_sizes, file_MC_base_dir, quantiles,
-                  reduction)
-
-    save_R(R, name)
-
-    iter = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                        file_MC_base_dir, reduction)
-
-    # if not reduction:
-    #    iter[0][:] = iter_2[0][:]
-    if len(ensemble_sizes) == 4:
-        plot_iter_all_ensemble_sizes(n_samples, iter)
-        plt.savefig(name + '_convergence.png', dpi=400)
-        np.savetxt(name + '_convergence.txt', iter, delimiter=' ')
-
-    return iter
-
-
-def write_tex(n_samples, iter, filename):
-    f = open(filename, 'w')
-    print('\\addplot [c1, mark=*, mark size=2pt, mark options={solid}, only marks]', file=f)
-    print('table [row sep=crcr] {%', file=f)
-    for i in range(0, n_samples):
-        print(str(i) + ' ' + str(iter[0][i]) + '\\\\', file=f)
-    print('};', file=f)
-    print('\\label{pgfplots:noEP}', file=f)
-    if iter.shape[0] >= 2:
-        ensemble_size = 8
-        for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-            print('\\addplot [line width=2pt, c2]', file=f)
-            print('table [row sep=crcr] {%', file=f)
-            print(str(ensemble_size * i) + ' ' + str(
-                iter[1][ensemble_size * i]) + '\\\\', file=f)
-            print(str(ensemble_size *
-                      (i + 1)) + ' ' + str(iter[1][ensemble_size *
-                                                   (i + 1) - 1]) + '\\\\', file=f)
-            print('};', file=f)
-        print('\\label{pgfplots:s8}', file=f)
-    if iter.shape[0] >= 3:
-        ensemble_size = 16
-        for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-            print('\\addplot [line width=1.5pt, c3]', file=f)
-            print('table [row sep=crcr] {%', file=f)
-            print(str(ensemble_size * i) + ' ' + str(
-                iter[2][ensemble_size * i]) + '\\\\', file=f)
-            print(str(ensemble_size *
-                      (i + 1)) + ' ' + str(iter[2][ensemble_size *
-                                                   (i + 1) - 1]) + '\\\\', file=f)
-            print('};', file=f)
-        print('\\label{pgfplots:s16}', file=f)
-    if iter.shape[0] >= 4:
-        ensemble_size = 32
-        for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-            print('\\addplot [line width=1.pt, c4]', file=f)
-            print('table [row sep=crcr] {%', file=f)
-            print(str(ensemble_size * i) + ' ' + str(
-                iter[3][ensemble_size * i]) + '\\\\', file=f)
-            print(str(ensemble_size *
-                      (i + 1)) + ' ' + str(iter[3][ensemble_size *
-                                                   (i + 1) - 1]) + '\\\\', file=f)
-            print('};', file=f)
-        print('\\label{pgfplots:s32}', file=f)
-    f.closed
-
-
-def plot_iter_all(base_dir_ER, base_dir_NER, ensemble_sizes, n_samples):
-
-    iter_NER = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                            base_dir_NER, False)
-    iter_ER = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                           base_dir_ER, True)
-    plot_iter_all_ensemble_sizes(n_samples, iter_NER)
-    write_tex(n_samples, iter_NER, 'NER_conv.tex')
-    np.savetxt('NER_conv.txt', iter_NER)
-    np.savetxt('ordering_1.txt',
-               np.argsort(iter_NER[0, :]).astype(int),
-               fmt='%i')
-    np.savetxt('ordering_2.txt',
-               np.argsort(iter_NER[0][:]).astype(int),
-               fmt='%i')
-    plot_iter_all_ensemble_sizes(n_samples, iter_ER)
-    write_tex(n_samples, iter_ER, 'ER_conv.tex')
-    np.savetxt('ER_conv.txt', iter_ER)
-
-    order = np.argsort(iter_NER[0, :])
-
-    tmp = iter_NER[0][order]
-
-    plt.figure()
-    plt.plot(iter_NER[0][:])
-    plt.savefig('no_order_1.png', dpi=400)
-
-    iter_NER[0][:] = tmp
-
-    plt.figure()
-    plt.plot(tmp)
-    plt.savefig('order_1.png', dpi=400)
-
-    tmp = iter_ER[0][order]
-
-    plt.figure()
-    plt.plot(iter_ER[0][:])
-    plt.savefig('no_order_2.png', dpi=400)
-
-    iter_ER[0][:] = tmp
-
-    write_tex(n_samples, iter_NER, 'NER_conv_2.tex')
-    write_tex(n_samples, iter_ER, 'ER_conv_2.tex')
-
-    plt.figure()
-    plt.plot(tmp)
-    plt.savefig('order_2.png', dpi=400)
-
-
-def CPU_time_per_one_case(base_dir,
-                          n_samples,
-                          ensemble_sizes,
-                          quantiles,
-                          querylines,
-                          use_waves_timers,
-                          use_teuchos_timers,
-                          per_iteration,
-                          filename_CPU,
-                          filename_speed_up,
-                          total_id,
-                          write_id,
-                          block_id,
-                          per_ensemble=True):
-
-    timers = read_timers_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                            base_dir, querylines,
-                                            use_waves_timers,
-                                            use_teuchos_timers)
-
-    f = open(filename_CPU, 'w')
-    print(timers.shape, file=f)
-
-    for i in range(0, timers.shape[2]):
-        print(querylines[i], file=f)
-        string = ''
-        for e in range(0, timers.shape[0]):
-            if per_ensemble:
-                current_timer = (np.sum(timers[e, :, i]) / n_samples)
-                if i == total_id:
-                    current_timer -= (
-                        np.sum(timers[e, :, write_id]) / n_samples)
-                    current_timer -= (
-                        np.sum(timers[e, :, block_id]) / n_samples)
-
-            else:
-                current_timer = (np.sum(
-                    timers[e, :, i]) / (n_samples * ensemble_sizes[e]))
-                if i == total_id:
-                    current_timer -= (np.sum(timers[e, :, write_id]) / (
-                        n_samples * ensemble_sizes[e]))
-                    current_timer -= (np.sum(timers[e, :, block_id]) / (
-                        n_samples * ensemble_sizes[e]))
-
-            string = string + str(round(current_timer, 3)) + ' & '
-        print(string, file=f)
-        print(' ', file=f)
-    f.closed
-
-    f = open(filename_speed_up, 'w')
-    print(timers.shape, file=f)
-
-    for i in range(0, timers.shape[2]):
-        print(querylines[i], file=f)
-        string = ''
-        for e in range(0, timers.shape[0]):
-            if e == 0:
-                current_timer_s1 = np.sum(timers[0, :, i])
-                if i == total_id:
-                    current_timer_s1 -= np.sum(timers[0, :, write_id])
-                    current_timer_s1 -= np.sum(timers[0, :, block_id])
-
-            current_timer = (np.sum(timers[e, :, i]) / ensemble_sizes[e])
-            if i == total_id:
-                current_timer -= (np.sum(
-                    timers[e, :, write_id]) / ensemble_sizes[e])
-                current_timer -= (np.sum(
-                    timers[e, :, block_id]) / ensemble_sizes[e])
-
-            string = string + str(round((current_timer_s1 / current_timer),
-                                        3)) + ' & '
-        print(string, file=f)
-        print(' ', file=f)
-    f.closed
-
-
-def analysis_one_case(directory,
-                      base_dir,
-                      n_samples,
-                      ensemble_sizes,
-                      quantiles,
-                      querylines,
-                      use_waves_timers,
-                      use_teuchos_timers,
-                      per_iteration,
-                      ensemble_reduction=False):
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    iter = speedup_of_one_case(base_dir, n_samples, ensemble_sizes, quantiles,
-                               querylines, use_waves_timers,
-                               use_teuchos_timers, per_iteration, np.array([]),
-                               ensemble_reduction)
-
-    CPU_time_per_one_case(base_dir, n_samples, ensemble_sizes, quantiles,
-                          querylines, use_waves_timers, use_teuchos_timers,
-                          per_iteration, 'average_CPU.txt',
-                          'average_speed_up.txt', 7, 8, 21)
-
-    #plot_iter_all(base_dir_ER, base_dir_NER, ensemble_sizes, n_samples)
-    iters = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes, base_dir,
-                                         ensemble_reduction)
-    plot_iter_all_ensemble_sizes(n_samples, iters)
-    write_tex(n_samples, iters, 'conv.tex')
-
-    os.chdir('..')
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve (level=2)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : smoothing (level=1)',
-        'MueLu: Hierarchy: Solve : coarse (level=2)',
-        'Belos: PseudoBlockGmresSolMgr total solve time',
-        'MueLu: Hierarchy: Setup (total)', 'create the block matrix'
-    ]
-    use_waves_timers = np.array([0, 7, 8, 21], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, False, False,
-        False
-    ]
-
-    n_samples = 64
-
-    ensemble_sizes = [1, 8, 16]
-
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/ER/mpi_ER/MPI_2'
-
-    directory = 'option_A_mpi_2_ER'
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, True)
-
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/NER/mpi_NER/MPI_2'
-
-    directory = 'option_A_mpi_2_NER'
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, False)
-
-    ensemble_sizes = [1, 8, 16, 32]
-
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/ER/mpi_ER/MPI_4'
-
-    directory = 'option_A_mpi_4_ER'
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, True)
-
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/NER/mpi_NER/MPI_4'
-
-    directory = 'option_A_mpi_4_NER'
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, False)
-
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/ER/mpi_ER/MPI_8'
-
-    directory = 'option_A_mpi_8_ER'
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, True)
-
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/NER/mpi_NER/MPI_8'
-
-    directory = 'option_A_mpi_8_NER'
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, False)
-
-    n_samples = 32
-    ensemble_sizes = [1, 8, 16]
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/mpi_4/MPI_16'
-
-    directory = 'option_A_mpi_16_all'
-    print(directory)
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, False)
-
-    n_samples = 32
-    ensemble_sizes = [1, 8, 16, 32]
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/mpi_4/MPI_32'
-
-    directory = 'option_A_mpi_32_all'
-    print(directory)
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, False)
-
-    n_samples = 16
-    ensemble_sizes = [1, 8, 16]
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/mpi_5/MPI_32'
-
-    directory = 'option_A_mpi_32_all_2'
-    print(directory)
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, False)
-
-    n_samples = 32
-    ensemble_sizes = [1, 8, 16, 32]
-    base_dir = '/Users/kimliegeois/Desktop/Juelich/mpi_6/MPI_32'
-
-    directory = 'option_A_mpi_32_all_3'
-    print(directory)
-    analysis_one_case(directory, base_dir, n_samples, ensemble_sizes,
-                      quantiles, querylines, use_waves_timers,
-                      use_teuchos_timers, per_iteration, False)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/test_halton.py b/katoptron/Juelich/UQ/test_halton.py
deleted file mode 100644
index 64864a76..00000000
--- a/katoptron/Juelich/UQ/test_halton.py
+++ /dev/null
@@ -1,67 +0,0 @@
-
-import numpy as np
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-import matplotlib.tri as mtri
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-import katoptron.utilities as u
-from scipy.stats import lognorm
-
-
-def main():
-
-    N = 640
-    n_rand = 2
-
-    halton_points = np.zeros((n_rand, N))
-
-    for i in range(0, N):
-        halton_points[:, i] = halton(i + 1, n_rand)
-
-    #fig = plt.figure()
-    # plt.scatter(halton_points[0,:],halton_points[1,:])
-    #ax = fig.gca()
-    # ax.set_aspect('equal')
-
-    np.random.seed(42)
-
-    sigma = 0.15
-    mu = np.log(345) + sigma**2  # mode = 345
-
-    randomVariable_1 = np.random.lognormal(mu, sigma, N)
-    randomVariable_2 = np.random.lognormal(mu, sigma, N)
-
-    randomVariable_1_halton = lognorm.ppf(halton_points[0, :],
-                                          sigma,
-                                          scale=np.exp(mu))
-    randomVariable_2_halton = lognorm.ppf(halton_points[1, :],
-                                          sigma,
-                                          scale=np.exp(mu))
-
-    randomVariable_halton = lognormal(halton_points, [mu, mu], [sigma, sigma])
-
-    #randomVariable_1_halton = lognorm.rvs(sigma,scale=np.exp(mu), size=N, random_state=42)
-    #randomVariable_2_halton = lognorm.rvs(sigma,scale=np.exp(mu), size=N)
-
-    #fig = plt.figure()
-    # plt.scatter(randomVariable_1,randomVariable_2)
-    #ax = fig.gca()
-    # ax.set_aspect('equal')
-
-    #fig = plt.figure()
-    # plt.scatter(randomVariable_1_halton,randomVariable_2_halton)
-    #ax = fig.gca()
-    # ax.set_aspect('equal')
-
-    fig = plt.figure()
-    plt.scatter(randomVariable_1, randomVariable_2)
-    plt.scatter(randomVariable_halton[0, :], randomVariable_halton[1, :])
-    ax = fig.gca()
-    ax.set_aspect('equal')
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/UQ/test_kde.py b/katoptron/Juelich/UQ/test_kde.py
deleted file mode 100644
index 569dd1d3..00000000
--- a/katoptron/Juelich/UQ/test_kde.py
+++ /dev/null
@@ -1,49 +0,0 @@
-
-import numpy as np
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-
-from katoptron.Juelich.UQ.kde import *
-
-
-def main():
-
-    N = 1000
-    g1 = np.array([0.6 + 0.6 * np.random.rand(N),
-                   np.random.rand(N), 0.4+0.1*np.random.rand(N)])
-    g2 = np.array([0.4+0.3 * np.random.rand(N), 0.5 *
-                   np.random.rand(N), 0.1*np.random.rand(N)])
-    g3 = np.array([0.3*np.random.rand(N), 0.3 *
-                   np.random.rand(N), 0.3*np.random.rand(N)])
-
-    g_total = np.concatenate((g1, g2, g3), axis=1)
-    x, y, z = g_total
-
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')
-    ax.scatter(x, y, z)
-
-    kernel = compute_kde(g_total)
-    plot_kde(kernel, [-0.5, 1.5], [-0.5, 1.5], [0.05], [0, 1])
-    plot_kde(kernel, [-0.5, 1.5], [-0.5, 1.5], [0.15], [0, 1])
-    plot_kde(kernel, [-0.5, 1.5], [-0.5, 1.5], [0.25], [0, 1])
-    plot_kde(kernel, [-0.5, 1.5], [-0.5, 1.5], [0.35], [0, 1])
-    plot_kde(kernel, [-0.5, 1.5], [-0.5, 1.5], [0.45], [0, 1])
-    plot_kde(kernel, [-0.5, 1.5], [-0.5, 1.5], [0.55], [0, 1])
-
-    np.random.seed(42)
-    p1 = box_prob_MC(kernel, [0, -0.5, 0.3], [1.5, 1.5, 0.6], 100000)
-    np.random.seed(42)
-    p2 = box_prob_MC(kernel, [0, -0.5, 0.3], [0.6, 1.5, 0.6], 100000)
-    np.random.seed(42)
-    p3 = box_prob_MC(kernel, [0.6, -0.5, 0.3], [1.5, 1.5, 0.6], 100000)
-
-    print(p1)
-    print(p3)
-    print(p1-(p2+p3))
-
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/__init__.py b/katoptron/Juelich/__init__.py
deleted file mode 100644
index 14a7f2a3..00000000
--- a/katoptron/Juelich/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# -*- coding: utf-8 -*-
-# katoptron.Juelich MODULE initialization file
diff --git a/katoptron/Juelich/broken/M1.py b/katoptron/Juelich/broken/M1.py
deleted file mode 100644
index c3a57826..00000000
--- a/katoptron/Juelich/broken/M1.py
+++ /dev/null
@@ -1,315 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    precondList = Teuchos.ParameterList()
-    precondList = Teuchos.ParameterList()
-    precondSubList = Teuchos.ParameterList()
-    precondSubSubList = Teuchos.ParameterList()
-    precondSubSubList['fact: iluk level-of-fill'] = 2
-    precondSubList['Prec Type'] = "RILUK"
-    precondSubList['Overlap'] = 1
-    precondSubList['Ifpack2 Settings'] = precondSubSubList
-    precondList['Ifpack2'] = precondSubList
-
-    mueluParams = Teuchos.ParameterList()
-    #mueluParamsSub1 = Teuchos.ParameterList()
-    #mueluParamsSub1['PDE equations'] = 4
-    #mueluParams['Matrix'] = mueluParamsSub1
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 2
-    mueluParams['multigrid algorithm'] = "unsmoothed"
-    mueluParams['smoother: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 4
-    mueluParamsSub2['relaxation: damping factor'] = 1.25
-
-    mueluParams['coarse: type'] = "RELAXATION"
-
-    mueluParamsSub3 = Teuchos.ParameterList()
-
-    mueluParamsSub3['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub3['relaxation: sweeps'] = 4
-    mueluParamsSub3['relaxation: damping factor'] = 1.25
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-    mueluParams['coarse: params'] = mueluParamsSub3
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 100
-    solverList['ifpackParams'] = precondList
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Maximum active set iteration'] = 10
-
-    solverList['Print Teuchos timers'] = False
-    #solverList['Write matrix and vectors'] = True
-    #solverList['Write txt files'] = True
-
-    geo_name = 'M1_FEM_7.msh'
-    mesh_name = 'M1_FEM_7.msh'
-
-    import shlex
-    import subprocess
-    import os
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    #solverList["MueLu xml file name"] = file_dir + '/finest_level_prec_2.xml'
-    solverList["MueLu xml file name"] = file_dir + \
-        '/finest_level_prec_simple_heat.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev_heat.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev.xml'
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + file_dir + '/mesh/' + geo_name + \
-            ' -o ' + work_dir + '/' + mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    pbl = m.Problem(msh, comm)
-
-    ensemble_size = 1
-
-    E = 330000 * np.ones(ensemble_size)
-    nu = 0.36 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.5E-05
-
-    E_rhodium = 379000 * np.ones(ensemble_size)
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    k_rhodium = 0.150
-    d_rhodium = 0.781E-05
-
-    E_WCu = 280000 * np.ones(ensemble_size)
-    nu_WCu = 0.26 * np.ones(ensemble_size)
-    k_WCu = 0.180
-    d_WCu = 0.88E-05
-
-    E_SS = 180000 * np.ones(ensemble_size)
-    nu_SS = 0.26 * np.ones(ensemble_size)
-    k_SS = 0.020
-    d_SS = 1.6E-05
-
-    E_CuCrZr = 130000 * np.ones(ensemble_size)
-    nu_CuCrZr = 0.26 * np.ones(ensemble_size)
-    k_CuCrZr = 0.280
-    d_CuCrZr = 1.6E-05
-
-    E_I718 = 180000 * np.ones(ensemble_size)
-    nu_I718 = 0.26 * np.ones(ensemble_size)
-    k_I718 = 0.020
-    d_I718 = 1.4E-05
-
-    m.Medium(pbl, "Mirror", "Rhodium", E_rhodium,
-             nu_rhodium, k_rhodium, d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Spacer 1-2", "CuCrZr", E_CuCrZr,
-             nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 3", "CuCrZr", E_CuCrZr,
-             nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-
-    m.Medium(pbl, "Spacer 1-2 part 2", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 3 part 2", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Dirichlet(pbl, "Holder Clamping", "Clamped", 1,
-                 0., 1, 0., 1, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling top", "Clamped", 0, 0.,
-                 0, 0., 0, 0., 1, 70., ensemble_size)
-    m.Dirichlet(pbl, "Cooling bot", "Clamped", 0, 0.,
-                 0, 0., 0, 0., 1, 70., ensemble_size)
-
-    norm1 = tbox.Vector3d(0, 0, -1)
-    norm2 = tbox.Vector3d(0, 0, 1)
-
-    cont1 = m.Contact(pbl, "Nut 1 to Holder", "contact", norm1, -0.3)
-    cont1.setMaster(pbl, "Holder to Nut 1", norm1)
-
-    cont2 = m.Contact(pbl, "Nut 2 to Holder", "contact", norm1, -0.3)
-    cont2.setMaster(pbl, "Holder to Nut 2", norm1)
-
-    cont3 = m.Contact(pbl, "Nut 3 to Holder", "contact", norm1, -0.3)
-    cont3.setMaster(pbl, "Holder to Nut 3", norm1)
-
-    cont4 = m.Contact(pbl, "Spacer 1-2 to Substrate", "contact", norm1, 0.)
-    cont4.setMaster(pbl, "Substrate to Spacer 1-2", norm1)
-
-    cont5 = m.Contact(pbl, "Spacer 3 to Substrate", "contact", norm1, 0.)
-    cont5.setMaster(pbl, "Substrate to Spacer 3", norm1)
-
-    cont6 = m.Contact(pbl, "Spacer 1-2 part 2 to Holder", "contact", norm1, 0.)
-    cont6.setMaster(pbl, "Holder to Spacer 1-2 part 2", norm1)
-
-    cont7 = m.Contact(pbl, "Spacer 3 part 2 to Holder", "contact", norm1, 0.)
-    cont7.setMaster(pbl, "Holder to Spacer 3 part 2", norm1)
-
-    cont8 = m.Contact(pbl, "Spacer 1-2 to Spacer 1-2 part 2",
-                      "contact", norm1, 0.)
-    cont8.setMaster(pbl, "Spacer 1-2 part 2 to Spacer 1-2", norm1)
-
-    cont9 = m.Contact(pbl, "Spacer 3 to Spacer 3 part 2", "contact", norm1, 0.)
-    cont9.setMaster(pbl, "Spacer 3 part 2 to Spacer 3", norm1)
-
-    cont10 = m.Contact(pbl, "Spacer 1-2 to Washer 1", "contact", norm1, 0.)
-    cont10.setMaster(pbl, "Washer 1 to Spacer 1-2", norm1)
-    # cont10.setInitialyOpen()
-
-    cont11 = m.Contact(pbl, "Washer 1 to Spacer 1-2 part 2",
-                       "contact", norm1, 0.)
-    cont11.setMaster(pbl, "Spacer 1-2 part 2 to Washer 1", norm1)
-    # cont11.setInitialyOpen()
-
-    cont12 = m.Contact(pbl, "Washer 1 to Shaft 1", "contact", norm1, 0.)
-    cont12.setMaster(pbl, "Shaft 1 to Washer 1", norm1)
-    # cont12.setInitialyOpen()
-
-    cont13 = m.Contact(pbl, "Spacer 1-2 to Washer 2", "contact", norm1, 0.)
-    cont13.setMaster(pbl, "Washer 2 to Spacer 1-2", norm1)
-    # cont13.setInitialyOpen()
-
-    cont14 = m.Contact(pbl, "Washer 2 to Spacer 1-2 part 2",
-                       "contact", norm1, 0.)
-    cont14.setMaster(pbl, "Spacer 1-2 part 2 to Washer 2", norm1)
-    # cont14.setInitialyOpen()
-
-    cont15 = m.Contact(pbl, "Shaft 2 to Washer 2", "contact", norm1, 0.)
-    cont15.setMaster(pbl, "Washer 2 to Shaft 2", norm1)
-    # cont15.setInitialyOpen()
-
-    cont16 = m.Contact(pbl, "Spacer 3 to Washer 3", "contact", norm1, 0.)
-    cont16.setMaster(pbl, "Washer 3 to Spacer 3", norm1)
-    # cont16.setInitialyOpen()
-
-    cont17 = m.Contact(pbl, "Washer 3 to Spacer 3 part 2",
-                       "contact", norm1, 0.)
-    cont17.setMaster(pbl, "Spacer 3 part 2 to Washer 3", norm1)
-    # cont17.setInitialyOpen()
-
-    cont18 = m.Contact(pbl, "Washer 3 to Shaft 3", "contact", norm1, 0.)
-    cont18.setMaster(pbl, "Shaft 3 to Washer 3", norm1)
-    # cont18.setInitialyOpen()
-
-    #m.Dirichlet(pbl, "Nut 1 to Holder", "Clamped",1,0.,1,0.,1,0.,1,100.,ensemble_size)
-    #m.Dirichlet(pbl, "Nut 2 to Holder", "Clamped",1,0.,1,0.,1,0.,1,100.,ensemble_size)
-    #m.Dirichlet(pbl, "Nut 3 to Holder", "Clamped",1,0.,1,0.,1,0.,1,100.,ensemble_size)
-
-    #m.Dirichlet(pbl, "Holder to Nut 1", "Clamped",1,0.,1,0.,1,0.,1,100.,ensemble_size)
-    #m.Dirichlet(pbl, "Holder to Nut 2", "Clamped",1,0.,1,0.,1,0.,1,100.,ensemble_size)
-    #m.Dirichlet(pbl, "Holder to Nut 3", "Clamped",1,0.,1,0.,1,0.,1,100.,ensemble_size)
-
-    #m.Dirichlet(pbl, "Washer 1 to Spacer 1-2", "Clamped",1,0.,1,0.,1,0.,1,70.,ensemble_size)
-    #m.Dirichlet(pbl, "Washer 2 to Spacer 1-2", "Clamped",1,0.,1,0.,1,0.,1,70.,ensemble_size)
-    #m.Dirichlet(pbl, "Washer 3 to Spacer 3", "Clamped",1,0.,1,0.,1,0.,1,70.,ensemble_size)
-
-    #m.Dirichlet(pbl, "Spacer 1-2 to Substrate", "Clamped",1,0.,1,0.,1,0.,1,70.,ensemble_size)
-    #m.Dirichlet(pbl, "Spacer 3 to Substrate", "Clamped",1,0.,1,0.,1,0.,1,70.,ensemble_size)
-
-    #m.Dirichlet(pbl, "Spacer 1-2 part 2 to Holder", "Clamped",1,0.,1,0.,1,0.,1,70.,ensemble_size)
-    #m.Dirichlet(pbl, "Spacer 3 part 2 to Holder", "Clamped",1,0.,1,0.,1,0.,1,70.,ensemble_size)
-
-    zero = np.zeros(ensemble_size)
-    hf = (70/0.0121)*0.001 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Mirror surface", "moved", 0, zero,
-              0, zero, 0, zero, 1, hf, ensemble_size)
-    m.Source(pbl, "Mirror", "ihg", 2.45*1000)
-    m.Source(pbl, "Substrate", "ihg", 2.45*1000)
-    m.Source(pbl, "Holder", "ihg", 0.7*1000)
-
-    m.Dirichlet(pbl, "XY Clamping", "Clamped", 1, 0.,
-                 1, 0., 0, 0., 0, 0., ensemble_size)
-    #m.Dirichlet(pbl, "Mirror surface", "Clamped",0,0.,0,0.,1,-0.1,1,300.,ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    if not args.nogui:
-        if rank == 0:
-            all_msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-            import katoptron.viewer as v
-            gui = v.MeshViewer(pbl, slv, all_msh)
-            gui.vmin = 0
-            gui.vmax = 1
-            gui.start()
-        else:
-            slv.start()
-    else:
-        slv.start()
-
-    from fwk.testing import *
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', 0, 0))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/broken/M1_assembly.py b/katoptron/Juelich/broken/M1_assembly.py
deleted file mode 100644
index de619728..00000000
--- a/katoptron/Juelich/broken/M1_assembly.py
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    precondList = Teuchos.ParameterList()
-    precondList = Teuchos.ParameterList()
-    precondSubList = Teuchos.ParameterList()
-    precondSubSubList = Teuchos.ParameterList()
-    precondSubSubList['fact: iluk level-of-fill'] = 2
-    precondSubList['Prec Type'] = "RILUK"
-    precondSubList['Overlap'] = 1
-    precondSubList['Ifpack2 Settings'] = precondSubSubList
-    precondList['Ifpack2'] = precondSubList
-
-    mueluParams = Teuchos.ParameterList()
-    #mueluParamsSub1 = Teuchos.ParameterList()
-    #mueluParamsSub1['PDE equations'] = 4
-    #mueluParams['Matrix'] = mueluParamsSub1
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 1
-    mueluParams['multigrid algorithm'] = "unsmoothed"
-    mueluParams['smoother: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 4
-    mueluParamsSub2['relaxation: damping factor'] = 1.25
-
-    mueluParams['coarse: type'] = "RELAXATION"
-
-    mueluParamsSub3 = Teuchos.ParameterList()
-
-    mueluParamsSub3['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub3['relaxation: sweeps'] = 4
-    mueluParamsSub3['relaxation: damping factor'] = 1.25
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-    mueluParams['coarse: params'] = mueluParamsSub3
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 100
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 100
-    solverList['ifpackParams'] = precondList
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Maximum active set iteration'] = 10
-
-    solverList['Print Teuchos timers'] = True
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    geo_name = 'MIRROR_1_ASSEMBLY_5.msh'
-    mesh_name = 'MIRROR_1_ASSEMBLY_5.msh'
-
-    import shlex
-    import subprocess
-    import os
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    #solverList["MueLu xml file name"] = file_dir + '/finest_level_prec_2.xml'
-    solverList["MueLu xml file name"] = file_dir + \
-        '/nested_multigrid_2_lvls_old.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev_heat.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev.xml'
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + file_dir + '/mesh/' + geo_name + \
-            ' -o ' + work_dir + '/' + mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    pbl = m.Problem(msh, comm)
-
-    ensemble_size = 1
-
-    E = 330000 * np.ones(ensemble_size)
-    nu = 0.36 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.5E-05
-
-    E_rhodium = 379000 * np.ones(ensemble_size)
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    k_rhodium = 0.150
-    d_rhodium = 0.781E-05
-
-    E_WCu = 280000 * np.ones(ensemble_size)
-    nu_WCu = 0.26 * np.ones(ensemble_size)
-    k_WCu = 0.180
-    d_WCu = 0.88E-05
-
-    E_SS = 180000 * np.ones(ensemble_size)
-    nu_SS = 0.26 * np.ones(ensemble_size)
-    k_SS = 0.020
-    d_SS = 1.6E-05
-
-    E_CuCrZr = 130000 * np.ones(ensemble_size)
-    nu_CuCrZr = 0.26 * np.ones(ensemble_size)
-    k_CuCrZr = 0.280
-    d_CuCrZr = 1.6E-05
-
-    E_I718 = 180000 * np.ones(ensemble_size)
-    nu_I718 = 0.26 * np.ones(ensemble_size)
-    k_I718 = 0.020
-    d_I718 = 1.4E-05
-
-    m.Medium(pbl, "Mirror", "SS", E_rhodium, nu_rhodium, k_rhodium, d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-    m.Medium(pbl, "Holder 2", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Pipe 1", "SS", E_SS, nu_SS, k_SS, d_SS)
-    m.Medium(pbl, "Pipe 2", "SS", E_SS, nu_SS, k_SS, d_SS)
-    m.Medium(pbl, "Pipe 3", "SS", E_SS, nu_SS, k_SS, d_SS)
-    m.Medium(pbl, "Pipe 4", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Bolt 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Bolt 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Bolt 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Pin 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Pin 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Pin 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1", "CuCrZr", E_CuCrZr,
-             nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 2", "CuCrZr", E_I718, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 3", "CuCrZr", E_I718, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-
-    m.Dirichlet(pbl, "Holder 2 Clamping", "Clamped", 1,
-                 0., 1, 0., 1, 0., 1, 70., ensemble_size)
-
-    m.Dirichlet(pbl, "Holder to bolt 1", "Clamped", 0,
-                 0., 0, 0., 0, 0., 1, 140., ensemble_size)
-    m.Dirichlet(pbl, "Holder to bolt 2", "Clamped", 0,
-                 0., 0, 0., 0, 0., 1, 140., ensemble_size)
-    m.Dirichlet(pbl, "Holder to bolt 3", "Clamped", 0,
-                 0., 0, 0., 0, 0., 1, 140., ensemble_size)
-
-    m.Dirichlet(pbl, "Bolt 1 to holder", "Clamped", 1,
-                 0., 1, 0., 1, 0., 1, 140., ensemble_size)
-    m.Dirichlet(pbl, "Bolt 2 to holder", "Clamped", 0,
-                 0., 0, 0., 0, 0., 1, 140., ensemble_size)
-    m.Dirichlet(pbl, "Bolt 3 to holder", "Clamped", 0,
-                 0., 0, 0., 0, 0., 1, 140., ensemble_size)
-
-    m.Dirichlet(pbl, "Mirror surface", "Clamped", 0, 0.,
-                 0, 0., 0, 0., 1, 210., ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    if not args.nogui:
-        if rank == 0:
-            all_msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-            import katoptron.viewer as v
-            gui = v.MeshViewer(pbl, slv, all_msh)
-            gui.vmin = 0
-            gui.vmax = 1
-            gui.start()
-        else:
-            slv.start()
-    else:
-        slv.start()
-
-    from fwk.testing import *
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', 0, 0))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/broken/M1_assembly_fused_all.py b/katoptron/Juelich/broken/M1_assembly_fused_all.py
deleted file mode 100644
index 2fad06b1..00000000
--- a/katoptron/Juelich/broken/M1_assembly_fused_all.py
+++ /dev/null
@@ -1,354 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    mueluParams = Teuchos.ParameterList()
-    #mueluParamsSub1 = Teuchos.ParameterList()
-    #mueluParamsSub1['PDE equations'] = 4
-    #mueluParams['Matrix'] = mueluParamsSub1
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 5
-    mueluParams['multigrid algorithm'] = "unsmoothed"
-    mueluParams['smoother: type'] = "RELAXATION"
-    mueluParams['coarse: max size'] = 3000
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 5
-    mueluParamsSub2['relaxation: damping factor'] = 1.25
-
-    mueluParams['coarse: type'] = "Klu"
-    mueluParams['verbosity'] = "low"
-
-    mueluParamsSub3 = Teuchos.ParameterList()
-
-    mueluParamsSub3['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub3['relaxation: sweeps'] = 4
-    mueluParamsSub3['relaxation: damping factor'] = 1.25
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-    #mueluParams['coarse: params'] = mueluParamsSub3
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-    solverList['Convergence Tolerance'] = 10**(-7)
-    solverList['Maximum Iterations'] = 2000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 100
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Maximum active set iteration'] = 10
-
-    solverList['Print Teuchos timers'] = True
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    geo_name = 'MIRROR_1_ASSEMBLY_fused_all.msh'
-    mesh_name = 'MIRROR_1_ASSEMBLY_fused_all.msh'
-
-    import shlex
-    import subprocess
-    import os
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    #solverList["MueLu xml file name"] = file_dir + '/finest_level_prec_2.xml'
-    solverList["MueLu xml file name"] = file_dir + \
-        '/nested_multigrid_2_lvls_old.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev_heat.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev.xml'
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + file_dir + '/mesh/' + geo_name + \
-            ' -o ' + work_dir + '/' + mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in meters
-
-    ensemble_size = 1
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size)
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150
-    d_rhodium = 0.781E-05
-
-    E_WCu = 280E9 * np.ones(ensemble_size)
-    nu_WCu = 0.26 * np.ones(ensemble_size)
-    k_WCu = 180
-    d_WCu = 0.88E-05
-
-    E_SS = 180E9 * np.ones(ensemble_size)
-    nu_SS = 0.26 * np.ones(ensemble_size)
-    k_SS = 20
-    d_SS = 1.6E-05
-
-    E_CuCrZr = 130E9 * np.ones(ensemble_size)
-    nu_CuCrZr = 0.26 * np.ones(ensemble_size)
-    k_CuCrZr = 280
-    d_CuCrZr = 1.6E-05
-
-    E_I718 = 180E9 * np.ones(ensemble_size)
-    nu_I718 = 0.26 * np.ones(ensemble_size)
-    k_I718 = 20
-    d_I718 = 1.4E-05
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium,
-             nu_rhodium, k_rhodium, d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Holder 2", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Pipe 1", "SS", E_SS, nu_SS, k_SS, d_SS)
-    m.Medium(pbl, "Pipe 2", "SS", E_SS, nu_SS, k_SS, d_SS)
-    m.Medium(pbl, "Pipe 3", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Bolt 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Bolt 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Bolt 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 2 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 3 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Dirichlet(pbl, "Holder x clamping", "Clamped", 1,
-                 0., 0, 0., 0, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "Holder y-z clamping", "Clamped", 0,
-                 0., 1, 0., 1, 0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0,
-                 0., 0, 0., 0, 0., 1, 70., ensemble_size)
-
-    zero = np.zeros(ensemble_size)
-    hf = (70/0.0121) * np.ones(ensemble_size)  # 70 W / (0.0121 m^2)
-
-    m.Neumann(pbl, "Mirror surface", "heat fluxes", 0,
-              zero, 0, zero, 0, zero, 1, hf, ensemble_size)
-
-    m.Source(pbl, "Mirror", "ihg", 70E6)
-    m.Source(pbl, "Substrate", "ihg", 2.45E6)
-    m.Source(pbl, "Holder", "ihg", 0.7E6)
-    m.Source(pbl, "Holder 2", "ihg", 0.7E6)
-    m.Source(pbl, "Pipe 1", "ihg", 0.7E6)
-    m.Source(pbl, "Pipe 2", "ihg", 0.7E6)
-    m.Source(pbl, "Pipe 3", "ihg", 0.7E6)
-
-    m.Source(pbl, "Spacer 1 part 1", "ihg", 0.7E6)
-    m.Source(pbl, "Spacer 2 part 1", "ihg", 0.7E6)
-    m.Source(pbl, "Spacer 3 part 1", "ihg", 0.7E6)
-
-    m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6)
-    m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6)
-    m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6)
-
-    m.Source(pbl, "Shaft 1", "ihg", 0.7E6)
-    m.Source(pbl, "Shaft 2", "ihg", 0.7E6)
-    m.Source(pbl, "Shaft 3", "ihg", 0.7E6)
-
-    m.Source(pbl, "Bolt 1", "ihg", 0.7E6)
-    m.Source(pbl, "Bolt 2", "ihg", 0.7E6)
-    m.Source(pbl, "Bolt 3", "ihg", 0.7E6)
-
-    m.Source(pbl, "Nut 1", "ihg", 0.7E6)
-    m.Source(pbl, "Nut 2", "ihg", 0.7E6)
-    m.Source(pbl, "Nut 3", "ihg", 0.7E6)
-
-    m.Source(pbl, "Washer 1", "ihg", 0.7E6)
-    m.Source(pbl, "Washer 2", "ihg", 0.7E6)
-    m.Source(pbl, "Washer 3", "ihg", 0.7E6)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    if not args.nogui:
-        if rank == 0:
-            all_msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-            import katoptron.viewer as v
-            gui = v.MeshViewer(pbl, slv, all_msh)
-            gui.vmin = 0
-            gui.vmax = 1
-            gui.start()
-        else:
-            slv.start()
-    else:
-        slv.start()
-    '''
-    
-    ## Extract results
-    if rank == 0:
-        import katoptron.utilities as u
-        
-        tag_name = "Mirror surface"
-        name_sol = "x_mm.txt"
-
-        DOFperNode = 4
-        
-        if siz > 1:
-            x,y,z,tri,sol = u.extract_2D_all_rotated(msh2, tag_name, DOFperNode, ensemble_size, name_sol,[0,1])
-        else:
-            x,y,z,tri,sol = u.extract_2D_all_rotated(msh, tag_name, DOFperNode, ensemble_size, name_sol,[0,1])
-        
-        Zernike_coeff, Zernike_functions, theta, rho = u.compute_Zernike(x,y,z,tri,sol[:,2],10,np.array([-0.015,0.005]))
-
-        colors = {0:(0,0.4470,0.7410), 1:(0.8500,0.3250,0.0980), 2:(0.9290,0.6940,0.1250), 3:(0.4940,0.1840,0.5560), 4:(0.4660,0.6740,0.1880), 5:(0.3010,0.7450,0.9330), 6:(0.6350,0.0780,0.1840), 7:(0,0.4470,0.7410)}
-        
-        import matplotlib.pyplot as plt
-        #plt.style.use('ggplot')
-
-        plt_linewidth = 4.0
-        
-        print max(z)
-        print min(z)
-
-        print max(sol[:,2])
-        print min(sol[:,2])
-        
-        print Zernike_coeff
-        
-        print u.check_optical_tolerance(Zernike_coeff, Zernike_functions, sol[:,2],"m")
-
-
-        for which_dof in range(0,DOFperNode):
-            levels = np.linspace(min(sol[:,which_dof]), max(sol[:,which_dof]), 15)
-            # Velocity x-component
-            fig = plt.figure(figsize=(8, 8))
-            plt.set_cmap('jet')
-            plt.tricontour(x, y, tri, sol[:,which_dof], levels, linestyles='-',
-                        colors='black', linewidths=0.5)
-            axtri = plt.tricontourf(x, y, tri, sol[:,which_dof], levels)
-            #plt.triplot(x, y, tri)
-            plt.gca().set_aspect('equal')
-            plt.gca().set_axis_off()
-            
-            cb = fig.colorbar(axtri, orientation="horizontal")
-            if which_dof == 0:
-                cb.set_label('displacement along x [m]', rotation=0)
-                plt.savefig("ux.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-            elif which_dof == 1:
-                cb.set_label('displacement along y [m]', rotation=0)
-                plt.savefig("uy.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-            elif which_dof == 2:
-                cb.set_label('displacement along z [m]', rotation=0)
-                plt.savefig("uz.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-            elif which_dof == 3:
-                cb.set_label('Temperature [C]', rotation=0)
-                plt.savefig("T.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                
-        #plt.minorticks_on()
-        #plt.gca().set_xticklabels([])
-        #plt.gca().set_yticklabels([])
-        #plt.gca().set_axis_off()
-        #plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
-        #plt.margins(0,0)
-        #plt.gca().xaxis.set_major_locator(plt.NullLocator())
-        #plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-        zernike_fit = np.dot(Zernike_functions,Zernike_coeff)
-
-        levels = np.linspace(min(zernike_fit), max(zernike_fit), 16)
-        # Velocity x-component
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('jet')
-        plt.tricontour(x, y, tri, zernike_fit, levels, linestyles='-',
-                    colors='black', linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, zernike_fit, levels)
-        #plt.triplot(x, y, tri)
-        plt.gca().set_aspect('equal')
-        
-        cb = fig.colorbar(axtri)
-        
-        levels = np.linspace(min(sol[:,2]-zernike_fit), max(sol[:,2]-zernike_fit), 16)
-        # Velocity x-component
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('jet')
-        plt.tricontour(x, y, tri, sol[:,2]-zernike_fit, levels, linestyles='-',
-                    colors='black', linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, sol[:,2]-zernike_fit, levels)
-        #plt.triplot(x, y, tri)
-        plt.gca().set_aspect('equal')
-        
-        cb = fig.colorbar(axtri)
-
-
-
-        plt.show()
-    '''
-    from fwk.testing import *
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', 0, 0))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/broken/M1_assembly_fused_mm.py b/katoptron/Juelich/broken/M1_assembly_fused_mm.py
deleted file mode 100644
index e0d0f5f2..00000000
--- a/katoptron/Juelich/broken/M1_assembly_fused_mm.py
+++ /dev/null
@@ -1,355 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    mueluParams = Teuchos.ParameterList()
-    #mueluParamsSub1 = Teuchos.ParameterList()
-    #mueluParamsSub1['PDE equations'] = 4
-    #mueluParams['Matrix'] = mueluParamsSub1
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 1
-    mueluParams['multigrid algorithm'] = "unsmoothed"
-    mueluParams['smoother: type'] = "RELAXATION"
-    mueluParams['coarse: max size'] = 3000
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 5
-    mueluParamsSub2['relaxation: damping factor'] = 1.25
-
-    mueluParams['coarse: type'] = "Klu"
-    mueluParams['verbosity'] = "low"
-
-    mueluParamsSub3 = Teuchos.ParameterList()
-
-    mueluParamsSub3['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub3['relaxation: sweeps'] = 4
-    mueluParamsSub3['relaxation: damping factor'] = 1.25
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-    #mueluParams['coarse: params'] = mueluParamsSub3
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-    solverList['Convergence Tolerance'] = 10**(-7)
-    solverList['Maximum Iterations'] = 2000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Maximum active set iteration'] = 10
-
-    solverList['Print Teuchos timers'] = True
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    geo_name = 'MIRROR_1_ASSEMBLY_fused_mm.msh'
-    mesh_name = 'MIRROR_1_ASSEMBLY_fused_mm.msh'
-
-    import shlex
-    import subprocess
-    import os
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    #solverList["MueLu xml file name"] = file_dir + '/finest_level_prec_2.xml'
-    solverList["MueLu xml file name"] = file_dir + \
-        '/nested_multigrid_2_lvls_old.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev_heat.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev.xml'
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + file_dir + '/mesh/' + geo_name + \
-            ' -o ' + work_dir + '/' + mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in minimeters
-
-    ensemble_size = 1
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379000 * np.ones(ensemble_size)
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K) = 0.150 W/(mm K)
-    k_rhodium = 0.150
-    d_rhodium = 0.781E-05
-
-    E_WCu = 280000 * np.ones(ensemble_size)
-    nu_WCu = 0.298 * np.ones(ensemble_size)
-    k_WCu = 0.180
-    d_WCu = 0.88E-05
-
-    E_SS = 200000 * np.ones(ensemble_size)
-    nu_SS = 0.3 * np.ones(ensemble_size)
-    k_SS = 0.0153
-    d_SS = 1.57E-05
-
-    E_CuCrZr = 118000 * np.ones(ensemble_size)
-    nu_CuCrZr = 0.33 * np.ones(ensemble_size)
-    k_CuCrZr = 0.345
-    d_CuCrZr = 1.8E-05
-
-    E_I718 = 183000 * np.ones(ensemble_size)
-    nu_I718 = 0.31 * np.ones(ensemble_size)
-    k_I718 = 0.0158
-    d_I718 = 1.38E-05
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium,
-             nu_rhodium, k_rhodium, d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 2 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 3 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if 0:
-        m.Dirichlet(pbl, "Holder z clamping", "Clamped", 0,
-                     0., 0, 0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x-y clamping", "Clamped", 1,
-                     0., 1, 0., 0, 0., 0, 0., ensemble_size)
-    else:
-        m.Dirichlet(pbl, "Holder z clamping points", "Clamped",
-                     0, 0., 0, 0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder y clamping points", "Clamped",
-                     0, 0., 1, 0., 0, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x clamping points", "Clamped",
-                     1, 0., 0, 0., 0, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0.,
-                 0, 0., 0, 0., 1, 70.-T_ref, ensemble_size)
-
-    zero = np.zeros(ensemble_size)
-    hf = ((70 / (0.0121*1000**2))) * \
-        np.ones(ensemble_size)  # 70 W / (0.0121 m^2)
-
-    m.Neumann(pbl, "Mirror surface", "heat fluxes", 0,
-              zero, 0, zero, 0, zero, 1, hf, ensemble_size)
-
-    m.Source(pbl, "Mirror", "ihg", 70E-03)
-    m.Source(pbl, "Substrate", "ihg", 2.45E-03)
-    m.Source(pbl, "Holder", "ihg", 0.7E-03)
-
-    m.Source(pbl, "Spacer 1 part 1", "ihg", 0.6E-03)
-    m.Source(pbl, "Spacer 2 part 1", "ihg", 0.6E-03)
-    m.Source(pbl, "Spacer 3 part 1", "ihg", 0.6E-03)
-
-    m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E-03)
-    m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E-03)
-    m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E-03)
-
-    m.Source(pbl, "Shaft 1", "ihg", 0.8E-03)
-    m.Source(pbl, "Shaft 2", "ihg", 0.8E-03)
-    m.Source(pbl, "Shaft 3", "ihg", 0.8E-03)
-
-    m.Source(pbl, "Nut 1", "ihg", 0.8E-03)
-    m.Source(pbl, "Nut 2", "ihg", 0.8E-03)
-    m.Source(pbl, "Nut 3", "ihg", 0.8E-03)
-
-    m.Source(pbl, "Washer 1", "ihg", 0.8E-03)
-    m.Source(pbl, "Washer 2", "ihg", 0.8E-03)
-    m.Source(pbl, "Washer 3", "ihg", 0.8E-03)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    '''
-    ## Extract results
-    if rank == 0:
-        import katoptron.utilities as u
-        
-        tag_name = "Mirror surface"
-        name_sol = "x_mm.txt"
-
-        DOFperNode = 4
-        
-        if siz > 1:
-            x,y,z,tri,sol = u.extract_2D_all(msh2, tag_name, DOFperNode, ensemble_size, name_sol)
-        else:
-            x,y,z,tri,sol = u.extract_2D_all(msh, tag_name, DOFperNode, ensemble_size, name_sol)
-        
-        Zernike_coeff, Zernike_functions, theta, rho = u.compute_Zernike(x,y,z,tri,sol[:,2],10,np.array([-0.015,0.005]))
-
-        colors = {0:(0,0.4470,0.7410), 1:(0.8500,0.3250,0.0980), 2:(0.9290,0.6940,0.1250), 3:(0.4940,0.1840,0.5560), 4:(0.4660,0.6740,0.1880), 5:(0.3010,0.7450,0.9330), 6:(0.6350,0.0780,0.1840), 7:(0,0.4470,0.7410)}
-        
-        import matplotlib.pyplot as plt
-        from matplotlib import cm
-        #plt.style.use('ggplot')
-
-        plt_linewidth = 4.0
-        
-        print max(z)
-        print min(z)
-
-        print max(sol[:,2])
-        print min(sol[:,2])
-        
-        print Zernike_coeff
-        
-        print u.check_optical_tolerance(Zernike_coeff, Zernike_functions, sol[:,2],"m")
-
-
-        for which_dof in range(0,DOFperNode):
-            levels = np.linspace(min(sol[:,which_dof]), max(sol[:,which_dof]), 15)
-            # Velocity x-component
-            fig = plt.figure(figsize=(8, 8))
-            plt.set_cmap('jet')
-            plt.tricontour(x, y, tri, sol[:,which_dof], levels, linestyles='-',
-                        colors='black', linewidths=0.5)
-            axtri = plt.tricontourf(x, y, tri, sol[:,which_dof], levels, cmap='coolwarm')
-            #plt.triplot(x, y, tri)
-            plt.gca().set_aspect('equal')
-            plt.gca().set_axis_off()
-            
-
-            
-            #coolwarm
-            
-            #cb = fig.colorbar(axtri, orientation="horizontal")
-            #x = np.linspace(0.0, 1.0, 15)
-            #rgb = cm.get_cmap('coolwarm')(x)[np.newaxis, :, :3]
-            #print rgb
-            
-            if which_dof == 0:
-                #cb.set_label('displacement along x [m]', rotation=0)
-                plt.savefig("ux.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "ux"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-            elif which_dof == 1:
-                #cb.set_label('displacement along y [m]', rotation=0)
-                plt.savefig("uy.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "uy"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-            elif which_dof == 2:
-                #cb.set_label('displacement along z [m]', rotation=0)
-                plt.savefig("uz.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "uz"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-            elif which_dof == 3:
-                #cb.set_label('Temperature [C]', rotation=0)
-                plt.savefig("T.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "T"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-    
-        #plt.minorticks_on()
-        #plt.gca().set_xticklabels([])
-        #plt.gca().set_yticklabels([])
-        #plt.gca().set_axis_off()
-        #plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
-        #plt.margins(0,0)
-        #plt.gca().xaxis.set_major_locator(plt.NullLocator())
-        #plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-        zernike_fit = np.dot(Zernike_functions,Zernike_coeff)
-
-        levels = np.linspace(min(zernike_fit), max(zernike_fit), 16)
-        # Velocity x-component
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('jet')
-        plt.tricontour(x, y, tri, zernike_fit, levels, linestyles='-',
-                    colors='black', linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, zernike_fit, levels)
-        #plt.triplot(x, y, tri)
-        plt.gca().set_aspect('equal')
-        
-        cb = fig.colorbar(axtri)
-        
-        levels = np.linspace(min(sol[:,2]-zernike_fit), max(sol[:,2]-zernike_fit), 16)
-        # Velocity x-component
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('jet')
-        plt.tricontour(x, y, tri, sol[:,2]-zernike_fit, levels, linestyles='-',
-                    colors='black', linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, sol[:,2]-zernike_fit, levels)
-        #plt.triplot(x, y, tri)
-        plt.gca().set_aspect('equal')
-        
-        cb = fig.colorbar(axtri)
-
-
-
-        plt.show()
-    '''
-    from fwk.testing import *
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', 0, 0))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/broken/M1_assembly_mm.py b/katoptron/Juelich/broken/M1_assembly_mm.py
deleted file mode 100644
index a73619ac..00000000
--- a/katoptron/Juelich/broken/M1_assembly_mm.py
+++ /dev/null
@@ -1,454 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-
-
-def main():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        siz = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print("info: MPI found")
-    except:
-        comm = None
-        rank = 0
-        siz = 1
-        name = "noname"
-        print("info: MPI not found => MPI disabled")
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    mueluParams = Teuchos.ParameterList()
-    #mueluParamsSub1 = Teuchos.ParameterList()
-    #mueluParamsSub1['PDE equations'] = 4
-    #mueluParams['Matrix'] = mueluParamsSub1
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 5
-    mueluParams['multigrid algorithm'] = "unsmoothed"
-    mueluParams['smoother: type'] = "RELAXATION"
-    mueluParams['coarse: max size'] = 3000
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 5
-    mueluParamsSub2['relaxation: damping factor'] = 1.25
-
-    mueluParams['coarse: type'] = "Klu"
-    mueluParams['verbosity'] = "low"
-
-    mueluParamsSub3 = Teuchos.ParameterList()
-
-    mueluParamsSub3['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub3['relaxation: sweeps'] = 4
-    mueluParamsSub3['relaxation: damping factor'] = 1.25
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-    #mueluParams['coarse: params'] = mueluParamsSub3
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-    solverList['Convergence Tolerance'] = 10**(-7)
-    solverList['Maximum Iterations'] = 2000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 100
-    solverList['mueluParams'] = mueluParams
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Maximum active set iteration'] = 10
-
-    solverList['Print Teuchos timers'] = True
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    geo_name = 'MIRROR_1_ASSEMBLY_mm.msh'
-    mesh_name = 'MIRROR_1_ASSEMBLY_mm.msh'
-
-    import shlex
-    import subprocess
-    import os
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    #solverList["MueLu xml file name"] = file_dir + '/finest_level_prec_2.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/finest_level_prec_simple_heat.xml'
-    solverList["MueLu xml file name"] = file_dir + \
-        '/nested_multigrid_2_lvls_chebyshev_heat.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_old.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev_heat.xml'
-    #solverList["MueLu xml file name"] = file_dir + '/nested_multigrid_2_lvls_chebyshev.xml'
-
-    if rank == 0:
-        command_line = 'gmsh -3 ' + file_dir + '/mesh/' + geo_name + \
-            ' -o ' + work_dir + '/' + mesh_name + ' -part ' + str(siz)
-        print(command_line)
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp, stdin=subprocess.PIPE, stdout=fileout,
-                             stderr=fileout, env=os.environ, shell=False, close_fds=True)
-        retcode = p.wait()
-        for i in range(1, siz):
-            comm.send(1, dest=i, tag=11)
-    else:
-        data = comm.recv(source=0, tag=11)
-
-    if siz == 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).myrank_execute(rank)
-
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in minimeters
-
-    ensemble_size = 1
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379000 * np.ones(ensemble_size)
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K) = 0.150 W/(mm K)
-    k_rhodium = 0.150
-    d_rhodium = 0.781E-05
-
-    E_WCu = 280000 * np.ones(ensemble_size)
-    nu_WCu = 0.26 * np.ones(ensemble_size)
-    k_WCu = 0.180
-    d_WCu = 0.88E-05
-
-    E_SS = 180000 * np.ones(ensemble_size)
-    nu_SS = 0.26 * np.ones(ensemble_size)
-    k_SS = 0.020
-    d_SS = 1.6E-05
-
-    E_CuCrZr = 130000 * np.ones(ensemble_size)
-    nu_CuCrZr = 0.26 * np.ones(ensemble_size)
-    k_CuCrZr = 0.280
-    d_CuCrZr = 1.6E-05
-
-    E_I718 = 180000 * np.ones(ensemble_size)
-    nu_I718 = 0.26 * np.ones(ensemble_size)
-    k_I718 = 0.020
-    d_I718 = 1.4E-05
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium,
-             nu_rhodium, k_rhodium, d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 2 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 3 part 1", "CuCrZr",
-             E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if 1:
-        m.Dirichlet(pbl, "Holder z clamping", "Clamped", 0,
-                     0., 0, 0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x-y clamping", "Clamped", 1,
-                     0., 1, 0., 0, 0., 0, 0., ensemble_size)
-    else:
-        m.Dirichlet(pbl, "Holder z clamping points", "Clamped",
-                     0, 0., 0, 0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder y clamping points", "Clamped",
-                     0, 0., 1, 0., 0, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x clamping points", "Clamped",
-                     1, 0., 0, 0., 0, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0.,
-                 0, 0., 0, 0., 1, 70.-T_ref, ensemble_size)
-
-    zero = np.zeros(ensemble_size)
-    hf = ((70 / (0.0121*1000**2))) * \
-        np.ones(ensemble_size)  # 70 W / (0.0121 m^2)
-
-    m.Neumann(pbl, "Mirror surface", "heat fluxes", 0,
-              zero, 0, zero, 0, zero, 1, hf, ensemble_size)
-
-    m.Source(pbl, "Mirror", "ihg", 70E-03)
-    m.Source(pbl, "Substrate", "ihg", 2.45E-03)
-    m.Source(pbl, "Holder", "ihg", 0.7E-03)
-
-    m.Source(pbl, "Spacer 1 part 1", "ihg", 0.7E-03)
-    m.Source(pbl, "Spacer 2 part 1", "ihg", 0.7E-03)
-    m.Source(pbl, "Spacer 3 part 1", "ihg", 0.7E-03)
-
-    m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E-03)
-    m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E-03)
-    m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E-03)
-
-    m.Source(pbl, "Shaft 1", "ihg", 0.7E-03)
-    m.Source(pbl, "Shaft 2", "ihg", 0.7E-03)
-    m.Source(pbl, "Shaft 3", "ihg", 0.7E-03)
-
-    m.Source(pbl, "Nut 1", "ihg", 0.7E-03)
-    m.Source(pbl, "Nut 2", "ihg", 0.7E-03)
-    m.Source(pbl, "Nut 3", "ihg", 0.7E-03)
-
-    m.Source(pbl, "Washer 1", "ihg", 0.7E-03)
-    m.Source(pbl, "Washer 2", "ihg", 0.7E-03)
-    m.Source(pbl, "Washer 3", "ihg", 0.7E-03)
-
-    norm1 = tbox.Vector3d(0, 0, -1)
-    norm2 = tbox.Vector3d(0, 0, 1)
-
-    # Bolt 1
-    cont = m.Contact(pbl, "Bolt 1 to holder", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    # cont.setInitialyOpen()
-    cont.setMaster(pbl, "Holder to bolt 1", norm1)
-
-    cont = m.Contact(pbl, "Spacer 1 to holder", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Holder to spacer 1", norm1)
-
-    cont = m.Contact(pbl, "Bolt 1 to washer 1", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 1 to bolt 1", norm1)
-
-    cont = m.Contact(pbl, "Spacer 1 to washer 1 part 1", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 1 to spacer 1 part 1", norm1)
-
-    cont = m.Contact(pbl, "Spacer 1 to washer 1 part 2", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 1 to spacer 1 part 2", norm1)
-
-    cont = m.Contact(pbl, "Spacer 1 to substrate", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Substrate to spacer 1", norm1)
-
-    # Bolt 2
-    cont = m.Contact(pbl, "Bolt 2 to holder", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Holder to bolt 2", norm1)
-
-    cont = m.Contact(pbl, "Spacer 2 to holder", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Holder to spacer 2", norm1)
-
-    cont = m.Contact(pbl, "Bolt 2 to washer 2", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 2 to bolt 2", norm1)
-
-    cont = m.Contact(pbl, "Spacer 2 to washer 2 part 1", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 2 to spacer 2 part 1", norm1)
-
-    cont = m.Contact(pbl, "Spacer 2 to washer 2 part 2", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 2 to spacer 2 part 2", norm1)
-
-    cont = m.Contact(pbl, "Spacer 2 to substrate", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Substrate to spacer 2", norm1)
-
-    # Bolt 3
-    cont = m.Contact(pbl, "Bolt 3 to holder", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Holder to bolt 3", norm1)
-
-    cont = m.Contact(pbl, "Spacer 3 to holder", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Holder to spacer 3", norm1)
-
-    cont = m.Contact(pbl, "Bolt 3 to washer 3", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 3 to bolt 3", norm1)
-
-    cont = m.Contact(pbl, "Spacer 3 to washer 3 part 1", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 3 to spacer 3 part 1", norm1)
-
-    cont = m.Contact(pbl, "Spacer 3 to washer 3 part 2", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Washer 3 to spacer 3 part 2", norm1)
-
-    cont = m.Contact(pbl, "Spacer 3 to substrate", "contact", norm1, 0.)
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Substrate to spacer 3", norm1)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    '''
-    ## Extract results
-    if rank == 0:
-        import katoptron.utilities as u
-        
-        tag_name = "Mirror surface"
-        name_sol = "x_mm.txt"
-
-        DOFperNode = 4
-        
-        if siz > 1:
-            x,y,z,tri,sol = u.extract_2D_all(msh2, tag_name, DOFperNode, ensemble_size, name_sol)
-        else:
-            x,y,z,tri,sol = u.extract_2D_all(msh, tag_name, DOFperNode, ensemble_size, name_sol)
-        
-        Zernike_coeff, Zernike_functions, theta, rho = u.compute_Zernike(x,y,z,tri,sol[:,2],10,np.array([-0.015,0.005]))
-
-        colors = {0:(0,0.4470,0.7410), 1:(0.8500,0.3250,0.0980), 2:(0.9290,0.6940,0.1250), 3:(0.4940,0.1840,0.5560), 4:(0.4660,0.6740,0.1880), 5:(0.3010,0.7450,0.9330), 6:(0.6350,0.0780,0.1840), 7:(0,0.4470,0.7410)}
-        
-        import matplotlib.pyplot as plt
-        from matplotlib import cm
-        #plt.style.use('ggplot')
-
-        plt_linewidth = 4.0
-        
-        print max(z)
-        print min(z)
-
-        print max(sol[:,2])
-        print min(sol[:,2])
-        
-        print Zernike_coeff
-        
-        print u.check_optical_tolerance(Zernike_coeff, Zernike_functions, sol[:,2],"m")
-
-
-        for which_dof in range(0,DOFperNode):
-            levels = np.linspace(min(sol[:,which_dof]), max(sol[:,which_dof]), 15)
-            # Velocity x-component
-            fig = plt.figure(figsize=(8, 8))
-            plt.set_cmap('jet')
-            plt.tricontour(x, y, tri, sol[:,which_dof], levels, linestyles='-',
-                        colors='black', linewidths=0.5)
-            axtri = plt.tricontourf(x, y, tri, sol[:,which_dof], levels, cmap='coolwarm')
-            #plt.triplot(x, y, tri)
-            plt.gca().set_aspect('equal')
-            plt.gca().set_axis_off()
-            
-
-            
-            #coolwarm
-            
-            #cb = fig.colorbar(axtri, orientation="horizontal")
-            #x = np.linspace(0.0, 1.0, 15)
-            #rgb = cm.get_cmap('coolwarm')(x)[np.newaxis, :, :3]
-            #print rgb
-            
-            if which_dof == 0:
-                #cb.set_label('displacement along x [m]', rotation=0)
-                plt.savefig("ux.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "ux"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-            elif which_dof == 1:
-                #cb.set_label('displacement along y [m]', rotation=0)
-                plt.savefig("uy.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "uy"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-            elif which_dof == 2:
-                #cb.set_label('displacement along z [m]', rotation=0)
-                plt.savefig("uz.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "uz"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-            elif which_dof == 3:
-                #cb.set_label('Temperature [C]', rotation=0)
-                plt.savefig("T.pdf", transparent=True, bbox_inches='tight', pad_inches=0.05)
-                print "T"
-                print max(sol[:,which_dof])
-                print min(sol[:,which_dof])
-    
-        #plt.minorticks_on()
-        #plt.gca().set_xticklabels([])
-        #plt.gca().set_yticklabels([])
-        #plt.gca().set_axis_off()
-        #plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
-        #plt.margins(0,0)
-        #plt.gca().xaxis.set_major_locator(plt.NullLocator())
-        #plt.gca().yaxis.set_major_locator(plt.NullLocator())
-
-        zernike_fit = np.dot(Zernike_functions,Zernike_coeff)
-
-        levels = np.linspace(min(zernike_fit), max(zernike_fit), 16)
-        # Velocity x-component
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('jet')
-        plt.tricontour(x, y, tri, zernike_fit, levels, linestyles='-',
-                    colors='black', linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, zernike_fit, levels)
-        #plt.triplot(x, y, tri)
-        plt.gca().set_aspect('equal')
-        
-        cb = fig.colorbar(axtri)
-        
-        levels = np.linspace(min(sol[:,2]-zernike_fit), max(sol[:,2]-zernike_fit), 16)
-        # Velocity x-component
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('jet')
-        plt.tricontour(x, y, tri, sol[:,2]-zernike_fit, levels, linestyles='-',
-                    colors='black', linewidths=0.5)
-        axtri = plt.tricontourf(x, y, tri, sol[:,2]-zernike_fit, levels)
-        #plt.triplot(x, y, tri)
-        plt.gca().set_aspect('equal')
-        
-        cb = fig.colorbar(axtri)
-
-
-
-        plt.show()
-    '''
-    from fwk.testing import *
-    tests = CTests()
-    tests.add(CTest('mean(Tbottom)', 0, 0))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/broken/M1_mirror_optic.py b/katoptron/Juelich/broken/M1_mirror_optic.py
deleted file mode 100644
index 7647f64d..00000000
--- a/katoptron/Juelich/broken/M1_mirror_optic.py
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-from fwk.testing import *
-import matplotlib.tri as tri
-from mpl_toolkits.mplot3d import Axes3D
-from matplotlib import cm
-import matplotlib.pyplot as plt
-import katoptron.utilities as u
-import numpy as np
-import os
-import matplotlib
-matplotlib.use('TkAgg')  # <-- THIS MAKES IT FAST!
-
-
-def main():
-
-    file_dir = os.path.dirname(__file__)
-
-    npzfile = np.load(file_dir+'/mirror_data_1A.npz')
-    x_1A = npzfile['x']
-    y_1A = npzfile['y']
-    z_1A = npzfile['z']
-    sol_1A = npzfile['sol']
-    tri_1A = npzfile['tri']
-    dz_1A = npzfile['dz']
-
-    npzfile = np.load(file_dir+'/mirror_data_1B.npz')
-    x_1B = npzfile['x']
-    y_1B = npzfile['y']
-    z_1B = npzfile['z']
-    sol_1B = npzfile['sol']
-    tri_1B = npzfile['tri']
-    dz_1B = npzfile['dz']
-
-    npzfile = np.load(file_dir+'/mirror_data_2A.npz')
-    x_2A = npzfile['x']
-    y_2A = npzfile['y']
-    z_2A = npzfile['z']
-    sol_2A = npzfile['sol']
-    tri_2A = npzfile['tri']
-    dz_2A = npzfile['dz']
-
-    npzfile = np.load(file_dir+'/mirror_data_2B.npz')
-    x_2B = npzfile['x']
-    y_2B = npzfile['y']
-    z_2B = npzfile['z']
-    sol_2B = npzfile['sol']
-    tri_2B = npzfile['tri']
-    dz_2B = npzfile['dz']
-
-    x = x_1A
-    y = y_1A
-    tri = tri_1A
-    dz = dz_1A
-    levels = np.linspace(min(dz), max(dz), 15)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('jet')
-    plt.tricontour(x, y, tri, dz, levels, linestyles='-',
-                   colors='black', linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, dz, levels, cmap='coolwarm')
-    plt.plot(0.0365, 0.017, 'ko')
-    plt.gca().set_aspect('equal')
-
-    fig = plt.figure(figsize=(16, 9))
-    ax = fig.gca(projection='3d', proj_type='ortho')
-    ax.plot_trisurf(x, y, dz, triangles=tri, cmap='coolwarm')
-    plt.show()
-
-    optical_coefficients_1A, dz_residual_1A = u.compute_RBM_Curvature_Irreg(
-        x_1A, y_1A, z_1A, tri_1A, dz_1A, "m", np.array([0.0365, 0.017]))
-
-    optical_coefficients_1B, dz_residual_1B = u.compute_RBM_Curvature_Irreg(
-        x_1B, y_1B, z_1B, tri_1B, dz_1B, "m", np.array([0.0365, 0.017]))
-
-    optical_coefficients_2A, dz_residual_2A = u.compute_RBM_Curvature_Irreg(
-        x_2A, y_2A, z_2A, tri_2A, dz_2A, "m", np.array([0.0365, 0.017]))
-
-    optical_coefficients_2B, dz_residual_2B = u.compute_RBM_Curvature_Irreg(
-        x_2B, y_2B, z_2B, tri_2B, dz_2B, "m", np.array([0.0365, 0.017]))
-
-    print(optical_coefficients_1A)
-    print(optical_coefficients_1B)
-    print(optical_coefficients_2A)
-    print(optical_coefficients_2B)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/broken/M1_optic_test.py b/katoptron/Juelich/broken/M1_optic_test.py
deleted file mode 100644
index c48f6945..00000000
--- a/katoptron/Juelich/broken/M1_optic_test.py
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from fwk.testing import *
-import matplotlib.tri as tri
-from mpl_toolkits.mplot3d import Axes3D
-from matplotlib import cm
-import matplotlib.pyplot as plt
-import katoptron.utilities as u
-import numpy as np
-import os
-import matplotlib
-matplotlib.use('TkAgg')  # <-- THIS MAKES IT FAST!
-
-
-def rigid_body_mode(dz, theta_x, theta_y, x, y, x_c, y_c):
-    dz_test = np.zeros(x.shape)
-    dz_test = -np.sin(theta_x)*(y-y_c)+np.cos(theta_x)*dz_test
-    dz_test = -np.sin(theta_y)*(x-x_c)+np.cos(theta_y)*dz_test
-    dz_test = dz_test + dz
-    return dz_test
-
-
-def main():
-
-    file_dir = os.path.dirname(__file__)
-
-    npzfile = np.load(file_dir+'/mirror_data.npz')
-    x = npzfile['x']
-    y = npzfile['y']
-    z = np.zeros(x.shape)
-    tri = npzfile['tri']
-    dz = npzfile['dz']
-
-    dz_1 = 0
-    dz_2 = 0.5/1000
-    dz_3 = 0.87/1000
-    dz_4 = (-2. / 1000)
-
-    theta_x_1 = 0
-    theta_x_2 = 0.0015
-    theta_x_3 = -0.0005
-    theta_x_4 = -0.0002
-
-    theta_y_1 = -0.2
-    theta_y_2 = -0.0005
-    theta_y_3 = 0.0015
-    theta_y_4 = 0.0008
-
-    passed_1 = 0
-    passed_2 = 1
-    passed_3 = 1
-    passed_4 = 0
-
-    dz_test_1 = rigid_body_mode(dz_1, theta_x_1, theta_y_1, x, y, 0.069, 0.04)
-    dz_test_2 = rigid_body_mode(dz_2, theta_x_2, theta_y_2, x, y, 0.069, 0.04)
-    dz_test_3 = rigid_body_mode(dz_3, theta_x_3, theta_y_3, x, y, 0.069, 0.04)
-    dz_test_4 = rigid_body_mode(dz_4, theta_x_4, theta_y_4, x, y, 0.069, 0.04)
-
-    '''
-    levels = np.linspace(min(dz), max(dz), 15)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('jet')
-    plt.tricontour(x, y, tri, dz, levels, linestyles='-',
-                colors='black', linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, dz, levels, cmap='coolwarm')
-    plt.plot(0.069,0.04,'ko')
-    plt.gca().set_aspect('equal')
-    
-    fig = plt.figure(figsize=(16,9))
-    ax = fig.gca(projection='3d', proj_type = 'ortho')
-    ax.plot_trisurf(x,y,dz_test_1,triangles=tri, cmap='coolwarm')
-    '''
-    # plt.show()
-
-    optical_coefficients_1, dz_residual_1 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_1, "m", np.array([0.069, 0.04]))
-
-    optical_coefficients_2, dz_residual_2 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_2, "m", np.array([0.069, 0.04]))
-
-    optical_coefficients_3, dz_residual_3 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_3, "m", np.array([0.069, 0.04]))
-
-    optical_coefficients_4, dz_residual_4 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_4, "m", np.array([0.069, 0.04]))
-
-    tests = CTests()
-    measured_dz_1 = optical_coefficients_1[0]
-    tests.add(CTest('piston mode test 1', measured_dz_1, dz_1*1000, 0.05))
-    measured_dz_2 = optical_coefficients_2[0]
-    tests.add(CTest('piston mode test 2', measured_dz_2, dz_2*1000, 0.05))
-    measured_dz_3 = optical_coefficients_3[0]
-    tests.add(CTest('piston mode test 3', measured_dz_3, dz_3*1000, 0.05))
-    measured_dz_4 = optical_coefficients_4[0]
-    tests.add(CTest('piston mode test 4', measured_dz_4, dz_4*1000, 0.05))
-
-    measured_ry_1 = optical_coefficients_1[1]
-    tests.add(CTest('y rotation test 1', measured_ry_1, theta_y_1, 0.05))
-    measured_ry_2 = optical_coefficients_2[1]
-    tests.add(CTest('y rotation test 2', measured_ry_2, theta_y_2, 0.05))
-    measured_ry_3 = optical_coefficients_3[1]
-    tests.add(CTest('y rotation test 3', measured_ry_3, theta_y_3, 0.05))
-    measured_ry_4 = optical_coefficients_4[1]
-    tests.add(CTest('y rotation test 4', measured_ry_4, theta_y_4, 0.05))
-
-    measured_rx_1 = optical_coefficients_1[2]
-    tests.add(CTest('x rotation test 1', measured_rx_1, theta_x_1, 0.05))
-    measured_rx_2 = optical_coefficients_2[2]
-    tests.add(CTest('x rotation test 2', measured_rx_2, theta_x_2, 0.05))
-    measured_rx_3 = optical_coefficients_3[2]
-    tests.add(CTest('x rotation test 3', measured_rx_3, theta_x_3, 0.05))
-    measured_rx_4 = optical_coefficients_4[2]
-    tests.add(CTest('x rotation test 4', measured_rx_4, theta_x_4, 0.05))
-
-    measured_cur_1 = optical_coefficients_1[3]
-    tests.add(CTest('curvature change test 1', measured_cur_1, 0., 1e-10))
-    measured_cur_2 = optical_coefficients_2[3]
-    tests.add(CTest('curvature change test 2', measured_cur_2, 0., 1e-10))
-    measured_cur_3 = optical_coefficients_3[3]
-    tests.add(CTest('curvature change test 3', measured_cur_3, 0., 1e-10))
-    measured_cur_4 = optical_coefficients_4[3]
-    tests.add(CTest('curvature change test 4', measured_cur_4, 0., 1e-10))
-
-    measured_irr_1 = optical_coefficients_1[4]
-    tests.add(CTest('irregularity change test 1', measured_irr_1, 0., 1e-10))
-    measured_irr_2 = optical_coefficients_2[4]
-    tests.add(CTest('irregularity change test 2', measured_irr_2, 0., 1e-10))
-    measured_irr_3 = optical_coefficients_3[4]
-    tests.add(CTest('irregularity change test 3', measured_irr_3, 0., 1e-10))
-    measured_irr_4 = optical_coefficients_4[4]
-    tests.add(CTest('irregularity change test 4', measured_irr_4, 0., 1e-10))
-
-    blurred_1 = u.check_optical_tolerance(optical_coefficients_1, 'mm')
-    blurred_2 = u.check_optical_tolerance(optical_coefficients_2, 'mm')
-    blurred_3 = u.check_optical_tolerance(optical_coefficients_3, 'mm')
-    blurred_4 = u.check_optical_tolerance(optical_coefficients_4, 'mm')
-    tests.add(CTest('checl optical tolerance test 1', blurred_1, passed_1))
-    tests.add(CTest('checl optical tolerance test 2', blurred_2, passed_2))
-    tests.add(CTest('checl optical tolerance test 3', blurred_3, passed_3))
-    tests.add(CTest('checl optical tolerance test 4', blurred_4, passed_4))
-
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/broken/M1_run.sh b/katoptron/Juelich/broken/M1_run.sh
deleted file mode 100755
index 89d65119..00000000
--- a/katoptron/Juelich/broken/M1_run.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-cd ~/dev/waves
-python run.py -k 4 katoptron/tests/M1_assembly_fused_2.py
-cd ~/dev/waves
-python run.py -k 4 katoptron/tests/M1_assembly_fused_CuCrZr_holder_2.py
diff --git a/katoptron/Juelich/mesh/contact_mirror_assembly_mm.brep b/katoptron/Juelich/mesh/contact_mirror_assembly_mm.brep
deleted file mode 100644
index ca7538ed..00000000
--- a/katoptron/Juelich/mesh/contact_mirror_assembly_mm.brep
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:fc50b0325e534597e5c9910a18cbd71e5d5e515ebc09dae745057113e4c055f5
-size 797874
diff --git a/katoptron/Juelich/mesh/contact_mirror_assembly_mm.geo b/katoptron/Juelich/mesh/contact_mirror_assembly_mm.geo
deleted file mode 100644
index bac97b4d..00000000
--- a/katoptron/Juelich/mesh/contact_mirror_assembly_mm.geo
+++ /dev/null
@@ -1,367 +0,0 @@
-// This .geo has been tested with gmsh 3.0.6 and 4.4.1 binaries for Mac and Linux
-
-Macro Clear_all
-  allVolumes[] = Volume "*";
-  Recursive Delete { Volume{allVolumes[] } ; }
-  allSurfaces[] = Surface "*";
-  Recursive Delete { Surface{allSurfaces[] } ; }  
-  allPoints[] = Point "*";
-  Recursive Delete { Point{allPoints[] } ; }    
-Return
-
-Macro Compute_next_avaible_point_id
-  allPoints[] = Point "*" ;
-  NallPoints = #allPoints[] ;
-  Printf("NallPoints %f",NallPoints);
-  next_avaible_point_id = 0;
-  compute_next_avaible_point_id_verbose = 0;
-  For i In {0:NallPoints-1}
-    If(compute_next_avaible_point_id_verbose)
-      Printf("Compute_next_avaible_point_id %g, %g",i,allPoints[i]);
-    EndIf
-    If(allPoints[i]>= next_avaible_point_id)
-      next_avaible_point_id = allPoints[i] + 1;
-    EndIf
-  EndFor
-  Printf("Compute_next_avaible_point_id newp %g",newp);
-  Printf("Compute_next_avaible_point_id next_avaible_point_id %g",next_avaible_point_id);
-Return
-
-Macro Scale_axis_mm_to_m
-  allPoints[] = Point "*" ;
-  allLines[] = Line "*" ;
-  allSurfaces[] = Surface "*";
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OO};
-  EndIf
-  Dilate {{-c1[0],-c1[1],-c1[2]},0.001} { Volume{allVolumes[] } ; }
-
-  allPoints[] = Point "*" ;
-  allLines[] = Line "*" ;
-  allSurfaces[] = Surface "*";
-  allVolumes[] = Volume "*";
-Return
-
-Macro Weld_bolt
-  new_weld_line_loop = newreg;
-  Curve Loop(new_weld_line_loop) = curves_id_1[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.026} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_1 = num[1];
-  num[] = Extrude {0, 0, -0.012} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_2 = num[1];
-  new_weld_line_loop = newreg;
-  Curve Loop(new_weld_line_loop) = curves_id_2[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.002} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_3 = num[1];
-  new_weld_line_loop = newreg;
-  Curve Loop(new_weld_line_loop) = curves_id_3[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, -0.006} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_4 = num[1];
-  num[] = BooleanUnion{ Volume{volume_id_1}; Delete; }{ Volume{volume_id_2}; Volume{volume_id_3}; Volume{volume_id_4}; Volume{volume_id_5}; Volume{volume_id_6}; Volume{volume_id_7}; Volume{volume_id_8}; Volume{volume_id_9}; Volume{new_volume_1}; Volume{new_volume_2}; Volume{new_volume_3}; Volume{new_volume_4}; Delete; };
-  new_volume_1 = num[0];
-Return
-
-Macro Weld_tube
-  c1[] = Point{pipe_p1};
-  c2[] = Point{pipe_p2};
-  center1[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-  pipe_radius = Sqrt((c1[0]-center1[0])^2+(c1[1]-center1[1])^2+(c1[2]-center1[2])^2);
-
-  c1[] = Point{weld_p1};
-  c2[] = Point{weld_p5};
-  center1[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-  weld_radius = Sqrt((c1[0]-center1[0])^2+(c1[1]-center1[1])^2+(c1[2]-center1[2])^2);
-
-  new_weld_p1 = newp;
-  Point(new_weld_p1) = {(pipe_radius/weld_radius)*(c1[0]-center1[0])+center1[0],(pipe_radius/weld_radius)*(c1[1]-center1[1])+center1[1],(pipe_radius/weld_radius)*(c1[2]-center1[2])+center1[2]};
-  new_weld_line1 = newreg; Line(new_weld_line1) = {new_weld_p1, weld_p2};
-  new_weld_line2 = newreg; Line(new_weld_line2) = {weld_p2, weld_p3};
-  new_weld_line3 = newreg; Line(new_weld_line3) = {weld_p3, weld_p4};
-  new_weld_line4 = newreg; Line(new_weld_line4) = {weld_p4, new_weld_p1};
-
-  new_weld_line_loop = newreg;  Line Loop(new_weld_line_loop) = {new_weld_line1,new_weld_line2,new_weld_line3,new_weld_line4};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-
-  c1[]=Point{weld_p3};
-  c2[]=Point{weld_p4};
-
-  Extrude {{c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]}, {center1[0], center1[1], center1[2]}, Pi} {
-    Surface{new_weld_line_loop};
-  }
-  Extrude {{c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]}, {center1[0], center1[1], center1[2]}, -Pi} {
-    Surface{new_weld_line_loop};
-  }
-Return
-
-Macro Compute_cross_and_theta
-  norm_1 = Sqrt(vec_1[0]^2+vec_1[1]^2+vec_1[2]^2);
-  norm_2 = Sqrt(vec_2[0]^2+vec_2[1]^2+vec_2[2]^2);
-
-  cross[] = {vec_1[1]*vec_2[2]-vec_1[2]*vec_2[1],vec_1[2]*vec_2[0]-vec_1[0]*vec_2[2],vec_1[0]*vec_2[1]-vec_1[1]*vec_2[0]};
-  norm_cross = Sqrt(cross[0]^2+cross[1]^2+cross[2]^2);
-
-  dot = vec_1[0]*vec_2[0] + vec_1[1]*vec_2[1] + vec_1[2]*vec_2[2];
-
-  theta = Acos(dot/(norm_1*norm_2));
-Return
-
-Macro Rotate_Axis
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OX_1};
-    c2[] = Point{point_OX_2};
-    Printf("Rotate_Axis point_OX_1 c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-    Printf("Rotate_Axis point_OX_2 c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  EndIf
-
-  OX[] = {c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]};
-  vec_1[] = OX[];
-  vec_2[] = {1,0,0};
-
-  Call Compute_cross_and_theta;
-
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c3[] = Point{point_OY_1};
-    c4[] = Point{point_OY_2};
-    Printf("Rotate_Axis point_OY_1 c3 (%g,%g,%g)",c3[0],c3[1],c3[2]);
-    Printf("Rotate_Axis point_OY_2 c4 (%g,%g,%g)",c4[0],c4[1],c4[2]);
-  EndIf
-
-  OY[] = {c4[0]-c3[0],c4[1]-c3[1],c4[2]-c3[2]};
-  vec_1[] = OY[];
-  vec_2[] = {0,1,0};
-
-  Call Compute_cross_and_theta;
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-Return
-
-Macro Translate_Axis
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OO};
-    Printf("Translate_Axis point_OO c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-  EndIf
-  Translate {-c1[0],-c1[1],-c1[2]} { Volume{allVolumes[] } ; }
-  allVolumes[] = Volume "*";
-Return
-
-Macro Contact_disk
-  c1[] = Point{point_disk_R_1};
-  c2[] = Point{point_disk_R_2};
-
-  center[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-
-  R = mR * Sqrt((c1[0]-center[0])^2+(c1[1]-center[1])^2+(c1[2]-center[2])^2);
-
-  c1[] = Point{point_surface_disk_1};
-  c2[] = Point{point_surface_disk_2};
-
-  new_disk = newreg;
-  Disk(new_disk) = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2, R, R};
-
-  Printf("c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-  Printf("c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  Printf("Center (%g,%g,%g) radius %g",(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2, R) ;
-
-  BooleanFragments{ Surface{new_disk}; Delete; }{ Volume{volume_id}; Delete; }
-Return
-
-Macro Add_Optical_Axis
-  If(usePointID)
-    p1[] = Point{point_mirror_x};
-    p2[] = Point{point_mirror_y};
-    Printf("Add_Optical_Axis p1 (%g,%g,%g)",p1[0],p1[1],p1[2]);
-    Printf("Add_Optical_Axis p2 (%g,%g,%g)",p2[0],p2[1],p2[2]);
-  EndIf
-
-  Printf("Add_Optical_Axis OA (%g,%g,%g)",p1[0]+Delta_x,p2[1]+Delta_y,p1[2]);
-
-  Call Compute_next_avaible_point_id;
-  OA = next_avaible_point_id;
-  Point(OA) = {p1[0]+Delta_x, p2[1]+Delta_y, p1[2], 1};
-  new_disk = newreg;
-  Disk(new_disk) = {p1[0]+Delta_x, p2[1]+Delta_y, p1[2], R, R};
-
-  BooleanFragments{  Point{OA}; Surface{new_disk}; Delete; }{ Volume{Mirror_id}; Delete; }
-  BooleanFragments{  Point{OA}; Delete; }{ Volume{Mirror_id}; Delete; }
-Return
-
-SetFactory("OpenCASCADE");
-
-rerun = 0;
-
-If(!FileExists("contact_mirror_assembly_mm.brep") || rerun)
-  v() = ShapeFromFile("mirror_assembly.stp");
-
-  For k In {20:23:1}
-    Recursive Delete { Volume{k}; }
-  EndFor
-
-  For k In {27:62:1}
-    Recursive Delete { Volume{k}; }
-  EndFor
-
-  volumes1[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,24,25,26};
-  BooleanFragments{ Volume{volumes1[] }; Delete; }{}
-
-  volumes2[] = {16,19};
-  BooleanFragments{ Volume{volumes2[] }; Delete; }{}
-
-  usePointID = 0;
-
-  // Realign the axis
-
-  If(usePointID)
-    point_OX_1 = 835;
-    point_OX_2 = 834;
-
-    point_OY_1 = 938;
-    point_OY_2 = 940;
-  Else
-    c1[] = {6492.32979087,-145.832273844,4445.62173365};
-    c2[] = {6411.66078991,-103.544497493,4385.74472425};
-
-    c3[] = {-7270.05243185,1092.57096931,2726.17090744};
-    c4[] = {-7270.05243185,1128.49789026,2747.92536333};    
-  EndIf
-
-  Call Rotate_Axis;
-
-  If(usePointID)
-    point_OO = 938;
-  Else
-    c1[] = {-7294.05,2346.64,1780.06};
-  EndIf
-
-  Call Translate_Axis;
-
-  Recursive Delete { Volume{3,17,18}; }
-
-  mR = 1.25;
-  point_disk_R_1 = 4848;
-  point_disk_R_2 = 4849;
-  point_surface_disk_1 = 4760;
-  point_surface_disk_2 = 4758;
-  volume_id = 19; 
-  Call Contact_disk;
-
-  mR = 1.25;
-  point_disk_R_1 = 4815;
-  point_disk_R_2 = 4814;
-  point_surface_disk_1 = 4916;
-  point_surface_disk_2 = 4914;
-  volume_id = 19; 
-  Call Contact_disk;
-
-  mR = 1.25;
-  point_disk_R_1 = 4780;
-  point_disk_R_2 = 4781;
-  point_surface_disk_1 = 4924;
-  point_surface_disk_2 = 4925;  
-  volume_id = 19; 
-  Call Contact_disk;
-
-  mR = 1.;
-  point_disk_R_1 = 4848;
-  point_disk_R_2 = 4849;
-  point_surface_disk_1 = 4332;
-  point_surface_disk_2 = 4330;
-  volume_id = 16; 
-  Call Contact_disk;
-
-  mR = 1.;
-  point_disk_R_1 = 4848;
-  point_disk_R_2 = 4849;
-  point_surface_disk_1 = 4975;
-  point_surface_disk_2 = 4974;
-  volume_id = 16; 
-  Call Contact_disk;
-
-  mR = 1.;
-  point_disk_R_1 = 4246;
-  point_disk_R_2 = 4245;
-  point_surface_disk_1 = 4968;
-  point_surface_disk_2 = 4967;
-  volume_id = 16;
-  Call Contact_disk;
-
-  Save "contact_mirror_assembly_mm.brep";
-  Call Clear_all;
-EndIf
-
-Merge "contact_mirror_assembly_mm.brep"; 
-
-Physical Volume("Mirror") = {2};
-Physical Volume("Substrate") = {1};
-Physical Volume("Washer 1") = {5};
-Physical Volume("Washer 2") = {4};
-Physical Volume("Washer 3") = {3};
-
-Physical Volume("Shaft 1") = {8};
-Physical Volume("Shaft 2") = {7};
-Physical Volume("Shaft 3") = {6};  
-
-Physical Volume("Spacer 1 part 1") = {12};
-Physical Volume("Spacer 2 part 1") = {11};
-Physical Volume("Spacer 3 part 1") = {9};
-
-Physical Volume("Spacer 1 part 2") = {14};
-Physical Volume("Spacer 2 part 2") = {13};
-Physical Volume("Spacer 3 part 2") = {10};
-
-Physical Volume("Holder") = {15,16};
-
-Physical Volume("Nut 1") = {18};
-Physical Volume("Nut 2") = {19};
-Physical Volume("Nut 3") = {17};
-
-Physical Surface("Mirror surface") = {113};
-
-Physical Surface("Cooling channels") = {508, 509, 525, 527, 523, 522, 498, 499, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 521, 520, 500, 501, 502, 503, 504, 505, 506, 507, 526, 600, 620, 621, 598, 599};
-
-Physical Surface("Holder z clamping") = {563, 564, 574, 573, 546, 545};
-Physical Surface("Holder x-y clamping") = {548, 547, 570, 569, 555, 554};
-
-Physical Surface("Holder to nut 1") = {644};
-Physical Surface("Holder to nut 2") = {645};
-Physical Surface("Holder to nut 3") = {643};
-
-Physical Surface("Holder to spacer 1") = {372};
-Physical Surface("Holder to spacer 2") = {371};
-Physical Surface("Holder to spacer 3") = {363};
-
-Physical Surface("Nut 1 to holder") = {680};
-Physical Surface("Nut 2 to holder") = {711};
-Physical Surface("Nut 3 to holder") = {649};
-
-Physical Surface("Spacer 1 to holder") = {352};
-Physical Surface("Spacer 2 to holder") = {342};
-Physical Surface("Spacer 3 to holder") = {302};
-
-Physical Point("Holder x-y-z clamping point") = {765};
-Physical Point("Holder z clamping point") = {743};
-Physical Point("Holder z-y clamping point") = {736};
-
-Physical Point("Optical Axis") = {958};
-
-Mesh.Algorithm = 6;
-//Mesh.Algorithm3D = 4;
-Mesh.CharacteristicLengthMin = 1.;
-Mesh.CharacteristicLengthMax = 1.;
-Mesh.MshFileVersion = 2.2;
diff --git a/katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.brep b/katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.brep
deleted file mode 100644
index 67f36e95..00000000
--- a/katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.brep
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6d0b2b76c0039cded13762bb53863c4415445213edaccec9464e2b45bea3d680
-size 2572367
diff --git a/katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.geo b/katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.geo
deleted file mode 100644
index b6ec6110..00000000
--- a/katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.geo
+++ /dev/null
@@ -1,694 +0,0 @@
-// This .geo has been tested with gmsh 3.0.6 and 4.4.1 binaries for Mac and Linux
-
-Macro Clear_all
-  allVolumes[] = Volume "*";
-  Recursive Delete { Volume{allVolumes[] } ; }
-  allSurfaces[] = Surface "*";
-  Recursive Delete { Surface{allSurfaces[] } ; }  
-  allPoints[] = Point "*";
-  Recursive Delete { Point{allPoints[] } ; }    
-Return
-
-Macro Compute_next_avaible_point_id
-  allPoints[] = Point "*" ;
-  NallPoints = #allPoints[] ;
-  Printf("NallPoints %f",NallPoints);
-  next_avaible_point_id = 0;
-  compute_next_avaible_point_id_verbose = 0;
-  For i In {0:NallPoints-1}
-    If(compute_next_avaible_point_id_verbose)
-      Printf("Compute_next_avaible_point_id %g, %g",i,allPoints[i]);
-    EndIf
-    If(allPoints[i]>= next_avaible_point_id)
-      next_avaible_point_id = allPoints[i] + 1;
-    EndIf
-  EndFor
-  Printf("Compute_next_avaible_point_id newp %g",newp);
-  Printf("Compute_next_avaible_point_id next_avaible_point_id %g",next_avaible_point_id);
-Return
-
-Macro Scale_axis_mm_to_m
-  allPoints[] = Point "*" ;
-  allLines[] = Line "*" ;
-  allSurfaces[] = Surface "*";
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OO};
-  EndIf
-  Dilate {{-c1[0],-c1[1],-c1[2]},0.001} { Volume{allVolumes[] } ; }
-
-  allPoints[] = Point "*" ;
-  allLines[] = Line "*" ;
-  allSurfaces[] = Surface "*";
-  allVolumes[] = Volume "*";
-Return
-
-Macro Weld_bolt
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = curves_id_1[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.026} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_1 = num[1];
-  num[] = Extrude {0, 0, -0.012} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_2 = num[1];
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = curves_id_2[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.002} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_3 = num[1];
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = curves_id_3[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, -0.006} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_4 = num[1];
-  num[] = BooleanUnion{ Volume{volume_id_1}; Delete; }{ Volume{volume_id_2}; Volume{volume_id_3}; Volume{volume_id_4}; Volume{volume_id_5}; Volume{volume_id_6}; Volume{volume_id_7}; Volume{volume_id_8}; Volume{volume_id_9}; Volume{new_volume_1}; Volume{new_volume_2}; Volume{new_volume_3}; Volume{new_volume_4}; Delete; };
-  new_volume_1 = num[0];
-Return
-
-Macro Weld_bolt_2
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = curves_id_1[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.026} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_1 = num[1];
-  num[] = Extrude {0, 0, -0.012} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_2 = num[1];
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = curves_id_2[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.002} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_3 = num[1];
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = curves_id_3[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, -0.006} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_4 = num[1];
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = curves_id_4[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, -6.25} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_5 = num[1];  
-
-  Recursive Delete { Volume{volume_id_4, volume_id_5}; } 
-
-  num[] = BooleanUnion{ Volume{volume_id_1}; Delete; }{ Volume{volume_id_2}; Volume{volume_id_3}; Volume{volume_id_6}; Volume{volume_id_7}; Volume{volume_id_8}; Volume{volume_id_9}; Volume{new_volume_1}; Volume{new_volume_2}; Volume{new_volume_3}; Volume{new_volume_4}; Volume{new_volume_5}; Delete; };
-  new_volume_1 = num[0];
-Return
-
-Macro Weld_tube
-  c1[] = Point{pipe_p1};
-  c2[] = Point{pipe_p2};
-  center1[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-  pipe_radius = Sqrt((c1[0]-center1[0])^2+(c1[1]-center1[1])^2+(c1[2]-center1[2])^2);
-
-  c1[] = Point{weld_p1};
-  c2[] = Point{weld_p5};
-  center1[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-  weld_radius = Sqrt((c1[0]-center1[0])^2+(c1[1]-center1[1])^2+(c1[2]-center1[2])^2);
-
-  new_weld_p1 = newp;
-  Point(new_weld_p1) = {(pipe_radius/weld_radius)*(c1[0]-center1[0])+center1[0],(pipe_radius/weld_radius)*(c1[1]-center1[1])+center1[1],(pipe_radius/weld_radius)*(c1[2]-center1[2])+center1[2]};
-  new_weld_line1 = newreg; Line(new_weld_line1) = {new_weld_p1, weld_p2};
-  new_weld_line2 = newreg; Line(new_weld_line2) = {weld_p2, weld_p3};
-  new_weld_line3 = newreg; Line(new_weld_line3) = {weld_p3, weld_p4};
-  new_weld_line4 = newreg; Line(new_weld_line4) = {weld_p4, new_weld_p1};
-
-  new_weld_line_loop = newreg;  Line Loop(new_weld_line_loop) = {new_weld_line1,new_weld_line2,new_weld_line3,new_weld_line4};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-
-  c1[]=Point{weld_p3};
-  c2[]=Point{weld_p4};
-
-  Extrude {{c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]}, {center1[0], center1[1], center1[2]}, Pi} {
-    Surface{new_weld_line_loop};
-  }
-  Extrude {{c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]}, {center1[0], center1[1], center1[2]}, -Pi} {
-    Surface{new_weld_line_loop};
-  }
-Return
-
-Macro Compute_cross_and_theta
-  norm_1 = Sqrt(vec_1[0]^2+vec_1[1]^2+vec_1[2]^2);
-  norm_2 = Sqrt(vec_2[0]^2+vec_2[1]^2+vec_2[2]^2);
-
-  cross[] = {vec_1[1]*vec_2[2]-vec_1[2]*vec_2[1],vec_1[2]*vec_2[0]-vec_1[0]*vec_2[2],vec_1[0]*vec_2[1]-vec_1[1]*vec_2[0]};
-  norm_cross = Sqrt(cross[0]^2+cross[1]^2+cross[2]^2);
-
-  dot = vec_1[0]*vec_2[0] + vec_1[1]*vec_2[1] + vec_1[2]*vec_2[2];
-
-  theta = Acos(dot/(norm_1*norm_2));
-Return
-
-Macro Rotate_Axis
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OX_1};
-    c2[] = Point{point_OX_2};
-    Printf("Rotate_Axis point_OX_1 c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-    Printf("Rotate_Axis point_OX_2 c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  EndIf
-
-  OX[] = {c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]};
-  vec_1[] = OX[];
-  vec_2[] = {1,0,0};
-
-  Call Compute_cross_and_theta;
-
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c3[] = Point{point_OY_1};
-    c4[] = Point{point_OY_2};
-    Printf("Rotate_Axis point_OY_1 c3 (%g,%g,%g)",c3[0],c3[1],c3[2]);
-    Printf("Rotate_Axis point_OY_2 c4 (%g,%g,%g)",c4[0],c4[1],c4[2]);
-  EndIf
-
-  OY[] = {c4[0]-c3[0],c4[1]-c3[1],c4[2]-c3[2]};
-  vec_1[] = OY[];
-  vec_2[] = {0,1,0};
-
-  Call Compute_cross_and_theta;
-  
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-Return
-
-Macro Rotate_Axis_x
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OX_1};
-    c2[] = Point{point_OX_2};
-    Printf("Rotate_Axis point_OX_1 c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-    Printf("Rotate_Axis point_OX_2 c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  EndIf
-
-  OX[] = {c2[0]-c1[0],c2[1]-c1[1],0.};
-  vec_1[] = OX[];
-  vec_2[] = {1,0,0};
-
-  Call Compute_cross_and_theta;
-
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-Return
-
-Macro Rotate_Axis_1
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OX_1};
-    c2[] = Point{point_OX_2};
-    Printf("Rotate_Axis point_OX_1 c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-    Printf("Rotate_Axis point_OX_2 c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  EndIf
-
-  OX[] = {c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]};
-  vec_1[] = OX[];
-  vec_2[] = {1,0,0};
-
-  Call Compute_cross_and_theta;
-
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c3[] = Point{point_OY_1};
-    c4[] = Point{point_OY_2};
-    Printf("Rotate_Axis point_OY_1 c3 (%g,%g,%g)",c3[0],c3[1],c3[2]);
-    Printf("Rotate_Axis point_OY_2 c4 (%g,%g,%g)",c4[0],c4[1],c4[2]);
-  EndIf
-
-  OY[] = {c4[0]-c3[0],c4[1]-c3[1],c4[2]-c3[2]};
-  vec_1[] = OY[];
-  vec_2[] = {0,1,0};
-
-  Call Compute_cross_and_theta;
-  
-  //Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-Return
-
-Macro Translate_Axis
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OO};
-    Printf("Translate_Axis point_OO c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-  EndIf
-  Translate {-c1[0],-c1[1],-c1[2]} { Volume{allVolumes[] } ; }
-  allVolumes[] = Volume "*";
-Return
-
-Macro Contact_disk
-  c1[] = Point{point_disk_R_1};
-  c2[] = Point{point_disk_R_2};
-
-  center[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-
-  R = Sqrt((c1[0]-center[0])^2+(c1[1]-center[1])^2+(c1[2]-center[2])^2);
-
-  c1[] = Point{point_surface_disk_1};
-  c2[] = Point{point_surface_disk_2};
-
-  new_disk = newreg;
-  Disk(new_disk) = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2, R, R};
-
-  Printf("c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-  Printf("c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  Printf("Center (%g,%g,%g) radius %g",(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2, R) ;
-
-  BooleanFragments{ Surface{new_disk}; Delete; }{ Volume{volume_id}; Delete; }
-Return
-
-Macro Add_Optical_Axis
-  If(usePointID)
-    p1[] = Point{point_mirror_x};
-    p2[] = Point{point_mirror_y};
-    Printf("Add_Optical_Axis p1 (%g,%g,%g)",p1[0],p1[1],p1[2]);
-    Printf("Add_Optical_Axis p2 (%g,%g,%g)",p2[0],p2[1],p2[2]);
-  EndIf
-
-  Printf("Add_Optical_Axis OA (%g,%g,%g)",p1[0]+Delta_x,p2[1]+Delta_y,p1[2]);
-
-  Call Compute_next_avaible_point_id;
-  OA = next_avaible_point_id;
-  Point(OA) = {p1[0]+Delta_x, p2[1]+Delta_y, p1[2], 1};
-  new_disk = newreg;
-  Disk(new_disk) = {p1[0]+Delta_x, p2[1]+Delta_y, p1[2], R, R};
-
-  BooleanFragments{  Point{OA}; Surface{new_disk}; Delete; }{ Volume{Mirror_id}; Delete; }
-  //BooleanFragments{  Point{OA}; Delete; }{ Volume{Mirror_id}; Delete; }
-Return
-
-SetFactory("OpenCASCADE");
-
-rerun = 0;
-
-If(!FileExists("fused_mirror_assembly_all_mm.brep") || rerun)
-  v() = ShapeFromFile("mirror_assembly.stp");
-
-  BooleanFragments{ Volume{1,2,3,7,8,9,17,18,24,25,26,27}; Delete; }{}
-
-  BooleanFragments{ Volume{13,15}; Delete; }{}
-  BooleanFragments{ Volume{12,14}; Delete; }{}
-  BooleanFragments{ Volume{10,11}; Delete; }{}
-
-  // Fuse pipe 1
-  weld_p1 = 1477;
-  weld_p2 = 1478;
-  weld_p3 = 1473;
-  weld_p4 = 1471;
-  weld_p5 = 1475;
-
-  pipe_p1 = 898;
-  pipe_p2 = 900;
-
-  Call Weld_tube ;
-
-  weld_p1 = 885;
-  weld_p2 = 886;
-  weld_p3 = 884;
-  weld_p4 = 882;
-  weld_p5 = 887;
-
-  pipe_p1 = 907;
-  pipe_p2 = 908;
-
-  Call Weld_tube ;
-
-  Recursive Delete { Volume{20,32}; }
-
-  // Fuse pipe 2
-  weld_p1 = 893;
-  weld_p2 = 894;
-  weld_p3 = 892;
-  weld_p4 = 890;
-  weld_p5 = 895;
-
-  pipe_p1 = 932;
-  pipe_p2 = 931;
-
-  Call Weld_tube ;
-
-  weld_p1 = 1483;
-  weld_p2 = 1484;
-  weld_p3 = 1482;
-  weld_p4 = 1480;
-  weld_p5 = 1485;
-
-  pipe_p1 = 922;
-  pipe_p2 = 924;
-
-  Call Weld_tube ;
-  Recursive Delete { Volume{21,33}; }
-
-  // Fuse pipe 3
-  weld_p1 = 1501;
-  weld_p2 = 1502;
-  weld_p3 = 1497;
-  weld_p4 = 1495;
-  weld_p5 = 1499;
-
-  pipe_p1 = 1440;
-  pipe_p2 = 1439;
-
-  Call Weld_tube ;
-
-  Recursive Delete { Volume{35}; }
-
-  // Fuse pipe 4
-  weld_p1 = 1493;
-  weld_p2 = 1494;
-  weld_p3 = 1489;
-  weld_p4 = 1487;
-  weld_p5 = 1491;
-
-  pipe_p1 = 1456;
-  pipe_p2 = 1455;
-
-  Call Weld_tube ;
-
-  Recursive Delete { Volume{34}; }
-
-  usePointID = 0;
-
-  // Realign the axis
-  If(usePointID)
-    point_OX_1 = 1928;
-    point_OX_2 = 1929;
-
-    point_OY_1 = 1925;
-    point_OY_2 = 1927;
-  Else
-    c1[] = {6450.86,-90.1101,4467.16};
-    c2[] = {6425.67,-76.908,4448.46};
-
-    c3[] = {-7294.05,1085.32,2738.15};
-    c4[] = {-7294.05,1121.25,2759.9};
-  EndIf
-
-  Call Rotate_Axis;
-
-  If(usePointID)
-    point_OO = 2008;
-  Else
-    c1[] = {-7294.05,2346.64,1780.06};
-  EndIf
-
-  Call Translate_Axis;
-
-  c1[] = Point{7521};
-  c2[] = Point{7519};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {0.98, 0.98, 0.98}} { Volume{37} ; }  
-
-  c1[] = Point{7538};
-  c2[] = Point{7545};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {0.98, 0.98, 1.}} { Volume{38} ; }  
-
-  /*
-  c1[] = Point{7713};
-  c2[] = Point{7715};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {1.1, 1.1, 1.1}} { Volume{51} ; }  
-
-  c1[] = Point{7777};
-  c2[] = Point{7779};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {1.1, 1.1, 1.1}} { Volume{56} ; }  
-
-  c1[] = Point{7501};
-  c2[] = Point{7506};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {1.1, 1.1, 1.1}} { Volume{36} ; }  
-
-  c1[] = Point{7736};
-  c2[] = Point{7737};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {1.2, 1.2, 1.}} { Volume{53} ; }  
-
-  c1[] = Point{7855};
-  c2[] = Point{7855};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {1.2, 1.2, 1.}} { Volume{62} ; }  
-
-  c1[] = Point{7620};
-  c2[] = Point{7619};
-  Dilate {{(c1[0]+c2[0])/2.,(c1[1]+c2[1])/2.,(c1[2]+c2[2])/2.}, {1.2, 1.2, 1.}} { Volume{44} ; }  
-*/
-  curves_id_1[] = {12528, 12529, 12519, 12525};
-  curves_id_2[] = {12475, 12482, 12470, 12469};
-  curves_id_3[] = {12399, 12396};
-  curves_id_4[] = {12484, 12485};
-  volume_id_1 = 45;
-  volume_id_2 = 50;
-  volume_id_3 = 51;
-  volume_id_4 = 48;
-  volume_id_5 = 49;
-  volume_id_6 = 52;
-  volume_id_7 = 53;
-  volume_id_8 = 46;
-  volume_id_9 = 47;
-  Call Weld_bolt_2;
-
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = { 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 5} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_2 = num[1];  
-  num[] = Extrude {0, 0, -11} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_3 = num[1];  
-
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = {13089, 13080, 13079, 13078};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 2} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_4 = num[1];  
-
-  BooleanUnion{ Volume{new_volume_1}; Delete; }{ Volume{new_volume_2}; Volume{new_volume_3}; Volume{new_volume_4}; Delete; }
-
-  curves_id_1[] = {13014, 13027, 13028, 13017};
-  curves_id_2[] = {12349, 12355, 12362, 12350};
-  curves_id_3[] = {12978, 12975};
-  curves_id_4[] = {12364, 12365};
-  volume_id_1 = 36;
-  volume_id_2 = 37;
-  volume_id_3 = 38;
-  volume_id_4 = 42;
-  volume_id_5 = 43;
-  volume_id_6 = 39;
-  volume_id_7 = 44;
-  volume_id_8 = 40;
-  volume_id_9 = 41;
-  Call Weld_bolt_2;
-
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = {13235, 13236, 13237, 13240, 13241, 13242};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 20} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_2 = num[1];  
-  num[] = Extrude {0, 0, -5} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_3 = num[1];  
-
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = {13218, 13220, 13223, 13224};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 2} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_4 = num[1];  
-  num[] = Extrude {0, 0, -0.07} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_5 = num[1];    
-
-  BooleanUnion{ Volume{79}; Delete; }{ Volume{80}; Volume{new_volume_2}; Volume{new_volume_3}; Volume{new_volume_4}; Volume{new_volume_5}; Delete; }
-  BooleanUnion{ Volume{79}; Delete; }{ Volume{80}; Delete; }
-
-  curves_id_1[] = {12619, 12622, 12628, 12629};
-  curves_id_2[] = {12652, 12658, 12665, 12653};
-  curves_id_3[] = {12583, 12580};
-  curves_id_4[] = {12668, 12667};
-  volume_id_1 = 54;
-  volume_id_2 = 55;
-  volume_id_3 = 56;
-  volume_id_4 = 57;
-  volume_id_5 = 58;
-  volume_id_6 = 61;
-  volume_id_7 = 62;
-  volume_id_8 = 59;
-  volume_id_9 = 60;
-  //Call Weld_bolt_2;
-
-  c1[] = Point{7855};
-  c2[] = Point{7853};
-
-  c3[] = Point{7761};
-
-  c4[] = Point{7776};
-  c5[] = Point{7778};
-
-  dz = c3[2]-c1[2];
-  
-  center[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-
-  D = Sqrt((c4[0]-c5[0])^2+(c4[1]-c5[1])^2+(c4[2]-c5[2])^2);
-  R = D/2.;
-
-  Recursive Delete { Volume{56}; }
-
-  Cylinder(56) = {center[0],center[1],center[2], 0, 0, dz, R, 2*Pi};
-
-  Call Weld_bolt_2;
-
-  //+
-  //BooleanUnion{ Volume{24}; Delete; }{ Volume{25}; Delete; }
-
-  /*
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = {13449, 13448, 13447, 13446, 13445, 13444, 13443, 13442};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 20} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_2 = num[1];  
-  num[] = Extrude {0, 0, -7} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_3 = num[1];  
-
-  new_weld_line_loop = newreg;
-  Line Loop(new_weld_line_loop) = {13418, 13423, 13408, 13434, 13417, 13399};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 5} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_4 = num[1];     
-  BooleanUnion{ Volume{81}; Delete; }{ Volume{82}; Volume{83}; Delete; }
-  BooleanUnion{ Volume{80}; Delete; }{ Volume{81}; Delete; }
-  //BooleanUnion{ Volume{82}; Delete; }{ Volume{83}; Delete; }
-  */
-
-
-  //BooleanUnion{ Volume{new_volume_1}; Delete; }{ Volume{new_volume_2}; Volume{new_volume_3}; Volume{new_volume_4}; Delete; }
-  
-  Recursive Delete { Volume{3,17,18}; }
-  Recursive Delete { Volume{64, 65}; }  
-
-  BooleanUnion{ Volume{31}; Delete; }{ Volume{77}; Volume{76}; Delete; }
-  BooleanUnion{ Volume{30}; Delete; }{ Volume{75}; Volume{74}; Delete; }
-  BooleanUnion{ Volume{23}; Delete; }{ Volume{73}; Volume{72}; Volume{71}; Volume{70}; Delete; }
-  BooleanUnion{ Volume{22}; Delete; }{ Volume{69}; Volume{68}; Volume{67}; Volume{66}; Delete; }
-  
-  allVolumes[] = Volume "*";
-  BooleanFragments{ Volume{allVolumes[] }; Delete; }{}
-  
-  Recursive Delete { Volume{81}; } 
-
-  If(usePointID)
-    point_mirror_x = 945;
-    point_mirror_y = 943;
-  Else
-    p1[] = {129.5,10,5.5};
-    p2[] = {99.5,-20,5.5};
-  EndIf
-
-  Delta_x = -70;
-  Delta_y = 37;
-
-  Mirror_id = 2;
-  R = 1.;
-
-  //Call Add_Optical_Axis;  
-
-  // Realign the axis
-  If(usePointID)
-    point_OX_1 = 9207;
-    point_OX_2 = 9239;
-
-    point_OY_1 = 10843;
-    point_OY_2 = 10845;
-  Else
-    c1[] = {-135.485,130.067,53.5926};
-    c2[] = {-119.545,121.737,54.3284};
-
-    c3[] = {-177.978,53.1314,60.3884};
-    c4[] = {-177.978,-46.8634,61.4069};
-  EndIf
-
-  Call Rotate_Axis_x;
-
-  Save "fused_mirror_assembly_all_mm.brep";
-  Call Clear_all;
-EndIf
-
-Merge "fused_mirror_assembly_all_mm.brep";  
-
-Physical Volume("Mirror") = {2};
-Physical Volume("Substrate") = {1};
-Physical Volume("Washer 1") = {5};
-Physical Volume("Washer 2") = {4};
-Physical Volume("Washer 3") = {3};
-
-Physical Volume("Shaft 1") = {8};
-Physical Volume("Shaft 2") = {7};
-Physical Volume("Shaft 3") = {6};  
-
-Physical Volume("Spacer 1 part 1") = {12};
-Physical Volume("Spacer 2 part 1") = {11};
-Physical Volume("Spacer 3 part 1") = {9};
-
-Physical Volume("Spacer 1 part 2") = {14};
-Physical Volume("Spacer 2 part 2") = {13};
-Physical Volume("Spacer 3 part 2") = {10};
-
-Physical Volume("Holder") = {15,16};
-
-Physical Volume("Nut 1") = {17};
-Physical Volume("Nut 2") = {18};
-Physical Volume("Nut 3") = {21};
-
-Physical Volume("Holder 2") = {19,20};
-
-Physical Volume("Pipes") = {24, 25, 26, 27};
-
-Physical Volume("Bolts") = {22, 23, 28};
-
-Physical Surface("Mirror surface") = {113};
-
-Physical Surface("Cooling channels") = {521, 497, 522, 526, 525, 520, 518, 517, 516, 499, 500, 501, 509, 510, 511, 498, 502, 519, 503, 512, 524, 508, 507, 506, 515, 514, 505, 513, 504};
-Physical Surface("Cooling channels") += {621, 620, 642, 619, 641};
-Physical Surface("Cooling channels") += {878, 850, 803, 793, 845, 800, 795, 796, 799, 879, 876, 851, 849, 864, 865, 848, 863, 842, 784, 812, 785, 786, 811, 859, 875, 858, 841, 873, 874, 840, 787, 789, 808, 810, 788, 790, 807, 791, 839, 806, 805, 860, 870, 838, 866, 868, 869, 846, 797, 802, 801, 794, 855, 809, 877, 854, 872, 871, 852, 862, 844, 853, 847, 861, 856, 857, 867, 843, 804, 792};
-Physical Surface("Cooling channels") += {970, 900, 965, 902, 904, 880, 901, 881, 903, 899, 974, 973, 967, 966, 969, 968, 971, 972};
-Physical Surface("Cooling channels") += {1184, 1185, 1188, 1189, 1198, 1197, 1202, 1201, 1200, 1199, 1226, 1225, 1229, 1227, 1213, 1212, 1217, 1157, 1156, 1152, 1153, 1148, 1149, 1174, 1173, 1170, 1169, 1165, 1166, 1162, 1161, 1144, 1145, 1216, 1228, 1223, 1224, 1221, 1222, 1230, 1196, 1195, 1194, 1193};
-
-Physical Surface("Holder x") = {736, 915, 954};
-Physical Point("Holder yz") = {978};
-Physical Point("Holder z") = {988};
-
-Mesh.Algorithm = 6;
-//Mesh.Algorithm3D = 4;
-Mesh.CharacteristicLengthMin = 1.;
-Mesh.CharacteristicLengthMax = 1.;
-Mesh.MshFileVersion = 2.2;
diff --git a/katoptron/Juelich/mesh/fused_mirror_assembly_mm.brep b/katoptron/Juelich/mesh/fused_mirror_assembly_mm.brep
deleted file mode 100644
index 04fea149..00000000
--- a/katoptron/Juelich/mesh/fused_mirror_assembly_mm.brep
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2747b151adb714224c128182267ce0437c3b776f0d00eb1770036fd270934e56
-size 808561
diff --git a/katoptron/Juelich/mesh/fused_mirror_assembly_mm.geo b/katoptron/Juelich/mesh/fused_mirror_assembly_mm.geo
deleted file mode 100644
index e042e679..00000000
--- a/katoptron/Juelich/mesh/fused_mirror_assembly_mm.geo
+++ /dev/null
@@ -1,324 +0,0 @@
-// This .geo has been tested with gmsh 3.0.6 and 4.4.1 binaries for Mac and Linux
-
-Macro Clear_all
-  allVolumes[] = Volume "*";
-  Recursive Delete { Volume{allVolumes[] } ; }
-  allSurfaces[] = Surface "*";
-  Recursive Delete { Surface{allSurfaces[] } ; }  
-  allPoints[] = Point "*";
-  Recursive Delete { Point{allPoints[] } ; }    
-Return
-
-Macro Compute_next_avaible_point_id
-  allPoints[] = Point "*" ;
-  NallPoints = #allPoints[] ;
-  Printf("NallPoints %f",NallPoints);
-  next_avaible_point_id = 0;
-  compute_next_avaible_point_id_verbose = 0;
-  For i In {0:NallPoints-1}
-    If(compute_next_avaible_point_id_verbose)
-      Printf("Compute_next_avaible_point_id %g, %g",i,allPoints[i]);
-    EndIf
-    If(allPoints[i]>= next_avaible_point_id)
-      next_avaible_point_id = allPoints[i] + 1;
-    EndIf
-  EndFor
-  Printf("Compute_next_avaible_point_id newp %g",newp);
-  Printf("Compute_next_avaible_point_id next_avaible_point_id %g",next_avaible_point_id);
-Return
-
-Macro Scale_axis_mm_to_m
-  allPoints[] = Point "*" ;
-  allLines[] = Line "*" ;
-  allSurfaces[] = Surface "*";
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OO};
-  EndIf
-  Dilate {{-c1[0],-c1[1],-c1[2]},0.001} { Volume{allVolumes[] } ; }
-
-  allPoints[] = Point "*" ;
-  allLines[] = Line "*" ;
-  allSurfaces[] = Surface "*";
-  allVolumes[] = Volume "*";
-Return
-
-Macro Weld_bolt
-  new_weld_line_loop = newreg;
-  Curve Loop(new_weld_line_loop) = curves_id_1[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.026} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_1 = num[1];
-  num[] = Extrude {0, 0, -0.012} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_2 = num[1];
-  new_weld_line_loop = newreg;
-  Curve Loop(new_weld_line_loop) = curves_id_2[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, 0.002} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_3 = num[1];
-  new_weld_line_loop = newreg;
-  Curve Loop(new_weld_line_loop) = curves_id_3[];
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-  num[] = Extrude {0, 0, -0.006} {
-    Surface{new_weld_line_loop};
-  };
-  new_volume_4 = num[1];
-  num[] = BooleanUnion{ Volume{volume_id_1}; Delete; }{ Volume{volume_id_2}; Volume{volume_id_3}; Volume{volume_id_4}; Volume{volume_id_5}; Volume{volume_id_6}; Volume{volume_id_7}; Volume{volume_id_8}; Volume{volume_id_9}; Volume{new_volume_1}; Volume{new_volume_2}; Volume{new_volume_3}; Volume{new_volume_4}; Delete; };
-  new_volume_1 = num[0];
-Return
-
-Macro Weld_tube
-  c1[] = Point{pipe_p1};
-  c2[] = Point{pipe_p2};
-  center1[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-  pipe_radius = Sqrt((c1[0]-center1[0])^2+(c1[1]-center1[1])^2+(c1[2]-center1[2])^2);
-
-  c1[] = Point{weld_p1};
-  c2[] = Point{weld_p5};
-  center1[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-  weld_radius = Sqrt((c1[0]-center1[0])^2+(c1[1]-center1[1])^2+(c1[2]-center1[2])^2);
-
-  new_weld_p1 = newp;
-  Point(new_weld_p1) = {(pipe_radius/weld_radius)*(c1[0]-center1[0])+center1[0],(pipe_radius/weld_radius)*(c1[1]-center1[1])+center1[1],(pipe_radius/weld_radius)*(c1[2]-center1[2])+center1[2]};
-  new_weld_line1 = newreg; Line(new_weld_line1) = {new_weld_p1, weld_p2};
-  new_weld_line2 = newreg; Line(new_weld_line2) = {weld_p2, weld_p3};
-  new_weld_line3 = newreg; Line(new_weld_line3) = {weld_p3, weld_p4};
-  new_weld_line4 = newreg; Line(new_weld_line4) = {weld_p4, new_weld_p1};
-
-  new_weld_line_loop = newreg;  Line Loop(new_weld_line_loop) = {new_weld_line1,new_weld_line2,new_weld_line3,new_weld_line4};
-  Plane Surface(new_weld_line_loop) = {new_weld_line_loop};
-
-  c1[]=Point{weld_p3};
-  c2[]=Point{weld_p4};
-
-  Extrude {{c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]}, {center1[0], center1[1], center1[2]}, Pi} {
-    Surface{new_weld_line_loop};
-  }
-  Extrude {{c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]}, {center1[0], center1[1], center1[2]}, -Pi} {
-    Surface{new_weld_line_loop};
-  }
-Return
-
-Macro Compute_cross_and_theta
-  norm_1 = Sqrt(vec_1[0]^2+vec_1[1]^2+vec_1[2]^2);
-  norm_2 = Sqrt(vec_2[0]^2+vec_2[1]^2+vec_2[2]^2);
-
-  cross[] = {vec_1[1]*vec_2[2]-vec_1[2]*vec_2[1],vec_1[2]*vec_2[0]-vec_1[0]*vec_2[2],vec_1[0]*vec_2[1]-vec_1[1]*vec_2[0]};
-  norm_cross = Sqrt(cross[0]^2+cross[1]^2+cross[2]^2);
-
-  dot = vec_1[0]*vec_2[0] + vec_1[1]*vec_2[1] + vec_1[2]*vec_2[2];
-
-  theta = Acos(dot/(norm_1*norm_2));
-Return
-
-Macro Rotate_Axis
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OX_1};
-    c2[] = Point{point_OX_2};
-    Printf("Rotate_Axis point_OX_1 c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-    Printf("Rotate_Axis point_OX_2 c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  EndIf
-
-  OX[] = {c2[0]-c1[0],c2[1]-c1[1],c2[2]-c1[2]};
-  vec_1[] = OX[];
-  vec_2[] = {1,0,0};
-
-  Call Compute_cross_and_theta;
-
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c3[] = Point{point_OY_1};
-    c4[] = Point{point_OY_2};
-    Printf("Rotate_Axis point_OY_1 c3 (%g,%g,%g)",c3[0],c3[1],c3[2]);
-    Printf("Rotate_Axis point_OY_2 c4 (%g,%g,%g)",c4[0],c4[1],c4[2]);
-  EndIf
-
-  OY[] = {c4[0]-c3[0],c4[1]-c3[1],c4[2]-c3[2]};
-  vec_1[] = OY[];
-  vec_2[] = {0,1,0};
-
-  Call Compute_cross_and_theta;
-  Rotate {{cross[0],cross[1],cross[2]}, {0, 0, 0}, theta} { Volume{allVolumes[] } ; }
-
-Return
-
-Macro Translate_Axis
-  allVolumes[] = Volume "*";
-  If(usePointID)
-    c1[] = Point{point_OO};
-    Printf("Translate_Axis point_OO c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-  EndIf
-  Translate {-c1[0],-c1[1],-c1[2]} { Volume{allVolumes[] } ; }
-  allVolumes[] = Volume "*";
-Return
-
-Macro Contact_disk
-  c1[] = Point{point_disk_R_1};
-  c2[] = Point{point_disk_R_2};
-
-  center[] = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2};
-
-  R = Sqrt((c1[0]-center[0])^2+(c1[1]-center[1])^2+(c1[2]-center[2])^2);
-
-  c1[] = Point{point_surface_disk_1};
-  c2[] = Point{point_surface_disk_2};
-
-  new_disk = newreg;
-  Disk(new_disk) = {(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2, R, R};
-
-  Printf("c1 (%g,%g,%g)",c1[0],c1[1],c1[2]);
-  Printf("c2 (%g,%g,%g)",c2[0],c2[1],c2[2]);
-  Printf("Center (%g,%g,%g) radius %g",(c1[0]+c2[0])/2, (c1[1]+c2[1])/2, (c1[2]+c2[2])/2, R) ;
-
-  BooleanFragments{ Surface{new_disk}; Delete; }{ Volume{volume_id}; Delete; }
-Return
-
-Macro Add_Optical_Axis
-  If(usePointID)
-    p1[] = Point{point_mirror_x};
-    p2[] = Point{point_mirror_y};
-    Printf("Add_Optical_Axis p1 (%g,%g,%g)",p1[0],p1[1],p1[2]);
-    Printf("Add_Optical_Axis p2 (%g,%g,%g)",p2[0],p2[1],p2[2]);
-  EndIf
-
-  Printf("Add_Optical_Axis OA (%g,%g,%g)",p1[0]+Delta_x,p2[1]+Delta_y,p1[2]);
-
-  Call Compute_next_avaible_point_id;
-  OA = next_avaible_point_id;
-  Point(OA) = {p1[0]+Delta_x, p2[1]+Delta_y, p1[2], 1};
-  new_disk = newreg;
-  Disk(new_disk) = {p1[0]+Delta_x, p2[1]+Delta_y, p1[2], R, R};
-
-  BooleanFragments{  Point{OA}; Surface{new_disk}; Delete; }{ Volume{Mirror_id}; Delete; }
-  //BooleanFragments{  Point{OA}; Delete; }{ Volume{Mirror_id}; Delete; }
-Return
-
-SetFactory("OpenCASCADE");
-
-rerun = 0;
-
-If(!FileExists("fused_mirror_assembly_mm.brep") || rerun)
-  v() = ShapeFromFile("mirror_assembly.stp");
-
-  For k In {20:23:1}
-    Recursive Delete { Volume{k}; }
-  EndFor
-
-  For k In {27:62:1}
-    Recursive Delete { Volume{k}; }
-  EndFor
-
-  allVolumes[] = Volume "*";
-  BooleanFragments{ Volume{allVolumes[] }; Delete; }{}
-
-  usePointID = 0;
-
-  // Realign the axis
-
-  If(usePointID)
-    point_OX_1 = 835;
-    point_OX_2 = 834;
-
-    point_OY_1 = 938;
-    point_OY_2 = 940;
-  Else
-    c1[] = {6450.86,-90.1101,4467.16};
-    c2[] = {6425.67,-76.908,4448.46};
-
-    c3[] = {-7294.05,1085.32,2738.15};
-    c4[] = {-7294.05,1121.25,2759.9};
-  EndIf
-
-  Call Rotate_Axis;
-
-  If(usePointID)
-    point_OO = 938;
-  Else
-    c1[] = {-7294.05,2346.64,1780.06};
-  EndIf
-
-  Call Translate_Axis;
-
-  usePointID = 1;
-
-  If(usePointID)
-    point_mirror_x = 4046;
-    point_mirror_y = 4045;
-  Else
-    p1[] = {129.5,10,5.1462499};
-    p2[] = {99.5,-20,5.1462499};
-  EndIf
-
-  Delta_x = -70;
-  Delta_y = 37;
-
-  Mirror_id = 2;
-  R = 1.;
-
-  //Call Add_Optical_Axis;
-
-  Recursive Delete { Volume{3,17,18}; }
-
-  Save "fused_mirror_assembly_mm.brep";
-  Call Clear_all;
-EndIf
-
-Merge "fused_mirror_assembly_mm.brep";  
-
-Physical Volume("Mirror") = {2};
-Physical Volume("Substrate") = {1};
-Physical Volume("Washer 1") = {5};
-Physical Volume("Washer 2") = {4};
-Physical Volume("Washer 3") = {3};
-
-Physical Volume("Shaft 1") = {8};
-Physical Volume("Shaft 2") = {7};
-Physical Volume("Shaft 3") = {6};  
-
-Physical Volume("Spacer 1 part 1") = {12};
-Physical Volume("Spacer 2 part 1") = {11};
-Physical Volume("Spacer 3 part 1") = {9};
-
-Physical Volume("Spacer 1 part 2") = {14};
-Physical Volume("Spacer 2 part 2") = {13};
-Physical Volume("Spacer 3 part 2") = {10};
-
-Physical Volume("Holder") = {15,16};
-
-Physical Volume("Nut 1") = {18};
-Physical Volume("Nut 2") = {19};
-Physical Volume("Nut 3") = {17};
-
-Physical Surface("Mirror surface") = {113};
-//Physical Surface("Disk around optical axis") = {738};
-
-Physical Surface("Cooling channels") = {524, 525, 526, 597, 598, 599, 619, 620};
-
-For k In {497:522}
-  Physical Surface("Cooling channels") += {k};
-EndFor
-
-Physical Surface("Holder z clamping") = {544, 545, 562, 563, 572, 573};
-Physical Surface("Holder x-y clamping") = {553, 554, 546, 547, 568, 569};
-
-Physical Point("Holder x-y-z clamping point") = {762};
-Physical Point("Holder z clamping point") = {740};
-Physical Point("Holder z-y clamping point") = {733};
-
-Physical Point("Optical Axis") = {958};
-
-
-Mesh.Algorithm = 6;
-//Mesh.Algorithm3D = 4;
-Mesh.CharacteristicLengthMin = 1.5;
-Mesh.CharacteristicLengthMax = 1.5;
-Mesh.MshFileVersion = 2.2;
diff --git a/katoptron/Juelich/post_process/AB.py b/katoptron/Juelich/post_process/AB.py
deleted file mode 100755
index f988bc64..00000000
--- a/katoptron/Juelich/post_process/AB.py
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-import numpy as np
-import os
-from katoptron.Juelich.post_process.vtk_post_process_2 import post_process
-from katoptron.Juelich.post_process.vtk_post_process_2 import post_process_mirror
-
-
-def cuts(filename, filename_ref, dz1, T1, dz2, T2, remove_ref=False):
-    p_cut = np.array([5.971051450397588, 20.29345703125, -26.85714554786682])
-    n_cut = np.array([1., 0., 0.])
-
-    directory = 'cut_1'
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    post_process(filename=filename,
-                 filename_ref=filename_ref,
-                 remove_ref=remove_ref,
-                 p_cut=p_cut,
-                 scale_u=1. / 1000.,
-                 scale_T=1.,
-                 n_cut=n_cut,
-                 T_range=T1,
-                 dz_range=dz1)
-
-    os.chdir('..')
-
-    directory = 'cut_2'
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    p_cut = np.array(
-        [24.91341173426381, 4.525806024554082, -26.975820456076352])
-    n_cut = np.array([0.20170202470821563, -0.9790050766051117, 0.])
-
-    post_process(filename=filename,
-                 filename_ref=filename_ref,
-                 remove_ref=remove_ref,
-                 p_cut=p_cut,
-                 scale_u=1. / 1000.,
-                 scale_T=1.,
-                 n_cut=n_cut,
-                 T_range=T2,
-                 dz_range=dz2)
-
-    os.chdir('..')
-
-
-def cuts_all_N(N, case_id, ref_case_id, case_name, remove_ref, T1, Z1, T2, Z2):
-    file_dir = os.path.dirname(__file__)
-    for i in range(0, N):
-        directory = 'point_' + str(i) + '_' + case_name
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-        os.chdir(directory)
-        base_dir = file_dir + '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused/MPI_2/' + case_id + '/1/' + str(
-            i)
-        base_dir_ref = file_dir + '/../../../workspace/katoptron_Juelich_tests_M1_assembly_fused/MPI_2/' + ref_case_id + '/1/' + str(
-            i)
-        cuts(base_dir + '/fused_mirror_assembly_mm_part_2_ast1_s0.pvtu',
-             base_dir_ref + '/fused_mirror_assembly_mm_part_2_ast1_s0.pvtu',
-             dz1[i, :], T1[i, :], dz2[i, :], T2[i, :], remove_ref=remove_ref)
-        post_process_mirror(filename=base_dir + '/mirror_data_all.npz',
-                            filename_ref=base_dir_ref + '/mirror_data_all.npz',
-                            remove_ref=remove_ref)
-        os.chdir('..')
-
-
-if __name__ == "__main__":
-
-    N = 2
-
-    T1 = np.zeros((N, 2))
-    dz1 = np.zeros((N, 2))
-
-    T2 = np.zeros((N, 2))
-    dz2 = np.zeros((N, 2))
-
-    T1[0, :] = [70, 120.00236433]
-    T1[1, :] = [70, 160.19321603]
-
-    T2[0, :] = [70, 120.00236433]
-    T2[1, :] = [70, 160.19321603]
-
-    #cuts_all_N(N, 'A2', 'A2_baking', 'A', False, T, Z)
-    #cuts_all_N(N, 'B2', 'B2_baking', 'B', False, T, Z)
-
-    dz1[0, :] = [5e-07, 2e-05]
-    dz1[1, :] = [-1.5e-06, 4e-05]
-
-    dz2[0, :] = [-2.5e-05, 2.1e-05]
-    dz2[1, :] = [-5e-05, 5e-05]
-    '''
-    dz1[0, :] = [5e-07, 1.5e-05]
-    dz1[1, :] = [-1.5e-06, 4e-05]
-
-    dz2[0, :] = [-2.5e-05, 1.6e-05]
-    dz2[1, :] = [-5e-05, 5e-05]    
-    '''
-    cuts_all_N(N, 'A2', 'A2_baking', 'A_diff', True, T1, dz1, T2, dz2)
-    '''
-    dz1[0, :] = [1.9e-06, 2e-05]
-    dz1[1, :] = [1e-06, 4e-05]
-
-    dz2[0, :] = [-2.1e-05, 2.1e-05]
-    dz2[1, :] = [-5e-05, 5e-05]    
-    '''
-    cuts_all_N(N, 'B2', 'B2_baking', 'B_diff', True, T1, dz1, T2, dz2)
diff --git a/katoptron/Juelich/post_process/__init__.py b/katoptron/Juelich/post_process/__init__.py
deleted file mode 100644
index e8aed8a0..00000000
--- a/katoptron/Juelich/post_process/__init__.py
+++ /dev/null
@@ -1,2 +0,0 @@
-# -*- coding: utf-8 -*-
-# katoptron.Juelich.post_process MODULE initialization file
diff --git a/katoptron/Juelich/post_process/vtk_post_process.py b/katoptron/Juelich/post_process/vtk_post_process.py
deleted file mode 100644
index 33b7bb92..00000000
--- a/katoptron/Juelich/post_process/vtk_post_process.py
+++ /dev/null
@@ -1,328 +0,0 @@
-import vtk
-import numpy as np
-from numpy import zeros
-import matplotlib.pyplot as plt
-#from mpl_toolkits.mplot3d import Axes3D
-#import matplotlib2tikz
-from numpy import linalg as LA
-
-
-def SaveFigureAsImage(fileName, fig=None, **kwargs):
-    ''' Save a Matplotlib figure as an image without borders or frames.
-       Args:
-            fileName (str): String that ends in .png etc.
-
-            fig (Matplotlib figure instance): figure you want to save as the image
-        Keyword Args:
-            orig_size (tuple): width, height of the original image used to maintain 
-            aspect ratio.
-    '''
-    fig_size = fig.get_size_inches()
-    w, h = fig_size[0], fig_size[1]
-    fig.patch.set_alpha(0)
-    if 'orig_size' in kwargs:  # Aspect ratio scaling if required
-        w, h = kwargs['orig_size']
-        w2, h2 = fig_size[0], fig_size[1]
-        fig.set_size_inches([((w2 / w)) * w, ((w2 / w)) * h])
-        fig.set_dpi(((w2 / w)) * fig.get_dpi())
-    a = fig.gca()
-    a.set_frame_on(False)
-    a.set_xticks([])
-    a.set_yticks([])
-    plt.axis('off')
-    plt.xlim(0, h)
-    plt.ylim(w, 0)
-    fig.savefig(fileName, transparent=True, bbox_inches='tight',
-                pad_inches=0)
-
-
-def compute_integrated_F(volume_id,
-                         component_id,
-                         cut_origin_x,
-                         cut_origin_y,
-                         cut_origin_z,
-                         cut_normal_x,
-                         cut_normal_y,
-                         cut_normal_z,
-                         reader,
-                         plot_results=False):
-
-    thresh = vtk.vtkThreshold()
-    thresh.ThresholdBetween(volume_id - 0.5, volume_id + 0.5)
-    thresh.SetInputConnection(reader.GetOutputPort())
-    thresh.SetInputArrayToProcess(0, 0, 0,
-                                  vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS,
-                                  "volume_id")
-    thresh.Update()
-
-    plane = vtk.vtkPlane()
-    plane.SetOrigin(cut_origin_x, cut_origin_y, cut_origin_z)
-    plane.SetNormal(cut_normal_x, cut_normal_y, cut_normal_z)
-
-    cutter = vtk.vtkCutter()
-    cutter.SetCutFunction(plane)
-    cutter.SetInputConnection(thresh.GetOutputPort())
-    cutter.Update()
-
-    data = cutter.GetOutput()
-
-    triangles = data.GetPolys().GetData()
-    points = data.GetPoints()
-
-    stress = data.GetCellData().GetArray('sigma')
-
-    ntri = (triangles.GetNumberOfTuples() // 4)
-    npts = points.GetNumberOfPoints()
-    nstress = stress.GetNumberOfTuples()
-
-    tri = zeros((ntri, 3), dtype=int)
-    x = zeros(npts)
-    y = zeros(npts)
-    z = zeros(npts)
-
-    sigma_vector = zeros(nstress)
-
-    sigma_vector_node = zeros(npts)
-    area_node = zeros(npts)
-
-    for i in range(0, ntri):
-        tri[i, 0] = triangles.GetTuple(4 * i + 1)[0]
-        tri[i, 1] = triangles.GetTuple(4 * i + 2)[0]
-        tri[i, 2] = triangles.GetTuple(4 * i + 3)[0]
-
-    for i in range(npts):
-        pt = points.GetPoint(i)
-        x[i] = pt[0]
-        y[i] = pt[1]
-        z[i] = pt[2]
-
-    for i in range(0, nstress):
-        sigma = stress.GetTuple(i)
-        sigma_vector[i] = sigma[component_id]
-
-    if plot_results:
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('coolwarm')
-        #plt.triplot(x, y, tri)
-        axtri = plt.tripcolor(x, y, tri, sigma_vector)
-        #plt.scatter(x, y)
-        plt.gca().set_aspect('equal')
-        cb = fig.colorbar(axtri, orientation="horizontal")
-
-    F = 0.
-    total_area = 0.
-    for i in range(0, ntri):
-        cross = np.cross(
-            np.array([
-                x[tri[i, 1]] - x[tri[i, 0]], y[tri[i, 1]] - y[tri[i, 0]],
-                z[tri[i, 1]] - z[tri[i, 0]]
-            ]),
-            np.array([
-                x[tri[i, 2]] - x[tri[i, 0]], y[tri[i, 2]] - y[tri[i, 0]],
-                z[tri[i, 2]] - z[tri[i, 0]]
-            ]))
-        area = (LA.norm(cross) / 2)
-        F = F + area * sigma_vector[i]
-        total_area = total_area + area
-        for j in range(0, 3):
-            sigma_vector_node[tri[i, j]] = sigma_vector_node[
-                tri[i, j]] + area * sigma_vector[i]
-            area_node[tri[i, j]] = area_node[tri[i, j]] + area
-
-    for i in range(npts):
-        sigma_vector_node[i] = (sigma_vector_node[i] / area_node[i])
-
-    if plot_results:
-        fig = plt.figure(figsize=(8, 8))
-        plt.set_cmap('coolwarm')
-        #plt.triplot(x, y, tri)
-        axtri = plt.tricontourf(x, y, tri, sigma_vector_node)
-        #plt.scatter(x, y)
-        plt.gca().set_aspect('equal')
-        cb = fig.colorbar(axtri, orientation="horizontal")
-
-    return F
-
-
-def post_process():
-    filename = 'MIRROR_1_ASSEMBLY_fused_2_ast1_s0_0.vtu'
-
-    reader = vtk.vtkXMLUnstructuredGridReader()
-    reader.SetFileName(filename)
-    reader.Update()
-
-    #data1 = reader.GetOutput()
-
-    thresh = vtk.vtkThreshold()
-    thresh.ThresholdBetween(8.5, 11.5)
-    thresh.SetInputConnection(reader.GetOutputPort())
-    thresh.SetInputArrayToProcess(0, 0, 0,
-                                  vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS,
-                                  "volume_id")
-    thresh.Update()
-
-    plane = vtk.vtkPlane()
-    plane.SetOrigin(-0.0156128890812397, 0.020816631615161896,
-                    -0.009049303388172896)
-    plane.SetNormal(0, 0, 1)
-
-    cutter = vtk.vtkFiltersCorePython.vtkCutter()
-    cutter.SetCutFunction(plane)
-    cutter.SetInputConnection(thresh.GetOutputPort())
-    cutter.Update()
-
-    data = cutter.GetOutput()
-
-    triangles = data.GetPolys().GetData()
-    points = data.GetPoints()
-
-    mapper = vtk.vtkCellDataToPointData()
-    mapper.AddInputData(data)
-    mapper.Update()
-
-    vels = mapper.GetOutput().GetPointData().GetArray('z')  # .GetArray(1)
-
-    stress = data.GetCellData().GetArray('sigma')
-    stress_VM = data.GetCellData().GetArray('von Mises')
-
-    ntri = (triangles.GetNumberOfTuples() // 4)
-    npts = points.GetNumberOfPoints()
-    nvls = points.GetNumberOfPoints()  # vels.GetNumberOfTuples()
-
-    nstress = stress.GetNumberOfTuples()
-
-    tri = zeros((ntri, 3), dtype=int)
-    x = zeros(npts)
-    y = zeros(npts)
-    z = zeros(npts)
-    ux = zeros(nvls)
-
-    sigma_vector_node = zeros(npts)
-    area_node = zeros(npts)
-
-    sigma_zz = zeros(nstress)
-
-    for i in range(0, ntri):
-        tri[i, 0] = triangles.GetTuple(4 * i + 1)[0]
-        tri[i, 1] = triangles.GetTuple(4 * i + 2)[0]
-        tri[i, 2] = triangles.GetTuple(4 * i + 3)[0]
-
-    for i in range(npts):
-        pt = points.GetPoint(i)
-        x[i] = pt[0]
-        y[i] = pt[1]
-        z[i] = pt[2]
-
-    for i in range(0, nvls):
-        U = vels.GetTuple(i)
-        ux[i] = U[0]
-
-    for i in range(0, nstress):
-        sigma = stress.GetTuple(i)
-        sigma_zz[i] = sigma[8]
-
-    for i in range(0, ntri):
-        cross = np.cross(
-            np.array([
-                x[tri[i, 1]] - x[tri[i, 0]], y[tri[i, 1]] - y[tri[i, 0]],
-                z[tri[i, 1]] - z[tri[i, 0]]
-            ]),
-            np.array([
-                x[tri[i, 2]] - x[tri[i, 0]], y[tri[i, 2]] - y[tri[i, 0]],
-                z[tri[i, 2]] - z[tri[i, 0]]
-            ]))
-        area = (LA.norm(cross) / 2)
-        for j in range(0, 3):
-            sigma_vector_node[
-                tri[i, j]] = sigma_vector_node[tri[i, j]] + area * sigma_zz[i]
-            area_node[tri[i, j]] = area_node[tri[i, j]] + area
-
-    for i in range(npts):
-        sigma_vector_node[i] = (sigma_vector_node[i] / area_node[i])
-
-    #tmp = stress.GetTuple(0)
-
-    levels = np.linspace(min(ux), max(ux), 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(x,
-                   y,
-                   tri,
-                   ux,
-                   levels,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, ux, levels)
-    plt.gca().set_aspect('equal')
-
-    # plt.minorticks_on()
-    # plt.gca().set_xticklabels([])
-    # plt.gca().set_yticklabels([])
-    # plt.gca().set_axis_off()
-    #plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
-    # plt.margins(0,0)
-    # plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    # plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    # plt.axis('off')
-    #plt.tricontour(x, y, tri, ux, 16)
-    # plt.show
-    #plt.savefig("Ux.pdf", transparent=True, bbox_inches='tight', pad_inches=-0.05)
-
-    # matplotlib2tikz.save('test.tex')
-
-    cb = fig.colorbar(axtri, orientation="horizontal")
-
-    levels = np.linspace(min(sigma_zz), max(sigma_zz), 16)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tripcolor(x, y, tri, sigma_zz, levels)
-    print("sigma_zz_unsmooth.pdf")
-    print(levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("sigma_zz_unsmooth.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    #cb = fig.colorbar(axtri, orientation="horizontal")
-
-    levels = np.linspace(min(sigma_vector_node), max(sigma_vector_node), 16)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tricontourf(x, y, tri, sigma_vector_node, levels)
-    print("sigma_zz_smooth.pdf")
-    print(levels)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("sigma_zz_smooth.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    #cb = fig.colorbar(axtri, orientation="horizontal")
-
-    F_zz_1 = compute_integrated_F(9, 8, 0.0529999991413206, 0.0440000002272427,
-                                  -0.0413666241463175, 0, 0, 1, reader)
-    F_zz_2 = compute_integrated_F(10, 8, 0.0529999991413206,
-                                  0.0440000002272427, -0.0413666241463175, 0,
-                                  0, 1, reader)
-    F_zz_3 = compute_integrated_F(11, 8, 0.0529999991413206,
-                                  0.0440000002272427, -0.0413666241463175, 0,
-                                  0, 1, reader)
-
-    print(F_zz_1)
-    print(F_zz_2)
-    print(F_zz_3)
-
-    # plt.show()
diff --git a/katoptron/Juelich/post_process/vtk_post_process_2.py b/katoptron/Juelich/post_process/vtk_post_process_2.py
deleted file mode 100644
index 0a77c7d3..00000000
--- a/katoptron/Juelich/post_process/vtk_post_process_2.py
+++ /dev/null
@@ -1,961 +0,0 @@
-import vtk
-import numpy as np
-from numpy import zeros
-import matplotlib.pyplot as plt
-#from mpl_toolkits.mplot3d import Axes3D
-#import matplotlib2tikz
-from numpy import linalg as LA
-import matplotlib.tri as mtri
-import katoptron.utilities as u
-
-
-def SaveFigureAsImage(fileName, fig=None, **kwargs):
-    ''' Save a Matplotlib figure as an image without borders or frames.
-       Args:
-            fileName (str): String that ends in .png etc.
-
-            fig (Matplotlib figure instance): figure you want to save as the image
-        Keyword Args:
-            orig_size (tuple): width, height of the original image used to maintain 
-            aspect ratio.
-    '''
-    fig_size = fig.get_size_inches()
-    w, h = fig_size[0], fig_size[1]
-    fig.patch.set_alpha(0)
-    if 'orig_size' in kwargs:  # Aspect ratio scaling if required
-        w, h = kwargs['orig_size']
-        w2, h2 = fig_size[0], fig_size[1]
-        fig.set_size_inches([((w2 / w)) * w, ((w2 / w)) * h])
-        fig.set_dpi(((w2 / w)) * fig.get_dpi())
-    a = fig.gca()
-    a.set_frame_on(False)
-    a.set_xticks([])
-    a.set_yticks([])
-    plt.axis('off')
-    plt.xlim(0, h)
-    plt.ylim(w, 0)
-    fig.savefig(fileName, transparent=True, bbox_inches='tight',
-                pad_inches=0)
-
-
-def compute_integrated_F(volume_id, component_id, cut_origin_x, cut_origin_y,
-                         cut_origin_z, cut_normal_x, cut_normal_y,
-                         cut_normal_z, reader):
-
-    thresh = vtk.vtkThreshold()
-    thresh.ThresholdBetween(volume_id - 0.5, volume_id + 0.5)
-    thresh.SetInputConnection(reader.GetOutputPort())
-    thresh.SetInputArrayToProcess(0, 0, 0,
-                                  vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS,
-                                  "volume_id")
-    thresh.Update()
-
-    plane = vtk.vtkPlane()
-    plane.SetOrigin(cut_origin_x, cut_origin_y, cut_origin_z)
-    plane.SetNormal(cut_normal_x, cut_normal_y, cut_normal_z)
-
-    cutter = vtk.vtkFiltersCorePython.vtkCutter()
-    cutter.SetCutFunction(plane)
-    cutter.SetInputConnection(thresh.GetOutputPort())
-    cutter.Update()
-
-    data = cutter.GetOutput()
-
-    triangles = data.GetPolys().GetData()
-    points = data.GetPoints()
-
-    stress = data.GetCellData().GetArray('sigma')
-
-    ntri = (triangles.GetNumberOfTuples() // 4)
-    npts = points.GetNumberOfPoints()
-    nstress = stress.GetNumberOfTuples()
-
-    tri = zeros((ntri, 3), dtype=int)
-    x = zeros(npts)
-    y = zeros(npts)
-    z = zeros(npts)
-
-    sigma_vector = zeros(nstress)
-
-    sigma_vector_node = zeros(npts)
-    area_node = zeros(npts)
-
-    for i in range(0, ntri):
-        tri[i, 0] = triangles.GetTuple(4 * i + 1)[0]
-        tri[i, 1] = triangles.GetTuple(4 * i + 2)[0]
-        tri[i, 2] = triangles.GetTuple(4 * i + 3)[0]
-
-    for i in range(npts):
-        pt = points.GetPoint(i)
-        x[i] = pt[0]
-        y[i] = pt[1]
-        z[i] = pt[2]
-
-    for i in range(0, nstress):
-        sigma = stress.GetTuple(i)
-        sigma_vector[i] = sigma[component_id]
-
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    #plt.triplot(x, y, tri)
-    axtri = plt.tripcolor(x, y, tri, sigma_vector)
-    #plt.scatter(x, y)
-    plt.gca().set_aspect('equal')
-    cb = fig.colorbar(axtri, orientation="horizontal")
-
-    F = 0.
-
-    for i in range(0, ntri):
-        cross = np.cross(
-            np.array([
-                x[tri[i, 1]] - x[tri[i, 0]], y[tri[i, 1]] - y[tri[i, 0]],
-                z[tri[i, 1]] - z[tri[i, 0]]
-            ]),
-            np.array([
-                x[tri[i, 2]] - x[tri[i, 0]], y[tri[i, 2]] - y[tri[i, 0]],
-                z[tri[i, 2]] - z[tri[i, 0]]
-            ]))
-        area = (LA.norm(cross) / 2)
-        F = F + area * sigma_vector[i]
-        for j in range(0, 3):
-            sigma_vector_node[tri[i, j]] = sigma_vector_node[
-                tri[i, j]] + area * sigma_vector[i]
-            area_node[tri[i, j]] = area_node[tri[i, j]] + area
-
-    for i in range(npts):
-        sigma_vector_node[i] = (sigma_vector_node[i] / area_node[i])
-
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    #plt.triplot(x, y, tri)
-    axtri = plt.tricontourf(x, y, tri, sigma_vector_node)
-    #plt.scatter(x, y)
-    plt.gca().set_aspect('equal')
-    cb = fig.colorbar(axtri, orientation="horizontal")
-
-    return F
-
-
-def post_process(
-        filename='MIRROR_1_ASSEMBLY_fused_2_ast1_s0_0.vtu',
-        filename_ref='MIRROR_1_ASSEMBLY_fused_2_ast1_s0_0.vtu',
-        remove_ref=False,
-        scale_u=1.,
-        scale_T=1.,
-        T_0=22.,
-        p_cut=np.array(
-            [-0.0156128890812397, 0.020816631615161896,
-             0.0006999988108873367]),
-        n_cut=np.array([1, 0, 0]),
-        T_range=np.array([0., 0.]),
-        dz_range=np.array([0., 0.]),
-):
-    if remove_ref:
-        if filename_ref[-4:] == ".vtu":
-            reader = vtk.vtkXMLUnstructuredGridReader()
-        elif filename_ref[-5:] == ".pvtu":
-            reader = vtk.vtkXMLPUnstructuredGridReader()
-
-        reader.SetFileName(filename_ref)
-        reader.Update()
-
-        plane = vtk.vtkPlane()
-        plane.SetOrigin(p_cut[0], p_cut[1], p_cut[2])
-        plane.SetNormal(n_cut[0], n_cut[1], n_cut[2])
-
-        theta = np.arctan(n_cut[1] * 1. / n_cut[0])
-
-        cutter = vtk.vtkFiltersCorePython.vtkCutter()
-        cutter.SetCutFunction(plane)
-        cutter.SetInputConnection(reader.GetOutputPort())
-        cutter.Update()
-
-        data = cutter.GetOutput()
-
-        triangles = data.GetPolys().GetData()
-        points = data.GetPoints()
-
-        mapper = vtk.vtkCellDataToPointData()
-        mapper.AddInputData(data)
-        mapper.Update()
-
-        u = mapper.GetOutput().GetPointData().GetArray('displacement')
-
-        ntri = (triangles.GetNumberOfTuples() // 4)
-        npts = points.GetNumberOfPoints()
-
-        dx_ref = zeros(npts)
-        dy_ref = zeros(npts)
-        dz_ref = zeros(npts)
-
-        for i in range(0, npts):
-            dx_ref[i] = scale_u * u.GetTuple(i)[0]
-            dy_ref[i] = scale_u * u.GetTuple(i)[1]
-            dz_ref[i] = scale_u * u.GetTuple(i)[2]
-
-    if filename[-4:] == ".vtu":
-        reader = vtk.vtkXMLUnstructuredGridReader()
-    elif filename[-5:] == ".pvtu":
-        reader = vtk.vtkXMLPUnstructuredGridReader()
-
-    reader.SetFileName(filename)
-    reader.Update()
-
-    #data1 = reader.GetOutput()
-    '''
-    thresh = vtk.vtkThreshold()
-    thresh.ThresholdBetween(8.5,11.5)
-    thresh.SetInputConnection(reader.GetOutputPort())
-    thresh.SetInputArrayToProcess(0, 0, 0, vtk.vtkDataObject.FIELD_ASSOCIATION_CELLS, "volume_id")
-    thresh.Update()
-    '''
-    plane = vtk.vtkPlane()
-    plane.SetOrigin(p_cut[0], p_cut[1], p_cut[2])
-    plane.SetNormal(n_cut[0], n_cut[1], n_cut[2])
-
-    theta = np.arctan(n_cut[1] * 1. / n_cut[0])
-
-    cutter = vtk.vtkFiltersCorePython.vtkCutter()
-    cutter.SetCutFunction(plane)
-    cutter.SetInputConnection(reader.GetOutputPort())
-    cutter.Update()
-
-    data = cutter.GetOutput()
-
-    triangles = data.GetPolys().GetData()
-    points = data.GetPoints()
-
-    mapper = vtk.vtkCellDataToPointData()
-    mapper.AddInputData(data)
-    mapper.Update()
-
-    T = mapper.GetOutput().GetPointData().GetArray('T')
-    u = mapper.GetOutput().GetPointData().GetArray('displacement')
-    stress_VM_pt = mapper.GetOutput().GetPointData().GetArray('von Mises')
-
-    stress = data.GetCellData().GetArray('sigma')
-    stress_VM = data.GetCellData().GetArray('von Mises')
-    volume_id = data.GetCellData().GetArray('volume_id')
-
-    ntri = (triangles.GetNumberOfTuples() // 4)
-    npts = points.GetNumberOfPoints()
-    nvls = points.GetNumberOfPoints()  # T.GetNumberOfTuples()
-
-    nstress = stress.GetNumberOfTuples()
-
-    tri = zeros((ntri, 3), dtype=int)
-    x = zeros(npts)
-    y = zeros(npts)
-    z = zeros(npts)
-    dx = zeros(npts)
-    dy = zeros(npts)
-    dz = zeros(npts)
-    T_vec = zeros(nvls)
-
-    sigma_vector_node = zeros(npts)
-    sigma_vector_node_filtered = zeros(npts)
-    area_node = zeros(npts)
-
-    sigma_zz = zeros(nstress)
-    sigma_zz_filtered = zeros(nstress)
-    volume_id_vec = zeros(nstress)
-    volume_id_vec_2 = zeros(nstress)
-
-    level_zz = np.linspace(-1e8, 1e8, 16)
-
-    for i in range(0, ntri):
-        tri[i, 0] = triangles.GetTuple(4 * i + 1)[0]
-        tri[i, 1] = triangles.GetTuple(4 * i + 2)[0]
-        tri[i, 2] = triangles.GetTuple(4 * i + 3)[0]
-
-    for i in range(npts):
-        pt = points.GetPoint(i)
-        x[i] = scale_u * pt[0]
-        y[i] = scale_u * pt[1]
-        z[i] = scale_u * pt[2]
-
-    for i in range(0, nvls):
-        T_tmp = T.GetTuple(i)
-        T_vec[i] = scale_T * T_tmp[0] + T_0
-
-        dx[i] = scale_u * u.GetTuple(i)[0]
-        dy[i] = scale_u * u.GetTuple(i)[1]
-        dz[i] = scale_u * u.GetTuple(i)[2]
-
-        sigma_vector_node_filtered[i] = scale_u**2 * stress_VM_pt.GetTuple(
-            i)[0]
-
-    if remove_ref:
-        dx -= dx_ref
-        dy -= dy_ref
-        dz -= dz_ref
-
-    print('T')
-    print(np.amin(T_vec))
-    print(np.amax(T_vec))
-
-    print('u')
-    print(np.amin(dx))
-    print(np.amax(dx))
-    print(np.amin(dy))
-    print(np.amax(dy))
-    print(np.amin(dz))
-    print(np.amax(dz))
-
-    for i in range(0, nstress):
-        sigma = stress.GetTuple(i)
-        sigma_zz[i] = scale_u**2 * sigma[8]
-
-        volume_id_vec[i] = volume_id.GetTuple(i)[0]
-
-        if sigma_zz[i] <= level_zz[0]:
-            sigma_zz_filtered[i] = level_zz[0]
-        elif sigma_zz[i] >= level_zz[15]:
-            sigma_zz_filtered[i] = level_zz[15]
-        else:
-            sigma_zz_filtered[i] = sigma_zz[i]
-
-    volume_id_vec_tmp = volume_id_vec
-
-    volume_id_vec_tmp[np.where(volume_id_vec == 4)] = 3
-    volume_id_vec_tmp[np.where(volume_id_vec == 5)] = 3
-
-    volume_id_vec_tmp[np.where(volume_id_vec == 7)] = 6
-    volume_id_vec_tmp[np.where(volume_id_vec == 8)] = 6
-
-    volume_id_vec_tmp[np.where(volume_id_vec == 10)] = 9
-    volume_id_vec_tmp[np.where(volume_id_vec == 11)] = 9
-
-    volume_id_vec_tmp[np.where(volume_id_vec == 13)] = 12
-    volume_id_vec_tmp[np.where(volume_id_vec == 14)] = 12
-
-    volume_id_vec_tmp[np.where(volume_id_vec == 16)] = 15
-    volume_id_vec_tmp[np.where(volume_id_vec == 17)] = 15
-
-    volume_id_vec_tmp[np.where(volume_id_vec >= 19)] = 19
-    #volume_id_vec_tmp[np.where( volume_id_vec ==17 )] = 15
-
-    indices_volume_id = np.argsort(volume_id_vec_tmp)
-
-    current_i = 0
-    volume_id_vec_2[indices_volume_id[0]] = current_i
-    for i in range(1, len(volume_id_vec)):
-        if volume_id_vec_tmp[indices_volume_id[i - 1]] != volume_id_vec_tmp[
-                indices_volume_id[i]]:
-            current_i = current_i + 1
-        volume_id_vec_2[indices_volume_id[i]] = current_i
-
-    for i in range(0, ntri):
-        cross = np.cross(
-            np.array([
-                x[tri[i, 1]] - x[tri[i, 0]], y[tri[i, 1]] - y[tri[i, 0]],
-                z[tri[i, 1]] - z[tri[i, 0]]
-            ]),
-            np.array([
-                x[tri[i, 2]] - x[tri[i, 0]], y[tri[i, 2]] - y[tri[i, 0]],
-                z[tri[i, 2]] - z[tri[i, 0]]
-            ]))
-        area = (LA.norm(cross) / 2)
-        for j in range(0, 3):
-            sigma_vector_node[
-                tri[i, j]] = sigma_vector_node[tri[i, j]] + area * sigma_zz[i]
-            area_node[tri[i, j]] = area_node[tri[i, j]] + area
-
-    for i in range(npts):
-        sigma_vector_node[i] = (sigma_vector_node[i] / area_node[i])
-        '''
-        if sigma_vector_node[i] <= level_zz[0]:
-            sigma_vector_node_filtered[i] = level_zz[0]
-        elif sigma_vector_node[i] >= level_zz[15]:
-            sigma_vector_node_filtered[i] = level_zz[15]
-        else:
-            sigma_vector_node_filtered[i] = sigma_vector_node[i]
-        '''
-    #tmp = stress.GetTuple(0)
-
-    if T_range[0] == T_range[1]:
-        T_range[0] = min(T_vec)
-        T_range[1] = max(T_vec)
-    level = np.linspace(T_range[0], T_range[1], 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(np.cos(theta) * y - np.sin(theta) * x,
-                   -z,
-                   tri,
-                   T_vec,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(
-        np.cos(theta) * y - np.sin(theta) * x, -z, tri, T_vec, level)
-    f = open("T.txt", "w+")
-    print(str(level[0]) + ', ' + str(level[3]) + ', ' + str(
-        level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(
-            level[15]), file=f)
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("T.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    level = np.linspace(min(dx), max(dx), 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(np.cos(theta) * y - np.sin(theta) * x,
-                   -z,
-                   tri,
-                   dx,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(
-        np.cos(theta) * y - np.sin(theta) * x, -z, tri, dx, level)
-    f = open("dx.txt", "w+")
-    print(str(level[0]) + ', ' + str(level[3]) + ', ' + str(
-        level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(
-            level[15]), file=f)
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("dx.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    level = np.linspace(min(dy), max(dy), 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(np.cos(theta) * y - np.sin(theta) * x,
-                   -z,
-                   tri,
-                   dy,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(
-        np.cos(theta) * y - np.sin(theta) * x, -z, tri, dy, level)
-    f = open("dy.txt", "w+")
-    print(str(level[0]) + ', ' + str(level[3]) + ', ' + str(
-        level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(
-            level[15]), file=f)
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("dy.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    if dz_range[0] == dz_range[1]:
-        dz_range[0] = min(dz)
-        dz_range[1] = max(dz)
-    level = np.linspace(dz_range[0], dz_range[1], 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(np.cos(theta) * y - np.sin(theta) * x,
-                   -z,
-                   tri,
-                   dz,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(
-        np.cos(theta) * y - np.sin(theta) * x, -z, tri, dz, level)
-    f = open("dz.txt", "w+")
-    print(str(level[0]) + ', ' + str(level[3]) + ', ' + str(
-        level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(
-            level[15]), file=f)
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("dz.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-    plt.close()
-    '''
-    #plt.minorticks_on()
-    #plt.gca().set_xticklabels([])
-    #plt.gca().set_yticklabels([])
-    #plt.gca().set_axis_off()
-    #plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)
-    #plt.margins(0,0)
-    #plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    #plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    #plt.axis('off')
-    #plt.tricontour(x, y, tri, T_vec, 16)
-    #plt.show
-    #plt.savefig("T_vec.pdf", transparent=True, bbox_inches='tight', pad_inches=-0.05)
-
-    #matplotlib2tikz.save('test.tex')
-
-    cb = fig.colorbar(axtri, orientation="horizontal")
-
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tripcolor(np.cos(theta)*y-np.sin(theta)*x, -z, tri, volume_id_vec_2)
-    f = open("volume_id.txt", "w+")
-    print >> f, str(level[0]) + ', ' + str(level[3]) + ', ' + str(level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(level[15])
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("volume_id.png",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=0.,
-                dpi=2000)
-    plt.savefig("volume_id.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    linewidth = 2
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tripcolor(np.cos(theta)*y-np.sin(theta)*x, -z, tri, volume_id_vec_2)
-    plt.plot([0.00606, 0.01513], [0.018, 0.018], 'g-', lw=linewidth)
-    plt.plot([0.03085, 0.03993], [0.018, 0.018], 'g-', lw=linewidth)
-    plt.plot([0.04805, 0.05714], [0.018, 0.018], 'g-', lw=linewidth)
-    plt.plot([0.07285, 0.08194], [0.018, 0.018], 'g-', lw=linewidth)
-
-    plt.plot([0.00301297, 0.0862297], [-2.60656e-05, -2.60656e-05],
-             'r-',
-             lw=linewidth)
-
-    plt.plot([0.01513, 0.01718, 0.01718], [0.018, 0.018, 0.007833],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.02881, 0.02881, 0.03085], [0.007833, 0.018, 0.018],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.05714, 0.0591934, 0.0591934], [0.018, 0.018, 0.007833],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.0708286, 0.0708286, 0.07285], [0.007833, 0.018, 0.018],
-             'r-',
-             lw=linewidth)
-
-    plt.plot([0.00768668, 0.00768668, 0.0136152],
-             [0.0299629, 0.028372, 0.028372],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.00768668, 0.0157517], [0.0314519, 0.0314519],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0139112, 0.0163621], [0.0283628, 0.0283628],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0139204, 0.0151413], [0.0253754, 0.0253754],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0153632, 0.0170188], [0.0253754, 0.0253754],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0118091, 0.0138181], [0.0519943, 0.0519943],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0383327, 0.0383327, 0.0323929],
-             [0.0299629, 0.028372, 0.028372],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.0302762, 0.0383327], [0.0314519, 0.0314519],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0297374, 0.032108], [0.0283628, 0.0283628], 'g-', lw=linewidth)
-    plt.plot([0.0289832, 0.0306937], [0.0253754, 0.0253754],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0308688, 0.0321214], [0.0253754, 0.0253754],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0322022, 0.0342226], [0.0519943, 0.0519943],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0496977, 0.0496977, 0.0556013],
-             [0.0299629, 0.028372, 0.028372],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.0496977, 0.0577345], [0.0314519, 0.0314519],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0559981, 0.0583794], [0.0283628, 0.0283628],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0559237, 0.0571888], [0.0253754, 0.0253754],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0573872, 0.0590244], [0.0253754, 0.0253754],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0538401, 0.0558245], [0.0519943, 0.0519943],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0803319, 0.0803319, 0.0743539],
-             [0.0299629, 0.028372, 0.028372],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.0722703, 0.0803815], [0.0314519, 0.0314519],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.0717246, 0.0741058], [0.0283628, 0.0283628],
-             'g-',
-             lw=linewidth)
-    plt.plot([0.07103, 0.0726536], [0.0253754, 0.0253754], 'g-', lw=linewidth)
-    plt.plot([0.0728542, 0.0741013], [0.0253754, 0.0253754],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0742012, 0.0762138], [0.0519943, 0.0519943],
-             'g-',
-             lw=linewidth)
-
-    plt.plot([0.0171631, 0.0171631], [0.0474981, 0.0542711],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.0288311, 0.0288311], [0.0474981, 0.0542711],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.0591792, 0.0591792], [0.0474981, 0.0542711],
-             'r-',
-             lw=linewidth)
-    plt.plot([0.0708312, 0.0708312], [0.0474981, 0.0542711],
-             'r-',
-             lw=linewidth)
-
-    f = open("volume_id_with_contact.txt", "w+")
-    print >> f, str(level[0]) + ', ' + str(level[3]) + ', ' + str(level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(level[15])
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("volume_id_with_contact.png",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=0.,
-                dpi=2000)
-    plt.savefig("volume_id_with_contact.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    #plt.show()
-
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tripcolor(np.cos(theta)*(y+ 100 * dy)-np.sin(theta)*(x+ 100 * dx), -z - 100 * dz, tri, volume_id_vec_2)    
-    f = open("volume_id_def.txt", "w+")
-    print >> f, str(level[0]) + ', ' + str(level[3]) + ', ' + str(level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(level[15])
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("volume_id_def.png",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=0.,
-                dpi=2000)
-    plt.savefig("volume_id_def.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    level = np.linspace(-1e8, 1e8, 16)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tripcolor(np.cos(theta)*y-np.sin(theta)*x, -z, tri, sigma_zz, level)    
-    f = open("sigma_zz_unsmooth_2.txt", "w+")
-    print >> f, str(level[0]) + ', ' + str(level[3]) + ', ' + str(level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(level[15])
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("sigma_zz_unsmooth_2.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    level = np.linspace(-1e8, 1e8, 16)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tripcolor(np.cos(theta)*y-np.sin(theta)*x, -z, tri, sigma_zz_filtered, level)    
-    f = open("sigma_zz_filtered.txt", "w+")
-    print >> f, str(level[0]) + ', ' + str(level[3]) + ', ' + str(level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(level[15])
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("sigma_zz_filtered.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    #cb = fig.colorbar(axtri, orientation="horizontal")
-
-    level = np.linspace(-2e8, 2e8, 16)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tricontourf(np.cos(theta)*y-np.sin(theta)*x, -z, tri, sigma_vector_node, level)    
-    f = open("sigma_zz_smooth_2.txt", "w+")
-    print >> f, str(level[0]) + ', ' + str(level[3]) + ', ' + str(level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(level[15])
-    f.close()
-
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("sigma_zz_smooth_2.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    level = np.linspace(min(sigma_vector_node_filtered),
-                        max(sigma_vector_node_filtered), 16)
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    axtri = plt.tricontourf(np.cos(theta)*y-np.sin(theta)*x, -z, tri, sigma_vector_node_filtered, level)
-
-    f = open("sigma_vector_node_filtered.txt", "w+")
-    print >> f, str(level[0]) + ', ' + str(level[3]) + ', ' + str(level[6]) + ', ' + str(level[9]) + ', ' + str(level[12]) + ', ' + str(level[15])
-    f.close()
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("sigma_vector_node_filtered.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    #cb = fig.colorbar(axtri, orientation="horizontal")
-
-
-    #plt.show()
-    '''
-
-
-def post_process_mirror(filename='mirror_data.npz',
-                        filename_ref='mirror_data.npz',
-                        remove_ref=False,
-                        round_lim=True):
-    if remove_ref:
-        npzfile = np.load(filename_ref)
-        dz_ref = npzfile['dz'].flatten()
-
-    npzfile = np.load(filename)
-
-    x = npzfile['x']
-    y = npzfile['y']
-    z = npzfile['z']
-    T = npzfile['T'].flatten()
-    tri = npzfile['tri']
-    dz = npzfile['dz'].flatten()
-
-    if remove_ref:
-        dz -= dz_ref
-
-    tri2 = mtri.Triangulation(x, y, triangles=tri)
-
-    f = open("mirror_surface_levels.txt", "w+")
-
-    OAX, OAY = 0.0595, 0.017
-
-    optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz, "m", np.array([OAX, OAY]))
-    np.savez('mirror_optical_results',
-             optical_coefficients=optical_coefficients,
-             dz_residual=dz_residual)
-    np.savetxt('mirror_optical_results.out', optical_coefficients)
-    '''
-    level = np.linspace(min(dx), max(dx), 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(x,
-                   y,
-                   tri,
-                   dx,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, dx, level)    
-    print >> f, "dx"
-    print >> f, level * 1000
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("dx_m.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    level = np.linspace(min(dy), max(dy), 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(x,
-                   y,
-                   tri,
-                   dy,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(x, y, tri, dy, level)
-    print >> f, "dy"
-    print >> f, level * 1000
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("dy_m.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-    '''
-    if round_lim:
-        min_T = min(T)
-        max_T = max(T)
-    else:
-        min_T = min(T)
-        max_T = max(T)
-    level = np.linspace(min_T, max_T, 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(tri2,
-                   T,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(tri2, T, level)
-    print("T", file=f)
-    print(level, file=f)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("T.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    round_dz = 0.000005
-    if round_lim:
-        min_dz = np.floor((min(dz) / round_dz)) * round_dz
-        max_dz = np.ceil((max(dz) / round_dz)) * round_dz
-    else:
-        min_dz = min(dz)
-        max_dz = max(dz)
-
-    level = np.linspace(min_dz, max_dz, 17)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(tri2,
-                   dz,
-                   level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(tri2, dz, level)
-    print("dz", file=f)
-    print(level * 1000, file=f)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    plt.savefig("dz_m.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=-0.05)
-
-    dz = 1000. * dz
-    #level = np.linspace(1000*min_dz, 1000*max_dz, 16)
-    # Velocity x-component
-    fig = plt.figure(figsize=(8, 8))
-    plt.set_cmap('coolwarm')
-    plt.tricontour(tri2,
-                   dz,
-                   1000. * level,
-                   linestyles='-',
-                   colors='black',
-                   linewidths=0.5)
-    axtri = plt.tricontourf(tri2, dz, 1000. * level)
-    print("dz", file=f)
-    print(level * 1000, file=f)
-    plt.gca().set_aspect('equal')
-    plt.gca().set_axis_off()
-    plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
-    plt.margins(0, 0)
-    plt.gca().xaxis.set_major_locator(plt.NullLocator())
-    plt.gca().yaxis.set_major_locator(plt.NullLocator())
-    cb = fig.colorbar(axtri, orientation="horizontal")
-    cb.set_label('Normal displacement [mm]', rotation=0)
-    plt.savefig("dz_m_2.pdf",
-                transparent=True,
-                bbox_inches='tight',
-                pad_inches=0.05)
-    f.close()
diff --git a/katoptron/Juelich/samples_files/Xiao_1.npz b/katoptron/Juelich/samples_files/Xiao_1.npz
deleted file mode 100644
index 7b03e3d7fc50ec5955a2e13fc9936bac99945492..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 372
zcmWIWW@Zs#U|`^2Flfv5|8MBZ?*-&_05LZZm#1c?XOtA{<rP%Uek1-$THxe~fMWq`
z=S_;56SE|5>4Ln;X$#jaUNCQ3d`Qrg8RGNfr%d7!D)&C4>Brh7o~|Ocgz2YLo7F5U
zuB}`m40>z=KPs;<G6bMl`C0BmS^&_h2~aDG6LSl4QYp2P%MEO43Nz5s0*?ZQ%RGvF
zK#LifM3`~=7U%*nXlMjcNPb7xi0)>HHU@@<#$q57$p-=6tZX1jCLk;V(r-W<1^|8>
BX&V3l

diff --git a/katoptron/Juelich/samples_files/Xiao_10.npz b/katoptron/Juelich/samples_files/Xiao_10.npz
deleted file mode 100644
index 8f8dbe9b26245343bddee73a2d3650a677336337..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 682
zcmWIWW@Zs#U|`^2Flfv54>g#uq7}&VU}Rw62GZrJnduoN#d>)Km9yW7zmgU>c_QFg
zz}k6}qUOXb$y>T0Z*tngb&D6wn-(7uG-ZbP{P-!8xP;2R&uIFwc8RB}h%I6IDdo1z
zYL*q(R<0+^>-HQszZ+iaYQ5mH=I--p)9QGSEZDD6w9mL#S8>+A{W%AxZMYK0F1++`
z=bLR;T`qTvbA2k*eS2)d=k&bu<ytQfEno~lajo$E*S+3AmkKaJTw9!&Tac4Vv1_^9
zAns+-`+Mx0?!wAIKGhgA?`vW=t=Ftx{UJ_t#<K!J7j8Gp15XnFyzJk#bpM^=k`MnX
zrfk=`e=yOzIKFq0mlT_QbL_X}mpen+BV~lsmg{~h`%xUSCHt|Cd;7J0t9BkV50-sq
z8OoWL`n|;CeEg2+7x9}8zutdoV&=n>1$MitX4ssunNi0kP~g#Ufk%-q-G5HU!;3tn
z7xt-J)!%Y;Z{NeWx+8LVu<W+`Tb`EM2)t3ynG;cIZ+GzE;X5@SpKqwJkdL+XkxRR0
zx8mQ9EA_im4>>7*F_mu@&Eyf+-Z9DWM|YaxE}LsT<v0G<O}w(4-;nRv@7<gIWWJRY
zh;-DRs<yj%P{QSV`{Ac+7t}BWcr!AIFyl@mz+?gj4UHfQDaD{`M2{|rHU@@<#&tj@
XQsf1Av$BCCnSiheNGk#3mw^EQ_E!wM

diff --git a/katoptron/Juelich/samples_files/Xiao_11.npz b/katoptron/Juelich/samples_files/Xiao_11.npz
deleted file mode 100644
index 917ecdec9eb627f14875285285a7a5f14c202a28..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 720
zcmWIWW@Zs#U|`^2Flfv5w-EGA>;v)=7#SG2fpmFlW_m_Rv0h$5<?J`&ucQS|o(MP=
zuy)?0s5vo9@|G^ho1C_A-QorFrp1Q@O_?D+KYq$2E}?SoGn#&^UE=8~VoR8QO1X(y
z&9dU!%Jqa<@7gANwconJvKL-{j+(VweS7ky-_N{#?}SfuGC8X&{BuryVE^Hdb!(&2
zKTGladU{QHyVciQ1{u==<oW+azm@p1^ZLK1x7Dr-_%bsDpg8-I>gKB%KqoseL7ZKj
zm|KvOO0l!K+#n8T(tGZEx+zNB!dk<XZG8z>LCKBvJFUL_eI3G6ms@b-RrSM_d=urj
z-Mjlr_Nl?f%)hrwH<t08{<(L`9<NIZTRcT#<c^*Hdv0~`!Do*TY>S%mb=QXG=I2*p
z%VMr&@=dg}zam!msi@-XvBKzz;!Vwkm*?wumYpoH+f_Bg=FFaw6?JR^1s)9-cog}9
zr<g^(`unZ?!>kJDw5qkc4<Ea&uA8R1B;mv4ZT@;Dg+4_;zGnP(n#pR&_w?@f+g(yN
zGA60EkK|4-x6o*O@%v#xrNsUO@7XOcOf+<#z5k&3;@-Jct5kUECYL|`9Il@%qjvXK
z=;jx-9n81$x5;ch>Bq;`_dn=N+H$K8N9)QThjW*`;L7Rzxl!%l!jP$3Ez6v2=Jc<V
zQ{y-0UnUQX5Jn~uX51+Wn3%wzp%FwOr7Lue=y3_r#=y|fxE;tuirD~fRyL3%6A%^w
LX%ArJGcW)Eyz3zT

diff --git a/katoptron/Juelich/samples_files/Xiao_12.npz b/katoptron/Juelich/samples_files/Xiao_12.npz
deleted file mode 100644
index 2ba898b0938e915cc3f3aa3488b233fc8099776c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 779
zcmWIWW@Zs#U|`^2Flfv5&)guM(huZyFfuT31L^YA%=C<sV!gbA%GqzkUr7s`JP~j#
zVC}p~QFCIJ<Skv0H#u$Ly2T6TO^Xi+nleLte*Bb4TtemEXEgm-yTsE~#FjAqlsb0I
zYL*q(R<0+^>-e1<_eTHUVzuD1d-1G0**ConUM#)%{L}QWCP^3GZ+^F@YI2afiSE+f
zwafQJYF+$t<h-ccqwY@~%e0w}&fmx_l5`=-+Rkmx2kyfQ7z0q;J#TZ!fki+!Phf($
zyErkoASab#cXPQxT+XD|>>oYL^_`0~N7%ihCsE=r0*WGD{9E7S!t>8I?)|Lm-O4ii
zT2`(!Rrzf#lFiL6Z%|SmV7~R=-S|0=E_59Gep>6d+WdJ>KD>H1&ocjYlFYWH^?J9y
z-M;JSbJjBQgdwYwvD<;CiGMET=gds!c9M;dTOn<G>*2c(^Y^a#QIXK)Y<N5Uzr;j`
zc3IOLbG<y@k`vGWSf1^$mpkVk&Of<*Ci~_8Z__<X8)i*sK0H(5^SekszWFs<dXrQy
z%j|opwNvKpw}KfFpK4|2=X5!Lc3j$i^Y)~NH6>pSDrZ#cR0;fDmiGJGreAE<8)UYv
zExhye!GkOR6CL*@%sRYo!q5NnpRil5;WEv5@YJKE;<Jn6#<Db~IsNP8)cB40m(5o_
zz2Hn<@|43XpR(uwv3d01L;9<q=bCFW1%Ab-#K;|s-?k{j@0*%B`+R}Z#mmfPW$M;w
zy}5a0<}-oTWA?(oB9uytRxvXKcr!AIFyl^yz;p-(4UHfQDM_MhL{9|}Z43+zjXQu$
Xq%;xW&B_LnWCFq>Al(d1HVg~^x6efG

diff --git a/katoptron/Juelich/samples_files/Xiao_13.npz b/katoptron/Juelich/samples_files/Xiao_13.npz
deleted file mode 100644
index a6df523a8a0cbde295076a661e3f23612888368b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 833
zcmWIWW@Zs#U|`^2Flfv57qHy-bODgJf{}rN8%UR@W~OJ96zk;`RL*`Q{z_Wl<cWY|
z0c+<?ikcI%ByZ`0yvb<`*DYQ!Z(4jv(3BbC^W&#X;u0$NKBMW!+9jT@BDRF-r_`}$
zR<o?QwsJjT)|+T@+`N3BoArXr+(-7GnR!0A&vE-&s~=hG5}Db~X5RYhy4`GYhE>dh
zHx|pICNmeW-M(p8nCQhX*V{fTZR_QgFiGD1^5DMMr4n1LXMdS;Z0Smu%dd}2uFvr0
zJ-mQ10L3Gx^`9?34)nwYCWuFh6LSl4QYrQbmm9<@OzW%_rx&RNEtXN4=I>>_Ch`4(
zO;P2aKCdw0&=q~kFuDEXf7$EN^#+!=4hAHCm)lmC&aT$o%~)o*QXooANRR*V_q|r{
zq$*4g9sK$Fv8(nLCK;p1-`Cb&^D6q_^!RvJ)SIa7TDKnFiQDTIy*8o!$OrH1YR@bz
zR-{yx-wpFD4wzd~@@o1ch4%kxo1!Cc3dv3pPrG3sGnL`_;??aZ51(m%na;r2&cbn4
z;L(MHQkjQV$-Y{UP~^B%`N-ME&&J=s?_M1wqZKEvA)CWdvf+)@JoEi_7Z<+0zUlIQ
zr$-NKO1>IY&Zso_%deAk&tUp7s~xs_H%`<az3uq$N76(4xRZQU3bV9jfPT1Mx;{qy
zq!7cx=sU6^&)WPdC8swXEZ-8fw(zFe$;7BHLfQ4a`t7En#dUHKuO3YJQ*i8H-A0r4
z>HIh5{+eYYQ?}vy)8i+WTX^gjF|OHcDtXR5oPTorO!mv?_qTtwJ}jrs-d62<mFK&R
z%rBcK^4E%&SbkXevEFZk^_P05Rm=<l-i%Bl%(#;-F!h2#LnDYnO33IM(US^98v{c_
b<4GVBDd7Zov$BCCnSiheNbdxuEd~Yvcg<Sl

diff --git a/katoptron/Juelich/samples_files/Xiao_14.npz b/katoptron/Juelich/samples_files/Xiao_14.npz
deleted file mode 100644
index 66e523668233914181e04d2add4bfb80d30a1548..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 898
zcmWIWW@Zs#U|`^2Flfv5fA=V#V-b*dfsuiM8%UR@W~OJ96zk;`RL*`Q{z_Wl<cWY|
z0c+<?ikcI%ByZ`0yvb<`*DYQ!Z(4jv(3BbC^W&#X;u0$NKBMW!+9jT@BDRF-r<9tT
z)hsKntz1u-*U8S;Yq5E*TkfzteEzQGdQWCMne6TTdt1>}-lytlW9PH)Pgiv=Q?}Xq
zI853+@q+!gxdO$JQQeN}X&cP)?!D-B%-{X>&$b&IZFp{d4L{kv`eCcf<+G~)+RI-4
z6!2wc2te_Q_G$iqY)lLc3d|6%6es2u<fKyU6)rc3XPET*b5j$G4<*UY$iLU6)AOn9
z#>1OCjVz6CCfavg<0)@AdHBb*{;9kE-D0u6qThEjLGk5-1$BRqKJA^B$#+(Gzl2&I
zN0GtJbF=FHRW>=7+_zqRtd+CCZdcWeJ;qmTX8fD1zEu6>t||+g+C$Zw@+WRS{BWD?
zKEsDACH|D%J9X3gOOTA%$^1Jd<#{`tn?8N^uiwAhN@Lb;Q)3yg!XG!YcYmIj)Nwez
z`^ZtIUz~i``2W;Ql{<Ri=ZjZ~pA0@H{Q5qp^k#jF=COxPw-)_a(%i@=eEvo3hi?BP
z57Z^zmTg$qTM!U?a+}7Zkd9`Vj&Gj|BjlpWZG+7voBwOPNq_Tc?MJ?(UFq}AS3Z1k
zLFwC?8|#l8RNUF6`?EJ_)?pQse;4&_j_1kvmcEG1c>Fgrb&7M@ZS}d6Ps_@5J?6`Q
zDC*sO;kwepPX_y*E^gA{UCGd1_wL=z<+gKVr{t!po`1H?%I20}+Rb0LZa)lqu&TFc
z-ATUq-+l9|a;LC7U%Yxh%hdLn-x*iUe>%hIy_Xn2`%TS#$D(=O$avK*58b!Mr})RW
z-J5Rw@7>+(v3SuZ>FFZv>xyqbkJ;*7_~Qn{!^NxHPjWk+P5#Mzksp{`7@0(vai@J?
u@&|*4Mi7OR6VNrHr!<H*28M>l(?BLtx(o1TWdlhv0bvo4{sl~)3=9DD2#ml0

diff --git a/katoptron/Juelich/samples_files/Xiao_15.npz b/katoptron/Juelich/samples_files/Xiao_15.npz
deleted file mode 100644
index 34b569ca9f9493bc33f044becfde2b93142ad342..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 964
zcmWIWW@Zs#U|`^2Flfv5|FES>coT@n#K6D}q{~w?(=$qn_3{cTXTK4DB`t9BM8L6t
zweu!L&52o(w{$_?<g|tB7B84LEj}b@$_(-O@lz&o36*=F(ez{O5>HnVTf+2HN^P3e
zEGw?9Tu+$SO%}a0zxRBr#e&P6UGu+(+36Q%-25K(v@S=EP50*M620Ed6EdPE*FHLZ
zP4lD6WvSDBnI(61RA;5l*^qI|=D7*auY;#T7T#XRD^XH%bfbv1zR#^sSFhAx+w{`q
z@}$VSt7fLHlqk_U@6xJlzNT{-V*rZRCN4RWW&!lp1ZIfWiW74Sa#AVw8kZZyb4+?q
zU#|b>yOF<y;qq@=nUcjZ{2rW35<X;aFEO2==TVZtz}U{haaQ2bg@kPnH(vgi!M-n=
z{nw8FyDUuRe3^dp^aQSj{4NKcCf1x@d*^u2EGAj8TT{2raNA+UB4#t|`^(g>!>Vsv
z-vnR#VPTLb`oG*;<>tbWuh-{nF6}I^+f_Bg=8VmZf1c92@2XF$wzhat==#>6tl)&s
z%395gInM;H-1+gXZS(ZzQ-6NCTU=MS{=#*7-DE$nw$B%@9)6PeOx5A5e5uX^jspI2
zgPqetK3SYNyYS-cos)jQ5@|QR{^rrUv%F;yc25toHXdSWZ>ary{(AJ0LqA`<O8jK-
zIpG)obo;9Mh4!Zweye+4mtM`zzLGDJv9{TSJzC(eqL3c{W9}0*7E^Sk85chPWxe5l
z$+LK=i7f~Bf0}W>%qytpu-(Q=@6V}^W%ArZeQt-pdj8;xkzv-MMJnw60&_*!rni55
zzd35zly|&k6&VFOIvOVrK6Kd_AGWP(mh-*atHtbW4)W#A36{TqXXb+g(Z6q8H#KBD
z=N`^KxqW6h*VXgY+ft&cH|}<ho^|!*;c4gi3NzdG{B2z+@n>)Pq$N)#1<U+f|L@R_
zM|&3^UNU#x*Y+)MWb~>!@+0D=K1(RG`!M0Qt~>kjc{%_0OkT<76h8Z3x147yG|Ucu
zVP**MW@Hj!#+`eB83+s-8bK6NUP9N1o;D%c7#JEFZv&Y~DK)^Gl?^1x1cXIE+6I`I
G85jWXB&ak1

diff --git a/katoptron/Juelich/samples_files/Xiao_16.npz b/katoptron/Juelich/samples_files/Xiao_16.npz
deleted file mode 100644
index 938f63549dbea270f5ab541256661b920f975f36..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1044
zcmWIWW@Zs#U|`^2Flfv5Pj$2v+70AcFflN21L^YA%=C<sV!gbA%GqzkUr7s`JP~j#
zVC}p~QFCIJ<Skv0H#u$Ly2T6TO^Xi+nleLte*Bb4TtemEXEgm-yTsE~#FjAqlv=jT
zYL*q(R<0+^dOx>h+O(Z{$amz@`=07Gs^O}_zU!wv-5#>u=g5N3xp%L-ykHaX{TzGu
z)~lxhZYHvqOVj!eU6<ndb@|}3?TO-sFIQ@=nZHy&UBGwxsaM-K-=3Cm;ooiZ?<?!S
zs?2&8d*VT9`*Mlqd2cq(-hOl8!N%&khpj6Z!g-_^0#N+;eoOtMdZ7P4Fhl%UoS0jX
zlS;84x!fSWWLkH3^}evb9vtNz*8;kOwYHW2$V%OtT9z>Da8T=<<G*ws^6mSsemZ7F
zU#S8A)2!6#{jHxbUOoII@!7#I{#!l1Jbcbq7_hVc>5JNMclOW1u{E;qgJgI3O-nts
zpQC8Sytj}3J}hZEyzI&6iK1bg1$MitX4ssunep%2s~vakc;@j{=UhL&%5aCp7D=Cz
zKhoyED&XqPpRl6v<Jtcy?F-g=M=!CuBg1F+tMqWqzP*Rn9OaKtsl6og&pP|eirWug
zefWO&`U!UNV3{)CU1Hyh^SI{puai^bH|Aef@4Wxbzm}hgeA4UP&ffif|7_yC>!&1{
zcs2RHhjQ7OoZ~Nw`0~wS_uqCF_Sa4Be4piy9Qyg<RpKXu&k4U=Q+u0))7-4Cd^&sO
z&IREI8+IT1@%7XEPKlbs$J4K$sTX@%@N-M<tfK5Shc*AcH?DH6k=fzHcXm(m)Hezo
zi|ShsK25CY+~+^pYxythBP`u-(sn$3vf$^fS4p+$s}5(buD<SFR&9Mmyl74kmrvP?
zj>36+HMBU-xrg&l4sV{te)<3J4f}RKJ*dFGOxfYq#nX-5_fzg3`+8F1PyZ%K!;{~I
zWq!;Om$@zX=zYP~Z^h@f$62>GaCW-&Rc7*OxnEIx^YCl=kGJ37eruVf!v6mE!<y-v
zCOxPr`D#!(qtf7S*1mu3hk_Q#%FVb@<mO*ewqt8%^V?G|LO66~Ij6UOlyo?t$mnF;
zVqr2<|B1)z;*uMt)(uB*+&$R%_gS`e@?Mj6;f$JnzSpxazguF(08FQhOd`y<b0aWA
tf<Z$gh(gMn=o-<JI7Ax*Lqp>eAQLIU2Y9oxfh3uLun0)^0P_R`0|2V5---YL

diff --git a/katoptron/Juelich/samples_files/Xiao_17.npz b/katoptron/Juelich/samples_files/Xiao_17.npz
deleted file mode 100644
index 4baa4cb0c56a5a441030c460ab19c70739bad042..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1094
zcmWIWW@Zs#U|`^2Flfv57YX?Pb{~+Jz{J474W!FcGt)CliuLjeDrdhDe<dw&@<hO~
zfVJ}`Ma_v>lDBk0-sH4}>lQDVH!VISXvz%n`SDXGaS4@spV9PV?GjH{5nICaQ!0(k
zYL*q(R<0+^>rTWAzuqS;ZoT00X0LbB)8>9rnf1?Pch}Li3ptw4y{e4(b3kue#;s`g
z58+;cEEl&t{5*ZF|D~>uWv6$)@x8w#B=Lgz{1+$B&YACTBAZn3;^<d#OP9;rHmjN4
z-lmpxVN<*89$~IS9n0dae#YD8CiOc?pSl13vcX<~W;TWZ6mPyiy!!DvpcfrjAl@ua
z%q_@CrP!NXZV-<$t@D$eee(IDWZ6GvwI4Q~`d+57zsBOYf$GhL3@)o%tPea%tXW+i
z&a3=4Ms}ZA&CJ-%$L~GNOicD`bf0y&aqV__Z_ynVXM`V>{9ife)rC8kwpxDn<(kvK
zPEL*An19*-7pwC&v*#=n*md^!!HK5dChv|hV!I!_<;jwo)IH8Ge|@_vtln;IFiYph
z$xp}cEqwU=WlL4NN&6+&Pg{ju4#`eCZkKWDd|zpVT)@Lg-__X8xrg&lZlB41S>9~9
z-D!XO6N>w_KIL8GuWn}+cbZniwCaB9>YX<$k{2|GC2fm}s#<io@G$doB@>~CH6>pS
zenzaQWMBB}{S?!^?_&iXZg~CRsd<q29vQLE^UHqTocrd0neU=aiS82)|JFU){@vcM
zAmHU1QH@>lyw4Y}Za-<?HjDjwd}Z3RmhFao_Br!@&N1LF%BZ|iT)fRoi7kG^Sqt6z
zpdHRtKJiE2E(>5kE?=s>v@%v^pS7OA-OS0a9(;RnC+WVuBVYM%)h~H+J_Ql`c5H}!
znlA$ntNT|1Zohxr$iObS|3>c2?J+X9uBZ5TJ@qO5ApG;^mZY8A51)?hJuY&%;idlH
zP?z6-T`c5dZGGg@;&?*pOXa7RoUZ3*H~t=W&-wpcS&{2!S3fNGC@pY&y!_aWe^Zh@
z3U92d`_8tztH1ff(>vjFkMZ$|-PK&X=~yP8x6`NlSL;3$?N~JR(x(NMHyf*ObDpbD
zJ6T}2t7?YLnLWM%f4S$K^_`Xc?1jLGo98e1-#U2kK&9`-zEmkT`+d5PDvvA=X}?))
zw!Z9DS6M}HNuKQVW!=rmoBU72T@GRA7x-(+q{si58JMgYnM9az=U-qJ27`u15QUVR
k(KVvy2#7WYhK9!HKqgZD2=HcQ14%LgVG)qt#|+{D007MA*#H0l

diff --git a/katoptron/Juelich/samples_files/Xiao_18.npz b/katoptron/Juelich/samples_files/Xiao_18.npz
deleted file mode 100644
index 6c432ffb115272d435a9601fa6b91188f3880501..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1188
zcmWIWW@Zs#U|`^2Flfv5mymwA@H~(=gNcEG8%UR@W~OJ96zk;`RL*`Q{z_Wl<cWY|
z0c+<?ikcI%ByZ`0yvb<`*DYQ!Z(4jv(3BbC^W&#X;u0$NKBMW!+9jT@BDRF-r&QWA
zt65fDTe+SvuPdLWnrBtJlJCf++wWR*^3Qu8TCloYXX-ptP4?z_k&ou2?7TcTV^`kO
zr?+=MpK4W+={N26(K&u5v6~}LZmY`IxLES_*{oUXWuHozoIb{5wpjS3%jIfIo?mwM
z8b=o}|1w*a|5KsQu{dsK>MrHAGctZ1?Am9vEI-iY@-J?wpEqASbuQZ;Wf_;@;dyKU
zV*rZ3uRp83`y1%z4J;6U7boTx<fKyUZ!R~8&zaWgpZUCPYnzKzN#3O2*(HarDjHU_
zAAY`BlW%kQ$H*r&9Hk$4{#Mi!)z4u*Ki}oN*4qpV`B+;YximSS|En78dDM9q$*!}g
zO$oDn^F(0Vyr26c>$O_G^|zcp{KNd2?fkGR`x6h9I{LmB6-+6Zy>yGx&4+eU^)ns&
zJ72f5v`?8_&wV}A+PdU@R?eTQ`}Y!`cYglYqnF87l%Hdk_pYqyM@35Wh7Wf_+OO{A
zJ*m{WvcPUv)eM_6HZ$tj1PVMFF7PPwr3cN~_UkTJVZo%5)oG7Q%OWCHPT#R!?W&_{
zQr*v&rycqDn|NcEtW&k9ICt;$*1}AiIsNP8)cB44rB}t*bU%~Y|IDGigI#p4=H$1s
z67ynC%ziWb*@1}SU7JJnE;OF?JoW2En+v<y*6Z5JuY?}flzcU)oKZO^;P2{l->%5b
zk$PQl<jfE0>>d5iGXe`I&kftuY~N8Q$~L|I<Nw`UcP~W>KRA$ZSpV+tt2ZCcZ9IF<
z((gdQ7xB53YA263)}CEA+wRp#zWeWLW`FsVsx*f`SU-g$kbiRf%<uB6{!eN?yW9BY
zMLt%pqNnG*m}UL;>suVUJnKb3-?8hr>mx2is9ZXj75!uFSFUe-f3|PE-{!xeIO3Mj
z(J!XvXC0+`-yhvM^=W9ytmc<fZW=3@9F`TU-xQ&}>iJWF+KR_hR_UJP^I!5${>xmE
z7X~Xk9RH<7E;@Yn&6F=s6F0)c_+Q`S=XxP7t=1N|rPyoi6W$BhK3@L9`MU}GZ+Z6r
z5sZiPjd#m_4os*>i<Ee^ef6<JKVQ5`{PZ{AbHcBwe|Yt_6;xPW`E2$(o7382&9;f>
z4Y&FgN4(jw&G6Og_QRLH20scnT59oP-_4p|_wJ=264kV(WsjDY+sZcS^1a(L<@uuz
zNy+sKwtKB|R+9Q(v+2*HO!Y~!3<2JZOd`y<O9x;90R|0?APT9hK-Y+#y&&2c7#bRX
Z0GUXcEx?<V4J63~ghfDF2ACfi7ywAe9<Tra

diff --git a/katoptron/Juelich/samples_files/Xiao_19.npz b/katoptron/Juelich/samples_files/Xiao_19.npz
deleted file mode 100644
index 3b65de7dec83b286a38c982e2a6a6df514a3e9e0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1248
zcmWIWW@Zs#U|`^2Flfv550P`>dj#a2U}9k42GZrJnduoN#d>)Km9yW7zmgU>c_QFg
zz}k6}qUOXb$y>T0Z*tngb&D6wn-(7uG-ZbP{P-!8xP;2R&uIFwc8RB}h%I6IDfR4_
z)hsKntz1u-*A>?<y7Pa!g@u5(|E^8e??3EM;HjFs`uLxww|*{{`%-_m^zU>L_C0TS
z>x;sUwH+B&ep#=-th8JyvBm2>dt>wVUc-#`uZv>O9!!<^qJ22(t9a^6m&^U}rdQuw
z(LB6hdgS{#^;Moy7fYO-SEiR_D6*Z+ko!E-dox4xH-i};*PU2)=;70C;*RV$lMOSP
z7w>0{@oN$GJ??+vLZN=K(kwQH0F<B*6-d`rVP;?uV1)!labj*kPAWJk=1z+C2riU4
zo*uG9H+$;Lr`N<zi0N{wMu~r2{qoA0XM3N89p72pcgyH(<;$dquFNGtw~nrn3lcnS
zFyUR~tSQY|wh@7oB%*HghJ4!QqqOwz`NJRA{y#na{QK(4U*S3Zy!{ufI5x4iKQ&1<
zOFLoi^>lXR)ELdFn=>V6O19O8M6sRqxqG#3Z(7=?JU_D~#*^1Xyk9$|YHg5LzsLXY
zmRq09YSOpLcU>73_v-2^?v<<8eGC`sW}chR`m=Z8in5w%?t9G^`M!F%GS{r=%z5GY
zZ)CTBFP=W5?97Y6<i97QSNHR>Ih0jCT+7eO(^TP;|K-NzAeZE{X9cM}{t9bY`M)oF
z{zK7w@}FRllTMdP%syV)sH?H6<A02&;g7qwuT|#i9yYZ1ui51OYth7}eVxw?dc@6o
zMEQR#c6oG3t?tkP)3>qvZ%Q%!_g`q7-D0xFc*VDC9LmT4*nB)G_j2<ogR6gTS{rKE
z2!GwA$+A}X<FefDj4#y|XV!<i9X2#Qf33ij@#*@!C^r6Amd~Dd`hRnK^LMIu_wiNl
zG8BaDEOV~1CZ`<w*=5i=?^t|&C-a>}LJvbkWzBwYlzna9`sB?DotC-BZsx77&xt&c
z<agn2{yWo;8u2U7YYDqPs;Ykyd{y?a$+o-vWj}8$Jz5s*Rr<13qo?<^sOWQM!GAwa
z?|OP#;>y1BMf&?zG`{YPn;kKmqw00>d0uBuna`h(s8{=b+jsxslgRm2<%uhux1L_P
zq`>B!wf(+5`hwq=Z_(@f%y~cV%#Sq}k2D6Ys-5e~_~P81>G%F5e478~<Mb<Aj~{sQ
zVTF5jztgMltG4xR-3{@c$9&z{+OOYkT3sjoZHN7tjT$|dchvna*uJCf(B)aT-m#0x
z?wdAMUTOkM;^a7W?kyKN=3d%uZ8?8K!Yjpx^SP1?*1Jx<5-h^Myz`!St9FB8gqEt-
zxB0iW%sF3py`UpftkWd6&Uqt?!16T}o3oANufMQ;5-Hcn$6Ed8^a@7i<=myOq}lp@
zRz8|+d+B_kbifLM?zUpXNj|;$W=qzc7ERq;VYp=K%PAXgD6V<Eu6Nml``aI^J=*_h
z#(Z_Vo63Lp2Y53wi7?|XS%8HL7&J73D5P=*T_buvglJ=6XlUeSWMDwbl>y$YY#>P{
MAS?pX5iB4c05wcJ3jhEB

diff --git a/katoptron/Juelich/samples_files/Xiao_2.npz b/katoptron/Juelich/samples_files/Xiao_2.npz
deleted file mode 100644
index 71a2c4e6810a2df289a299ad7de8b83a334fa2d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 381
zcmWIWW@Zs#U|`^2Flfv57ZlBA^8xZ^05LZZm#1c?XOtA{<rP%Uek1-$THxe~fMWq`
z=S_;56SE|5>4Ln;X$#jaUNCQ3d`Qrg8RGNfr%d7!D)&C4>Brh7o~|Ocgz2Z$F{@ct
zTwA$B81&c#K19B5@MC5OK(W;I?AN{FK+85jEiF#WEyziw)KV@tu(c`7dTa(9g$%*G
z_XMmIC9Ur(9%KaC&&VXgjN98lhk!vtBZxu@1ayt)PKRh?U}$J81u~I565!3s29jg~
M!XhC36~tix0An_5*#H0l

diff --git a/katoptron/Juelich/samples_files/Xiao_20.npz b/katoptron/Juelich/samples_files/Xiao_20.npz
deleted file mode 100644
index 2924847b69b9688d103fc30e54614c80599c0121..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1332
zcmWIWW@Zs#U|`^2Flfv5k9~9F!fPP!2NMGWH;^t*%}mcIDb~v?sGR*q{FSu8$rAy`
z0@lu(6g4MiN#4>0d6Ux?u3Nld-n96TpeZxN=f_W(#3fYjeMZxdwM#r*MQjPvPpN0q
ztY%qpZRL8xyzcwzn`X9_lV3LY)yLmj5F+`Y(UIGJM!3KSW69=w`429fnw;!ua`xh9
zj}x`-S{Jum@Z0wyHh8nai*Nd@%LLVJI+m3#Q>)q}E+*i6d(NcYzkcQzvgv*>|M%w6
zzod4}yr1<x>r@4N_iy~OF+aG-kS$j9tMj9x1dEF$U%axv39CDIEZcr&W1^@3358kv
z-ptyRzRii_;+FSr-?uv2^BTUenSI~OJ>s%K215W!m>5lY5R}i%z)-*n36tW)+=84`
zaG1=UknIy(F4HC$xYOr?fTYzGHq+7uw^Uw_IkgkHCU&pgo3Oj+<<8QaxC2QaPqC=D
zb+U<+>M88twAdivp5lCk#gvQ7sFg=p{Hd6rrr`2L9bJcB{8y3NSGn)cr$6(**V@my
zvvrn6YhF`q*Ihls)2ha5g%dpX9FoxZCfwQExooXkR&mXu&ZlnoomcjrymO+uh-vDP
z-VcWwp4Kf&jsM*l<U0Si<^Jyze%jtxcX0JZYl+Sa3zt8Ct!_~8<5Tdrnxc(ItG#SW
zc1Bz2&7H9DPg-eEOtQhIy!)wDQacM}W|Z%Gcg~0J)3=3H&wo~_EQx;p^Vyn1^2O?`
zJWmRf!`DByedtxT@3LsT<fJR?ZDv>3u>AIC)e`Qx5qbI9q^lxKdApLca#Y%9->r`;
zn_OVS{rSk`y??jWmDSa|-%Av=GB4eKrcSm?<XhX`aJFty-e%wQnx`ClWdF3b&vZK)
z<i0)iHjmBZKl<BjKBn}4nSQT6ELK#md8U2L>#VPw&8dyi5j$qOo_#SjqtgFJ>X&Qp
zxHAO{>aA}4n7&=)li%SdL3;(SZM!a?^!xC`CmHj%8BA_mGW}k;`MigbGt}q3nfR}v
ze&)ZFm13;Lr|N^>#4*Qi{WWjvTu0A|r*7_XY@Ot~);c_0^20vIV3+N$D#f04s#h=3
zpU7tM<?kQaBJTa0>Yr}n`{zB6-}*|x;~fjP{aahz&sVlso+tUbAMdYSE4F`|!*r_Y
z>`UgAs~s}Cxs3e^Z(O>*#^#17>uQ}tuR`6GKc&=%JxuOOPn=h=Y5VbO<)wdL9?Z#<
zNoj0;mizwNqo4IJ@6FBpa>Lc+J!f`ze(2Pr>ksaFCf?n@m0kI!>XSczt@whYqQ0NK
zA>7r_@u6u!u+FJP{F>=s48Wmmd#OIm^7ZdOO<y<g6bFBQKOxC7<ghQ7a@g<q#HI~$
zt-acx*Lx=$>b|<jxlFkY><0H=Qk}d1oxPHAqC0)|`g6REPb*B{Zky}OI#=_POxVIb
zFN^+nPy8QWxq5xZCe1#emLC$g<EE~ie<L#L({DG`BDJ#WQ=gaK(0=>LtJCBW$J8rz
zC6k1_|E)Vct;YM|yw{PZBh^8k{ULH&?xlUr@_*&wh6T_6Yqwr2&<PeybeZ1}omD%h
z?yJG0Eq;?1`b}7T^O5kI&%P2-S3*0P)yibVr~kWg?exVT90A^pOd`y<ODkZ31qKa`
pAPTAMLf43%r6JlF7#bQy7#SFlGI)SDD;r3X2?&dT^cofr4**WNXgmM_

diff --git a/katoptron/Juelich/samples_files/Xiao_21.npz b/katoptron/Juelich/samples_files/Xiao_21.npz
deleted file mode 100644
index 0238893367ebd5c935e2b2dbbab1b0ddb1262813..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1409
zcmWIWW@Zs#U|`^2Flfv5k2<|5><f@*!OXzG4W!FcGt)CliuLjeDrdhDe<dw&@<hO~
zfVJ}`Ma_v>lDBk0-sH4}>lQDVH!VISXvz%n`SDXGaS4@spV9PV?GjH{5nICaQ%dZa
z)hsKntz1u-*Gc_rUHLMqlJ7;y_1<^)PDDz&Tn@}Eik*7j#vtQk>-H~tYYNn7-P>Zc
z-N|t|L-V}_+UZIk4JT*Z`n2%-y$OpV7QI|$x9ohO+B}!b?`~W3qy`0bEDN8qy#AV*
z=dlGx^$a`h`_3I(@P1irqHd?J@~nGT<{eC3FuTL?w(sf(CbMVtI?jKj7j2dAW^(b1
z`_DNK*lr5&MBPaG{p79LL6^(M&(>HU{(YIDdEd;c@?Dj4gfE&f1fT?t(084<&A@>9
zzzPYR;>6s7oK$e&%<ZWUm|QAzyuDNX@(#X3&MR(c$;vn{mgmxV$19yIc!o9aK*Pa0
z8-CRjA~)7>u=4S-9t>IGH?v^(QjWh$5wZc(#f5}c6w0+f>r`1Vqx-<Q&DzI~7Ttf|
z-~RvCzt20bfB#yy-~Yr^&#n^wzL~*F1_7?WoE$~`H_Yu5;HYG}6%i4$LidE3n3Tr#
z{UNjCU3CA7?_GM=Teq;_NSNaLrvi%Wr+lxM-#$lrwRNFA_r!UB`W&l`zD<>4ZM<xG
zddItm<<tJKiSA*puRUJfD`gk_?Vi7;Wmw4X9+Np28|61?87S#WKKuRNe#V!pj}Bfb
zzWVuSR@=?WM<?Z8PLKJM9$&spDsj@s#m<+l1Gbi??hWy`->1Jq(tpQlbCX&BcQQ@d
z7<_d04keb*r|sV}GJL+R&&fO!eBk(_JAb6Y+dn)n&;CE-qS2Xi!v5c8)Olvb-8rjs
z#d4F~XJggGZJV|(e7=oOcwKg=;k*r2S=)X0+wqz{EfkeMkz#Q(rr@>P492hTkG*F0
z)oic`j*FPuyzbwz9yP1UiDmODHeG-5ZvOto@?KfB!e{-8XI&L+R=ZPI{f4P^=bZ=7
zS_@dO@jb77sd(Yxo2beIUu|>`zp?q4@_yp(e7>pkcHRDIwZ}64;~{RB8NdJC>phVo
zb?n0Zo#A3BAGUfgYPV#|G0BbE|7z7dutnjo-nGlDIhA3%;E?#L_CJ&Bk2~E7+i1Uc
z&Y=@mXSMWviscZP^=8}AoI9G;=cm0|m^fpu`n)$2|GhfwxR&>4*YWFu{rA%UOZ|0C
zia53`xA<+DzU(4#E~f0?Qzz`mixEoukhCN<Y<o}iJPWhXJBtr~ofn=z@A~owy+5bj
zSm+#7@^xw6zLdyYtM}~q|611C(Ei^Ny~_1`qG7Kh0&4j{o)Ug%dnrDr`bl-3U$5=k
z$JV*_M-rNgwmO%#9^$%gJL_D<%-O%M<$jiamcGdM?TxQNTSY9t>;3t5DwFwAZ2073
z6^H)h3z_L<2~E6^IM?82^2LcpVY#+`iDx#OzPn&4c}h$=UAK;{Mg6^@a>RK9Yk!-Y
zv&+6;cB)_F6C>R3|L4obbep3VLQ}K<d|+tx6U#S`l@p&P^}xQO;L~Fp)gHgbf(IKo
zjQl(gG|V}+y;-fkak|jU=&W~f#_7pv-ZzbR`llO%)5fnme;YU3-_)Ab@b3RQ4*#u}
z-yU<3TC7v1rN1)o=j9JpZ|~pzvRvY_;guKeTa|7E2iv@!_U*dm%G37kofjkB_^*ov
zTNJIWJ`(R^2sX~+e|&&9Ba;X-?xGJ^`hh`1BZxvO2+=j77Yh(=3=9p8vWyH2NQFdz
SH!B-Rk_iZlfb>rm5Dx&K*pQ3>

diff --git a/katoptron/Juelich/samples_files/Xiao_22.npz b/katoptron/Juelich/samples_files/Xiao_22.npz
deleted file mode 100644
index 16cc46634ba04629f0ebe6b3e1c720612b222df0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1497
zcmZ{kdpHw%7{@n5;W$cI?kURT9v&0J8It8R4(2iz!?rXNa@&zxA<5lzkUJeJLkLNo
z3W*}ja@#UPt|KHJ?2OJIou23X-ao$2`^Wn{-{1FrpAQlN;+Fsb0Q&*j@x=3dvD6YS
zuZso&03tjM^&#N!!9kk-0pWQI;5pd?U9XTG$Oi=(uKDOP|MDXLOyA<_(xL(i#=$=8
zHn<Rzl_4x1is*s-Dv$)mDNB{{ZOTx5jdG2I8-&>)P0pQ(pxmp+p+y4|9JdN<nhLfL
zjixJ(>C~y@I{A5Z1-RwkG#~BoZFQ#=#G5C`SK~5>Z=V-Q-<C1eL<y<n?ri(4TE?`5
zmCQ~VadMbZ+2(pg^Z@;y-kUsp#0Do?V22oPF@R{J4!VRq1IHDF_<9grUHRVC199wn
zNfyCkU`}>%3T)GI$o5pI3>Vg>Pr-lvl>7m_5g3_RG5pw}-|d>a_QzACTT`f}iVJ<D
zR_O{(vnpIq6oC9sPGG$B6o8+Xli;_Uf;@=<mwfhex|8OIbhsiHk7BXR4mlYBp*`_|
zK`1Xz2}*Kg^TRQUi?ilqb@J&Mz;!b-U7Iwe8|`djvHn4&E6LgjbUQ@e$Fc?j7lcC+
zf&1jV`-D6#=n(AP?Lx6m(jBd*;cr*lIQh^HJ<E#`OTr8%j|Njq)Zy3L$G+_3{SgqQ
z#4LnpP}S+#c$;p>$Y+=b3T>|Sl&U(I{jOW?2t%2jz%RV1zs3E#DQTX*nEXC7^<}pG
zjMz{awlQMu1uR_w+jyD^Sh<E_LC=Fl?=8c6OK1Ho<rH9K)_S}8b;#&qkEe;J<M;!S
z5~f#r<<D+*2bF;hUpEZWGtB945+5m&Qm&Kg@C@;DaqpUzFahNg7jXUsVRfOy4EmC|
z+nnu1{tbm84?@<lzpd$_q<f#C{>&jo7n4kZ`QE5rolXhvcthp>?bZ`Rq_bQ(D&ynw
zTn={AFx*y)eAFRs#s7EQNIt)1*gOGO3gnFVTN%s?F)yWUFxJy!b9~3dE0a1DJVhk8
zL~os4@v-b|FkFya%!?#O$2w}HwQET`Pfy<{tmmY+9jRrP7;EhV7B1UxlFt-l(Z8r{
zS-fDc6<rO~6j7V+rZKGar+Yc6&<2B4pI!fFzS<!iWzT_zox!Wa6a;QkNu5|OD2DuU
z^-E7_P5V#$2899nNdqN8Q%l9qtBonm;jAu&*}I|zh*`R7U#Oq*Z#7nYy@aZ8vO?U8
z1XxwehvH}CwUqH%0h#)?Y;UPmef6N#mzgI0q^QRC(}TBf>TYggs=X^>#alBXuuiGD
z>b;4RuFz_n<`{IUI*u|^(V(g3!u!q%av9TcSYtcRp4B@!J*Z?V^jfxjyiH9|cQg{-
z74iIZD$Lz+T^mG6X}Z~IU!ud<x<Feb5$?+$7Fw}Q$4(ceH*+fC7^FLm7N*fXX1wB^
zx~3S_TH|e;7xNgNi#f9;4tSI@-~T{j%t91ahnKF7pH7g>nVV3(9I{Z+@UQEQ*#d3I
zXy$>bOH%xJWoPE+O4`ZH82FzEcP_?05$>lCdLp<W6KKacwYLMF>8RuO-jF5@P{b!O
zn!=5ajQiRsa++26VjA<wvIKI3y#z}KRt@-uK2<i^b45ycf{|bb>#Y<9%NcG?4i0|W
z&<mE5@o?TL=#Xl$4mm1+P^q%(SWq{Yyf7A8YGSmzg6;)!8D^FnT!E4YJ*@S;tg9+a
zeROV6MZLc!z!0C=P9Q1W^4eArBbXWCM;EQlJpTG1wjn8@W@v2G=b@w42d`zc>$S<h
zr)RBalhMkJ#KR%oRIg>$wJOt-`@-1vSq8GNioCI9x+}KvduKA^!{Le`5kNi((ElTq
uN7cO-9kVOn0rtni9~tv)jK`c9RUiQH9dVEd0Um|`06ty?^3+aXxBCYW&9j97

diff --git a/katoptron/Juelich/samples_files/Xiao_23.npz b/katoptron/Juelich/samples_files/Xiao_23.npz
deleted file mode 100644
index 249b9cd470086282aa46000226f1baf584d456d7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1590
zcmZ{kdpHw%7{@0@F|C+OC#Pi8(PcW7=FHHr$faFEM2OrkVI*BdOc)b$$y_I^TsCv3
zX+^HvD3@|6Ns7Z5SrjK6<)2Q^bKdul_j%vv{r;Zc^L?M^gEbeIfB*o1&49x(ewanX
zWQwvF08l3m0LZLQL*2YQJc9`^|A4TpX{D*1+dA5@tyo5G%DHTZLVtR`KgFHKyqBMw
z?qr2ey{nYxl$s(f7i!MeJPnLj@=#YS+_dytjASc<ijc0Bz9`P*(s!T#Anm6TODB#A
zgGGV1a+XiNdf?gdow8Ai{p2&`l~MC!op<E_fV<H(x`Vre(&B20g~q*hLAQ0eoUHZj
z*-`E>MGFn;xLGFNi<cXL%5#8n0w$-96-?%hgd@)$CpYIS_|9;~VTYdP6JDN)s#tXC
z;g)3gpFR|?LCx)9S1#1vgmnj}l}^o6aUr0qPS(MlFq{u)**8*@P<5%%xR-PtNcM9~
zC!(YV_}at#<S5jH#qd0W;0Wrjib+wpxd09UQE@S(>MzbTaRBx|1`<UmlCcB;FekZT
zAmM^vfUnyR19K95u&Hh;ElNdh>L-i>va=xy@BLvNmfN?6qHKkK!`Q6a(0a*72cuQ_
zs)s=cUUa)^Y>9HbgSnIpnz$v7Cjq3H-r19h#X;rvO5e>w&ff07r029Mx)wf>jrTWp
zK8zuyb#aem;EM3XC73)xsh(1w7*~%()2w1Cu6W21Gtn&cv>DxT<w0v47+*GUt8xsw
zQ(o76C&ibtwiKLX3%|P<ED@2l%(;Nw?fj2jt5E&MUp2MGAh5wg+dVl{*4Kv+!SpP0
z#tBN#%-okdoy_T}T0Ar;@6<3hzw7mr*9u&ljKziWAoa=v)kCBkjn9h$WE9&E3j#vz
zgqrs@B>HT!-<)%wOxWlUG0Edi;B)Rw_=Mk-?5djD#K}=_X}6fMM&8upff=3Qpwp9E
zyC_Ur@+oPYE8zjrMt`9E99vCT3`$YbiyKhgc(JAIvyZ<Dqj+JnQI?6|L%|D$kTr)C
zL(R79&scp;2#}8;QA$pL_GEBcysSu`?&ER$t`&}y^=fQm$TT&0Ph4G5g-fXG%D~aw
zKl^Y7I@I=-nf!{e5-n5K;;W}sVd>HC?zvYg;N?AFeu5WOdp_Ds56574$=*MjBkN65
z@fAQ&J%M1IA%pDWdPaLZcyvlmCZv;({B-fTCw=4&XWY;FZFuS{_3NuIk835MsXKNc
z@UifZuN`w`O}Yn&d;9}I*w0_<U2rFk9>pLBp({XgXj{A5ZVz^1mCN{>3)%t0oduLz
z<ni%Oo*13IV@G_>8tc>q@DdD47g2_;ADQVvJL;m6db%d0pal+PC1Ix$E<Yd2kaOMs
z;}c1rmuO4Zm@IMD;Jm=H0eQ*6QpUUbo1LV+WZN1|UwM2#G3o^_ZERa2{v$>=FDa-y
zlw*=?uimKFxj-t^8zlp0EiRvg+*hm>cI(UC!VoAey!!WW<!J#>27zRSTh4E;+|tU{
zo|w9#hGCg-dEq4bTt=qI_G#q})3uad-7y%trWn4=q;D8$vb>yaBnf6*@id^bSKQMK
zgrW+2j)4Z6_pBKsEpb7IF*_SlX&hZ2`F=2QJMP#~Q8VRnP1<V9s`KbY%;r8SyB};l
za=bZYO%p92m9u{ltY{KPJ1>y0`_LxU)}cT8MfL2#-|H^BSwH%=5b~}!cMe=h%VOlA
zn-GjnEqCaPhU(^5O?F$g+N$`a(WajlR1UPm$*oe7mh#VthSbck_Z_<?U*~wO2Ewc&
zD!GC!BQv6w2=!)*S=SvxPv(r+P*T}kd05d~-hk-`FQJtx)yA@(#YxVOZq$5aO(>P^
zo)hXWku>&!q^uGXGj9(E242@`SQaD7hcSx_pBTLhG!JI<+b2w#U5jcyw{fE~7rIug
z4`HBFs&4H(oS)5l=qZ~4jcnB78%}Sv<2LpnV;!ArbXI{_bFobj@&D)bI<kL6MCAAK
n6TN>G{>rHh82}IwiCV}1Pt?Mi1J_Xo0Bl;%p!LcGe((MTaIWu2

diff --git a/katoptron/Juelich/samples_files/Xiao_24.npz b/katoptron/Juelich/samples_files/Xiao_24.npz
deleted file mode 100644
index 79c69ba38d476c8594ec72d1424eb2a4283de651..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1681
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
VelbBT1_=6bsJOU87j@NA^$!HfBZ&Y2

diff --git a/katoptron/Juelich/samples_files/Xiao_25.npz b/katoptron/Juelich/samples_files/Xiao_25.npz
deleted file mode 100644
index de6c0a9bf8011de5ccc85148617a0428497f3b96..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1768
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

diff --git a/katoptron/Juelich/samples_files/Xiao_26.npz b/katoptron/Juelich/samples_files/Xiao_26.npz
deleted file mode 100644
index 457c26c08fb5030d726dac36cf60729f9396fcb5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1873
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
I+;d$02~Z%9H2?qr

diff --git a/katoptron/Juelich/samples_files/Xiao_27.npz b/katoptron/Juelich/samples_files/Xiao_27.npz
deleted file mode 100644
index ac3720888e33467c4e33b3148fb85b240f66b1a5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1984
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
KFY55@kNyU>7rUDP

diff --git a/katoptron/Juelich/samples_files/Xiao_28.npz b/katoptron/Juelich/samples_files/Xiao_28.npz
deleted file mode 100644
index 8cd28ff90d183b6b49734472866018d1d80225ec..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2076
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

diff --git a/katoptron/Juelich/samples_files/Xiao_29.npz b/katoptron/Juelich/samples_files/Xiao_29.npz
deleted file mode 100644
index 05886390d5c8c3f0919d66847a30efe9a5030bd7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2191
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

diff --git a/katoptron/Juelich/samples_files/Xiao_3.npz b/katoptron/Juelich/samples_files/Xiao_3.npz
deleted file mode 100644
index 63c39112096774687963de5731858ea2d26e230d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 445
zcmWIWW@Zs#U|`^2Flfv5_w?6$7y;yM0Ag++E>F!&&nPL@%PXjy{YLziw7|&|0mlN?
z&YKi9CuT|B(gk^w(-y8<ykOq6_>iC}GsNe|PnpCeRPKF7(~q@FJY7X>3DZxhG^<%w
zTwA$B7}hO+#lNpZFX~N$-|YMi;=6@xB%9e70#F=qLdrh28))$Zr~`@<a|?1(DRlss
z8`udc%<JqDZ|?WMlO&V%$7`R@w6gLK^`ARDcNra36myAovpDc1c)=gfmAjtb{`SLS
z&K(ooyFcfxZg$=<CF)<N2+zMqscLrLStiK>-OR`&!i+oEfQ|=)hDH#D6o}{=(Y*`N
c#=y|f2-1n<`2cTLHjpF}5EcPxQ$`RE0A{O^_W%F@

diff --git a/katoptron/Juelich/samples_files/Xiao_30.npz b/katoptron/Juelich/samples_files/Xiao_30.npz
deleted file mode 100644
index 22f997509d24910547f8adc3d2ddd3c51168035c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2310
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
JF-!-y{{Z2!TRZ>&

diff --git a/katoptron/Juelich/samples_files/Xiao_31.npz b/katoptron/Juelich/samples_files/Xiao_31.npz
deleted file mode 100644
index 3bdc6c63e013b0e30cfc8c8ad3c7d1c86d0959ec..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2427
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
P*s#8@uiHi0AE&<oEjy@A

diff --git a/katoptron/Juelich/samples_files/Xiao_32.npz b/katoptron/Juelich/samples_files/Xiao_32.npz
deleted file mode 100644
index 2c97d1fa8065ac520a899b96feaaead81a4e12ca..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2559
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

diff --git a/katoptron/Juelich/samples_files/Xiao_33.npz b/katoptron/Juelich/samples_files/Xiao_33.npz
deleted file mode 100644
index 942988c3efefab15b3694e248d9bfda092369197..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2684
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
Fe*j?;J4pZl

diff --git a/katoptron/Juelich/samples_files/Xiao_34.npz b/katoptron/Juelich/samples_files/Xiao_34.npz
deleted file mode 100644
index 8955d9aa2ab42b31f257eeacc025c6bea6d17ef7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2807
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
X56fZ-JHhm8li{#GJRChv{+j(40yA4I

diff --git a/katoptron/Juelich/samples_files/Xiao_35.npz b/katoptron/Juelich/samples_files/Xiao_35.npz
deleted file mode 100644
index 341b57eb9cf65f0d53296c644ba4811f54973f41..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2956
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
a0KmUYld(Si>EDlZzpnSMc<Q&=2K)ywq^eK=

diff --git a/katoptron/Juelich/samples_files/Xiao_36.npz b/katoptron/Juelich/samples_files/Xiao_36.npz
deleted file mode 100644
index 43609406a691e9b4591fec857697164dd4873cab..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3081
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
VgPU^m>;^e^`mLQgWY_5f{tN58^Ys7#

diff --git a/katoptron/Juelich/samples_files/Xiao_37.npz b/katoptron/Juelich/samples_files/Xiao_37.npz
deleted file mode 100644
index 39e862f48bf5507ca1fdace4238139e9afe618bb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3191
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
M{Bx!MnkxYR0pi0&cmMzZ

diff --git a/katoptron/Juelich/samples_files/Xiao_38.npz b/katoptron/Juelich/samples_files/Xiao_38.npz
deleted file mode 100644
index 4646a35d35db324ee59c85a24ef578e5f9c4a85c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3318
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
ZFaLUM0uAUHer(d5OwW@Qa^}a^e*nqAiQxbM

diff --git a/katoptron/Juelich/samples_files/Xiao_39.npz b/katoptron/Juelich/samples_files/Xiao_39.npz
deleted file mode 100644
index 2a0a4bda52b1d0a0ef0e45705181e21cc5ac6376..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3497
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
CUD`?j

diff --git a/katoptron/Juelich/samples_files/Xiao_4.npz b/katoptron/Juelich/samples_files/Xiao_4.npz
deleted file mode 100644
index 63c39112096774687963de5731858ea2d26e230d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 445
zcmWIWW@Zs#U|`^2Flfv5_w?6$7y;yM0Ag++E>F!&&nPL@%PXjy{YLziw7|&|0mlN?
z&YKi9CuT|B(gk^w(-y8<ykOq6_>iC}GsNe|PnpCeRPKF7(~q@FJY7X>3DZxhG^<%w
zTwA$B7}hO+#lNpZFX~N$-|YMi;=6@xB%9e70#F=qLdrh28))$Zr~`@<a|?1(DRlss
z8`udc%<JqDZ|?WMlO&V%$7`R@w6gLK^`ARDcNra36myAovpDc1c)=gfmAjtb{`SLS
z&K(ooyFcfxZg$=<CF)<N2+zMqscLrLStiK>-OR`&!i+oEfQ|=)hDH#D6o}{=(Y*`N
c#=y|f2-1n<`2cTLHjpF}5EcPxQ$`RE0A{O^_W%F@

diff --git a/katoptron/Juelich/samples_files/Xiao_40.npz b/katoptron/Juelich/samples_files/Xiao_40.npz
deleted file mode 100644
index a6932e59351b9f03244de8ba0d72ebc48e2276b4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3656
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
AtpET3

diff --git a/katoptron/Juelich/samples_files/Xiao_41.npz b/katoptron/Juelich/samples_files/Xiao_41.npz
deleted file mode 100644
index d2e9637a91ca865122e162d4abf50efeb67f09c6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3770
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

diff --git a/katoptron/Juelich/samples_files/Xiao_42.npz b/katoptron/Juelich/samples_files/Xiao_42.npz
deleted file mode 100644
index 7964cc28089a4fbad5ee731886f5af0386b85cbc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3964
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

diff --git a/katoptron/Juelich/samples_files/Xiao_43.npz b/katoptron/Juelich/samples_files/Xiao_43.npz
deleted file mode 100644
index 8429ceb24d4090cbee0145043b46dd7abcb7bf64..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4111
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
N+vC?5#qj&>e*n-{B-#J~

diff --git a/katoptron/Juelich/samples_files/Xiao_44.npz b/katoptron/Juelich/samples_files/Xiao_44.npz
deleted file mode 100644
index 6e078a8acf2ceeb2ecdf2d53efcc08a80f06fefd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4245
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

diff --git a/katoptron/Juelich/samples_files/Xiao_45.npz b/katoptron/Juelich/samples_files/Xiao_45.npz
deleted file mode 100644
index f00ed1da3c4f3ab343b2b2bd31fa1c03ce330bc1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4433
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
L<M-N5^XKV5_F=cJ

diff --git a/katoptron/Juelich/samples_files/Xiao_46.npz b/katoptron/Juelich/samples_files/Xiao_46.npz
deleted file mode 100644
index f9b42f0abf0fb038536695e9d7e7245ee5e12dee..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4598
zcmZ`-byQT*yQM=)LPAPOr8}hsgaI7s970-32N*gf2E<W>p*y9dQ(!<kl@5`R(jk-~
zXBc=2zO{bux7NG&kF(CbYp?Zv`|NL@?;IcipMVYr2ZsblB-;IPM2IHw5*`jtEIAGi
z*`Kcv2Nx%2Z?KSumw(oPg+K-_W8ZVNzG4dfv~+`M=ihIQBjIH;&MpbA-q39~b?Rrv
z=5i9LquS~Q8K!GVvXq?hrX(69wR3Oh-Q4Vv@DW=x7Wx{pr@qKG|GKTslr3vo{*F63
z4{Y<LzPy>RFEix6pQ>zEJgG$zo>T?g<SUvL;!kp^4b9?DF1OdTO1?h|XAKrhU<>oR
z`;wzObYG$-*W0XK&6XYVkbk)|Hi1aKU^^}&9*V~wf63|nu?IIpUoofPRwi+|P!rFv
zJ9SbH5pogK^!W+B19R2s0Y}%6Ca*ZRqL2-<`!O3O!vW$pAbo$uDb)spk00V*`5bXE
zBHimseB7PuTICz>({w%$WVUiyj!Vh!`gsUr9@ulMUNmkp<32gHk>=b<fQaH%Z^Ga_
z$8iNuC`XaAs3pI9C~6mzT_NI~Jnmwyk`yATd_`;sUN+uwMT@S3H6dQ3@ho^wLY;7N
zM^cI|fQMyg!Qyt4H4T|>ut1U8%@N#qvq#!G^;AU9G6&OhLi%x#<??S{Epvq(-T(Q%
z#^wov(j@5q((VDVd}}qzMvH}bhIaOXYvchvcSGWQ897~^#H7g>UGz=FT7a&&hPG;#
zqlt|6jfciIO&U^TH5rkJVvec_Lnw)ZMPs-p3kqlPH}hLqCOI)PnDsmBf(w~cX>vxU
z2?G^;_3)rC<RO=7{P8j07fO7$qZJW<=ad`pM^<jsGIwmuqIx57X?3b|hJQ2rdk9oh
z^hi)T_ToD{HGYTuT1#uHerUI>{T#>iJTr^;Hy!a#Sx#!c{>$9VdV8)PCLg=vAQmO3
zvX<2$=rTTWd@AnBJ>_5Loa{SuRKxoVuEf==#;#ap9$bOfaSdR9;fH5@d5(T?YN&p5
zYZeC+3@;-u?ezA9pdG{~L_}iS3b8grG(AEQSUp!OedyH1ktCc6mX_QbvvGIK;bHi^
z3yeFCZloF#Kp20>5VYvmiD5kv2L7Ka0NXs*Q=-JddBb>J1z=luFE@wlDoF8{n8IB4
z3qH~2dkY|25O`l`7?(C{(`TO}nkt$aZ2shU2f)XDBY6i9ST(^$<I+~O=%_W(ZpgLN
zJ?*1*8X`A}LCJ4ThIXE91+!(twooIsBU`9JFJH)uje+5)A@$p_+$#CXkrV+$@QEWL
zo&chWFvN;-xRUT4pupJ$INe6`4FSggGkupHX<u~tY(~a*8dKV~Iufg7ZD8V`(^@1J
zMK&)F^A(=1i{|A9)#ouMvO6&n17FJ|B>DlLB}jkugnSXztBYB<FYlYN6=&1HEX`vZ
zLwuN${R)=7OV(Ca5D~~SCqo;YRG=_*xfQ;ZC?YS^JVvhD7+V|pdtmJ&ZU^JfGVmFQ
zFB_2;dqXb@9hTlZ--t!Z{=+;z=7ycw2PzveVb@kXEN)5)&OVw-37cQf<X)TgKtRPX
z>pd%KrcV-7pQlibJ!IdAaR@B+{Jd=>G;QA{HP&uO29O^(U&)lOHX!$8CB7}L*oN5E
z?{%@XxJ$tPH2b;4)_0x5C$Eozm*!*+&`w&4W_Ge^&&)=m0!%h@T0fUk&0=_b9xtHR
zt3jj`YPd@XrePP?=){vb(1%YC0YWnySRQDy=mW(KjiRyH)5&dkA10M=o9WUP#oJDb
zmMcILJbwA<mfRYQq;d$VjT;sB%!DcqePR1aW?q;9cASe)vm0|hr558VD)N5dlc-wM
z2c-&~aLa93BS_v8#udgC0U89kWjHS@Ml@v?FuF6##?;o-4Ku6<N`0Ou87@?PTCFAD
zjN%YdvLNo>MM9yiTdx{Csa5YtMyEGJW5mDwL8%2d2|rF@O&`KJlib(MIWhfIF-;W_
z@;Fg>W;(9Oo7Ty%$DTa6mG5OESEYLsAHfy%?US_~S~c}Ug0D#@z(<1q2Zr|`5V<#!
zccVjVZ^aq$WOilK27cw!BdK(tKnv0a{Y}ec_!t;kxLCi;n@o<H%xR_)*8)ms%~&#W
zM9m7QH2QHe;iZ4r8L$D^_AS~D-FCYFcfr8lF6Y#+uT){1i3u#J-d;P!`$l3(G7v^0
z&qURjWVp)EQz^!;yDk)bTM_L0nKey<3{Ls57xgh{%=~TEbregfo;7c~ffn(?S45Gx
z6Vx_f!GtyhpX}nBY)j3`4XU#7ps7liW3&>_>1r*@ZeECkz=!vKnS?bjhM;B)6{`*c
zKZJJ+Xh@*$k3B`bBNHSwtDHb9k+znrVmW?ne<O4j)}HyWEWO9GWAo{A5$p1S-0rI0
z_qOJWU=A;{vjK$y80oPBcxhI#`y!`%1Aw~G{7<|l<fIFG3>&0aI5@dBfn~MjM`bGQ
zCWp-2L_^W9cK#$+7Id&fBu*b?p?xtwdgV%p6AswUL&rCZvw_OU6I3y6eO28~=%EhD
z62Z(_d8gysEMbCYdLH0?Fy=XtjPhA@s{PZNZC;+3AOlDVN=58Y-OaQgmsGtRbe17$
zX~DEA!Nwc@X^)+Ue);5OH43~AGV)U^8LH1@FapWYVp+`oNPoFSgiDAso|24iR*^Em
zk;1noyo{TeyIKSmWOkA#Xo+>$+BtHiVN|%#I7x0~ykg&p54l*$rbR0+b~lb1>(@sp
z_P|TpXsjtkbvXyr5|u?R6LRW*rp<tR>dpW4T+JfvT8UT&P#*n(!fO$!hKs~41u>TL
zJ!8_EcX<85@LaP&>Y;IyY*}TR@THlx15$44EAl<-Dm-r%(j_PLL|`^Y=PynMZTe*$
zx_i#!0hSpF5~jIFg9a#0U#l{0CaqVDtE*QmRt=+<Y1)1o)Qr>a$6AGMkv)@<KLM|;
z<I{LmR0L;3=2$^<iEuJZP@cGce-Oj*nc5#%Rr6Lq+s}T+m~yGwmTI@&7R{p+mb<@P
z>n7Rj)T<?*elhEmp<my3KGDfpQBg&8sL<k5UWG_?6hG&#(m?hV;bNisaNm%5j&GH;
z^a~9M$lI>6Kni~bW9{GH!V#9Q;bY##t$3{|{h9qhU_-S>6SL))_8F;SZQRO?k@a*>
zn$$WyXAkC{m%IC!Z9z$dH*+l3JMX-OT@jcejLdn`hSg9?#NB|rY?zeRSN?RQlfDr~
zz?Q6QF!1|%lz23!sAJtrAQPyN{>>dk+V=Mrw|!`ZwZ%fPHJFDOJx(VlX!~{r@F7x@
z%eTE$FP7Ah)gjW!`#i5p!SYU<i|01Q%Gwo&d&6kXfb7WlkCrOuuF&U`%sUrdjbdv_
z33SGFFS6S^ka(fYIWmtR)ZJfj;0I1Vcdzn-aUjcCA0UU_j>C`?nw@?|Z&b8V{H@yk
zRo3QE^<;f2k!|Qf!}M`fXoNz1h{As4KZ_dbGO5FC`gcXld|U4$ayo?=Oq?$pyj-bR
z+|8_~$6$_2sy&725m_s}q2qM^*Q*T7p)WvNSl?%+e|yqFmJx}~mMbe>w%|O6TC5Sz
zj=8OOL&LX=Ci{YO(fs$-eo)d1aUINRKz@a;J#2WHV!fsiR^@s)C%=qOPJ#ORap_Sm
zLYH)~=K@sNmSmwd$mTU$mQF9aj!#8oVVvy!uRcp_6_vQoO}?LuRR_5rL@@JLV_Jq4
zk!f8trn-9oidGjYLxV+sPgv~AS_TLF40Kl@N%XG?7Yv|PAjzQRHg}4c$9jzbFt^Hp
zgjMDE9L8*h-IF?a>h}6ET@r&MAS}%od+(^4;GfCWlPpA+ri=lHr^LO@RdD-ZmsX3v
z)$z250MjNQua{AIdCarUaR}=bC19#RPug|?%dW!!TB9I-2=)HKFXmcWbJm_J;&%&K
zgw%MayO@?P)^Y0cQDFNCnuJ1i@#$ztImf3)trU=U&A8J$P~`7DenY>*obQrYjXxa-
z2HvWq`RZTkhLNU>$$zT)d|(?C0oRBMHk38}B1Cj+G`|hmO9_0kdS<W8hZn~Z7!At8
zxeC678woq=<<=1|P<4J5Fk!$z6QuZKs)UX&stqbV5MQjXqG_@u;if}wu=m@$fVlUc
zYf_1mj?>KeM<S<sLn{t_qR`YzyV+@~)z$;(rHWw+P>}C9T<*86=J$?Kf1~Vwpe>3R
zzw>}_Qloz1&NDYXVo71?HU&q!ol8W1NLvTzT;`%Ac1n&~gl@m?RlwOlkhR+q<V)26
zZvNalbLaNFa>3gls8tbC%S*4{$T&awd-|^VmK(O?@A!FLlKkVmc+mGW153v@otGvF
z<U}?&qcbS(d+{~i>$tEcy;q0&IcP2clpW9ZFb`MQXG$o1T|sx<TS(Yr6Sn3#g?kL0
zt%^@8NdpzL92B1zz!Y-g?7sHj@|_E7_F~qFt-<VXRvsKJ*<E!A--OJpWp%~fhU6jl
z%9uo;lSPQg`c~mqYi_Sfft1IdcHv5DhF;(Cs5E?!_b!F||94Z2fA;ZNNzGif{N}b|
zvOnDl{m*rnZAghFI#q0xc7*qwE?O`sH^ovFT|2^jwMw&`$j3UQ=o95^ik`ieThEu%
z@YqpI>SLjRkhNiB?iqi#9XUmNhEgd+*wmo3P>S8M3CerieYdycgJRWSafiDTqC-eL
z$1oa4o2NmEq>1+LK6df2F$O&wt?{&2T?R+`D>$-NflzVVbMY36G!O)nbt$)RC2eLE
zbod_0k;?}>%qQgd*A{K<2k&1VM2kC@jqyF*(qA<&vY(7G7G;4szlUZ3h^<wyv{q!I
zbHce<hFT2QJ_Wq=+GPEtl8q1i>7VwA|NWh`Z|?*z)yahjE(%dome0wKFCMIAo5I~9
zUOkKMkn<eGVVANT?cHNneC;9p(NvGv=uD_`WZuqeXWCsP_-^-A4N(lEEBg)9uyST1
zAv-fQyT^vr1CHB|6rtgh)jzvi`G_Q3J*7f;Z-yPitp<ObJ@^+saVE)4*X4E9#6mf<
z30pGF!WdL5FCcdXbM_`-tHgn&tnN`2eH*3qqPe+TSJ9`7Djo`1PSJI5Nyh08JH&$8
z!lF;w97@{+LqOVA#d$5b&>u4y6+TX^D;3=jCbS?lna~Du2tv{Gn{<XRAfGk&ay~qN
zGKkt<l+E?>yU=y`c_HUrWiVs7K&+Cek5LgXDJbc}-|ogH60$qvV>T2K`$J0JLiZF=
z`Z;Ie{doUX%1lFOdN>~@*{(%IDRiR!r76)pIBetX8i5SN65U0GjPBN0mjSkRaHu%k
z#n%f~ivRJ;o1x&2Ie^@R#PYN;Rl=MnjBO*Yf`Eots+4!xyCy#(bOUKtgtcpCvjR;Q
zBXQxRV^V<Aj$gyoLz~Vwt`!Thm`TB0;9bBBUK1j>g$ht$D@1^y+Nb3Vg0yqza)ix&
zmhvXn?PD<R9=n57V6W=7g$K=Lvf#DVWhEUABc~Y1EA!ME%$Jf&Qa|K$?ne@!(%|KL
ztop^D=8C!uJrfz}n;%9m_f~=3#jYp~GP70zd2d(3g{STnr<NRK+O9tISov6|nu^7K
zT?^le1+4W+zz!<I>(S7$@^Slt3B|0oIrAIuzOgTPRwv`Fx4WZ0K(toWRV>vPnMkkp
zy~kEFN<Jz90x0nTJ+U28&~6h83R<xy<c><`iVChky>ohvZyGZ$vKja2vwWSLy!fLV
z6BTR9w)o2Y{RW31qZ?L>68)STg;&<pZeyn8rOx|fnuf-dW!dbPRu(~ej-xESCLnap
z!9Bj#jkD;N5)gokM~DCa-?#j^a=CiK!v7Bcar^S$!2dp?Uc+#3!orF0ad7_QzzPHq
S68-&&_vd}_XY`={JNqA@k<+XI

diff --git a/katoptron/Juelich/samples_files/Xiao_47.npz b/katoptron/Juelich/samples_files/Xiao_47.npz
deleted file mode 100644
index 033ecdd992e4aa2e9d3ddcce73cc47e83cdaae74..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4719
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
Zz<=zG^|eXK{(L0<eS7{MSLpvd{SSFXKpp@9

diff --git a/katoptron/Juelich/samples_files/Xiao_48.npz b/katoptron/Juelich/samples_files/Xiao_48.npz
deleted file mode 100644
index 3e193d9e087bd7c7719995d8c2d2fd484321cba1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4955
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

diff --git a/katoptron/Juelich/samples_files/Xiao_49.npz b/katoptron/Juelich/samples_files/Xiao_49.npz
deleted file mode 100644
index 0918916be6ac617f97c4e44b4bca1e49cf754a2f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5130
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
LuQ81A_tSp>B`E8n

diff --git a/katoptron/Juelich/samples_files/Xiao_5.npz b/katoptron/Juelich/samples_files/Xiao_5.npz
deleted file mode 100644
index eed3e60620c924c1e5958248531446c026112b0a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 461
zcmWIWW@Zs#U|`^2Flfv5x3&mnj05s^05LZZm#1c?XOtA{<rP%Uek1-$THxe~fMWq`
z=S_;56SE|5>4Ln;X$#jaUNCQ3d`Qrg8RGNfr%d7!D)&C4>Brh7o~|Ocgz2Z$Gpkuv
zTwA$B7}hPY<}y5Y>axs*m!+q^i@z_N+vjM^;COiBQ9gzM6lYw0a<6hK(E1NhXA~#q
z7UZN->I^P7utQRq*SX)3mRlzI%W_ZB-oOo&ZL<$gsaKz>f8M9?N8_>dpVl{PZ$49D
zXP#eQE_T$_Iz-}+&bxI*Wj{8}474;ey!w!-Bdn+8^x+>o3J)eQER=MT0lJ=%NrV}9
uFao^+1`UlM3Mo+0HKKbQqK$!}p|KsvL<)ugZ&o&tBoh!80clr85Dx%qZ<@mZ

diff --git a/katoptron/Juelich/samples_files/Xiao_50.npz b/katoptron/Juelich/samples_files/Xiao_50.npz
deleted file mode 100644
index f35763aa71725038ca9e6d42f970f7a5b9ac173d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5305
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

diff --git a/katoptron/Juelich/samples_files/Xiao_6.npz b/katoptron/Juelich/samples_files/Xiao_6.npz
deleted file mode 100644
index 417801c9203949b37de027fa7be0afd3d2f20b43..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 517
zcmWIWW@Zs#U|`^2Flfv5f6?LBp9JJR0Ag++E>F!&&nPL@%PXjy{YLziw7|&|0mlN?
z&YKi9CuT|B(gk^w(-y8<ykOq6_>iC}GsNe|PnpCeRPKF7(~q@FJY7X>3DZxhHaDwT
zR$N=To-nUts9gE7KJ~ffg3D!><$lfcd~<L?@78$JXrEPzv)C8{P@JOOoxJuW&<PHV
z5T_I;<`(3nQtT8iH;7}H*1fL(A@gHjn{^Ds#ijrFw#)o`^4`;{Xh-|8@T7k`{wIg`
zG)Fp}Z8!bDNJh=H#%9OQ>5C8F{(1J#LH1x-zs48GJa*Xh{6GEpNL5&3KKtJExbyeK
ztt~=!Jl(WWW4YxV-&MAnR`)L}ru=M*TP=N(Fa6#pzm2Q?+CE>rdiaT@jpDPrZLipY
zK4xSRVa6T&K<|S=LnDYniVSp(=z#^%#=y|f*bQVN1zmtQD;r3X2?&dTbS*G+85jU+
Ct-izn

diff --git a/katoptron/Juelich/samples_files/Xiao_7.npz b/katoptron/Juelich/samples_files/Xiao_7.npz
deleted file mode 100644
index 9b1946fea901b32ada4d1794ca36a0e5003c89ad..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 559
zcmWIWW@Zs#U|`^2Flfv57tvdDC>zN80mR%uT%MYlo>5Y)mse0Z`;GW3X@Qd`0*(c&
zoi{0JPRx?Lr3>;Vr!8E!c)`4B@gYG|W{A&^pE8L{sNDOErXOpUc)E(%5~iP0ZOg1?
zS#fRUdcv%y9{bm1yRR?bi;^>^c;nW&XB)iG{oea*-;A3+CUZs4SC$8UG~tnA2taXD
z#HXvquYhhTV1&4-I5D>%CzWD1ak)WU#iaM`bgZFc-$lNycDG#TtvSbcy~Im={aWwR
zADoNcD#<2%GT5j4`P}uLtMAHAGrjk7m+qCDiNF5xE%%IEDN%FxZ_`?>g_?ZRm&pI0
z`$zr6!>6|%{5Fr8EAz^Ai+{;E@6sLbl5TFlV{~Dm{<n>-=N`GR&r`BHmdh^upr+)j
zLFJ6f?+bo~>h9TBH$(oVg68HeuiWb!4u3ziwS7jtO45gX`TM7i{#Q7~2n-TNCJ|=b
w5d{n%FlcB5QAp8-t`R*nA=(%i8XBhnnMh$9;LXYgl4JtHA|SmS82k(j03DIllK=n!

diff --git a/katoptron/Juelich/samples_files/Xiao_8.npz b/katoptron/Juelich/samples_files/Xiao_8.npz
deleted file mode 100644
index 6f4c1c3ae433bf11eaa6563bde78415e29229831..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 575
zcmWIWW@Zs#U|`^2Flfv5Z%SzjF9Grx7#SG2fmC^FW_m_Rv0h$5<?J`&ucQS|o(MP=
zuy)?0s5vo9@|G^ho1C_A-QorFrp1Q@O_?D+KYq$2E}?SoGn#&^UE=8~VoR8QO0}g~
z&9dU!%JqbKopG?g=lp<~Pa6EXtHkst+_z(Fu3Pf;RZrm^ANKyoF_UlUPffg_U0fwU
zWrdiqFEc{`isNP#H_LtmI;sKcxZ=dzf}B)}9mnMcaUPRi`qS@z@Ao*#<T!lM%x8Bl
zo?at<KZRZ2q%J7#_+Gx1EbVh;?_2rFc9(es?pnG=_3f((vF9T5ei^emz3*u_efS5D
z!h;D63niUomdS;!PMP=WS%F32r+LSM{rGxcZC5|?eVJ8^%j4C*@`LZ#Yaf01vCW|K
zRB0oh&U}}M<T-C-x2YYwme1*5?4cznQZFL?qTtBZKiv0^xU}y)y<SBAoJY&&i&qan
zNqm;-^c55`j7%cTxFZe}hak|<2qKZ95nUsCpn{ZxKttnPAc+*j0p6@^APFWQECSNo
Jfw92A003)N&prSE

diff --git a/katoptron/Juelich/samples_files/Xiao_9.npz b/katoptron/Juelich/samples_files/Xiao_9.npz
deleted file mode 100644
index 959ddd04c781034755bd4a1fbc88d29835429067..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 611
zcmWIWW@Zs#U|`^2Flfv5H>=uyz6QvXU}Rw62GZrJnduoN#d>)Km9yW7zmgU>c_QFg
zz}k6}qUOXb$y>T0Z*tngb&D6wn-(7uG-ZbP{P-!8xP;2R&uIFwc8RB}h%I6IDb+U3
zYL*q(R<0+^>tdbe*1xehC3E5BgO#!$jSdOR))-B*{hs#X;DX!ne(N8fS+6|n+`ZsS
zv7(oI9naqrdiwWwxgr}cLjZ~+UxtVM;srWz1JseliMa(isT4bs%MId8rggz>r*kUB
z+$~Gw=6^i9;P^quA2ClBo;S+mOH=sew}jb8?pQhlV>=7SS%F6idvbKWFW(8^(0%<n
z!0@ft-9Pf45`TVAbljgUf7J5L#(k0@=|V3){QDQ?JO6MWpOft5eXr*Dm%f<uZ+X?>
zpnCR|(LDU>?W&e9RDAc9C1fhi>0c+O#&68OEdKkkX_fM6$1PT<#;miN^8Vom-@Dcm
z<5gLm>^a*{AO5j4@0L&T_FYyHx?;ID;!mF}Fs}{YbN*BaPhC&k%YTy7gJgiA#>gbX
yj5~6H@e2kGjUWmss?jx~2RK9<14BdOQXms4_yfFI*+7y^Kv)E%Zv$h9fdK%8Xyp?C

diff --git a/katoptron/Juelich/slurm/blake.slurm.sh b/katoptron/Juelich/slurm/blake.slurm.sh
deleted file mode 100644
index e5e54caf..00000000
--- a/katoptron/Juelich/slurm/blake.slurm.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=Mirror_AB
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/Mirror_AB.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export n_nodes=1
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,1t
-export KMP_AFFINITY=compact
-
-export ensemble_size=1
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-export N_MPI_PER_SOCKET=1
-
-n_MPI=$(( 2*n_nodes ))
-base_dir=$(pwd)
-msh_file=${base_dir}/katoptron/Juelich/mesh/fused_mirror_assembly_mm.msh
-workspace_dir=${base_dir}/workspace/katoptron_Juelich_tests_M1_assembly_fused
-msh_part_file=${workspace_dir}/fused_mirror_assembly_mm_part_${n_MPI}.msh
-
-if [ ! -d ${workspace_dir} ] 
-then
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -e ${msh_part_file} ]
-then
-    gmsh -3 ${msh_file} -o ${msh_part_file} -part ${n_MPI}
-fi
-
-mpirun -npersocket ${N_MPI_PER_SOCKET} python run.py -k ${OMP_NUM_THREADS} katoptron/Juelich/tests/M1_assembly_fused.py
diff --git a/katoptron/Juelich/slurm/blake_ER_NER.slurm.sh b/katoptron/Juelich/slurm/blake_ER_NER.slurm.sh
deleted file mode 100644
index 6ac1bc52..00000000
--- a/katoptron/Juelich/slurm/blake_ER_NER.slurm.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=Mirror
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/Mirror.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export n_nodes=1
-
-function setEnsembleReduction(){
-  remove2env INCLUDE "${Trilinos_DIR}/include"
-  remove2env LIB "${Trilinos_DIR}/lib"
-  remove2env PYTHONPATH "${Trilinos_DIR}/lib/python2.7/site-packages"
-  remove2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages/PyTrilinos"
-  remove2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages"
-  remove2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib"
-  if [ “$1” == “false” ]; then
-    export Trilinos_DIR=$Trilinos_DIR_NO_ER
-    export Waves_DIR=$Waves_DIR_NO_ER
-    export ensemble_reduction="false"
-  else
-    export Trilinos_DIR=$Trilinos_DIR_ER
-    export Waves_DIR=$Waves_DIR_ER
-    export ensemble_reduction="true"
-  fi
-  add2env INCLUDE "${Trilinos_DIR}/include" end
-  add2env LIB "${Trilinos_DIR}/lib" end
-  add2env PYTHONPATH "${Trilinos_DIR}/lib/python2.7/site-packages" front
-  add2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages/PyTrilinos" end
-  add2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib/python2.7/site-packages" end
-  add2env LD_LIBRARY_PATH "${Trilinos_DIR}/lib" end
-  cd $Waves_DIR
-}
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-export N_MPI_PER_SOCKET=1
-
-ensemble_sizes=( 1 8 16 32)
-run_NER=true
-run_ER=true
-
-setEnsembleReduction false
-
-n_MPI=$(( 2*n_nodes ))
-base_dir=$(pwd)
-msh_file=${base_dir}/katoptron/Juelich/mesh/fused_mirror_assembly_mm.msh
-workspace_NER_dir=${base_dir}/workspace/katoptron_Juelich_tests_M1_assembly_fused_MC_k
-msh_part_NER_file=${workspace_NER_dir}/fused_mirror_assembly_mm_part_${n_MPI}.msh
-
-if [ ! -d ${workspace_NER_dir} ] 
-then
-    mkdir ${workspace_NER_dir}
-fi
-
-if [ ! -e ${msh_part_NER_file} ]
-then
-    gmsh -3 ${msh_file} -o ${msh_part_NER_file} -part ${n_MPI}
-fi
-
-if [ "$run_NER" = true ]; then
-  for s in "${ensemble_sizes[@]}"
-  do
-    export ensemble_size=$s
-    mpirun -npersocket ${N_MPI_PER_SOCKET} python run.py -k ${OMP_NUM_THREADS} katoptron/Juelich/tests/M1_assembly_fused_MC_k.py
-  done
-fi
-
-ensemble_sizes=( 8 16 32)
-
-setEnsembleReduction true
-
-base_dir=$(pwd)
-workspace_ER_dir=${base_dir}/workspace/katoptron_Juelich_tests_M1_assembly_fused_MC_k
-msh_part_ER_file=${workspace_ER_dir}/fused_mirror_assembly_mm_part_${n_MPI}.msh
-
-if [ ! -d ${workspace_ER_dir} ] 
-then
-    mkdir ${workspace_ER_dir}
-fi
-
-cp ${msh_part_NER_file} ${msh_part_ER_file}
-
-if [ "$run_ER" = true ]; then
-  for s in "${ensemble_sizes[@]}"
-  do
-    export ensemble_size=$s
-    mpirun -npersocket ${N_MPI_PER_SOCKET} python run.py -k ${OMP_NUM_THREADS} katoptron/Juelich/tests/M1_assembly_fused_MC_k.py
-  done
-fi
\ No newline at end of file
diff --git a/katoptron/Juelich/slurm/blake_all.slurm.sh b/katoptron/Juelich/slurm/blake_all.slurm.sh
deleted file mode 100644
index fa0a52a9..00000000
--- a/katoptron/Juelich/slurm/blake_all.slurm.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=Mirror_all
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 2
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/Mirror_all.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export n_nodes=2
-
-ensemble_sizes=( 1 8 16 32)
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-export N_MPI_PER_SOCKET=1
-
-n_MPI=$(( 2*n_nodes ))
-base_dir=$(pwd)
-msh_file=${base_dir}/katoptron/Juelich/mesh/fused_mirror_assembly_all_mm.msh
-workspace_dir=${base_dir}/workspace/katoptron_Juelich_tests_M1_assembly_fused_all
-msh_part_file=${workspace_dir}/fused_mirror_assembly_all_mm_part_${n_MPI}.msh
-
-if [ ! -d ${workspace_dir} ] 
-then
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -e ${msh_part_file} ]
-then
-    gmsh -3 ${msh_file} -o ${msh_part_file} -part ${n_MPI}
-fi
-
-for s in "${ensemble_sizes[@]}"
-do
-    export ensemble_size=$s
-    mpirun -npersocket ${N_MPI_PER_SOCKET} python run.py -k ${OMP_NUM_THREADS} katoptron/Juelich/tests/M1_assembly_fused_all.py
-done
diff --git a/katoptron/Juelich/slurm/blake_order.slurm.sh b/katoptron/Juelich/slurm/blake_order.slurm.sh
deleted file mode 100644
index fecd4d79..00000000
--- a/katoptron/Juelich/slurm/blake_order.slurm.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=M_order
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/M_order.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export n_nodes=1
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,1t
-export KMP_AFFINITY=compact
-
-export ensemble_size=1
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-export N_MPI_PER_SOCKET=1
-
-n_MPI=$(( 2*n_nodes ))
-base_dir=$(pwd)
-msh_file=${base_dir}/katoptron/Juelich/mesh/fused_mirror_assembly_mm.msh
-workspace_dir=${base_dir}/workspace/katoptron_Juelich_tests_M1_assembly_fused_MC_k_order
-msh_part_file=${workspace_dir}/fused_mirror_assembly_mm_part_${n_MPI}.msh
-
-if [ ! -d ${workspace_dir} ] 
-then
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -e ${msh_part_file} ]
-then
-    gmsh -3 ${msh_file} -o ${msh_part_file} -part ${n_MPI}
-fi
-
-mpirun -npersocket ${N_MPI_PER_SOCKET} python run.py -k ${OMP_NUM_THREADS} katoptron/Juelich/tests/M1_assembly_fused_MC_k_order.py
diff --git a/katoptron/Juelich/slurm/blake_preload.slurm.sh b/katoptron/Juelich/slurm/blake_preload.slurm.sh
deleted file mode 100644
index e7952bb3..00000000
--- a/katoptron/Juelich/slurm/blake_preload.slurm.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=Mirror_AB
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/Mirror_AB.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export n_nodes=1
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_PLACE_THREADS=24c,1t
-export KMP_AFFINITY=compact
-
-export ensemble_size=1
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-export N_MPI_PER_SOCKET=1
-
-n_MPI=$(( 2*n_nodes ))
-base_dir=$(pwd)
-msh_file=${base_dir}/katoptron/Juelich/mesh/fused_mirror_assembly_mm.msh
-workspace_dir=${base_dir}/workspace/katoptron_Juelich_tests_M1_assembly_fused_preload
-msh_part_file=${workspace_dir}/fused_mirror_assembly_mm_part_${n_MPI}.msh
-
-if [ ! -d ${workspace_dir} ] 
-then
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -e ${msh_part_file} ]
-then
-    gmsh -3 ${msh_file} -o ${msh_part_file} -part ${n_MPI}
-fi
-
-mpirun -npersocket ${N_MPI_PER_SOCKET} python run.py -k ${OMP_NUM_THREADS} katoptron/Juelich/tests/M1_assembly_fused_preload.py
diff --git a/katoptron/Juelich/smoothers/AMG_BGS_gs_gs.xml b/katoptron/Juelich/smoothers/AMG_BGS_gs_gs.xml
deleted file mode 100644
index 4a44425b..00000000
--- a/katoptron/Juelich/smoothers/AMG_BGS_gs_gs.xml
+++ /dev/null
@@ -1,226 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-    
-    <!-- sub block factories -->
-    <!-- BLOCK 1 -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myDropFact1">
-      <Parameter name="factory" type="string" value="CoalesceDropFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact2">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>    
-
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>    
-    </ParameterList>
-
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-
-    <!-- BLOCK 2 -->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/> <!-- use old aggregates! -->
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>
-    </ParameterList>
-
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <!-- <Parameter name="Graph" type="string" value="myDropFact1"/> -->
-    </ParameterList>
-
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/><!-- reuse aggs -->
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-	      <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-	      <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-    </ParameterList>
-
-
-    <!-- BLOCK SMOOTHERS -->
-    
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>      
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="20"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.97"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>      
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="20"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1.04"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySCHWARZ1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type"  type="string" value="SCHWARZ"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="schwarz: overlap level"            type="int"    value="1"/>
-        <Parameter name="schwarz: combine mode"             type="string" value="Zero"/>
-        <Parameter name="subdomain solver name"             type="string" value="RELAXATION"/>
-        <ParameterList name="subdomain solver parameters">
-          <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-          <Parameter name="relaxation: sweeps" type="int"    value="1"/>
-          <Parameter name="relaxation: damping factor" type="double" value="0.79"/>
-        </ParameterList>
-      </ParameterList>
-    </ParameterList>    
-
-    <ParameterList name="mySCHWARZ2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type"  type="string" value="SCHWARZ"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="schwarz: overlap level"            type="int"    value="1"/>
-        <Parameter name="schwarz: combine mode"             type="string" value="Zero"/>
-        <Parameter name="subdomain solver name"             type="string" value="RELAXATION"/>
-        <ParameterList name="subdomain solver parameters">
-          <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-          <Parameter name="relaxation: sweeps" type="int"    value="1"/>
-          <Parameter name="relaxation: damping factor" type="double" value="0.79"/>
-        </ParameterList>
-      </ParameterList>
-    </ParameterList>        
-
-    <!-- Use Block GS: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="Backward mode" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="3"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
diff --git a/katoptron/Juelich/smoothers/AMG_BGS_gs_gs_old.xml b/katoptron/Juelich/smoothers/AMG_BGS_gs_gs_old.xml
deleted file mode 100644
index 170ffb5f..00000000
--- a/katoptron/Juelich/smoothers/AMG_BGS_gs_gs_old.xml
+++ /dev/null
@@ -1,294 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-    
-    <!-- sub block factories -->
-    <!-- BLOCK 1 -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myDropFact1">
-      <Parameter name="factory" type="string" value="CoalesceDropFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact2">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>    
-
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>            
-    </ParameterList>
-
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-
-    <!-- BLOCK 2 -->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/> <!-- use old aggregates! -->
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>            
-    </ParameterList>
-
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <!-- <Parameter name="Graph" type="string" value="myDropFact1"/> -->
-    </ParameterList>
-
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/><!-- reuse aggs -->
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-	      <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-	      <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-    </ParameterList>
-
-
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="10"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="10"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.8"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact3">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="BASKER"/>
-    </ParameterList>    
-
-    <ParameterList name="mySmooFact4">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="100"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>    
-
-    <ParameterList name="mySmooFact5">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="100"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>    
-
-    <!-- Use Block GS: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="3"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="Backward mode" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockSmootherDirect">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="Backward mode" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact4"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact5"/>
-      </ParameterList>
-    </ParameterList>    
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-    <!-- =======================  REPARTITIONING  ======================= -->
-    <!-- amalgamation of coarse level matrix -->
-    <ParameterList name="myRebAmalgFact">
-      <Parameter name="factory"                        type="string" value="AmalgamationFactory"/>
-      <Parameter name="A"                              type="string" value="myBlockedRAPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myRepartitionHeuristicFact">
-      <Parameter name="factory"                        type="string" value="RepartitionHeuristicFactory"/>
-      <Parameter name="A"                              type="string" value="myBlockedRAPFact"/>
-      <Parameter name="repartition: min rows per proc"      type="int"    value="2000"/>
-      <Parameter name="repartition: max imbalance"          type="double" value="1.1"/>
-      <Parameter name="repartition: start level"            type="int"    value="1"/>    
-    </ParameterList>
-    
-    <ParameterList name="myZoltanInterface">
-      <Parameter name="factory"                             type="string" value="ZoltanInterface"/>
-      <Parameter name="A"                                   type="string" value="myBlockedRAPFact"/>
-      <Parameter name="number of partitions"                type="string" value="myRepartitionHeuristicFact"/>
-      <!--<Parameter name="Coordinates"                         type="string" value="myTransferCoordinatesFact"/>-->
-    </ParameterList>
-
-    <ParameterList name="myRepartitionFact">
-      <Parameter name="factory"                             type="string" value="RepartitionFactory"/>
-      <Parameter name="A"                                   type="string" value="myBlockedRAPFact"/>
-      <Parameter name="number of partitions"                type="string" value="myRepartitionHeuristicFact"/>
-      <Parameter name="Partition"                           type="string" value="myZoltanInterface"/>
-      <Parameter name="repartition: remap parts"            type="bool"   value="false"/>
-    </ParameterList>
-
-    <ParameterList name="myRebalanceProlongatorFact">
-      <Parameter name="factory"                        type="string" value="RebalanceTransferFactory"/>
-      <Parameter name="type"                           type="string" value="Interpolation"/>
-      <Parameter name="P"                              type="string" value="myBlockedPFact"/>
-      <Parameter name="Nullspace"                      type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myRebalanceRestrictionFact">
-      <Parameter name="factory"                        type="string" value="RebalanceTransferFactory"/>
-      <Parameter name="type"                           type="string" value="Restriction"/>
-      <Parameter name="R"                              type="string" value="myBlockedRFact"/>
-    </ParameterList>
-
-    <ParameterList name="myRebalanceAFact">
-      <Parameter name="factory"                        type="string" value="RebalanceAcFactory"/>
-      <Parameter name="A"                              type="string" value="myBlockedRAPFact"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="4"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <Parameter name="P"                 type="string"   value="myRebalanceProlongatorFact"/>
-      <Parameter name="R"                 type="string"   value="myRebalanceRestrictionFact"/>
-      <Parameter name="A"                 type="string"   value="myRebalanceAFact"/>
-      <Parameter name="Importer"          type="string"   value="myRepartitionFact"/>
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
diff --git a/katoptron/Juelich/smoothers/AMG_BGS_gs_gs_rep.xml b/katoptron/Juelich/smoothers/AMG_BGS_gs_gs_rep.xml
deleted file mode 100644
index ea2db74e..00000000
--- a/katoptron/Juelich/smoothers/AMG_BGS_gs_gs_rep.xml
+++ /dev/null
@@ -1,380 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-    
-    <!-- sub block factories -->
-    <!-- BLOCK 1 -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myDropFact1">
-      <Parameter name="factory" type="string" value="CoalesceDropFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact2">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>    
-
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>            
-    </ParameterList>
-
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-
-    <!-- BLOCK 2 -->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/> <!-- use old aggregates! -->
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>            
-    </ParameterList>
-
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <!-- <Parameter name="Graph" type="string" value="myDropFact1"/> -->
-    </ParameterList>
-
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact2"/><!-- reuse aggs -->
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-	      <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-	      <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <!-- we need the factories from the first group -->      
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>    
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>
-      </ParameterList>      
-    </ParameterList>
-
-
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="10"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="10"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.8"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact3">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="BASKER"/>
-    </ParameterList>    
-
-    <ParameterList name="mySmooFact4">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="100"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>    
-
-    <ParameterList name="mySmooFact5">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="100"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>    
-
-    <!-- Use Block GS: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="3"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="Backward mode" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockSmootherDirect">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="Backward mode" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact4"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact5"/>
-      </ParameterList>
-    </ParameterList>    
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-    <!-- =======================  REPARTITIONING  ======================= -->
-    <!-- amalgamation of coarse level matrix -->
-
-    <ParameterList name="myRepartitionHeuristicFactory">
-      <Parameter name="factory" type="string" value="RepartitionHeuristicFactory"/>
-      <Parameter name="A"                               type="string"  value="myBlockedRAPFact"/>
-      <Parameter name="repartition: start level"        type="int"     value="2"/>
-      <Parameter name="repartition: min rows per proc"  type="int"     value="256"/>
-      <Parameter name="repartition: nonzeroImbalance"   type="double"  value="1.2"/>
-    </ParameterList> 
-
-    <ParameterList name="myRebSubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="A"                         type="string"  value="myBlockedRAPFact"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-    </ParameterList>    
-
-    <ParameterList name="myRebSubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="A"                         type="string"  value="myBlockedRAPFact"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-    </ParameterList>    
-
-    <ParameterList name="myInputCoordsFact">
-      <Parameter name="factory" type="string" value="FineLevelInputDataFactory"/>      
-      <Parameter name="Variable" type="string" value="CoOrdinates"/>  
-      <Parameter name="Variable type" type="string" value="MultiVector"/>  
-      <Parameter name="Fine level factory" type="string" value="NoFactory"/>  
-      <!--<Parameter name="Coarse level factory" type="string" value="myTransferCoordinatesFact"/>-->
-      <!--<Parameter name="Coarse level factory" type="string" value="NoFactory"/> TO BE DEFINED LATER -->
-    </ParameterList>        
-
-    <ParameterList name="myZoltanInterface1">
-      <Parameter name="factory"                             type="string" value="ZoltanInterface"/>
-      <Parameter name="A"                                   type="string" value="myRebSubBlockAFactory1"/>
-      <Parameter name="number of partitions"                type="string" value="myRepartitionHeuristicFactory"/>      
-    </ParameterList>
-
-    <ParameterList name="myZoltanInterface2">
-      <Parameter name="factory"                             type="string" value="ZoltanInterface"/>
-      <Parameter name="A"                                   type="string" value="myRebSubBlockAFactory2"/>
-      <Parameter name="number of partitions"                type="string" value="myRepartitionHeuristicFactory"/>      
-    </ParameterList>    
-
-    <ParameterList name="myRepartitionFactory1">
-      <Parameter name="factory" type="string" value="RepartitionFactory"/>
-      <Parameter name="A"                         type="string"  value="myRebSubBlockAFactory1"/>
-      <Parameter name="Partition"                 type="string"  value="myZoltanInterface1"/>
-      <Parameter name="number of partitions"      type="string"  value="myRepartitionHeuristicFactory"/>
-      <Parameter name="repartition: print partition distribution" type="bool" value="true"/>
-      <Parameter name="repartition: remap parts" type="bool" value="true"/>
-    </ParameterList>    
-
-    <ParameterList name="myRepartitionFactory2">
-      <Parameter name="factory" type="string" value="RepartitionFactory"/>
-      <Parameter name="A"                         type="string"  value="myRebSubBlockAFactory2"/>
-      <Parameter name="Partition"                 type="string"  value="myZoltanInterface2"/>
-      <Parameter name="number of partitions"      type="string"  value="myRepartitionHeuristicFactory"/>
-      <Parameter name="repartition: print partition distribution" type="bool" value="true"/>
-      <Parameter name="repartition: remap parts" type="bool" value="false"/>
-    </ParameterList>        
-
-    <ParameterList name="myRebFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/> <!-- non-rebalanced A00! -->
-      <Parameter name="Importer" type="string" value="myRepartitionFactory1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="number of partitions"      type="string"  value="myRepartitionHeuristicFactory"/>
-      <Parameter name="Coordinates"                         type="string" value="myInputCoordsFact"/>
-    </ParameterList>    
-
-    <ParameterList name="myRebSecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/> <!-- non-rebalanced A11! -->
-      <Parameter name="Importer" type="string" value="myRepartitionFactory2"/>
-      <Parameter name="number of partitions"      type="string"  value="myRepartitionHeuristicFactory"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="Coordinates"                         type="string" value="myInputCoordsFact"/>
-    </ParameterList>  
-
-    <ParameterList name="myRebBlockedPFact">
-      <Parameter name="factory" type="string" value="RebalanceBlockInterpolationFactory"/>
-      <Parameter name="A" type="string" value="myBlockedRAPFact"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myRebFirstGroup"/>
-      </ParameterList>
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="myRebSecondGroup"/>
-      </ParameterList>      
-    </ParameterList>   
-
-    <ParameterList name="myInputCoordsFactDeps">
-      <Parameter name="dependency for" type="string" value="myInputCoordsFact"/>
-      <Parameter name="Coarse level factory" type="string" value="myTransferCoordinatesFact"/>
-    </ParameterList>
-
-    <ParameterList name="myRebBlockedRFact">
-      <Parameter name="factory" type="string" value="RebalanceBlockRestrictionFactory"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <Parameter name="repartition: use subcommunicators" type="bool" value="false"/>
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myRebFirstGroup"/>
-      </ParameterList>
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="myRebSecondGroup"/>
-      </ParameterList>            
-    </ParameterList>     
-    
-    <ParameterList name="myRebBlockedAcFact">
-      <Parameter name="factory" type="string" value="RebalanceBlockAcFactory"/>
-      <Parameter name="A" type="string" value="myBlockedRAPFact"/>
-      <Parameter name="repartition: use subcommunicators" type="bool" value="false"/>
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myRebFirstGroup"/>
-      </ParameterList>
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="myRebSecondGroup"/>
-      </ParameterList>            
-    </ParameterList> 
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="4"/>
-    <Parameter name="coarse: max size"    type="int"      value="2500"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <Parameter name="P"                 type="string"   value="myRebBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myRebBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myRebBlockedAcFact"/>    
-      <Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>  
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
diff --git a/katoptron/Juelich/smoothers/heat_no_contact.xml b/katoptron/Juelich/smoothers/heat_no_contact.xml
deleted file mode 100644
index 7b114878..00000000
--- a/katoptron/Juelich/smoothers/heat_no_contact.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="5"/>
-  <Parameter name="smoother: type" type="string" value="RELAXATION"/>
-  <ParameterList name="smoother: params">
-    <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="5"/>
-    <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-  </ParameterList>
-  <Parameter name="coarse: type" type="string" value="Klu"/>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-  <Parameter name="tentative: calculate qr" type="bool" value="false"/>
-  <Parameter name="number of equations"   type="int"  value="4"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/Juelich/smoothers/heat_no_contact_mtgs.xml b/katoptron/Juelich/smoothers/heat_no_contact_mtgs.xml
deleted file mode 100644
index 6685c2d5..00000000
--- a/katoptron/Juelich/smoothers/heat_no_contact_mtgs.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="5"/>
-  <Parameter name="smoother: type" type="string" value="RELAXATION"/>
-  <ParameterList name="smoother: params">
-    <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="15"/>
-    <Parameter name="relaxation: damping factor" type="double" value="1.1724"/>
-    <Parameter name="relaxation: backward mode" type="bool" value="true"/>
-  </ParameterList>
-  <Parameter name="coarse: type" type="string" value="Klu"/>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-  <Parameter name="tentative: calculate qr" type="bool" value="false"/>
-  <Parameter name="number of equations"   type="int"  value="4"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/Juelich/smoothers/mySIM1.xml b/katoptron/Juelich/smoothers/mySIM1.xml
deleted file mode 100644
index 1c217e5c..00000000
--- a/katoptron/Juelich/smoothers/mySIM1.xml
+++ /dev/null
@@ -1,190 +0,0 @@
-<ParameterList name="MueLu">
-
-  <!-- Configuration of the Xpetra operator (fine level) -->
-  <ParameterList name="Matrix">
-    <Parameter name="number of equations"                         type="int" value="1"/> <!-- Number of PDE equations at each grid node.-->
-  </ParameterList>
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-
-    <!-- sub block factories -->
-    <!-- BLOCK 1 -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myDropFact1">
-      <Parameter name="factory" type="string" value="CoalesceDropFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-
-    <!-- BLOCK 2 -->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use old aggregates! -->
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="Graph" type="string" value="myDropFact1"/>
-    </ParameterList>
-
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/><!-- reuse aggs -->
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-	      <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-	      <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-    </ParameterList>
-
-    <!-- BLOCK SMOOTHERS -->
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="20"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="10"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.8"/>
-      </ParameterList>
-    </ParameterList>
-
-
-    <!-- Use Block GS: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="50"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"                            type="int"      value="3"/>
-    <Parameter name="coarse: max size"                      type="int"      value="10"/>
-    <Parameter name="verbosity"                             type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"                          type="int"      value="0"/>
-      <Parameter name="Smoother"                            type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"                        type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                                   type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                                   type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                                   type="string"   value="myBlockedRAPFact"/>
-    </ParameterList>
-
-  </ParameterList>
-</ParameterList>
diff --git a/katoptron/Juelich/smoothers/mySIM1_old.xml b/katoptron/Juelich/smoothers/mySIM1_old.xml
deleted file mode 100644
index dbfa1ac4..00000000
--- a/katoptron/Juelich/smoothers/mySIM1_old.xml
+++ /dev/null
@@ -1,190 +0,0 @@
-<ParameterList name="MueLu">
-
-  <!-- Configuration of the Xpetra operator (fine level) -->
-  <ParameterList name="Matrix">
-    <Parameter name="number of equations"                         type="int" value="1"/> <!-- Number of PDE equations at each grid node.-->
-  </ParameterList>
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-
-    <!-- sub block factories -->
-    <!-- BLOCK 1 -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myDropFact1">
-      <Parameter name="factory" type="string" value="CoalesceDropFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="0"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-
-    <!-- BLOCK 2 -->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3,1 }"/>
-      <Parameter name="Strided block id" type="int" value="1"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use old aggregates! -->
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="Graph" type="string" value="myDropFact1"/>
-    </ParameterList>
-
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-	<Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-	<Parameter name="P" type="string" value="myTentativePFact2"/>
-	<Parameter name="Aggregates" type="string" value="myAggFact1"/><!-- reuse aggs -->
-	<Parameter name="Nullspace" type="string" value="myNspFact2"/>
-	<Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-	<Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-	<Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-    </ParameterList>
-
-    <!-- BLOCK SMOOTHERS -->
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="20"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="10"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.8"/>
-      </ParameterList>
-    </ParameterList>
-
-
-    <!-- Use Block GS: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="50"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"                       type="int"      value="3"/>
-    <Parameter name="coarse: max size"                         type="int"      value="10"/>
-    <Parameter name="verbosity"                             type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"                          type="int"      value="0"/>
-      <Parameter name="Smoother"                            type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"                        type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                                   type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                                   type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                                   type="string"   value="myBlockedRAPFact"/>
-    </ParameterList>
-
-  </ParameterList>
-</ParameterList>
diff --git a/katoptron/Juelich/tests/M1_assembly_contact.py b/katoptron/Juelich/tests/M1_assembly_contact.py
deleted file mode 100644
index c5ac3c9e..00000000
--- a/katoptron/Juelich/tests/M1_assembly_contact.py
+++ /dev/null
@@ -1,241 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import numpy as np
-import shlex
-import subprocess
-import os
-import tarfile
-import glob
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-
-
-def evaluate_one_ensemble(ensemble_size,
-                          msh,
-                          comm,
-                          file_dir,
-                          randomVariable_1,
-                          randomVariable_2,
-                          randomVariable_3,
-                          scale_u,
-                          scale_T,
-                          option,
-                          baking=False):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    small_disk_footprint = False
-    use_block = True
-
-    comm, rank, siz = m.utilities.import_MPI()
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    if small_disk_footprint:
-        solverList['Write vtk files'] = False
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-    solverList[
-        "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-    solverList["Scaled Block 0"] = True
-    pbl = m.Problem(msh, comm)
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    geo_name = 'contact_mirror_assembly_mm.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir+'/../mesh', work_dir, comm, rank, size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-    solverList[
-        "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-    solverList["Scaled Block 0"] = True
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    pbl = m.Problem(msh, comm)
-
-    ensemble_size = 1
-
-    scale_u = 1000.
-    scale_T = 1.
-
-    scale_E = 1. / scale_u**2
-    scale_k = (scale_T / scale_u)
-    scale_hsource = 1. / scale_u**3
-    scale_hflux = 1. / scale_u**2
-    scale_d = scale_T
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size) * scale_E
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150 * scale_k
-    d_rhodium = 0.781E-05 * scale_d
-
-    E_WCu = 280E9 * np.ones(ensemble_size) * scale_E
-    nu_WCu = 0.298 * np.ones(ensemble_size)
-    k_WCu = 180 * scale_k
-    d_WCu = 0.88E-05 * scale_d
-
-    E_SS = 200E9 * np.ones(ensemble_size) * scale_E
-    nu_SS = 0.3 * np.ones(ensemble_size)
-    k_SS = 15.3 * scale_k
-    d_SS = 1.57E-05 * scale_d
-
-    E_CuCrZr = 118E9 * np.ones(ensemble_size) * scale_E
-    nu_CuCrZr = 0.33 * np.ones(ensemble_size)
-    k_CuCrZr = 345 * np.ones(ensemble_size) * scale_k
-    d_CuCrZr = 1.8E-05 * np.ones(ensemble_size) * scale_d
-
-    E_AlN = 320E9 * np.ones(ensemble_size) * scale_E
-    nu_AlN = 0.24 * np.ones(ensemble_size)
-    k_AlN = 180 * np.ones(ensemble_size) * scale_k
-    d_AlN = 0.48E-05 * scale_d
-
-    E_I718 = 183E9 * np.ones(ensemble_size) * scale_E
-    nu_I718 = 0.31 * np.ones(ensemble_size)
-    k_I718 = 15.8 * scale_k
-    d_I718 = 1.38E-05 * scale_d
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium, nu_rhodium, k_rhodium,
-             d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Medium(pbl, "Holder", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr, d_CuCrZr)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "AlN", E_AlN, nu_AlN,
-             180. * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 2 part 1", "AlN", E_AlN, nu_AlN,
-             180. * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 3 part 1", "AlN", E_AlN, nu_AlN,
-             180. * scale_k, d_AlN)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Dirichlet(pbl, "Holder x-y-z clamping point", "Clamped", 1, 0., 1, 0., 1,
-                0., 0, 0., ensemble_size)
-    m.Dirichlet(pbl, "Holder z clamping point", "Clamped", 0, 0., 0, 0., 1, 0.,
-                0, 0., ensemble_size)
-    m.Dirichlet(pbl, "Holder z-y clamping point", "Clamped", 0, 0., 1, 0., 1,
-                0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0., 0, 0., 0, 0., 1,
-                ((70. - T_ref) / scale_T), ensemble_size)
-
-    m.Dirichlet(pbl, "Mirror surface", "Clamped", 1, 0., 1, 0., 1, -10., 1,
-                ((70. - T_ref) / scale_T), ensemble_size)
-    '''
-    zero = np.zeros(ensemble_size)
-    hf = 20. / 0.0121 * np.ones(
-        ensemble_size) * scale_hflux  # 20 W / (0.0121 m^2)
-
-    m.Neumann(pbl, "Mirror surface", "heat fluxes", 0, zero, 0, zero, 0, zero,
-                1, hf, ensemble_size)
-
-    m.Source(pbl, "Mirror", "ihg", 20E6 * scale_hsource)
-    m.Source(pbl, "Substrate", "ihg", 2.45E6 * scale_hsource)
-
-    if material_option(option) == 1:
-        m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-    elif material_option(option) == 2:
-        m.Source(pbl, "Holder", "ihg", 0.6E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 1", "ihg", 0.3E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6 * scale_hsource)
-
-    m.Source(pbl, "Shaft 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Nut 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Washer 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 3", "ihg", 0.8E6 * scale_hsource)
-    '''
-
-    nThreads = u.Initialize_Kokkos()
-    slv = m.IterativeSolver(pbl, solverList, 4, ensemble_size)
-
-    slv.start()
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/tests/M1_assembly_fused.py b/katoptron/Juelich/tests/M1_assembly_fused.py
deleted file mode 100644
index 762dd765..00000000
--- a/katoptron/Juelich/tests/M1_assembly_fused.py
+++ /dev/null
@@ -1,559 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import numpy as np
-import shlex
-import subprocess
-import os
-import tarfile
-import glob
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-
-
-def irradiation(irradotion_index, p1=1., p3=1.95):
-    sigma_1_min = 0.1
-    sigma_1_max = 0.1
-    sigma_3_min = 0.05
-    sigma_3_max = 0.05
-
-    sigma_1 = sigma_1_min + (sigma_1_max - sigma_1_min) * irradotion_index
-    sigma_3 = sigma_3_min + (sigma_3_max - sigma_3_min) * irradotion_index
-
-    mode_min = 70
-    mode_max = 180
-
-    mode_1 = mode_min + (mode_max - mode_min) * irradotion_index**p1
-    mode_3 = mode_min + (mode_max - mode_min) * irradotion_index**p3
-
-    mu_1 = np.log(mode_1)  # + sigma_1**2
-    mu_3 = np.log(mode_3)  # + sigma_3**2
-
-    return sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3
-
-
-def random_case(N, id_case):
-    comm, rank, siz = m.utilities.import_MPI()
-    np.random.seed(42)
-
-    sigma = 0.15
-    mode = 180
-    mu = np.log(mode) + sigma**2
-
-    qMC = True
-
-    if id_case == 'qMC 1':
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = randomVariable_halton[0, :]
-        randomVariable_2 = randomVariable_halton[1, :]
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'MC 1':
-        randomVariable_1 = np.random.lognormal(mu, sigma, N)
-        randomVariable_2 = np.random.lognormal(mu, sigma, N)
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'qMC 2':
-        mode_min = 70
-        mode_max = 180
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_2 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_3 = mode_min + (mode_max -
-                                       mode_min) * halton_points[1, :]
-    elif id_case == 'qMC 3':
-        from scipy.stats import lognorm
-        mode_min = 70
-        mode_max = 180
-        n_rand = 3
-        halton_points = np.zeros((n_rand, N))
-
-        randomVariable_1 = np.zeros((N, ))
-        randomVariable_3 = np.zeros((N, ))
-
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-            sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3 = irradiation(
-                halton_points[0, i])
-            randomVariable_1[i] = lognorm.ppf(halton_points[1, i],
-                                              sigma_1,
-                                              scale=np.exp(mu_1))
-            randomVariable_3[i] = lognorm.ppf(halton_points[2, i],
-                                              sigma_3,
-                                              scale=np.exp(mu_3))
-
-        randomVariable_2 = randomVariable_1
-    elif id_case == 'Xiao':
-        file_dir = os.path.dirname(__file__)
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) +
-                         '.npz')
-        samples = loaded['samples']
-        N = samples.shape[0]
-        weights = loaded['weights']
-        randomVariable_1 = samples[0:N, 0]
-        randomVariable_3 = samples[0:N, 1]
-        randomVariable_2 = randomVariable_1
-
-    if rank == 0:
-        np.savetxt('randomVariable_1.txt', randomVariable_1)
-        np.savetxt('randomVariable_2.txt', randomVariable_2)
-        np.savetxt('randomVariable_3.txt', randomVariable_3)
-
-    return randomVariable_1, randomVariable_2, randomVariable_3
-
-
-def material_option(option):
-    return int(option[-1])
-
-
-def clamping_option(option):
-    return str(option[0])
-
-
-def scale_msh(msh, scale):
-    for n in msh.nodes:
-        for i in range(0, 3):
-            n.pos[i] = n.pos[i] * scale
-
-
-def tar_results(directory, filename, rank, all=False):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        if all:
-            for file in glob.glob('*'):
-                if file.endswith(".tar.gz"):
-                    print(file + ' is not included')
-                else:
-                    tf.add(file)
-        else:
-            for file in glob.glob('r*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/t*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/b*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.npz'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.out'):
-                tf.add(file)
-        tf.close()
-
-
-def evaluate_one_ensemble(ensemble_size, msh, comm, file_dir, randomVariable_1,
-                          randomVariable_2, randomVariable_3, scale_u,
-                          scale_T, option, baking=False):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    small_disk_footprint = False
-    use_block = True
-
-    comm, rank, siz = m.utilities.import_MPI()
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    if small_disk_footprint:
-        solverList['Write vtk files'] = False
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    if use_block:
-        if ensemble_size >= 16 and siz == 2 and clamping_option(option) == "A":
-            solverList["Num Blocks"] = 150
-        else:
-            solverList["Num Blocks"] = 200
-
-        solverList['Use blocked matrix'] = True
-
-        solverList['Use blocked status test'] = True
-        solverList['Use blocked status test: x'] = True
-        solverList['Use blocked status test: T'] = True
-        solverList['Use weighted status test'] = True
-
-        solverList['Ensemble Convergence Tolerance: T - relative'] = True
-        solverList['Ensemble Convergence Tolerance: x - relative'] = True
-        solverList[
-            'Ensemble Convergence Tolerance: T - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: x - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: weights - relative'] = False
-
-        solverList['Ensemble Convergence Tolerance'] = 10**(-5)
-        solverList['Ensemble Convergence Tolerance: x'] = 10**(-6)
-        solverList['Ensemble Convergence Tolerance: T'] = 10**(-7)
-        solverList['Ensemble Convergence Tolerance: weights'] = 10**(-3)
-
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/AMG_BGS_gs_gs.xml'
-    else:
-        solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-        solverList["Scaled Block 0"] = True
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in meters
-
-    scale_E = 1. / scale_u**2
-    scale_k = (scale_T / scale_u)
-    scale_hsource = 1. / scale_u**3
-    scale_hflux = 1. / scale_u**2
-    scale_d = scale_T
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size) * scale_E
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150 * scale_k
-    d_rhodium = 0.781E-05 * scale_d
-
-    E_WCu = 280E9 * np.ones(ensemble_size) * scale_E
-    nu_WCu = 0.298 * np.ones(ensemble_size)
-    k_WCu = 180 * scale_k
-    d_WCu = 0.88E-05 * scale_d
-
-    E_SS = 200E9 * np.ones(ensemble_size) * scale_E
-    nu_SS = 0.3 * np.ones(ensemble_size)
-    k_SS = 15.3 * scale_k
-    d_SS = 1.57E-05 * scale_d
-
-    E_CuCrZr = 118E9 * np.ones(ensemble_size) * scale_E
-    nu_CuCrZr = 0.33 * np.ones(ensemble_size)
-    k_CuCrZr = 345 * np.ones(ensemble_size) * scale_k
-    d_CuCrZr = 1.8E-05 * np.ones(ensemble_size) * scale_d
-
-    E_AlN = 320E9 * np.ones(ensemble_size) * scale_E
-    nu_AlN = 0.24 * np.ones(ensemble_size)
-    k_AlN = 180 * np.ones(ensemble_size) * scale_k
-    d_AlN = 0.48E-05 * np.ones(ensemble_size) * scale_d
-
-    E_I718 = 183E9 * np.ones(ensemble_size) * scale_E
-    nu_I718 = 0.31 * np.ones(ensemble_size)
-    k_I718 = 15.8 * scale_k
-    d_I718 = 1.38E-05 * scale_d
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium, nu_rhodium, k_rhodium,
-             d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if material_option(option) == 1:
-        m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-    elif material_option(option) == 2:
-        m.Medium(pbl, "Holder", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_1 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 2 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_2 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 3 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_3 * scale_k, d_AlN)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if clamping_option(option) == "A":
-        m.Dirichlet(pbl, "Holder z clamping", "Clamped", 0, 0., 0, 0., 1, 0.,
-                    0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x-y clamping", "Clamped", 1, 0., 1, 0., 0,
-                    0., 0, 0., ensemble_size)
-
-    elif clamping_option(option) == "B":
-        m.Dirichlet(pbl, "Holder x-y-z clamping point", "Clamped", 1, 0., 1,
-                    0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z clamping point", "Clamped", 0, 0., 0, 0.,
-                    1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z-y clamping point", "Clamped", 0, 0., 1, 0.,
-                    1, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0., 0, 0., 0, 0., 1,
-                ((70. - T_ref) / scale_T), ensemble_size)
-
-    if not baking:
-        zero = np.zeros(ensemble_size)
-        hf = 20. / 0.0121 * np.ones(
-            ensemble_size) * scale_hflux  # 20 W / (0.0121 m^2)
-
-        m.Neumann(pbl, "Mirror surface", "heat fluxes", 0, zero, 0, zero, 0, zero,
-                  1, hf, ensemble_size)
-
-        m.Source(pbl, "Mirror", "ihg", 20E6 * scale_hsource)
-        m.Source(pbl, "Substrate", "ihg", 2.45E6 * scale_hsource)
-
-        if material_option(option) == 1:
-            m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-        elif material_option(option) == 2:
-            m.Source(pbl, "Holder", "ihg", 0.6E6 * scale_hsource)
-
-        m.Source(pbl, "Spacer 1 part 1", "ihg", 0.3E6 * scale_hsource)
-        m.Source(pbl, "Spacer 2 part 1", "ihg", 0.3E6 * scale_hsource)
-        m.Source(pbl, "Spacer 3 part 1", "ihg", 0.3E6 * scale_hsource)
-
-        m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6 * scale_hsource)
-        m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6 * scale_hsource)
-        m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6 * scale_hsource)
-
-        m.Source(pbl, "Shaft 1", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Shaft 2", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Shaft 3", "ihg", 0.8E6 * scale_hsource)
-
-        m.Source(pbl, "Nut 1", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Nut 2", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Nut 3", "ihg", 0.8E6 * scale_hsource)
-
-        m.Source(pbl, "Washer 1", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Washer 2", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Washer 3", "ihg", 0.8E6 * scale_hsource)
-
-    if use_block:
-        m.Weight(pbl, "Mirror", 1, 0., 1, 0., 1, 1., 1, 0., ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    tag_name = "Mirror surface"
-    name_sol = "x_mm.txt"
-    DOFperNode = 4
-    which_dof = 2
-
-    x, y, z, tri, dz = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                    ensemble_size, name_sol)
-    which_dof = 3
-    x, y, z, tri, T = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                   ensemble_size, name_sol)
-    np.savez('mirror_data_' + str(rank), x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-
-    if rank == 0:
-        for i in range(1, siz):
-            data = comm.recv(source=i, tag=11)
-    else:
-        comm.send(1, dest=0, tag=11)
-
-    if small_disk_footprint:
-        if rank == 0:
-            os.remove(name_sol)
-
-    if rank == 0:
-        #OAX = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[0]
-        #OAY = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[1]
-        OAX, OAY = 0.0595, 0.017
-        OAX = (OAX / scale_u)
-        OAY = (OAY / scale_u)
-        #OAX, OAY = 0.0595, 0.017
-        for i in range(0, siz):
-            npzfile = np.load('mirror_data_' + str(i) + '.npz')
-            x_i = npzfile['x']
-            y_i = npzfile['y']
-            z_i = 0. * x_i
-            dz_i = npzfile['dz']
-            tri_i = npzfile['tri']
-            T_i = npzfile['T']
-            if i == 0:
-                x = x_i
-                y = y_i
-                z = z_i
-                dz = dz_i
-                tri = tri_i
-                T = T_i
-                nNodes = len(x)
-            else:
-                x = np.append(x, x_i, axis=0)
-                y = np.append(y, y_i, axis=0)
-                z = np.append(z, z_i, axis=0)
-                dz = np.append(dz, dz_i, axis=0)
-                tri = np.append(tri, tri_i + nNodes, axis=0)
-                T = np.append(T, T_i, axis=0)
-                nNodes = len(x)
-        x = (x / scale_u)
-        y = (y / scale_u)
-        z = (z / scale_u)
-        dz = (dz / scale_u)
-        T = T * scale_T + T_ref
-        np.savez('mirror_data_all', x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-        for i in range(0, ensemble_size):
-            optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-                x, y, z, tri, dz[:, i], "m", np.array([OAX, OAY]))
-            np.savez('mirror_optical_results_' + str(i),
-                     optical_coefficients=optical_coefficients,
-                     dz_residual=dz_residual)
-            np.savetxt('mirror_optical_results_' + str(i) + '.out',
-                       optical_coefficients)
-
-    if small_disk_footprint:
-        if rank == 0:
-            for i in range(0, siz):
-                os.remove('mirror_data_' + str(i) + '.npz')
-
-
-def evaluate_all_ensembles(ensemble_sizes, N, msh, comm, rank, size, file_dir,
-                           randomVariable1, randomVariable2, randomVariable3,
-                           scale_u, scale_T, option, baking=False):
-    """
-    This function loop over the ensemble sizes,
-    and the ensembles
-    """
-    for ensemble_size in ensemble_sizes:
-        directory = str(ensemble_size)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N_ensemble = int(np.floor(N // ensemble_size))
-
-        ensemble_index_min = 0
-        for ensemble_index in range(ensemble_index_min, N_ensemble):
-            directory = str(ensemble_index)
-            u.mkdir_MPI(option, comm, rank, size)
-            os.chdir(option)
-
-            ensemble_index_start = ensemble_index * ensemble_size
-            ensemble_index_end = ensemble_index_start + ensemble_size
-
-            randomVariable_cur1 = randomVariable1[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur2 = randomVariable2[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur3 = randomVariable3[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            evaluate_one_ensemble(ensemble_size, msh, comm, file_dir,
-                                  randomVariable_cur1, randomVariable_cur2,
-                                  randomVariable_cur3, scale_u, scale_T, option, baking)
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    directory = 'MPI_' + str(size)
-    u.mkdir_MPI(option, comm, rank, size)
-    os.chdir(option)
-
-    mesh_name = 'fused_mirror_assembly_mm_part_' + str(size) + '.msh'
-
-    msh = gmsh.MeshLoader(mesh_name, work_dir).execute(myrank=rank)
-
-    scale_u_1 = 1000.
-    scale_u_2 = 1.
-    scale_u = scale_u_1 * scale_u_2
-    scale_T = 1.
-
-    scale_msh(msh, scale_u_2)
-
-    randomVariable_1 = np.array([180., 30.])
-    randomVariable_2 = np.array([180., 30.])
-    randomVariable_3 = np.array([180., 30.])
-
-    ensemble_size = int(os.getenv('ensemble_size', 1))
-
-    ensemble_sizes = [ensemble_size]
-
-    N = 2
-
-    option = 'A2'
-
-    directory = 'A2_baking'
-    u.mkdir_MPI(option, comm, rank, size)
-    os.chdir(option)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, rank, size, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=True)
-    os.chdir('..')
-
-    directory = 'A2'
-    u.mkdir_MPI(option, comm, rank, size)
-    os.chdir(option)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=False)
-    os.chdir('..')
-
-    option = 'B2'
-
-    directory = 'B2_baking'
-    u.mkdir_MPI(option, comm, rank, size)
-    os.chdir(option)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=True)
-    os.chdir('..')
-
-    directory = 'B2'
-    u.mkdir_MPI(option, comm, rank, size)
-    os.chdir(option)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=False)
-    os.chdir('..')
-
-    os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/tests/M1_assembly_fused_MC_k.py b/katoptron/Juelich/tests/M1_assembly_fused_MC_k.py
deleted file mode 100644
index 185b585c..00000000
--- a/katoptron/Juelich/tests/M1_assembly_fused_MC_k.py
+++ /dev/null
@@ -1,545 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import numpy as np
-import shlex
-import subprocess
-import os
-import tarfile
-import glob
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-
-
-def irradiation(irradotion_index, p1=1., p3=1.95):
-    sigma_1_min = 0.1
-    sigma_1_max = 0.1
-    sigma_3_min = 0.05
-    sigma_3_max = 0.05
-
-    sigma_1 = sigma_1_min + (sigma_1_max - sigma_1_min) * irradotion_index
-    sigma_3 = sigma_3_min + (sigma_3_max - sigma_3_min) * irradotion_index
-
-    mode_min = 70
-    mode_max = 180
-
-    mode_1 = mode_min + (mode_max - mode_min) * irradotion_index**p1
-    mode_3 = mode_min + (mode_max - mode_min) * irradotion_index**p3
-
-    mu_1 = np.log(mode_1)  # + sigma_1**2
-    mu_3 = np.log(mode_3)  # + sigma_3**2
-
-    return sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3
-
-
-def random_case(N, id_case):
-    comm, rank, siz = m.utilities.import_MPI()
-    np.random.seed(42)
-
-    sigma = 0.15
-    mode = 180
-    mu = np.log(mode) + sigma**2
-
-    qMC = True
-
-    if id_case == 'qMC 1':
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = randomVariable_halton[0, :]
-        randomVariable_2 = randomVariable_halton[1, :]
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'MC 1':
-        randomVariable_1 = np.random.lognormal(mu, sigma, N)
-        randomVariable_2 = np.random.lognormal(mu, sigma, N)
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'qMC 2':
-        mode_min = 70
-        mode_max = 180
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_2 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_3 = mode_min + (mode_max -
-                                       mode_min) * halton_points[1, :]
-    elif id_case == 'qMC 3':
-        from scipy.stats import lognorm
-        mode_min = 70
-        mode_max = 180
-        n_rand = 3
-        halton_points = np.zeros((n_rand, N))
-
-        randomVariable_1 = np.zeros((N, ))
-        randomVariable_3 = np.zeros((N, ))
-
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-            sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3 = irradiation(
-                halton_points[0, i])
-            randomVariable_1[i] = lognorm.ppf(halton_points[1, i],
-                                              sigma_1,
-                                              scale=np.exp(mu_1))
-            randomVariable_3[i] = lognorm.ppf(halton_points[2, i],
-                                              sigma_3,
-                                              scale=np.exp(mu_3))
-
-        randomVariable_2 = randomVariable_1
-    elif id_case == 'Xiao':
-        file_dir = os.path.dirname(__file__)
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) +
-                         '.npz')
-        samples = loaded['samples']
-        N = samples.shape[0]
-        weights = loaded['weights']
-        randomVariable_1 = samples[0:N, 0]
-        randomVariable_3 = samples[0:N, 1]
-        randomVariable_2 = randomVariable_1
-
-    if rank == 0:
-        np.savetxt('randomVariable_1.txt', randomVariable_1)
-        np.savetxt('randomVariable_2.txt', randomVariable_2)
-        np.savetxt('randomVariable_3.txt', randomVariable_3)
-
-    return randomVariable_1, randomVariable_2, randomVariable_3
-
-
-def material_option(option):
-    return int(option[-1])
-
-
-def clamping_option(option):
-    return str(option[0])
-
-
-def scale_msh(msh, scale):
-    for n in msh.nodes:
-        for i in range(0, 3):
-            n.pos[i] = n.pos[i] * scale
-
-
-def tar_results(directory, filename, rank, all=False):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        if all:
-            for file in glob.glob('*'):
-                if file.endswith(".tar.gz"):
-                    print(file + ' is not included')
-                else:
-                    tf.add(file)
-        else:
-            for file in glob.glob('r*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/t*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/b*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.npz'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.out'):
-                tf.add(file)
-        tf.close()
-
-
-def evaluate_one_ensemble(ensemble_size, msh, comm, file_dir, randomVariable_1,
-                          randomVariable_2, randomVariable_3, scale_u,
-                          scale_T):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    small_disk_footprint = True
-    use_block = True
-
-    comm, rank, siz = m.utilities.import_MPI()
-
-    option = 'A2'
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    if small_disk_footprint:
-        solverList['Write vtk files'] = False
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    if use_block:
-        if ensemble_size >= 16 and siz == 2 and clamping_option(option) == "A":
-            solverList["Num Blocks"] = 150
-        else:
-            solverList["Num Blocks"] = 200
-
-        solverList['Use blocked matrix'] = True
-
-        solverList['Use blocked status test'] = True
-        solverList['Use blocked status test: x'] = True
-        solverList['Use blocked status test: T'] = True
-        solverList['Use weighted status test'] = True
-
-        solverList['Ensemble Convergence Tolerance: T - relative'] = True
-        solverList['Ensemble Convergence Tolerance: x - relative'] = True
-        solverList[
-            'Ensemble Convergence Tolerance: T - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: x - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: weights - relative'] = False
-
-        solverList['Ensemble Convergence Tolerance'] = 10**(-5)
-        solverList['Ensemble Convergence Tolerance: x'] = 10**(-6)
-        solverList['Ensemble Convergence Tolerance: T'] = 10**(-7)
-        solverList['Ensemble Convergence Tolerance: weights'] = 10**(-3)
-
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/AMG_BGS_gs_gs.xml'
-    else:
-        solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-        solverList["Scaled Block 0"] = True
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in meters
-
-    scale_E = 1. / scale_u**2
-    scale_k = (scale_T / scale_u)
-    scale_hsource = 1. / scale_u**3
-    scale_hflux = 1. / scale_u**2
-    scale_d = scale_T
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size) * scale_E
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150 * scale_k
-    d_rhodium = 0.781E-05 * scale_d
-
-    E_WCu = 280E9 * np.ones(ensemble_size) * scale_E
-    nu_WCu = 0.298 * np.ones(ensemble_size)
-    k_WCu = 180 * scale_k
-    d_WCu = 0.88E-05 * scale_d
-
-    E_SS = 200E9 * np.ones(ensemble_size) * scale_E
-    nu_SS = 0.3 * np.ones(ensemble_size)
-    k_SS = 15.3 * scale_k
-    d_SS = 1.57E-05 * scale_d
-
-    E_CuCrZr = 118E9 * np.ones(ensemble_size) * scale_E
-    nu_CuCrZr = 0.33 * np.ones(ensemble_size)
-    k_CuCrZr = 345 * np.ones(ensemble_size) * scale_k
-    d_CuCrZr = 1.8E-05 * np.ones(ensemble_size) * scale_d
-
-    E_AlN = 320E9 * np.ones(ensemble_size) * scale_E
-    nu_AlN = 0.24 * np.ones(ensemble_size)
-    k_AlN = 180 * np.ones(ensemble_size) * scale_k
-    d_AlN = 0.48E-05 * np.ones(ensemble_size) * scale_d
-
-    E_I718 = 183E9 * np.ones(ensemble_size) * scale_E
-    nu_I718 = 0.31 * np.ones(ensemble_size)
-    k_I718 = 15.8 * scale_k
-    d_I718 = 1.38E-05 * scale_d
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium, nu_rhodium, k_rhodium,
-             d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if material_option(option) == 1:
-        m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-    elif material_option(option) == 2:
-        m.Medium(pbl, "Holder", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_1 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 2 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_2 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 3 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_3 * scale_k, d_AlN)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if clamping_option(option) == "A":
-        m.Dirichlet(pbl, "Holder z clamping", "Clamped", 0, 0., 0, 0., 1, 0.,
-                    0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x-y clamping", "Clamped", 1, 0., 1, 0., 0,
-                    0., 0, 0., ensemble_size)
-
-    elif clamping_option(option) == "B":
-        m.Dirichlet(pbl, "Holder x-y-z clamping point", "Clamped", 1, 0., 1,
-                    0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z clamping point", "Clamped", 0, 0., 0, 0.,
-                    1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z-y clamping point", "Clamped", 0, 0., 1, 0.,
-                    1, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0., 0, 0., 0, 0., 1,
-                ((70. - T_ref) / scale_T), ensemble_size)
-
-    zero = np.zeros(ensemble_size)
-    hf = 20. / 0.0121 * np.ones(
-        ensemble_size) * scale_hflux  # 20 W / (0.0121 m^2)
-
-    m.Neumann(pbl, "Mirror surface", "heat fluxes", 0, zero, 0, zero, 0, zero,
-              1, hf, ensemble_size)
-
-    m.Source(pbl, "Mirror", "ihg", 20E6 * scale_hsource)
-    m.Source(pbl, "Substrate", "ihg", 2.45E6 * scale_hsource)
-
-    if material_option(option) == 1:
-        m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-    elif material_option(option) == 2:
-        m.Source(pbl, "Holder", "ihg", 0.6E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 1", "ihg", 0.3E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6 * scale_hsource)
-
-    m.Source(pbl, "Shaft 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Nut 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Washer 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 3", "ihg", 0.8E6 * scale_hsource)
-
-    if use_block:
-        m.Weight(pbl, "Mirror", 1, 0., 1, 0., 1, 1., 1, 0., ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    tag_name = "Mirror surface"
-    name_sol = "x_mm.txt"
-    DOFperNode = 4
-    which_dof = 2
-
-    x, y, z, tri, dz = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                    ensemble_size, name_sol)
-    which_dof = 3
-    x, y, z, tri, T = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                   ensemble_size, name_sol)
-    np.savez('mirror_data_' + str(rank), x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-
-    if rank == 0:
-        for i in range(1, siz):
-            data = comm.recv(source=i, tag=11)
-    else:
-        comm.send(1, dest=0, tag=11)
-
-    if small_disk_footprint:
-        if rank == 0:
-            os.remove(name_sol)
-
-    if rank == 0:
-        #OAX = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[0]
-        #OAY = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[1]
-        OAX, OAY = 0.0595, 0.017
-        OAX = (OAX / scale_u)
-        OAY = (OAY / scale_u)
-        #OAX, OAY = 0.0595, 0.017
-        for i in range(0, siz):
-            npzfile = np.load('mirror_data_' + str(i) + '.npz')
-            x_i = npzfile['x']
-            y_i = npzfile['y']
-            z_i = 0. * x_i
-            dz_i = npzfile['dz']
-            tri_i = npzfile['tri']
-            T_i = npzfile['T']
-            if i == 0:
-                x = x_i
-                y = y_i
-                z = z_i
-                dz = dz_i
-                tri = tri_i
-                T = T_i
-                nNodes = len(x)
-            else:
-                x = np.append(x, x_i, axis=0)
-                y = np.append(y, y_i, axis=0)
-                z = np.append(z, z_i, axis=0)
-                dz = np.append(dz, dz_i, axis=0)
-                tri = np.append(tri, tri_i + nNodes, axis=0)
-                T = np.append(T, T_i, axis=0)
-                nNodes = len(x)
-        x = (x / scale_u)
-        y = (y / scale_u)
-        z = (z / scale_u)
-        dz = (dz / scale_u)
-        T = T * scale_T + T_ref
-        np.savez('mirror_data_all', x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-        for i in range(0, ensemble_size):
-            optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-                x, y, z, tri, dz[:, i], "m", np.array([OAX, OAY]))
-            np.savez('mirror_optical_results_' + str(i),
-                     optical_coefficients=optical_coefficients,
-                     dz_residual=dz_residual)
-            np.savetxt('mirror_optical_results_' + str(i) + '.out',
-                       optical_coefficients)
-
-    if small_disk_footprint:
-        if rank == 0:
-            for i in range(0, siz):
-                os.remove('mirror_data_' + str(i) + '.npz')
-
-
-def evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable1, randomVariable2, randomVariable3,
-                           scale_u, scale_T):
-    """
-    This function loop over the ensemble sizes,
-    and the ensembles
-    """
-    comm, rank, size = m.utilities.import_MPI()
-    for ensemble_size in ensemble_sizes:
-        directory = str(ensemble_size)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N_ensemble = int(np.floor(N // ensemble_size))
-
-        ensemble_index_min = 0
-        for ensemble_index in range(ensemble_index_min, N_ensemble):
-            directory = str(ensemble_index)
-            u.mkdir_MPI(directory, comm, rank, size)
-            os.chdir(directory)
-
-            ensemble_index_start = ensemble_index * ensemble_size
-            ensemble_index_end = ensemble_index_start + ensemble_size
-
-            randomVariable_cur1 = randomVariable1[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur2 = randomVariable2[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur3 = randomVariable3[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            evaluate_one_ensemble(ensemble_size, msh, comm, file_dir,
-                                  randomVariable_cur1, randomVariable_cur2,
-                                  randomVariable_cur3, scale_u, scale_T)
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    directory = 'MPI_' + str(siz)
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-    mesh_name = 'fused_mirror_assembly_mm_part_' + str(siz) + '.msh'
-
-    msh = gmsh.MeshLoader(mesh_name, work_dir).execute(myrank=rank)
-
-    # sigma = 0.05
-    # Scaled = True, tol = 10**(-8), scale_T=1
-    #       1 -> 55   (m)           -> smooth T QoI unsmooth u QoI
-    #    1000 -> 125  (mm)          -> smooth T QoI unsmooth u QoI
-    #  10 000 -> 126  (100 \mu m)   -> smooth T QoI nearly smooth u QoI
-    #  50 000 -> 167  (20 \mu m)    -> smooth T QoI nearly smooth u QoI
-    # 100 000 -> 175  (10 \mu m)    -> smooth QoI (OK)
-    # Scaled = False, tol = 10**(-8), scale_T=1
-    #       1 -> 222   (m)          -> Solver has experienced a loss of accuracy!
-    #    1000 -> 222  (mm)
-    #  10 000 ->   (100 \mu m)
-    # 100 000 -> 222  (10 \mu m)    -> No loss of accuracy
-    # Scaled = True, tol = 10**(-8),
-    #  scale_u = 1000.  and scale_T = 1.   -> 125  (KO)
-    #  scale_u = 1000.  and scale_T = 100. -> 174  nearly smooth
-    #  scale_u = 10000. and scale_T = 1.   -> 126  (KO)
-    #  scale_u = 10000. and scale_T = 100. -> 204  (OK)
-    #  scale_u = 10000. and scale_T = 400. -> 217  (OK)
-
-    scale_u_1 = 1000.
-    scale_u_2 = 1.
-    scale_u = scale_u_1 * scale_u_2
-    scale_T = 1.
-
-    scale_msh(msh, scale_u_2)
-
-    N = 20
-    id_case = 'Xiao'
-
-    randomVariable_1, randomVariable_2, randomVariable_3 = random_case(
-        N, id_case)
-
-    ensemble_size = int(os.getenv('ensemble_size', 1))
-
-    ensemble_sizes = [ensemble_size]
-
-    N = len(randomVariable_1)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T)
-
-    os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/tests/M1_assembly_fused_MC_k_order.py b/katoptron/Juelich/tests/M1_assembly_fused_MC_k_order.py
deleted file mode 100644
index 565e6e0a..00000000
--- a/katoptron/Juelich/tests/M1_assembly_fused_MC_k_order.py
+++ /dev/null
@@ -1,554 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import numpy as np
-import shlex
-import subprocess
-import os
-import tarfile
-import glob
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-
-
-def irradiation(irradotion_index, p1=1., p3=1.95):
-    sigma_1_min = 0.1
-    sigma_1_max = 0.1
-    sigma_3_min = 0.05
-    sigma_3_max = 0.05
-
-    sigma_1 = sigma_1_min + (sigma_1_max - sigma_1_min) * irradotion_index
-    sigma_3 = sigma_3_min + (sigma_3_max - sigma_3_min) * irradotion_index
-
-    mode_min = 70
-    mode_max = 180
-
-    mode_1 = mode_min + (mode_max - mode_min) * irradotion_index**p1
-    mode_3 = mode_min + (mode_max - mode_min) * irradotion_index**p3
-
-    mu_1 = np.log(mode_1)  # + sigma_1**2
-    mu_3 = np.log(mode_3)  # + sigma_3**2
-
-    return sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3
-
-
-def random_case(N, id_case):
-    comm, rank, siz = m.utilities.import_MPI()
-    np.random.seed(42)
-
-    sigma = 0.15
-    mode = 180
-    mu = np.log(mode) + sigma**2
-
-    qMC = True
-
-    if id_case == 'qMC 1':
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = randomVariable_halton[0, :]
-        randomVariable_2 = randomVariable_halton[1, :]
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'MC 1':
-        randomVariable_1 = np.random.lognormal(mu, sigma, N)
-        randomVariable_2 = np.random.lognormal(mu, sigma, N)
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'qMC 2':
-        mode_min = 70
-        mode_max = 180
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_2 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_3 = mode_min + (mode_max -
-                                       mode_min) * halton_points[1, :]
-    elif id_case == 'qMC 3':
-        from scipy.stats import lognorm
-        mode_min = 70
-        mode_max = 180
-        n_rand = 3
-        halton_points = np.zeros((n_rand, N))
-
-        randomVariable_1 = np.zeros((N, ))
-        randomVariable_3 = np.zeros((N, ))
-
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-            sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3 = irradiation(
-                halton_points[0, i])
-            randomVariable_1[i] = lognorm.ppf(halton_points[1, i],
-                                              sigma_1,
-                                              scale=np.exp(mu_1))
-            randomVariable_3[i] = lognorm.ppf(halton_points[2, i],
-                                              sigma_3,
-                                              scale=np.exp(mu_3))
-
-        randomVariable_2 = randomVariable_1
-    elif id_case == 'Xiao':
-        file_dir = os.path.dirname(__file__)
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) +
-                         '.npz')
-        samples = loaded['samples']
-        N = samples.shape[0]
-        weights = loaded['weights']
-        randomVariable_1 = samples[0:N, 0]
-        randomVariable_3 = samples[0:N, 1]
-        randomVariable_2 = randomVariable_1
-
-    if rank == 0:
-        np.savetxt('randomVariable_1.txt', randomVariable_1)
-        np.savetxt('randomVariable_2.txt', randomVariable_2)
-        np.savetxt('randomVariable_3.txt', randomVariable_3)
-
-    return randomVariable_1, randomVariable_2, randomVariable_3
-
-
-def material_option(option):
-    return int(option[-1])
-
-
-def clamping_option(option):
-    return str(option[0])
-
-
-def scale_msh(msh, scale):
-    for n in msh.nodes:
-        for i in range(0, 3):
-            n.pos[i] = n.pos[i] * scale
-
-
-def tar_results(directory, filename, rank, all=False):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        if all:
-            for file in glob.glob('*'):
-                if file.endswith(".tar.gz"):
-                    print(file + ' is not included')
-                else:
-                    tf.add(file)
-        else:
-            for file in glob.glob('r*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/t*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/b*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.npz'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.out'):
-                tf.add(file)
-        tf.close()
-
-
-def evaluate_one_ensemble(ensemble_size, msh, comm, file_dir, randomVariable_1,
-                          randomVariable_2, randomVariable_3, scale_u,
-                          scale_T):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    small_disk_footprint = True
-    use_block = True
-
-    comm, rank, siz = m.utilities.import_MPI()
-
-    option = 'A2'
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList["Num Blocks"] = 2
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    if small_disk_footprint:
-        solverList['Write vtk files'] = False
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    solverList['Write matrix and vectors'] = False
-
-    if use_block:
-        if ensemble_size >= 16 and siz == 2 and clamping_option(option) == "A":
-            solverList["Num Blocks"] = 150
-        else:
-            solverList["Num Blocks"] = 200
-
-        solverList['Use blocked matrix'] = True
-
-        solverList['Use blocked status test'] = True
-        solverList['Use blocked status test: x'] = True
-        solverList['Use blocked status test: T'] = True
-        solverList['Use weighted status test'] = True
-
-        solverList['Ensemble Convergence Tolerance: T - relative'] = True
-        solverList['Ensemble Convergence Tolerance: x - relative'] = True
-        solverList[
-            'Ensemble Convergence Tolerance: T - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: x - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: weights - relative'] = False
-
-        solverList['Ensemble Convergence Tolerance'] = 10**(-5)
-        solverList['Ensemble Convergence Tolerance: x'] = 10**(-6)
-        solverList['Ensemble Convergence Tolerance: T'] = 10**(-7)
-        solverList['Ensemble Convergence Tolerance: weights'] = 10**(-3)
-
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/AMG_BGS_gs_gs.xml'
-    else:
-        solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-        solverList["Scaled Block 0"] = True
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in meters
-
-    scale_E = 1. / scale_u**2
-    scale_k = (scale_T / scale_u)
-    scale_hsource = 1. / scale_u**3
-    scale_hflux = 1. / scale_u**2
-    scale_d = scale_T
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size) * scale_E
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150 * scale_k
-    d_rhodium = 0.781E-05 * scale_d
-
-    E_WCu = 280E9 * np.ones(ensemble_size) * scale_E
-    nu_WCu = 0.298 * np.ones(ensemble_size)
-    k_WCu = 180 * scale_k
-    d_WCu = 0.88E-05 * scale_d
-
-    E_SS = 200E9 * np.ones(ensemble_size) * scale_E
-    nu_SS = 0.3 * np.ones(ensemble_size)
-    k_SS = 15.3 * scale_k
-    d_SS = 1.57E-05 * scale_d
-
-    E_CuCrZr = 118E9 * np.ones(ensemble_size) * scale_E
-    nu_CuCrZr = 0.33 * np.ones(ensemble_size)
-    k_CuCrZr = 345 * np.ones(ensemble_size) * scale_k
-    d_CuCrZr = 1.8E-05 * np.ones(ensemble_size) * scale_d
-
-    E_AlN = 320E9 * np.ones(ensemble_size) * scale_E
-    nu_AlN = 0.24 * np.ones(ensemble_size)
-    k_AlN = 180 * np.ones(ensemble_size) * scale_k
-    d_AlN = 0.48E-05 * np.ones(ensemble_size) * scale_d
-
-    E_I718 = 183E9 * np.ones(ensemble_size) * scale_E
-    nu_I718 = 0.31 * np.ones(ensemble_size)
-    k_I718 = 15.8 * scale_k
-    d_I718 = 1.38E-05 * scale_d
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium, nu_rhodium, k_rhodium,
-             d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if material_option(option) == 1:
-        m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-    elif material_option(option) == 2:
-        m.Medium(pbl, "Holder", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_1 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 2 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_2 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 3 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_3 * scale_k, d_AlN)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if clamping_option(option) == "A":
-        m.Dirichlet(pbl, "Holder z clamping", "Clamped", 0, 0., 0, 0., 1, 0.,
-                    0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x-y clamping", "Clamped", 1, 0., 1, 0., 0,
-                    0., 0, 0., ensemble_size)
-
-    elif clamping_option(option) == "B":
-        m.Dirichlet(pbl, "Holder x-y-z clamping point", "Clamped", 1, 0., 1,
-                    0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z clamping point", "Clamped", 0, 0., 0, 0.,
-                    1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z-y clamping point", "Clamped", 0, 0., 1, 0.,
-                    1, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0., 0, 0., 0, 0., 1,
-                ((70. - T_ref) / scale_T), ensemble_size)
-
-    zero = np.zeros(ensemble_size)
-    hf = 20. / 0.0121 * np.ones(
-        ensemble_size) * scale_hflux  # 20 W / (0.0121 m^2)
-
-    m.Neumann(pbl, "Mirror surface", "heat fluxes", 0, zero, 0, zero, 0, zero,
-              1, hf, ensemble_size)
-
-    m.Source(pbl, "Mirror", "ihg", 20E6 * scale_hsource)
-    m.Source(pbl, "Substrate", "ihg", 2.45E6 * scale_hsource)
-
-    if material_option(option) == 1:
-        m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-    elif material_option(option) == 2:
-        m.Source(pbl, "Holder", "ihg", 0.6E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 1", "ihg", 0.3E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6 * scale_hsource)
-
-    m.Source(pbl, "Shaft 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Nut 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Washer 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 3", "ihg", 0.8E6 * scale_hsource)
-
-    if use_block:
-        m.Weight(pbl, "Mirror", 1, 0., 1, 0., 1, 1., 1, 0., ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    tag_name = "Mirror surface"
-    name_sol = "x_mm.txt"
-    DOFperNode = 4
-    which_dof = 2
-
-    x, y, z, tri, dz = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                    ensemble_size, name_sol)
-    which_dof = 3
-    x, y, z, tri, T = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                   ensemble_size, name_sol)
-    np.savez('mirror_data_' + str(rank), x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-
-    if rank == 0:
-        for i in range(1, siz):
-            data = comm.recv(source=i, tag=11)
-    else:
-        comm.send(1, dest=0, tag=11)
-
-    if small_disk_footprint:
-        if rank == 0:
-            os.remove(name_sol)
-
-    if rank == 0:
-        #OAX = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[0]
-        #OAY = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[1]
-        OAX, OAY = 0.0595, 0.017
-        OAX = (OAX / scale_u)
-        OAY = (OAY / scale_u)
-        #OAX, OAY = 0.0595, 0.017
-        for i in range(0, siz):
-            npzfile = np.load('mirror_data_' + str(i) + '.npz')
-            x_i = npzfile['x']
-            y_i = npzfile['y']
-            z_i = 0. * x_i
-            dz_i = npzfile['dz']
-            tri_i = npzfile['tri']
-            T_i = npzfile['T']
-            if i == 0:
-                x = x_i
-                y = y_i
-                z = z_i
-                dz = dz_i
-                tri = tri_i
-                T = T_i
-                nNodes = len(x)
-            else:
-                x = np.append(x, x_i, axis=0)
-                y = np.append(y, y_i, axis=0)
-                z = np.append(z, z_i, axis=0)
-                dz = np.append(dz, dz_i, axis=0)
-                tri = np.append(tri, tri_i + nNodes, axis=0)
-                T = np.append(T, T_i, axis=0)
-                nNodes = len(x)
-        x = (x / scale_u)
-        y = (y / scale_u)
-        z = (z / scale_u)
-        dz = (dz / scale_u)
-        T = T * scale_T + T_ref
-        np.savez('mirror_data_all', x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-        for i in range(0, ensemble_size):
-            optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-                x, y, z, tri, dz[:, i], "m", np.array([OAX, OAY]))
-            np.savez('mirror_optical_results_' + str(i),
-                     optical_coefficients=optical_coefficients,
-                     dz_residual=dz_residual)
-            np.savetxt('mirror_optical_results_' + str(i) + '.out',
-                       optical_coefficients)
-
-    if small_disk_footprint:
-        if rank == 0:
-            for i in range(0, siz):
-                os.remove('mirror_data_' + str(i) + '.npz')
-
-
-def evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable1, randomVariable2, randomVariable3,
-                           scale_u, scale_T):
-    """
-    This function loop over the ensemble sizes,
-    and the ensembles
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    for ensemble_size in ensemble_sizes:
-        directory = str(ensemble_size)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N_ensemble = int(np.floor(N // ensemble_size))
-
-        ensemble_index_min = 0
-        for ensemble_index in range(ensemble_index_min, N_ensemble):
-            directory = str(ensemble_index)
-            u.mkdir_MPI(directory, comm, rank, size)
-            os.chdir(directory)
-
-            ensemble_index_start = ensemble_index * ensemble_size
-            ensemble_index_end = ensemble_index_start + ensemble_size
-
-            randomVariable_cur1 = randomVariable1[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur2 = randomVariable2[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur3 = randomVariable3[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            evaluate_one_ensemble(ensemble_size, msh, comm, file_dir,
-                                  randomVariable_cur1, randomVariable_cur2,
-                                  randomVariable_cur3, scale_u, scale_T)
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    mesh_name = 'fused_mirror_assembly_mm_part_' + str(siz) + '.msh'
-
-    msh = gmsh.MeshLoader(mesh_name, work_dir).execute(myrank=rank)
-
-    # sigma = 0.05
-    # Scaled = True, tol = 10**(-8), scale_T=1
-    #       1 -> 55   (m)           -> smooth T QoI unsmooth u QoI
-    #    1000 -> 125  (mm)          -> smooth T QoI unsmooth u QoI
-    #  10 000 -> 126  (100 \mu m)   -> smooth T QoI nearly smooth u QoI
-    #  50 000 -> 167  (20 \mu m)    -> smooth T QoI nearly smooth u QoI
-    # 100 000 -> 175  (10 \mu m)    -> smooth QoI (OK)
-    # Scaled = False, tol = 10**(-8), scale_T=1
-    #       1 -> 222   (m)          -> Solver has experienced a loss of accuracy!
-    #    1000 -> 222  (mm)
-    #  10 000 ->   (100 \mu m)
-    # 100 000 -> 222  (10 \mu m)    -> No loss of accuracy
-    # Scaled = True, tol = 10**(-8),
-    #  scale_u = 1000.  and scale_T = 1.   -> 125  (KO)
-    #  scale_u = 1000.  and scale_T = 100. -> 174  nearly smooth
-    #  scale_u = 10000. and scale_T = 1.   -> 126  (KO)
-    #  scale_u = 10000. and scale_T = 100. -> 204  (OK)
-    #  scale_u = 10000. and scale_T = 400. -> 217  (OK)
-
-    scale_u_1 = 1000.
-    scale_u_2 = 1.
-    scale_u = scale_u_1*scale_u_2
-    scale_T = 1.
-
-    # Convert mm to m
-    #scale_msh(msh, 0.001)
-    scale_msh(msh, scale_u_2)
-
-    orders = np.arange(2, 46, 2)
-
-    for order in orders:
-        id_case = 'Xiao'
-        directory = 'order_'+str(order)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N = order
-        randomVariable_1, randomVariable_2, randomVariable_3 = random_case(
-            N, id_case)
-
-        N = len(randomVariable_1)
-
-        ensemble_size = int(os.getenv('ensemble_size', 1))
-        ensemble_sizes = [ensemble_size]
-
-        evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                               randomVariable_1, randomVariable_2,
-                               randomVariable_3, scale_u, scale_T)
-        os.chdir('..')
-    #tar_results(work_dir, 'QoI_results', rank)
-    #tar_results(work_dir, 'all_results', rank, True)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/tests/M1_assembly_fused_all.py b/katoptron/Juelich/tests/M1_assembly_fused_all.py
deleted file mode 100644
index 1331f463..00000000
--- a/katoptron/Juelich/tests/M1_assembly_fused_all.py
+++ /dev/null
@@ -1,475 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import numpy as np
-import shlex
-import subprocess
-import os
-import tarfile
-import glob
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-
-
-def irradiation(irradotion_index, p1=1., p3=1.95):
-    sigma_1_min = 0.1
-    sigma_1_max = 0.1
-    sigma_3_min = 0.05
-    sigma_3_max = 0.05
-
-    sigma_1 = sigma_1_min + (sigma_1_max - sigma_1_min) * irradotion_index
-    sigma_3 = sigma_3_min + (sigma_3_max - sigma_3_min) * irradotion_index
-
-    mode_min = 70
-    mode_max = 180
-
-    mode_1 = mode_min + (mode_max - mode_min) * irradotion_index**p1
-    mode_3 = mode_min + (mode_max - mode_min) * irradotion_index**p3
-
-    mu_1 = np.log(mode_1)  # + sigma_1**2
-    mu_3 = np.log(mode_3)  # + sigma_3**2
-
-    return sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3
-
-
-def random_case(N, id_case):
-    comm, rank, siz = m.utilities.import_MPI()
-    np.random.seed(42)
-
-    sigma = 0.15
-    mode = 180
-    mu = np.log(mode) + sigma**2
-
-    qMC = True
-
-    if id_case == 'qMC 1':
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = randomVariable_halton[0, :]
-        randomVariable_2 = randomVariable_halton[1, :]
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'MC 1':
-        randomVariable_1 = np.random.lognormal(mu, sigma, N)
-        randomVariable_2 = np.random.lognormal(mu, sigma, N)
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'qMC 2':
-        mode_min = 70
-        mode_max = 180
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_2 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_3 = mode_min + (mode_max -
-                                       mode_min) * halton_points[1, :]
-    elif id_case == 'qMC 3':
-        from scipy.stats import lognorm
-        mode_min = 70
-        mode_max = 180
-        n_rand = 3
-        halton_points = np.zeros((n_rand, N))
-
-        randomVariable_1 = np.zeros((N, ))
-        randomVariable_3 = np.zeros((N, ))
-
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-            sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3 = irradiation(
-                halton_points[0, i])
-            randomVariable_1[i] = lognorm.ppf(halton_points[1, i],
-                                              sigma_1,
-                                              scale=np.exp(mu_1))
-            randomVariable_3[i] = lognorm.ppf(halton_points[2, i],
-                                              sigma_3,
-                                              scale=np.exp(mu_3))
-
-        randomVariable_2 = randomVariable_1
-    elif id_case == 'Xiao':
-        file_dir = os.path.dirname(__file__)
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) +
-                         '.npz')
-        samples = loaded['samples']
-        N = samples.shape[0]
-        weights = loaded['weights']
-        randomVariable_1 = samples[0:N, 0]
-        randomVariable_3 = samples[0:N, 1]
-        randomVariable_2 = randomVariable_1
-
-    if rank == 0:
-        np.savetxt('randomVariable_1.txt', randomVariable_1)
-        np.savetxt('randomVariable_2.txt', randomVariable_2)
-        np.savetxt('randomVariable_3.txt', randomVariable_3)
-
-    return randomVariable_1, randomVariable_2, randomVariable_3
-
-
-def material_option(option):
-    return int(option[-1])
-
-
-def clamping_option(option):
-    return str(option[0])
-
-
-def scale_msh(msh, scale):
-    for n in msh.nodes:
-        for i in range(0, 3):
-            n.pos[i] = n.pos[i] * scale
-
-
-def tar_results(directory, filename, rank, all=False):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        if all:
-            for file in glob.glob('*'):
-                if file.endswith(".tar.gz"):
-                    print(file + ' is not included')
-                else:
-                    tf.add(file)
-        else:
-            for file in glob.glob('r*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/t*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/b*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.npz'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.out'):
-                tf.add(file)
-        tf.close()
-
-
-def evaluate_one_ensemble(ensemble_size,
-                          msh,
-                          comm,
-                          file_dir,
-                          randomVariable_1,
-                          randomVariable_2,
-                          randomVariable_3,
-                          scale_u,
-                          scale_T,
-                          small_disk_footprint=True):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    use_block = True
-
-    comm, rank, size = m.utilities.import_MPI()
-
-    option = 'B2'
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    if small_disk_footprint:
-        solverList['Write vtk files'] = False
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    if use_block:
-        if ensemble_size >= 16 and size == 2 and clamping_option(option) == "A":
-            solverList["Num Blocks"] = 150
-        else:
-            solverList["Num Blocks"] = 250
-
-        solverList['Use blocked matrix'] = True
-
-        solverList['Use blocked status test'] = True
-        solverList['Use blocked status test: x'] = True
-        solverList['Use blocked status test: T'] = True
-        solverList['Use weighted status test'] = False
-
-        solverList['Ensemble Convergence Tolerance: T - relative'] = True
-        solverList['Ensemble Convergence Tolerance: x - relative'] = True
-        solverList[
-            'Ensemble Convergence Tolerance: T - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: x - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: weights - relative'] = False
-
-        solverList['Ensemble Convergence Tolerance'] = 1e-5
-        solverList['Ensemble Convergence Tolerance: x'] = 1e-5
-        solverList['Ensemble Convergence Tolerance: T'] = 1e-7
-        solverList['Ensemble Convergence Tolerance: weights'] = 5e-3
-
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/AMG_BGS_gs_gs.xml'
-    else:
-        solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-        solverList["Scaled Block 0"] = True
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in meters
-
-    scale_E = 1. / scale_u**2
-    scale_k = (scale_T / scale_u)
-    scale_hsource = 1. / scale_u**3
-    scale_hflux = 1. / scale_u**2
-    scale_d = scale_T
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size) * scale_E
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150 * scale_k
-    d_rhodium = 0.781E-05 * scale_d
-
-    E_WCu = 280E9 * np.ones(ensemble_size) * scale_E
-    nu_WCu = 0.298 * np.ones(ensemble_size)
-    k_WCu = 180 * scale_k
-    d_WCu = 0.88E-05 * scale_d
-
-    E_SS = 200E9 * np.ones(ensemble_size) * scale_E
-    nu_SS = 0.3 * np.ones(ensemble_size)
-    k_SS = 15.3 * scale_k
-    d_SS = 1.57E-05 * scale_d
-
-    E_CuCrZr = 118E9 * np.ones(ensemble_size) * scale_E
-    nu_CuCrZr = 0.33 * np.ones(ensemble_size)
-    k_CuCrZr = 345 * np.ones(ensemble_size) * scale_k
-    d_CuCrZr = 1.8E-05 * np.ones(ensemble_size) * scale_d
-
-    E_AlN = 320E9 * np.ones(ensemble_size) * scale_E
-    nu_AlN = 0.24 * np.ones(ensemble_size)
-    k_AlN = 180 * np.ones(ensemble_size) * scale_k
-    d_AlN = 0.48E-05 * np.ones(ensemble_size) * scale_d
-
-    E_I718 = 183E9 * np.ones(ensemble_size) * scale_E
-    nu_I718 = 0.31 * np.ones(ensemble_size)
-    k_I718 = 15.8 * scale_k
-    d_I718 = 1.38E-05 * scale_d
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium, nu_rhodium, k_rhodium,
-             d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if material_option(option) == 1:
-        m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-        m.Medium(pbl, "Holder 2", "SS", E_SS, nu_SS, k_SS, d_SS)
-        m.Medium(pbl, "Pipes", "SS", E_SS, nu_SS, k_SS, d_SS)
-    elif material_option(option) == 2:
-        m.Medium(pbl, "Holder", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-        m.Medium(pbl, "Holder 2", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-        m.Medium(pbl, "Pipes", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-
-    m.Medium(pbl, "Bolts", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_1 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 2 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_2 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 3 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_3 * scale_k, d_AlN)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    m.Dirichlet(pbl, "Holder x", "Clamped", 1, 0., 0, 0., 0, 0., 0, 0.,
-                ensemble_size)
-    m.Dirichlet(pbl, "Holder yz", "Clamped", 0, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    m.Dirichlet(pbl, "Holder z", "Clamped", 0, 0., 0, 0., 1, 0., 0, 0.,
-                ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0., 0, 0., 0, 0., 1,
-                ((70. - T_ref) scale_T), ensemble_size)
-
-    zero = np.zeros(ensemble_size)
-    hf = 20. / 0.0121 * np.ones(
-        ensemble_size) * scale_hflux  # 20 W / (0.0121 m^2)
-
-    m.Neumann(pbl, "Mirror surface", "heat fluxes", 0, zero, 0, zero, 0, zero,
-              1, hf, ensemble_size)
-
-    m.Source(pbl, "Mirror", "ihg", 20E6 * scale_hsource)
-    m.Source(pbl, "Substrate", "ihg", 2.45E6 * scale_hsource)
-
-    if material_option(option) == 1:
-        m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Holder 2", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Pipes", "ihg", 0.7E6 * scale_hsource)
-    elif material_option(option) == 2:
-        m.Source(pbl, "Holder", "ihg", 0.6E6 * scale_hsource)
-        m.Source(pbl, "Holder 2", "ihg", 0.6E6 * scale_hsource)
-        m.Source(pbl, "Pipes", "ihg", 0.6E6 * scale_hsource)
-    m.Source(pbl, "Bolts", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 1", "ihg", 0.3E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 1", "ihg", 0.3E6 * scale_hsource)
-
-    m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6 * scale_hsource)
-    m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6 * scale_hsource)
-
-    m.Source(pbl, "Shaft 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Shaft 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Nut 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Nut 3", "ihg", 0.8E6 * scale_hsource)
-
-    m.Source(pbl, "Washer 1", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 2", "ihg", 0.8E6 * scale_hsource)
-    m.Source(pbl, "Washer 3", "ihg", 0.8E6 * scale_hsource)
-
-    if use_block:
-        m.Weight(pbl, "Mirror", 1, 0., 1, 0., 1, 1., 1, 0., ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-
-def evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable1, randomVariable2, randomVariable3,
-                           scale_u, scale_T):
-    """
-    This function loop over the ensemble sizes,
-    and the ensembles
-    """
-    comm, rank, size = m.utilities.import_MPI()
-    small_disk_footprint = True
-    for ensemble_size in ensemble_sizes:
-        directory = str(ensemble_size)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N_ensemble = int(np.floor(N // ensemble_size))
-
-        ensemble_index_min = 0
-        for ensemble_index in range(ensemble_index_min, N_ensemble):
-            directory = str(ensemble_index)
-            u.mkdir_MPI(directory, comm, rank, size)
-            os.chdir(directory)
-
-            ensemble_index_start = ensemble_index * ensemble_size
-            ensemble_index_end = ensemble_index_start + ensemble_size
-
-            randomVariable_cur1 = randomVariable1[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur2 = randomVariable2[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur3 = randomVariable3[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            evaluate_one_ensemble(ensemble_size,
-                                  msh,
-                                  comm,
-                                  file_dir,
-                                  randomVariable_cur1,
-                                  randomVariable_cur2,
-                                  randomVariable_cur3,
-                                  scale_u,
-                                  scale_T,
-                                  small_disk_footprint=small_disk_footprint)
-            small_disk_footprint = True
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    directory = 'MPI_' + str(size)
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-
-    mesh_name = 'fused_mirror_assembly_all_mm_part_' + str(size) + '.msh'
-
-    msh = gmsh.MeshLoader(mesh_name, work_dir).execute(myrank=rank)
-
-    scale_u_1 = 1000.
-    scale_u_2 = 1.
-    scale_u = scale_u_1 * scale_u_2
-    scale_T = 1.
-
-    scale_msh(msh, scale_u_2)
-
-    N = 12
-    id_case = 'Xiao'
-
-    randomVariable_1, randomVariable_2, randomVariable_3 = random_case(
-        N, id_case)
-
-    ensemble_size = int(os.getenv('ensemble_size', 1))
-
-    ensemble_sizes = [ensemble_size]
-
-    N = len(randomVariable_1)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T)
-
-    os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/tests/M1_assembly_fused_old.py b/katoptron/Juelich/tests/M1_assembly_fused_old.py
deleted file mode 100644
index 4fc09811..00000000
--- a/katoptron/Juelich/tests/M1_assembly_fused_old.py
+++ /dev/null
@@ -1,568 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import numpy as np
-import shlex
-import subprocess
-import os
-import tarfile
-import glob
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-
-
-def irradiation(irradotion_index, p1=1., p3=1.95):
-    sigma_1_min = 0.1
-    sigma_1_max = 0.1
-    sigma_3_min = 0.05
-    sigma_3_max = 0.05
-
-    sigma_1 = sigma_1_min + (sigma_1_max - sigma_1_min) * irradotion_index
-    sigma_3 = sigma_3_min + (sigma_3_max - sigma_3_min) * irradotion_index
-
-    mode_min = 70
-    mode_max = 180
-
-    mode_1 = mode_min + (mode_max - mode_min) * irradotion_index**p1
-    mode_3 = mode_min + (mode_max - mode_min) * irradotion_index**p3
-
-    mu_1 = np.log(mode_1)  # + sigma_1**2
-    mu_3 = np.log(mode_3)  # + sigma_3**2
-
-    return sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3
-
-
-def random_case(N, id_case):
-    comm, rank, siz = m.utilities.import_MPI()
-    np.random.seed(42)
-
-    sigma = 0.15
-    mode = 180
-    mu = np.log(mode) + sigma**2
-
-    qMC = True
-
-    if id_case == 'qMC 1':
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = randomVariable_halton[0, :]
-        randomVariable_2 = randomVariable_halton[1, :]
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'MC 1':
-        randomVariable_1 = np.random.lognormal(mu, sigma, N)
-        randomVariable_2 = np.random.lognormal(mu, sigma, N)
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'qMC 2':
-        mode_min = 70
-        mode_max = 180
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_2 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_3 = mode_min + (mode_max -
-                                       mode_min) * halton_points[1, :]
-    elif id_case == 'qMC 3':
-        from scipy.stats import lognorm
-        mode_min = 70
-        mode_max = 180
-        n_rand = 3
-        halton_points = np.zeros((n_rand, N))
-
-        randomVariable_1 = np.zeros((N, ))
-        randomVariable_3 = np.zeros((N, ))
-
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-            sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3 = irradiation(
-                halton_points[0, i])
-            randomVariable_1[i] = lognorm.ppf(halton_points[1, i],
-                                              sigma_1,
-                                              scale=np.exp(mu_1))
-            randomVariable_3[i] = lognorm.ppf(halton_points[2, i],
-                                              sigma_3,
-                                              scale=np.exp(mu_3))
-
-        randomVariable_2 = randomVariable_1
-    elif id_case == 'Xiao':
-        file_dir = os.path.dirname(__file__)
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) +
-                         '.npz')
-        samples = loaded['samples']
-        N = samples.shape[0]
-        weights = loaded['weights']
-        randomVariable_1 = samples[0:N, 0]
-        randomVariable_3 = samples[0:N, 1]
-        randomVariable_2 = randomVariable_1
-
-    if rank == 0:
-        np.savetxt('randomVariable_1.txt', randomVariable_1)
-        np.savetxt('randomVariable_2.txt', randomVariable_2)
-        np.savetxt('randomVariable_3.txt', randomVariable_3)
-
-    return randomVariable_1, randomVariable_2, randomVariable_3
-
-
-def material_option(option):
-    return int(option[-1])
-
-
-def clamping_option(option):
-    return str(option[0])
-
-
-def scale_msh(msh, scale):
-    for n in msh.nodes:
-        for i in range(0, 3):
-            n.pos[i] = n.pos[i] * scale
-
-
-def tar_results(directory, filename, rank, all=False):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        if all:
-            for file in glob.glob('*'):
-                if file.endswith(".tar.gz"):
-                    print(file + ' is not included')
-                else:
-                    tf.add(file)
-        else:
-            for file in glob.glob('r*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/t*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/b*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.npz'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.out'):
-                tf.add(file)
-        tf.close()
-
-
-def evaluate_one_ensemble(ensemble_size, msh, comm, file_dir, randomVariable_1,
-                          randomVariable_2, randomVariable_3, scale_u,
-                          scale_T, option, baking=False):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    small_disk_footprint = False
-    use_block = True
-
-    comm, rank, siz = m.utilities.import_MPI()
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    if small_disk_footprint:
-        solverList['Write vtk files'] = False
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    if use_block:
-        if ensemble_size >= 16 and siz == 2 and clamping_option(option) == "A":
-            solverList["Num Blocks"] = 150
-        else:
-            solverList["Num Blocks"] = 200
-
-        solverList['Use blocked matrix'] = True
-
-        solverList['Use blocked status test'] = True
-        solverList['Use blocked status test: x'] = True
-        solverList['Use blocked status test: T'] = True
-        solverList['Use weighted status test'] = True
-
-        solverList['Ensemble Convergence Tolerance: T - relative'] = True
-        solverList['Ensemble Convergence Tolerance: x - relative'] = True
-        solverList[
-            'Ensemble Convergence Tolerance: T - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: x - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: weights - relative'] = False
-
-        solverList['Ensemble Convergence Tolerance'] = 10**(-5)
-        solverList['Ensemble Convergence Tolerance: x'] = 10**(-6)
-        solverList['Ensemble Convergence Tolerance: T'] = 10**(-7)
-        solverList['Ensemble Convergence Tolerance: weights'] = 10**(-3)
-
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/AMG_BGS_gs_gs.xml'
-    else:
-        solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-        solverList["Scaled Block 0"] = True
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in meters
-
-    scale_E = 1. / scale_u**2
-    scale_k = (scale_T / scale_u)
-    scale_hsource = 1. / scale_u**3
-    scale_hflux = 1. / scale_u**2
-    scale_d = scale_T
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size) * scale_E
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150 * scale_k
-    d_rhodium = 0.781E-05 * scale_d
-
-    E_WCu = 280E9 * np.ones(ensemble_size) * scale_E
-    nu_WCu = 0.26 * np.ones(ensemble_size)
-    k_WCu = 180 * scale_k
-    d_WCu = 0.88E-05 * scale_d
-
-    E_SS = 180E9 * np.ones(ensemble_size) * scale_E
-    nu_SS = 0.26 * np.ones(ensemble_size)
-    k_SS = 20. * scale_k
-    d_SS = 1.57E-05 * scale_d
-
-    E_CuCrZr = 130E9 * np.ones(ensemble_size) * scale_E
-    nu_CuCrZr = 0.26 * np.ones(ensemble_size)
-    k_CuCrZr = 280 * np.ones(ensemble_size) * scale_k
-    d_CuCrZr = 1.6E-05 * np.ones(ensemble_size) * scale_d
-
-    E_AlN = 320E9 * np.ones(ensemble_size) * scale_E
-    nu_AlN = 0.24 * np.ones(ensemble_size)
-    k_AlN = 180 * np.ones(ensemble_size) * scale_k
-    d_AlN = 0.48E-05 * np.ones(ensemble_size) * scale_d
-
-    E_I718 = 180E9 * np.ones(ensemble_size) * scale_E
-    nu_I718 = 0.26 * np.ones(ensemble_size)
-    k_I718 = 20. * scale_k
-    d_I718 = 1.4E-05 * scale_d
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium, nu_rhodium, k_rhodium,
-             d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if material_option(option) == 1:
-        m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-    elif material_option(option) == 2:
-        m.Medium(pbl, "Holder", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    '''
-    m.Medium(pbl, "Spacer 1 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_1 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 2 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_2 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 3 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_3 * scale_k, d_AlN)
-    '''
-
-    m.Medium(pbl, "Spacer 1 part 1", "CuCrZr", E_CuCrZr, nu_AlN,
-             k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 2 part 1", "CuCrZr", E_CuCrZr, nu_AlN,
-             k_CuCrZr, d_CuCrZr)
-    m.Medium(pbl, "Spacer 3 part 1", "CuCrZr", E_CuCrZr, nu_AlN,
-             k_CuCrZr, d_CuCrZr)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if clamping_option(option) == "A":
-        m.Dirichlet(pbl, "Holder z clamping", "Clamped", 0, 0., 0, 0., 1, 0.,
-                    0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x-y clamping", "Clamped", 1, 0., 1, 0., 0,
-                    0., 0, 0., ensemble_size)
-
-    elif clamping_option(option) == "B":
-        m.Dirichlet(pbl, "Holder x-y-z clamping point", "Clamped", 1, 0., 1,
-                    0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z clamping point", "Clamped", 0, 0., 0, 0.,
-                    1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z-y clamping point", "Clamped", 0, 0., 1, 0.,
-                    1, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0., 0, 0., 0, 0., 1,
-                ((70. - T_ref) / scale_T), ensemble_size)
-
-    if not baking:
-        zero = np.zeros(ensemble_size)
-        hf = 70. / 0.0121 * np.ones(
-            ensemble_size) * scale_hflux  # 20 W / (0.0121 m^2)
-
-        m.Neumann(pbl, "Mirror surface", "heat fluxes", 0, zero, 0, zero, 0, zero,
-                  1, hf, ensemble_size)
-
-        m.Source(pbl, "Mirror", "ihg", 70E6 * scale_hsource)
-        m.Source(pbl, "Substrate", "ihg", 2.45E6 * scale_hsource)
-
-        if material_option(option) == 1:
-            m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-        elif material_option(option) == 2:
-            m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-
-        m.Source(pbl, "Spacer 1 part 1", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Spacer 2 part 1", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Spacer 3 part 1", "ihg", 0.7E6 * scale_hsource)
-
-        m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6 * scale_hsource)
-        m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6 * scale_hsource)
-        m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6 * scale_hsource)
-
-        m.Source(pbl, "Shaft 1", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Shaft 2", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Shaft 3", "ihg", 0.7E6 * scale_hsource)
-
-        m.Source(pbl, "Nut 1", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Nut 2", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Nut 3", "ihg", 0.7E6 * scale_hsource)
-
-        m.Source(pbl, "Washer 1", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Washer 2", "ihg", 0.7E6 * scale_hsource)
-        m.Source(pbl, "Washer 3", "ihg", 0.7E6 * scale_hsource)
-
-    if use_block:
-        m.Weight(pbl, "Mirror", 1, 0., 1, 0., 1, 1., 1, 0., ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    tag_name = "Mirror surface"
-    name_sol = "x_mm.txt"
-    DOFperNode = 4
-    which_dof = 2
-
-    x, y, z, tri, dz = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                    ensemble_size, name_sol)
-    which_dof = 3
-    x, y, z, tri, T = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                   ensemble_size, name_sol)
-    np.savez('mirror_data_' + str(rank), x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-
-    if rank == 0:
-        for i in range(1, siz):
-            data = comm.recv(source=i, tag=11)
-    else:
-        comm.send(1, dest=0, tag=11)
-
-    if small_disk_footprint:
-        if rank == 0:
-            os.remove(name_sol)
-
-    if rank == 0:
-        #OAX = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[0]
-        #OAY = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[1]
-        OAX, OAY = 0.0595, 0.017
-        OAX = (OAX / scale_u)
-        OAY = (OAY / scale_u)
-        #OAX, OAY = 0.0595, 0.017
-        for i in range(0, siz):
-            npzfile = np.load('mirror_data_' + str(i) + '.npz')
-            x_i = npzfile['x']
-            y_i = npzfile['y']
-            z_i = 0. * x_i
-            dz_i = npzfile['dz']
-            tri_i = npzfile['tri']
-            T_i = npzfile['T']
-            if i == 0:
-                x = x_i
-                y = y_i
-                z = z_i
-                dz = dz_i
-                tri = tri_i
-                T = T_i
-                nNodes = len(x)
-            else:
-                x = np.append(x, x_i, axis=0)
-                y = np.append(y, y_i, axis=0)
-                z = np.append(z, z_i, axis=0)
-                dz = np.append(dz, dz_i, axis=0)
-                tri = np.append(tri, tri_i + nNodes, axis=0)
-                T = np.append(T, T_i, axis=0)
-                nNodes = len(x)
-        x = (x / scale_u)
-        y = (y / scale_u)
-        z = (z / scale_u)
-        dz = (dz / scale_u)
-        T = T * scale_T + T_ref
-        np.savez('mirror_data_all', x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-        for i in range(0, ensemble_size):
-            optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-                x, y, z, tri, dz[:, i], "m", np.array([OAX, OAY]))
-            np.savez('mirror_optical_results_' + str(i),
-                     optical_coefficients=optical_coefficients,
-                     dz_residual=dz_residual)
-            np.savetxt('mirror_optical_results_' + str(i) + '.out',
-                       optical_coefficients)
-
-    if small_disk_footprint:
-        if rank == 0:
-            for i in range(0, siz):
-                os.remove('mirror_data_' + str(i) + '.npz')
-
-
-def evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable1, randomVariable2, randomVariable3,
-                           scale_u, scale_T, option, baking=False):
-    """
-    This function loop over the ensemble sizes,
-    and the ensembles
-    """
-    for ensemble_size in ensemble_sizes:
-        directory = str(ensemble_size)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N_ensemble = int(np.floor(N // ensemble_size))
-
-        ensemble_index_min = 0
-        for ensemble_index in range(ensemble_index_min, N_ensemble):
-            directory = str(ensemble_index)
-            u.mkdir_MPI(directory, comm, rank, size)
-            os.chdir(directory)
-
-            ensemble_index_start = ensemble_index * ensemble_size
-            ensemble_index_end = ensemble_index_start + ensemble_size
-
-            randomVariable_cur1 = randomVariable1[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur2 = randomVariable2[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur3 = randomVariable3[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            evaluate_one_ensemble(ensemble_size, msh, comm, file_dir,
-                                  randomVariable_cur1, randomVariable_cur2,
-                                  randomVariable_cur3, scale_u, scale_T, option, baking)
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    comm, rank, siz = m.utilities.import_MPI()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    directory = 'MPI_' + str(siz)
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-
-    mesh_name = 'fused_mirror_assembly_mm_part_' + str(siz) + '.msh'
-
-    msh = gmsh.MeshLoader(mesh_name, work_dir).execute(myrank=rank)
-
-    scale_u_1 = 1000.
-    scale_u_2 = 1.
-    scale_u = scale_u_1 * scale_u_2
-    scale_T = 1.
-
-    scale_msh(msh, scale_u_2)
-
-    randomVariable_1 = np.array([180., 30.])
-    randomVariable_2 = np.array([180., 30.])
-    randomVariable_3 = np.array([180., 30.])
-
-    ensemble_size = int(os.getenv('ensemble_size', 1))
-
-    ensemble_sizes = [ensemble_size]
-
-    N = 1
-
-    option = 'A1'
-    '''
-    directory = 'A1_baking'
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=True)
-    os.chdir('..')
-    '''
-    directory = 'A1'
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=False)
-    os.chdir('..')
-    '''
-    option = 'B1'
-
-    directory = 'B1_baking'
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=True)
-    os.chdir('..')
-
-    directory = 'B1'
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=False)
-    os.chdir('..')
-    '''
-    os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/Juelich/tests/M1_assembly_fused_preload.py b/katoptron/Juelich/tests/M1_assembly_fused_preload.py
deleted file mode 100644
index b5cbd209..00000000
--- a/katoptron/Juelich/tests/M1_assembly_fused_preload.py
+++ /dev/null
@@ -1,544 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import numpy as np
-import shlex
-import subprocess
-import os
-import tarfile
-import glob
-
-from katoptron.Juelich.UQ.halton import *
-from katoptron.Juelich.UQ.copulas import *
-
-
-def irradiation(irradotion_index, p1=1., p3=1.95):
-    sigma_1_min = 0.1
-    sigma_1_max = 0.1
-    sigma_3_min = 0.05
-    sigma_3_max = 0.05
-
-    sigma_1 = sigma_1_min + (sigma_1_max - sigma_1_min) * irradotion_index
-    sigma_3 = sigma_3_min + (sigma_3_max - sigma_3_min) * irradotion_index
-
-    mode_min = 70
-    mode_max = 180
-
-    mode_1 = mode_min + (mode_max - mode_min) * irradotion_index**p1
-    mode_3 = mode_min + (mode_max - mode_min) * irradotion_index**p3
-
-    mu_1 = np.log(mode_1)  # + sigma_1**2
-    mu_3 = np.log(mode_3)  # + sigma_3**2
-
-    return sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3
-
-
-def random_case(N, id_case):
-    comm, rank, siz = m.utilities.import_MPI()
-    np.random.seed(42)
-
-    sigma = 0.15
-    mode = 180
-    mu = np.log(mode) + sigma**2
-
-    qMC = True
-
-    if id_case == 'qMC 1':
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = randomVariable_halton[0, :]
-        randomVariable_2 = randomVariable_halton[1, :]
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'MC 1':
-        randomVariable_1 = np.random.lognormal(mu, sigma, N)
-        randomVariable_2 = np.random.lognormal(mu, sigma, N)
-        randomVariable_3 = mode * np.ones((N, ))
-    elif id_case == 'qMC 2':
-        mode_min = 70
-        mode_max = 180
-        n_rand = 2
-        halton_points = np.zeros((n_rand, N))
-        for i in range(0, N):
-            halton_points[:, i] = halton(i, n_rand)
-
-        randomVariable_halton = lognormal(halton_points, [mu, mu],
-                                          [sigma, sigma])
-        randomVariable_1 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_2 = mode_min + (mode_max -
-                                       mode_min) * halton_points[0, :]
-        randomVariable_3 = mode_min + (mode_max -
-                                       mode_min) * halton_points[1, :]
-    elif id_case == 'qMC 3':
-        from scipy.stats import lognorm
-        mode_min = 70
-        mode_max = 180
-        n_rand = 3
-        halton_points = np.zeros((n_rand, N))
-
-        randomVariable_1 = np.zeros((N, ))
-        randomVariable_3 = np.zeros((N, ))
-
-        for i in range(0, N):
-            halton_points[:, i] = halton(i + 1, n_rand)
-            sigma_1, sigma_3, mode_1, mode_3, mu_1, mu_3 = irradiation(
-                halton_points[0, i])
-            randomVariable_1[i] = lognorm.ppf(halton_points[1, i],
-                                              sigma_1,
-                                              scale=np.exp(mu_1))
-            randomVariable_3[i] = lognorm.ppf(halton_points[2, i],
-                                              sigma_3,
-                                              scale=np.exp(mu_3))
-
-        randomVariable_2 = randomVariable_1
-    elif id_case == 'Xiao':
-        file_dir = os.path.dirname(__file__)
-        loaded = np.load(file_dir + '/../samples_files/Xiao_' + str(N) +
-                         '.npz')
-        samples = loaded['samples']
-        N = samples.shape[0]
-        weights = loaded['weights']
-        randomVariable_1 = samples[0:N, 0]
-        randomVariable_3 = samples[0:N, 1]
-        randomVariable_2 = randomVariable_1
-
-    if rank == 0:
-        np.savetxt('randomVariable_1.txt', randomVariable_1)
-        np.savetxt('randomVariable_2.txt', randomVariable_2)
-        np.savetxt('randomVariable_3.txt', randomVariable_3)
-
-    return randomVariable_1, randomVariable_2, randomVariable_3
-
-
-def material_option(option):
-    return int(option[-1])
-
-
-def clamping_option(option):
-    return str(option[0])
-
-
-def scale_msh(msh, scale):
-    for n in msh.nodes:
-        for i in range(0, 3):
-            n.pos[i] = n.pos[i] * scale
-
-
-def tar_results(directory, filename, rank, all=False):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        if all:
-            for file in glob.glob('*'):
-                if file.endswith(".tar.gz"):
-                    print(file + ' is not included')
-                else:
-                    tf.add(file)
-        else:
-            for file in glob.glob('r*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/t*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/b*.txt'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.npz'):
-                tf.add(file)
-            for file in glob.glob('*/*/*.out'):
-                tf.add(file)
-        tf.close()
-
-
-def evaluate_one_ensemble(ensemble_size, msh, comm, file_dir, randomVariable_1,
-                          randomVariable_2, randomVariable_3, scale_u,
-                          scale_T, option, baking=False):
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    small_disk_footprint = False
-    use_block = True
-
-    comm, rank, siz = m.utilities.import_MPI()
-
-    solverList = Teuchos.ParameterList()
-    solverList['type'] = "BlockGmres"
-
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    if small_disk_footprint:
-        solverList['Write vtk files'] = False
-
-    solverList['convert MueLu xml file'] = True
-    solverList["use xml file"] = True
-
-    if use_block:
-        if ensemble_size >= 16 and siz == 2 and clamping_option(option) == "A":
-            solverList["Num Blocks"] = 150
-        else:
-            solverList["Num Blocks"] = 200
-
-        solverList['Use blocked matrix'] = True
-
-        solverList['Use blocked status test'] = True
-        solverList['Use blocked status test: x'] = True
-        solverList['Use blocked status test: T'] = True
-        solverList['Use weighted status test'] = True
-
-        solverList['Ensemble Convergence Tolerance: T - relative'] = True
-        solverList['Ensemble Convergence Tolerance: x - relative'] = True
-        solverList[
-            'Ensemble Convergence Tolerance: T - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: x - relative full rhs'] = False
-        solverList[
-            'Ensemble Convergence Tolerance: weights - relative'] = False
-
-        solverList['Ensemble Convergence Tolerance'] = 10**(-5)
-        solverList['Ensemble Convergence Tolerance: x'] = 10**(-6)
-        solverList['Ensemble Convergence Tolerance: T'] = 10**(-7)
-        solverList['Ensemble Convergence Tolerance: weights'] = 10**(-3)
-
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/AMG_BGS_gs_gs.xml'
-    else:
-        solverList['Ensemble Convergence Tolerance'] = 10**(-8)
-        solverList[
-            "MueLu xml file name"] = file_dir + '/../smoothers/heat_no_contact_mtgs.xml'
-
-        solverList["Scaled Block 0"] = True
-    pbl = m.Problem(msh, comm)
-
-    # Distance in the mesh are represented in meters
-
-    scale_E = 1. / scale_u**2
-    scale_k = (scale_T / scale_u)
-    scale_hsource = 1. / scale_u**3
-    scale_hflux = 1. / scale_u**2
-    scale_d = scale_T
-
-    # 379 000 MPa = 379 GPa = 379E9 Pa
-    E_rhodium = 379E9 * np.ones(ensemble_size) * scale_E
-    nu_rhodium = 0.26 * np.ones(ensemble_size)
-    # 0.150 kW/(m K) = 150 W/(m K)
-    k_rhodium = 150 * scale_k
-    d_rhodium = 0.781E-05 * scale_d
-
-    E_WCu = 280E9 * np.ones(ensemble_size) * scale_E
-    nu_WCu = 0.298 * np.ones(ensemble_size)
-    k_WCu = 180 * scale_k
-    d_WCu = 0.88E-05 * scale_d
-
-    E_SS = 200E9 * np.ones(ensemble_size) * scale_E
-    nu_SS = 0.3 * np.ones(ensemble_size)
-    k_SS = 15.3 * scale_k
-    d_SS = 1.57E-05 * scale_d
-
-    E_CuCrZr = 118E9 * np.ones(ensemble_size) * scale_E
-    nu_CuCrZr = 0.33 * np.ones(ensemble_size)
-    k_CuCrZr = 345 * np.ones(ensemble_size) * scale_k
-    d_CuCrZr = 1.8E-05 * np.ones(ensemble_size) * scale_d
-
-    E_AlN = 320E9 * np.ones(ensemble_size) * scale_E
-    nu_AlN = 0.24 * np.ones(ensemble_size)
-    k_AlN = 180 * np.ones(ensemble_size) * scale_k
-    d_AlN = 0.48E-05 * np.ones(ensemble_size) * scale_d
-
-    E_I718 = 183E9 * np.ones(ensemble_size) * scale_E
-    nu_I718 = 0.31 * np.ones(ensemble_size)
-    k_I718 = 15.8 * scale_k
-    d_I718 = 1.38E-05 * scale_d
-
-    T_ref = 22.
-
-    m.Medium(pbl, "Mirror", "rhodium", E_rhodium, nu_rhodium, k_rhodium,
-             d_rhodium)
-    m.Medium(pbl, "Substrate", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if material_option(option) == 1:
-        m.Medium(pbl, "Holder", "SS", E_SS, nu_SS, k_SS, d_SS)
-    elif material_option(option) == 2:
-        m.Medium(pbl, "Holder", "CuCrZr", E_CuCrZr, nu_CuCrZr, k_CuCrZr,
-                 d_CuCrZr)
-
-    m.Medium(pbl, "Washer 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Washer 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Shaft 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Shaft 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Nut 1", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 2", "I718", E_I718, nu_I718, k_I718, d_I718)
-    m.Medium(pbl, "Nut 3", "I718", E_I718, nu_I718, k_I718, d_I718)
-
-    m.Medium(pbl, "Spacer 1 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_1 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 2 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_2 * scale_k, d_AlN)
-    m.Medium(pbl, "Spacer 3 part 1", "AlN", E_AlN, nu_AlN,
-             randomVariable_3 * scale_k, d_AlN)
-
-    m.Medium(pbl, "Spacer 1 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 2 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-    m.Medium(pbl, "Spacer 3 part 2", "WCu", E_WCu, nu_WCu, k_WCu, d_WCu)
-
-    if clamping_option(option) == "A":
-        m.Dirichlet(pbl, "Holder z clamping", "Clamped", 0, 0., 0, 0., 1, 0.,
-                    0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder x-y clamping", "Clamped", 1, 0., 1, 0., 0,
-                    0., 0, 0., ensemble_size)
-
-    elif clamping_option(option) == "B":
-        m.Dirichlet(pbl, "Holder x-y-z clamping point", "Clamped", 1, 0., 1,
-                    0., 1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z clamping point", "Clamped", 0, 0., 0, 0.,
-                    1, 0., 0, 0., ensemble_size)
-        m.Dirichlet(pbl, "Holder z-y clamping point", "Clamped", 0, 0., 1, 0.,
-                    1, 0., 0, 0., ensemble_size)
-
-    m.Dirichlet(pbl, "Cooling channels", "Clamped", 0, 0., 0, 0., 0, 0., 1,
-                ((70. - T_ref) / scale_T), ensemble_size)
-
-    if not baking:
-        zero = np.zeros(ensemble_size)
-        hf = 20. / 0.0121 * np.ones(
-            ensemble_size) * scale_hflux  # 20 W / (0.0121 m^2)
-
-        m.Neumann(pbl, "Mirror surface", "heat fluxes", 0, zero, 0, zero, 0, zero,
-                  1, hf, ensemble_size)
-
-        m.Source(pbl, "Mirror", "ihg", 20E6 * scale_hsource)
-        m.Source(pbl, "Substrate", "ihg", 2.45E6 * scale_hsource)
-
-        if material_option(option) == 1:
-            m.Source(pbl, "Holder", "ihg", 0.7E6 * scale_hsource)
-        elif material_option(option) == 2:
-            m.Source(pbl, "Holder", "ihg", 0.6E6 * scale_hsource)
-
-        m.Source(pbl, "Spacer 1 part 1", "ihg", 0.3E6 * scale_hsource)
-        m.Source(pbl, "Spacer 2 part 1", "ihg", 0.3E6 * scale_hsource)
-        m.Source(pbl, "Spacer 3 part 1", "ihg", 0.3E6 * scale_hsource)
-
-        m.Source(pbl, "Spacer 1 part 2", "ihg", 2.45E6 * scale_hsource)
-        m.Source(pbl, "Spacer 2 part 2", "ihg", 2.45E6 * scale_hsource)
-        m.Source(pbl, "Spacer 3 part 2", "ihg", 2.45E6 * scale_hsource)
-
-        m.Source(pbl, "Shaft 1", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Shaft 2", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Shaft 3", "ihg", 0.8E6 * scale_hsource)
-
-        m.Source(pbl, "Nut 1", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Nut 2", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Nut 3", "ihg", 0.8E6 * scale_hsource)
-
-        m.Source(pbl, "Washer 1", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Washer 2", "ihg", 0.8E6 * scale_hsource)
-        m.Source(pbl, "Washer 3", "ihg", 0.8E6 * scale_hsource)
-
-    if use_block:
-        m.Weight(pbl, "Mirror", 1, 0., 1, 0., 1, 1., 1, 0., ensemble_size)
-
-    slv = m.IterativeSolver(pbl, args.k, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    tag_name = "Mirror surface"
-    name_sol = "x_mm.txt"
-    DOFperNode = 4
-    which_dof = 2
-
-    x, y, z, tri, dz = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                    ensemble_size, name_sol)
-    which_dof = 3
-    x, y, z, tri, T = u.extract_2D(msh, tag_name, DOFperNode, which_dof,
-                                   ensemble_size, name_sol)
-    np.savez('mirror_data_' + str(rank), x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-
-    if rank == 0:
-        for i in range(1, siz):
-            data = comm.recv(source=i, tag=11)
-    else:
-        comm.send(1, dest=0, tag=11)
-
-    if small_disk_footprint:
-        if rank == 0:
-            os.remove(name_sol)
-
-    if rank == 0:
-        #OAX = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[0]
-        #OAY = msh.ntags["Optical Axis"].elems[0].nodes[0].pos[1]
-        OAX, OAY = 0.0595, 0.017
-        OAX = (OAX / scale_u)
-        OAY = (OAY / scale_u)
-        #OAX, OAY = 0.0595, 0.017
-        for i in range(0, siz):
-            npzfile = np.load('mirror_data_' + str(i) + '.npz')
-            x_i = npzfile['x']
-            y_i = npzfile['y']
-            z_i = 0. * x_i
-            dz_i = npzfile['dz']
-            tri_i = npzfile['tri']
-            T_i = npzfile['T']
-            if i == 0:
-                x = x_i
-                y = y_i
-                z = z_i
-                dz = dz_i
-                tri = tri_i
-                T = T_i
-                nNodes = len(x)
-            else:
-                x = np.append(x, x_i, axis=0)
-                y = np.append(y, y_i, axis=0)
-                z = np.append(z, z_i, axis=0)
-                dz = np.append(dz, dz_i, axis=0)
-                tri = np.append(tri, tri_i + nNodes, axis=0)
-                T = np.append(T, T_i, axis=0)
-                nNodes = len(x)
-        x = (x / scale_u)
-        y = (y / scale_u)
-        z = (z / scale_u)
-        dz = (dz / scale_u)
-        T = T * scale_T + T_ref
-        np.savez('mirror_data_all', x=x, y=y, z=z, tri=tri, dz=dz, T=T)
-        for i in range(0, ensemble_size):
-            optical_coefficients, dz_residual = u.compute_RBM_Curvature_Irreg(
-                x, y, z, tri, dz[:, i], "m", np.array([OAX, OAY]))
-            np.savez('mirror_optical_results_' + str(i),
-                     optical_coefficients=optical_coefficients,
-                     dz_residual=dz_residual)
-            np.savetxt('mirror_optical_results_' + str(i) + '.out',
-                       optical_coefficients)
-
-    if small_disk_footprint:
-        if rank == 0:
-            for i in range(0, siz):
-                os.remove('mirror_data_' + str(i) + '.npz')
-
-
-def evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable1, randomVariable2, randomVariable3,
-                           scale_u, scale_T, option, baking=False):
-    """
-    This function loop over the ensemble sizes,
-    and the ensembles
-    """
-    for ensemble_size in ensemble_sizes:
-        directory = str(ensemble_size)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N_ensemble = int(np.floor(N // ensemble_size))
-
-        ensemble_index_min = 0
-        for ensemble_index in range(ensemble_index_min, N_ensemble):
-            directory = str(ensemble_index)
-            u.mkdir_MPI(directory, comm, rank, size)
-            os.chdir(directory)
-
-            ensemble_index_start = ensemble_index * ensemble_size
-            ensemble_index_end = ensemble_index_start + ensemble_size
-
-            randomVariable_cur1 = randomVariable1[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur2 = randomVariable2[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            randomVariable_cur3 = randomVariable3[ensemble_index_start:
-                                                  ensemble_index_end]
-
-            evaluate_one_ensemble(ensemble_size, msh, comm, file_dir,
-                                  randomVariable_cur1, randomVariable_cur2,
-                                  randomVariable_cur3, scale_u, scale_T, option, baking)
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    comm, rank, siz = m.utilities.import_MPI()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    directory = 'MPI_' + str(siz)
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-
-    mesh_name = 'fused_mirror_assembly_mm_part_' + str(siz) + '.msh'
-
-    msh = gmsh.MeshLoader(mesh_name, work_dir).execute(myrank=rank)
-
-    scale_u_1 = 1000.
-    scale_u_2 = 1.
-    scale_u = scale_u_1 * scale_u_2
-    scale_T = 1.
-
-    scale_msh(msh, scale_u_2)
-
-    N = 20
-    id_case = 'Xiao'
-
-    randomVariable_1, randomVariable_2, randomVariable_3 = random_case(
-        N, id_case)
-
-    ensemble_size = int(os.getenv('ensemble_size', 1))
-
-    ensemble_sizes = [ensemble_size]
-
-    N = len(randomVariable_1)
-
-    u.mkdir_MPI(option, comm, rank, size)
-    os.chdir(option)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=False)
-    os.chdir('..')
-
-    option = 'B2'
-
-    u.mkdir_MPI(option, comm, rank, size)
-    os.chdir(option)
-
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, file_dir,
-                           randomVariable_1, randomVariable_2,
-                           randomVariable_3, scale_u, scale_T, option, baking=False)
-    os.chdir('..')
-
-    os.chdir('..')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/__init__.py b/katoptron/__init__.py
deleted file mode 100644
index bd6e4779..00000000
--- a/katoptron/__init__.py
+++ /dev/null
@@ -1,10 +0,0 @@
-# -*- coding: utf-8; -*-
-# katoptron MODULE initialization file
-
-
-import fwk
-import tbox
-try:
-  from katoptronw import *
-except:
-  print('katoptronw is not imported, this build is only enough for python post processing')
diff --git a/katoptron/_src/CMakeLists.txt b/katoptron/_src/CMakeLists.txt
deleted file mode 100644
index d7fd03c0..00000000
--- a/katoptron/_src/CMakeLists.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-# CMake input file of the SWIG wrapper around "katoptronw.so"
-
-INCLUDE(${SWIG_USE_FILE})
-
-INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
-FILE(GLOB ISRCS *.i)
-
-SET(CMAKE_SWIG_FLAGS "")
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
-
-
-# -- Search for Trilinos
-FIND_PACKAGE(Trilinos REQUIRED)
-FIND_PACKAGE(MPI4PY REQUIRED)
-#FIND_PACKAGE(NUMPY REQUIRED)
-
-set (_VERB 1)  # set to 1 for debugging
-IF(_VERB)
-    MESSAGE("\nFound MPI4PY!  Here are the details: ")
-    MESSAGE("   MPI4PY_INCLUDE_DIR = ${MPI4PY_INCLUDE_DIR}")
-    MESSAGE("   TRILINOS_SOURCE_DIR = ${TEST_INCLUDE_DIR}")
-    MESSAGE("End of MPI4PY details\n")
-ENDIF()
-
-# --------------------------------------------------------------
-# Finds MPI (including MSMPI)
-# --------------------------------------------------------------
-if(WIN32)
-    FIND_PATH(MPI_INCLUDE_PATH NAMES  mpi.h HINTS "$ENV{MSMPI_INC}")
-    if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
-        set(MS_MPI_ARCH_DIR x64)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB64}")
-    else()
-        set(MS_MPI_ARCH_DIR x86)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB32}")
-    endif()
-else()
-    find_package(MPI REQUIRED)
-    # intel mpi (mpi.h doit etre inclus avant stdio.h)
-    # ou definir ces 2 macros
-    ADD_DEFINITIONS(-DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX)
-endif()
-# --------------------------------------------------------------
-
-
-#Teuchos.i
-#export TRILINOS_SOURCE_DIR=/Users/kliegeois/dev/Trilinos-master
-#SET(TRILINOS_SOURCE_DIR /Users/kliegeois/dev/Trilinos-master)
-#SET(TRILINOS_BUILD_DIR /Users/kliegeois/dev/TrilinosB)
-
-IF(1)
-SET(SWINCFLAGS
--I${PROJECT_SOURCE_DIR}/katoptron/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
--I${MPI4PY_INCLUDE_DIR}
--I${Trilinos_INCLUDE_DIRS}
--I${TRILINOS_SOURCE_DIR}/packages/PyTrilinos/src
--I${TRILINOS_SOURCE_DIR}/packages/teuchos/parameterlist/src
--I${TRILINOS_BUILD_DIR}/packages/PyTrilinos/doc/Doxygen
-)
-ELSE()
-SET(SWINCFLAGS
--I${PROJECT_SOURCE_DIR}/katoptron/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
--I${MPI4PY_INCLUDE_DIR}
--I${Trilinos_INCLUDE_DIRS}
-)
-ENDIF()
-# Teuchos.i
-# Teuchos_dox.i
-
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
-
-SWIG_ADD_MODULE(katoptronw python ${ISRCS} ${SRCS})
-MACRO_DebugPostfix(_katoptronw)
-
-# ---
-
-
-IF(1)
-INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/katoptron/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src 
-                     ${Trilinos_INCLUDE_DIRS}
-                     ${Trilinos_TPL_INCLUDE_DIRS}
-                     ${MPI_INCLUDE_PATH}
-                     ${MPI4PY_INCLUDE_DIR}
-                     ${TRILINOS_SOURCE_DIR}/packages/teuchos/parameterlist/src
-                     ${TRILINOS_SOURCE_DIR}/packages/teuchos/core/src
-                     ${TRILINOS_SOURCE_DIR}/packages/PyTrilinos/src
-                     ${NUMPY_INCLUDE_DIR})
-ELSE()
-INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/katoptron/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
-                     ${Trilinos_INCLUDE_DIRS}
-                     ${Trilinos_TPL_INCLUDE_DIRS}
-                     ${MPI_INCLUDE_PATH}
-                     ${MPI4PY_INCLUDE_DIR})
-ENDIF()
-# numpy/arrayobject.h
-SWIG_LINK_LIBRARIES(katoptronw
-                    katoptron tbox fwk ${Trilinos_LIBRARIES} ${Trilinos_TPL_LIBRARIES} ${PYTHON_LIBRARIES}
-)
-
-INSTALL(FILES ${CMAKE_SWIG_OUTDIR}/katoptronw.py DESTINATION ${CMAKE_INSTALL_PREFIX})
-INSTALL(TARGETS _katoptronw DESTINATION ${CMAKE_INSTALL_PREFIX})
diff --git a/katoptron/_src/katoptronw.i b/katoptron/_src/katoptronw.i
deleted file mode 100644
index ef5cb1aa..00000000
--- a/katoptron/_src/katoptronw.i
+++ /dev/null
@@ -1,134 +0,0 @@
-// SWIG input file of the 'katoptron' module
-
-%feature("autodoc","1");
-
-%module(docstring=
-"'katoptronw' module: tests of Trilinos library
-(c) ULg - A&M",
-directors="1",
-threads="1"
-) katoptronw
-%{
-
-#include <string>
-#include <sstream>
-#include <typeinfo>
-#include "katoptron.h"
-
-#include <mpi.h>
-#include "Teuchos_ParameterList.hpp"
-
-#include "fwkw.h"
-#include "tboxw.h"
-
-#include "DiscreteProblem.h"
-#include "wProblem.h"
-//#include "wSolver.h"
-#include "wMedium.h"
-#include "wDirichlet.h"
-#include "wNeumann.h"
-#include "wRandomVariable.h"
-#include "wSource.h"
-#include "wContact.h"
-#include "wWeight.h"
-#include "wDisplayHook.h"
-#include "LinearSolver.h"
-#include "IterativeSolver.h"
-
-#include <vector>
-
-#include "Kokkos_Init.h"
-
-#include "EnsembleReduction.h"
-
-//Fix for missing SWIGPY_SLICE_ARG with some versions of swig.
-#if PY_VERSION_HEX >= 0x03020000
-# define SWIGPY_SLICE_ARG(obj) ((PyObject*) (obj))
-#else
-# define SWIGPY_SLICE_ARG(obj) ((PySliceObject*) (obj))
-#endif
-
-%}
-
-%include "fwkw.swg"
-
-// ----------- MODULES UTILISES ------------
-%import "fwkw.i"
-%import "tboxw.i"
-
-
-// ----------- KATOPTRON CLASSES ----------------
-
-// Instantiate some std templates
-
-%include mpi4py/mpi4py.i
-%mpi4py_typemap(Comm, MPI_Comm);
-
-%feature("notabstract") MpiComm_int;
-//%include Teuchos.i
-
-
-//%teuchos_rcp_pydict_overrides(CONST, CLASS...);
-
-%include "katoptron.h"
-
-%shared_ptr(katoptron::Medium);
-%shared_ptr(katoptron::Dirichlet);
-%shared_ptr(katoptron::Neumann);
-%shared_ptr(katoptron::RandomVariable);
-%shared_ptr(katoptron::Contact);
-%shared_ptr(katoptron::Weight);
-%shared_ptr(katoptron::Source);
-%shared_ptr(katoptron::Problem);
-
-%feature("director") DisplayHook;
-%include "wDisplayHook.h"
-
-%feature("director:except") {
-    if ($error != NULL) {
-        std::cout << "[in director:except]\n";
-        //throw Swig::DirectorMethodException();
-        throw std::runtime_error("Director problem");
-    }
-}
-
-%include "wRandomVariable.h"
-
-%immutable katoptron::Problem::msh; // avoid the creation of the setter method
-%include "wProblem.h"
-//%include "wSolver.h"
-%immutable katoptron::LinearSolver::tms;
-%include "LinearSolver.h"
-%include "IterativeSolver.h"
-
-%pythonappend katoptron::Medium::Medium "self.thisown=0"
-%include "wMedium.h"
-%pythonappend katoptron::Dirichlet::Dirichlet "self.thisown=0"
-%include "wDirichlet.h"
-%pythonappend katoptron::Neumann::Neumann "self.thisown=0"
-%include "wNeumann.h"
-
-%pythonappend katoptron::Weight::Weight "self.thisown=0"
-%include "wWeight.h"
-
-%pythonappend katoptron::Source::Source "self.thisown=0"
-%include "wSource.h"
-%pythonappend katoptron::Contact::Contact "self.thisown=0"
-%include "wContact.h"
-
-%include "DiscreteProblem.h"
-namespace katoptron {
-    %template(DiscreteProblem_d) DiscreteProblem<double>;
-}
-
-%include "Kokkos_Init.h"
-void Kokkos_Initialize(int nThreads);
-void Kokkos_Finalize(void);
-
-%include "EnsembleReduction.h"
-bool UseEnsembleReduction();
-
-namespace std {
-    %template(std_vector_KatProblem) vector<katoptron::Problem*>;
-}
-
diff --git a/katoptron/convergence.py b/katoptron/convergence.py
deleted file mode 100644
index 2cc46f3d..00000000
--- a/katoptron/convergence.py
+++ /dev/null
@@ -1,335 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import numpy as np
-
-verb = False  # set to True for (a lot of) debug info
-
-try:
-    import mpi4py.MPI as mpi
-    comm = mpi.COMM_WORLD
-    rank = comm.rank
-    siz = comm.size
-    name = mpi.Get_processor_name()
-    status = mpi.Status()
-except:
-    comm = None
-    rank = 0
-    siz = 1
-    name = "noname"
-
-
-def enum(*sequential, **named):
-    enums = dict(list(zip(sequential, list(range(len(sequential))))), **named)
-    return type('Enum', (), enums)
-
-
-tags = enum('READY', 'DONE', 'EXIT', 'START', 'WAKEUP', 'SUICIDE')
-
-
-class Index_no_repetition_2:
-    def __init__(self, among_i):
-        self.among_i = among_i
-        self.n = len(among_i)
-        self.i = np.zeros((2,), dtype=int)
-        self.i_index = np.zeros((2,), dtype=int)
-        self.is_valid = True
-        for j in range(0, 2):
-            self.i_index[j] = j
-            self.i[j] = among_i[self.i_index[j]]
-
-    def compute_next(self):
-        n = self.n
-        if self.i_index[1] < n-1:
-            self.i_index[1] = self.i_index[1]+1
-            self.i[1] = self.among_i[self.i_index[1]]
-        else:
-            if self.i_index[0] < n-2:
-                self.i_index[0] = self.i_index[0]+1
-                self.i_index[1] = self.i_index[0]+1
-                for j in range(0, 2):
-                    self.i[j] = self.among_i[self.i_index[j]]
-            else:
-                self.is_valid = False
-        return self.is_valid
-
-    def get_i(self):
-        return self.i
-
-
-class Index_no_repetition:
-    def __init__(self, k, n, n_0=0):
-        self.k = k
-        self.n = n
-        self.i = np.zeros((k,), dtype=int)
-        self.i_max = np.zeros((k,), dtype=int)
-        self.is_valid = True
-        for j in range(0, k):
-            self.i[j] = n_0+j
-        for j in range(0, k-1):
-            self.i_max[j] = self.i[j+1] - 1
-        self.i_max[-1] = n - 1
-
-    def compute_next(self):
-        k = self.k
-        mask = (self.i < self.i_max-1)
-        tmp = np.argwhere(mask == True)
-        j = -1
-        for i in range(0, k):
-            j = (1-mask[i])*j + mask[i]*i
-        if j == -1:
-            self.is_valid = False
-        else:
-            self.i[j:k] = self.i[j]+1+np.arange(0, k-j)
-            if j == 0:
-                j_1 = 0
-            else:
-                j_1 = j - 1
-            self.i_max[j_1:k-1] = self.i[j_1+1:k]
-        return self.is_valid
-
-    def get_is_valid(self):
-        return self.is_valid
-
-    def get_i(self):
-        return self.i
-
-
-def compute_convergence(k_max, n, omegas, deltas, A, b, x0, verbose=False):
-    if siz > 1:
-        convergence = compute_convergence_mpi(
-            k_max, n, omegas, deltas, A, b, x0, verbose)
-    else:
-        convergence = compute_convergence_serial(
-            k_max, n, omegas, deltas, A, b, x0, verbose)
-    return convergence
-
-
-def compute_sum_of_product_times_product(k, n, omegas, deltas):
-    i1 = Index_no_repetition(k, n)
-    results_sum = 0.
-    while True:
-        results_product_1 = 1.
-        results_product_2 = 1.
-        index = i1.get_i()
-        print(index)
-        results_product_1 = results_product_1 * np.prod(omegas[index])
-        i2 = Index_no_repetition_2(index)
-        while True:
-            index2 = i2.get_i()
-            tmp = np.absolute(deltas[index2[0]]-deltas[index2[1]])
-            results_product_2 = results_product_2 * tmp**2
-            if not i2.compute_next():
-                break
-        results_sum = results_sum + results_product_1 * results_product_2
-        if not i1.compute_next():
-            break
-    return results_sum
-
-
-def compute_convergence_serial(k_max, n, omegas, deltas, A, b, x0, verbose):
-    convergence = np.ones((k_max,))
-    convergence[0] = (np.linalg.norm(b - A.dot(x0)))**2
-    old_sum = compute_sum_of_product_times_product(2, n, omegas, deltas)
-    convergence[1] = old_sum
-    for k in range(2, k_max):
-        new_sum = compute_sum_of_product_times_product(k+1, n, omegas, deltas)
-        convergence[k] = new_sum / old_sum
-        if verbose:
-            print(convergence)
-        old_sum = new_sum
-    return convergence
-
-
-def compute_convergence_mpi(k_max, n, omegas, deltas, A, b, x0, verbose):
-    convergence = np.ones((k_max,))
-    convergence[0] = (np.linalg.norm(b - A.dot(x0)))**2
-
-    if rank == 0:
-        master = Master()
-        old_sum = master.start(2, n, omegas, deltas)
-        convergence[1] = old_sum
-    else:
-        worker = Worker(rank)
-        worker.start()
-
-    for k in range(2, k_max):
-        if rank == 0:
-            master = Master()
-            new_sum = master.start(k+1, n, omegas, deltas)
-            convergence[k] = new_sum / old_sum
-            old_sum = new_sum
-            if verbose:
-                print(convergence)
-        else:
-            worker = Worker(rank)
-            worker.start()
-    return convergence
-
-
-class Job:
-    """ Class containing data transmitted between MPI procs
-    """
-
-    def __init__(self, omegas, deltas, index):
-                # input
-        self.omegas = omegas
-        self.deltas = deltas
-        self.index = index
-        # output
-        self.partial_sum = 0.
-
-    def execute(self):
-        """
-        [executed by worker processes]
-        solve a given job and calculate "partial_sum"
-        """
-        results_product_1 = 1.
-        results_product_2 = 1.
-        results_product_1 = results_product_1 * \
-            np.prod(self.omegas[self.index])
-        i2 = Index_no_repetition_2(self.index)
-        while True:
-            index2 = i2.get_i()
-            tmp = np.absolute(self.deltas[index2[0]]-self.deltas[index2[1]])
-            results_product_2 = results_product_2 * tmp**2
-            if not i2.compute_next():
-                break
-        self.partial_sum = self.partial_sum + results_product_1 * results_product_2
-
-
-class Master:
-    """
-    MPI Process with rank #0
-    """
-
-    def __init__(self):
-        self.slaves = list(range(1, siz))
-
-    def start(self, k, n, omegas, deltas):
-        """
-        master loop
-        """
-        global rank
-        if rank != 0:
-            raise Exception("this routine should be called with MPI rank=0")
-        if verb:
-            print("[%d] starting master" % rank)
-
-        # -----------------------------------------
-
-        for s in self.slaves:
-            if verb:
-                print("[%d] sending wake-up signal to worker %d" % (rank, s))
-            comm.send(None, dest=s, tag=tags.WAKEUP)
-
-        #################################################
-
-        i1 = Index_no_repetition(k, n)
-        results_sum = 0
-
-        #################################################
-
-        num_workers = siz-1
-        closed_workers = 0
-        while closed_workers < num_workers:
-            # get a msg from any source
-            data = comm.recv(source=mpi.ANY_SOURCE,
-                             tag=mpi.ANY_TAG, status=status)
-            source = status.Get_source()
-            tag = status.Get_tag()
-            if tag == tags.READY:
-                if verb:
-                    print("[0] worker %d is ready" % source)
-
-                #################################################
-
-                if i1.get_is_valid():
-                    job = Job(omegas, deltas, i1.get_i())
-
-                    if verb:
-                        print("[0] sending job to %d" % source)
-                    comm.send(job, dest=source, tag=tags.START)
-
-                    # -------------------
-
-                    i1.compute_next()
-                else:
-
-                    #################################################
-
-                    if verb:
-                        print("[%d] exit %d" % (rank, source))
-                    comm.send(None, dest=source, tag=tags.EXIT)
-
-            elif tag == tags.DONE:
-                if verb:
-                    print("[0] worker %d gives me its results" % source)
-
-                #################################################
-                results_sum = results_sum + data.partial_sum
-                #################################################
-
-            elif tag == tags.EXIT:
-                closed_workers += 1
-                if verb:
-                    print("[0] worker %d exited (%d worker(s) still running)" % (
-                        source, num_workers-closed_workers))
-
-        # -----------------------------------------
-
-        self.killslaves()
-
-        return results_sum
-
-    def killslaves(self):
-        global rank
-        for s in self.slaves:
-            if verb:
-                print("[%d] sending suicide job to %d" % (rank, s))
-            comm.send(None, dest=s, tag=tags.SUICIDE)
-
-
-class Worker:
-    """
-    MPI Process with rank #1-#n
-    """
-
-    def __init__(self, rank):
-        self.rank = rank
-
-    def start(self):
-        """
-        worker loop
-        """
-        if self.rank == 0:
-            raise Exception("this routine should be called with MPI rank!=0")
-
-        if verb:
-            print("[%d] starting worker" % self.rank)
-        while True:
-            comm.recv(source=0, tag=mpi.ANY_TAG, status=status)
-            tag = status.Get_tag()
-            if tag == tags.WAKEUP:
-                if verb:
-                    print("[%d] waking up" % self.rank)
-                while True:
-                    comm.send(None, dest=0, tag=tags.READY)
-                    job = comm.recv(source=0, tag=mpi.ANY_TAG, status=status)
-                    tag = status.Get_tag()
-                    if tag == tags.START:
-                        if verb:
-                            print("[%d] starting job" % self.rank)
-                        job.execute()
-                        if verb:
-                            print("[%d] sending job results" % self.rank)
-                        comm.send(job, dest=0, tag=tags.DONE)
-                    elif tag == tags.EXIT:
-                        if verb:
-                            print("[%d] sending exit confirmation" % self.rank)
-                        comm.send(None, dest=0, tag=tags.EXIT)
-                        break
-            elif tag == tags.SUICIDE:
-                if verb:
-                    print("[%d] I'm dying..." % self.rank)
-                break
diff --git a/katoptron/eigenvalues.py b/katoptron/eigenvalues.py
deleted file mode 100644
index ac08a75a..00000000
--- a/katoptron/eigenvalues.py
+++ /dev/null
@@ -1,637 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import numpy as np
-
-from scipy.linalg import eig
-
-tol = 1e-6
-
-
-class Gauss_Seidel:
-    def __init__(self, A, n=1, damping=1.):
-        from scipy.sparse import tril
-        from scipy.sparse import triu
-        from scipy.sparse import eye
-        from scipy.sparse import diags
-
-        D = diags(A.diagonal(), 0)
-        E = -tril(A, -1)
-        F = -triu(A, 1)
-
-        self.x = np.zeros((A.shape[0],))
-
-        self.M = (D-damping*E).tocsr()
-        self.N = damping*F+(1-damping)*D
-        self.damping = damping
-        self.n = n
-
-        self.shape = [A.shape[0], A.shape[0]]
-
-    def dot(self, b):
-        from scipy.sparse.linalg import spsolve_triangular
-        self.x = spsolve_triangular(self.M, self.damping*b)
-        for i in range(0, self.n-1):
-            self.x = spsolve_triangular(
-                self.M, self.N.dot(self.x)+self.damping*b)
-        return self.x
-
-
-class SIMPLE_preconditioned_matrix:
-    def __init__(self, Q, invQ, G, GT, R, invR, omega=1.):
-        from scipy.sparse import diags
-        self.n1 = Q.shape[0]
-        self.n2 = G.shape[1]
-
-        self.x = np.zeros((self.n1+self.n2,))
-        self.x_tmp = np.zeros((self.n1+self.n2,))
-
-        self.omega = omega
-
-        self.Q = Q
-        self.G = G
-        self.GT = GT
-
-        self.R = R
-
-        self.invQ = invQ
-        self.invR = invR
-
-        Qdiag = Q.diagonal()
-        self.invD = diags(1 / Qdiag, 0)
-
-        self.shape = [Q.shape[0]+G.shape[1], Q.shape[0]+G.shape[1]]
-
-    def dot(self, b):
-        n1 = self.n1
-        n2 = self.n2
-
-        self.x[0:n1] = self.invQ.dot(b[0:n1])
-        self.x[n1:n1+n2] = self.invR.dot(b[n1:n1+n2]-self.GT.dot(self.x[0:n1]))
-
-        self.x_tmp[0:n1] = self.x[0:n1] - self.omega * \
-            self.invD.dot(self.G.dot(self.x[n1:n1+n2]))
-        self.x_tmp[n1:n1+n2] = self.omega*self.x[n1:n1+n2]
-
-        self.x[0:n1] = self.Q.dot(self.x_tmp[0:n1]) + \
-            self.G.dot(self.x_tmp[n1:n1+n2])
-        self.x[n1:n1+n2] = self.GT.dot(self.x_tmp[0:n1])
-
-        return self.x
-
-
-def read_mm(filename, ensemble_id=-1, is_sparse=True):
-    from scipy.sparse import csr_matrix
-
-    X_dim = np.genfromtxt(filename, skip_header=1, max_rows=1)
-    m = X_dim[0].astype(int)
-    n = X_dim[1].astype(int)
-
-    if is_sparse:
-        nnz = X_dim[2].astype(int)
-        if ensemble_id == -1:
-            # No ensemble typed data
-            X = np.loadtxt(filename, skiprows=2)
-
-            row = X[:, 0].astype(int)-1
-            col = X[:, 1].astype(int)-1
-            data = X[:, 2]
-
-        else:
-            # Ensemble typed data
-            X = np.genfromtxt(filename, skip_header=2,
-                              usecols=(0, 1, 3+ensemble_id))
-
-            row = X[:, 0].astype(int)-1
-            col = X[:, 1].astype(int)-1
-            data = X[:, 2]
-
-        mask = data != 0.
-        A = csr_matrix((data[mask], (row[mask], col[mask])), shape=(m, n))
-        B = A.tocsc()
-    else:
-        X = np.loadtxt(filename, skiprows=2)
-        if n != 1:
-            B = X.reshape((m, n)).T
-        else:
-            B = X.reshape((m,))
-
-    return B
-
-
-def create_block(A11, A12, A21, A22):
-    from scipy.sparse import bmat
-    A = bmat([[A11, A12], [A21, A22]])
-    return A
-
-
-def get_symmetrical_part(A):
-    A2 = A
-    tmp = A - A.T
-    A2[tmp != 0] = 0
-    return A2
-
-
-def Schur_complement(GT, invQ, G):
-    R = -GT*invQ*G
-    return R
-
-
-def approx_Schur_complement(Q, G, GT):
-    from scipy.sparse import diags
-    Qdiag = Q.diagonal()
-    invD = diags(1 / Qdiag, 0)
-    R = Schur_complement(GT, invD, G)
-    return R
-
-
-def SIMPLE_prec(Q, invQ, G, GT, R, invR, use_invQG=False, omega=1.):
-    from scipy.sparse import eye
-    from scipy.sparse import diags
-    Qdiag = Q.diagonal()
-    invD = diags(1 / Qdiag, 0)
-    n1 = Q.shape[0]
-    n2 = R.shape[0]
-    if use_invQG:
-        print('Warning: use_invQG is OK in SIMPLE only if we use a direct solver for each block for now')
-        print('Warning: this returned the preconditioned matrix and not the preconditioner matrix')
-        GTinvQ = invQ.T
-        invP = create_block(eye(n1)-(eye(n1)-Q*invD)*G*invR *
-                            GTinvQ, (eye(n1)-Q*invD)*G*invR, None, eye(n2))
-    else:
-        B = create_block(eye(n1), -omega*invD*G, None, omega*eye(n2))
-        invM = create_block(invQ, None, -invR*GT*invQ, invR)
-        invP = B*invM
-
-    return invP
-
-
-def compute_inv(A):
-    from scipy.sparse.linalg import inv
-    invA = inv(A)
-    return invA
-
-
-def compute_inv_on_image(A, B):
-    # Compute the inverse of A applied on the image of B:
-    # invAB = A^{—1} * B
-    from scipy.sparse.linalg import spsolve
-    from scipy.sparse import issparse
-
-    if issparse(B):
-        B2 = B.todense()
-    else:
-        B2 = B
-
-    invAB = spsolve(A, B2)
-    return invAB
-
-
-def compute_inv_GS(A, n, damping=1.):
-    from scipy.sparse import tril
-    from scipy.sparse import triu
-    from scipy.sparse import eye
-    from scipy.sparse import diags
-    from scipy.sparse import issparse
-    Adiag = A.diagonal()
-    D = diags(Adiag, 0)
-    E = -tril(A, -1)
-    F = -triu(A, 1)
-
-    M = (D-damping*E).tocsc()
-    N = damping*F+(1-damping)*D
-    invM = compute_inv(M)
-    invMN = invM*N
-    invA = invM*damping
-
-    invMN_pow = invMN
-
-    for i in range(0, n-1):
-        invA = invA + invMN_pow*invM*damping
-        invMN_pow = invMN_pow * invMN
-
-    return invA
-
-
-def compute_VW(A, b, m=0, N=1):
-    from scipy.linalg import qr
-    n = A.shape[0]
-
-    if m == 0:
-        m = n
-
-    V = np.zeros((n, m))
-    W = np.zeros((n, m))
-
-    tmp = b.reshape((n,))
-    previous_vec = np.zeros((n,))
-    V[:, 0] = tmp / np.linalg.norm(tmp)
-    previous_vec = A.dot(V[:, 0])
-    W[:, 0] = previous_vec / np.linalg.norm(previous_vec)
-
-    for i in range(1, m):
-        tmp = previous_vec
-        for j in range(0, i):
-            tmp = tmp - (np.inner(tmp, V[:, j])) * V[:, j]
-        norm = np.linalg.norm(tmp)
-        if norm <= tol:
-            m = i
-            break
-        tmp = tmp / norm
-        V[:, i] = tmp
-        previous_vec = A.dot(V[:, i])
-        norm = np.linalg.norm(previous_vec)
-        W[:, i] = previous_vec / norm
-    V = V[:, 0:m]
-    W = W[:, 0:m]
-
-    q, r = np.linalg.qr(W)
-    W = q
-
-    for i_N in range(0, N):
-        q, r = np.linalg.qr(V)
-        V = q
-        if i_N != 0:
-            q, r = np.linalg.qr(W)
-            W = q
-
-    product = np.dot(W.T, b)
-
-    for i in range(0, len(product)):
-        if product[i] < 0:
-            W[:, i] = -W[:, i]
-    return V, W
-
-
-def compute_V(A, b, m=0, N=0):
-    n = A.shape[0]
-
-    if m == 0:
-        m = n
-
-    V = np.zeros((n, m))
-
-    tmp = b.reshape((n,))
-    V[:, 0] = tmp / np.linalg.norm(tmp)
-    for i in range(1, m):
-        tmp = A.dot(V[:, i-1])
-        for j in range(0, i):
-            tmp = tmp - (np.inner(tmp, V[:, j])) * V[:, j]
-        norm = np.linalg.norm(tmp)
-        if norm <= tol:
-            m = i
-            break
-        else:
-            tmp = tmp / norm
-            V[:, i] = tmp
-    V = V[:, 0:m]
-    for i in range(0, N):
-        for i in range(1, m):
-            tmp = V[:, i]
-            for j in range(0, i):
-                tmp = tmp - (np.inner(tmp, V[:, j])) * V[:, j]
-            norm = np.linalg.norm(tmp)
-            if norm <= tol:
-                m = i
-                break
-            else:
-                tmp = tmp / norm
-                V[:, i] = tmp
-        V = V[:, 0:m]
-    return V
-
-
-def compute_W(A, b, V, N=0):
-    from scipy.linalg import qr
-    n = V.shape[0]
-    m = V.shape[1]
-    tmp = A.dot(V[:, 0])
-    W = np.zeros((n, m))
-
-    W[:, 0] = tmp / np.linalg.norm(tmp)
-
-    for i in range(1, m):
-        tmp = A.dot(V[:, i])
-        for j in range(0, i):
-            tmp = tmp - (np.inner(tmp, W[:, j])) * W[:, j]
-        norm = np.linalg.norm(tmp)
-        W[:, i] = tmp / norm
-    for i in range(0, N):
-        for i in range(1, m):
-            tmp = W[:, i]
-            for j in range(0, i):
-                tmp = tmp - (np.inner(tmp, W[:, j])) * W[:, j]
-            W[:, i] = tmp / np.linalg.norm(tmp)
-
-    product = np.dot(W.T, b)
-
-    for i in range(0, len(product)):
-        if product[i] < 0:
-            W[:, i] = -W[:, i]
-
-    return W
-
-
-def compute_eig_Q(V, W):
-    Q = np.dot(V.T, W)
-    a, Z = eig(Q)
-
-    return a, Z
-
-
-def compute_deltas_omegas(V, W, b):
-    import cmath
-    deltas, Z = compute_eig_Q(V, W)
-    omegas = np.zeros((Z.shape[1],))
-    for i in range(0, len(omegas)):
-        tmp = cmath.polar(Z[0, i])
-        omegas[i] = tmp[0]**2
-
-    return deltas, omegas
-
-
-def eigenvalues_ZE(Q, invQ, G, GT, R, invR, use_invQG=False):
-    from scipy.sparse import diags
-    from scipy.sparse import issparse
-    Qdiag = Q.diagonal()
-    D = diags(1 / Qdiag, 0)
-    invD = diags(1/ Qdiag, 0)
-    n1 = Q.shape[0]
-    n2 = R.shape[0]
-    v = np.ones((n1+n2,), dtype=complex)
-
-    J = invD*(D-Q)
-    if use_invQG:
-        invQG = invQ
-    else:
-        invQG = invQ*G
-    ZE = J*invQG*invR*GT
-
-    if issparse(ZE):
-        ZE2 = ZE.todense()
-    else:
-        ZE2 = ZE
-
-    a, V = eig(ZE2)
-
-    v[0:n1] = a
-
-    return v
-
-
-def eigenvalues_SR(invQ, G, GT, R, use_invQG=False):
-    from scipy.sparse import issparse
-    n1 = invQ.shape[0]
-    n2 = R.shape[0]
-    v = np.ones((n1+n2,), dtype=complex)
-
-    if use_invQG:
-        invQG = invQ
-    else:
-        invQG = invQ*G
-
-    S = -GT*invQG
-
-    if issparse(S):
-        S2 = S.todense()
-    else:
-        S2 = S
-
-    if issparse(R):
-        R2 = R.todense()
-    else:
-        R2 = R
-
-    a, V = eig(S2, R2)
-
-    v[0:n2] = a
-
-    return v
-
-
-def compute_1_eigenvector_per_eigenvale(A, v):
-    from scipy.sparse.linalg import eigs
-    n = A.shape[0]
-    if len(v) != 1:
-        nv = v.shape[0]
-    else:
-        nv = 1
-
-    V = np.zeros((n, nv))
-    b = np.zeros((n,))
-
-    for i in range(0, nv):
-        values, vectors = eigs(A, k=1, sigma=v[i].real)
-        V[:, i] = vectors.reshape((n,))
-
-    return V
-
-
-def jacobi_iteration_matrix(A):
-    from scipy.sparse import diags
-    from scipy.sparse import eye
-
-    diagA = A.diagonal()
-    invD = diags(1 / diagA, 0)
-
-    jacobi_iteration_matrix = eye(A.shape[0]) - np.dot(invD, A)
-    return jacobi_iteration_matrix
-
-
-def is_SPD(A, tol=1e-8):
-    # Linked to theorem 10.1.2 (p. 512 in Golub, Matrix Computation)
-    # if A is SPD, then GS converge for any initial guess
-    A = A.todense()
-    if not np.allclose(A, A.T, atol=tol):
-        return False
-    else:
-        try:
-            L = np.linalg.cholesky(A)
-        except:
-            return False
-    return True
-
-
-def compute_eig_and_departure_from_orthogonality(A):
-    from numpy import linalg as LA
-    w, v = LA.eig(A)
-    cond = LA.cond(v)
-    return w, v, cond
-
-
-def diagonal_dominance(A):
-    is_diagonal_dominance = True
-    for i in range(0, A.shape[0]):
-        diag = np.absolute(A[i, i])
-        sum_row = np.sum(np.absolute(A[i, :]))
-        sum_row = sum_row - diag
-        if diag <= sum_row:
-            print(str(diag) + ' <= ' + str(sum_row) + ' at row ' + str(i))
-            is_diagonal_dominance = False
-            break
-    return is_diagonal_dominance
-
-
-def spectral_radius(A):
-    from scipy.sparse.linalg import eigs
-    w, v = eigs(A, k=10, which='LM')
-
-    spectral_radius_A = np.absolute(w[0])
-    return spectral_radius_A
-
-
-def sparse_matrix_2_norm(A):
-    from scipy.sparse.linalg import svds
-    u, s, vt = svds(A, k=1)
-    norm_A = s[0]
-    return norm_A
-
-
-def compute_theta(v):
-    import cmath
-    theta = np.zeros((len(v),))
-    for x in range(len(v)):
-        tmp = cmath.polar(v[x])
-        theta[x] = tmp[1]
-    return theta
-
-
-def compute_cum_delta(theta, deltas, omegas, n):
-    theta_discrete = np.linspace(-np.pi, np.pi, n)
-    cum_delta = np.zeros((n,))
-    deriv_delta = np.zeros((n,))
-    cum_delta_omega = np.zeros((n,))
-    deriv_delta_omega = np.zeros((n,))
-
-    n_theta = len(theta)
-
-    first_index = 0
-    second_index = 0
-    for i in range(1, n):
-        for j in range(second_index, n_theta):
-            if theta_discrete[i] < theta[j]:
-                second_index = j
-                break
-        #indices = np.argwhere((theta_discrete[i-1] <= theta ) & (theta < theta_discrete[i]))
-        cum_delta[i] = cum_delta[i-1] + second_index-first_index
-        cum_delta_omega[i] = cum_delta_omega[i-1] + \
-            np.sum(omegas[first_index:second_index])
-        deriv_delta[i] = second_index-(first_index / (2*np.pi/n))
-        deriv_delta_omega[i] = (
-            np.sum(omegas[first_index:second_index])/ (2*np.pi/n))
-        first_index = second_index
-
-    percent_delta = (cum_delta / cum_delta[n-1])
-    percent_delta_omega = (cum_delta_omega / cum_delta_omega[n-1])
-
-    return theta_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega
-
-
-def write_eigenvalues(v, filename):
-    np.savetxt(filename, v, fmt='%f %f')
-
-
-def write_eigenvectors(v, V, filename):
-    np.savetxt(filename+'_eigenvalues.txt', v, fmt='%f %f')
-    nv = V.shape[1]
-    for i in range(0, nv):
-        np.savetxt(filename+'_eigenvectors_'+str(i)+'.txt', V[:, i])
-
-
-def plot_eigenvalues_on_unit_circle(v):
-    import matplotlib.pyplot as plt
-    import cmath
-    fig = plt.figure()
-    ax = fig.add_subplot(111, projection='polar')
-    an = np.linspace(0, 2*np.pi, 100)
-    ax.plot(an, np.ones(an.shape), zorder=1)
-    for x in range(len(v)):
-        tmp = cmath.polar(v[x])
-        r = tmp[0]
-        theta = tmp[1]
-        ax.plot(theta, r, 'ro', zorder=2)
-    ax.set_ylim(0, 1.5)
-    ax.grid(True)
-
-
-def plot_eigenvalues_on_unit_circle_highlight(v, indices):
-    import matplotlib.pyplot as plt
-    import cmath
-    fig = plt.figure()
-    ax = fig.add_subplot(111, projection='polar')
-    an = np.linspace(0, 2*np.pi, 100)
-    ax.plot(an, np.ones(an.shape), zorder=1)
-    for x in range(len(v)):
-        tmp = cmath.polar(v[x])
-        r = tmp[0]
-        theta = tmp[1]
-        if indices[x] == 0:
-            ax.plot(theta, r, 'go', alpha=0.3, zorder=2)
-        else:
-            ax.plot(theta, r, 'ro', zorder=10)
-    ax.set_ylim(0, 1.5)
-    ax.grid(True)
-
-
-def plot_polar_function(theta, f, rho_min, rho_max):
-    import matplotlib.pyplot as plt
-    scale = (rho_max-rho_min) / np.max(f)
-    rho = rho_min + scale*f
-    plt.plot(theta, rho, zorder=3)
-    plt.ylim(0, rho_max+0.5)
-
-
-def plot_omegas(v):
-    import matplotlib.pyplot as plt
-    plt.figure()
-    v = -np.sort(-v)
-    plt.semilogy(v)
-    plt.grid(True)
-
-
-def plot_omegas_percent(v):
-    import matplotlib.pyplot as plt
-    plt.figure()
-    v = -np.sort(-v)
-    plt.plot(np.cumsum(v) / np.sum(v))
-    plt.grid(True)
-
-
-def main():
-    filename = 'ApCTC_mm.txt'
-    Q = read_mm(filename)
-    filename = 'B_mm.txt'
-    GT = read_mm(filename)
-    G = GT.transpose()
-
-    A = create_block(Q, G, GT, None)
-
-    R = approx_Schur_complement(Q, G, GT)
-
-    invQ = compute_inv(Q)
-    invR = compute_inv(R)
-    invP = SIMPLE_prec(Q, invQ, G, GT, R, invR)
-
-    AinvP = (A*invP).todense()
-
-    a, v = eig(AinvP)
-
-    display = 1
-
-    if display:
-        import matplotlib.pyplot as plt
-        for x in range(len(a)):
-            plt.plot(a[x].real, a[x].imag, 'ro', label='python')
-        limit = np.max(np.ceil(np.absolute(a)))
-        plt.xlim((-limit, limit))
-        plt.ylim((-limit, limit))
-        plt.show()
-
-    v2 = eigenvalues_SR(Q, invQ, G, GT, R, invR)
-
-    write_eigenvalues(a, 'eigenvalues_direct_direct.txt')
-    write_eigenvalues(v2, 'eigenvalues_direct_direct_2.txt')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/exe/CMakeLists.txt b/katoptron/exe/CMakeLists.txt
deleted file mode 100644
index d69d7975..00000000
--- a/katoptron/exe/CMakeLists.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-# Example of compiled problem using "katoptron"
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.hpp)
-
-ADD_EXECUTABLE(katoptron1 ${SRCS})
-MACRO_DebugPostfix(katoptron1)
-
-
-# -- Search for Trilinos
-FIND_PACKAGE(Trilinos REQUIRED)
-
-set (_VERB 0)  # set to 1 for debugging
-IF(_VERB)
-    MESSAGE("\nFound Trilinos!  Here are the details: ")
-    MESSAGE("   Trilinos_DIR = ${Trilinos_DIR}")
-    MESSAGE("   Trilinos_VERSION = ${Trilinos_VERSION}")
-    MESSAGE("   Trilinos_PACKAGE_LIST = ${Trilinos_PACKAGE_LIST}")
-    MESSAGE("   Trilinos_LIBRARIES = ${Trilinos_LIBRARIES}")
-    MESSAGE("   Trilinos_INCLUDE_DIRS = ${Trilinos_INCLUDE_DIRS}")
-    MESSAGE("   Trilinos_LIBRARY_DIRS = ${Trilinos_LIBRARY_DIRS}")
-    MESSAGE("   Trilinos_TPL_LIST = ${Trilinos_TPL_LIST}")
-    MESSAGE("   Trilinos_TPL_INCLUDE_DIRS = ${Trilinos_TPL_INCLUDE_DIRS}")
-    MESSAGE("   Trilinos_TPL_LIBRARIES = ${Trilinos_TPL_LIBRARIES}")
-    MESSAGE("   Trilinos_TPL_LIBRARY_DIRS = ${Trilinos_TPL_LIBRARY_DIRS}")
-    MESSAGE("   Trilinos_BUILD_SHARED_LIBS = ${Trilinos_BUILD_SHARED_LIBS}")
-    MESSAGE("End of Trilinos details\n")
-ENDIF()
-
-# MPI check 
-LIST(FIND Trilinos_TPL_LIST MPI MPI_List_ID)
-IF (MPI_List_ID GREATER -1)
-  MESSAGE("-- Checking if MPI is enabled in Trilinos: MPI ENABLED")
-  SET(MYAPP_MPI TRUE)
-  ADD_DEFINITIONS(-DMYAPP_MPI)
-ELSE()
-  MESSAGE("-- Checking if MPI is enabled in Trilinos: MPI NOT ENABLED")
-  SET(MYAPP_MPI FALSE)
-ENDIF()
-
-# Set optional dependency in MyApp on Epetra package: 
-#   this toggles code within  #ifdef MYAPP_EPETRA 
-LIST(FIND Trilinos_PACKAGE_LIST Epetra Epetra_List_ID)
-IF (Epetra_List_ID GREATER -1)
-  ADD_DEFINITIONS(-DMYAPP_EPETRA)
-  MESSAGE("-- Looking for Epetra: -- found, compiling with -DMYAPP_EPETRA")
-  SET(MYAPP_EPETRA TRUE)
-ELSE()
-  MESSAGE("-- Looking for Epetra: -- not found.")
-  SET(MYAPP_EPETRA FALSE)
-ENDIF()
-
-# --------------------------------------------------------------
-# Finds MPI (including MSMPI)
-# --------------------------------------------------------------
-if(WIN32)  
-    FIND_PATH(MPI_INCLUDE_PATH NAMES  mpi.h HINTS "$ENV{MSMPI_INC}")
-    if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
-        set(MS_MPI_ARCH_DIR x64)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB64}")
-    else()
-        set(MS_MPI_ARCH_DIR x86)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB32}")
-    endif()
-else()
-    find_package(MPI REQUIRED)
-    # intel mpi (mpi.h doit etre inclus avant stdio.h)
-    # ou definir ces 2 macros
-    ADD_DEFINITIONS(-DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX)
-endif()
-# --------------------------------------------------------------
-
-list(REMOVE_ITEM Trilinos_LIBRARIES pytrilinos)
-
-INCLUDE_DIRECTORIES( ${MPI_INCLUDE_PATH}
-                     ${PROJECT_SOURCE_DIR}/katoptron/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
-                     ${Trilinos_INCLUDE_DIRS} 
-                     ${Trilinos_TPL_INCLUDE_DIRS}
-                     )
-
-LINK_DIRECTORIES (${Trilinos_LIBRARY_DIRS} ${Trilinos_TPL_LIBRARY_DIRS})
-        
-TARGET_LINK_LIBRARIES(  katoptron1 
-                        katoptron
-                        tbox 
-                        fwk 
-                        ${Trilinos_LIBRARIES}
-                        ${Trilinos_TPL_LIBRARIES}
-                        ${MPI_LIBRARIES})
\ No newline at end of file
diff --git a/katoptron/exe/main.cpp b/katoptron/exe/main.cpp
deleted file mode 100644
index b2e20672..00000000
--- a/katoptron/exe/main.cpp
+++ /dev/null
@@ -1,260 +0,0 @@
-#include "katoptron.h"
-#include "wMshData.h"
-#include "wProblem.h"
-#include "wMedium.h"
-#include "wDirichlet.h"
-#include "wNeumann.h"
-#include "wContact.h"
-#include "IterativeSolver.h"
-#include <mpi.h>
-
-#include "wGmshImport.h"
-#include "wNode.h"
-#include "DiscreteProblem.h"
-
-#include <iostream>
-#include <cmath>
-
-#include <Teuchos_ParameterList.hpp>
-#include <Teuchos_RCP.hpp>
-
-#include <stdlib.h>
-
-#include <xmmintrin.h>
-#include <cmath>
-
-#include "Belos_Tpetra_MP_Vector.hpp"
-#include "BelosLinearProblem.hpp"
-#include "BelosPseudoBlockGmresSolMgr.hpp"
-
-#include "Kokkos_Init.h"
-
-const double pi = std::acos(-1);
-
-template <typename scalar>
-void test_function(int ensemble_size)
-{
-
-    typedef Tpetra::Vector<>::local_ordinal_type local_ordinal_type;
-    typedef Tpetra::Vector<>::global_ordinal_type global_ordinal_type;
-
-    //typedef Tpetra::Map<> map_type;
-    //typedef Tpetra::Vector<>::scalar_type scalar_type;
-    //typedef Tpetra::Vector<>::mag_type magnitude_type;
-    typedef Tpetra::MultiVector<scalar, local_ordinal_type, global_ordinal_type> multivector_type;
-    //typedef Tpetra::CrsMatrix<scalar,local_ordinal_type,global_ordinal_type> crs_matrix_type;
-    //typedef Tpetra::CrsGraph<local_ordinal_type,global_ordinal_type> crs_graph_type;
-    //typedef Tpetra::Vector<scalar,local_ordinal_type,global_ordinal_type> vector_type;
-
-    int worldsize;
-    MPI_Comm_size(MPI_COMM_WORLD, &worldsize);
-
-    int myrank;
-    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
-
-    int DOFperNode = 3;
-
-    std::string mesh_name;
-    mesh_name = "cube.msh";
-
-    auto msh = std::make_shared<MshData>();
-    auto gmshLoader = std::make_shared<GmshImport>(msh);
-    if (worldsize > 1)
-        gmshLoader->load(mesh_name, myrank);
-    else
-        gmshLoader->load(mesh_name, -1);
-
-    //auto numNodes = msh->nodes.size();
-
-    katoptron::Problem pbl(msh, MPI_COMM_WORLD);
-
-    double E_value = 21000.;
-    double nu_value = 0.29;
-    double k = 0.;
-    double d = 0.;
-
-    std::vector<double> E, nu;
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        E.push_back(E_value);
-        nu.push_back(nu_value);
-    }
-
-    katoptron::Medium md0(pbl, std::string("Body 1"), std::string("Mat 1"), E, nu, k, d);
-    pbl.media[0] = &md0;
-
-    std::vector<double> zero, dy;
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        zero.push_back((double)0.);
-        dy.push_back((double)1.);
-    }
-
-    katoptron::Dirichlet ud0(pbl, std::string("Surf 1 1"), std::string("Clamped 1"), 1, zero, 1, zero, 1, zero, 0, zero);
-    katoptron::Dirichlet ud1(pbl, std::string("Surf 1 2"), std::string("Clamped 1"), 0, zero, 1, dy, 0, zero, 0, zero);
-
-    pbl.duBCs[0] = &ud0;
-    pbl.duBCs[1] = &ud1;
-
-    Teuchos::ParameterList solverList;
-
-    scalar tol = (scalar)1E-06;
-    solverList.set(std::string("Convergence Tolerance"), tol);
-    solverList.set(std::string("Maximum Iterations"), 1000);
-    solverList.set(std::string("Verbosity"), 33);
-    solverList.set(std::string("Flexible Gmres"), false);
-    solverList.set(std::string("Output Style"), 1);
-    solverList.set(std::string("Output Frequency"), 1);
-    //solverList.set(std::string("MueLu xml file name"),              std::string("nested_multigrid_2_lvls.xml"));
-    solverList.set(std::string("Output Style"), 1);
-    //solverList.set(std::string("convert MueLu xml file"),           true);
-    solverList.set(std::string("Use preconditioner"), false);
-    solverList.set(std::string("Maximum active set iteration"), 1);
-    solverList.set(std::string("type"), std::string("BlockGmres"));
-
-    RCP<Teuchos::ParameterList> solverList2 = rcp(new Teuchos::ParameterList(solverList));
-
-    RCP<Teuchos::ParameterList> randomParams = rcp(new Teuchos::ParameterList());
-    //katoptron::IterativeSolver slv(pbl, 1, solverList2, DOFperNode, (ensemble_size > 1), ensemble_size);
-
-    auto begin = std::chrono::high_resolution_clock::now();
-
-    Kokkos::View<scalar *, Kokkos::LayoutLeft> a = Kokkos::View<scalar *, Kokkos::LayoutLeft>("KL Random Variables", 0);
-    katoptron::DiscreteProblem<scalar> discreteProblem(pbl, DOFperNode, randomParams, a);
-
-    discreteProblem.computeMatrices();
-    discreteProblem.computeLoads();
-
-    typedef multivector_type MV;
-    typedef typename multivector_type::dot_type belos_scalar;
-    typedef Tpetra::Operator<scalar> OP;
-    typedef Belos::LinearProblem<belos_scalar, MV, OP> BLinProb;
-    RCP<BLinProb> blinproblem = rcp(new BLinProb(discreteProblem.algebraic->matrices->K, discreteProblem.algebraic->vectors->x, discreteProblem.algebraic->vectors->b));
-    blinproblem->setProblem();
-    RCP<Teuchos::ParameterList> belosParams = rcp(new Teuchos::ParameterList(solverList));
-    RCP<Belos::SolverManager<belos_scalar, MV, OP>> blinsolver =
-        rcp(new Belos::PseudoBlockGmresSolMgr<belos_scalar, MV, OP>(blinproblem, belosParams));
-    //Belos::ReturnType ret = blinsolver->solve();
-    blinsolver->solve();
-
-    auto end = std::chrono::high_resolution_clock::now();
-    double total_time = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin).count();
-    std::cout << ensemble_size << " " << total_time << " nanosec" << std::endl;
-}
-
-template <typename scalar>
-void test_function2(int ensemble_size)
-{
-    int worldsize;
-    MPI_Comm_size(MPI_COMM_WORLD, &worldsize);
-
-    int myrank;
-    MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
-
-    int DOFperNode = 3;
-
-    std::string mesh_name;
-    mesh_name = "cube.msh";
-
-    auto msh = std::make_shared<MshData>();
-    auto gmshLoader = std::make_shared<GmshImport>(msh);
-    if (worldsize > 1)
-        gmshLoader->load(mesh_name, myrank);
-    else
-        gmshLoader->load(mesh_name, -1);
-
-    //auto numNodes = msh->nodes.size();
-
-    katoptron::Problem pbl(msh, MPI_COMM_WORLD);
-
-    double E_value = 21000.;
-    double nu_value = 0.29;
-    double k = 0.;
-    double d = 0.;
-
-    std::vector<double> E, nu;
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        E.push_back(E_value);
-        nu.push_back(nu_value);
-    }
-
-    katoptron::Medium md0(pbl, std::string("Body 1"), std::string("Mat 1"), E, nu, k, d);
-    pbl.media[0] = &md0;
-
-    std::vector<double> zero, dy;
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        zero.push_back((double)0.);
-        dy.push_back((double)1.);
-    }
-
-    katoptron::Dirichlet ud0(pbl, std::string("Surf 1 1"), std::string("Clamped 1"), 1, zero, 1, zero, 1, zero, 0, zero);
-    katoptron::Dirichlet ud1(pbl, std::string("Surf 1 2"), std::string("Clamped 1"), 0, zero, 1, dy, 0, zero, 0, zero);
-
-    pbl.duBCs[0] = &ud0;
-    pbl.duBCs[1] = &ud1;
-
-    Teuchos::ParameterList solverList;
-
-    solverList.set(std::string("Ensemble Convergence Tolerance"), 1E-06);
-    solverList.set(std::string("Maximum Iterations"), 1000);
-    solverList.set(std::string("Verbosity"), 33);
-    solverList.set(std::string("Flexible Gmres"), false);
-    solverList.set(std::string("Output Style"), 1);
-    solverList.set(std::string("Output Frequency"), 1);
-    //solverList.set(std::string("MueLu xml file name"),              std::string("nested_multigrid_2_lvls.xml"));
-    solverList.set(std::string("Output Style"), 1);
-    //solverList.set(std::string("convert MueLu xml file"),           true);
-    solverList.set(std::string("Use preconditioner"), false);
-    solverList.set(std::string("Maximum active set iteration"), 1);
-    solverList.set(std::string("type"), std::string("BlockGmres"));
-    solverList.set(std::string("Write vtk files"), false);
-
-    RCP<Teuchos::ParameterList> solverList2 = rcp(new Teuchos::ParameterList(solverList));
-    katoptron::IterativeSolver slv(pbl, solverList2, DOFperNode, ensemble_size);
-
-    auto begin2 = std::chrono::high_resolution_clock::now();
-    slv.start();
-    auto end2 = std::chrono::high_resolution_clock::now();
-    double total_time2 = std::chrono::duration_cast<std::chrono::nanoseconds>(end2 - begin2).count();
-    std::cout << ensemble_size << " " << total_time2 << " nanosec" << std::endl;
-}
-
-int main(int argc, char **argv)
-{
-    size_t case_id, N, k;
-    if (argc > 1)
-        case_id = atoi(argv[1]);
-    else
-        case_id = 1;
-
-    if (argc > 2)
-        N = atoi(argv[2]);
-    else
-        N = 1;
-
-    if (argc > 3)
-        k = atoi(argv[3]);
-    else
-        k = 1;
-
-    MPI_Init(NULL, NULL);
-    Kokkos_Initialize(k);
-    {
-        const int ensemble_size = 1;
-        typedef double scalar;
-        for (size_t i = 0; i < N; ++i)
-        {
-            std::cout << " ==================== " << std::endl;
-            std::cout << " =-- start test " << i << " --= " << std::endl;
-            std::cout << " ==================== " << std::endl;
-            if (case_id == 1)
-                test_function<scalar>(ensemble_size);
-            else
-                test_function2<scalar>(ensemble_size);
-        }
-    }
-    Kokkos_Finalize();
-    MPI_Finalize();
-}
diff --git a/katoptron/matlab/Belos/read_belos.m b/katoptron/matlab/Belos/read_belos.m
deleted file mode 100644
index 6ec2699a..00000000
--- a/katoptron/matlab/Belos/read_belos.m
+++ /dev/null
@@ -1,40 +0,0 @@
-function [it, res] = read_belos(filename)
-
-    it = [];
-    res = [];
-
-    fid = fopen(filename);
-
-    tline = fgetl(fid);
-    while ischar(tline)
-        current_length = length(tline);
-        if current_length > 5
-            if tline(1:4) == 'Iter'             
-                % get the iteration id
-                i_1 = 5;
-                i_2 = 5;
-                while tline(i_2) ~= ','
-                    i_2 = i_2+1;
-                end
-                it = [it, str2num(tline(i_1:i_2-1))];    
-                
-                % get the res
-                i_1 = i_2;
-                i_2 = current_length;
-                while tline(i_1) ~= ':'
-                    i_1 = i_1+1;
-                end
-                res = [res, str2num(tline(i_1+1:i_2))];                   
-            end
-        end
-        tline = fgetl(fid);
-    end
-    
-    figure
-    semilogy(it,res,'*')
-    grid on
-    box on
-    set(gca,'fontsize',18)
-    xlabel('Iteration')
-    ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-end
\ No newline at end of file
diff --git a/katoptron/matlab/Belos/test_belos.m b/katoptron/matlab/Belos/test_belos.m
deleted file mode 100644
index 9242fbe4..00000000
--- a/katoptron/matlab/Belos/test_belos.m
+++ /dev/null
@@ -1,10 +0,0 @@
-clc
-clear all
-[it_0, res_0] = read_belos('belos_nu_0.txt');
-[it_m02, res_m02] = read_belos('belos_nu_m02.txt');
-close all
-[it, res] = read_belos('belos_nu_02.txt');
-hold on
-plot(it_0,res_0,'*g')
-plot(it_m02,res_m02,'*r')
-
diff --git a/katoptron/matlab/Belos/test_belos2.m b/katoptron/matlab/Belos/test_belos2.m
deleted file mode 100644
index a3b0bb19..00000000
--- a/katoptron/matlab/Belos/test_belos2.m
+++ /dev/null
@@ -1,41 +0,0 @@
-clc
-clear all
-[it_wo, res_wo] = read_belos('belos_without_prec.txt');
-[it_w, res_w] = read_belos('belos_with_prec.txt');
-close all
-
-
-figure
-semilogy(it_wo,res_wo,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-hold on
-semilogy(it_w,res_w,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-hold off
-
-figure
-
-H = show_trilinos_graph('matrix_after_bc.text');
-figure
-spy(H)
-
-H_sym = (H'+H)/2;
-HH = H*H';
-
-H_d_max = eigs(H, 1);
-H_d_min = eigs(H, 1, 'sm');
-
-H_sym_d_max = eigs(H_sym, 1);
-H_sym_d_min = eigs(H_sym, 1, 'sm');
-
-HH_d_max = eigs(HH, 1);
-HH_d_min = eigs(HH, 1, 'sm');
\ No newline at end of file
diff --git a/katoptron/matlab/Belos/test_belos3.m b/katoptron/matlab/Belos/test_belos3.m
deleted file mode 100644
index 4ef5180c..00000000
--- a/katoptron/matlab/Belos/test_belos3.m
+++ /dev/null
@@ -1,41 +0,0 @@
-clc
-clear all
-[it_wo, res_wo] = read_belos('belos.txt');
-close all
-
-
-figure
-semilogy(it_wo,res_wo,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-
-figure
-
-H = show_trilinos_graph('matrix_after_bc.text');
-figure
-spy(H)
-
-H_sym = (H'+H)/2;
-HH = H*H';
-
-H_d_max = eigs(H, 1);
-H_d_min = eigs(H, 1, 'sm');
-
-H_sym_d_max = eigs(H_sym, 1);
-H_sym_d_min = eigs(H_sym, 1, 'sm');
-
-HH_d_max = eigs(HH, 1);
-HH_d_min = eigs(HH, 1, 'sm');
-
-%%
-
-mu = H_sym_d_min;
-sigma = sqrt(HH_d_max);
-
-rate = sqrt(1-mu^2/sigma^2)
\ No newline at end of file
diff --git a/katoptron/matlab/Belos/test_belos4.m b/katoptron/matlab/Belos/test_belos4.m
deleted file mode 100644
index 88aa6664..00000000
--- a/katoptron/matlab/Belos/test_belos4.m
+++ /dev/null
@@ -1,84 +0,0 @@
-clc
-clear all
-[it_fg, res_fg] = read_belos('first_guess_belos_50it.text');
-[it_sg, res_sg] = read_belos('second_guess_belos_50it.text');
-
-[it_e1, res_e1] = read_belos('ensemble1_guess_belos_50it.text');
-[it_e2, res_e2] = read_belos('ensemble2_guess_belos_50it.text');
-[it_e3, res_e3] = read_belos('ensemble3_guess_belos_50it.text');
-[it_e4, res_e4] = read_belos('ensemble4_guess_belos_50it.text');
-close all
-
-
-figure
-semilogy(it_fg, res_fg,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-hold on
-semilogy(it_sg, res_sg,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-
-
-figure
-
-semilogy(it_fg, res_fg,'s','LineWidth',0.5,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-hold on
-semilogy(it_sg, res_sg,'s','LineWidth',0.5,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-
-semilogy(it_e1, res_e1,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-
-semilogy(it_e2, res_e2,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','y')
-semilogy(it_e3, res_e3,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','b')
-semilogy(it_e4, res_e4,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-
-
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-
-fg_sol = load('solution_first_guess.text');
-sg_sol = load('solution_second_guess.text');
-
-e1_sol = load('solution_e1_50it.text');
-e2_sol = load('solution_e2_50it.text');
-e3_sol = load('solution_e3_50it.text');
-e4_sol = load('solution_e4_50it.text');
-
-%%
-clc
-max(abs(e1_sol(:,1)-fg_sol))
-max(abs(e1_sol(:,2)-fg_sol))
-max(abs(e2_sol(:,1)-fg_sol))
-max(abs(e2_sol(:,2)-sg_sol))
-max(abs(e3_sol(:,1)-sg_sol))
-max(abs(e3_sol(:,2)-fg_sol))
-max(abs(e4_sol(:,1)-sg_sol))
-max(abs(e4_sol(:,2)-sg_sol))
\ No newline at end of file
diff --git a/katoptron/matlab/Belos/test_belos5.m b/katoptron/matlab/Belos/test_belos5.m
deleted file mode 100644
index 5e73867a..00000000
--- a/katoptron/matlab/Belos/test_belos5.m
+++ /dev/null
@@ -1,43 +0,0 @@
-clc
-clear all
-[it_fg, res_fg] = read_belos('low_frequence_belos.text');
-[it_fgw, res_fgw] = read_belos('low_frequence_w_noise_belos.text');
-[it_sg, res_sg] = read_belos('high_frequence_belos.text');
-[it_sgw, res_sgw] = read_belos('high_frequence_w_noise_belos.text');
-[it_tg, res_tg] = read_belos('low_and_high_frequence_belos.text');
-[it_tgw, res_tgw] = read_belos('low_and_high_frequence_w_noise_belos.text');
-close all
-
-
-figure
-semilogy(it_fg, res_fg,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-hold on
-semilogy(it_fgw, res_fgw,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','r',...
-    'MarkerFaceColor','r')
-semilogy(it_sg, res_sg,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-semilogy(it_sgw, res_sgw,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','g',...
-    'MarkerFaceColor','g')
-semilogy(it_tg, res_tg,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','b')
-semilogy(it_tgw, res_tgw,'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','b',...
-    'MarkerFaceColor','b')
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-
diff --git a/katoptron/matlab/Belos/test_belos6.m b/katoptron/matlab/Belos/test_belos6.m
deleted file mode 100644
index cbad3c02..00000000
--- a/katoptron/matlab/Belos/test_belos6.m
+++ /dev/null
@@ -1,76 +0,0 @@
-close all
-clc
-clear all
-[it_1g, res_1g] = read_belos('multi_low_frequence_belos.text');
-[it_2g, res_2g] = read_belos('multi_high_frequence_belos.text');
-
-[it_3g, res_3g] = read_belos('multi_low_frequence_belos2.text');
-[it_4g, res_4g] = read_belos('multi_high_frequence_belos2.text');
-[it_5g, res_5g] = read_belos('multiFGuess_belos.text');
-[it_6g, res_6g] = read_belos('multiF2Guess_belos.text');
-
-[it_1e, res_1e] = read_belos('multi_frequence_ensemble1_belos.text');
-[it_2e, res_2e] = read_belos('multi_frequence_ensemble2_belos.text');
-
-[it_3e, res_3e] = read_belos('multi_frequence_ensemble3_belos.text');
-[it_4e, res_4e] = read_belos('multi_frequence_ensemble4_belos.text');
-
-
-%%
-close all
-figure
-semilogy(it_1g, res_1g,'o','LineWidth',1,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-hold on
-semilogy(it_2g, res_2g,'o','LineWidth',1,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-semilogy(it_3g, res_3g,'s','LineWidth',1,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-semilogy(it_4g, res_4g,'s','LineWidth',1,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-semilogy(it_5g, res_5g,'s','LineWidth',1,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','b')
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-hold off
-
-figure
-semilogy(it_1g, res_1g,'r','LineWidth',2)
-hold on
-semilogy(it_2g, res_2g,'g','LineWidth',2)
-semilogy(it_1e, res_1e,'o','LineWidth',0.5,...
-    'MarkerSize',16,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-semilogy(it_2e, res_2e,'o','LineWidth',0.5,...
-    'MarkerSize',16,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-semilogy(it_3e, res_3e,'s','LineWidth',0.5,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-semilogy(it_4e, res_4e,'s','LineWidth',0.5,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-hold off
diff --git a/katoptron/matlab/Belos/test_belos7.m b/katoptron/matlab/Belos/test_belos7.m
deleted file mode 100644
index fc0df419..00000000
--- a/katoptron/matlab/Belos/test_belos7.m
+++ /dev/null
@@ -1,204 +0,0 @@
-close all
-clc
-clear all
-
-Afull = load('matrixA.txt');
-A = sparse(Afull);
-
-b = load('vector_after_bc.text');
-
-if size(b,2) == 2
-    b = b(:,1);
-end
-
-solution_1it_ensemble1 = load('multi_frequence_ensemble1_belos_1it_solution.text');
-solution_1it_ensemble2 = load('multi_frequence_ensemble2_belos_1it_solution.text');
-solution_1it_ensemble3 = load('multi_frequence_ensemble3_belos_1it_solution.text');
-solution_1it_ensemble4 = load('multi_frequence_ensemble4_belos_1it_solution.text');
-
-guess_ensemble1 = load('multi_frequence_ensemble1_guess.text');
-guess_ensemble2 = load('multi_frequence_ensemble2_guess.text');
-guess_ensemble3 = load('multi_frequence_ensemble3_guess.text');
-guess_ensemble4 = load('multi_frequence_ensemble4_guess.text');
-
-[it_1e, res_1e] = read_belos('multi_frequence_ensemble1_belos_1it.text');
-[it_2e, res_2e] = read_belos('multi_frequence_ensemble2_belos_1it.text');
-
-[it_3e, res_3e] = read_belos('multi_frequence_ensemble3_belos_1it.text');
-[it_4e, res_4e] = read_belos('multi_frequence_ensemble4_belos_1it.text');
-
-
-%%
-close all
-figure
-semilogy(it_1e, res_1e,'o','LineWidth',0.5,...
-    'MarkerSize',16,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-hold on
-semilogy(it_2e, res_2e,'o','LineWidth',0.5,...
-    'MarkerSize',16,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-semilogy(it_3e, res_3e,'s','LineWidth',0.5,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-semilogy(it_4e, res_4e,'s','LineWidth',0.5,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-hold off
-
-%%
-format long
-solution_1it_ensemble1_1 = solution_1it_ensemble1(:,1);
-solution_1it_ensemble1_2 = solution_1it_ensemble1(:,2);
-
-solution_1it_ensemble2_1 = solution_1it_ensemble2(:,1);
-solution_1it_ensemble2_2 = solution_1it_ensemble2(:,2);
-
-solution_1it_ensemble3_1 = solution_1it_ensemble3(:,1);
-solution_1it_ensemble3_2 = solution_1it_ensemble3(:,2);
-
-solution_1it_ensemble4_1 = solution_1it_ensemble4(:,1);
-solution_1it_ensemble4_2 = solution_1it_ensemble4(:,2);
-
-guess_ensemble5 = guess_ensemble2;
-solution_1it_ensemble5 = [solution_1it_ensemble1(:,1),solution_1it_ensemble4(:,2)];
-
-norm_r0 = zeros(5,3);
-
-norm_r0(1,1) = norm(b-A*guess_ensemble1(:,1));
-norm_r0(1,2) = norm(b-A*guess_ensemble1(:,2));
-
-norm_r0(2,1) = norm(b-A*guess_ensemble2(:,1));
-norm_r0(2,2) = norm(b-A*guess_ensemble2(:,2));
-
-norm_r0(3,1) = norm(b-A*guess_ensemble3(:,1));
-norm_r0(3,2) = norm(b-A*guess_ensemble3(:,2));
-
-norm_r0(4,1) = norm(b-A*guess_ensemble4(:,1));
-norm_r0(4,2) = norm(b-A*guess_ensemble4(:,2));
-
-norm_r0(5,1) = norm(b-A*guess_ensemble5(:,1));
-norm_r0(5,2) = norm(b-A*guess_ensemble5(:,2));
-
-for i=1:5
-    norm_r0(i,3) = sqrt(norm_r0(i,1)^2+norm_r0(i,2)^2);
-end
-
-norm_1it = zeros(5,3);
-
-norm_1it(1,1) = norm(b-A*solution_1it_ensemble1_1);
-norm_1it(1,2) = norm(b-A*solution_1it_ensemble1_2);
-
-norm_1it(2,1) = norm(b-A*solution_1it_ensemble2_1);
-norm_1it(2,2) = norm(b-A*solution_1it_ensemble2_2);
-
-norm_1it(3,1) = norm(b-A*solution_1it_ensemble3_1);
-norm_1it(3,2) = norm(b-A*solution_1it_ensemble3_2);
-
-norm_1it(4,1) = norm(b-A*solution_1it_ensemble4_1);
-norm_1it(4,2) = norm(b-A*solution_1it_ensemble4_2);
-
-norm_1it(5,1) = norm(b-A*solution_1it_ensemble5(:,1));
-norm_1it(5,2) = norm(b-A*solution_1it_ensemble5(:,2));
-
-for i=1:5
-    norm_1it(i,3) = sqrt(norm_1it(i,1)^2+norm_1it(i,2)^2);
-end
-
-ratio_1it_r0 = zeros(5,4);
-for i=1:5
-    ratio_1it_r0(i,1:3) = norm_1it(i,:)./norm_r0(i,:);
-end
-
-ratio_1it_r0(1:4,4) = [res_1e(end);res_2e(end);res_3e(end);res_4e(end)];
-
-clc
-norm_r0
-norm_1it
-ratio_1it_r0
-
-c_1 = zeros(5,3);
-max_abs_error = zeros(5,3);
-
-for i =1:2
-    r0 = b-A*guess_ensemble1(:,i);
-    %r0 = r0 /norm(r0);
-    c_1(1,i) = r0'*(solution_1it_ensemble1(:,i)-guess_ensemble1(:,i))/norm(r0)^2;
-    max_abs_error(1,i) = max(abs(guess_ensemble1(:,i)+c_1(1,i)*r0-solution_1it_ensemble1(:,i)));
-end
-
-guess = [guess_ensemble1(:,1);guess_ensemble1(:,2)];
-r0 = [b-A*guess_ensemble1(:,1);b-A*guess_ensemble1(:,2)];
-sol = [solution_1it_ensemble1(:,1);solution_1it_ensemble1(:,2)];
-%r0 = r0 /norm(r0);
-c_1(1,3) = r0'*(sol-guess)/norm(r0)^2;
-max_abs_error(1,3) = max(abs(guess+c_1(1,3)*r0-sol));
-
-for i =1:2
-    r0 = b-A*guess_ensemble2(:,i);
-    %r0 = r0 /norm(r0);
-    c_1(2,i) = r0'*(solution_1it_ensemble2(:,i)-guess_ensemble2(:,i))/norm(r0)^2;
-    max_abs_error(2,i) = max(abs(guess_ensemble2(:,i)+c_1(2,i)*r0-solution_1it_ensemble2(:,i)));
-end
-
-guess = [guess_ensemble2(:,1);guess_ensemble2(:,2)];
-r0 = [b-A*guess_ensemble2(:,1);b-A*guess_ensemble2(:,2)];
-sol = [solution_1it_ensemble2(:,1);solution_1it_ensemble2(:,2)];
-%r0 = r0 /norm(r0);
-c_1(2,3) = r0'*(sol-guess)/norm(r0)^2;
-max_abs_error(2,3) = max(abs(guess+c_1(2,3)*r0-sol));
-
-for i =1:2
-    r0 = b-A*guess_ensemble3(:,i);
-    %r0 = r0 /norm(r0);
-    c_1(3,i) = r0'*(solution_1it_ensemble3(:,i)-guess_ensemble3(:,i))/norm(r0)^2;
-    max_abs_error(3,i) = max(abs(guess_ensemble3(:,i)+c_1(3,i)*r0-solution_1it_ensemble3(:,i)));
-end
-
-guess = [guess_ensemble3(:,1);guess_ensemble3(:,2)];
-r0 = [b-A*guess_ensemble3(:,1);b-A*guess_ensemble3(:,2)];
-sol = [solution_1it_ensemble3(:,1);solution_1it_ensemble3(:,2)];
-%r0 = r0 /norm(r0);
-c_1(3,3) = r0'*(sol-guess)/norm(r0)^2;
-max_abs_error(3,3) = max(abs(guess+c_1(3,3)*r0-sol));
-
-for i =1:2
-    r0 = b-A*guess_ensemble4(:,i);
-    %r0 = r0 /norm(r0);
-    c_1(4,i) = r0'*(solution_1it_ensemble4(:,i)-guess_ensemble4(:,i))/norm(r0)^2;
-    max_abs_error(4,i) = max(abs(guess_ensemble4(:,i)+c_1(4,i)*r0-solution_1it_ensemble4(:,i)));
-end
-
-guess = [guess_ensemble4(:,1);guess_ensemble4(:,2)];
-r0 = [b-A*guess_ensemble4(:,1);b-A*guess_ensemble4(:,2)];
-sol = [solution_1it_ensemble4(:,1);solution_1it_ensemble4(:,2)];
-%r0 = r0 /norm(r0);
-c_1(4,3) = r0'*(sol-guess)/norm(r0)^2;
-max_abs_error(4,3) = max(abs(guess+c_1(4,3)*r0-sol));
-
-for i =1:2
-    r0 = b-A*guess_ensemble5(:,i);
-    %r0 = r0 /norm(r0);
-    c_1(5,i) = r0'*(solution_1it_ensemble5(:,i)-guess_ensemble5(:,i))/norm(r0)^2;
-    max_abs_error(5,i) = max(abs(guess_ensemble5(:,i)+c_1(5,i)*r0-solution_1it_ensemble5(:,i)));
-end
-
-guess = [guess_ensemble5(:,1);guess_ensemble5(:,2)];
-r0 = [b-A*guess_ensemble5(:,1);b-A*guess_ensemble5(:,2)];
-sol = [solution_1it_ensemble5(:,1);solution_1it_ensemble5(:,2)];
-%r0 = r0 /norm(r0);
-c_1(5,3) = r0'*(sol-guess)/norm(r0)^2;
-max_abs_error(5,3) = max(abs(guess+c_1(5,3)*r0-sol));
-
-c_1
-max_abs_error
\ No newline at end of file
diff --git a/katoptron/matlab/Belos/test_belos8.m b/katoptron/matlab/Belos/test_belos8.m
deleted file mode 100644
index a157e5f1..00000000
--- a/katoptron/matlab/Belos/test_belos8.m
+++ /dev/null
@@ -1,25 +0,0 @@
-%close all
-clc
-clear all
-
-[it_1g, res_1g] = read_belos('multiFGuess_belos.text');
-[it_2g, res_2g] = read_belos('multiFGuess_belos_preconditioned.text');
-
-%%
-close all
-figure
-semilogy(it_1g, res_1g,'o','LineWidth',1,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r')
-hold on
-semilogy(it_2g, res_2g,'o','LineWidth',1,...
-    'MarkerSize',8,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','g')
-grid on
-box on
-set(gca,'fontsize',18)
-xlabel('Iteration')
-ylabel('(2-Norm Res Vec) / (2-Norm Prec Res0)')
-hold off
diff --git a/katoptron/matlab/CPU statistic/amesos2_klu2.mat b/katoptron/matlab/CPU statistic/amesos2_klu2.mat
deleted file mode 100644
index f00dacc8efdaaaef8c220acc2504d01acd889e18..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 694
zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2c0*X0%nwjV*I2WZRmZYXA<mXu_
zgp{T#xTPj37@8;;8e5r|S{a!u7#SFvD-a79V1UunmmkP>2I7i2kCPJ;I2e-56rMF)
zQaHf%)R@Uoe@0r$2j)vU4mzwyp7zN4tkL1gxhrG6BmI+g$D8R_0$zls8_dYzyvWb6
z;S9Sz$f#bpQ9l@t<T#vRJmSM605a^5p|NvR8fU;9)-_@($C!_(PGw!m!*lZI%FN7!
z+8T#9jVW^6VxL<Uns9J9{AB%UIkocV&Y7K-T$(Fix~^Qwb*$hs(}Xk0hm+*ECsodI
zSi^ASf8Uj}6Mk(x^zFcsmz?7DsW&p~=Gd&<^YYie8Qq4Qw?wyoW2kOdNCG*^81ASK
z$o^AG^iw!@TK|-;m+m>A##N77R&j3%NuOu*b)qf9Y(MsNkk;vNtq~CaEOl%UJ@uS5
z$xVapr07zy^kpK(1_ewvB^_#>uC8la9)Iay+hI%h`q@u!vv<4+Dm$}cWBHCP1`aE?
zUEO!^@||x-?wtC|)ahNOwQcRq^BZ1@)%$V<{7L>`c>1gNH*Jp<5u!P^Y4<-o^qm;>
zMy<MiRYTY1b=$vNTSP`&+ZeMo{YJXxL#>Ue_6&#58SMf&uLSPA8I0iI20JgEB`MC}
z?1=!TC6<jA%pI#;ukEy7leO`_;`Luv1;=fEn>Q+4bF1$7Ay{2GVZ)tJjlWmymi@mF
y-aF&{w^<2nvza}np0EmJU-!D3J7?z<*#oy+cw`h_<;d7LTzd76k3mk!U^f7MPZym4

diff --git a/katoptron/matlab/CPU statistic/amesos_belos.mat b/katoptron/matlab/CPU statistic/amesos_belos.mat
deleted file mode 100644
index 7988f8339f14b60bbff74236cf804e5464f57e51..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 745
zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2c0*X0%nwjV*I2WZRmZYXA<mXu_
zgac`})FcH%Qw2j4D<g9&Q)2}q14DBKVgUmTFnap(1KG|%TruZyazX+JLz0=ovxZ9w
z2e_UZGa2g7NK5&^d`ZVahxN$Q9$B9?Iy^adWvq9kf3og)GyO`yi_mm~89AI6`588x
zVb=#4H4SPM1CtvYo0-B<#v?vF0wBYb67>}PPV02~pYhc_r{A_RnejF2$<GXho~e#n
z%+5u1Sy56E^Y}Y#B?O*rPB4s@@M>;gm=Zr>e(=oc^JmYTv3SCyS#eWltxDiA*Jn6s
zW2W<Lqr%MNoJY7E{=E0N%d=8mJBQzA*1Up`;cauD9X~nw)a-TdyLU=VUJx6Y&Cej{
zrIZMAT@}=I2?-GlM{*p_FfMg$5IvR7k`$-G`)K+R^=He(o{JYV-IR2Q(cN_JZ(?Zo
zU%s8!t~XjgySbl}Wuw_G=Og_$PB*taUFY<2`8UJA?fbHh)NH@bVthl!VU^3ZPOF00
z_?U##OW!bDQ%icl5Sae>0pp~w@^S`-`iaIHK`sC?p+Sw|g0p-_R6lyIwETILXO2S|
z8#B+J4gSo`dhBOs{Bw>sb&-jRXMZ;#durj1eLD_Jd%bHB^Mub<7o4stava&Q;vvJe
zYYUhsikml__-{~Rz}9&F7~keJrh~r09I~137#L>l&@LfhJ?|v#PJIn8-?W4WESroQ
zEHc_-UcWvd{7v9jo9zUKO>(!hkA0E<wd&)seHW&^{`IJ-|6BU`h6Ca&cFBKpa9nUE
mzk0)_8UF)nd-w!q-AugZBal$~p&~+c)492K85u-NEbIWebs}W|

diff --git a/katoptron/matlab/CPU statistic/cube_.tex b/katoptron/matlab/CPU statistic/cube_.tex
deleted file mode 100644
index ab7dfc3b..00000000
--- a/katoptron/matlab/CPU statistic/cube_.tex	
+++ /dev/null
@@ -1,238 +0,0 @@
-% This file was created by matlab2tikz.
-% Minimal pgfplots version: 1.3
-%
-%The latest updates can be retrieved from
-%  http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
-%where you can also make suggestions and rate matlab2tikz.
-%
-\begin{tikzpicture}
-
-\begin{axis}[%
-width=6.027778in,
-height=4.669444in,
-at={(1.011111in,0.726389in)},
-scale only axis,
-xmin=1,
-xmax=200,
-xlabel={Number of linear iterations},
-xmajorgrids,
-ymin=0.3,
-ymax=1,
-ylabel={Scalability [-]},
-ymajorgrids,
-legend style={at={(0.97,0.03)},anchor=south east,legend cell align=left,align=left,draw=white!15!black}
-]
-\addplot [color=blue,solid,line width=2.0pt]
-  table[row sep=crcr]{%
-1	0.314102564102564\\
-2	0.411347517730496\\
-3	0.48030303030303\\
-4	0.531746031746032\\
-5	0.571596244131455\\
-6	0.60337552742616\\
-7	0.629310344827586\\
-8	0.650877192982456\\
-9	0.669093851132686\\
-10	0.684684684684685\\
-11	0.698179271708683\\
-12	0.70997375328084\\
-13	0.72037037037037\\
-14	0.72960372960373\\
-15	0.737858719646799\\
-16	0.745283018867924\\
-17	0.751996007984032\\
-18	0.758095238095238\\
-19	0.763661202185792\\
-20	0.768760907504363\\
-21	0.773450586264657\\
-22	0.777777777777778\\
-23	0.781782945736434\\
-24	0.785500747384155\\
-25	0.788961038961039\\
-26	0.792189679218968\\
-27	0.795209176788124\\
-28	0.798039215686274\\
-29	0.800697084917617\\
-30	0.80319803198032\\
-31	0.805555555555556\\
-32	0.807781649245064\\
-33	0.809887005649717\\
-34	0.811881188118812\\
-35	0.813772775991425\\
-36	0.815569487983281\\
-37	0.817278287461774\\
-38	0.818905472636816\\
-39	0.820456754130223\\
-40	0.821937321937322\\
-41	0.823351903435469\\
-42	0.824704813805631\\
-43	0.826\\
-44	0.827241079199304\\
-45	0.82843137254902\\
-46	0.829573934837093\\
-47	0.830671580671581\\
-48	0.831726907630522\\
-49	0.83274231678487\\
-50	0.833720030935808\\
-51	0.83466211085801\\
-52	0.835570469798658\\
-53	0.836446886446886\\
-54	0.837293016558675\\
-55	0.838110403397027\\
-56	0.838900487125957\\
-57	0.839664613278576\\
-58	0.84040404040404\\
-59	0.841119946984758\\
-60	0.841813437703849\\
-61	0.842485549132948\\
-62	0.843137254901961\\
-63	0.843769470404984\\
-64	0.844383057090239\\
-65	0.844978826376286\\
-66	0.845557543231962\\
-67	0.846119929453263\\
-68	0.846666666666667\\
-69	0.847198399085192\\
-70	0.847715736040609\\
-71	0.848219254312743\\
-72	0.848709500274574\\
-73	0.849186991869919\\
-74	0.849652220438737\\
-75	0.850105652403592\\
-76	0.850547730829421\\
-77	0.850978876867594\\
-78	0.851399491094148\\
-79	0.851809954751131\\
-80	0.852210630899156\\
-81	0.852601865488464\\
-82	0.852983988355167\\
-83	0.853357314148681\\
-84	0.853722143195828\\
-85	0.854078762306611\\
-86	0.854427445526194\\
-87	0.854768454837231\\
-88	0.855102040816327\\
-89	0.855428443248093\\
-90	0.855747891699956\\
-91	0.856060606060606\\
-92	0.856366797044763\\
-93	0.856666666666667\\
-94	0.856960408684547\\
-95	0.857248209018121\\
-96	0.85753024614101\\
-97	0.857806691449814\\
-98	0.858077709611452\\
-99	0.858343458890239\\
-100	0.858604091456077\\
-101	0.85885975367501\\
-102	0.859110586383314\\
-103	0.859356725146199\\
-104	0.859598300502124\\
-105	0.859835438193647\\
-106	0.860068259385665\\
-107	0.860296880871853\\
-108	0.860521415270019\\
-109	0.860741971207088\\
-110	0.860958653494329\\
-111	0.861171563293435\\
-112	0.861380798274002\\
-113	0.861586452762923\\
-114	0.861788617886179\\
-115	0.86198738170347\\
-116	0.862182829336114\\
-117	0.86237504308859\\
-118	0.862564102564103\\
-119	0.8627500847745\\
-120	0.862933064244871\\
-121	0.863113113113113\\
-122	0.86329030122476\\
-123	0.863464696223317\\
-124	0.863636363636364\\
-125	0.863805366957646\\
-126	0.863971767725377\\
-127	0.864135625596944\\
-128	0.864296998420221\\
-129	0.864455942301662\\
-130	0.864612511671335\\
-131	0.864766759345073\\
-132	0.86491873658387\\
-133	0.865068493150685\\
-134	0.865216077364763\\
-135	0.865361536153616\\
-136	0.86550491510277\\
-137	0.865646258503401\\
-138	0.865785609397944\\
-139	0.865923009623797\\
-140	0.866058499855199\\
-141	0.866192119643371\\
-142	0.866323907455013\\
-143	0.86645390070922\\
-144	0.866582135812905\\
-145	0.866708648194794\\
-146	0.866833472338059\\
-147	0.866956641811654\\
-148	0.867078189300412\\
-149	0.86719814663396\\
-150	0.867316544814514\\
-151	0.867433414043583\\
-152	0.867548783747661\\
-153	0.867662682602922\\
-154	0.867775138558987\\
-155	0.867886178861789\\
-156	0.86799583007558\\
-157	0.868104118104118\\
-158	0.868211068211068\\
-159	0.868316705039652\\
-160	0.868421052631579\\
-161	0.868524134445287\\
-162	0.868625973373524\\
-163	0.8687265917603\\
-164	0.868826011417225\\
-165	0.86892425363928\\
-166	0.869021339220015\\
-167	0.869117288466228\\
-168	0.869212121212121\\
-169	0.869305856832972\\
-170	0.869398514258327\\
-171	0.869490111984751\\
-172	0.869580668088131\\
-173	0.869670200235571\\
-174	0.869758725696885\\
-175	0.869846261355695\\
-176	0.869932823720176\\
-177	0.870018428933426\\
-178	0.870103092783505\\
-179	0.870186830713147\\
-180	0.870269657829141\\
-181	0.870351588911427\\
-182	0.870432638421879\\
-183	0.870512820512821\\
-184	0.870592149035263\\
-185	0.870670637546879\\
-186	0.870748299319728\\
-187	0.870825147347741\\
-188	0.870901194353963\\
-189	0.87097645279758\\
-190	0.871050934880722\\
-191	0.871124652555057\\
-192	0.871197617528185\\
-193	0.871269841269841\\
-194	0.871341335017898\\
-195	0.871412109784203\\
-196	0.871482176360225\\
-197	0.871551545322547\\
-198	0.871620227038184\\
-199	0.871688231669747\\
-200	0.871755569180462\\
-};
-\addlegendentry{Actual};
-
-\addplot [color=red,dashed,line width=2.0pt]
-  table[row sep=crcr]{%
-1	1\\
-200	1\\
-};
-\addlegendentry{Ideal};
-
-\end{axis}
-\end{tikzpicture}%
\ No newline at end of file
diff --git a/katoptron/matlab/CPU statistic/cube_test_nic4_distributed.m b/katoptron/matlab/CPU statistic/cube_test_nic4_distributed.m
deleted file mode 100644
index 8d3ca747..00000000
--- a/katoptron/matlab/CPU statistic/cube_test_nic4_distributed.m	
+++ /dev/null
@@ -1,182 +0,0 @@
-close all
-clc
-clear all
-
-np = 1:19;
-
-%222.9
-map = [0.1, 58.8, 27.9, 15.1, 10.2, 7.2, 5.2, 4.1, 3.3, 2.7, 2.3, 2.0, 1.6, 1.4, 1.3, 1.1, 1.0, 0.9, 0.8];
-graph = [75.4, 37.8, 27.0, 19.2, 15.7, 13.7, 11.5, 10.2, 8.7, 8.0, 7.5, 6.8, 6.4, 5.8, 5.4, 5.2, 5.0, 4.8, 4.5];
-assembly = [140.3, 71.6, 46.1, 35.9, 28.6, 23.9, 20.0, 17.9, 15.3, 13.9, 12.6, 11.7, 10.4, 10., 9.4, 8.5, 7.7, 7.5, 7.3];
-
-total = map+graph+assembly;
-
-line_width = 1.5;
-bar_width = 1;
-figure
-b1 = bar(np+0.5,map+graph+assembly,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(np+0.5,graph+assembly,bar_width,'g','LineWidth',line_width);
-b3 = bar(np+0.5,assembly,bar_width,'b','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Real CPU cost [sec]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,20])
-legend([b1,b2,b3],'Map','Graph','Matrix')
-%matlab2tikz('mpi_cube_real_CPU.tex')
-
-
-figure
-b1 = bar(np+0.5,(map+graph+assembly)./total,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(np+0.5,(graph+assembly)./total,bar_width,'g','LineWidth',line_width);
-b3 = bar(np+0.5,assembly./total,bar_width,'b','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Relative CPU cost [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,20])
-legend([b1,b2,b3],'Map','Graph','Matrix', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_relative_CPU.tex')
-
-% figure
-% b1 = bar(np+0.5,(map+graph+assembly).*np,bar_width,'r','LineWidth',line_width);
-% hold on 
-% b2 = bar(np+0.5,(graph+assembly).*np,bar_width,'g','LineWidth',line_width);
-% b3 = bar(np+0.5,(assembly).*np,bar_width,'b','LineWidth',line_width);
-% xlabel('MPI process')
-% ylabel('Used CPU cost [sec]')
-% set(gca,'fontsize',18)
-% grid on
-% box on
-% xlim([1,20])
-% legend([b1,b2,b3],'Map','Graph','Matrix')
-%matlab2tikz('mpi_cube_used_CPU.tex')
-
-line_width = 2;
-
-figure
-p1 = plot(np,total(1)./total,'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot(np,np,'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_speed_up.tex')
-
-figure
-p1 =plot(np,(total(1))./(total.*np),'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot([1,19],[1,1],'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_scalability.tex')
-
-%%
-
-figure
-p1 = plot(np,assembly(1)./assembly,'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot(np,np,'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_speed_up.tex')
-
-figure
-p1 =plot(np,(assembly(1))./(assembly.*np),'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot([1,19],[1,1],'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_scalability.tex')
-
-%%
-
-close all
-clc
-clear all
-
-np = 12;
-
-n_iter = linspace(1,200,200);
-
-map = [0.1,2.];
-graph = [75.4,6.8];
-assembly = [140.3,11.7];
-
-for i=1:length(n_iter)
-    total(i,:) = map(:)+graph(:)+n_iter(i)*assembly(:);
-end
-
-line_width = 2;
-
-figure
-p1 = plot(n_iter,total(:,1)./total(:,2),'-b',...
-                'LineWidth',line_width);
-hold on
-p2 = plot([1,max(n_iter)],[np,np],'r--','LineWidth',line_width);
-p3 = plot([1,max(n_iter)],[assembly(1)/assembly(2),assembly(1)/assembly(2)],'g--','LineWidth',line_width);
-xlabel('Number of linear iterations')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,max(n_iter)])
-ylim([10,12])
-legend([p1,p2,p3],'Actual','Ideal','Theoretical limit', 'Location','SouthEast')
-matlab2tikz('cube_linear_speed_mpi.tex')
-
-figure
-p1 =plot(n_iter,total(:,1)./(total(:,2)*np),'-b',...
-                'LineWidth',line_width);
-hold on
-p2 = plot([1,max(n_iter)],[1,1],'r--','LineWidth',line_width);
-p3 = plot([1,max(n_iter)],[assembly(1)/(np*assembly(2)),assembly(1)/(np*assembly(2))],'g--','LineWidth',line_width);
-xlabel('Number of linear iterations')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,max(n_iter)])
-ylim([0.8,1])
-legend([p1,p2,p3],'Actual','Ideal','Theoretical limit', 'Location','SouthEast')
-matlab2tikz('cube_linear_sca_mpi.tex')
-
diff --git a/katoptron/matlab/CPU statistic/cube_test_nic4_distributed_mean.m b/katoptron/matlab/CPU statistic/cube_test_nic4_distributed_mean.m
deleted file mode 100644
index bebb6835..00000000
--- a/katoptron/matlab/CPU statistic/cube_test_nic4_distributed_mean.m	
+++ /dev/null
@@ -1,188 +0,0 @@
-close all
-clc
-clear all
-
-np = 1:19;
-
-%222.9
-map = [0.04, 47.54, 21.84, 12.75, 8.53, 5.76, 4.23, 3.42, 2.6, 2.15, 1.97, 3.25, 4.48, 1.23, 1.05, 3.55, 0.78, 3.58, 3.35];
-graph = [18.92, 12.99, 8.75, 7.55, 6.10, 5.03, 4.37, 3.94, 3.26, 3.03, 2.87, 3.95, 4.84, 2.24, 2.04, 3.81, 1.82, 4.01, 3.69];
-assembly = [51.54, 25.83, 17.31, 14.68, 11.63, 9.56, 8.48, 7.13, 5.94, 5.59, 5.10, 5.98, 8.32, 4.05, 3.74, 5.23, 3.36, 6.46, 6.01];
-export = [1.28, 1.09, 0.78, 0.64, 0.53, 0.45, 0.39, 0.35, 0.33, 0.29, 0.29, 0.35, 0.42, 0.23, 0.21, 0.2, 0.23, 0.35, 0.36];
-
-assembly = assembly + export;
-map = 0*map;
-% 10 error
-
-
-total = map+graph+assembly;
-
-line_width = 1.5;
-bar_width = 1;
-figure
-b1 = bar(np+0.5,map+graph+assembly,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(np+0.5,graph+assembly,bar_width,'g','LineWidth',line_width);
-b3 = bar(np+0.5,assembly,bar_width,'b','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Real CPU cost [sec]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,20])
-legend([b1,b2,b3],'Map','Graph','Matrix')
-%matlab2tikz('mpi_cube_real_CPU.tex')
-
-
-figure
-b1 = bar(np+0.5,(map+graph+assembly)./total,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(np+0.5,(graph+assembly)./total,bar_width,'g','LineWidth',line_width);
-b3 = bar(np+0.5,assembly./total,bar_width,'b','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Relative CPU cost [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,20])
-legend([b1,b2,b3],'Map','Graph','Matrix', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_relative_CPU.tex')
-
-% figure
-% b1 = bar(np+0.5,(map+graph+assembly).*np,bar_width,'r','LineWidth',line_width);
-% hold on 
-% b2 = bar(np+0.5,(graph+assembly).*np,bar_width,'g','LineWidth',line_width);
-% b3 = bar(np+0.5,(assembly).*np,bar_width,'b','LineWidth',line_width);
-% xlabel('MPI process')
-% ylabel('Used CPU cost [sec]')
-% set(gca,'fontsize',18)
-% grid on
-% box on
-% xlim([1,20])
-% legend([b1,b2,b3],'Map','Graph','Matrix')
-%matlab2tikz('mpi_cube_used_CPU.tex')
-
-line_width = 2;
-
-figure
-p1 = plot(np,total(1)./total,'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot(np,np,'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_speed_up.tex')
-
-figure
-p1 =plot(np,(total(1))./(total.*np),'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot([1,19],[1,1],'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_scalability.tex')
-
-%%
-
-figure
-p1 = plot(np,assembly(1)./assembly,'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot(np,np,'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_speed_up.tex')
-
-figure
-p1 =plot(np,(assembly(1))./(assembly.*np),'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot([1,19],[1,1],'r--','LineWidth',line_width);
-xlabel('MPI process')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,19])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_scalability.tex')
-
-%%
-
-close all
-clc
-clear all
-
-np = 12;
-
-n_iter = linspace(1,200,200);
-
-map = [0.1,2.];
-graph = [75.4,6.8];
-assembly = [140.3,11.7];
-
-for i=1:length(n_iter)
-    total(i,:) = map(:)+graph(:)+n_iter(i)*assembly(:);
-end
-
-line_width = 2;
-
-figure
-p1 = plot(n_iter,total(:,1)./total(:,2),'-b',...
-                'LineWidth',line_width);
-hold on
-p2 = plot([1,max(n_iter)],[np,np],'r--','LineWidth',line_width);
-p3 = plot([1,max(n_iter)],[assembly(1)/assembly(2),assembly(1)/assembly(2)],'g--','LineWidth',line_width);
-xlabel('Number of linear iterations')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,max(n_iter)])
-ylim([10,12])
-legend([p1,p2,p3],'Actual','Ideal','Theoretical limit', 'Location','SouthEast')
-matlab2tikz('cube_linear_speed_mpi.tex')
-
-figure
-p1 =plot(n_iter,total(:,1)./(total(:,2)*np),'-b',...
-                'LineWidth',line_width);
-hold on
-p2 = plot([1,max(n_iter)],[1,1],'r--','LineWidth',line_width);
-p3 = plot([1,max(n_iter)],[assembly(1)/(np*assembly(2)),assembly(1)/(np*assembly(2))],'g--','LineWidth',line_width);
-xlabel('Number of linear iterations')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,max(n_iter)])
-ylim([0.8,1])
-legend([p1,p2,p3],'Actual','Ideal','Theoretical limit', 'Location','SouthEast')
-matlab2tikz('cube_linear_sca_mpi.tex')
-
diff --git a/katoptron/matlab/CPU statistic/cube_test_nic4_shared.m b/katoptron/matlab/CPU statistic/cube_test_nic4_shared.m
deleted file mode 100644
index 498ceb2c..00000000
--- a/katoptron/matlab/CPU statistic/cube_test_nic4_shared.m	
+++ /dev/null
@@ -1,283 +0,0 @@
-close all
-clc
-clear all
-
-np = 1;
-
-k = 1:8;
-
-map = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1 ,0.1, 0.1];
-graph = [75.4, 75.5, 60.8,60.4,74.2,73.8,73.6,73.6];
-assembly = [140.3, 74.0, 38.,28.6,30.1,25.0,21.4,19.0];
-
-total = map+graph+assembly;
-
-line_width = 1.5;
-bar_width = 1;
-figure
-b1 = bar(k+0.5,map+graph+assembly,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(k+0.5,graph+assembly,bar_width,'g','LineWidth',line_width);
-b3 = bar(k+0.5,assembly,bar_width,'b','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Real CPU cost [sec]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,9])
-legend([b1,b2,b3],'Map','Graph','Matrix')
-%matlab2tikz('mpi_cube_real_CPU_s1.tex')
-
-
-figure
-b1 = bar(k+0.5,(map+graph+assembly)./total,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(k+0.5,(graph+assembly)./total,bar_width,'g','LineWidth',line_width);
-b3 = bar(k+0.5,assembly./total,bar_width,'b','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Relative CPU cost [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,9])
-legend([b1,b2,b3],'Map','Graph','Matrix', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_relative_CPU_s1.tex')
-
-% figure
-% b1 = bar(np+0.5,(map+graph+assembly).*np,bar_width,'r','LineWidth',line_width);
-% hold on 
-% b2 = bar(np+0.5,(graph+assembly).*np,bar_width,'g','LineWidth',line_width);
-% b3 = bar(np+0.5,(assembly).*np,bar_width,'b','LineWidth',line_width);
-% xlabel('MPI process')
-% ylabel('Used CPU cost [sec]')
-% set(gca,'fontsize',18)
-% grid on
-% box on
-% xlim([1,20])
-% legend([b1,b2,b3],'Map','Graph','Matrix')
-%%matlab2tikz('mpi_cube_used_CPU.tex')
-
-line_width = 2;
-
-figure
-p1 = plot(k,total(1)./total,'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot(k,k,'r--','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,8])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_speed_up_s1.tex')
-
-figure
-p1 =plot(k,(total(1))./(total.*k),'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot([1,8],[1,1],'r--','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,8])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_scalability_s1.tex')
-
-
-%%
-
-close all
-clc
-clear all
-
-np = 16;
-
-k = 1:6;
-
-
-map = [1.1, 1.1, 1.1, 2.6, 2.7,1.1];
-graph = [5.2, 5.2, 5.2, 10.8, 5.2,5.1];
-assembly = [8.5, 4.3, 3.0, 2.3, 1.6,1.6];
-
-total = map+graph+assembly;
-
-line_width = 1.5;
-bar_width = 1;
-figure
-b1 = bar(k+0.5,map+graph+assembly,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(k+0.5,graph+assembly,bar_width,'g','LineWidth',line_width);
-b3 = bar(k+0.5,assembly,bar_width,'b','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Real CPU cost [sec]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,9])
-legend([b1,b2,b3],'Map','Graph','Matrix')
-%matlab2tikz('mpi_cube_real_CPU_s2.tex')
-
-
-figure
-b1 = bar(k+0.5,(map+graph+assembly)./total,bar_width,'r','LineWidth',line_width);
-hold on 
-b2 = bar(k+0.5,(graph+assembly)./total,bar_width,'g','LineWidth',line_width);
-b3 = bar(k+0.5,assembly./total,bar_width,'b','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Relative CPU cost [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,9])
-legend([b1,b2,b3],'Map','Graph','Matrix', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_relative_CPU_s2.tex')
-
-% figure
-% b1 = bar(np+0.5,(map+graph+assembly).*np,bar_width,'r','LineWidth',line_width);
-% hold on 
-% b2 = bar(np+0.5,(graph+assembly).*np,bar_width,'g','LineWidth',line_width);
-% b3 = bar(np+0.5,(assembly).*np,bar_width,'b','LineWidth',line_width);
-% xlabel('MPI process')
-% ylabel('Used CPU cost [sec]')
-% set(gca,'fontsize',18)
-% grid on
-% box on
-% xlim([1,20])
-% legend([b1,b2,b3],'Map','Graph','Matrix')
-%%matlab2tikz('mpi_cube_used_CPU.tex')
-
-line_width = 2;
-
-figure
-p1 = plot(k,total(1)./total,'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot(k,k,'r--','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,8])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_speed_up_s2.tex')
-
-figure
-p1 =plot(k,(total(1))./(total.*k),'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot([1,8],[1,1],'r--','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,8])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_scalability_s2.tex')
-
-%%
-
-figure
-p1 = plot(k,assembly(1)./assembly,'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot(k,k,'r--','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,8])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_speed_up_s2.tex')
-
-figure
-p1 =plot(k,(assembly(1))./(assembly.*k),'-bo',...
-                'LineWidth',line_width,...
-                'MarkerEdgeColor','b',...
-                'MarkerFaceColor',[.49 1 .63],...
-                'MarkerSize',10);
-hold on
-p2 = plot([1,8],[1,1],'r--','LineWidth',line_width);
-xlabel('Threads')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,8])
-legend([p1,p2],'Actual','Ideal', 'Location','SouthEast')
-%matlab2tikz('mpi_cube_scalability_s2.tex')
-
-
-%%
-
-close all
-clc
-clear all
-
-np = 16;
-k = 6;
-
-n_iter = linspace(1,500,200);
-
-map = [1.1,1.1];
-graph = [5.1,5.1];
-assembly = [8.5,1.6];
-
-for i=1:length(n_iter)
-    total(i,:) = map(:)+graph(:)+n_iter(i)*assembly(:);
-end
-
-line_width = 2;
-
-figure
-p1 = plot(n_iter,total(:,1)./total(:,2),'-b',...
-                'LineWidth',line_width);
-hold on
-p2 = plot([1,max(n_iter)],[k,k],'r--','LineWidth',line_width);
-p3 = plot([1,max(n_iter)],[assembly(1)/assembly(2),assembly(1)/assembly(2)],'g--','LineWidth',line_width);
-xlabel('Number of linear iterations')
-ylabel('Speedup [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,max(n_iter)])
-ylim([1,6])
-legend([p1,p2,p3],'Actual','Ideal','Theoretical limit', 'Location','SouthEast')
-%matlab2tikz('cube_linear_speed.tex')
-
-figure
-p1 =plot(n_iter,total(:,1)./(total(:,2)*k),'-b',...
-                'LineWidth',line_width);
-hold on
-p2 = plot([1,max(n_iter)],[1,1],'r--','LineWidth',line_width);
-p3 = plot([1,max(n_iter)],[assembly(1)/(6*assembly(2)),assembly(1)/(6*assembly(2))],'g--','LineWidth',line_width);
-xlabel('Number of linear iterations')
-ylabel('Efficiency [-]')
-set(gca,'fontsize',18)
-grid on
-box on
-xlim([1,max(n_iter)])
-ylim([0,1])
-legend([p1,p2,p3],'Actual','Ideal','Theoretical limit', 'Location','SouthEast')
-%matlab2tikz('cube_linear_sca.tex')
diff --git a/katoptron/matlab/CPU statistic/read_workspace.m b/katoptron/matlab/CPU statistic/read_workspace.m
deleted file mode 100644
index bdfd6a9e..00000000
--- a/katoptron/matlab/CPU statistic/read_workspace.m	
+++ /dev/null
@@ -1,5 +0,0 @@
-function n = read_workspace(path, name, first_id, last_id)
-
-    
-
-end
\ No newline at end of file
diff --git a/katoptron/matlab/Krylov/createVandermond.m b/katoptron/matlab/Krylov/createVandermond.m
deleted file mode 100644
index 957c0fa8..00000000
--- a/katoptron/matlab/Krylov/createVandermond.m
+++ /dev/null
@@ -1,64 +0,0 @@
-clear all
-close all
-clc
-lambda = [1,1,1.0000001,1.000001,3.99999,4,4.00001];
-
-tol = 10^(-8);
-figure
-subplot(1,3,1)
-plot(lambda,ones(size(lambda)),'*')
-grid on
-axis equal
-m = length(lambda);
-
-%m = 10;
-n = 20;
-
-r_eig = ones(m,1);
-% lambda = ones(m,1);
-% for i=1:m
-%     lambda(i) = m+1-i;
-% end
-
-
-
-
-C_eig = zeros(m,n);
-C_eig(:,1) = r_eig;
-ranks = zeros(1,n); 
-ranks(1) = 1;
-
-for i=2:n
-    C_eig(:,i) = diag(lambda)*C_eig(:,i-1);
-    ranks(i) = rank(C_eig(:,1:i),tol);
-end
-
-subplot(1,3,2)
-plot(1:n,ranks,'*')
-xlim([1,n])
-ylim([1,n])
-grid on
-axis equal
-
-C_eig
-
-max_det = zeros(1,n);
-for i=1:n
-    if i > m
-        break
-    end
-    C = nchoosek(1:m,i);
-     
-    for j=1:size(C,1)
-        current_det = det(C_eig(C(j,:),1:i));
-        if current_det > max_det(i)
-            max_det(i) = current_det;
-        end
-    end
-end
-
-subplot(1,3,3)
-plot(1:n,max_det,'*')
-xlim([1,n])
-
-grid on
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/eigenvaluesOneDTest.m b/katoptron/matlab/Multigrid/eigenvaluesOneDTest.m
deleted file mode 100644
index c5f1b793..00000000
--- a/katoptron/matlab/Multigrid/eigenvaluesOneDTest.m
+++ /dev/null
@@ -1,113 +0,0 @@
-clear all
-close all
-clc
-format long
-
-L = 1;
-n = 1:31;
-ni = [1,3,7,15,31];
-
-[ theta, eigenvaluesA, eigenvaluesAh] = oneDLaplacianEigenvalues( n, L );
-
-eigenvaluesAh(:,ni)
-
-figure
-subplot(2,2,1)
-hold on
-for i=1:length(n)
-    for j=1:n(i)
-        if j>(n(i)/2)
-            plot(i,eigenvaluesA(j,i),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','g',...
-            'MarkerFaceColor','g');
-        else
-            plot(i,eigenvaluesA(j,i),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','r',...
-            'MarkerFaceColor','r');
-        end
-    end
-end
-for i=1:(length(n)-1)
-    plot([i,i+1],[eigenvaluesA(n(i),i),eigenvaluesA(n(i+1),i+1)],'k','linewidth',2)
-    plot([i,i+1],[eigenvaluesA(1,i),eigenvaluesA(1,i+1)],'k','linewidth',2)
-end
-hold off
-grid on
-box on
-
-subplot(2,2,2)
-hold on
-for i=1:length(n)
-    for j=1:n(i)
-        if j>(n(i)/2)
-            plot(i,eigenvaluesAh(j,i),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','g',...
-            'MarkerFaceColor','g');
-        else
-            plot(i,eigenvaluesAh(j,i),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','r',...
-            'MarkerFaceColor','r');
-        end
-    end
-end
-for i=1:(length(n)-1)
-    plot([i,i+1],[eigenvaluesAh(n(i),i),eigenvaluesAh(n(i+1),i+1)],'k','linewidth',2)
-    plot([i,i+1],[eigenvaluesAh(1,i),eigenvaluesAh(1,i+1)],'k','linewidth',2)
-end
-hold off
-grid on
-box on
-
-subplot(2,2,3)
-hold on
-for i=1:length(ni)
-    for j=1:ni(i)
-        if j>(n(ni(i))/2)
-            plot(n(ni(i)),eigenvaluesA(j,ni(i)),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','g',...
-            'MarkerFaceColor','g');
-        else
-            plot(n(ni(i)),eigenvaluesA(j,ni(i)),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','r',...
-            'MarkerFaceColor','r');
-        end
-    end
-end
-for i=1:(length(n)-1)
-    plot([i,i+1],[eigenvaluesA(n(i),i),eigenvaluesA(n(i+1),i+1)],'k','linewidth',2)
-    plot([i,i+1],[eigenvaluesA(1,i),eigenvaluesA(1,i+1)],'k','linewidth',2)
-end
-hold off
-grid on
-box on
-
-subplot(2,2,4)
-hold on
-for i=1:length(ni)
-    for j=1:n(ni(i))
-        if j>(n(ni(i))/2)
-            plot(n(ni(i)),eigenvaluesAh(j,ni(i)),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','g',...
-            'MarkerFaceColor','g');
-        else
-            plot(n(ni(i)),eigenvaluesAh(j,ni(i)),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','r',...
-            'MarkerFaceColor','r');
-        end
-    end
-end
-for i=1:(length(n)-1)
-    plot([i,i+1],[eigenvaluesAh(n(i),i),eigenvaluesAh(n(i+1),i+1)],'k','linewidth',2)
-    plot([i,i+1],[eigenvaluesAh(1,i),eigenvaluesAh(1,i+1)],'k','linewidth',2)
-end
-hold off
-grid on
-box on
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/oneDLaplacianEigenvalues.m b/katoptron/matlab/Multigrid/oneDLaplacianEigenvalues.m
deleted file mode 100644
index 738ba5e7..00000000
--- a/katoptron/matlab/Multigrid/oneDLaplacianEigenvalues.m
+++ /dev/null
@@ -1,17 +0,0 @@
-function [ theta, eigenvaluesA, eigenvaluesAh] = oneDLaplacianEigenvalues( n, L )
-
-theta = zeros(max(n),length(n));
-eigenvaluesA = zeros(max(n),length(n));
-eigenvaluesAh = zeros(max(n),length(n));
-
-for i=1:length(n)
-    h = L/(n(i)+1);
-
-    for k=1:n(i)
-        theta(k,i) = k*pi/(n(i)+1);
-        eigenvaluesA(k,i) = 4*sin(theta(k,i)/2)^2;
-        eigenvaluesAh(k,i) = eigenvaluesA(k,i)/h^2;
-    end
-end
-end
-
diff --git a/katoptron/matlab/Multigrid/oneDLaplacianMatrix.m b/katoptron/matlab/Multigrid/oneDLaplacianMatrix.m
deleted file mode 100644
index 6c765de6..00000000
--- a/katoptron/matlab/Multigrid/oneDLaplacianMatrix.m
+++ /dev/null
@@ -1,9 +0,0 @@
-function [ A,Ah,h ] = oneDLaplacianMatrix( n, L )
-
-    h = L/(n+1);
-    A = full(gallery('tridiag',n,-1,2,-1));
-    Ah = (1/h^2)*A;
-
-
-end
-
diff --git a/katoptron/matlab/Multigrid/oneDProlongation.m b/katoptron/matlab/Multigrid/oneDProlongation.m
deleted file mode 100644
index 40ccea79..00000000
--- a/katoptron/matlab/Multigrid/oneDProlongation.m
+++ /dev/null
@@ -1,10 +0,0 @@
-function [I_H_h,n2] = oneDProlongation(n)
-
-    n2 = (n-1)/2;
-    I_H_h = zeros(n,n2);
-    
-    for i=1:n2
-        I_H_h((2*(i-1))+(1:3),i) = [1;2;1];
-    end
-    I_H_h = I_H_h/2;
-end
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/oneDRestriction.m b/katoptron/matlab/Multigrid/oneDRestriction.m
deleted file mode 100644
index 63a0d07b..00000000
--- a/katoptron/matlab/Multigrid/oneDRestriction.m
+++ /dev/null
@@ -1,10 +0,0 @@
-function [I_h_H,n2] = oneDRestriction(n)
-
-    n2 = (n-1)/2;
-    I_h_H = zeros(n2,n);
-    
-    for i=1:n2
-        I_h_H(i,(2*(i-1))+(1:3)) = [1,2,1];
-    end
-    I_h_H = I_h_H/4;
-end
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/read_agregate.m b/katoptron/matlab/Multigrid/read_agregate.m
deleted file mode 100644
index 051fa1e6..00000000
--- a/katoptron/matlab/Multigrid/read_agregate.m
+++ /dev/null
@@ -1,20 +0,0 @@
-function [indices] = read_agregate(filename,agg_id,proc)
-
-    indices = [];
-
-    fid = fopen(filename);
-
-    line_start = ['Agg ',int2str(agg_id), ' Proc ', int2str(proc),':'];
-    tline = fgetl(fid);
-    while ischar(tline)
-        current_length = length(tline);
-        
-        if tline(1:length(line_start)) == line_start
-             indices = str2num(tline((length(line_start)+1):current_length));
-                
-             break
-        end
-        tline = fgetl(fid);
-    end
-    fclose(fid);
-end
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/richardsonSmoother.m b/katoptron/matlab/Multigrid/richardsonSmoother.m
deleted file mode 100644
index fdf159e9..00000000
--- a/katoptron/matlab/Multigrid/richardsonSmoother.m
+++ /dev/null
@@ -1,14 +0,0 @@
-function [x_new, S_nu] = richardsonSmoother(x_old,A,b,omega,nu)
-
-    I = eye(size(A));
-    S = I-omega*A;
-    g = omega*b;
-    
-    for i=1:nu
-        x_new = S*x_old+g;
-        x_old = x_new;
-    end
-    
-    S_nu = S^nu;
-end
-   
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/testOneDProlongation.m b/katoptron/matlab/Multigrid/testOneDProlongation.m
deleted file mode 100644
index dfbfc579..00000000
--- a/katoptron/matlab/Multigrid/testOneDProlongation.m
+++ /dev/null
@@ -1,96 +0,0 @@
-clear all
-close all
-clc
-format long
-
-L = 1;
-nH = 7;
-n = 2*nH+1;
-mode = 4;
-[ Ah,Ahh,h ] = oneDLaplacianMatrix( n, L );
-
-
-
-H = 2 *h;
-
-[I_h_H,n2] = oneDRestriction(n);
-[I_H_h,n2] = oneDProlongation(n);
-AH = I_h_H * Ah * I_H_h;
-
-
-
-[Vh,D] = eig(Ah);
-d = diag(D);
-[VH,DH] = eig(AH);
-
-
-V = zeros(n,n);
-for k =1:n
-    for i =1:n
-        V(i,k) = sin(i*k*pi/(n+1));
-    end
-end
-
-
-[Vh,Dh] = eig(Ah);
-
-tmp = diag(V'*Vh);
-for i=1:n
-   if tmp(i) < 0
-       Vh(:,i) = -Vh(:,i);
-   end
-end
-tmp = diag(VH'*I_h_H*Vh);
-for i=1:((n-1)/2)
-   VH(:,i) = VH(:,i)/tmp(i); % change the norm 
-end
-
-xH = VH(:,mode);
-maxx = max(abs(xH));
-xH = xH / maxx;
-
-xh = I_H_h * xH;
-
-figure
-subplot(2,3,1)
-plot([0:H:L],[0;xH;0],'o-','linewidth',2)
-
-box on 
-grid on
-subplot(2,3,2)
-plot([0:h:L],[0;xh;0],'o-','linewidth',2)
-box on 
-grid on
-subplot(2,3,3)
-plot([0:h:L],[0;xh;0],'o-','linewidth',2)
-hold on
-plot([0:H:L],[0;xH;0],'o-','linewidth',2)
-plot([0:H:L],[0;VH(:,mode);0]*norm([0;xH;0])/norm([0;VH(:,mode);0]),'o--','linewidth',2)
-box on 
-grid on
-subplot(2,3,4)
-
-plot(0:((n-1)/2-1),VH'*xH,'o-','linewidth',2)
-box on 
-grid on
-subplot(2,3,5)
-plot(0:(n-1),Vh'*xh,'o-','linewidth',2)
-box on 
-grid on
-subplot(2,3,6)
-plot(0:(n-1),Vh'*xh,'o-','linewidth',2)
-hold on
-plot(0:((n-1)/2-1),VH'*xH,'o-','linewidth',2)
-plot(0:((n-1)/2-1),VH'*VH(:,mode)*norm([0;xH;0])/norm([0;VH(:,mode);0]),'o--','linewidth',2)
-
-box on 
-grid on
-
-figure
-tmp = Vh'*xh;
-subplot(2,2,1)
-plot(0:(nH-1),VH'*xH,'o-','linewidth',2)
-subplot(2,2,2)
-plot(0:(nH-1),tmp(1:nH),'o-','linewidth',2)
-subplot(2,2,4)
-plot(0:(nH-1),tmp(n:-1:n-nH+1),'o-','linewidth',2)
diff --git a/katoptron/matlab/Multigrid/testOneDRestriction.m b/katoptron/matlab/Multigrid/testOneDRestriction.m
deleted file mode 100644
index 4680a027..00000000
--- a/katoptron/matlab/Multigrid/testOneDRestriction.m
+++ /dev/null
@@ -1,98 +0,0 @@
-
-clear all
-close all
-clc
-format long
-
-L = 1;
-n = 15;
-nH = (n-1)/2;
-mode = 12;
-[ Ah,Ahh,h ] = oneDLaplacianMatrix( n, L );
-
-
-
-H = 2 *h;
-
-[I_h_H,n2] = oneDRestriction(n);
-[I_H_h,n2] = oneDProlongation(n);
-AH = I_h_H * Ah * I_H_h;
-
-
-
-[Vh,D] = eig(Ah);
-d = diag(D);
-[VH,DH] = eig(AH);
-
-
-V = zeros(n,n);
-for k =1:n
-    for i =1:n
-        V(i,k) = sin(i*k*pi/(n+1));
-    end
-end
-
-
-[Vh,Dh] = eig(Ah);
-
-tmp = diag(V'*Vh);
-for i=1:n
-   if tmp(i) < 0
-       Vh(:,i) = -Vh(:,i);
-   end
-end
-tmp = diag(VH'*I_h_H*Vh);
-for i=1:((n-1)/2)
-   VH(:,i) = VH(:,i)/tmp(i); % change the norm 
-end
-
-xh = Vh(:,mode);
-maxx = max(abs(xh));
-xh = xh / maxx;
-
-xH = I_h_H * xh;
-
-figure
-subplot(2,3,1)
-plot([0:h:L],[0;xh;0],'o-','linewidth',2)
-box on 
-grid on
-subplot(2,3,2)
-plot([0:H:L],[0;xH;0],'o-','linewidth',2)
-box on 
-grid on
-subplot(2,3,3)
-plot([0:h:L],[0;xh;0],'o-','linewidth',2)
-hold on
-plot([0:H:L],[0;xH;0],'o-','linewidth',2)
-if mode <= size(VH,2)
-    plot([0:H:L],[0;VH(:,mode);0]*norm([0;xH;0])/norm([0;VH(:,mode);0]),'o--','linewidth',2)
-end
-box on 
-grid on
-subplot(2,3,4)
-plot(0:(n-1),Vh'*xh,'o-','linewidth',2)
-box on 
-grid on
-subplot(2,3,5)
-plot(0:((n-1)/2-1),VH'*xH,'o-','linewidth',2)
-box on 
-grid on
-subplot(2,3,6)
-plot(0:(n-1),Vh'*xh,'o-','linewidth',2)
-hold on
-plot(0:((n-1)/2-1),VH'*xH,'o-','linewidth',2)
-if mode <= size(VH,2)
-    plot(0:((n-1)/2-1),VH'*VH(:,mode)*norm([0;xH;0])/norm([0;VH(:,mode);0]),'o--','linewidth',2)
-end
-box on 
-grid on
-
-figure
-tmp = Vh'*xh;
-subplot(2,2,1)
-plot(0:(nH-1),tmp(1:nH),'o-','linewidth',2)
-subplot(2,2,3)
-plot(0:(nH-1),tmp(n:-1:n-nH+1),'o-','linewidth',2)
-subplot(2,2,2)
-plot(0:(nH-1),VH'*xH,'o-','linewidth',2)
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/testOneDTwoGridCycle.m b/katoptron/matlab/Multigrid/testOneDTwoGridCycle.m
deleted file mode 100644
index a3602964..00000000
--- a/katoptron/matlab/Multigrid/testOneDTwoGridCycle.m
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-clear all
-close all
-clc
-format long
-
-L = 1;
-n = 21;
-
-nu1 = 10;
-nu2 = 10;
-
-eigeninitialguess = 1;
-numeigenvectors = n;
-ndisplay = n*10;
-b_eigenvectors = [];%[1,12];
-b_coeff = [];%[1/20,4];
-
-omega = 1/4;
-dimension = 1;
-display = 0;
-
-%%
-[ Ah,Ahh,h ] = oneDLaplacianMatrix( n, L );
-
-V = zeros(n,n);
-for k =1:n
-    for i =1:n
-        V(i,k) = sin(i*k*pi/(n+1));
-    end
-end
-
-
-[Vh,Dh] = eig(Ah);
-
-tmp = diag(V'*Vh);
-for i=1:n
-   if tmp(i) < 0
-       Vh(:,i) = -Vh(:,i);
-   end
-end
-
-
-x = zeros(n,1);
-xdisplay = (linspace(0,1,ndisplay))';
-ydisplay = zeros(ndisplay,1);
-if eigeninitialguess
-    for k =1:numeigenvectors
-        x = x + sin(k*pi*(h:h:(L-h))');%Vh(:,k);
-        ydisplay = ydisplay + sin(k*pi*xdisplay);%+ max(Vh(:,k))*sin(k*pi*xdisplay)/max(sin(k*pi*xdisplay));
-    end
-else
-    x = rand(n,1)-0.5;%V(:,1)+V(:,5)+V(:,21)+V(:,29)+V(:,209);
-    maxx = max(abs(x));
-    x = x / maxx;
-end
-b =  zeros(size(x));
-for i =1:length(b_coeff) 
-    b = b + b_coeff(i)*sin(b_eigenvectors(i)*pi*(h:h:(L-h))');
-end
-
-x_old = x;
-[x,M,x1,xH1,xH,xcc,AH,I_h_H,I_H_h] = twoGridCycle(x,Ah,b,omega,nu1,nu2,dimension,display,L,h);
-x_new = x;
-
-max(abs(x))
-
-
-[VH,DH] = eig(AH);
-
-tmp = diag(VH'*I_h_H*Vh);
-for i=1:((n-1)/2)
-   VH(:,i) = VH(:,i)/tmp(i); % change the norm 
-end
-
-scrsz = get(groot,'Screensize');
-figure('Position',[1 1 scrsz(3) scrsz(4)])
-subplot(2,1,1)
-plot([0:h:L],[0;x_old;0],'linewidth',3)
-hold on
-plot([0:h:L],[0;x1;0],'linewidth',3)
-plot([0:2*h:L],[0;xH1;0],'linewidth',3)
-plot([0:2*h:L],[0;xH;0],'linewidth',3)
-plot([0:h:L],[0;xcc;0],'linewidth',3)
-
-box on 
-grid on 
-plot([0:h:L],[0;x_new;0],'linewidth',3)
-if eigeninitialguess
-    plot(xdisplay,ydisplay,'--','linewidth',2)
-end
-hold off
-legend('initial guess','smoothed guess','smoothed guess on coars mesh','coars mesh solution','coars corrected','smoothed corrected' ,'Location','northoutside','Orientation','horizontal')
-
-
-subplot(2,1,2)
-plot(0:(n-1),Vh'*x_old,'linewidth',3)
-hold on
-plot(0:(n-1),Vh'*x1,'linewidth',3)
-plot(0:((n-1)/2-1),VH'*xH1,'linewidth',3)
-plot(0:((n-1)/2-1),VH'*xH,'linewidth',3)
-plot(0:(n-1),Vh'*xcc,'linewidth',3)
-box on 
-grid on 
-plot(0:(n-1),Vh'*x_new,'linewidth',3)
-
-%plot(0:((n-1)/2-1),VH'*I_h_H*x_old,'linewidth',3)
-
-xlim([0,n-1])
-hold off
-
-
-B = Ah;
-[V,D] = eig(B);
-d = diag(D);
-figure
-subplot(2,3,1)
-plot(real(d),imag(d),'o')
-axis equal
-subplot(2,3,4)
-nbins = 100;
-hist(real(d),nbins)
-
-B = M;
-[V,D] = eig(B);
-d = diag(D);
-subplot(2,3,2)
-plot(real(d),imag(d),'o')
-axis equal
-subplot(2,3,5)
-nbins = 100;
-hist(real(d),nbins)
-
-B = M*Ah;
-[V,D] = eig(B);
-d = diag(D);
-subplot(2,3,3)
-plot(real(d),imag(d),'o')
-axis equal
-subplot(2,3,6)
-nbins = 100;
-hist(real(d),nbins)
-
-% B\(M*b)
-% Ah\b
-% x_new
-
diff --git a/katoptron/matlab/Multigrid/testRichardsonSmoother.m b/katoptron/matlab/Multigrid/testRichardsonSmoother.m
deleted file mode 100644
index 4361c424..00000000
--- a/katoptron/matlab/Multigrid/testRichardsonSmoother.m
+++ /dev/null
@@ -1,33 +0,0 @@
-
-clear all
-close all
-clc
-format long
-
-L = 1;
-n = 100;
-[ A,Ah,h ] = oneDLaplacianMatrix( n, L );
-
-[V,D] = eig(A);
-d = diag(D);
-
-figure
-plot(d)
-
-
-x = V(:,1)+V(:,5)+V(:,52);
-maxx = max(abs(x));
-x = x / maxx;
-b = zeros(size(x));
-
-omega = 1/4;
-nu = 20;
-figure
-plot([0:h:L],[0;x;0],'linewidth',2)
-hold on
-for i=1:10
-    x = richardsonSmoother(x,A,b,omega,nu);
-    plot([0:h:L],[0;x;0],'linewidth',2)
-end
-box on 
-grid on
\ No newline at end of file
diff --git a/katoptron/matlab/Multigrid/twoGridCycle.m b/katoptron/matlab/Multigrid/twoGridCycle.m
deleted file mode 100644
index 08d6327a..00000000
--- a/katoptron/matlab/Multigrid/twoGridCycle.m
+++ /dev/null
@@ -1,101 +0,0 @@
-function [xh,M,x1,xH1,xH,xcc,AH,I_h_H,I_H_h] = twoGridCycle(xh,Ah,bh,omega,nu1,nu2,dimension,display,L,h)
-
-if display
-    scrsz = get(groot,'Screensize');
-    figure('Position',[1 scrsz(4)/2 scrsz(3) scrsz(4)/2])
-    plot([0:h:L],[0;xh;0],'linewidth',3)
-    hold on
-    box on 
-    grid on 
-end
-
-I = eye(size(Ah));
-
-n = size(Ah,1);
-if dimension == 1 
-    [I_h_H,n2] = oneDRestriction(n);
-    [I_H_h,n2] = oneDProlongation(n);
-end
-
-AH = I_h_H * Ah * I_H_h;
-
-S_nu1 = eye(size(Ah));
-if nu1 >= 1
-    [xh, S_nu1] = richardsonSmoother(xh,Ah,bh,omega,nu1);
-end
-
-x1 = xh;
-
-if display
-    plot([0:h:L],[0;xh;0],'linewidth',3)
-end
-
-rh = bh - Ah * xh;
-
-rH = I_h_H * rh;
-
-invAH = inv(AH);
-deltaH = invAH*rH;
-
-xH1 = I_h_H * xh;
-xH = xH1 + deltaH;
-
-
-xh = xh + I_H_h * deltaH;
-max(abs(xh - I_H_h * xH))
-%xh = I_H_h * xH;
-%xH = I_h_H * xh;
-max(abs(invAH*I_h_H*bh))
-max(abs(xH))
-
-xcc = xh;
-
-if display
-    plot([0:h:L],[0;xh;0],'linewidth',3)
-end
-
-S_nu2 = eye(size(Ah));
-if nu2 >= 1
-    [xh, S_nu2] = richardsonSmoother(xh,Ah,bh,omega,nu2);
-end
-
-if display
-    plot([0:h:L],[0;xh;0],'linewidth',3)
-    hold off
-    legend('initial guess','smoothed guess','coars corrected','smoothed corrected' ,'Location','northoutside','Orientation','horizontal')
-end
-
-disp '1'
-(I-I_H_h*invAH*I_h_H*Ah)*x1
-disp '2'
-xcc
-
-M = S_nu2*(I-I_H_h*invAH*I_h_H*Ah)*S_nu1;
-
-if display
-    rank(I_H_h*AH*I_h_H)
-    [V,D] = eig(I_H_h*AH*I_h_H);
-    [V,D2] = eig(I-inv(M)*Ah);%eig(I-I_H_h*invAH*I_h_H*Ah);
-    d = diag(D);    
-    figure('Position',[1 1 scrsz(3)/2 scrsz(4)/3])
-
-    plot(real(d),imag(d),'o','LineWidth',1,...
-            'MarkerSize',8,...
-            'MarkerEdgeColor','b',...
-            'MarkerFaceColor','b');
-    box on 
-    grid on   
-    
-    figure('Position',[scrsz(3)/2 1 scrsz(3)/2 scrsz(4)/3])
-    edges = [-0.01:0.02:1.01];
-    h = histogram(real(d),edges);
-%     d0 = find(d < 0.5);
-%     d1 = find(d > 0.5);
-%     plot([0,1],[length(d0),length(d1)],'o','LineWidth',1,...
-%             'MarkerSize',8,...
-%             'MarkerEdgeColor','b',...
-%             'MarkerFaceColor','b'); 
-    box on 
-    grid on   
-end
-end
\ No newline at end of file
diff --git a/katoptron/matlab/Richardson/oneDLaplacian.m b/katoptron/matlab/Richardson/oneDLaplacian.m
deleted file mode 100644
index ac4ac5f5..00000000
--- a/katoptron/matlab/Richardson/oneDLaplacian.m
+++ /dev/null
@@ -1,117 +0,0 @@
-clear all
-close all
-clc
-
-n = 10;
-nIter = n;
-A = full(gallery('tridiag',n,-1,2,-1));
-
-L = 1;
-l = linspace(0,L,n);
-h = l(2)-l(1);
-A = A*(1/h^2);
-A(1,1) = 1;
-A(1,2) = 0;
-A(end,end-1) = 0;
-A(end,end) = 1;
-
-b = zeros(n,1);
-
-[V,D] = eig(A);
-
-max(max(abs(A*V-V*D)))
-
-d = diag(D);
-%[d,indices] = sort(d,'descend');
-%V = V(:,indices);
-
-tau = 1/max(d);
-
-x = zeros(n,nIter);
-coef = zeros(n,nIter);
-x(:,1) = V(:,1);
-res = zeros(nIter,1);
-res(1) = norm(b - A*x(:,1));
-coef(:,1) = V'*x(:,1);
-for i=2:nIter
-    x(:,i) = x(:,i-1) + tau*(b - A*x(:,i-1));
-    res(i) = norm(b - A*x(:,i));
-    
-    coef(:,i) = V'*x(:,i);
-end
-
-figure
-subplot(2,2,1)
-ax = gca;
-plot(3,d(3),'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor',ax.ColorOrder(ax.ColorOrderIndex,:));
-hold on 
-for i=4:n
-    if ax.ColorOrderIndex > size(ax.ColorOrder,1)
-        ax.ColorOrderIndex = 1;
-    end    
-    plot(i,d(i),'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor',ax.ColorOrder(ax.ColorOrderIndex,:));
-end
-plot(1,d(1),'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r');
-plot(2,d(2),'o','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor','r');
-hold off
-xlim([1,n])
-
-subplot(2,2,2)
-ax = gca;
-plot(1:nIter,abs(coef(3,:)),'o-','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor',ax.ColorOrder(ax.ColorOrderIndex,:));
-hold on 
-for i=4:n
-    if ax.ColorOrderIndex > size(ax.ColorOrder,1)
-        ax.ColorOrderIndex = 1;
-    end
-    plot(1:nIter,abs(coef(i,:)),'o-','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor',ax.ColorOrder(ax.ColorOrderIndex,:));
-end
-hold off
-xlim([1,nIter])
-
-subplot(2,2,3)
-ax = gca;
-plot(l,x(:,1),'o-','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor',ax.ColorOrder(ax.ColorOrderIndex,:));
-hold on 
-for i=2:nIter
-    if ax.ColorOrderIndex > size(ax.ColorOrder,1)
-        ax.ColorOrderIndex = 1;
-    end
-    plot(l,x(:,i),'o-','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor',ax.ColorOrder(ax.ColorOrderIndex,:));
-end
-hold off
-
-subplot(2,2,4)
-ax = gca;
-plot(1:nIter,res,'o-','LineWidth',0.5,...
-    'MarkerSize',6,...
-    'MarkerEdgeColor','k',...
-    'MarkerFaceColor',ax.ColorOrder(ax.ColorOrderIndex,:));
-xlim([1,nIter])
-
-%  https://www.wolframalpha.com/input/?i=g(n%2B1)%3D(1-a)*g(n)%2Bb
-%  https://www.wolframalpha.com/input/?i=lim+n-%3Einf+((1-a)%5En+*(-a*b%2Ba*c%2Bb)%2B(a-1)*b)%2F((a-1)*a)+if+-1+%3C+(1-a)+%3C1
diff --git a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/.gitattributes b/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/.gitattributes
deleted file mode 100755
index e966fd74..00000000
--- a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/.gitattributes
+++ /dev/null
@@ -1,2 +0,0 @@
-# Declare files that will always have CRLF line endings on checkout.
-*.* text eol=crlf
diff --git a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/LICENSE.TXT b/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/LICENSE.TXT
deleted file mode 100755
index d0381d6d..00000000
--- a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/LICENSE.TXT
+++ /dev/null
@@ -1,176 +0,0 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
diff --git a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/README.md b/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/README.md
deleted file mode 100755
index 4f692454..00000000
--- a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-BrewerMap
-=========
-
-The complete palette of ColorBrewer colormaps for MATLAB. Simple selection by scheme name and map length.
-
-
-One function provides the complete selection of the ColorBrewer colorschemes, especially intended for mapping and plots with attractive, distinguishable colors.
-
-Simple to use: only the the colormap length and the colorscheme name are needed to select and define an output colormap. The colorscheme can be preselected by the user, after which only the colormap length is required to define an output colormap.
-
-The function can be used as a drop-in replacement for the inbuilt colormap functions and it is compatible with all MATLAB functions that require a colormap. The function consists of just one M-file that provides all of the ColorBrewer colorschemes (no mat file, no third party files, no file-clutter!). Downsampling or interpolation of the nodes occurs automatically, if required (interpolation occurs within the Lab colorspace). As an option, the colormap can be returned reversed.
-
-Calling brewermap('demo') creates a figure that displays all of the ColorBrewer colorschemes.
-
-This product includes color specifications and designs developed by Cynthia Brewer (http://colorbrewer.org/). See the ColorBrewer website for further information about each colorscheme, colorblind suitability, licensing, and citations.
-
-### Examples ###
-
-    % Plot a scheme's RGB values:
-    rgbplot(brewermap(9,'Blues')) % standard
-    rgbplot(brewermap(9,'*Blues')) % reversed
-    
-    % View information about a colorscheme:
-    [~,num,typ] = brewermap(0,'Paired')
-    num = 12
-    typ = 'Qualitative'
-    
-    % Multiline plot using matrices:
-    N = 6;
-    axes('ColorOrder',brewermap(N,'Pastel2'),'NextPlot','replacechildren')
-    X = linspace(0,pi*3,1000);
-    Y = bsxfun(@(x,n)n*sin(x+2*n*pi/N), X.', 1:N);
-    plot(X,Y, 'linewidth',4)
-    
-    % Multiline plot in a loop:
-    N = 6;
-    set(0,'DefaultAxesColorOrder',brewermap(N,'Accent'))
-    X = linspace(0,pi*3,1000);
-    Y = bsxfun(@(x,n)n*sin(x+2*n*pi/N), X.', 1:N);
-    for n = 1:N
-    plot(X(:),Y(:,n), 'linewidth',4);
-    hold all
-    end
-    
-    % New colors for the COLORMAP example:
-    load spine
-    image(X)
-    colormap(brewermap([],'YlGnBu'))
-    
-    % New colors for the SURF example:
-    [X,Y,Z] = peaks(30);
-    surfc(X,Y,Z)
-    colormap(brewermap([],'RdYlGn'))
-    axis([-3,3,-3,3,-10,5])
-    
-    % New colors for the CONTOURCMAP example:
-    brewermap('PuOr'); % preselect the colorscheme.
-    load topo
-    load coast
-    figure
-    worldmap(topo, topolegend)
-    contourfm(topo, topolegend);
-    contourcmap('brewermap', 'Colorbar','on', 'Location','horizontal',...
-    'TitleString','Contour Intervals in Meters');
-    plotm(lat, long, 'k')
-
-### Note ###
-
-Note that the function BREWERMAP:
-* Consists of just one convenient M-file (no .mat files or file clutter).
-* No third-party file dependencies.
-* Interpolates in the Lab colorspace.
-* Requires just the standard ColorBrewer scheme name to select the colorscheme.
-* Supports all ColorBrewer colorschemes.
-* Outputs a MATLAB standard N-by-3 numeric RGB array.
-* Default length is the standard MATLAB default colormap length (same length as the current colormap).
-* Is compatible with all MATLAB functions that use colormaps (eg: CONTOURCMAP).
-* Includes the option to reverse the colormap color sequence.
-* Does not break ColorBrewer's Apache license conditions!
-
-### Note ###
-
-The following files are part of GitHub/git repository, and are not required for using this submission in MATLAB:
-* .gitattributes
-* README.md
diff --git a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap.m b/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap.m
deleted file mode 100755
index 4d2b0dc6..00000000
--- a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap.m
+++ /dev/null
@@ -1,518 +0,0 @@
-function [map,num,typ] = brewermap(N,scheme)
-% The complete selection of ColorBrewer colorschemes (RGB colormaps).
-%
-% (c) 2017 Stephen Cobeldick
-%
-% Returns any RGB colormap from the ColorBrewer colorschemes, especially
-% intended for mapping and plots with attractive, distinguishable colors.
-%
-%%% Syntax (basic):
-%  map = brewermap(N,scheme); % Select colormap length, select any colorscheme.
-%  brewermap('demo')          % View a figure showing all ColorBrewer colorschemes.
-%  schemes = brewermap('list')% Return a list of all ColorBrewer colorschemes.
-%  [map,num,typ] = brewermap(...); % The current colorscheme's number of nodes and type.
-%
-%%% Syntax (preselect colorscheme):
-%  old = brewermap(scheme); % Preselect any colorscheme, return the previous scheme.
-%  map = brewermap(N);      % Use preselected scheme, select colormap length.
-%  map = brewermap;         % Use preselected scheme, length same as current figure's colormap.
-%
-% See also CUBEHELIX RGBPLOT3 RGBPLOT COLORMAP COLORBAR PLOT PLOT3 SURF IMAGE AXES SET JET LBMAP PARULA
-%
-%% Color Schemes %%
-%
-% This product includes color specifications and designs developed by Cynthia Brewer.
-% See the ColorBrewer website for further information about each colorscheme,
-% colour-blind suitability, licensing, and citations: http://colorbrewer.org/
-%
-% To reverse the colormap sequence simply prefix the string token with '*'.
-%
-% Each colorscheme is defined by a set of hand-picked RGB values (nodes).
-% If <N> is greater than the requested colorscheme's number of nodes then:
-%  * Sequential and Diverging schemes are interpolated to give a larger
-%    colormap. The interpolation is performed in the Lab colorspace.
-%  * Qualitative schemes are repeated to give a larger colormap.
-% Else:
-%  * Exact values from the ColorBrewer sequences are returned for all schemes.
-%
-%%% Diverging
-%
-% Scheme|'BrBG'|'PRGn'|'PiYG'|'PuOr'|'RdBu'|'RdGy'|'RdYlBu'|'RdYlGn'|'Spectral'|
-% ------|------|------|------|------|------|------|--------|--------|----------|
-% Nodes |  11  |  11  |  11  |  11  |  11  |  11  |   11   |   11   |    11    |
-%
-%%% Qualitative
-%
-% Scheme|'Accent'|'Dark2'|'Paired'|'Pastel1'|'Pastel2'|'Set1'|'Set2'|'Set3'|
-% ------|--------|-------|--------|---------|---------|------|------|------|
-% Nodes |   8    |   8   |   12   |    9    |    8    |   9  |  8   |  12  |
-%
-%%% Sequential
-%
-% Scheme|'Blues'|'BuGn'|'BuPu'|'GnBu'|'Greens'|'Greys'|'OrRd'|'Oranges'|'PuBu'|
-% ------|-------|------|------|------|--------|-------|------|---------|------|
-% Nodes |   9   |  9   |  9   |  9   |   9    |   9   |  9   |    9    |  9   |
-%
-% Scheme|'PuBuGn'|'PuRd'|'Purples'|'RdPu'|'Reds'|'YlGn'|'YlGnBu'|'YlOrBr'|'YlOrRd'|
-% ------|--------|------|---------|------|------|------|--------|--------|--------|
-% Nodes |   9    |  9   |    9    |  9   |  9   |  9   |   9    |   9    |   9    |
-%
-%% Examples %%
-%
-%%% Plot a scheme's RGB values:
-% rgbplot(brewermap(9,'Blues'))  % standard
-% rgbplot(brewermap(9,'*Blues')) % reversed
-%
-%%% View information about a colorscheme:
-% [~,num,typ] = brewermap(0,'Paired')
-% num = 12
-% typ = 'Qualitative'
-%
-%%% Multi-line plot using matrices:
-% N = 6;
-% axes('ColorOrder',brewermap(N,'Pastel2'),'NextPlot','replacechildren')
-% X = linspace(0,pi*3,1000);
-% Y = bsxfun(@(x,n)n*sin(x+2*n*pi/N), X(:), 1:N);
-% plot(X,Y, 'linewidth',4)
-%
-%%% Multi-line plot in a loop:
-% N = 6;
-% set(0,'DefaultAxesColorOrder',brewermap(N,'Accent'))
-% X = linspace(0,pi*3,1000);
-% Y = bsxfun(@(x,n)n*sin(x+2*n*pi/N), X(:), 1:N);
-% for n = 1:N
-%     plot(X(:),Y(:,n), 'linewidth',4);
-%     hold all
-% end
-%
-%%% New colors for the COLORMAP example:
-% load spine
-% image(X)
-% colormap(brewermap([],'YlGnBu'))
-%
-%%% New colors for the SURF example:
-% [X,Y,Z] = peaks(30);
-% surfc(X,Y,Z)
-% colormap(brewermap([],'RdYlGn'))
-% axis([-3,3,-3,3,-10,5])
-%
-%%% New colors for the CONTOURCMAP example:
-% brewermap('PuOr'); % preselect the colorscheme.
-% load topo
-% load coast
-% figure
-% worldmap(topo, topolegend)
-% contourfm(topo, topolegend);
-% contourcmap('brewermap', 'Colorbar','on', 'Location','horizontal',...
-% 'TitleString','Contour Intervals in Meters');
-% plotm(lat, long, 'k')
-%
-%% Input and Output Arguments %%
-%
-%%% Inputs (*=default):
-% N = NumericScalar, N>=0, an integer to define the colormap length.
-%   = *[], use the length of the current figure's colormap (see COLORMAP).
-%   = StringToken, to preselect this ColorBrewer scheme for later use.
-%   = 'demo', create a figure showing all of the ColorBrewer schemes.
-%   = 'list', return a cell array of strings listing all ColorBrewer schemes.
-% scheme = StringToken, a ColorBrewer scheme name to select the colorscheme.
-%        = *none, use the preselected colorscheme (must be set previously!).
-%
-%%% Outputs:
-% map = NumericMatrix, size Nx3, a colormap of RGB values between 0 and 1.
-% num = NumericScalar, the number of nodes defining the ColorBrewer scheme.
-% typ = String, the colorscheme type: 'Diverging'/'Qualitative'/'Sequential'.
-% OR
-% schemes = CellArray of Strings, a list of every ColorBrewer scheme.
-%
-% [map,num,typ] = brewermap(*N,*scheme)
-% OR
-% schemes = brewermap('list')
-
-%% Input Wrangling %%
-%
-persistent tok isr
-%
-str = 'A colorscheme must be preselected before calling without a scheme token.';
-%
-% The order of names in <vec>: case-insensitive sort by type and then by name:
-vec = {'BrBG';'PiYG';'PRGn';'PuOr';'RdBu';'RdGy';'RdYlBu';'RdYlGn';'Spectral';'Accent';'Dark2';'Paired';'Pastel1';'Pastel2';'Set1';'Set2';'Set3';'Blues';'BuGn';'BuPu';'GnBu';'Greens';'Greys';'OrRd';'Oranges';'PuBu';'PuBuGn';'PuRd';'Purples';'RdPu';'Reds';'YlGn';'YlGnBu';'YlOrBr';'YlOrRd'};
-%
-if nargin==0 % Current figure's colormap length and the preselected colorscheme.
-	assert(~isempty(tok),str)
-	[map,num,typ] = bmSample([],isr,tok);
-elseif nargin==2 % Input colormap length and colorscheme.
-	assert(isnumeric(N),'The first argument must be a scalar numeric, or empty.')
-	assert(ischar(scheme)&&isrow(scheme),'The second argument must be a string.')
-	tmp = strncmp('*',scheme,1);
-	[map,num,typ] = bmSample(N,tmp,bmMatch(vec,scheme(1+tmp:end)));
-elseif isnumeric(N) % Input colormap length and the preselected colorscheme.
-	assert(~isempty(tok),str)
-	[map,num,typ] = bmSample(N,isr,tok);
-else% String
-	assert(ischar(N)&&isrow(N),'The first argument must be a string or scalar numeric.')
-	switch lower(N)
-		case 'demo' % Plot all colorschemes in a figure.
-			bmDemoFig(vec)
-		case 'list' % Return a list of all colorschemes.
-			[num,typ] = cellfun(@bmSelect,vec,'UniformOutput',false);
-			num = cat(1,num{:});
-			map = vec;
-		otherwise % Store the preselected colorscheme token.
-			map = tok;
-			tmp = strncmp('*',N,1);
-			tok = bmMatch(vec,N(1+tmp:end));
-			[num,typ] = bmSelect(tok);
-			isr = tmp; % only update |isr| when name is okay.
-	end
-end
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%brewermap
-function tok = bmMatch(vec,str)
-idx = strcmpi(vec,str);
-assert(any(idx),'Colorscheme "%s" is not supported. Check the token tables.',str)
-tok = vec{idx};
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmMatch
-function [map,num,typ] = bmSample(N,isr,tok)
-% Pick a colorscheme, downsample/interpolate to the requested colormap length.
-%
-if isempty(N)
-	N = size(get(gcf,'colormap'),1);
-else
-	assert(isscalar(N)&&isreal(N),'First argument must be a real numeric scalar, or empty.')
-end
-%
-% obtain nodes:
-[num,typ,rgb] = bmSelect(tok);
-% downsample:
-[idx,itp] = bmIndex(N,num,typ,isr);
-map = rgb(idx,:);
-% interpolate:
-if itp
-	M = [3.2406,-1.5372,-0.4986;-0.9689,1.8758,0.0415;0.0557,-0.2040,1.0570];
-	wpt = [0.95047,1,1.08883]; % D65
-	%
-	map = bmRGB2Lab(map,M,wpt); % optional
-	%
-	% Extrapolate a small amount at both ends:
-	%vec = linspace(0,num+1,N+2);
-	%map = interp1(1:num,map,vec(2:end-1),'linear','extrap');
-	% Interpolation completely within ends:
-	map = interp1(1:num,map,linspace(1,num,N),'spline');
-	%
-	map = bmLab2RGB(map,M,wpt); % optional
-end
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmSample
-function rgb = bmGammaCor(rgb)
-% Gamma correction of RGB data.
-idx = rgb <= 0.0031308;
-rgb(idx) = 12.92 * rgb(idx);
-rgb(~idx) = real(1.055 * rgb(~idx).^(1/2.4) - 0.055);
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmGammaCor
-function rgb = bmGammaInv(rgb)
-% Inverse gamma correction of RGB data.
-idx = rgb <= 0.04045;
-rgb(idx) = rgb(idx) / 12.92;
-rgb(~idx) = real(((rgb(~idx) + 0.055) / 1.055).^2.4);
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmGammaInv
-function lab = bmRGB2Lab(rgb,M,wpt) % Nx3 <- Nx3
-% Convert a matrix of RGB values to Lab.
-%
-%applycform(rgb,makecform('srgb2lab','AdaptedWhitePoint',wpt))
-%
-% RGB2XYZ:
-xyz = (M \ bmGammaInv(rgb.')).';
-% Remember to include my license when copying my implementation.
-% XYZ2Lab:
-xyz = bsxfun(@rdivide,xyz,wpt);
-idx = xyz>(6/29)^3;
-F = idx.*(xyz.^(1/3)) + ~idx.*(xyz*(29/6)^2/3+4/29);
-lab(:,2:3) = bsxfun(@times,[500,200],F(:,1:2)-F(:,2:3));
-lab(:,1) = 116*F(:,2) - 16;
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmRGB2Lab
-function rgb = bmLab2RGB(lab,M,wpt) % Nx3 <- Nx3
-% Convert a matrix of Lab values to RGB.
-%
-%applycform(lab,makecform('lab2srgb','AdaptedWhitePoint',wpt))
-%
-% Lab2XYZ
-tmp = bsxfun(@rdivide,lab(:,[2,1,3]),[500,Inf,-200]);
-tmp = bsxfun(@plus,tmp,(lab(:,1)+16)/116);
-idx = tmp>(6/29);
-tmp = idx.*(tmp.^3) + ~idx.*(3*(6/29)^2*(tmp-4/29));
-xyz = bsxfun(@times,tmp,wpt);
-% Remember to include my license when copying my implementation.
-% XYZ2RGB
-rgb = max(0,min(1, bmGammaCor(xyz * M.')));
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%cbLab2RGB
-function bmDemoFig(seq)
-% Creates a figure showing all of the ColorBrewer colorschemes.
-%
-persistent cbh axh
-%
-xmx = max(cellfun(@bmSelect,seq));
-ymx = numel(seq);
-%
-if ishghandle(cbh)
-	figure(cbh);
-	delete(axh);
-else
-	cbh = figure('HandleVisibility','callback', 'IntegerHandle','off',...
-		'NumberTitle','off', 'Name',[mfilename,' Demo'],'Color','white');
-end
-%
-axh = axes('Parent',cbh, 'Color','none',...
-	'XTick',0:xmx, 'YTick',0.5:ymx, 'YTickLabel',seq, 'YDir','reverse');
-title(axh,['ColorBrewer Color Schemes (',mfilename,'.m)'], 'Interpreter','none')
-xlabel(axh,'Scheme Nodes')
-ylabel(axh,'Scheme Name')
-axf = get(axh,'FontName');
-%
-for y = 1:ymx
-	[num,typ,rgb] = bmSelect(seq{y});
-	map = rgb(bmIndex(num,num,typ,false),:); % downsample
-	for x = 1:num
-		patch([x-1,x-1,x,x],[y-1,y,y,y-1],1, 'FaceColor',map(x,:), 'Parent',axh)
-	end
-	text(xmx+0.1,y-0.5,typ, 'Parent',axh, 'FontName',axf)
-end
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmDemoFig
-function [idx,itp] = bmIndex(N,num,typ,isr)
-% Ensure exactly the same colors as in the online ColorBrewer schemes.
-%
-itp = N>num;
-switch typ
-	case 'Qualitative'
-		itp = false;
-		idx = 1+mod(0:N-1,num);
-	case 'Diverging'
-		switch N
-			case 1 % extrapolated
-				idx = 8;
-			case 2 % extrapolated
-				idx = [4,12];
-			case 3
-				idx = [5,8,11];
-			case 4
-				idx = [3,6,10,13];
-			case 5
-				idx = [3,6,8,10,13];
-			case 6
-				idx = [2,5,7,9,11,14];
-			case 7
-				idx = [2,5,7,8,9,11,14];
-			case 8
-				idx = [2,4,6,7,9,10,12,14];
-			case 9
-				idx = [2,4,6,7,8,9,10,12,14];
-			case 10
-				idx = [1,2,4,6,7,9,10,12,14,15];
-			otherwise
-				idx = [1,2,4,6,7,8,9,10,12,14,15];
-		end
-	case 'Sequential'
-		switch N
-			case 1 % extrapolated
-				idx = 6;
-			case 2 % extrapolated
-				idx = [4,8];
-			case 3
-				idx = [3,6,9];
-			case 4
-				idx = [2,5,7,10];
-			case 5
-				idx = [2,5,7,9,11];
-			case 6
-				idx = [2,4,6,7,9,11];
-			case 7
-				idx = [2,4,6,7,8,10,12];
-			case 8
-				idx = [1,3,4,6,7,8,10,12];
-			otherwise
-				idx = [1,3,4,6,7,8,10,11,13];
-		end
-	otherwise
-		error('The colorscheme type "%s" is not recognized',typ)
-end
-%
-if isr
-	idx = idx(end:-1:1);
-end
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmIndex
-function [num,typ,rgb] = bmSelect(tok)
-% Return the length, type and RGB values of any colorscheme.
-%
-switch tok % ColorName
-	case 'BrBG'
-		rgb = [84,48,5;140,81,10;166,97,26;191,129,45;216,179,101;223,194,125;246,232,195;245,245,245;199,234,229;128,205,193;90,180,172;53,151,143;1,133,113;1,102,94;0,60,48];
-		typ = 'Diverging';
-	case 'PiYG'
-		rgb = [142,1,82;197,27,125;208,28,139;222,119,174;233,163,201;241,182,218;253,224,239;247,247,247;230,245,208;184,225,134;161,215,106;127,188,65;77,172,38;77,146,33;39,100,25];
-		typ = 'Diverging';
-	case 'PRGn'
-		rgb = [64,0,75;118,42,131;123,50,148;153,112,171;175,141,195;194,165,207;231,212,232;247,247,247;217,240,211;166,219,160;127,191,123;90,174,97;0,136,55;27,120,55;0,68,27];
-		typ = 'Diverging';
-	case 'PuOr'
-		rgb = [127,59,8;179,88,6;230,97,1;224,130,20;241,163,64;253,184,99;254,224,182;247,247,247;216,218,235;178,171,210;153,142,195;128,115,172;94,60,153;84,39,136;45,0,75];
-		typ = 'Diverging';
-	case 'RdBu'
-		rgb = [103,0,31;178,24,43;202,0,32;214,96,77;239,138,98;244,165,130;253,219,199;247,247,247;209,229,240;146,197,222;103,169,207;67,147,195;5,113,176;33,102,172;5,48,97];
-		typ = 'Diverging';
-	case 'RdGy'
-		rgb = [103,0,31;178,24,43;202,0,32;214,96,77;239,138,98;244,165,130;253,219,199;255,255,255;224,224,224;186,186,186;153,153,153;135,135,135;64,64,64;77,77,77;26,26,26];
-		typ = 'Diverging';
-	case 'RdYlBu'
-		rgb = [165,0,38;215,48,39;215,25,28;244,109,67;252,141,89;253,174,97;254,224,144;255,255,191;224,243,248;171,217,233;145,191,219;116,173,209;44,123,182;69,117,180;49,54,149];
-		typ = 'Diverging';
-	case 'RdYlGn'
-		rgb = [165,0,38;215,48,39;215,25,28;244,109,67;252,141,89;253,174,97;254,224,139;255,255,191;217,239,139;166,217,106;145,207,96;102,189,99;26,150,65;26,152,80;0,104,55];
-		typ = 'Diverging';
-	case 'Spectral'
-		rgb = [158,1,66;213,62,79;215,25,28;244,109,67;252,141,89;253,174,97;254,224,139;255,255,191;230,245,152;171,221,164;153,213,148;102,194,165;43,131,186;50,136,189;94,79,162];
-		typ = 'Diverging';
-	case 'Accent'
-		rgb = [127,201,127;190,174,212;253,192,134;255,255,153;56,108,176;240,2,127;191,91,23;102,102,102];
-		typ = 'Qualitative';
-	case 'Dark2'
-		rgb = [27,158,119;217,95,2;117,112,179;231,41,138;102,166,30;230,171,2;166,118,29;102,102,102];
-		typ = 'Qualitative';
-	case 'Paired'
-		rgb = [166,206,227;31,120,180;178,223,138;51,160,44;251,154,153;227,26,28;253,191,111;255,127,0;202,178,214;106,61,154;255,255,153;177,89,40];
-		typ = 'Qualitative';
-	case 'Pastel1'
-		rgb = [251,180,174;179,205,227;204,235,197;222,203,228;254,217,166;255,255,204;229,216,189;253,218,236;242,242,242];
-		typ = 'Qualitative';
-	case 'Pastel2'
-		rgb = [179,226,205;253,205,172;203,213,232;244,202,228;230,245,201;255,242,174;241,226,204;204,204,204];
-		typ = 'Qualitative';
-	case 'Set1'
-		rgb = [228,26,28;55,126,184;77,175,74;152,78,163;255,127,0;255,255,51;166,86,40;247,129,191;153,153,153];
-		typ = 'Qualitative';
-	case 'Set2'
-		rgb = [102,194,165;252,141,98;141,160,203;231,138,195;166,216,84;255,217,47;229,196,148;179,179,179];
-		typ = 'Qualitative';
-	case 'Set3'
-		rgb = [141,211,199;255,255,179;190,186,218;251,128,114;128,177,211;253,180,98;179,222,105;252,205,229;217,217,217;188,128,189;204,235,197;255,237,111];
-		typ = 'Qualitative';
-	case 'Blues'
-		rgb = [247,251,255;239,243,255;222,235,247;198,219,239;189,215,231;158,202,225;107,174,214;66,146,198;49,130,189;33,113,181;8,81,156;8,69,148;8,48,107];
-		typ = 'Sequential';
-	case 'BuGn'
-		rgb = [247,252,253;237,248,251;229,245,249;204,236,230;178,226,226;153,216,201;102,194,164;65,174,118;44,162,95;35,139,69;0,109,44;0,88,36;0,68,27];
-		typ = 'Sequential';
-	case 'BuPu'
-		rgb = [247,252,253;237,248,251;224,236,244;191,211,230;179,205,227;158,188,218;140,150,198;140,107,177;136,86,167;136,65,157;129,15,124;110,1,107;77,0,75];
-		typ = 'Sequential';
-	case 'GnBu'
-		rgb = [247,252,240;240,249,232;224,243,219;204,235,197;186,228,188;168,221,181;123,204,196;78,179,211;67,162,202;43,140,190;8,104,172;8,88,158;8,64,129];
-		typ = 'Sequential';
-	case 'Greens'
-		rgb = [247,252,245;237,248,233;229,245,224;199,233,192;186,228,179;161,217,155;116,196,118;65,171,93;49,163,84;35,139,69;0,109,44;0,90,50;0,68,27];
-		typ = 'Sequential';
-	case 'Greys'
-		rgb = [255,255,255;247,247,247;240,240,240;217,217,217;204,204,204;189,189,189;150,150,150;115,115,115;99,99,99;82,82,82;37,37,37;37,37,37;0,0,0];
-		typ = 'Sequential';
-	case 'OrRd'
-		rgb = [255,247,236;254,240,217;254,232,200;253,212,158;253,204,138;253,187,132;252,141,89;239,101,72;227,74,51;215,48,31;179,0,0;153,0,0;127,0,0];
-		typ = 'Sequential';
-	case 'Oranges'
-		rgb = [255,245,235;254,237,222;254,230,206;253,208,162;253,190,133;253,174,107;253,141,60;241,105,19;230,85,13;217,72,1;166,54,3;140,45,4;127,39,4];
-		typ = 'Sequential';
-	case 'PuBu'
-		rgb = [255,247,251;241,238,246;236,231,242;208,209,230;189,201,225;166,189,219;116,169,207;54,144,192;43,140,190;5,112,176;4,90,141;3,78,123;2,56,88];
-		typ = 'Sequential';
-	case 'PuBuGn'
-		rgb = [255,247,251;246,239,247;236,226,240;208,209,230;189,201,225;166,189,219;103,169,207;54,144,192;28,144,153;2,129,138;1,108,89;1,100,80;1,70,54];
-		typ = 'Sequential';
-	case 'PuRd'
-		rgb = [247,244,249;241,238,246;231,225,239;212,185,218;215,181,216;201,148,199;223,101,176;231,41,138;221,28,119;206,18,86;152,0,67;145,0,63;103,0,31];
-		typ = 'Sequential';
-	case 'Purples'
-		rgb = [252,251,253;242,240,247;239,237,245;218,218,235;203,201,226;188,189,220;158,154,200;128,125,186;117,107,177;106,81,163;84,39,143;74,20,134;63,0,125];
-		typ = 'Sequential';
-	case 'RdPu'
-		rgb = [255,247,243;254,235,226;253,224,221;252,197,192;251,180,185;250,159,181;247,104,161;221,52,151;197,27,138;174,1,126;122,1,119;122,1,119;73,0,106];
-		typ = 'Sequential';
-	case 'Reds'
-		rgb = [255,245,240;254,229,217;254,224,210;252,187,161;252,174,145;252,146,114;251,106,74;239,59,44;222,45,38;203,24,29;165,15,21;153,0,13;103,0,13];
-		typ = 'Sequential';
-	case 'YlGn'
-		rgb = [255,255,229;255,255,204;247,252,185;217,240,163;194,230,153;173,221,142;120,198,121;65,171,93;49,163,84;35,132,67;0,104,55;0,90,50;0,69,41];
-		typ = 'Sequential';
-	case 'YlGnBu'
-		rgb = [255,255,217;255,255,204;237,248,177;199,233,180;161,218,180;127,205,187;65,182,196;29,145,192;44,127,184;34,94,168;37,52,148;12,44,132;8,29,88];
-		typ = 'Sequential';
-	case 'YlOrBr'
-		rgb = [255,255,229;255,255,212;255,247,188;254,227,145;254,217,142;254,196,79;254,153,41;236,112,20;217,95,14;204,76,2;153,52,4;140,45,4;102,37,6];
-		typ = 'Sequential';
-	case 'YlOrRd'
-		rgb = [255,255,204;255,255,178;255,237,160;254,217,118;254,204,92;254,178,76;253,141,60;252,78,42;240,59,32;227,26,28;189,0,38;177,0,38;128,0,38];
-		typ = 'Sequential';
-	otherwise
-		error('Colorscheme "%s" is not supported. Check the token tables.',tok)
-end
-%
-rgb = rgb./255;
-%
-switch typ
-	case 'Diverging'
-		num = 11;
-	case 'Qualitative'
-		num = size(rgb,1);
-	case 'Sequential'
-		num = 9;
-	otherwise
-		error('The colorscheme type "%s" is not recognized',typ)
-end
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmSelect
-% Code and Implementation:
-% Copyright (c) 2017 Stephen Cobeldick
-% Color Specifications Only:
-% Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University.
-%
-% Licensed under the Apache License, Version 2.0 (the "License");
-% you may not use this file except in compliance with the License.
-% You may obtain a copy of the License at
-%
-% http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS,
-% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-% See the License for the specific language governing permissions and limitations under the License.
-%
-% Redistribution and use in source and binary forms, with or without
-% modification, are permitted provided that the following conditions are met:
-%
-% 1. Redistributions as source code must retain the above copyright notice, this
-% list of conditions and the following disclaimer.
-%
-% 2. The end-user documentation included with the redistribution, if any, must
-% include the following acknowledgment: "This product includes color
-% specifications and designs developed by Cynthia Brewer
-% (http://colorbrewer.org/)." Alternately, this acknowledgment may appear in the
-% software itself, if and wherever such third-party acknowledgments normally appear.
-%
-% 4. The name "ColorBrewer" must not be used to endorse or promote products
-% derived from this software without prior written permission. For written
-% permission, please contact Cynthia Brewer at cbrewer@psu.edu.
-%
-% 5. Products derived from this software may not be called "ColorBrewer", nor
-% may "ColorBrewer" appear in their name, without prior written permission of Cynthia Brewer.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%license
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap_view.m b/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap_view.m
deleted file mode 100755
index d1661447..00000000
--- a/katoptron/matlab/TPL/DrosteEffect-BrewerMap-c64a384/brewermap_view.m
+++ /dev/null
@@ -1,323 +0,0 @@
-function [map,scheme] = brewermap_view(N,scheme)
-% An interactive figure for ColorBrewer colormap selection. With demo!
-%
-% (c) 2017 Stephen Cobeldick
-%
-% View Cynthia Brewer's ColorBrewer color schemes in a figure.
-%
-% * Two colorbars give the color scheme in color and grayscale.
-% * A button toggles between 3D-cube and 2D-lineplot of the RGB values.
-% * A button toggles an endless cycle through the color schemes.
-% * A button reverses the colormap.
-% * 35 buttons select any ColorBrewer color scheme.
-% * Text with the color scheme's type (Diverging/Qualitative/Sequential)
-% * Text with the color scheme's number of nodes (defining colors).
-%
-%%% Syntax:
-%  brewermap_view
-%  brewermap_view(N)
-%  brewermap_view(N,scheme)
-%  brewermap_view([],...)
-%  brewermap_view({axes/figure handles},...) % see "Adjust External Colormaps"
-%  [map,scheme] = brewermap_view(...)
-%
-% Calling the function with an output argument blocks MATLAB execution until
-% the figure is deleted: the final colormap and scheme are then returned.
-%
-% See also BREWERMAP CUBEHELIX RGBPLOT COLORMAP COLORMAPEDITOR COLORBAR UICONTROL ADDLISTENER
-%
-%% Adjust Colormaps of Other Figures or Axes %%
-%
-%%% Example:
-%
-% load spine
-% image(X)
-% brewermap_view({gca})
-%
-% Very useful! Simply provide a cell array of axes or figure handles when
-% calling this function, and their colormaps will be updated in real-time:
-% note that MATLAB versions <=2010 only support axes handles for this!
-%
-%% Input and Output Arguments %%
-%
-%%% Inputs (*=default):
-%  N  = NumericScalar, an integer to define the colormap length.
-%     = *[], colormap length of one hundred and twenty-eight (128).
-%     = {axes/figure handles}, their colormaps will be updated by BREWERMAP_VIEW.
-%  scheme = String, a ColorBrewer color scheme name.
-%
-%%% Outputs (these block execution until the figure is deleted!):
-%  map    = NumericMatrix, the colormap defined when the figure is closed.
-%  scheme = StringToken, the name of the color scheme given in <map>.
-%
-% [map,scheme] = brewermap_view(N,scheme)
-
-%% Input Wrangling %%
-%
-persistent H
-%
-xtH = {};
-% Parse colormap size:
-if nargin<1 || isnumeric(N)&&isempty(N)
-	N = 128;
-elseif iscell(N)&&numel(N)
-	ish = all(1==cellfun('prodofsize',N)&cellfun(@ishghandle,N));
-	assert(ish,'Input <N> may be a cell array of scalar axes or figure handles.')
-	xtH = N;
-	N = size(colormap(xtH{1}),1);
-else
-	assert(isnumeric(N)&&isscalar(N),'Input <N> must be a scalar numeric.')
-	assert(isreal(N)&&fix(N)==N&&N>0,'Input <N> must be positive real integer: %g+%gi',N,imag(N))
-	N = double(N);
-end
-%
-[mcs,mun,pyt] = brewermap('list');
-%
-% Parse scheme name:
-if nargin<2
-	scheme = mcs{1+rem(round(now*1e7),numel(mcs))};
-else
-	assert(ischar(scheme)&&isrow(scheme),'Second input <scheme> must be a string.')
-end
-% Check if a reversed colormap was requested:
-isR = strncmp(scheme,'*',1);
-scheme = scheme(1+isR:end);
-%
-%% Create Figure %%
-%
-% LHS and RHS slider bounds/limits, and slider step sizes:
-lbd = 1;
-rbd = 128;
-%
-% Define the 3D cube axis order:
-xyz = 'RGB';
-[~,xyz] = ismember(xyz,'RGB');
-%
-if isempty(H) || ~ishghandle(H.fig)
-	% Check brewermap version:
-	ers = 'The function BREWERMAP returned an unexpected %s.';
-	assert(all(35==[numel(mcs),numel(mun),numel(pyt)]),ers,'array size')
-	tmp = find(any(diff(+char(pyt)),2));
-	assert(numel(tmp)==2&&all(tmp==[9;17]),ers,'scheme name sequence')
-	%
-	% Create a new figure:
-	ClBk = struct('bmvChgS',@bmvChgS, 'bmvRevM',@bmvRevM,...
-		'bmv2D3D',@bmv2D3D, 'bmvDemo',@bmvDemo, 'bmvSldr',@bmvSldr);
-	H = bmvPlot(N,scheme, mcs, lbd, rbd, xyz, ClBk);
-end
-%
-bmvUpDt()
-%
-if nargout
-	waitfor(H.fig);
-else
-	clear map
-end
-%
-%% Nested Functions %%
-%
-	function bmvUpDt()
-		% Update all graphics objects in the figure.
-		%
-		% Get ColorBrewer colormap and grayscale equivalent:
-		[map,num,typ] = brewermap(N,[char(42*ones(1,isR)),scheme]);
-		mag = sum(map*[0.298936;0.587043;0.114021],2);
-		%
-		% Update colorbar values:
-		set(H.cbAx, 'YLim', [0,abs(N)+(N==0)]+0.5);
-		set(H.cbIm(1), 'CData',reshape(map,[],1,3))
-		set(H.cbIm(2), 'CData',repmat(mag,[1,1,3]))
-		%
-		% Update 2D line / 3D patch values:
-		if  get(H.D2D3, 'Value') % 2D
-			set(H.ln2D, 'XData',linspace(0,1,abs(N)));
-			set(H.ln2D, {'YData'},num2cell([map,mag],1).');
-		else % 3D
-			set(H.pt3D,...
-				'XData',map(:,xyz(1)),...
-				'YData',map(:,xyz(2)),...
-				'ZData',map(:,xyz(3)), 'FaceVertexCData',map)
-		end
-		%
-		% Update reverse button:
-		set(H.bRev, 'Value',isR)
-		%
-		% Update warning text:
-		str = {typ;sprintf('%d Nodes',num)};
-		set(H.warn,'String',str);
-		%
-		% Update parameter value text:
-		set(H.vTxt(1), 'String',sprintf('N = %.0f',N));
-		%
-		% Update external axes/figure:
-		for k = find(cellfun(@ishghandle,xtH))
-			colormap(xtH{k},map);
-		end
-	end
-%
-	function bmv2D3D(h,~)
-		% Switch between 2D-line and 3D-cube representation.
-		%
-		if get(h,'Value') % 2D
-			set(H.ax3D, 'HitTest','off', 'Visible','off')
-			set(H.ax2D, 'HitTest','on')
-			set(H.pt3D, 'Visible','off')
-			set(H.ln2D, 'Visible','on')
-		else % 3D
-			set(H.ax2D, 'HitTest','off')
-			set(H.ax3D, 'HitTest','on', 'Visible','on')
-			set(H.ln2D, 'Visible','off')
-			set(H.pt3D, 'Visible','on')
-		end
-		%
-		bmvUpDt();
-	end
-%
-	function bmvChgS(~,e)
-		% Change the color scheme.
-		%
-		scheme = get(e.NewValue,'String');
-		%
-		bmvUpDt()
-	end
-%
-	function bmvRevM(h,~)
-		% Reverse the colormap.
-		%
-		isR = get(h,'Value');
-		%
-		bmvUpDt()
-	end
-%
-	function bmvSldr(~,~)
-		% Update the slider position.
-		%
-		N = round(get(H.vSld,'Value'));
-		%
-		bmvUpDt()
-	end
-%
-	function bmvDemo(h,~)
-		% Display all ColorBrewer schemes sequentially.
-		%
-		while ishghandle(h)&&get(h,'Value')
-			%
-			ids = 1+mod(find(strcmpi(scheme,mcs)),numel(mcs));
-			set(H.bGrp,'SelectedObject',H.bEig(ids));
-			scheme = mcs{ids};
-			%
-			bmvUpDt();
-			%
-			% Faster/slower:
-			pause(1.2);
-		end
-		%
-	end
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%brewermap_view
-function H = bmvPlot(N,scheme, mcs, lbd, rbd, xyz, ClBk)
-% Draw a new figure with RGBplot axes, ColorBar axes, and uicontrol sliders.
-%
-M = 9; % buttons per column
-gap = 0.01; % gaps
-bth = 0.04; % demo height
-btw = 0.09; % demo width
-uih = 0.40; % height of UI control group
-cbw = 0.21; % width of both colorbars
-axh = 1-uih-2*gap; % axes height
-wdt = 1-cbw-2*gap; % axes width
-stp = [1,10]; % slider step
-%
-H.fig = figure('HandleVisibility','callback', 'Color','white',...
-	'IntegerHandle','off', 'NumberTitle','off',...
-	'Name','ColorBrewer Interactive Scheme Selector');
-%
-% Add 2D lineplot:
-H.ax2D = axes('Parent',H.fig, 'Position',[gap, uih+gap, wdt, axh],...
-	'ColorOrder',[1,0,0; 0,1,0; 0,0,1; 0.6,0.6,0.6], 'HitTest','off',...
-	'Visible','off', 'XLim',[0,1], 'YLim',[0,1], 'XTick',[], 'YTick',[]);
-H.ln2D = line([0,0,0,0;1,1,1,1],[0,0,0,0;1,1,1,1], 'Parent',H.ax2D, 'Visible','off');
-%
-% Add 3D scatterplot:
-H.ax3D = axes('Parent',H.fig, 'OuterPosition',[0, uih, wdt+2*gap, 1-uih],...
-	'Visible','on', 'XLim',[0,1], 'YLim',[0,1], 'ZLim',[0,1], 'HitTest','on');
-H.pt3D = patch('Parent',H.ax3D, 'XData',[0;1], 'YData',[0;1], 'ZData',[0;1],...
-	'Visible','on', 'LineStyle','none', 'FaceColor','none', 'MarkerEdgeColor','none',...
-	'Marker','o', 'MarkerFaceColor','flat', 'MarkerSize',10, 'FaceVertexCData',[1,1,0;1,0,1]);
-view(H.ax3D,3);
-grid(H.ax3D,'on')
-lbl = {'Red','Green','Blue'};
-xlabel(H.ax3D,lbl{xyz(1)})
-ylabel(H.ax3D,lbl{xyz(2)})
-zlabel(H.ax3D,lbl{xyz(3)})
-%
-% Add warning text:
-H.warn = text('Parent',H.ax2D, 'Units','normalized', 'Position',[1,1],...
-	'HorizontalAlignment','right', 'VerticalAlignment','top', 'Color','k');
-%
-% Add demo button:
-H.demo = uicontrol(H.fig, 'Style','togglebutton', 'Units','normalized',...
-	'Position',[gap,uih+gap+0*bth,btw,bth], 'String','Demo',...
-	'Max',1, 'Min',0, 'Callback',ClBk.bmvDemo);
-% Add 2D/3D button:
-H.D2D3 = uicontrol(H.fig, 'Style','togglebutton', 'Units','normalized',...
-	'Position',[gap,uih+gap+1*bth,btw,bth], 'String','2D / 3D',...
-	'Max',1, 'Min',0, 'Callback',ClBk.bmv2D3D);
-% Add reverse button:
-H.bRev = uicontrol(H.fig, 'Style','togglebutton', 'Units','normalized',...
-	'Position',[gap,uih+gap+2*bth,btw,bth], 'String','Reverse',...
-	'Max',1, 'Min',0, 'Callback',ClBk.bmvRevM);
-%
-% Add colorbars:
-C = reshape([1,1,1],1,[],3);
-H.cbAx(1) = axes('Parent',H.fig, 'Visible','off', 'Units','normalized',...
-	'Position',[1-cbw/1,gap,cbw/2-gap,1-2*gap], 'YLim',[0.5,1.5],...
-	'YDir','reverse', 'HitTest','off');
-H.cbAx(2) = axes('Parent',H.fig, 'Visible','off', 'Units','normalized',...
-	'Position',[1-cbw/2,gap,cbw/2-gap,1-2*gap], 'YLim',[0.5,1.5],...
-	'YDir','reverse', 'HitTest','off');
-H.cbIm(1) = image('Parent',H.cbAx(1), 'CData',C);
-H.cbIm(2) = image('Parent',H.cbAx(2), 'CData',C);
-%
-% Add parameter slider, listener, and corresponding text:
-sv = max(lbd,min(rbd,N));
-H.vTxt = uicontrol(H.fig,'Style','text', 'Units','normalized',...
-	'Position',[gap,uih-bth,btw,bth], 'String','X');
-H.vSld = uicontrol(H.fig,'Style','slider', 'Units','normalized',...
-	'Position',[gap,gap,btw,uih-bth], 'Min',lbd(1), 'Max',rbd(1),...
-	'SliderStep',stp(1,:)/(rbd(1)-lbd(1)), 'Value',sv(1));
-addlistener(H.vSld, 'Value', 'PostSet',ClBk.bmvSldr);
-%
-% Add scheme button group:
-H.bGrp = uibuttongroup('Parent',H.fig, 'BorderType','none', 'Units','normalized',...
-	'BackgroundColor','white', 'Position',[2*gap+btw,gap,wdt-btw-gap,uih-gap]);
-% Determine button locations:
-Z = 1:numel(mcs);
-Z = Z+(Z>17);
-C = (ceil(Z/M)-1)/4;
-R = (M-1-mod(Z-1,M))/M;
-% Add scheme buttons to group:
-for k = numel(mcs):-1:1
-	H.bEig(k) = uicontrol('Parent',H.bGrp, 'Style','Toggle', 'String',mcs{k},...
-		'Unit','normalized', 'Position',[C(k),R(k),1/4,1/M]);
-end
-set(H.bGrp,'SelectedObject',H.bEig(strcmpi(scheme,mcs)));
-set(H.bGrp,'SelectionChangeFcn',ClBk.bmvChgS);
-%
-end
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bmvPlot
-%
-% Copyright (c) 2017 Stephen Cobeldick
-%
-% Licensed under the Apache License, Version 2.0 (the "License");
-% you may not use this file except in compliance with the License.
-% You may obtain a copy of the License at
-%
-% http://www.apache.org/licenses/LICENSE-2.0
-%
-% Unless required by applicable law or agreed to in writing, software
-% distributed under the License is distributed on an "AS IS" BASIS,
-% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-% See the License for the specific language governing permissions and limitations under the License.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%license
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/AUTHORS b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/AUTHORS
deleted file mode 100644
index 2558a19f..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/AUTHORS
+++ /dev/null
@@ -1 +0,0 @@
-Nico Schlömer designed and implemented the intial version and is the current maintainer.
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/COPYING b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/COPYING
deleted file mode 100644
index 15dc1832..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/COPYING
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright (c) 2008--2012 Nico Schlömer
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without 
-modification, are permitted provided that the following conditions are 
-met:
-
-    * Redistributions of source code must retain the above copyright 
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright 
-      notice, this list of conditions and the following disclaimer in 
-      the documentation and/or other materials provided with the distribution
-      
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
-POSSIBILITY OF SUCH DAMAGE.
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/ChangeLog b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/ChangeLog
deleted file mode 100644
index 911c5e4d..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/ChangeLog
+++ /dev/null
@@ -1,388 +0,0 @@
-2014-11-21  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.6.0.
-	* Annotation support in R2014a and earlier
-	* New subplot positioning approach (by Klaus Broelemann) that uses absolute
-	  instead of relative positions.
-	* Support stacked bar plots and others in the same axes (needs pgfplots
-	  1.11).
-	* Support legends with multiline entries.
-	* Support for the alpha channel in PNG output.
-	* Test framework updated and doesn't display figures by default.
-	* Major code clean-up and code complexity checks.
-	* Bug fixes:
-	    - Cycle paths only when needed (#317, #49, #404)
-	    - Don't use infinite xmin/max, etc. (#436)
-	    - Warn about the noSize parameter (#431)
-	    - Images aren't flipped anymore (#401)
-	    - No scientific notation in width/height (#396)
-	    - Axes with custom colors (#376)
-	    - Mesh plots are exported properly (#382)
-	    - Legend colors are handled better (#389)
-	    - Handle Z axis properties for quiver3 (#406)
-	    - Better text handling, e.g. degrees (#402)
-	    - Don't output absolute paths into TikZ by default
-	    - ...
-
-2014-10-20  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.5.0.
-	* Support for MATLAB 2014b (with it's substantial graphics changes).
-	  All credit goes to Egon Geerardyn.
-	* Bugfixes:
-	    - single bar width
-	    - invisible bar plots
-	    - surface options
-	    - patch plots and cycling
-	    - patches with literal colors
-
-2014-03-07  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.7.
-	* Acid tests: Remove MATLAB-based eps2pdf.
-	* Bugfixes:
-	    - multiple patches
-	    - log plot with nonzero baseline
-	    - marker options for scatter plots
-	    - table data formatting
-	    - several fixes for Octave
-
-2014-02-07  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.6.
-	* Set externalData default to false.
-	* Properly check for required Pgfplots version.
-	* Marker scaling in scatter plots.
-
-2014-02-02  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.5.
-	* Arrange data in tables.
-	* Optionally define custom colors.
-	* Allow for strict setting of font sizes.
-	* Bugfixes:
-	   - tick labels for log plots
-	   - tick labels with commas
-
-2014-01-02  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.4.
-	* Support for color maps with scatter plots.
-	* Support for different-length up-down error bars.
-	* Input options validation.
-	* Bugfixes:
-	   - legends for both area and line plots
-	   - invisible text fields
-
-2013-10-20  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.3.
-	* Support for 3D quiver plots.
-	* Extended support for colorbar axis options.
-	* New logo!
-	* Bugfixes:
-	   - text generation
-	   - extraCode option
-	   - join strings
-	   - ...
-
-2013-09-12  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.2.
-	* Support for explicit color specification in 3D plots.
-	* Better color handling for patch plots.
-	* Support for various unicode characters.
-	* Bugfixes:
-	   - edge colors for bar plots
-	   - multiple color bars
-	   - ...
-
-2013-08-14  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.1.
-	* Replaced option `extraTikzpictureCode` by `extraCode`
-	  for inserting code at the beginning of the file.
-	* Support for relative text positioning.
-	* Improved documentation.
-	* Code cleanup: moved all figure manipulations over to cleanfigure()
-	* Bugfixes:
-	   - error bars
-	   - empty tick labels
-	   - ...
-
-2013-06-26  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.4.0.
-	* Added cleanfigure() for removing unwanted entities from a plot
-	  before conversion
-	* Add option `floatFormat` to allow for custom specification of the format
-	  of float numbers
-	* Bugfixes:
-	   - linewidth for patches
-	   - ...
-
-2013-04-13  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.3.3.
-	* Support for:
-	   - pictures in LaTeX subfloats
-	* Bugfixes:
-	   - axes labels
-	   - extra* options
-	   - logscaled axes
-	   - ...
-
-2013-03-14  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.3.2.
-	* Support for:
-	   - waterfall plots
-	* Bugfixes:
-	   - axis locations
-	   - color handling
-	   - stacked bars
-	   - ...
-
-2013-02-15  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.3.1.
-	* Use table{} for plots for cleaner output files.
-	* Support for:
-	   - hg transformations
-	   - pcolor plots
-	* Removed command line options:
-	   - minimumPointsDistance
-	* Bugfixes:
-	   - legend positioning and alignment
-	   - tick labels
-	   - a bunch of fixed for Octave
-	   - line width for markers
-	   - axis labels for color bars
-	   - image trimming
-	   - subplots with bars
-	   - ...
-
-2012-11-19  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.3.0.
-	* Support for:
-	   - area plots
-	   - legend position
-	   - inner color bars
-	   - log-scaled color bars
-	* New command line options:
-	   - standalone (create compilable TeX file)
-	   - checkForUpdates
-	* mlint cleanups.
-	* Removed deprecated options.
-	* Bugfixes:
-	   - colorbar-axis association
-	   - option parsing
-	   - automatic updater
-	   - unit 'px'
-	   - ...
-
-2012-09-01  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.2.3.
-	* Multiline text for all entities.
-	* Support for logical images.
-	* Support for multiple legends (legends in subplots).
-	* Fixed version check bug.
-	* Fix minumumPointsDistance.
-
-2012-07-19  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.2.2.
-	* Support for multiline titles and axis labels.
-	* Respect log-scaled axes for minimumPointsDistance.
-	* Add support for automatic graph labels via
-	  new option.
-	* About 5 bugfixes.
-
-2012-05-04  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.2.1.
-	* Support for color maps.
-	* Support for native color bars.
-	* Partial support for hist3 plots.
-	* Support for spectrogram plots.
-	* Support for rotated text.
-	* Native handling of Infs/NaNs.
-	* Better info text.
-	* matlab2tikz version checking.
-	* Line plotting code cleanup.
-	* About 10 bugfixes.
-
-2012-03-17  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.2.0.
-	* Greatly overhauled text handling. (Burkhart Lingner)
-	* Added option 'tikzFileComment'.
-	* Added option 'parseStrings'.
-	* Added option 'extraTikzpictureSettings'.
-	* Added proper documetion (for 'help matlab2tikz').
-	* Improved legend positioning, orientation.
-	* Support for horizontal bar plots.
-	* Get bar widths right.
-	* Doubles are plottet with 15-digit precision now.
-	* Support for rectangle objects.
-	* Better color handling.
-	* Testing framework improvements.
-	* Several bugfixes:
-	   - ticks handled more concisely
-	   - line splitting bugs
-	   - ...
-
-2011-11-22  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.1.4.
-	* Support for scatter 3D plots.
-	* Support for 3D parameter curves.
-	* Support for 3D patches.
-	* Support for minor ticks.
-	* Add option interpretTickLabelsAsTex (default false).
-	* Several bugfixes:
-	   - %-sign in annotations
-	   - fixed \omega and friends in annotations
-	   - proper legend for bar plots
-	   - don't override PNG files if there is
-	     more than one image plot
-	   - don't always close patch paths
-
-2011-08-22  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.1.3.
-	* Greatly overhauled text handling.
-	* Better Octave compatibility.
-	* Several bugfixes:
-	    - subplot order
-	    - environment detection
-
-
-2011-06-02  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.1.2.
-	* Support for logscaled color bar.
-	* Support for truecolor images.
-	* Initial support for text handles.
-	* Speed up processing for line plots.
-	* Several bugfixes:
-	   - axis labels, tick labels, etc. for z-axis
-	   - marker handling for scatter plots
-	   - fix for unicolor scatter plots
-
-2011-04-06  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.1.1.
-	* Improved Octave compatibility.
-	* Several bugfixes:
-	   - input parser
-
-2011-01-31  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.1.0.
-	* Basic Octave compatibility.
-	* Several bugfixes:
-	   - bar plots fix (thanks to Christoph Rüdiger)
-	   - fix legends with split graphs
-
-2010-09-10  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.0.7.
-	* Compatibility fixes for older MATLAB installations.
-	* Several bugfixes:
-	   - line plots with only one point
-	   - certain surface plots
-	   - orientation of triangle markers ("<" vs. ">")
-	   - display of the color "purple"
-
-2010-05-06  Nico Schlömer  <nico.schloemer@gmail.com>
-
-	* Version 0.0.6.
-	* Support for scatter plots.
-	* Preliminary support for surface plots; thanks to Pooya.
-	* Large changes in the codebase:
-	  - next to matlab2tikz.m, the file pgfplotsEnvironment.m
-	    is now needed as well; it provides a much better
-	    structured approach to storing and writing environments
-	    when parsing the MATLAB(R) figure
-	* proper MATLAB(R) version check
-	* lots of small fixes
-
-2009-12-21  Nico Schlömer  <nico.schloemer@ua.ac.be>
-
-	* Version 0.0.5.
-	* Improvements in axis handling:
-	  - colored axes
-	  - allow different left and right ordinates
-	* Improvements for line plots:
-
-	* Version 0.0.5.
-	* Improvements in axis handling:
-	  - colored axes
-	  - allow different left and right ordinates
-	* Improvements for line plots:
-	  - far outliers are moved toward the plot, avoiding 'Dimension too
-	    large'-type errors in LaTeX
-	  - optional point reduction by new option 'minimumPointsDistance'
-	* Improvements for image handling:
-	  - creation of a PNG file, added by '\addplot graphics'
-	  - fixed axis orientation bug
-	* Bugfixes for:
-	  - multiple axes
-	  - CMYK colors
-	  - legend text alignment (thanks Dragen Mitrevski)
-	  - transparent patches (thanks Carlos Russo)
-	* Added support for:
-	  - background color
-	  - Bode plots
-	  - zplane plots
-	  - freqz plots
-
-
-2009-06-09  Nico Schlömer  <nico.schloemer@ua.ac.be>
-
-	* Version 0.0.4.
-	* Added support for:
-	  - error bars (thanks Robert Whittlesey for the suggestion)
-	* Improvents in:
-	  - legends (thanks Theo Markettos for the patch),
-	  - images,
-	  - quiver plots (thanks Robert for spotting this).
-	* Improved options handling.
-	* Allow for custom file encoding (thanks Donghua Wang for the
-	suggestion).
-	* Numerous bugfixes (thanks Andreas Gäb).
-
-2009-03-08  Nico Schlömer  <nico.schloemer@ua.ac.be>
-
-	* Version 0.0.3.
-	* Added support for:
-	  - subplots
-	  - reverse axes
-	* Completed support for:
-	  - images
-
-2009-01-08  Nico Schlömer  <nico.schloemer@ua.ac.be>
-
-	* Version 0.0.2.
-	* Added support for:
-	  - quiver (arrow) plots
-	  - bar plots
-	  - stem plots
-	  - stairs plots
-	* Added preliminary support for:
-	  - images
-	  - rose plots
-	  - compass plots
-	  - polar plots
-	* Moreover, large code improvement have been introduced, notably:
-	  - aspect ratio handling
-	  - color handling
-	  - plot options handling
-
-
-2008-11-07  Nico Schlömer  <nico.schloemer@ua.ac.be>
-
-	* Initial version 0.0.1.
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/Makefile b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/Makefile
deleted file mode 100644
index 1d9d6e9b..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# This makefile creates a release tarball.
-
-MATLAB2TIKZ_DIR=.
-VERSION=0.4.7
-
-default: release
-
-release:
-	# The license is automatically added by
-	# MathWorks after the upload.
-	@zip -r matlab2tikz_${VERSION}.zip \
-     ${MATLAB2TIKZ_DIR}/AUTHORS \
-     ${MATLAB2TIKZ_DIR}/ChangeLog \
-     ${MATLAB2TIKZ_DIR}/README.md \
-     ${MATLAB2TIKZ_DIR}/THANKS \
-     ${MATLAB2TIKZ_DIR}/version-${VERSION} \
-     ${MATLAB2TIKZ_DIR}/tools/ \
-     ${MATLAB2TIKZ_DIR}/src/
-
-clean:
-	rm -f matlab2tikz_${VERSION}.zip
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/README.md b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/README.md
deleted file mode 100644
index aedbc18e..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/README.md
+++ /dev/null
@@ -1,69 +0,0 @@
-![matlab2tikz](https://raw.githubusercontent.com/wiki/matlab2tikz/matlab2tikz/matlab2tikz.png)
-
-[![Build Status](https://travis-ci.org/matlab2tikz/matlab2tikz.svg?branch=master)](https://travis-ci.org/matlab2tikz/matlab2tikz)
-
-This is matlab2tikz, a MATLAB(R) script for converting MATLAB(R) figures into
-native TikZ/Pgfplots figures.
-
-To download and rate matlab2tikz, go to its page on MathWorks 
-http://www.mathworks.com/matlabcentral/fileexchange/22022.
-
-matlab2tikz supports the conversion of most MATLAB figures,
-including 2D and 3D plots. For plots constructed with third-
-party packages, your mileage may vary.
-
-The workflow is as follows.
-
-0. a. Place the matlab2tikz scripts (contents of src/ folder) in a directory
-      where MATLAB can find it (the current directory, for example).
-   b. Make sure that your LaTeX installation includes the packages
-     * TikZ (aka PGF, >=2.00) and
-     * Pgfplots (>=1.3).
-
-1. Generate your plot in MATLAB.
-
-2. Invoke matlab2tikz by
-```matlab
->> matlab2tikz();
-```
-   or
-```matlab
->> matlab2tikz('myfile.tex');
-```
-  The script accepts numerous options; check them out by invoking the help,
-```matlab
->> help matlab2tikz
-```
-Sometimes, MATLAB makes it hard to create matching LaTeX plots by keeping
-invisible objects around or stretches the plots too far beyond the bounding box.
-Use
-```matlab
->> cleanfigure;
->> matlab2tikz('myfile.tex');
-```
-to first clean the figure of unwanted entities, and then convert it to TeX.
-
-3. Add the contents of `myfile.tex` into your LaTeX source code; a
-   convenient way of doing so is to use `\input{/path/to/myfile.tex}`.
-   Also make sure that at the header of your document the Pgfplots package
-   is included:
-```latex
-\documentclass{article}
-\usepackage{pgfplots}
-% and optionally (as of Pgfplots 1.3):
-\pgfplotsset{compat=newest}
-\pgfplotsset{plot coordinates/math parser=false}
-\newlength\figureheight
-\newlength\figurewidth
-\begin{document}
-\input{myfile.tex}
-\end{document}
-```
-
-There are reported incompatibilities with the following LaTeX packages:
-   * signalflowdiagram <http://www.texample.net/tikz/examples/signal-flow-building-blocks/>
-     (Check out <http://sourceforge.net/tracker/?func=detail&aid=3312653&group_id=224188&atid=1060656>.)
-
-If you experience bugs, have nice examples of what matlab2tikz can do, or if
-you are just looking for more information, please visit the web page of
-matlab2tikz <https://github.com/matlab2tikz/matlab2tikz>.
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/THANKS b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/THANKS
deleted file mode 100644
index 74103b84..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/THANKS
+++ /dev/null
@@ -1,47 +0,0 @@
-matlab2tikz has once greatly profited from its ancestor, Matfig2PGF,
-
-  http://www.mathworks.com/matlabcentral/fileexchange/12962
-
-Matfig2PGF is written by Paul Wagenaars.
-
-Also, the authors would like to thank Christian Feuersänger for the Pgfplots
-package which forms the basis for the matlab2tikz output on the LaTeX side.
-
-Thanks for patches, suggestions, and other contributions go to
-
- Katherine Elkington
- Andreas Gäb
- Roman Gesenhues
- David Haberthür
- Patrick Häcker
- Mykel Kochenderfer
- Henk Kortier
- Theo Markettos
- Dragan Mitrevski
- Carlos Russo
- Robert Whittlesey
- Pooya Ziraksaz
- Johannes Schmitz
- Christoph Rüdiger
- Ben Abbott
- Johannes Mueller-Roemer
- Julien Ridoux
- Burkart Lingner
- Francesco Montorsi
- Ricardo Santiago Mozos
- Eike Blechschmidt
- Michael Schoeberl
- Patrick Häcker
- Egon Geerardyn
- Oleg Komarov
- Klaus Broelemann
- Peter Pablo
- ...
-
-and MathWorks' very own
-
- Martijn Aben
- Bastiaan Zuurendonk
- Michael Glasser
-
-and many more!
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/logos/matlab2tikz.svg b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/logos/matlab2tikz.svg
deleted file mode 100644
index ea2a8f7d..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/logos/matlab2tikz.svg
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="744.09448819"
-   height="1052.3622047"
-   id="svg3051"
-   version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="m2t.svg">
-  <defs
-     id="defs3053" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.25"
-     inkscape:cx="696.59128"
-     inkscape:cy="461.26734"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1280"
-     inkscape:window-height="738"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1" />
-  <metadata
-     id="metadata3056">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <path
-       style="fill:#ef8200;fill-opacity:1;stroke:none"
-       d="m 229.79347,889.91953 c -51.20296,-69.53548 -110.45905,-150.5284 -117.8477,-161.07762 -3.66043,-5.22621 -4.15923,-6.45766 -2.93039,-7.23468 0.81449,-0.51503 2.1559,-0.94763 2.9809,-0.96134 4.45183,-0.074 21.84491,-16.50352 39.70528,-37.5057 64.93246,-76.3547 212.14442,-292.5117 313.27925,-460 28.45805,-47.12908 55.23448,-94.70724 59.01417,-107.81682 2.21373,-7.67817 3.30364,-4.58186 5.54982,7.259 0.84717,4.46595 9.42069,39.94343 19.05225,78.83886 61.4356,248.09709 88.96885,376.22196 95.45994,444.21896 1.34274,14.06576 0.80116,31.67542 -1.06339,34.57694 -0.67969,1.05768 -29.41344,23.07306 -63.85279,48.92306 -46.63668,35.00526 -216.41083,162.82778 -297.77739,224.19582 l -3.13285,2.36286 z"
-       id="path3072" />
-    <path
-       style="fill:#ffd912;fill-opacity:1"
-       d="M 828.49628,790.87316 C 751.45425,746.41551 656.62349,689.46978 647.33146,682.08395 c -2.47911,-1.97053 -2.52321,-2.17947 -1.05805,-5.01277 3.18772,-6.16438 4.02557,-14.85566 3.44538,-35.74002 -0.80529,-28.98647 -5.98761,-65.55929 -17.38517,-122.69097 -18.80756,-94.27528 -55.9766,-241.89492 -91.4729,-363.29152 -4.95189,-16.93533 -13.8484,-44.15875 -13.64905,-44.7568 0.19935,-0.59804 7.77507,16.91106 10.71396,23.16944 14.72516,31.35732 169.10504,368.5638 262.04653,572.37888 18.81036,41.25 35.965,78.78344 38.1214,83.40766 2.15641,4.62421 3.80419,8.50202 3.66173,8.61735 -0.14245,0.11533 -6.10901,-3.16608 -13.25901,-7.29204 z"
-       id="path3070" />
-    <path
-       style="fill:#00b0cf;fill-opacity:1"
-       d="M 98.496283,712.93087 C 76.224153,691.69469 25.659453,651.42885 -55.133796,590.59166 l -36.630081,-27.58239 14.630081,-4.80606 C 1.4604828e-5,532.86436 84.848253,489.14509 155.49628,438.33721 c 90.71369,-65.23848 211.18904,-171.14032 339.75,-298.65155 14.7125,-14.59237 30.24771,-31.09621 30.24771,-30.65137 0,1.46965 -5.56006,9.74411 -33.50167,53.6059 -117.938,185.13504 -236.74752,364.94776 -300.3065,454.5 -22.45559,31.6391 -46.86362,64.24839 -58.75719,78.5 -10.15154,12.16419 -23.13943,25.02746 -25.20109,24.95928 -0.6772,-0.0224 -4.83126,-3.47326 -9.231257,-7.6686 z"
-       id="path2987" />
-    <text
-       xml:space="preserve"
-       style="font-size:256.08959961px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ef8200;fill-opacity:1;stroke:none;font-family:Monotype Corsiva;-inkscape-font-specification:Monotype Corsiva Bold Italic"
-       x="835.56165"
-       y="469.78217"
-       id="text3863"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3865"
-         x="835.56165"
-         y="469.78217"
-         style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans Italic"><tspan
-           style="font-style:normal;-inkscape-font-specification:Liberation Sans"
-           id="tspan2999">MATLAB</tspan><tspan
-           style="font-style:italic;font-weight:bold;-inkscape-font-specification:Liberation Sans Italic"
-           id="tspan2997">2</tspan></tspan><tspan
-         sodipodi:role="line"
-         x="835.56165"
-         y="789.89417"
-         id="tspan3867"
-         style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ef8200;fill-opacity:1;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
-           id="tspan3875">Ti</tspan><tspan
-           style="font-style:italic;-inkscape-font-specification:Liberation Sans Italic"
-           id="tspan2995">k</tspan><tspan
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;font-family:Liberation Sans;-inkscape-font-specification:Liberation Sans"
-           id="tspan3873">Z</tspan></tspan></text>
-  </g>
-</svg>
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cleanfigure.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cleanfigure.m
deleted file mode 100644
index ffc0feef..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cleanfigure.m
+++ /dev/null
@@ -1,524 +0,0 @@
-function cleanfigure(varargin)
-%   CLEANFIGURE() removes the unnecessary objects from your MATLAB plot
-%   to give you a better experience with matlab2tikz.
-%   CLEANFIGURE comes with several options that can be combined at will.
-%
-%   CLEANFIGURE('handle',HANDLE,...) explicitly specifies the
-%   handle of the figure that is to be stored. (default: gcf)
-%
-%   CLEANFIGURE('minimumPointsDistance',DOUBLE,...) explicitly specified the
-%   minimum distance between two points. (default: 1.0e-10)
-%
-%   Example
-%      x = -pi:pi/1000:pi;
-%      y = tan(sin(x)) - sin(tan(x));
-%      plot(x,y,'--rs');
-%      cleanfigure();
-%
-
-%   Copyright (c) 2013--2014, Nico Schlömer <nico.schloemer@gmail.com>
-%   All rights reserved.
-%
-%   Redistribution and use in source and binary forms, with or without
-%   modification, are permitted provided that the following conditions are
-%   met:
-%
-%      * Redistributions of source code must retain the above copyright
-%        notice, this list of conditions and the following disclaimer.
-%      * Redistributions in binary form must reproduce the above copyright
-%        notice, this list of conditions and the following disclaimer in
-%        the documentation and/or other materials provided with the distribution
-%
-%   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-%   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-%   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-%   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-%   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-%   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-%   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-%   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-%   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-%   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-%   POSSIBILITY OF SUCH DAMAGE.
-
-  % Treat hidden handles, too.
-  shh = get(0, 'ShowHiddenHandles');
-  set(0, 'ShowHiddenHandles', 'on');
-
-  % Keep track of the current axes.
-  meta.gca = [];
-
-  % Set up command line options.
-  m2t.cmdOpts = m2tInputParser;
-  m2t.cmdOpts = m2t.cmdOpts.addParamValue(m2t.cmdOpts, 'minimumPointsDistance', 1.0e-10, @isnumeric);
-  m2t.cmdOpts = m2t.cmdOpts.addParamValue(m2t.cmdOpts, 'handle', gcf, @ishandle);
-
-  % Finally parse all the elements.
-  m2t.cmdOpts = m2t.cmdOpts.parse(m2t.cmdOpts, varargin{:});
-
-  % Recurse down the tree of plot objects and clean up the leaves.
-  for h = m2t.cmdOpts.Results.handle(:)'
-    recursiveCleanup(meta, h, m2t.cmdOpts.Results.minimumPointsDistance, 0);
-  end
-
-  % Reset to initial state.
-  set(0, 'ShowHiddenHandles', shh);
-
-  return;
-end
-% =========================================================================
-function indent = recursiveCleanup(meta, h, minimumPointsDistance, indent)
-
-  type = get(h, 'Type');
-
-  %display(sprintf([repmat(' ',1,indent), type, '->']))
-
-  % Don't try to be smart about quiver groups.
-  % NOTE:
-  % A better way to write `strcmp(get(h,...))` would be to use
-  %     isa(handle(h), 'specgraph.quivergroup').
-  % The handle() function isn't supported by Octave, though, so let's stick
-  % with strcmp().
-  if strcmp(get(h, 'Type'), 'specgraph.quivergroup')
-  %if strcmp(class(handle(h)), 'specgraph.quivergroup')
-      return;
-  end
-
-  % Update the current axes.
-  if strcmp(get(h, 'Type'), 'axes')
-      meta.gca = h;
-  end
-
-  children = get(h, 'Children');
-  if ~isempty(children)
-      for child = children(:)'
-          indent = indent + 4;
-          indent = recursiveCleanup(meta, child, minimumPointsDistance, indent);
-          indent = indent - 4;
-      end
-  else
-      % We're in a leaf, so apply all the fancy simplications.
-
-      %% Skip invisible objects.
-      %if ~strcmp(get(h, 'Visible'), 'on')
-      %    display(sprintf([repmat(' ',1,indent), '  invisible']))
-      %    return;
-      %end
-
-      %display(sprintf([repmat(' ',1,indent), '  handle this']))
-
-      if strcmp(type, 'line')
-          pruneOutsideBox(meta, h);
-          % Move some points closer to the box to avoid TeX:DimensionTooLarge
-          % errors. This may involve inserting extra points.
-          movePointsCloser(meta, h);
-          % Don't be too precise.
-          coarsenLine(meta, h, minimumPointsDistance);
-      elseif strcmp(type, 'text')
-          % Check if text is inside bounds by checking if the Extent rectangle
-          % and the axes box overlap.
-          xlim = get(meta.gca, 'XLim');
-          ylim = get(meta.gca, 'YLim');
-          extent = get(h, 'Extent');
-          extent(3:4) = extent(1:2) + extent(3:4);
-          overlap = xlim(1) < extent(3) && xlim(2) > extent(1) ...
-                 && ylim(1) < extent(4) && ylim(2) > extent(2);
-          if ~overlap
-              % Artificially disable visibility. m2t will check and skip.
-              set(h, 'Visible', 'off');
-          end
-      end
-  end
-
-  return;
-end
-% =========================================================================
-function pruneOutsideBox(meta, handle)
-  % Some sections of the line may sit outside of the visible box.
-  % Cut those off.
-
-  xData = get(handle, 'XData');
-  yData = get(handle, 'YData');
-  zData = get(handle, 'ZData');
-
-  if isempty(zData)
-    data = [xData(:), yData(:)];
-  else
-    data = [xData(:), yData(:), zData(:)];
-  end
-
-  if isempty(data)
-      return;
-  end
-
-  %hasLines = ~strcmp(lineStyle,'none') && lineWidth>0.0;
-  %hasMarkers = ~strcmp(marker,'none');
-  hasLines = true;
-  hasMarkers = true;
-  xLim = get(meta.gca, 'XLim');
-  yLim = get(meta.gca, 'YLim');
-
-  tol = 1.0e-10;
-  relaxedXLim = xLim + [-tol, tol];
-  relaxedYLim = yLim + [-tol, tol];
-
-  numPoints = size(data, 1);
-
-  % Get which points are inside a (slightly larger) box.
-  dataIsInBox = isInBox(data(:,1:2), ...
-                        relaxedXLim, relaxedYLim);
-
-  % By default, don't plot any points.
-  shouldPlot = false(numPoints, 1);
-  if hasMarkers
-      shouldPlot = shouldPlot | dataIsInBox;
-  end
-  if hasLines
-      % Check if the connecting line is in the box.
-      segvis = segmentVisible(data(:,1:2), ...
-                              dataIsInBox, xLim, yLim);
-      % Plot points which are next to an edge which is in the box.
-      shouldPlot = shouldPlot | [false; segvis] | [segvis; false];
-  end
-
-  if ~all(shouldPlot)
-      % There are two options here:
-      %      data = data(shouldPlot, :);
-      % i.e., simply removing the data that isn't supposed to be plotted.
-      % For line plots, this has the disadvantage that the line between two
-      % 'loose' ends may now appear in the figure.
-      % To avoid this, add a row of NaNs wherever a block of actual data is
-      % removed.
-      chunkIndices = [];
-      k = 1;
-      while k <= numPoints
-          % fast forward to shouldPlot==True
-          while k<=numPoints && ~shouldPlot(k)
-              k = k+1;
-          end
-          kStart = k;
-          % fast forward to shouldPlot==False
-          while k<=numPoints && shouldPlot(k)
-              k = k+1;
-          end
-          kEnd = k-1;
-
-          if kStart <= kEnd
-              chunkIndices = [chunkIndices; ...
-                              [kStart, kEnd]];
-          end
-      end
-
-      % Create masked data with NaN padding.
-      % Make sure that there are no NaNs at the beginning of the data since
-      % this would be interpreted as column names by Pgfplots.
-      if size(chunkIndices, 1) > 0
-          ci = chunkIndices(1,:);
-          newData = data(ci(1):ci(2), :);
-          n = size(data, 2);
-          for ci = chunkIndices(2:end,:)'
-               newData = [newData; ...
-                          NaN(1, n); ...
-                          data(ci(1):ci(2), :)];
-          end
-          data = newData;
-      end
-  end
-
-  % Override with the new data.
-  set(handle, 'XData', data(:, 1));
-  set(handle, 'YData', data(:, 2));
-  if ~isempty(zData)
-    set(handle, 'ZData', data(:, 3));
-  end
-
-  return;
-end
-% =========================================================================
-function out = segmentVisible(data, dataIsInBox, xLim, yLim)
-    % Given a bounding box {x,y}Lim, loop through all pairs of subsequent nodes
-    % in p and determine whether the line between the pair crosses the box.
-
-    n = size(data, 1);
-    out = false(n-1, 1);
-    for k = 1:n-1
-        out(k) =  (dataIsInBox(k) && all(isfinite(data(k+1,:)))) ... % one of the neighbors is inside the box
-               || (dataIsInBox(k+1) && all(isfinite(data(k,:)))) ... % and the other is finite
-               || segmentsIntersect(data(k,:), data(k+1,:), ...
-                                    [xLim(1);yLim(1)], [xLim(1);yLim(2)]) ... % left border
-               || segmentsIntersect(data(k,:), data(k+1,:), ...
-                                    [xLim(1);yLim(1)], [xLim(2);yLim(1)]) ... % bottom border
-               || segmentsIntersect(data(k,:), data(k+1,:), ...
-                                    [xLim(2);yLim(1)], [xLim(2);yLim(2)]) ... % right border
-               || segmentsIntersect(data(k,:), data(k+1,:), ...
-                                    [xLim(1);yLim(2)], [xLim(2);yLim(2)]); % top border
-    end
-
-end
-% =========================================================================
-function out = segmentsIntersect(X1, X2, X3, X4)
-  % Checks whether the segments X1--X2 and X3--X4 intersect.
-  lambda = crossLines(X1, X2, X3, X4);
-  out = all(lambda > 0.0) && all(lambda < 1.0);
-  return
-end
-% =========================================================================
-function coarsenLine(meta, handle, minimumPointsDistance)
-  % Reduce the number of data points in the line handle.
-  % Given a minimum distance at which two nodes are considered different,
-  % this can help with plots that contain a large amount of data points not
-  % all of which need to be plotted.
-  %
-  if ( abs(minimumPointsDistance) < 1.0e-15 )
-      % bail out early
-      return
-  end
-
-  % Extract the data from the current line handle.
-  xData = get(handle, 'XData');
-  yData = get(handle, 'YData');
-  zData = get(handle, 'ZData');
-  if ~isempty(zData)
-    % Don't do funny stuff when zData is present.
-    return;
-  end
-
-  data = [xData(:), yData(:)];
-
-  if isempty(data)
-      return;
-  end
-
-  % Generate a mask which is true for the first point, and all
-  % subsequent points which have a greater norm2-distance from
-  % the previous point than 'threshold'.
-  n = size(data, 1);
-
-  % Get info about log scaling.
-  isXlog = strcmp(get(meta.gca, 'XScale'), 'log');
-  isYlog = strcmp(get(meta.gca, 'YScale'), 'log');
-
-  mask = false(n, 1);
-
-  XRef = data(1,:);
-  mask(1) = true;
-  for kk = 2:n
-      % Compute the visible distance of those points,
-      % incorporating possible log-scaling of the axes.
-      visDiff = XRef - data(kk,:);
-      if isXlog
-          % visDiff(1) = log10(XRef(1)) - log10(data(kk,1));
-          visDiff(1) = log10(visDiff(1));
-      end
-      if isYlog
-          visDiff(2) = log10(visDiff(2));
-      end
-      % Check if it's larger than the threshold and
-      % update the reference point in that case.
-      if norm(visDiff) > minimumPointsDistance
-          XRef = data(kk,:);
-          mask(kk) = true;
-      end
-  end
-  mask(end) = true;
-
-  % Make sure to keep NaNs.
-  mask = mask | any(isnan(data)')';
-
-  % Set the new (masked) data.
-  set(handle, 'XData', data(mask, 1));
-  set(handle, 'YData', data(mask, 2));
-
-  return;
-end
-% =========================================================================
-function movePointsCloser(meta, handle)
-  % Move all points outside a box much larger than the visible one
-  % to the boundary of that box and make sure that lines in the visible
-  % box are preserved. This typically involves replacing one point by
-  % two new ones and a NaN.
-
-  % Extract the data from the current line handle.
-  xData = get(handle, 'XData');
-  yData = get(handle, 'YData');
-  zData = get(handle, 'ZData');
-
-  if ~isempty(zData) && any(zData(1)~=zData)
-    % Don't do funny stuff with varying zData.
-    return;
-  end
-
-  data = [xData(:), yData(:)];
-
-  xlim = get(meta.gca, 'XLim');
-  ylim = get(meta.gca, 'YLim');
-
-  xWidth = xlim(2) - xlim(1);
-  yWidth = ylim(2) - ylim(1);
-  % Don't choose the larger box too large to make sure that the values inside
-  % it can still be treated by TeX.
-  extendFactor = 0.1;
-  largeXLim = xlim + extendFactor * [-xWidth, xWidth];
-  largeYLim = ylim + extendFactor * [-yWidth, yWidth];
-
-  % Get which points are in an extended box (the limits of which
-  % don't exceed TeX's memory).
-  dataIsInLargeBox = isInBox(data(:,1:2), ...
-                             largeXLim, largeYLim);
-
-  % Count the NaNs as being inside the box.
-  dataIsInLargeBox = dataIsInLargeBox | any(isnan(data)')';
-
-  % Loop through all points which are to be included in the plot yet do not
-  % fit into the extended box, and gather the points by which they are to be
-  % replaced.
-  replaceIndices = find(~dataIsInLargeBox)';
-  m = length(replaceIndices);
-  r = cell(m, 1);
-  for k = 1:m
-      i = replaceIndices(k);
-      r{k} = [];
-      if i > 1 && all(isfinite(data(i-1,:)))
-          newPoint = moveToBox(data(i,:), data(i-1,:), largeXLim, largeYLim);
-          % Don't bother if the point is inf:
-          % There's no intersection with the large box, so even the
-          % connection between the two after they have been moved
-          % won't be probably be visible.
-          if all(isfinite(newPoint))
-              r{k} = [r{k}; newPoint];
-          end
-      end
-      if i < size(data,1) && all(isfinite(data(i+1,:)))
-          newPoint = moveToBox(data(i,:), data(i+1,:), largeXLim, largeYLim);
-          % Don't bother if the point is inf:
-          % There's no intersection with the large box, so even the
-          % connection between the two after they have been moved
-          % won't be probably be visible.
-          if all(isfinite(newPoint))
-              r{k} = [r{k}; newPoint];
-          end
-      end
-  end
-
-  % Insert all r{k}{:} at replaceIndices[k].
-  dataNew = [];
-  lastReplIndex = 0;
-  lastEntryIsReplacement = false;
-  for k = 1:m
-     % Make sure that two subsequent moved points are separated by a NaN entry.
-     % This is to make sure that there is no visible line between two moved
-     % points that wasn't there before.
-     d = data(lastReplIndex+1:replaceIndices(k)-1,:);
-     if size(r{k}, 1) == 2
-         % Two replacement entries -- pad them with a NaN.
-         rep = [r{k}(1, :); ...
-                NaN(1, size(r{k}, 2)); ...
-                r{k}(2, :)];
-     else
-         rep = r{k};
-     end
-     if isempty(d) && ~isempty(rep) && lastEntryIsReplacement
-         % The last entry was a replacment, and the first one now is.
-         % Prepend a NaN.
-         rep = [NaN(1, size(r{k}, 2)); ...
-                rep];
-     end
-     % Add the data.
-     if ~isempty(d)
-         dataNew = [dataNew; ...
-                    d];
-         lastEntryIsReplacement = false;
-     end
-     if ~isempty(rep)
-         dataNew = [dataNew; ...
-                    rep];
-         lastEntryIsReplacement = true;
-     end
-     lastReplIndex = replaceIndices(k);
-  end
-  dataNew = [dataNew; ...
-             data(lastReplIndex+1:end,:)];
-
-  % Set the new (masked) data.
-  set(handle, 'XData', dataNew(:,1));
-  set(handle, 'YData', dataNew(:,2));
-  if ~isempty(zData)
-    % As per precondition, all zData entries are equal.
-    zDataNew = zData(1) * ones(size(dataNew,1), 1);
-    set(handle, 'zData', zDataNew);
-  end
-
-  return;
-end
-% =========================================================================
-function xNew = moveToBox(x, xRef, xlim, ylim)
-  % Takes a box defined by xlim, ylim, one point x and a reference point
-  % xRef.
-  % Returns the point xNew that sits on the line segment between x and xRef
-  % *and* on the box. If several such points exist, take the closest one
-  % to x.
-
-  % Find out with which border the line x---xRef intersects, and determine
-  % the smallest parameter alpha such that x + alpha*(xRef-x)
-  % sits on the boundary.
-  minAlpha = inf;
-  % left boundary:
-  lambda = crossLines(x, xRef, [xlim(1);ylim(1)], [xlim(1);ylim(2)]);
-  if 0.0 < lambda(2) && lambda(2) < 1.0 && abs(minAlpha) > abs(lambda(1))
-      minAlpha = lambda(1);
-  end
-
-  % bottom boundary:
-  lambda = crossLines(x, xRef, [xlim(1);ylim(1)], [xlim(2);ylim(1)]);
-  if 0.0 < lambda(2) && lambda(2) < 1.0 && abs(minAlpha) > abs(lambda(1))
-      minAlpha = lambda(1);
-  end
-
-  % right boundary:
-  lambda = crossLines(x, xRef, [xlim(2);ylim(1)], [xlim(2);ylim(2)]);
-  if 0.0 < lambda(2) && lambda(2) < 1.0 && abs(minAlpha) > abs(lambda(1))
-      minAlpha = lambda(1);
-  end
-
-  % top boundary:
-  lambda = crossLines(x, xRef, [xlim(1);ylim(2)], [xlim(2);ylim(2)]);
-  if 0.0 < lambda(2) && lambda(2) < 1.0 && abs(minAlpha) > abs(lambda(1))
-      minAlpha = lambda(1);
-  end
-
-  % create the new point
-  xNew = x + minAlpha*(xRef-x);
-end
-% =========================================================================
-function out = isInBox(data, xLim, yLim)
-
-  out = data(:,1) > xLim(1) & data(:,1) < xLim(2) ...
-      & data(:,2) > yLim(1) & data(:,2) < yLim(2);
-
-end
-% =========================================================================
-function lambda = crossLines(X1, X2, X3, X4)
-  % Given four points X_k=(x_k,y_k), k\in{1,2,3,4}, and the two lines defined
-  % by those,
-  %
-  %  L1(lambda) = X1 + lambda (X2 - X1)
-  %  L2(lambda) = X3 + lambda (X4 - X3)
-  %
-  % returns the lambda for which they intersect (and Inf if they are parallel).
-  % Technically, one needs to solve the 2x2 equation system
-  %
-  %   x1 + lambda1 (x2-x1)  =  x3 + lambda2 (x4-x3)
-  %   y1 + lambda1 (y2-y1)  =  y3 + lambda2 (y4-y3)
-  %
-  % for lambda and mu.
-
-  rhs = X3(:) - X1(:);
-  % Divide by det even if it's 0: Infs are returned.
-  % A = [X2-X1, -(X4-X3)];
-  detA = -(X2(1)-X1(1))*(X4(2)-X3(2)) + (X2(2)-X1(2))*(X4(1)-X3(1));
-  invA = [-(X4(2)-X3(2)), X4(1)-X3(1);...
-          -(X2(2)-X1(2)), X2(1)-X1(1)] / detA;
-  lambda = invA * rhs;
-
-end
-% =========================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2 b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2
deleted file mode 100644
index 92c8bdfd..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2
+++ /dev/null
@@ -1,38 +0,0 @@
-% This file was created by matlab2tikz.
-% Minimal pgfplots version: 1.3
-%
-%The latest updates can be retrieved from
-%  http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
-%where you can also make suggestions and rate matlab2tikz.
-%
-\begin{tikzpicture}
-
-\begin{axis}[%
-width=4.489655in,
-height=3.541034in,
-at={(0.753103in,0.477931in)},
-scale only axis,
-separate axis lines,
-every outer x axis line/.append style={black},
-every x tick label/.append style={font=\color{black}},
-xmin=1,
-xmax=5,
-xlabel={Nombre de paramètres},
-xmajorgrids,
-every outer y axis line/.append style={black},
-every y tick label/.append style={font=\color{black}},
-ymin=80,
-ymax=170,
-ylabel={Conditionnement},
-ymajorgrids
-]
-\addplot [color=red,solid,line width=2.0pt,forget plot]
-  table[row sep=crcr]{%
-1	88.563537144876\\
-2	105.940559773145\\
-3	124.236088112109\\
-4	143.61998422876\\
-5	164.222442760817\\
-};
-\end{axis}
-\end{tikzpicture}%
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2.tex b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2.tex
deleted file mode 100644
index 92c8bdfd..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/cond_2.tex
+++ /dev/null
@@ -1,38 +0,0 @@
-% This file was created by matlab2tikz.
-% Minimal pgfplots version: 1.3
-%
-%The latest updates can be retrieved from
-%  http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
-%where you can also make suggestions and rate matlab2tikz.
-%
-\begin{tikzpicture}
-
-\begin{axis}[%
-width=4.489655in,
-height=3.541034in,
-at={(0.753103in,0.477931in)},
-scale only axis,
-separate axis lines,
-every outer x axis line/.append style={black},
-every x tick label/.append style={font=\color{black}},
-xmin=1,
-xmax=5,
-xlabel={Nombre de paramètres},
-xmajorgrids,
-every outer y axis line/.append style={black},
-every y tick label/.append style={font=\color{black}},
-ymin=80,
-ymax=170,
-ylabel={Conditionnement},
-ymajorgrids
-]
-\addplot [color=red,solid,line width=2.0pt,forget plot]
-  table[row sep=crcr]{%
-1	88.563537144876\\
-2	105.940559773145\\
-3	124.236088112109\\
-4	143.61998422876\\
-5	164.222442760817\\
-};
-\end{axis}
-\end{tikzpicture}%
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/figure2dot.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/figure2dot.m
deleted file mode 100644
index 73df420d..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/figure2dot.m
+++ /dev/null
@@ -1,155 +0,0 @@
-function figure2dot(filename)
-%FIGURE2DOT    Save figure in Graphviz (.dot) file.
-%   FIGURE2DOT() saves the current figure as dot-file.
-%
-
-%   Copyright (c) 2008--2014, Nico Schlömer <nico.schloemer@gmail.com>
-%   All rights reserved.
-%
-%   Redistribution and use in source and binary forms, with or without
-%   modification, are permitted provided that the following conditions are
-%   met:
-%
-%      * Redistributions of source code must retain the above copyright
-%        notice, this list of conditions and the following disclaimer.
-%      * Redistributions in binary form must reproduce the above copyright
-%        notice, this list of conditions and the following disclaimer in
-%        the documentation and/or other materials provided with the distribution
-%
-%   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-%   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-%   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-%   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-%   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-%   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-%   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-%   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-%   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-%   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-%   POSSIBILITY OF SUCH DAMAGE.
-%
-% =========================================================================
-  global node_number
-
-  % also show hidden handles
-  set(0, 'ShowHiddenHandles', 'on');
-
-  filehandle = fopen(filename, 'w');
-
-  % start printing
-  fprintf(filehandle, 'digraph simple_hierarchy {\n\n');
-
-  fprintf(filehandle, 'node[shape=box];\n\n');
-
-  % define the root node
-  node_number = 0;
-  p = get(gcf, 'Parent');
-  % define root element
-  type = get(p, 'Type');
-  fprintf(filehandle, 'N%d [label="%s"]\n\n', node_number, type);
-
-  % start recursion
-  plot_children(filehandle, p, node_number);
-
-  % finish off
-  fprintf(filehandle, '}');
-  fclose(filehandle);
-  set(0, 'ShowHiddenHandles', 'off');
-
-end
-% =========================================================================
-function plot_children(fh, h, id)
-
-  global node_number
-
-  % get the children
-  children = get(h, 'Children');
-
-  % -----------------------------------------------------------------------
-  % loop through the children
-  for child = children(:)'
-      % define child number
-      node_number = node_number + 1;
-      type = get(child, 'Type');
-      % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-      % skip certain entries
-      if  strcmp(type, 'uimenu'       ) || ...
-          strcmp(type, 'uitoolbar'    ) || ...
-          strcmp(type, 'uicontextmenu')
-          continue;
-      end
-      % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-      label = cell(0);
-      label = [label, sprintf('Type: %s', type)];
-
-      hClass = class(handle(child));
-      label  = [label, sprintf('Class: %s', hClass)];
-
-      tag = get(child, 'Tag');
-      if ~isempty(tag)
-          label = [label, sprintf('Tag: %s', tag)];
-      end
-
-      visibility = get(child, 'Visible');
-      color = []; % set default value
-      if ~strcmp(visibility, 'on')
-          label = [label, sprintf('Visible: %s', visibility)];
-          color = 'gray';
-      end
-
-      handlevisibility = get(child, 'HandleVisibility');
-      if ~strcmp(handlevisibility, 'on')
-          label = [label, sprintf('HandleVisibility: %s', handlevisibility)];
-      end
-
-      % gather options
-      options = cell(0);
-      if ~isempty(label)
-          options = [options, ['label=', collapse(label,'\n')]];
-      end
-      if ~isempty(color)
-          options = [options, ['color=', color]];
-      end
-
-      % print node
-      fprintf(fh, 'N%d [label="%s"]\n', node_number, collapse(label, '\n'));
-
-      % connect to the child
-      fprintf(fh, 'N%d -> N%d;\n\n', id, node_number);
-
-      % recurse
-      plot_children(fh, child, node_number);
-  end
-  % -----------------------------------------------------------------------
-
-end
-% =========================================================================
-function newstr = collapse(cellstr, delimiter)
-  % This function collapses a cell of strings to a single string (with a
-  % given delimiter inbetween two strings, if desired).
-  %
-  % Example of usage:
-  %              collapse(cellstr, ',')
-
-  if length(cellstr)<1
-     newstr = [];
-     return
-  end
-
-  if isnumeric(cellstr{1})
-      newstr = my_num2str(cellstr{1});
-  else
-      newstr = cellstr{1};
-  end
-
-  for k = 2:length(cellstr)
-      if isnumeric(cellstr{k})
-          str = my_num2str(cellstr{k});
-      else
-          str = cellstr{k};
-      end
-      newstr = [newstr, delimiter, str];
-  end
-
-end
-% =========================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/m2tInputParser.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/m2tInputParser.m
deleted file mode 100644
index 30147cdd..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/m2tInputParser.m
+++ /dev/null
@@ -1,256 +0,0 @@
-function parser = m2tInputParser()
-%MATLAB2TIKZINPUTPARSER   Input parsing for matlab2tikz..
-%   This implementation exists because Octave is lacking one.
-
-%   Copyright (c) 2008--2014 Nico Schlömer
-%   All rights reserved.
-%
-%   Redistribution and use in source and binary forms, with or without
-%   modification, are permitted provided that the following conditions are
-%   met:
-%
-%       * Redistributions of source code must retain the above copyright
-%         notice, this list of conditions and the following disclaimer.
-%       * Redistributions in binary form must reproduce the above copyright
-%         notice, this list of conditions and the following disclaimer in
-%         the documentation and/or other materials provided with the distribution
-%
-%   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-%   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-%   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-%   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-%   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-%   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-%   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-%   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-%   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-%   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-%   POSSIBILITY OF SUCH DAMAGE.
-% =========================================================================
-  % Initialize the structure.
-  parser = struct ();
-  % Public Properties
-  parser.Results = {};
-  % Enabel/disable parameters case sensitivity.
-  parser.CaseSensitive = false;
-  % Keep parameters not defined by the constructor.
-  parser.KeepUnmatched = false;
-  % Enable/disable warning for parameters not defined by the constructor.
-  parser.WarnUnmatched = true;
-  % Enable/disable passing arguments in a structure.
-  parser.StructExpand = true;
-  % Names of parameters defined in input parser constructor.
-  parser.Parameters = {};
-  % Names of parameters not defined in the constructor.
-  parser.Unmatched = struct ();
-  % Names of parameters using default values.
-  parser.UsingDefaults = {};
-  % Names of deprecated parameters and their alternatives
-  parser.DeprecatedParameters = struct();
-
-  % Handles for functions that act on the object.
-  parser.addRequired    = @addRequired;
-  parser.addOptional    = @addOptional;
-  parser.addParamValue  = @addParamValue;
-  parser.deprecateParam = @deprecateParam;
-  parser.parse          = @parse;
-
-  % Initialize the parser plan
-  parser.plan = {};
-end
-% =========================================================================
-function p = parser_plan (q, arg_type, name, default, validator)
-  p = q;
-  plan = p.plan;
-  if (isempty (plan))
-    plan = struct ();
-    n = 1;
-  else
-    n = numel (plan) + 1;
-  end
-  plan(n).type      = arg_type;
-  plan(n).name      = name;
-  plan(n).default   = default;
-  plan(n).validator = validator;
-  p.plan = plan;
-end
-% =========================================================================
-function p = addRequired (p, name, validator)
-  p = parser_plan (p, 'required', name, [], validator);
-end
-% =========================================================================
-function p = addOptional (p, name, default, validator)
-  p = parser_plan (p, 'optional', name, default, validator);
-end
-% =========================================================================
-function p = addParamValue (p, name, default, validator)
-  p = parser_plan (p, 'paramvalue', name, default, validator);
-end
-% =========================================================================
-function p = deprecateParam (p, name, alternatives)
-  if isempty(alternatives)
-      alternatives = {};
-  elseif ischar(alternatives)
-      alternatives = {alternatives}; % make cellstr
-  elseif ~iscellstr(alternatives)
-      error('m2tInputParser:BadAlternatives',...
-            'Alternatives for a deprecated parameter must be a char or cellstr');
-  end
-  p.DeprecatedParameters.(name) = alternatives;
-end
-% =========================================================================
-function p = parse (p, varargin)
-  plan = p.plan;
-  results = p.Results;
-  using_defaults = {};
-  if (p.CaseSensitive)
-    name_cmp = @strcmp;
-  else
-    name_cmp = @strcmpi;
-  end
-  if (p.StructExpand)
-    k = find (cellfun (@isstruct, varargin));
-    for m = numel(k):-1:1
-      n = k(m);
-      s = varargin{n};
-      c = [fieldnames(s).'; struct2cell(s).'];
-      c = c(:).';
-      if (n > 1 && n < numel (varargin))
-        varargin = horzcat (varargin(1:n-1), c, varargin(n+1:end));
-      elseif (numel (varargin) == 1)
-        varargin = c;
-      elseif (n == 1);
-        varargin = horzcat (c, varargin(n+1:end));
-      else % n == numel (varargin)
-        varargin = horzcat (varargin(1:n-1), c);
-      end
-    end
-  end
-  if (isempty (results))
-    results = struct ();
-  end
-  type = {plan.type};
-  n = find( strcmp( type, 'paramvalue' ) );
-  m = setdiff (1:numel( plan ), n );
-  plan = plan ([n,m]);
-  for n = 1 : numel (plan)
-    found = false;
-    results.(plan(n).name) = plan(n).default;
-    if (~ isempty (varargin))
-      switch plan(n).type
-      case 'required'
-        found = true;
-        if (strcmpi (varargin{1}, plan(n).name))
-          varargin(1) = [];
-        end
-        value = varargin{1};
-        varargin(1) = [];
-      case 'optional'
-        m = find (cellfun (@ischar, varargin));
-        k = find (name_cmp (plan(n).name, varargin(m)));
-        if (isempty (k) && validate_arg (plan(n).validator, varargin{1}))
-          found = true;
-          value = varargin{1};
-          varargin(1) = [];
-        elseif (~ isempty (k))
-          m = m(k);
-          found = true;
-          value = varargin{max(m)+1};
-          varargin(union(m,m+1)) = [];
-        end
-      case 'paramvalue'
-        m = find( cellfun (@ischar, varargin) );
-        k = find (name_cmp (plan(n).name, varargin(m)));
-        if (~ isempty (k))
-          found = true;
-          m = m(k);
-          value = varargin{max(m)+1};
-          varargin(union(m,m+1)) = [];
-        end
-      otherwise
-        error( sprintf ('%s:parse', mfilename), ...
-               'parse (%s): Invalid argument type.', mfilename ...
-             )
-      end
-    end
-    if (found)
-      if (validate_arg (plan(n).validator, value))
-        results.(plan(n).name) = value;
-      else
-        error( sprintf ('%s:invalidinput', mfilename), ...
-               '%s: Input argument ''%s'' has invalid value.\n', mfilename, plan(n).name ...
-             );
-      end
-      p.Parameters = union (p.Parameters, {plan(n).name});
-    elseif (strcmp (plan(n).type, 'required'))
-      error( sprintf ('%s:missinginput', mfilename), ...
-             '%s: input ''%s'' is missing.\n', mfilename, plan(n).name ...
-           );
-    else
-      using_defaults = union (using_defaults, {plan(n).name});
-    end
-  end
-
-  if ~isempty(varargin)
-    % Include properties that do not match specified properties
-      for n = 1:2:numel(varargin)
-        if ischar(varargin{n})
-          if p.KeepUnmatched
-            results.(varargin{n}) = varargin{n+1};
-          end
-          if p.WarnUnmatched
-            warning(sprintf('%s:unmatchedArgument',mfilename), ...
-                    'Ignoring unknown argument "%s"', varargin{n});
-          end
-          p.Unmatched.(varargin{n}) = varargin{n+1};
-        else
-          error (sprintf ('%s:invalidinput', mfilename), ...
-                 '%s: invalid input', mfilename)
-        end
-      end
-  end
-
-  % Store the results of the parsing
-  p.Results = results;
-  p.UsingDefaults = using_defaults;
-
-  warnForDeprecatedParameters(p);
-end
-% =========================================================================
-function result = validate_arg (validator, arg)
-  try
-    result = validator (arg);
-  catch %#ok
-    result = false;
-  end
-end
-% =========================================================================
-function warnForDeprecatedParameters(p)
-  usedDeprecatedParameters = intersect(p.Parameters, fieldnames(p.DeprecatedParameters));
-
-  for iParam = 1:numel(usedDeprecatedParameters)
-      oldParameter = usedDeprecatedParameters{iParam};
-      alternatives = p.DeprecatedParameters.(oldParameter);
-
-      switch numel(alternatives)
-          case 0
-              replacements = '';
-          case 1
-              replacements = ['''' alternatives{1} ''''];
-          otherwise
-              replacements = deblank(sprintf('''%s'' and ',alternatives{:}));
-              replacements = regexprep(replacements,' and$','');
-      end
-      if ~isempty(replacements)
-          replacements = sprintf('From now on, please use %s to control the output.\n',replacements);
-      end
-
-      message = ['\n===============================================================================\n', ...
-                  'You are using the deprecated parameter ''%s''.\n', ...
-                  '%s', ...
-                  '==============================================================================='];
-      warning('matlab2tikz:deprecatedParameter', ...
-                message, oldParameter, replacements);
-
-  end
-end
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/matlab2tikz.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/matlab2tikz.m
deleted file mode 100644
index faae1d05..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/matlab2tikz.m
+++ /dev/null
@@ -1,5555 +0,0 @@
-function matlab2tikz(varargin)
-%MATLAB2TIKZ    Save figure in native LaTeX (TikZ/Pgfplots).
-%   MATLAB2TIKZ() saves the current figure as LaTeX file.
-%   MATLAB2TIKZ comes with several options that can be combined at will.
-%
-%   MATLAB2TIKZ(FILENAME,...) or MATLAB2TIKZ('filename',FILENAME,...)
-%   stores the LaTeX code in FILENAME.
-%
-%   MATLAB2TIKZ('filehandle',FILEHANDLE,...) stores the LaTeX code in the file
-%   referenced by FILEHANDLE. (default: [])
-%
-%   MATLAB2TIKZ('figurehandle',FIGUREHANDLE,...) explicitly specifies the
-%   handle of the figure that is to be stored. (default: gcf)
-%
-%   MATLAB2TIKZ('colormap',DOUBLE,...) explicitly specifies the colormap to be
-%   used. (default: current color map)
-%
-%   MATLAB2TIKZ('strict',BOOL,...) tells MATLAB2TIKZ to adhere to MATLAB(R)
-%   conventions wherever there is room for relaxation. (default: false)
-%
-%   MATLAB2TIKZ('strictFontSize',BOOL,...) retains the exact font sizes
-%   specified in MATLAB for the TikZ code. This goes against normal LaTeX
-%   practice. (default: false)
-%
-%   MATLAB2TIKZ('showInfo',BOOL,...) turns informational output on or off.
-%   (default: true)
-%
-%   MATLAB2TIKZ('showWarnings',BOOL,...) turns warnings on or off.
-%   (default: true)
-%
-%   MATLAB2TIKZ('imagesAsPng',BOOL,...) stores MATLAB(R) images as (lossless)
-%   PNG files. This is more efficient than storing the image color data as TikZ
-%   matrix. (default: true)
-%
-%   MATLAB2TIKZ('externalData',BOOL,...) stores all data points in external
-%   files as tab separated values (TSV files). (default: false)
-%
-%   MATLAB2TIKZ('dataPath',CHAR, ...) defines where external data files
-%   and/or PNG figures are saved. It can be either an absolute or a relative
-%   path with respect to your MATLAB work directory. By default, data files are
-%   placed in the same directory as the TikZ output file. To place data files
-%   in your MATLAB work directory, you can use '.'. (default: [])
-%
-%   MATLAB2TIKZ('relativeDataPath',CHAR, ...) tells MATLAB2TIKZ to use the
-%   given path to follow the external data files and PNG files. This is the
-%   relative path from your main LaTeX file to the data file directory.
-%   By default the same directory is used as the output (default: [])
-%
-%   MATLAB2TIKZ('height',CHAR,...) sets the height of the image. This can be
-%   any LaTeX-compatible length, e.g., '3in' or '5cm' or '0.5\textwidth'.  If
-%   unspecified, MATLAB2TIKZ tries to make a reasonable guess.
-%
-%   MATLAB2TIKZ('width',CHAR,...) sets the width of the image.
-%   If unspecified, MATLAB2TIKZ tries to make a reasonable guess.
-%
-%   MATLAB2TIKZ('noSize',BOOL,...) determines whether 'width', 'height', and
-%   'scale only axis' are specified in the generated TikZ output. For compatibility with the
-%   tikzscale package set this to true. (default: false)
-%
-%   MATLAB2TIKZ('extraCode',CHAR or CELLCHAR,...) explicitly adds extra code
-%   at the beginning of the output file. (default: [])
-%
-%   MATLAB2TIKZ('extraCodeAtEnd',CHAR or CELLCHAR,...) explicitly adds extra
-%   code at the end of the output file. (default: [])
-%
-%   MATLAB2TIKZ('extraAxisOptions',CHAR or CELLCHAR,...) explicitly adds extra
-%   options to the Pgfplots axis environment. (default: [])
-%
-%   MATLAB2TIKZ('extraColors', {{'name',[R G B]}, ...} , ...) adds
-%   user-defined named RGB-color definitions to the TikZ output.
-%   R, G and B are expected between 0 and 1. (default: {})
-%
-%   MATLAB2TIKZ('extraTikzpictureOptions',CHAR or CELLCHAR,...)
-%   explicitly adds extra options to the tikzpicture environment. (default: [])
-%
-%   MATLAB2TIKZ('encoding',CHAR,...) sets the encoding of the output file.
-%
-%   MATLAB2TIKZ('floatFormat',CHAR,...) sets the format used for float values.
-%   You can use this to decrease the file size. (default: '%.15g')
-%
-%   MATLAB2TIKZ('maxChunkLength',INT,...) sets maximum number of data points
-%   per \addplot for line plots (default: 4000)
-%
-%   MATLAB2TIKZ('parseStrings',BOOL,...) determines whether title, axes labels
-%   and the like are parsed into LaTeX by MATLAB2TIKZ's parser.
-%   If you want greater flexibility, set this to false and use straight LaTeX
-%   for your labels. (default: true)
-%
-%   MATLAB2TIKZ('parseStringsAsMath',BOOL,...) determines whether to use TeX's
-%   math mode for more characters (e.g. operators and figures). (default: false)
-%
-%   MATLAB2TIKZ('showHiddenStrings',BOOL,...) determines whether to show
-%   strings whose were deliberately hidden. This is usually unnecessary, but
-%   can come in handy for unusual plot types (e.g., polar plots). (default:
-%   false)
-%
-%   MATLAB2TIKZ('interpretTickLabelsAsTex',BOOL,...) determines whether to
-%   interpret tick labels as TeX. MATLAB(R) doesn't do that by default.
-%   (default: false)
-%
-%   MATLAB2TIKZ('tikzFileComment',CHAR,...) adds a custom comment to the header
-%   of the output file. (default: '')
-%
-%   MATLAB2TIKZ('automaticLabels',BOOL,...) determines whether to automatically
-%   add labels to plots (where applicable) which make it possible to refer
-%   to them using \ref{...} (e.g., in the caption of a figure). (default: false)
-%
-%   MATLAB2TIKZ('standalone',BOOL,...) determines whether to produce
-%   a standalone compilable LaTeX file. Setting this to true may be useful for
-%   taking a peek at what the figure will look like. (default: false)
-%
-%   MATLAB2TIKZ('checkForUpdates',BOOL,...) determines whether to automatically
-%   check for updates of matlab2tikz. (default: true)
-%
-%   Example
-%      x = -pi:pi/10:pi;
-%      y = tan(sin(x)) - sin(tan(x));
-%      plot(x,y,'--rs');
-%      matlab2tikz('myfile.tex');
-%
-
-%   Copyright (c) 2008--2014, Nico Schlömer <nico.schloemer@gmail.com>
-%   All rights reserved.
-%
-%   Redistribution and use in source and binary forms, with or without
-%   modification, are permitted provided that the following conditions are
-%   met:
-%
-%      * Redistributions of source code must retain the above copyright
-%        notice, this list of conditions and the following disclaimer.
-%      * Redistributions in binary form must reproduce the above copyright
-%        notice, this list of conditions and the following disclaimer in
-%        the documentation and/or other materials provided with the distribution
-%
-%   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-%   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-%   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-%   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-%   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-%   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-%   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-%   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-%   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-%   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-%   POSSIBILITY OF SUCH DAMAGE.
-
-%   Note:
-%   This program was based on Paul Wagenaars' Matfig2PGF that can be
-%   found on http://www.mathworks.com/matlabcentral/fileexchange/12962 .
-
-%% Check if we are in MATLAB or Octave.
-[m2t.env, m2t.envVersion] = getEnvironment();
-
-minimalVersion = struct('MATLAB', struct('name','2014a', 'num',[8 3]), ...
-                        'Octave', struct('name','3.8', 'num',[3 8]));
-checkDeprecatedEnvironment(m2t, minimalVersion);
-
-m2t.cmdOpts = [];
-m2t.currentHandles = [];
-
-m2t.transform = []; % For hgtransform groups
-m2t.pgfplotsVersion = [1,3];
-m2t.name = 'matlab2tikz';
-m2t.version = '0.6.0';
-m2t.author = 'Nico Schlömer';
-m2t.authorEmail = 'nico.schloemer@gmail.com';
-m2t.years = '2008--2014';
-m2t.website = 'http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz';
-VCID = VersionControlIdentifier();
-m2t.versionFull = strtrim(sprintf('v%s %s', m2t.version, VCID));
-
-m2t.tol = 1.0e-15; % numerical tolerance (e.g. used to test equality of doubles)
-m2t.imageAsPngNo = 0;
-m2t.dataFileNo   = 0;
-m2t.barplotId    = 0; % identification flag for bar plots
-m2t.quiverId     = 0; % identification flag for quiver plot styles
-m2t.automaticLabelIndex = 0;
-
-% definition of color depth
-m2t.colorDepth     = 48; %[bit] RGB color depth (typical values: 24, 30, 48)
-m2t.colorPrecision = 2^(-m2t.colorDepth/3);
-m2t.colorFormat    = sprintf('%%0.%df',ceil(-log10(m2t.colorPrecision)));
-
-% the actual contents of the TikZ file go here
-m2t.content = struct('name',     '', ...
-                     'comment',  [], ...
-                     'options',  {opts_new()}, ...
-                     'content',  {cell(0)}, ...
-                     'children', {cell(0)});
-m2t.preamble = sprintf(['\\usepackage{pgfplots}\n', ...
-                        '\\usepackage{grffile}\n', ...
-                        '\\pgfplotsset{compat=newest}\n', ...
-                        '\\usetikzlibrary{plotmarks}\n', ...
-                        '\\usepackage{amsmath}\n']);
-
-%% scan the options
-ipp = m2tInputParser;
-
-ipp = ipp.addOptional(ipp, 'filename',   '', @(x) filenameValidation(x,ipp));
-ipp = ipp.addOptional(ipp, 'filehandle', [], @filehandleValidation);
-
-ipp = ipp.addParamValue(ipp, 'figurehandle', get(0,'CurrentFigure'), @ishandle);
-ipp = ipp.addParamValue(ipp, 'colormap', [], @isnumeric);
-ipp = ipp.addParamValue(ipp, 'strict', false, @islogical);
-ipp = ipp.addParamValue(ipp, 'strictFontSize', false, @islogical);
-ipp = ipp.addParamValue(ipp, 'showInfo', true, @islogical);
-ipp = ipp.addParamValue(ipp, 'showWarnings', true, @islogical);
-ipp = ipp.addParamValue(ipp, 'checkForUpdates', true, @islogical);
-
-ipp = ipp.addParamValue(ipp, 'encoding' , '', @ischar);
-ipp = ipp.addParamValue(ipp, 'standalone', false, @islogical);
-ipp = ipp.addParamValue(ipp, 'tikzFileComment', '', @ischar);
-ipp = ipp.addParamValue(ipp, 'extraColors', {}, @iscolordefinitions);
-ipp = ipp.addParamValue(ipp, 'extraCode', {}, @isCellOrChar);
-ipp = ipp.addParamValue(ipp, 'extraCodeAtEnd', {}, @isCellOrChar);
-ipp = ipp.addParamValue(ipp, 'extraAxisOptions', {}, @isCellOrChar);
-ipp = ipp.addParamValue(ipp, 'extraTikzpictureOptions', {}, @isCellOrChar);
-ipp = ipp.addParamValue(ipp, 'floatFormat', '%.15g', @ischar);
-ipp = ipp.addParamValue(ipp, 'automaticLabels', false, @islogical);
-ipp = ipp.addParamValue(ipp, 'showHiddenStrings', false, @islogical);
-ipp = ipp.addParamValue(ipp, 'height', '', @ischar);
-ipp = ipp.addParamValue(ipp, 'width' , '', @ischar);
-ipp = ipp.addParamValue(ipp, 'imagesAsPng', true, @islogical);
-ipp = ipp.addParamValue(ipp, 'externalData', false, @islogical);
-ipp = ipp.addParamValue(ipp, 'dataPath', '', @ischar);
-ipp = ipp.addParamValue(ipp, 'relativeDataPath', '', @ischar);
-ipp = ipp.addParamValue(ipp, 'noSize', false, @islogical);
-
-% Maximum chunk length.
-% TeX parses files line by line with a buffer of size buf_size. If the
-% plot has too many data points, pdfTeX's buffer size may be exceeded.
-% As a work-around, the plot is split into several smaller chunks.
-%
-% What is a "large" array?
-% TeX parser buffer is buf_size=200 000 char on Mac TeXLive, let's say
-% 100 000 to be on the safe side.
-% 1 point is represented by 25 characters (estimation): 2 coordinates (10
-% char), 2 brackets, comma and white space, + 1 extra char.
-% That gives a magic arbitrary number of 4000 data points per array.
-ipp = ipp.addParamValue(ipp, 'maxChunkLength', 4000, @isnumeric);
-
-% By default strings like axis labels are parsed to match the appearance of
-% strings as closely as possible to that generated by MATLAB.
-% If the user wants to have particular strings in the matlab2tikz output that
-% can't be generated in MATLAB, they can disable string parsing. In that case
-% all strings are piped literally to the LaTeX output.
-ipp = ipp.addParamValue(ipp, 'parseStrings', true, @islogical);
-
-% In addition to regular string parsing, an additional stage can be enabled
-% which uses TeX's math mode for more characters like figures and operators.
-ipp = ipp.addParamValue(ipp, 'parseStringsAsMath', false, @islogical);
-
-% As opposed to titles, axis labels and such, MATLAB(R) does not interpret tick
-% labels as TeX. matlab2tikz retains this behavior, but if it is desired to
-% interpret the tick labels as TeX, set this option to true.
-ipp = ipp.addParamValue(ipp, 'interpretTickLabelsAsTex', false, @islogical);
-
-%% deprecated parameters (will auto-generate warnings upon parse)
-ipp = ipp.addParamValue(ipp, 'relativePngPath', '', @ischar);
-ipp = ipp.deprecateParam(ipp, 'relativePngPath', 'relativeDataPath');
-
-%% Finally parse all the arguments
-ipp = ipp.parse(ipp, varargin{:});
-m2t.cmdOpts = ipp; % store the input parser back into the m2t data struct
-
-%% inform users of potentially dangerous options
-warnAboutParameter(m2t, 'parseStringsAsMath', @(opt)(opt==true), ...
-    ['This may produce undesirable string output. For full control over output\n', ...
-     'strings please set the parameter "parseStrings" to false.']);
-warnAboutParameter(m2t, 'noSize', @(opt)(opt==true), ...
-     'This may impede both axes sizing and placement!');
-warnAboutParameter(m2t, 'imagesAsPng', @(opt)(opt==false), ...
-     ['It is highly recommended to use PNG data to store images.\n', ...
-      'Make sure to set "imagesAsPng" to true.']);
-
-% The following color RGB-values which will need to be defined.
-% 'extraRgbColorNames' contains their designated names, 'extraRgbColorSpecs'
-% their specifications.
-[m2t.extraRgbColorNames, m2t.extraRgbColorSpecs] = ...
-    dealColorDefinitions(m2t.cmdOpts.Results.extraColors);
-
-%% shortcut
-m2t.ff = m2t.cmdOpts.Results.floatFormat;
-
-%% add global elements
-if isempty(m2t.cmdOpts.Results.figurehandle)
-    error('matlab2tikz:figureNotFound','MATLAB figure not found.');
-end
-m2t.currentHandles.gcf = m2t.cmdOpts.Results.figurehandle;
-if m2t.cmdOpts.Results.colormap
-    m2t.currentHandles.colormap = m2t.cmdOpts.Results.colormap;
-else
-    m2t.currentHandles.colormap = get(m2t.currentHandles.gcf, 'colormap');
-end
-
-%% handle output file handle/file name
-[m2t, fid, fileWasOpen] = openFileForOutput(m2t);
-
-% By default, reference the PNG (if required) from the TikZ file
-% as the file path of the TikZ file itself. This works if the MATLAB script
-% is executed in the same folder where the TeX file sits.
-if isempty(m2t.cmdOpts.Results.relativeDataPath)
-    if ~isempty(m2t.cmdOpts.Results.relativePngPath)
-        %NOTE: eventually break backwards compatibility of relative PNG path
-        m2t.relativeDataPath = m2t.cmdOpts.Results.relativePngPath;
-        userWarning(m2t, ['Using "relativePngPath" for "relativeDataPath".', ...
-            ' This will stop working in a future release.']);
-    else
-        m2t.relativeDataPath = m2t.cmdOpts.Results.relativeDataPath;
-    end
-else
-    m2t.relativeDataPath = m2t.cmdOpts.Results.relativeDataPath;
-end
-if isempty(m2t.cmdOpts.Results.dataPath)
-    m2t.dataPath = fileparts(m2t.tikzFileName);
-else
-    m2t.dataPath = m2t.cmdOpts.Results.dataPath;
-end
-
-
-userInfo(m2t, ['(To disable info messages, pass [''showInfo'', false] to matlab2tikz.)\n', ...
-    '(For all other options, type ''help matlab2tikz''.)\n']);
-
-userInfo(m2t, '\nThis is %s %s.\n', m2t.name, m2t.versionFull)
-
-%% Check for a new matlab2tikz version outside version control
-if m2t.cmdOpts.Results.checkForUpdates && isempty(VCID)
-  m2tUpdater(...
-    m2t.name, ...
-    m2t.website, ...
-    m2t.version, ...
-    m2t.cmdOpts.Results.showInfo, ...
-    m2t.env...
-    );
-end
-
-%% print some version info to the screen
-versionInfo = ['The latest updates can be retrieved from\n'         ,...
-               '   %s\n'                                            ,...
-               'where you can also make suggestions and rate %s.\n' ,...
-               'For usage instructions, bug reports, the latest '   ,...
-               'development versions and more, see\n'               ,...
-               '   https://github.com/matlab2tikz/matlab2tikz,\n'       ,...
-               '   https://github.com/matlab2tikz/matlab2tikz/wiki,\n'  ,...
-               '   https://github.com/matlab2tikz/matlab2tikz/issues.\n'];
-userInfo(m2t, versionInfo, m2t.website, m2t.name);
-
-%% Save the figure as TikZ to file
-saveToFile(m2t, fid, fileWasOpen);
-end
-% ==============================================================================
-function [m2t, fid, fileWasOpen] = openFileForOutput(m2t)
-% opens the output file and/or show a dialog to select one
-if ~isempty(m2t.cmdOpts.Results.filehandle)
-    fid     = m2t.cmdOpts.Results.filehandle;
-    fileWasOpen = true;
-    if ~isempty(m2t.cmdOpts.Results.filename)
-        userWarning(m2t, ...
-            'File handle AND file name for output given. File handle used, file name discarded.')
-    end
-else
-    fileWasOpen = false;
-    % set filename
-    if ~isempty(m2t.cmdOpts.Results.filename)
-        filename = m2t.cmdOpts.Results.filename;
-    else
-        [filename, pathname] = uiputfile({'*.tex;*.tikz'; '*.*'}, 'Save File');
-        filename = fullfile(pathname, filename);
-    end
-
-    fid = fileOpenForWrite(m2t, filename);
-end
-m2t.tikzFileName = fopen(fid);
-end
-% ==============================================================================
-function l = filenameValidation(x, p)
-% is the filename argument NOT another keyword?
-    l = ischar(x) && ~any(strcmp(x,p.Parameters));
-end
-% ==============================================================================
-function l = filehandleValidation(x)
-% is the filehandle the handle to an opened file?
-    l = isnumeric(x) && any(x==fopen('all'));
-end
-% ==============================================================================
-function l = isCellOrChar(x)
-    l = iscell(x) || ischar(x);
-end
-% ==============================================================================
-function isValid = iscolordefinitions(colors)
-    isRGBTuple   = @(c)( numel(c) == 3 && all(0<=c & c<=1) );
-    isValidEntry = @(e)( iscell(e) && ischar(e{1}) && isRGBTuple(e{2}) );
-
-    isValid = iscell(colors) && all(cellfun(isValidEntry, colors));
-end
-% ==============================================================================
-function fid = fileOpenForWrite(m2t, filename)
-    encoding = switchMatOct(m2t, {'native', m2t.cmdOpts.Results.encoding}, {});
-
-    fid      = fopen(filename, 'w', encoding{:});
-    if fid == -1
-        error('matlab2tikz:fileOpenError', ...
-            'Unable to open file ''%s'' for writing.', filename);
-    end
-end
-% ==============================================================================
-function path = TeXpath(path)
-    path = strrep(path, filesep, '/');
-% TeX uses '/' as a file separator (as UNIX). Windows, however, uses
-% '\' which is not supported by TeX as a file separator
-end
-% ==============================================================================
-function m2t = saveToFile(m2t, fid, fileWasOpen)
-% Save the figure as TikZ to a file. All other routines are called from here.
-
-    % It is important to turn hidden handles on, as visible lines (such as the
-    % axes in polar plots, for example), are otherwise hidden from their
-    % parental handles (and can hence not be discovered by matlab2tikz).
-    % With ShowHiddenHandles 'on', there is no escape. :)
-    set(0, 'ShowHiddenHandles', 'on');
-
-    % get all axes handles
-    [m2t, axesHandles] = findPlotAxes(m2t, m2t.currentHandles.gcf);
-
-    % Turn around the handles vector to make sure that plots that appeared
-    % first also appear first in the vector. This has effects on the alignment
-    % and the order in which the plots appear in the final TikZ file.
-    % In fact, this is not really important but makes things more 'natural'.
-    axesHandles = axesHandles(end:-1:1);
-
-    % Alternative Positioning of axes.
-    % Select relevant Axes and draw them.
-    [relevantAxesHandles, axesBoundingBox] = getRelevantAxes(m2t, axesHandles);
-
-    m2t.axesBoundingBox = axesBoundingBox;
-    m2t.axesContainers = {};
-    for relevantAxesHandle = relevantAxesHandles
-        m2t = drawAxes(m2t, relevantAxesHandle);
-    end
-
-    % Handle color bars.
-    for cbar = m2t.cbarHandles(:)'
-        m2t = handleColorbar(m2t, cbar);
-    end
-
-    % Add all axes containers to the file contents.
-    for axesContainer = m2t.axesContainers
-        m2t.content = addChildren(m2t.content, axesContainer);
-    end
-
-    set(0, 'ShowHiddenHandles', 'off');
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % actually print the stuff
-    minimalPgfplotsVersion = formatPgfplotsVersion(m2t, m2t.pgfplotsVersion);
-
-    environment = sprintf('%s %s',m2t.env, m2t.envVersion);
-    m2t.content.comment = sprintf(['This file was created by %s.\n', ...
-        ' Minimal pgfplots version: %s\n'], ...
-        m2t.name, ...
-        minimalPgfplotsVersion);
-
-    if m2t.cmdOpts.Results.showInfo
-        % disable this info if showInfo=false
-        m2t.content.comment = [m2t.content.comment, ...
-            sprintf(['\n',...
-            'The latest updates can be retrieved from\n', ...
-            '  %s\n', ...
-            'where you can also make suggestions and rate %s.\n'], ...
-            m2t.website, m2t.name ) ...
-            ];
-    end
-
-    userInfo(m2t, 'You will need pgfplots version %s or newer to compile the TikZ output.',...
-        minimalPgfplotsVersion);
-
-    % Add custom comment.
-    if ~isempty(m2t.cmdOpts.Results.tikzFileComment)
-        m2t.content.comment = [m2t.content.comment, ...
-            sprintf('\n%s\n', m2t.cmdOpts.Results.tikzFileComment)
-            ];
-    end
-
-    m2t.content.name = 'tikzpicture';
-
-    % Add custom TikZ options if any given.
-    m2t.content.options = opts_append_userdefined(m2t.content.options, ...
-                                   m2t.cmdOpts.Results.extraTikzpictureOptions);
-
-    m2t.content.colors = generateColorDefinitions(m2t.extraRgbColorNames, ...
-                            m2t.extraRgbColorSpecs, m2t.colorFormat);
-
-    % Finally print it to the file,
-    addComments(fid, m2t.content.comment);
-
-    if m2t.cmdOpts.Results.standalone
-        fprintf(fid, '\\documentclass[tikz]{standalone}\n%s\n',  m2t.preamble);
-    end
-
-    addCustomCode(fid, '', m2t.cmdOpts.Results.extraCode, '');
-
-    if m2t.cmdOpts.Results.standalone
-        fprintf(fid, '\\begin{document}\n');
-    end
-    % printAll() handles the actual figure plotting.
-    printAll(m2t, m2t.content, fid);
-
-    addCustomCode(fid, '\n', m2t.cmdOpts.Results.extraCodeAtEnd, '');
-
-    if m2t.cmdOpts.Results.standalone
-        fprintf(fid, '\n\\end{document}');
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    % close the file if necessary
-    if ~fileWasOpen
-        fclose(fid);
-    end
-end
-% ==============================================================================
-function str = generateColorDefinitions(names, specs, colorFormat)
-% output the color definitions to LaTeX
-    str = '';
-    ff  = colorFormat;
-    if ~isempty(names)
-        m2t.content.colors = sprintf('%%\n%% defining custom colors\n');
-        for k = 1:length(names)
-            % make sure to append with '%' to avoid spacing woes
-            str = [str, ...
-                sprintf(['\\definecolor{%s}{rgb}{', ff, ',', ff, ',', ff,'}%%\n'], ...
-                names{k}', specs{k})];
-        end
-        str = [str sprintf('%%\n')];
-    end
-end
-% ==============================================================================
-function [m2t, axesHandles] = findPlotAxes(m2t, fh)
-% find axes handles that are not legends/colorbars
-    % NOTE: also do R2014b to avoid code duplication
-    axesHandles = findobj(fh, 'type', 'axes');
-
-    % Remove all legend handles as they are treated separately.
-    if ~isempty(axesHandles)
-        % TODO fix for octave
-        tagKeyword = switchMatOct(m2t, 'Tag', 'tag');
-        % Find all legend handles. This is MATLAB-only.
-        m2t.legendHandles = findobj(fh, tagKeyword, 'legend');
-        m2t.legendHandles = m2t.legendHandles(:)';
-        axesHandles = setdiff(axesHandles, m2t.legendHandles);
-    end
-
-    % Remove all legend handles as they are treated separately.
-    if ~isempty(axesHandles)
-        colorbarKeyword = switchMatOct(m2t, 'Colorbar', 'colorbar');
-        % Find all colorbar handles. This is MATLAB-only.
-        cbarHandles = findobj(fh, tagKeyword, colorbarKeyword);
-        % Octave also finds text handles here; no idea why. Filter.
-        m2t.cbarHandles = [];
-        for h = cbarHandles(:)'
-          if strcmpi(get(h, 'Type'),'axes')
-            m2t.cbarHandles = [m2t.cbarHandles, h];
-          end
-        end
-        m2t.cbarHandles = m2t.cbarHandles(:)';
-        axesHandles = setdiff(axesHandles, m2t.cbarHandles);
-    else
-        m2t.cbarHandles = [];
-    end
-
-end
-% ==============================================================================
-function addComments(fid, comment)
-% prints TeX comments to file stream |fid|
-    if ~isempty(comment)
-        newline = sprintf('\n');
-        newlineTeX = sprintf('\n%%');
-        fprintf(fid, '%% %s\n', strrep(comment, newline, newlineTeX));
-    end
-end
-% ==============================================================================
-function addCustomCode(fid, before, code, after)
-    if ~isempty(code)
-        fprintf(fid, before);
-        if ischar(code)
-            code = {code};
-        end
-        if iscellstr(code)
-            for str = code(:)'
-                fprintf(fid, '%s\n', str{1});
-            end
-        else
-            error('matlab2tikz:saveToFile', 'Need str or cellstr.');
-        end
-        fprintf(fid,after);
-    end
-end
-% ==============================================================================
-function [m2t, pgfEnvironments] = handleAllChildren(m2t, handle)
-% Draw all children of a graphics object (if they need to be drawn).
-% #COMPLEX: mainly a switch-case
-    str = '';
-    children = get(handle, 'Children');
-
-    % prepare cell array of pgfEnvironments
-    pgfEnvironments = cell(0);
-
-    % It's important that we go from back to front here, as this is
-    % how MATLAB does it, too. Significant for patch (contour) plots,
-    % and the order of plotting the colored patches.
-    for child = children(end:-1:1)'
-        % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-        [m2t, legendString, interpreter] = findLegendInformation(m2t, child);
-        % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-        switch char(get(child, 'Type'))
-            % 'axes' environments are treated separately.
-
-            case 'line'
-                [m2t, str] = drawLine(m2t, child);
-
-            case 'patch'
-                [m2t, str] = drawPatch(m2t, child);
-
-            case 'image'
-                [m2t, str] = drawImage(m2t, child);
-
-            case 'contour'
-                [m2t, str] = drawContour(m2t, child);
-
-            case {'hggroup', 'matlab.graphics.primitive.Group', ...
-                  'scatter', 'bar', 'stair', 'stem' ,'errorbar', 'area', ...
-                  'quiver'}
-                [m2t, str] = drawHggroup(m2t, child);
-
-            case 'hgtransform'
-                % From http://www.mathworks.de/de/help/matlab/ref/hgtransformproperties.html:
-                % Matrix: 4-by-4 matrix
-                %   Transformation matrix applied to hgtransform object and its
-                %   children. The hgtransform object applies the transformation
-                %   matrix to all its children.
-                % More information at http://www.mathworks.de/de/help/matlab/creating_plots/group-objects.html.
-                m2t.transform = get(child, 'Matrix');
-                [m2t, str] = handleAllChildren(m2t, child);
-                m2t.transform = [];
-
-            case 'surface'
-                [m2t, str] = drawSurface(m2t, child);
-
-            case 'text'
-                [m2t, str] = drawVisibleText(m2t, child);
-
-            case 'rectangle'
-                [m2t, str] = drawRectangle(m2t, child);
-
-            case {'uitoolbar', 'uimenu', 'uicontextmenu', 'uitoggletool',...
-                    'uitogglesplittool', 'uipushtool', 'hgjavacomponent'}
-                % don't to anything for these handles and its children
-                str = '';
-
-            case ''
-                warning('matlab2tikz:NoChildren',...
-                        ['No children found for handle %d. ',...
-                         'Carrying on as if nothing happened'], handle);
-
-            otherwise
-                error('matlab2tikz:handleAllChildren',                 ...
-                    'I don''t know how to handle this object: %s\n', ...
-                    get(child, 'Type'));
-
-        end
-
-        [m2t, str] = addLegendInformation(m2t, str, legendString, interpreter);
-
-        % append the environment
-        pgfEnvironments{end+1} = str;
-    end
-end
-% ==============================================================================
-function [m2t, legendString, interpreter] = findLegendInformation(m2t, child)
-% Check if 'child' is referenced in a legend.
-% If yes, some plot types may want to add stuff (e.g. 'forget plot').
-% Add '\addlegendentry{...}' then after the plot.
-legendString = '';
-interpreter  = '';
-hasLegend = false;
-
-% Check if current handle is referenced in a legend.
-switch m2t.env
-    case 'MATLAB'
-        if ~isempty(m2t.legendHandles)
-            % Make sure that m2t.legendHandles is a row vector.
-            for legendHandle = m2t.legendHandles(:)'
-                ud = get(legendHandle, 'UserData');
-                if isfield(ud, 'handles')
-                    plotChildren = ud.handles;
-                else
-                    plotChildren = getOrDefault(legendHandle, 'PlotChildren', []);
-                end
-                if ~isempty(child)
-                    k = find(child == plotChildren);
-                    if isempty(k)
-                        % Lines of error bar plots are not referenced
-                        % directly in legends as an error bars plot contains
-                        % two "lines": the data and the deviations. Here, the
-                        % legends refer to the specgraph.errorbarseries
-                        % handle which is 'Parent' to the line handle.
-                        k = find(get(child,'Parent') == plotChildren);
-                    end
-                    if ~isempty(k)
-                        % Legend entry found. Add it to the plot.
-                        hasLegend = true;
-                        interpreter = get(legendHandle, 'Interpreter');
-                        if ~isempty(ud) && isfield(ud,'strings')
-                            legendString = ud.lstrings(k);
-                        else
-                            legendString = get(child, 'DisplayName');
-                        end
-                    end
-                end
-            end
-        end
-    case 'Octave'
-        % Octave associates legends with axes, not with (line) plot.
-        % The variable m2t.gcaHasLegend is set in drawAxes().
-        hasLegend = ~isempty(m2t.gcaAssociatedLegend);
-        interpreter = get(m2t.gcaAssociatedLegend, 'interpreter');
-        legendString = getOrDefault(child,'displayname','');
-    otherwise
-        errorUnknownEnvironment();
-end
-
-% split string to cell, if newline character '\n' (ASCII 10) is present
-delimeter = sprintf('\n');
-legendString = regexp(legendString,delimeter,'split');
-
-m2t.currentHandleHasLegend = hasLegend && ~isempty(legendString);
-end
-% ==============================================================================
-function [m2t, str] = addLegendInformation(m2t, str, legendString, interpreter)
-% Add legend after the plot data.
-% The test for ischar(str) && ~isempty(str) is a workaround for hggroups;
-% the output might not necessarily be a string, but a cellstr.
-    if ischar(str) && ~isempty(str) && m2t.currentHandleHasLegend
-        c = prettyPrint(m2t, legendString, interpreter);
-        % We also need a legend alignment option to make multiline
-        % legend entries work. This is added by default in getLegendOpts().
-        str = [str, sprintf('\\addlegendentry{%s};\n\n', join(m2t, c, '\\'))];
-    end
-end
-% ==============================================================================
-function data = applyHgTransform(m2t, data)
-    if ~isempty(m2t.transform)
-        R = m2t.transform(1:3,1:3);
-        t = m2t.transform(1:3,4);
-        n = size(data, 1);
-        data = data * R' + kron(ones(n,1), t');
-    end
-end
-% ==============================================================================
-function m2t = drawAxes(m2t, handle)
-% Input arguments:
-%    handle.................The axes environment handle.
-
-% Handle special cases.
-    switch lower(get(handle, 'Tag'))
-        case 'colorbar'
-            m2t = handleColorbar(m2t, handle);
-            return
-        case 'legend'
-            % In MATLAB, an axis and its legend are siblings, while in Pgfplots,
-            % the \legend (or \addlegendentry) command must appear within the axis
-            % environment, so handle it there.
-            return
-        otherwise
-            % continue as usual
-    end
-
-    % Initialize empty environment.
-    % Use a struct instead of a custom subclass of hgsetget (which would
-    % facilitate writing clean code) as structs are more portable (old MATLAB(R)
-    % versions, GNU Octave).
-    m2t.axesContainers{end+1} = struct('handle', handle, ...
-        'name', '', ...
-        'comment', [], ...
-        'options', {opts_new()}, ...
-        'content', {cell(0)}, ...
-        'children', {cell(0)});
-
-    % update gca
-    m2t.currentHandles.gca = handle;
-
-    % Bar plots need to have some values counted per axis. Setting
-    % m2t.barplotId to 0 makes sure these are recomputed in drawBarSeries()
-    % TODO: find nicer approach for barplots
-    m2t.barplotId = 0;
-
-    m2t.gcaAssociatedLegend = getAssociatedLegend(m2t, handle);
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % get the axes position
-    pos = getAxesPosition(m2t, handle, ...
-        m2t.cmdOpts.Results.width, ...
-        m2t.cmdOpts.Results.height, ...
-        m2t.axesBoundingBox);
-    % Axes should not be in px any more
-
-    % set the width
-    if (~m2t.cmdOpts.Results.noSize)
-        % optionally prevents setting the width and height of the axis
-        m2t = setDimensionOfAxes(m2t, 'width',  pos.w);
-        m2t = setDimensionOfAxes(m2t, 'height', pos.h);
-
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, 'at', ...
-                ['{(' formatDim(pos.x.value, pos.x.unit) ','...
-                      formatDim(pos.y.value, pos.y.unit) ')}']);
-        % the following is general MATLAB behavior:
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, ...
-            'scale only axis', []);
-    end
-    % Add the physical dimension of one unit of length in the coordinate system.
-    % This is used later on to translate lengths to physical units where
-    % necessary (e.g., in bar plots).
-    m2t.unitlength.x.unit = pos.w.unit;
-    xLim = get(m2t.currentHandles.gca, 'XLim');
-    m2t.unitlength.x.value = pos.w.value / (xLim(2)-xLim(1));
-    m2t.unitlength.y.unit = pos.h.unit;
-    yLim = get(m2t.currentHandles.gca, 'YLim');
-    m2t.unitlength.y.value = pos.h.value / (yLim(2)-yLim(1));
-    for axis = 'xyz'
-        m2t.([axis 'AxisReversed']) = ...
-            strcmp(get(handle,[upper(axis),'Dir']), 'reverse');
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % In MATLAB, all plots are treated as 3D plots; it's just the view that
-    % makes 2D plots appear like 2D.
-    % Recurse into the children of this environment. Do this here to give the
-    % contained plots the chance to set m2t.currentAxesContain3dData to true.
-    m2t.currentAxesContain3dData = false;
-    [m2t, childrenEnvs] = handleAllChildren(m2t, handle);
-    m2t.axesContainers{end} = addChildren(m2t.axesContainers{end}, childrenEnvs);
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % The rest of this is handling axes options.
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % Get other axis options (ticks, axis color, label,...).
-    % This is set here such that the axis orientation indicator in m2t is set
-    % before -- if ~isVisible(handle) -- the handle's children are called.
-    [m2t, xopts] = getAxisOptions(m2t, handle, 'x');
-    [m2t, yopts] = getAxisOptions(m2t, handle, 'y');
-
-    m2t.axesContainers{end}.options = opts_merge(m2t.axesContainers{end}.options, ...
-                                            xopts, yopts);
-    if m2t.currentAxesContain3dData
-        [m2t, zopts] = getAxisOptions(m2t, handle, 'z');
-        m2t.axesContainers{end}.options = opts_merge(m2t.axesContainers{end}.options, zopts);
-
-         m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, ...
-            'view', sprintf(['{', m2t.ff, '}{', m2t.ff, '}'], get(handle, 'View')));
-    end
-    hasXGrid = false;
-    hasYGrid = false;
-    hasZGrid = false;
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    if ~isVisible(handle)
-        % Setting hide{x,y} axis also hides the axis labels in Pgfplots whereas
-        % in MATLAB, they may still be visible. Well.
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, 'hide axis', []);
-        %    % An invisible axes container *can* have visible children, so don't
-        %    % immediately bail out here.
-        %    children = get(handle, 'Children');
-        %    for child = children(:)'
-        %        if isVisible(child)
-        %            % If the axes contain something that's visible, add an invisible
-        %            % axes pair.
-        %            m2t.axesContainers{end}.name = 'axis';
-        %            m2t.axesContainers{end}.options = {m2t.axesContainers{end}.options{:}, ...
-        %                                               'hide x axis', 'hide y axis'};
-        %            m2t.axesContainers{end}.comment = getTag(handle);
-        %            break;
-        %        end
-        %    end
-        %    % recurse into the children of this environment
-        %    [m2t, childrenEnvs] = handleAllChildren(m2t, handle);
-        %    m2t.axesContainers{end} = addChildren(m2t.axesContainers{end}, childrenEnvs);
-        %    return
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    m2t.axesContainers{end}.name = 'axis';
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % background color
-    m2t = drawBackgroundOfAxes(m2t, handle);
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % title
-    m2t = drawTitleOfAxes(m2t, handle);
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % axes locations
-    m2t = drawBoxAndLineLocationsOfAxes(m2t, handle);
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % grid line style
-    if hasXGrid || hasYGrid || hasZGrid
-        matlabGridLineStyle = get(handle, 'GridLineStyle');
-        % Take over the grid line style in any case when in strict mode.
-        % If not, don't add anything in case of default line grid line style
-        % and effectively take Pgfplots' default.
-        defaultMatlabGridLineStyle = ':';
-        if m2t.cmdOpts.Results.strict ...
-                || ~strcmp(matlabGridLineStyle,defaultMatlabGridLineStyle)
-            gls = translateLineStyle(matlabGridLineStyle);
-            axisGridOpts = {'grid style', sprintf('{%s}', gls)};
-            m2t.axesContainers{end}.options = cat(1, ...
-                m2t.axesContainers{end}.options,...
-                axisGridOpts);
-        end
-    else
-        % When specifying 'axis on top', the axes stay above all graphs (which is
-        % default MATLAB behavior), but so do the grids (which is not default
-        % behavior).
-        %TODO: use proper grid ordering
-        if m2t.cmdOpts.Results.strict
-            m2t.axesContainers{end}.options = ...
-                opts_add(m2t.axesContainers{end}.options, ...
-                'axis on top', []);
-        end
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    m2t = drawLegendOptionsOfAxes(m2t, handle);
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % add manually given extra axis options
-    m2t.axesContainers{end}.options = opts_append_userdefined(...
-        m2t.axesContainers{end}.options, m2t.cmdOpts.Results.extraAxisOptions);
-end
-% ==============================================================================
-function legendhandle = getAssociatedLegend(m2t, handle)
-% Check if the axis is referenced by a legend (only necessary for Octave)
-    legendhandle = [];
-    switch m2t.env
-        case 'Octave'
-            if ~isempty(m2t.legendHandles)
-                % Make sure that m2t.legendHandles is a row vector.
-                for lhandle = m2t.legendHandles(:)'
-                    ud = get(lhandle, 'UserData');
-                    if any(handle == ud.handle)
-                        legendhandle = lhandle;
-                        break;
-                    end
-                end
-            end
-        case 'MATLAB'
-            % no action needed
-        otherwise
-            errorUnknownEnvironment();
-    end
-end
-% ==============================================================================
-function m2t = setDimensionOfAxes(m2t, widthOrHeight, dimension)
-% sets the dimension "name" of the current axes to the struct "dim"
-    m2t.axesContainers{end}.options = opts_add(...
-            m2t.axesContainers{end}.options, widthOrHeight, ...
-            formatDim(dimension.value, dimension.unit));
-end
-% ==============================================================================
-function m2t = drawBackgroundOfAxes(m2t, handle)
-% draw the background color of the current axes
-    backgroundColor = get(handle, 'Color');
-    if ~isNone(backgroundColor)
-        [m2t, col] = getColor(m2t, handle, backgroundColor, 'patch');
-        if ~strcmp(col, 'white')
-            m2t.axesContainers{end}.options = ...
-                opts_add(m2t.axesContainers{end}.options, ...
-                'axis background/.style', sprintf('{fill=%s}', col));
-        end
-    end
-end
-% ==============================================================================
-function m2t = drawTitleOfAxes(m2t, handle)
-% processes the title of an axes object
-    title = get(get(handle, 'Title'), 'String');
-    if ~isempty(title)
-        titleInterpreter = get(get(handle, 'Title'), 'Interpreter');
-        title = prettyPrint(m2t, title, titleInterpreter);
-        titleStyle = getFontStyle(m2t, get(handle,'Title'));
-        if length(title) > 1
-            titleStyle = opts_add(titleStyle, 'align', 'center');
-        end
-        if ~isempty(titleStyle)
-            m2t.axesContainers{end}.options = opts_add(...
-                m2t.axesContainers{end}.options, 'title style', ...
-                sprintf('{%s}', opts_print(m2t, titleStyle, ',')));
-        end
-        title = join(m2t, title, '\\[1ex]');
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, ...
-            'title', sprintf('{%s}', title));
-    end
-end
-% ==============================================================================
-function m2t = drawBoxAndLineLocationsOfAxes(m2t, handle)
-% draw the box and axis line location of an axes object
-    isboxOn = strcmp(get(handle, 'box'), 'on');
-    xloc = get(handle, 'XAxisLocation');
-    if isboxOn
-        if strcmp(xloc, 'bottom')
-            % default; nothing added
-        elseif strcmp(xloc, 'top')
-            m2t.axesContainers{end}.options = ...
-                opts_add(m2t.axesContainers{end}.options, ...
-                'axis x line*', 'top');
-        else
-            error('matlab2tikz:drawAxes', ...
-                'Illegal axis location ''%s''.', xloc);
-        end
-    else % box off
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, ...
-            'axis x line*', xloc);
-    end
-    yloc = get(handle, 'YAxisLocation');
-    if isboxOn
-        if strcmp(yloc, 'left')
-            % default; nothing added
-        elseif strcmp(yloc, 'right')
-            m2t.axesContainers{end}.options = ...
-                opts_add(m2t.axesContainers{end}.options, ...
-                'axis y line*', 'right');
-        else
-            error('matlab2tikz:drawAxes', ...
-                'Illegal axis location ''%s''.', yloc);
-        end
-    else % box off
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, ...
-            'axis y line*', yloc);
-    end
-    if m2t.currentAxesContain3dData
-        % There's no such attribute as 'ZAxisLocation'.
-        % Instead, the default seems to be 'left'.
-        if ~isboxOn
-            m2t.axesContainers{end}.options = ...
-                opts_add(m2t.axesContainers{end}.options, ...
-                'axis z line*', 'left');
-        end
-    end
-end
-% ==============================================================================
-function m2t = drawLegendOptionsOfAxes(m2t, handle)
-    % See if there are any legends that need to be plotted.
-    % Since the legends are at the same level as axes in the hierarchy,
-    % we can't work out which relates to which using the tree
-    % so we have to do it by looking for a plot inside which the legend sits.
-    % This could be done better with a heuristic of finding
-    % the nearest legend to a plot, which would cope with legends outside
-    % plot boundaries.
-    switch m2t.env
-        case 'MATLAB'
-            legendHandle = legend(handle);
-            if ~isempty(legendHandle)
-                [m2t, key, legendOpts] = getLegendOpts(m2t, legendHandle);
-                m2t.axesContainers{end}.options = ...
-                    opts_add(m2t.axesContainers{end}.options, ...
-                    key, ...
-                    ['{', legendOpts, '}']);
-            end
-        case 'Octave'
-            % TODO: How to uniquely connect a legend with a pair of axes in Octave?
-            axisDims = pos2dims(get(handle,'Position')); %#ok
-            % siblings of this handle:
-            siblings = get(get(handle,'Parent'), 'Children');
-            % "siblings" always(?) is a column vector. Iterating over the column
-            % with the for statement below wouldn't return the individual vector
-            % elements but the same column vector, resulting in no legends exported.
-            % So let's make sure "siblings" is a row vector by reshaping it:
-            siblings = reshape(siblings, 1, []);
-            for sibling = siblings
-                if sibling && strcmp(get(sibling,'Type'), 'axes') && strcmp(get(sibling,'Tag'), 'legend')
-                    legDims = pos2dims(get(sibling, 'Position')); %#ok
-
-                    % TODO The following logic does not work for 3D plots.
-                    %      => Commented out.
-                    %      This creates problems though for stacked plots with legends.
-                    %                if (   legDims.left   > axisDims.left ...
-                    %                     && legDims.bottom > axisDims.bottom ...
-                    %                     && legDims.left + legDims.width < axisDims.left + axisDims.width ...
-                    %                     && legDims.bottom + legDims.height  < axisDims.bottom + axisDims.height)
-                    [m2t, key, legendOpts] = getLegendOpts(m2t, sibling);
-                    m2t.axesContainers{end}.options = ...
-                        opts_add(m2t.axesContainers{end}.options, ...
-                        key, ...
-                        ['{', legendOpts, '}']);
-                    %                end
-                end
-            end
-        otherwise
-            errorUnknownEnvironment();
-    end
-end
-% ==============================================================================
-function m2t = handleColorbar(m2t, handle)
-    if isempty(handle)
-        return;
-    end
-
-    % Find the axes environment that this colorbar belongs to.
-    parentAxesHandle = double(get(handle,'axes'));
-    parentFound = false;
-    for k = 1:length(m2t.axesContainers)
-        if m2t.axesContainers{k}.handle == parentAxesHandle
-            k0 = k;
-            parentFound = true;
-            break;
-        end
-    end
-    if parentFound
-        m2t.axesContainers{k0}.options = ...
-            opts_append(m2t.axesContainers{k0}.options, ...
-            matlab2pgfplotsColormap(m2t, m2t.currentHandles.colormap), []);
-        % Append cell string.
-        m2t.axesContainers{k0}.options = cat(1,...
-            m2t.axesContainers{k0}.options, ...
-            getColorbarOptions(m2t, handle));
-    else
-        warning('matlab2tikz:parentAxesOfColorBarNotFound',...
-            'Could not find parent axes for color bar. Skipping.');
-    end
-end
-% ==============================================================================
-function tag = getTag(handle)
-    % if a tag is given, use it as comment
-    tag = get(handle, 'tag');
-    if ~isempty(tag)
-        tag = sprintf('Axis "%s"', tag);
-    else
-        tag = sprintf('Axis at [%.2g %.2f %.2g %.2g]', get(handle, 'position'));
-    end
-end
-% ==============================================================================
-function [m2t, options] = getAxisOptions(m2t, handle, axis)
-    if ~ismember(axis, {'x','y','z'})
-        error('matlab2tikz:illegalAxisSpecifier',...
-            'Illegal axis specifier ''%s''.', axis);
-    end
-    options = opts_new();
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % axis colors
-    [color, isDfltColor] = getAndCheckDefault('Axes', handle, ...
-                                              [upper(axis),'Color'], [ 0 0 0 ]);
-    if ~isDfltColor || m2t.cmdOpts.Results.strict
-        [m2t, col] = getColor(m2t, handle, color, 'patch');
-        if strcmp(get(handle, 'box'), 'on')
-            % If the axes are arranged as a box, make sure that the individual
-            % axes are drawn as four separate paths. This makes the alignment
-            % at the box corners somewhat less nice, but allows for different
-            % axis styles (e.g., colors).
-            options = opts_add(options, 'separate axis lines', []);
-        end
-        options = ...
-            opts_add(options, ...
-            ['every outer ', axis, ' axis line/.append style'], ...
-            ['{', col, '}']);
-        options = ...
-            opts_add(options, ...
-            ['every ',axis,' tick label/.append style'], ...
-            ['{font=\color{',col,'}}']);
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % handle the orientation
-    isAxisReversed = strcmp(get(handle,[upper(axis),'Dir']), 'reverse');
-    m2t.([axis 'AxisReversed']) = isAxisReversed;
-    if isAxisReversed
-        options = opts_add(options, [axis, ' dir'], 'reverse');
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    axisScale = getOrDefault(handle, [upper(axis) 'Scale'], 'lin');
-    if strcmp(axisScale, 'log');
-        options = opts_add(options, [axis,'mode'], 'log');
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % get axis limits
-    limits = get(handle, [upper(axis),'Lim']);
-    if isfinite(limits(1))
-        options = opts_add(options, [axis,'min'], sprintf(m2t.ff, limits(1)));
-    end
-    if isfinite(limits(2))
-        options = opts_add(options, [axis,'max'], sprintf(m2t.ff, limits(2)));
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % get ticks along with the labels
-    [ticks, tickLabels, hasMinorTicks, tickDir] = getAxisTicks(m2t, handle, axis);
-
-    % According to http://www.mathworks.com/help/techdoc/ref/axes_props.html,
-    % the number of minor ticks is automatically determined by MATLAB(R) to
-    % fit the size of the axis. Until we know how to extract this number, use
-    % a reasonable default.
-    matlabDefaultNumMinorTicks = 3;
-    if ~isempty(ticks)
-        options = opts_add(options, ...
-            [axis,'tick'], sprintf('{%s}', ticks));
-    end
-    if ~isempty(tickLabels)
-        options = opts_add(options, ...
-            [axis,'ticklabels'], sprintf('{%s}', tickLabels));
-    end
-    if hasMinorTicks
-        options = opts_add(options, ...
-            [axis,'minorticks'], 'true');
-        if m2t.cmdOpts.Results.strict
-            options = ...
-                opts_add(options, ...
-                sprintf('minor %s tick num', axis), ...
-                sprintf('{%d}', matlabDefaultNumMinorTicks));
-        end
-    end
-    if strcmpi(tickDir,'out')
-        options = opts_add(options, ...
-            'tick align','outside');
-    elseif strcmpi(tickDir,'both')
-        options = opts_add(options, ...
-        'tick align','center');
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % get axis label
-    axisLabel = get(get(handle, [upper(axis),'Label']), 'String');
-    if ~isempty(axisLabel)
-        axisLabelInterpreter = ...
-            get(get(handle, [upper(axis),'Label']), 'Interpreter');
-        label = prettyPrint(m2t, axisLabel, axisLabelInterpreter);
-        if length(label) > 1
-            % If there's more than one cell item, the list
-            % is displayed multi-row in MATLAB(R).
-            % To replicate the same in Pgfplots, one can
-            % use xlabel={first\\second\\third} only if the
-            % alignment or the width of the "label box"
-            % is defined. This is a restriction that comes with
-            % TikZ nodes.
-            options = opts_add(options, ...
-                [axis, 'label style'], '{align=center}');
-        end
-        label = join(m2t, label,'\\[1ex]');
-        %if isVisible(handle)
-        options = opts_add(options, ...
-            [axis, 'label'], sprintf('{%s}', label));
-        %else
-        %    m2t.axesContainers{end}.options{end+1} = ...
-        %        sprintf(['extra description/.code={\n', ...
-        %                 '\\node[/pgfplots/every axis label,/pgfplots/every axis %s label]{%s};\n', ...
-        %                 '}'], axis, label);
-        %end
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % get grids
-    if strcmp(getOrDefault(handle, [upper(axis),'Grid'], 'off'), 'on');
-        options = opts_add(options, [axis, 'majorgrids'], []);
-    end
-    if strcmp(getOrDefault(handle, [upper(axis),'MinorGrid'], 'off'), 'on');
-        options = opts_add(options, [axis, 'minorgrids'], []);
-    end
-end
-% ==============================================================================
-function bool = axisIsVisible(axisHandle)
-    if ~isVisible(axisHandle)
-        % An invisible axes container *can* have visible children, so don't
-        % immediately bail out here.
-        children = get(axisHandle, 'Children');
-        bool = false;
-        for child = children(:)'
-            if isVisible(child)
-                bool = true;
-                return;
-            end
-        end
-    else
-        bool = true;
-    end
-end
-% ==============================================================================
-function [m2t, str] = drawLine(m2t, handle, yDeviation)
-% Returns the code for drawing a regular line and error bars.
-% This is an extremely common operation and takes place in most of the
-% not too fancy plots.
-    str = '';
-
-    if ~isVisible(handle)
-        return
-    end
-
-    lineStyle = get(handle, 'LineStyle');
-    lineWidth = get(handle, 'LineWidth');
-    marker = get(handle, 'Marker');
-
-    % Get draw options.
-    color = get(handle, 'Color');
-    [m2t, xcolor] = getColor(m2t, handle, color, 'patch');
-    lineOptions = getLineOptions(m2t, lineStyle, lineWidth);
-    [m2t, markerOptions] = getMarkerOptions(m2t, handle);
-    drawOptions = [{sprintf('color=%s', xcolor)}, ... % color
-        lineOptions, ...
-        markerOptions];
-
-    % Check for "special" lines, e.g.:
-    if strcmp(get(handle, 'Tag'), 'zplane_unitcircle')
-        % Draw unit circle and axes.
-        % TODO Don't hardcode "10".
-        opts = join(m2t, drawOptions, ',');
-        str = [sprintf('\\draw[%s] (axis cs:0,0) circle[radius=1];\n', opts),...
-            sprintf('\\draw[%s] (axis cs:-10,0)--(axis cs:10,0);\n', opts), ...
-            sprintf('\\draw[%s] (axis cs:0,-10)--(axis cs:0,10);\n', opts)];
-        return
-    end
-
-    hasLines = ~isNone(lineStyle) && lineWidth>0.0;
-    hasMarkers = ~isNone(marker);
-    if ~hasLines && ~hasMarkers
-        return
-    end
-
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % Plot the actual line data.
-    % First put them all together in one multiarray.
-    % This also implicitly makes sure that the lengths match.
-    xData = get(handle, 'XData');
-    yData = get(handle, 'YData');
-    zData = getOrDefault(handle, 'ZData', []);
-    % We would like to do
-    %   data = [xData(:), yData(:), zData(:)],
-    % but Octave fails. Hence this isempty() construction.
-    if isempty(zData)
-        data = [xData(:), yData(:)];
-    else
-        data = applyHgTransform(m2t, [xData(:), yData(:), zData(:)]);
-    end
-
-    % check if the *optional* argument 'yDeviation' was given
-    hasDeviations = false;
-    if nargin > 2
-        data = [data, yDeviation(:,1:2)];
-        hasDeviations = true;
-    end
-
-    % Check if any value is infinite/NaN. In that case, add appropriate option.
-    if any(~isfinite(data(:)))
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, 'unbounded coords', 'jump');
-    end
-
-    if ~isempty(zData)
-        % Don't try to be smart in parametric 3d plots: Just plot all the data.
-        [m2t, table] = makeTable(m2t, {'','',''}, data);
-        str = sprintf('%s\\addplot3 [%s]\n table[row sep=crcr] {%s};\n ', ...
-            str, join(m2t, drawOptions, ','), table);
-
-        m2t.currentAxesContain3dData = true;
-    else
-        % split the data into logical chunks
-        dataCell = splitLine(m2t, hasLines, data);
-
-        % plot them
-        for k = 1:length(dataCell)
-            % If the line has a legend string, make sure to only include a legend
-            % entry for the *last* occurrence of the plot series.
-            % Hence the condition k<length(xDataCell).
-            %if ~isempty(m2t.legendHandles) && (~m2t.currentHandleHasLegend || k < length(dataCell))
-            if ~m2t.currentHandleHasLegend || k < length(dataCell)
-                % No legend entry found. Don't include plot in legend.
-                opts = join(m2t, [drawOptions, {'forget plot'}], ',');
-            else
-                opts = join(m2t, drawOptions, ',');
-            end
-
-            [m2t, Part] = plotLine2d(m2t, opts, dataCell{k});
-            str = [str, Part];
-        end
-    end
-
-    if m2t.cmdOpts.Results.automaticLabels
-        [m2t, label] = addLabel(m2t);
-        str = [str, label];
-    end
-end
-% ==============================================================================
-function [m2t, str] = addLabel(m2t)
-    [pathstr, name] = fileparts(m2t.cmdOpts.Results.filename); %#ok
-    label = sprintf('addplot:%s%d', name, m2t.automaticLabelIndex);
-    str = sprintf('\\label{%s}\n', label);
-    m2t.automaticLabelIndex = m2t.automaticLabelIndex + 1;
-
-    userWarning(m2t, 'Automatically added label ''%s'' for line plot.', label);
-end
-% ==============================================================================
-function [m2t,str] = plotLine2d(m2t, opts, data)
-    errorbarMode = (size(data,2) == 4); % is (optional) yDeviation given?
-
-    str = '';
-    if errorbarMode
-        m2t = needsPgfplotsVersion(m2t, [1,9]);
-        str = sprintf('plot [error bars/.cd, y dir = both, y explicit]\n');
-    end
-
-    % Convert to string array then cell to call sprintf once (and no loops).
-    if errorbarMode
-        tabOpts = 'row sep=crcr, y error plus index=2, y error minus index=3';
-    else
-        tabOpts = 'row sep=crcr';
-    end
-    [m2t, table] = makeTable(m2t, repmat({''}, size(data,2)), data);
-    str = sprintf('\\addplot [%s]\n %s table[%s]{%s};\n',...
-        opts, str, tabOpts, table);
-end
-% ==============================================================================
-function dataCell = splitLine(m2t, hasLines, data)
-% Split the xData, yData into several chunks of data for each of which
-% an \addplot will be generated.
-    dataCell{1} = data;
-
-    % Split each of the current chunks further with respect to outliers.
-    dataCell = splitByArraySize(m2t, hasLines, dataCell);
-end
-% ==============================================================================
-function dataCellNew = splitByArraySize(m2t, hasLines, dataCell)
-% TeX parses files line by line with a buffer of size buf_size. If the
-% plot has too many data points, pdfTeX's buffer size may be exceeded.
-% As a work-around, the plot is split into several smaller plots, and this
-% function does the job.
-    dataCellNew = cell(0);
-
-    for data = dataCell
-        chunkStart = 1;
-        len = size(data{1}, 1);
-        while chunkStart <= len
-            chunkEnd = min(chunkStart + m2t.cmdOpts.Results.maxChunkLength - 1, len);
-
-            % Copy over the data to the new containers.
-            dataCellNew{end+1} = data{1}(chunkStart:chunkEnd,:);
-
-            % If the plot has lines, add an extra (overlap) point to the data
-            % stream; otherwise the line between two data chunks would be broken.
-            if hasLines && chunkEnd~=len
-                dataCellNew{end} = [dataCellNew{end};...
-                    data{1}(chunkEnd+1,:)];
-            end
-
-            chunkStart = chunkEnd + 1;
-        end
-    end
-end
-% ==============================================================================
-function lineOpts = getLineOptions(m2t, lineStyle, lineWidth)
-% Gathers the line options.
-    lineOpts = cell(0);
-
-    if ~isNone(lineStyle) && (lineWidth > m2t.tol)
-        lineOpts{end+1} = sprintf('%s', translateLineStyle(lineStyle));
-    end
-
-    % Take over the line width in any case when in strict mode. If not, don't add
-    % anything in case of default line width and effectively take Pgfplots'
-    % default.
-    % Also apply the line width if no actual line is there; the markers make use
-    % of this, too.
-    matlabDefaultLineWidth = 0.5;
-    if m2t.cmdOpts.Results.strict ...
-            || ~abs(lineWidth-matlabDefaultLineWidth) <= m2t.tol
-        lineOpts{end+1} = sprintf('line width=%.1fpt', lineWidth);
-    end
-end
-% ==============================================================================
-function [m2t, drawOptions] = getMarkerOptions(m2t, h)
-% Handles the marker properties of a line (or any other) plot.
-    drawOptions = cell(0);
-
-    marker = get(h, 'Marker');
-
-    if ~isNone(marker)
-        markerSize = get(h, 'MarkerSize');
-        lineStyle  = get(h, 'LineStyle');
-        lineWidth  = get(h, 'LineWidth');
-
-        [tikzMarkerSize, isDefault] = ...
-            translateMarkerSize(m2t, marker, markerSize);
-
-        % take over the marker size in any case when in strict mode;
-        % if not, don't add anything in case of default marker size
-        % and effectively take Pgfplots' default.
-        if m2t.cmdOpts.Results.strict || ~isDefault
-            drawOptions{end+1} = sprintf('mark size=%.1fpt', tikzMarkerSize);
-        end
-
-        markOptions = cell(0);
-        % make sure that the markers get painted in solid (and not dashed)
-        % if the 'lineStyle' is not solid (otherwise there is no problem)
-        if ~strcmp(lineStyle, 'solid')
-            markOptions{end+1} = 'solid';
-        end
-
-        % print no lines
-        if isNone(lineStyle) || lineWidth==0
-            drawOptions{end+1} = 'only marks';
-        end
-
-        % get the marker color right
-        markerFaceColor = get(h, 'markerfaceColor');
-        markerEdgeColor = get(h, 'markeredgeColor');
-        [tikzMarker, markOptions] = translateMarker(m2t, marker,         ...
-            markOptions, ~isNone(markerFaceColor));
-        if ~isNone(markerFaceColor)
-            [m2t, xcolor] = getColor(m2t, h, markerFaceColor, 'patch');
-            if ~isempty(xcolor)
-                markOptions{end+1} = sprintf('fill=%s', xcolor);
-            end
-        end
-        if ~isNone(markerEdgeColor) && ~strcmp(markerEdgeColor,'auto')
-            [m2t, xcolor] = getColor(m2t, h, markerEdgeColor, 'patch');
-            if ~isempty(xcolor)
-                markOptions{end+1} = sprintf('draw=%s', xcolor);
-            end
-        end
-
-        % add it all to drawOptions
-        drawOptions{end+1} = sprintf('mark=%s', tikzMarker);
-
-        if ~isempty(markOptions)
-            mo = join(m2t, markOptions, ',');
-            drawOptions{end+1} = ['mark options={', mo, '}'];
-        end
-    end
-end
-% ==============================================================================
-function [tikzMarkerSize, isDefault] = ...
-    translateMarkerSize(m2t, matlabMarker, matlabMarkerSize)
-% The markersizes of Matlab and TikZ are related, but not equal. This
-% is because
-%
-%  1.) MATLAB uses the MarkerSize property to describe something like
-%      the diameter of the mark, while TikZ refers to the 'radius',
-%  2.) MATLAB and TikZ take different measures (e.g. the
-%      edge of a square vs. its diagonal).
-    if(~ischar(matlabMarker))
-        error('matlab2tikz:translateMarkerSize',                      ...
-            'Variable matlabMarker is not a string.');
-    end
-
-    if(~isnumeric(matlabMarkerSize))
-        error('matlab2tikz:translateMarkerSize',                      ...
-            'Variable matlabMarkerSize is not a numeral.');
-    end
-
-    % 6pt is the default MATLAB marker size for all markers
-    defaultMatlabMarkerSize = 6;
-    isDefault = abs(matlabMarkerSize(1)-defaultMatlabMarkerSize)<m2t.tol;
-    % matlabMarkerSize can be vector data, use first index to check the default
-    % marker size. When the script also handles different markers together with
-    % changing size and color, the test should be extended to a vector norm, e.g.
-    % sqrt(e^T*e) < tol, where e=matlabMarkerSize-defaultMatlabMarkerSize
-
-    switch (matlabMarker)
-        case 'none'
-            tikzMarkerSize = [];
-        case {'+','o','x','*','p','pentagram','h','hexagram'}
-            % In MATLAB, the marker size refers to the edge length of a
-            % square (for example) (~diameter), whereas in TikZ the
-            % distance of an edge to the center is the measure (~radius).
-            % Hence divide by 2.
-            tikzMarkerSize = matlabMarkerSize(:) / 2;
-        case '.'
-            % as documented on the Matlab help pages:
-            %
-            % Note that MATLAB draws the point marker (specified by the '.'
-            % symbol) at one-third the specified size.
-            % The point (.) marker type does not change size when the
-            % specified value is less than 5.
-            %
-            tikzMarkerSize = matlabMarkerSize(:) / 2 / 3;
-        case {'s','square'}
-            % Matlab measures the diameter, TikZ half the edge length
-            tikzMarkerSize = matlabMarkerSize(:) / 2 / sqrt(2);
-        case {'d','diamond'}
-            % MATLAB measures the width, TikZ the height of the diamond;
-            % the acute angle (at the top and the bottom of the diamond)
-            % is a manually measured 75 degrees (in TikZ, and MATLAB
-            % probably very similar); use this as a base for calculations
-            tikzMarkerSize = matlabMarkerSize(:) / 2 / atan(75/2 *pi/180);
-        case {'^','v','<','>'}
-            % for triangles, matlab takes the height
-            % and tikz the circumcircle radius;
-            % the triangles are always equiangular
-            tikzMarkerSize = matlabMarkerSize(:) / 2 * (2/3);
-        otherwise
-            error('matlab2tikz:translateMarkerSize',                   ...
-                'Unknown matlabMarker ''%s''.', matlabMarker);
-    end
-end
-% ==============================================================================
-function [tikzMarker, markOptions] = ...
-    translateMarker(m2t, matlabMarker, markOptions, faceColorToggle)
-% Translates MATLAB markers to their Tikz equivalents
-% #COMPLEX: inherently large switch-case
-    if ~ischar(matlabMarker)
-        error('matlab2tikz:translateMarker:MarkerNotAString',...
-            'matlabMarker is not a string.');
-    end
-
-    switch (matlabMarker)
-        case 'none'
-            tikzMarker = '';
-        case '+'
-            tikzMarker = '+';
-        case 'o'
-            if faceColorToggle
-                tikzMarker = '*';
-            else
-                tikzMarker = 'o';
-            end
-        case '.'
-            tikzMarker = '*';
-        case 'x'
-            tikzMarker = 'x';
-        otherwise  % the following markers are only available with PGF's
-            % plotmarks library
-            userInfo(m2t, '\nMake sure to load \\usetikzlibrary{plotmarks} in the preamble.\n');
-            hasFilledVariant = true;
-            switch (matlabMarker)
-
-                case '*'
-                    tikzMarker = 'asterisk';
-                    hasFilledVariant = false;
-
-                case {'s','square'}
-                    tikzMarker = 'square';
-
-                case {'d','diamond'}
-                    tikzMarker = 'diamond';
-
-                case '^'
-                    tikzMarker = 'triangle';
-
-                case 'v'
-                    tikzMarker = 'triangle';
-                    markOptions{end+1} = 'rotate=180';
-
-                case '<'
-                    tikzMarker = 'triangle';
-                    markOptions{end+1} = 'rotate=90';
-
-                case '>'
-                    tikzMarker = 'triangle';
-                    markOptions{end+1} = 'rotate=270';
-
-                case {'p','pentagram'}
-                    tikzMarker = 'star';
-
-                case {'h','hexagram'}
-                    userWarning(m2t, 'MATLAB''s marker ''hexagram'' not available in TikZ. Replacing by ''star''.');
-                    tikzMarker = 'star';
-
-                otherwise
-                    error('matlab2tikz:translateMarker:unknownMatlabMarker',...
-                        'Unknown matlabMarker ''%s''.',matlabMarker);
-            end
-            if faceColorToggle && hasFilledVariant
-                tikzMarker = [tikzMarker '*'];
-            end
-    end
-end
-% ==============================================================================
-function [m2t, str] = drawPatch(m2t, handle)
-% Draws a 'patch' graphics object (as found in contourf plots, for example).
-%
-    str = '';
-
-    if ~isVisible(handle)
-        return
-    end
-
-    % MATLAB's patch elements are matrices in which each column represents a a
-    % distinct graphical object. Usually there is only one column, but there may
-    % be more (-->hist plots, although they are now handled within the barplot
-    % framework).
-    XData = get(handle, 'XData');
-    YData = get(handle, 'YData');
-    ZData = get(handle, 'ZData');
-
-    % see if individual color values are present
-    CData = get(handle, 'CData');
-
-    % If the data points are given in three vectors, we are dealing with one
-    % single patch. If they are all matrices, then the columns of matrix
-    % represent one patch each.
-    if min(size(XData)) == 1
-        % Make sure vectors are column vectors.
-        XData = XData(:);
-        YData = YData(:);
-        ZData = ZData(:);
-        CData = CData(:);
-    end
-
-    numPatches = size(XData, 2);
-
-    % Ensure that if we have multiple patches and only FaceColor is specified,
-    % that it doesn't error when creating each patch with cData = CData(:, k);;
-    if isempty(CData)
-        CData = zeros(1,numPatches);
-    end
-    if length(CData) == 1
-        CData = CData(1,1) * ones(1,numPatches);
-    end
-
-    for k = 1:numPatches
-        xData = XData(:, k);
-        yData = YData(:, k);
-
-        if isempty(ZData)
-            columnNames = {'x', 'y'};
-            data = [xData(:), yData(:)];
-            plotType = 'addplot';
-        else
-            zData = ZData(:, k);
-            columnNames = {'x', 'y', 'z'};
-            data = applyHgTransform(m2t, [xData(:), yData(:), zData(:)]);
-            plotType = 'addplot3';
-            m2t.currentAxesContain3dData = true;
-        end
-
-        cData = CData(:, k);
-        % -----------------------------------------------------------------------
-        % gather the draw options
-        % Make sure that legends are shown in area mode.
-        drawOptions = {'area legend'};
-
-        % Use the '\\' as a row separator to make sure that the generated figures
-        % work in subplot environments.
-        tableOptions = {'row sep=crcr'};
-
-        [m2t, markerOptions] = getMarkerOptions(m2t, handle);
-        drawOptions = [drawOptions, markerOptions];
-
-        % Add the proper color map even if the map data isn't directly used in
-        % the plot to make sure that we get correct color bars.
-        if ~all(cData == cData(1)) && length(cData) == length(xData)
-            % Add the color map.
-            m2t.axesContainers{end}.options = ...
-                opts_append(m2t.axesContainers{end}.options, ...
-                matlab2pgfplotsColormap(m2t, m2t.currentHandles.colormap), []);
-        end
-        % If full color data is provided, we can use point meta color data.
-        % For some reason, this only works for filled contours in Pgfplots, so
-        % fall back to explicit color specifications for line plots.
-        if ~all(cData == cData(1)) && length(cData) == length(xData) ...
-                && ~isNone(get(handle, 'FaceColor'))
-            data = [data, cData(:)];
-            drawOptions{end+1} = 'patch';
-            columnNames{end+1} = 'c';
-            tableOptions{end+1} = 'point meta=\thisrow{c}';
-        else
-            % Probably one color only, so things we're probably only dealing with
-            % one patch here.
-            % line width
-            lineStyle = get(handle, 'LineStyle');
-            lineWidth = get(handle, 'LineWidth');
-            lineOptions = getLineOptions(m2t, lineStyle, lineWidth);
-            drawOptions = [drawOptions, lineOptions];
-
-            % Find out color values.
-            % fill color
-            faceColor = get(handle, 'FaceColor');
-
-            % If it still has 'interp', then the CData for the patch is
-            % just an index into the colormap. Convert to RGB
-            if strcmpi(faceColor,'interp')
-                    [m2t, index] = cdata2colorindex(m2t, cData(1),handle);
-                    faceColor    = m2t.currentHandles.colormap(index,:);
-            end
-
-            if ~isNone(faceColor)
-                [m2t, xFaceColor] = getColor(m2t, handle, faceColor, 'patch');
-                drawOptions{end+1} = sprintf('fill=%s', xFaceColor);
-                xFaceAlpha = get(handle, 'FaceAlpha');
-                if abs(xFaceAlpha - 1.0) > m2t.tol
-                    drawOptions{end+1} = sprintf('opacity=%s', xFaceAlpha);
-                end
-            end
-
-            % draw color
-            edgeColor = get(handle, 'EdgeColor');
-            lineStyle = get(handle, 'LineStyle');
-            if isNone(lineStyle) || isNone(edgeColor)
-                drawOptions{end+1} = 'draw=none';
-            else
-                [m2t, xEdgeColor] = getColor(m2t, handle, edgeColor, 'patch');
-                if isempty(xEdgeColor)
-                    % getColor() wasn't able to return a color. This is because
-                    % cdata was an actual vector with different values in it,
-                    % meaning that the color changes along the edge. This is the
-                    % case, for example, with waterfall() plots.
-                    % An actual color maps is needed here.
-                    %
-                    drawOptions{end+1} = 'mesh'; % or surf
-                    m2t.axesContainers{end}.options = ...
-                        opts_append(m2t.axesContainers{end}.options, ...
-                        matlab2pgfplotsColormap(m2t, m2t.currentHandles.colormap), []);
-                    % Append upper and lower limit of the color mapping.
-                    clim = caxis;
-                    m2t.axesContainers{end}.options = ...
-                        opts_add(m2t.axesContainers{end}.options, ...
-                        'point meta min', sprintf(m2t.ff, clim(1)));
-                    m2t.axesContainers{end}.options = ...
-                        opts_add(m2t.axesContainers{end}.options, ...
-                        'point meta max', sprintf(m2t.ff, clim(2)));
-                    % Note:
-                    % Pgfplots can't currently use FaceColor and colormapped edge
-                    % color in one go. The option 'surf' makes sure that
-                    % colormapped edge colors are used. Face colors are not
-                    % displayed.
-                else
-                    % getColor() returned a reasonable color value.
-                    drawOptions{end+1} = sprintf('draw=%s', xEdgeColor);
-                end
-            end
-        end
-
-        if ~m2t.currentHandleHasLegend
-            % No legend entry found. Don't include plot in legend.
-            drawOptions{end+1} = 'forget plot';
-        end
-
-        drawOpts = join(m2t, drawOptions, ',');
-        % -----------------------------------------------------------------------
-        if any(~isfinite(data(:)))
-            m2t.axesContainers{end}.options = ...
-                opts_add(m2t.axesContainers{end}.options, ...
-                'unbounded coords', 'jump');
-        end
-        % Plot the actual data.
-        [m2t, table] = makeTable(m2t, columnNames, data);
-
-        cycle = conditionallyCyclePath(data);
-        str = sprintf('%s\n\\%s[%s]\ntable[%s] {%s}%s;\n\n',...
-            str, plotType, drawOpts, join(m2t, tableOptions, ', '), table, cycle);
-end
-end
-% ==============================================================================
-function [cycle] = conditionallyCyclePath(data)
-% returns "--cycle" when the path should be cyclic in pgfplots
-% Mostly, this is the case UNLESS the data record starts or ends with a NaN
-% record (i.e. a break in the path)
-    if any(~isfinite(data([1 end],:)))
-        cycle = '';
-    else
-        cycle = '--cycle';
-    end
-end
-% ==============================================================================
-function [m2t, str] = drawImage(m2t, handle)
-    str = '';
-
-    if ~isVisible(handle)
-        return
-    end
-
-    % read x-, y-, and color-data
-    xData = get(handle, 'XData');
-    yData = get(handle, 'YData');
-    cData = get(handle, 'CData');
-
-    % Flip the image over as the PNG gets written starting at (0,0),
-    % which is the top left corner.
-    cData = cData(end:-1:1,:,:);
-
-    if (m2t.cmdOpts.Results.imagesAsPng)
-        [m2t, str] = imageAsPNG(m2t, handle, xData, yData, cData);
-    else
-        [m2t, str] = imageAsTikZ(m2t, handle, xData, yData, cData);
-    end
-
-    % Make sure that the axes are still visible above the image.
-    m2t.axesContainers{end}.options = ...
-        opts_add(m2t.axesContainers{end}.options, ...
-        'axis on top', []);
-end
-% ==============================================================================
-function [m2t, str] = imageAsPNG(m2t, handle, xData, yData, cData)
-    m2t.imageAsPngNo = m2t.imageAsPngNo + 1;
-    % ------------------------------------------------------------------------
-    % draw a png image
-    [pngFileName, pngReferencePath] = externalFilename(m2t, m2t.imageAsPngNo, '.png');
-
-    % Get color indices for indexed images and truecolor values otherwise
-    if ndims(cData) == 2 %#ok don't use ismatrix (cfr. #143)
-        [m2t, colorData] = cdata2colorindex(m2t, cData, handle);
-    else
-        colorData = cData;
-    end
-
-    m = size(cData, 1);
-    n = size(cData, 2);
-
-    colorData = flipImageIfAxesReversed(m2t, colorData);
-
-    % Write an indexed or a truecolor image
-    alpha = normalizedAlphaValues(m2t, get(handle,'AlphaData'), handle);
-    if numel(alpha)==1
-        alpha = alpha(ones(size(colorData(:,:,1))));
-    end
-    hasAlpha = ~all(alpha(:)==1);
-    if hasAlpha
-        alphaOpts = {'Alpha', alpha};
-    else
-        alphaOpts = {};
-    end
-    if (ndims(colorData) == 2) %#ok don't use ismatrix (cfr. #143)
-        if size(m2t.currentHandles.colormap, 1) <= 256 && ~hasAlpha
-            % imwrite supports maximum 256 values in a colormap (i.e. 8 bit)
-            % and no alpha channel for indexed PNG images.
-            imwrite(colorData, m2t.currentHandles.colormap, ...
-                pngFileName, 'png');
-        else % use true-color instead
-            imwrite(ind2rgb(colorData, m2t.currentHandles.colormap), ...
-                pngFileName, 'png', alphaOpts{:});
-        end
-    else
-        imwrite(colorData, pngFileName, 'png', alphaOpts{:});
-    end
-    % -----------------------------------------------------------------------
-    % dimensions of a pixel in axes units
-    if n == 1
-        xLim = get(m2t.currentHandles.gca, 'XLim');
-        xw = xLim(2) - xLim(1);
-    else
-        xw = (xData(end)-xData(1)) / (n-1);
-    end
-    if m == 1
-        yLim = get(m2t.currentHandles.gca, 'YLim');
-        yw = yLim(2) - yLim(1);
-    else
-        yw = (yData(end)-yData(1)) / (m-1);
-    end
-
-    opts = opts_new();
-    opts = opts_add(opts, 'xmin', sprintf(m2t.ff, xData(1  ) - xw/2));
-    opts = opts_add(opts, 'xmax', sprintf(m2t.ff, xData(end) + xw/2));
-    opts = opts_add(opts, 'ymin', sprintf(m2t.ff, yData(1  ) - yw/2));
-    opts = opts_add(opts, 'ymax', sprintf(m2t.ff, yData(end) + yw/2));
-
-    str = sprintf('\\addplot [forget plot] graphics [%s] {%s};\n', ...
-        opts_print(m2t, opts, ','), pngReferencePath);
-
-    userInfo(m2t, ...
-        ['\nA PNG file is stored at ''%s'' for which\n', ...
-        'the TikZ file contains a reference to ''%s''.\n', ...
-        'You may need to adapt this, depending on the relative\n', ...
-        'locations of the master TeX file and the included TikZ file.\n'], ...
-        pngFileName, pngReferencePath);
-end
-function [m2t, str] = imageAsTikZ(m2t, handle, xData, yData, cData)
-% writes an image as raw TikZ commands (STRONGLY DISCOURAGED)
-    str = '';
-
-    % Generate uniformly distributed X, Y, although xData and yData may be
-    % non-uniform.
-    % This is MATLAB(R) behavior.
-    switch length(xData)
-        case 2 % only the limits given; common for generic image plots
-            hX = 1;
-        case size(cData,1) % specific x-data is given
-            hX = (xData(end)-xData(1)) / (length(xData)-1);
-        otherwise
-            error('drawImage:arrayLengthMismatch', ...
-                'Array lengths not matching (%d = size(cdata,1) ~= length(xData) = %d).', m, length(xData));
-    end
-    X = xData(1):hX:xData(end);
-
-    switch length(yData)
-        case 2 % only the limits given; common for generic image plots
-            hY = 1;
-        case size(cData,2) % specific y-data is given
-            hY = (yData(end)-yData(1)) / (length(yData)-1);
-        otherwise
-            error('drawImage:arrayLengthMismatch', ...
-                'Array lengths not matching (%d = size(cdata,2) ~= length(yData) = %d).', n, length(yData));
-    end
-    Y = yData(1):hY:yData(end);
-
-    m = length(X);
-    n = length(Y);
-    [m2t, xcolor] = getColor(m2t, handle, cData, 'image');
-
-    % The following section takes pretty long to execute, although in
-    % principle it is discouraged to use TikZ for those; LaTeX will take
-    % forever to compile.
-    % Still, a bug has been filed on MathWorks to allow for one-line
-    % sprintf'ing with (string+num) cells (Request ID: 1-9WHK4W);
-    % <http://www.mathworks.de/support/service_requests/Service_Request_Detail.do?ID=183481&filter=&sort=&statusorder=0&dateorder=0>.
-    % An alternative approach could be to use 'surf' or 'patch' of pgfplots
-    % with inline tables.
-
-    for i = 1:m
-        for j = 1:n
-            str = [str, ...
-                sprintf(['\t\\fill [%s] (axis cs:', m2t.ff,',', m2t.ff,') rectangle (axis cs:',m2t.ff,',',m2t.ff,');\n'], ...
-                xcolor{m-i+1,j}, Y(j)-hY/2,  X(i)-hX/2, Y(j)+hY/2, X(i)+hX/2 )];
-        end
-    end
-end
-% ==============================================================================
-function [colorData] = flipImageIfAxesReversed(m2t, colorData)
-% flip the image if reversed
-    if m2t.xAxisReversed
-        colorData = colorData(:, end:-1:1, :);
-    end
-    if m2t.yAxisReversed
-        colorData = colorData(end:-1:1, :, :);
-    end
-end
-% ==============================================================================
-function alpha = normalizedAlphaValues(m2t, alpha, handle)
-    alphaDataMapping = getOrDefault(handle, 'AlphaDataMapping', 'none');
-    switch lower(alphaDataMapping)
-        case 'none'  % no rescaling needed
-        case 'scaled'
-            ALim = get(m2t.currentHandles.gca, 'ALim');
-            AMax = ALim(2);
-            AMin = ALim(1);
-            if ~isfinite(AMax)
-                AMax = max(alpha(:)); %NOTE: is this right?
-            end
-            alpha = (alpha - AMin)./(AMax - AMin);
-        case 'direct'
-            alpha = ind2rgb(alpha, get(m2t.currentHandles.gcf, 'Alphamap'));
-        otherwise
-            error('matlab2tikz:UnknownAlphaMapping', ...
-                  'Unknown alpha mapping "%s"', alphaMapping);
-    end
-    alpha = min(1,max(alpha,0)); % clip at range [0, 1]
-end
-% ==============================================================================
-function [m2t, str] = drawContour(m2t, h)
-% draw a contour group (MATLAB R2014b and newer only)
-plotoptions = opts_new();
-plotoptions = opts_add(plotoptions,'contour prepared');
-plotoptions = opts_add(plotoptions,'contour prepared format','matlab');
-if strcmpi(get(h,'ShowText'),'off')
-    plotoptions = opts_add(plotoptions,'contour/labels','false');
-end
-if strcmpi(get(h,'Fill'),'on')
-    userWarning(m2t, 'Filled contour replaced by unfilled contour plot.');
-    %FIXME: implement colored contour plots
-end
-%TODO: explicit color handling for contour plots
-
-contours = get(h,'ContourMatrix');
-
-[m2t, table] = makeTable(m2t, {'',''}, contours.');
-
-str = sprintf('\\addplot[%s] table[row sep=crcr] {%%\n%s};\n', ...
-              opts_print(m2t, plotoptions, ', '), table);
-
-end
-% ==============================================================================
-function [m2t, str] = drawHggroup(m2t, h)
-% Octave doesn't have the handle() function, so there's no way to determine
-% the nature of the plot anymore at this point.  Set to 'unknown' to force
-% fallback handling. This produces something for bar plots, for example.
-% #COMPLEX: big switch-case
-    try
-        cl = class(handle(h));
-    catch %#ok
-        cl = 'unknown';
-    end
-
-    switch(cl)
-        case {'specgraph.barseries', 'matlab.graphics.chart.primitive.Bar'}
-            % hist plots and friends
-            [m2t, str] = drawBarseries(m2t, h);
-
-        case {'specgraph.stemseries', 'matlab.graphics.chart.primitive.Stem'}
-            % stem plots
-            [m2t, str] = drawStemSeries(m2t, h);
-
-        case {'specgraph.stairseries', 'matlab.graphics.chart.primitive.Stair'}
-            % stair plots
-            [m2t, str] = drawStairSeries(m2t, h);
-
-        case {'specgraph.areaseries', 'matlab.graphics.chart.primitive.Area'}
-            % scatter plots
-            [m2t,str] = drawAreaSeries(m2t, h);
-
-        case {'specgraph.quivergroup', 'matlab.graphics.chart.primitive.Quiver'}
-            % quiver arrows
-            [m2t, str] = drawQuiverGroup(m2t, h);
-
-        case {'specgraph.errorbarseries', 'matlab.graphics.chart.primitive.ErrorBar'}
-            % error bars
-            [m2t,str] = drawErrorBars(m2t, h);
-
-        case {'specgraph.scattergroup','matlab.graphics.chart.primitive.Scatter'}
-            % scatter plots
-            [m2t,str] = drawScatterPlot(m2t, h);
-
-        case {'specgraph.contourgroup', 'hggroup', 'matlab.graphics.primitive.Group'}
-            % handle all those the usual way
-            [m2t, str] = handleAllChildren(m2t, h);
-
-        case 'scribe.scribeellipse'
-            % Annotation: ellipse
-            [m2t, str] = drawEllipse(m2t, h);
-
-        case {'scribe.arrow', 'scribe.doublearrow', 'scribe.line'}
-            % Annotation: single and double Arrow, line
-            % These annotations are fully represented by their children
-            [m2t, str] = handleAllChildren(m2t, h);
-
-        case 'scribe.textbox'
-            % Annotation: text box
-            [m2t, str] = drawText(m2t, h);
-
-        case 'scribe.textarrow'
-            % Annotation: text arrow
-            [m2t, str] = drawTextarrow(m2t, h);
-
-        case 'scribe.scriberect'
-            % Annotation: rectangle
-            [m2t, str] = drawRectangle(m2t, h);
-
-        case 'unknown'
-            % Weird spurious class from Octave.
-            [m2t, str] = handleAllChildren(m2t, h);
-
-        otherwise
-            userWarning(m2t, 'Don''t know class ''%s''. Default handling.', cl);
-            try
-                m2tBackup = m2t;
-                [m2t, str] = handleAllChildren(m2t, h);
-            catch ME
-                userWarning(m2t, 'Default handling for ''%s'' failed. Continuing as if it did not occur. \n Original Message:\n %s', cl, getReport(ME));
-                [m2t, str] = deal(m2tBackup, ''); % roll-back
-            end
-    end
-end
-% ==============================================================================
-function [m2t,env] = drawSurface(m2t, handle)
-    str = '';
-    [m2t, opts, plotType] = surfaceOpts(m2t, handle);
-
-    % Allow for empty surf
-    if isNone(plotType)
-        m2t.currentAxesContain3dData = true;
-        env = str;
-        return
-    end
-
-    dx = get(handle, 'XData');
-    dy = get(handle, 'YData');
-    dz = get(handle, 'ZData');
-    if any(~isfinite(dx(:))) || any(~isfinite(dy(:))) || any(~isfinite(dz(:)))
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, ...
-            'unbounded coords', 'jump');
-    end
-
-    [numcols, numrows] = size(dz);
-
-    % If dx or dy are given as vectors, convert them to the (wasteful) matrix
-    % representation first. This makes sure we can treat the data with one
-    % single sprintf() command below.
-    if isvector(dx)
-        dx = ones(numcols,1) * dx(:)';
-    end
-    if isvector(dy)
-        dy = dy(:) * ones(1,numrows);
-    end
-
-    % Add 'z buffer=sort' to the options to make sphere plot and the like not
-    % overlap. There are different options here some of which may be more
-    % advantageous in other situations; check out Pgfplots' manual here.
-    % Since 'z buffer=sort' is computationally more expensive for LaTeX, try
-    % to avoid it for the most default situations, e.g., when dx and dy are
-    % rank-1-matrices.
-    if any(~isnan(dx(1,:)) & dx(1,:) ~= dx(2,:)) ...
-            || any(~isnan(dy(:,1)) & dy(:,1) ~= dy(:,2))
-        opts{end+1} = 'z buffer=sort';
-    end
-
-    % There are several possibilities of how colors are specified for surface
-    % plots:
-    %    * explicitly by RGB-values,
-    %    * implicitly through a color map with a point-meta coordinate,
-    %    * implicitly through a color map with a given coordinate (e.g., z).
-    %
-
-    % Check if we need extra CData.
-    colors = get(handle, 'CData');
-    if length(size(colors)) == 3 && size(colors, 3) == 3
-        % Explicit RGB-coded colors.
-        opts{end+1} = 'mesh/color input=explicit';
-
-        formatType = 'table[row sep=crcr,header=false,meta index=3]';
-        r = colors(:, :, 1);
-        g = colors(:, :, 2);
-        b = colors(:, :, 3);
-        colorFormat = join(m2t, repmat({m2t.ff},[3 1]),',');
-        color = arrayfun(@(r,g,b)(sprintf(colorFormat,r,g,b)), ...
-            r(:),g(:),b(:),'UniformOutput',false);
-
-        %formatType = 'table[row sep=crcr,header=false]';
-        %formatString = [m2t.ff, ' ', m2t.ff, ' ', m2t.ff, '\\\\\n'];
-        %data = applyHgTransform(m2t, [dx(:), dy(:), dz(:)]);
-
-        %elseif length(size(colors)) > 2 || any(isnan(colors(:)))
-        %    needsPointmeta = false;
-    else
-        opts{end+1} = matlab2pgfplotsColormap(m2t, ...
-            m2t.currentHandles.colormap);
-        % If NaNs are present in the color specifications, don't use them for
-        % Pgfplots; they may be interpreted as strings there. The option
-        % 'header=false' will be explicitly added.
-        % Note:
-        % Pgfplots actually does a better job than MATLAB in determining what
-        % colors to use for the patches. The circular test case on
-        % http://www.mathworks.de/de/help/matlab/ref/pcolor.html, for example
-        % yields a symmetric setup in Pgfplots (and doesn't in MATLAB).
-        needsPointmeta = any(xor(isnan(dz), isnan(colors)) ...
-            | (abs(colors - dz) > 1.0e-10));
-        if needsPointmeta
-            % Get color map.
-            formatType = 'table[row sep=crcr,header=false,meta index=3]';
-            opts{end+1} = 'point meta=explicit';
-            color = colors(:);
-        else
-            formatType = 'table[row sep=crcr,header=false]';
-            color = '';
-        end
-    end
-    data = applyHgTransform(m2t, [dx(:), dy(:), dz(:)]);
-
-    % Add mesh/rows=<num rows> for specifying the row data instead of empty
-    % lines in the data list below. This makes it possible to reduce the
-    % data writing to one single sprintf() call.
-    opts{end+1} = sprintf('mesh/rows=%d', numrows);
-
-    opts = join(m2t, opts, ',\n');
-    str = [str, sprintf(['\n\\addplot3[%%\n%s,\n', opts ,']'], plotType)];
-
-    % TODO Check if surf plot is 'spectrogram' or 'surf' and run corresponding
-    % algorithm.
-    % Spectrograms need to have the grid removed,
-    % m2t.axesContainers{end}.options{end+1} = 'grid=none';
-    % Here is where everything is put together.
-    tabArgs = {'',data(:,1),'',data(:,2),'',data(:,3)};
-    if ~isempty(color)
-        tabArgs(end+1:end+2) = {'',color};
-    end
-    [m2t, table] = makeTable(m2t, tabArgs{:});
-
-    str = sprintf('%s\n%s {%%\n%s};\n', str, formatType, table);
-    env = str;
-
-    % TODO:
-    % - remove grids in spectrogram by either removing grid command
-    %   or adding: 'grid=none' from/in axis options
-    % - handling of huge data amounts in LaTeX.
-
-    if m2t.cmdOpts.Results.automaticLabels
-        [m2t, label] = addLabel(m2t);
-        str = [str, label]; %#ok
-    end
-
-    m2t.currentAxesContain3dData = true;
-end
-% ==============================================================================
-function [m2t, str] = drawVisibleText(m2t, handle)
-% Wrapper for drawText() that only draws visible text
-
-    % There may be some text objects floating around a MATLAB figure which are
-    % handled by other subfunctions (labels etc.) or don't need to be handled at
-    % all.
-    % The HandleVisibility says something about whether the text handle is
-    % visible as a data structure or not. Typically, a handle is hidden if the
-    % graphics aren't supposed to be altered, e.g., axis labels.  Most of those
-    % entities are captured by matlab2tikz one way or another, but sometimes they
-    % are not. This is the case, for example, with polar plots and the axis
-    % descriptions therein.  Also, Matlab treats text objects with a NaN in the
-    % position as invisible.
-    if any(isnan(get(handle, 'Position')) | isnan(get(handle, 'Rotation'))) ...
-            || strcmp(get(handle, 'Visible'), 'off') ...
-            || (strcmp(get(handle, 'HandleVisibility'), 'off') && ...
-                ~m2t.cmdOpts.Results.showHiddenStrings)
-
-        str = '';
-        return;
-    end
-
-    [m2t, str] = drawText(m2t, handle);
-
-end
-% ==============================================================================
-function [m2t, str] = drawText(m2t, handle)
-% Adding text node anywhere in the axes environment.
-% Not that, in Pgfplots, long texts get cut off at the axes. This is
-% Different from the default MATLAB behavior. To fix this, one could use
-% /pgfplots/after end axis/.code.
-
-    str = '';
-
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % get required properties
-    color  = get(handle, 'Color');
-    [m2t, tcolor] = getColor(m2t, handle, color, 'patch');
-    bgColor = get(handle,'BackgroundColor');
-    EdgeColor = get(handle, 'EdgeColor');
-    HorizontalAlignment = get(handle, 'HorizontalAlignment');
-    String = get(handle, 'String');
-    Interpreter = get(handle, 'Interpreter');
-    String = prettyPrint(m2t, String, Interpreter);
-    % Concatenate multiple lines
-    String = join(m2t, String, '\\');
-    VerticalAlignment = get(handle, 'VerticalAlignment');
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % translate them to pgf style
-    style = opts_new();
-    if ~isNone(bgColor)
-        [m2t, bcolor] = getColor(m2t, handle, bgColor, 'patch');
-        style = opts_add(style, 'fill', bcolor);
-    end
-    switch VerticalAlignment
-        case {'top', 'cap'}
-            style = opts_add(style, 'below');
-        case {'baseline', 'bottom'}
-            style = opts_add(style, 'above');
-    end
-    switch HorizontalAlignment
-        case 'left'
-            style = opts_add(style, 'right');
-        case 'right'
-            style = opts_add(style, 'left');
-    end
-    % Add Horizontal alignment
-    style = opts_add(style, 'align', HorizontalAlignment);
-
-    % remove invisible border around \node to make the text align precisely
-    style = opts_add(style, 'inner sep', '0mm');
-
-    % Add rotation, if existing
-    defaultRotation = 0.0;
-    rot = getOrDefault(handle, 'Rotation', defaultRotation);
-    if rot ~= defaultRotation
-        style = opts_add(style, 'rotate', sprintf(m2t.ff, rot));
-    end
-
-    style = opts_merge(style, getFontStyle(m2t, handle));
-
-    style = opts_add(style, 'text', tcolor);
-    if ~isNone(EdgeColor)
-        [m2t, ecolor] = getColor(m2t, handle, EdgeColor, 'patch');
-        style = opts_add(style, 'draw', ecolor);
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % plot the thing
-    pos = get(handle, 'Position');
-    units = get(handle, 'Units');
-    switch length(pos)
-        case 2    % Text within a 2d plot
-            switch units
-                case 'normalized'
-                    posString = sprintf(['(rel axis cs:', m2t.ff, ',', m2t.ff, ')'], pos);
-                case 'data'
-                    posString = sprintf(['(axis cs:', m2t.ff, ',', m2t.ff, ')'], pos);
-                otherwise
-                    defaultUnit = 'cm';
-                    pos = convertUnits(pos, units, defaultUnit);
-                    posString = ['(' formatDim(pos(1), defaultUnit) ',' ...
-                                     formatDim(pos(2), defaultUnit) ')'];
-            end
-
-            xlim = get(m2t.currentHandles.gca,'XLim');
-            ylim = get(m2t.currentHandles.gca,'YLim');
-            if pos(1) < xlim(1) || pos(1) > xlim(2) ...
-                    || pos(2) < ylim(1) || pos(2) > ylim(2)
-                m2t.axesContainers{end}.options = ...
-                    opts_add(m2t.axesContainers{end}.options, ...
-                    'clip', 'false');
-            end
-        case 3    % Text within a 3d plot
-            pos = applyHgTransform(m2t, pos);
-            if strcmp(units, 'normalized')
-                posString = sprintf(['(rel axis cs:',m2t.ff,',',m2t.ff,',',m2t.ff,')'], pos);
-            else
-                posString = sprintf(['(axis cs:',m2t.ff,',',m2t.ff,',',m2t.ff,')'], pos);
-            end
-
-            xlim = get(m2t.currentHandles.gca, 'XLim');
-            ylim = get(m2t.currentHandles.gca, 'YLim');
-            zlim = get(m2t.currentHandles.gca, 'ZLim');
-            if pos(1) < xlim(1) || pos(1) > xlim(2) ...
-                    || pos(2) < ylim(1) || pos(2) > ylim(2) ...
-                    || pos(3) < zlim(1) || pos(3) > zlim(2)
-                m2t.axesContainers{end}.options = ...
-                    opts_add(m2t.axesContainers{end}.options, ...
-                    'clip', 'false');
-            end
-        case 4    % Textbox
-            % TODO:
-            %   - size of the box (e.g. using node attributes minimum width / height)
-            %   - Alignment of the resized box
-            switch units
-                case 'normalized'
-                    posString = sprintf(['(rel axis cs:', m2t.ff, ',', m2t.ff, ')'], pos(1:2));
-                case 'data'
-                    posString = sprintf(['(axis cs:', m2t.ff, ',', m2t.ff, ')'], pos(1:2));
-                otherwise
-                    defaultUnit = 'cm';
-                    pos = convertUnits(pos, units, defaultUnit);
-                    posString = ['(' formatDim(pos(1), defaultUnit) ',' ...
-                                     formatDim(pos(2), defaultUnit) ')'];
-            end
-
-            xlim = get(m2t.currentHandles.gca,'XLim');
-            ylim = get(m2t.currentHandles.gca,'YLim');
-            if pos(1) < xlim(1) || pos(1) > xlim(2) ...
-                    || pos(2) < ylim(1) || pos(2) > ylim(2)
-                m2t.axesContainers{end}.options = ...
-                    opts_add(m2t.axesContainers{end}.options, ...
-                    'clip', 'false');
-            end
-        otherwise
-            error('matlab2tikz:drawText', ...
-                'Illegal text position specification.');
-    end
-    str = sprintf('\\node[%s]\nat %s {%s};\n', ...
-        opts_print(m2t, style, ', '), posString, String);
-end
-% ==============================================================================
-function [m2t, str] = drawRectangle(m2t, handle)
-    str = '';
-
-    % there may be some text objects floating around a Matlab figure which
-    % are handled by other subfunctions (labels etc.) or don't need to be
-    % handled at all
-    if     strcmp(get(handle, 'Visible'), 'off') ...
-            || strcmp(get(handle, 'HandleVisibility'), 'off')
-        return;
-    end
-
-    % TODO handle Curvature = [0.8 0.4]
-
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    lineStyle = get(handle, 'LineStyle');
-    lineWidth = get(handle, 'LineWidth');
-    if isNone(lineStyle) || lineWidth==0
-        return
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % Get draw options.
-    lineOptions = getLineOptions(m2t, lineStyle, lineWidth);
-
-    colorOptions = cell(0);
-    % fill color
-    faceColor  = get(handle, 'FaceColor');
-    if ~isNone(faceColor)
-        [m2t, xFaceColor] = getColor(m2t, handle, faceColor, 'patch');
-        colorOptions{end+1} = sprintf('fill=%s', xFaceColor);
-    end
-    % draw color
-    edgeColor = get(handle, 'EdgeColor');
-    lineStyle = get(handle, 'LineStyle');
-    if isNone(lineStyle) || isNone(edgeColor)
-        colorOptions{end+1} = 'draw=none';
-    else
-        [m2t, xEdgeColor] = getColor(m2t, handle, edgeColor, 'patch');
-        colorOptions{end+1} = sprintf('draw=%s', xEdgeColor);
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    pos = pos2dims(get(handle, 'Position'));
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    drawOptions = [lineOptions, colorOptions];
-    % plot the thing
-    str = sprintf(['\\draw[%s] (axis cs:',m2t.ff,',',m2t.ff, ')', ...
-                   ' rectangle (axis cs:',m2t.ff,',',m2t.ff,');\n'], ...
-         join(m2t, drawOptions,', '), pos.left, pos.bottom, pos.right, pos.top);
-end
-% ==============================================================================
-function [m2t,surfOptions,plotType] = surfaceOpts(m2t, handle)
-    faceColor = get(handle, 'FaceColor');
-    edgeColor = get(handle, 'EdgeColor');
-
-    % Check for surf or mesh plot. Second argument in if-check corresponds to
-    % default values for mesh plot in MATLAB.
-    if isNone(faceColor)
-        plotType = 'mesh';
-    else
-        plotType = 'surf';
-    end
-
-    surfOptions = cell(0);
-
-    % Set opacity if FaceAlpha < 1 in MATLAB
-    faceAlpha = get(handle, 'FaceAlpha');
-    if isnumeric(faceAlpha) && faceAlpha ~= 1.0
-        surfOptions{end+1} = sprintf(['opacity=', m2t.ff], faceAlpha);
-    end
-
-    % TODO Revisit this selection and create a bunch of test plots.
-    switch plotType
-
-        % SURFACE
-        case 'surf'
-
-            % Edge 'none'
-            if isNone(edgeColor)
-                if strcmpi(faceColor, 'flat')
-                    surfOptions{end+1} = 'shader=flat';
-                elseif strcmpi(faceColor, 'interp');
-                    surfOptions{end+1} = 'shader=interp';
-                end
-
-            % Edge 'interp'
-            elseif strcmpi(edgeColor, 'interp')
-                if strcmpi(faceColor, 'interp')
-                    surfOptions{end+1} = 'shader=interp';
-                else
-                    surfOptions{end+1} = 'shader=faceted';
-                    [m2t,xFaceColor]   = getColor(m2t, handle, faceColor, 'patch');
-                    surfOptions{end+1} = sprintf('color=%s',xFaceColor);
-                end
-
-            % Edge 'flat'
-            elseif strcmpi(edgeColor, 'flat')
-                if strcmpi(faceColor, 'flat')
-                    surfOptions{end+1} = 'shader=flat';
-                elseif strcmpi(faceColor, 'interp')
-                    surfOptions{end+1} = 'shader=faceted interp';
-                elseif isnumeric(faceColor)
-                    [m2t, xFaceColor] = getColor(m2t, handle, faceColor, 'patch');
-                    surfOptions{end+1} = sprintf('fill=%s',xFaceColor);
-                end
-
-            % Edge RGB
-            else
-                [m2t, xEdgeColor]  = getColor(m2t, handle, edgeColor, 'patch');
-                surfOptions{end+1} = sprintf('faceted color=%s', xEdgeColor);
-                if isnumeric(faceColor)
-                    [m2t, xFaceColor]  = getColor(m2t, handle, faceColor, 'patch');
-                    surfOptions{end+1} = sprintf('color=%s', xFaceColor);
-                else
-                    surfOptions{end+1} = 'shader=faceted';
-                end
-            end
-
-        % MESH
-        case 'mesh'
-            if ~isNone(edgeColor)
-
-                % Edge 'interp'
-                if strcmpi(edgeColor, 'interp')
-                    surfOptions{end+1} = 'shader=flat';
-
-                % Edge RGB
-                else
-                    [m2t, xEdgeColor]  = getColor(m2t, handle, edgeColor, 'patch');
-                    surfOptions{end+1} = sprintf('color=%s', xEdgeColor);
-                end
-            else
-                plotType = 'none';
-            end
-    end
-end
-% ==============================================================================
-function [m2t, str] = drawScatterPlot(m2t, h)
-    str = '';
-
-    xData = get(h, 'XData');
-    yData = get(h, 'YData');
-    zData = get(h, 'ZData');
-    cData = get(h, 'CData');
-    sData = get(h, 'SizeData');
-
-    matlabMarker = get(h, 'Marker');
-    markerFaceColor = get(h, 'MarkerFaceColor');
-    markerEdgeColor = get(h, 'MarkerEdgeColor');
-    hasFaceColor = ~isNone(markerFaceColor);
-    hasEdgeColor = ~isNone(markerEdgeColor);
-    markOptions = cell(0);
-    [tikzMarker, markOptions] = translateMarker(m2t, matlabMarker, ...
-        markOptions, hasFaceColor);
-
-    constMarkerkSize = length(sData) == 1; % constant marker size
-
-    % Rescale marker size (not definitive, follow discussion on:
-    % https://github.com/matlab2tikz/matlab2tikz/pull/316)
-    sData = translateMarkerSize(m2t, matlabMarker, sqrt(sData)/2);
-
-    if length(cData) == 3
-        % No special treatment for the colors or markers are needed.
-        % All markers have the same color.
-        if hasFaceColor && ~strcmp(markerFaceColor,'flat');
-            [m2t, xcolor] = getColor(m2t, h, markerFaceColor,'patch');
-        else
-            [m2t, xcolor] = getColor(m2t, h, cData, 'patch');
-        end
-        if hasEdgeColor && ~strcmp(markerEdgeColor,'flat');
-            [m2t, ecolor] = getColor(m2t, h, markerEdgeColor,'patch');
-        else
-            [m2t, ecolor] = getColor(m2t, h, cData, 'patch');
-        end
-        if constMarkerkSize
-            drawOptions = { 'only marks', ...
-                ['mark=' tikzMarker], ...
-                ['mark options={', join(m2t, markOptions, ','), '}'],...
-                sprintf('mark size=%.4fpt', sData)};
-            if hasFaceColor && hasEdgeColor
-                drawOptions{end+1} = { ['draw=' ecolor], ...
-                    ['fill=' xcolor] };
-            else
-                drawOptions{end+1} = ['color=' xcolor];
-            end
-        else % if changing marker size but same color on all marks
-            markerOptions = { ['mark=', tikzMarker], ...
-                ['mark options={', join(m2t, markOptions, ','), '}'] };
-            if hasEdgeColor
-                markerOptions{end+1} = ['draw=' ecolor];
-            else
-                markerOptions{end+1} = ['draw=' xcolor];
-            end
-            if hasFaceColor
-                markerOptions{end+1} = ['fill=' xcolor];
-            end
-            % for changing marker size, the 'scatter' option has to be added
-            drawOptions = { 'scatter', ...
-                'only marks', ...
-                ['color=' xcolor], ...
-                ['mark=' tikzMarker], ...
-                ['mark options={', join(m2t, markOptions, ','), '}'] };
-            if ~hasFaceColor
-                drawOptions{end+1} = { ['scatter/use mapped color=' xcolor] };
-            else
-                drawOptions{end+1} = { ['scatter/use mapped color={', join(m2t, markerOptions,','), '}'] };
-            end
-        end
-    elseif size(cData,2) == 3
-        drawOptions = { 'only marks' ...
-            % TODO Get this in order as soon as Pgfplots can do "scatter rgb".
-            %                        'scatter rgb' ...
-            };
-    else
-        markerOptions = { ['mark=', tikzMarker], ...
-            ['mark options={', join(m2t, markOptions, ','), '}'] };
-        if hasEdgeColor && hasFaceColor
-            [m2t, ecolor] = getColor(m2t, h, markerEdgeColor,'patch');
-            markerOptions{end+1} = ['draw=' ecolor];
-        else
-            markerOptions{end+1} = 'draw=mapped color';
-        end
-        if hasFaceColor
-            markerOptions{end+1} = 'fill=mapped color';
-        end
-        drawOptions = { 'scatter', ...
-            'only marks', ...
-            'scatter src=explicit', ...
-            ['scatter/use mapped color={', join(m2t, markerOptions,','), '}'] };
-        % Add color map.
-        m2t.axesContainers{end}.options = ...
-            opts_append(m2t.axesContainers{end}.options, ...
-            matlab2pgfplotsColormap(m2t, m2t.currentHandles.colormap), []);
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % Plot the thing.
-    if isempty(zData)
-        env = 'addplot';
-        if length(sData) == 1
-            nColumns = 2;
-            data = [xData(:), yData(:)];
-        else
-            nColumns = 3;
-            sColumn = 2;
-            data = [xData(:), yData(:), sData(:)];
-        end
-    else
-        env = 'addplot3';
-        m2t.currentAxesContain3dData = true;
-        if length(sData) == 1
-            nColumns = 3;
-            data = applyHgTransform(m2t, [xData(:),yData(:),zData(:)]);
-        else
-            nColumns = 4;
-            sColumn = 3;
-            data = applyHgTransform(m2t, [xData(:),yData(:),zData(:),sData(:)]);
-        end
-    end
-    if ~constMarkerkSize %
-        drawOptions{end+1} = { ['visualization depends on={\thisrowno{', num2str(sColumn), '} \as \perpointmarksize}'], ...
-            'scatter/@pre marker code/.append style={/tikz/mark size=\perpointmarksize}' };
-    end
-    drawOpts = join(m2t, drawOptions, ',');
-
-    metaPart = '';
-    if length(cData) == 3
-        % If size(cData,1)==1, then all the colors are the same and have
-        % already been accounted for above.
-
-    elseif size(cData,2) == 3
-        %TODO Hm, can't deal with this?
-        %[m2t, col] = rgb2colorliteral(m2t, cData(k,:));
-        %str = strcat(str, sprintf(' [%s]\n', col));
-    else
-        metaPart = sprintf('meta index=%d',size(data,2));
-        data = [data, cData(:)];
-        nColumns = nColumns + 1;
-    end
-
-    % The actual printing.
-    [m2t, table] = makeTable(m2t, repmat({''},1,nColumns), data);
-    str = sprintf('%s\\%s[%s] plot table[row sep=crcr,%s]{%s};\n', str, env, ...
-        drawOpts, metaPart, table);
-end
-% ==============================================================================
-function [m2t, str] = drawBarseries(m2t, h)
-% Takes care of plots like the ones produced by MATLAB's hist.
-% The main pillar is Pgfplots's '{x,y}bar' plot.
-%
-% TODO Get rid of code duplication with 'drawAxes'.
-
-    str = '';
-
-    if ~isVisible(h)
-        return; % don't bother drawing invisible things
-    end
-
-    % drawAxes sets m2t.barplotId to 0, so all values are recomputed for subplots.
-    if m2t.barplotId == 0
-        % 'barplotId' provides a consecutively numbered ID for each
-        % barseries plot. This allows for a proper handling of multiple bars.
-        m2t.barplotTotalNumber = [];
-        m2t.barShifts = [];
-        m2t.barAddedAxisOption = false;
-    end
-
-    % Add 'log origin = infty' if BaseValue differs from zero (log origin=0 is
-    % the default behaviour since Pgfplots v1.5).
-    baseValue = get(h, 'BaseValue');
-    if baseValue ~= 0.0
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, ...
-            'log origin', 'infty');
-    end
-
-    [m2t, numBars] = countBarplotSiblings(m2t, h);
-
-    xData = get(h, 'XData');
-    yData = get(h, 'YData');
-
-    % init drawOptions
-    drawOptions = opts_new();
-
-    barlayout = get(h, 'BarLayout');
-    isHoriz = strcmp(get(h, 'Horizontal'), 'on');
-    if (isHoriz)
-        barType = 'xbar';
-    else
-        barType = 'ybar';
-    end
-    switch barlayout
-        case 'grouped'  % grouped bar plots
-            m2t.barplotId = m2t.barplotId + 1;
-
-            % Maximum group width relative to the minimum distance between two
-            % x-values. See <MATLAB>/toolbox/matlab/specgraph/makebars.m
-            maxGroupWidth = 0.8;
-            if numBars == 1
-                groupWidth = 1.0;
-            else
-                groupWidth = min(maxGroupWidth, numBars/(numBars+1.5));
-            end
-
-            % Calculate the width of each bar and the center point shift as in
-            % makebars.m
-            if isempty(m2t.barShifts)
-                % Get the shifts of the bar centers.
-                % In case of numBars==1, this returns 0,
-                % In case of numBars==2, this returns [-1/4, 1/4],
-                % In case of numBars==3, this returns [-1/3, 0, 1/3],
-                % and so forth.
-                barWidth = groupWidth/numBars; % assumption
-                m2t.barShifts = ((1:numBars) - 0.5) * barWidth - groupWidth/2;
-            end
-
-            % From http://www.mathworks.com/help/techdoc/ref/bar.html:
-            % bar(...,width) sets the relative bar width and controls the
-            % separation of bars within a group. The default width is 0.8, so if
-            % you do not specify X, the bars within a group have a slight
-            % separation. If width is 1, the bars within a group touch one
-            % another. The value of width must be a scalar.
-            barWidth = get(h, 'BarWidth') * groupWidth / numBars;
-
-            if numel(xData) == 1
-                dx = 1;
-            else
-                dx = min(diff(xData)); % used as scaling factor for all other lengths
-            end
-
-            % MATLAB treats shift and width in normalized coordinate units,
-            % whereas Pgfplots requires physical units (pt,cm,...); hence
-            % have the units converted.
-            if (isHoriz)
-                physicalBarWidth = dx * barWidth * m2t.unitlength.y.value;
-                physicalBarShift = dx * m2t.barShifts(m2t.barplotId) * m2t.unitlength.y.value;
-                physicalBarUnit = m2t.unitlength.y.unit;
-            else
-                physicalBarWidth = dx * barWidth * m2t.unitlength.x.value;
-                physicalBarShift = dx * m2t.barShifts(m2t.barplotId) * m2t.unitlength.x.value;
-                physicalBarUnit = m2t.unitlength.x.unit;
-            end
-            drawOptions = opts_add(drawOptions, barType);
-            drawOptions = opts_add(drawOptions, 'bar width', ...
-                                 formatDim(physicalBarWidth, physicalBarUnit));
-            if physicalBarShift ~= 0.0
-                drawOptions = opts_add(drawOptions, 'bar shift', ...
-                                 formatDim(physicalBarShift, physicalBarUnit));
-            end
-
-        case 'stacked' % stacked plots
-            % Pass option to parent axis & disallow anything but stacked plots
-            % Make sure this happens exactly *once*.
-
-            if ~m2t.barAddedAxisOption
-                bWFactor = get(h, 'BarWidth');
-                m2t.axesContainers{end}.options = ...
-                    opts_add(m2t.axesContainers{end}.options, ...
-                    'bar width', ...
-                    formatDim(m2t.unitlength.x.value*bWFactor, m2t.unitlength.x.unit));
-                m2t.barAddedAxisOption = true;
-            end
-
-            % Somewhere between pgfplots 1.5 and 1.8 and starting
-            % again from 1.11, the option {x|y}bar stacked can be applied to
-            % \addplot instead of the figure and thus allows to combine stacked
-            % bar plots and other kinds of plots in the same axis.
-            % Thus, it is advisable to use pgfplots 1.11. In older versions, the
-            % plot will only contain a single bar series, but should compile fine.
-            m2t = needsPgfplotsVersion(m2t, [1,11]);
-            drawOptions = opts_add(drawOptions, [barType ' stacked']);
-        otherwise
-            error('matlab2tikz:drawBarseries', ...
-                'Don''t know how to handle BarLayout ''%s''.', barlayout);
-    end
-
-    % define edge color
-    edgeColor = get(h, 'EdgeColor');
-    lineStyle = get(h, 'LineStyle');
-    if isNone(lineStyle) || isNone(edgeColor)
-        drawOptions = opts_add(drawOptions, 'draw', 'none');
-    else
-        [m2t, xEdgeColor] = getColor(m2t, h, edgeColor, 'patch');
-        drawOptions = opts_add(drawOptions, 'draw', xEdgeColor);
-    end
-
-    [m2t, drawOptions] = getFaceColorOfBar(m2t, h, drawOptions);
-
-    % Add 'area legend' to the options as otherwise the legend indicators
-    % will just highlight the edges.
-    m2t.axesContainers{end}.options = ...
-        opts_add(m2t.axesContainers{end}.options, 'area legend');
-
-    % plot the thing
-    if isHoriz
-        [yDataPlot, xDataPlot] = deal(xData, yData); % swap values
-    else
-        [xDataPlot, yDataPlot] = deal(xData, yData);
-    end
-
-    drawOpts = opts_print(m2t, drawOptions, ',');
-    [m2t, table ] = makeTable(m2t, '', xDataPlot, '', yDataPlot);
-    str = sprintf('\\addplot[%s] plot table[row sep=crcr] {%s};\n', drawOpts, table);
-end
-% ==============================================================================
-function [m2t, numBars] = countBarplotSiblings(m2t, h)
-% Count the number of sibling bar plots
-    if isempty(m2t.barplotTotalNumber)
-        m2t.barplotTotalNumber = 0;
-        siblings = get(get(h, 'Parent'), 'Children');
-        for s = siblings(:)'
-
-            if ~isVisible(s)
-                continue;  % skip invisible objects
-            end
-
-            if any(strcmpi(get(s, 'Type'), {'hggroup','Bar'}))
-                cl = class(handle(s));
-                switch cl
-                    case {'specgraph.barseries', 'matlab.graphics.chart.primitive.Bar'}
-                        m2t.barplotTotalNumber = m2t.barplotTotalNumber + 1;
-                    case 'specgraph.errorbarseries'
-                        % TODO
-                        % Unfortunately, MATLAB(R) treats error bars and
-                        % corresponding bar plots as siblings of a common axes
-                        % object. For error bars to work with bar plots -- which
-                        % is trivially possible in Pgfplots -- one has to match
-                        % errorbar and bar objects (probably by their values).
-                        userWarning(m2t, 'Error bars discarded (to be implemented).');
-                    otherwise
-                        error('matlab2tikz:drawBarseries',          ...
-                            'Unknown class''%s''.', cl);
-                end
-            end
-        end
-    end
-    numBars = m2t.barplotTotalNumber;
-end
-% ==============================================================================
-function [m2t, drawOptions] = getFaceColorOfBar(m2t, h, drawOptions)
-% retrieve the FaceColor of a barseries object
-    if ~isempty(get(h,'Children'))
-        % quite oddly, before MATLAB R2014b this value is stored in a child
-        % patch and not in the object itself
-        obj = get(h, 'Children');
-    else % R2014b and newer
-        obj = h;
-    end
-    faceColor = get(obj, 'FaceColor');
-    if ~isNone(faceColor)
-        [m2t, xFaceColor] = getColor(m2t, h, faceColor, 'patch');
-        drawOptions = opts_add(drawOptions, 'fill', xFaceColor);
-    end
-end
-% ==============================================================================
-function [m2t, str] = drawStemSeries(m2t, h)
-    [m2t, str] = drawStemOrStairSeries_(m2t, h, 'ycomb');
-end
-function [m2t, str] = drawStairSeries(m2t, h)
-    [m2t, str] = drawStemOrStairSeries_(m2t, h, 'const plot');
-end
-function [m2t, str] = drawStemOrStairSeries_(m2t, h, plotType)
-    str = '';
-
-    lineStyle = get(h, 'LineStyle');
-    lineWidth = get(h, 'LineWidth');
-    marker    = get(h, 'Marker');
-
-    if ((isNone(lineStyle) || lineWidth==0) && isNone(marker))
-        return % nothing to plot!
-    end
-
-    %% deal with draw options
-    color = get(h, 'Color');
-    [m2t, plotColor] = getColor(m2t, h, color, 'patch');
-
-    lineOptions = getLineOptions(m2t, lineStyle, lineWidth);
-    [m2t, markerOptions] = getMarkerOptions(m2t, h);
-
-    drawOptions = [plotType,                      ...
-        sprintf('color=%s', plotColor),...
-        lineOptions, ...
-        markerOptions];
-
-    %% insert draw options
-    drawOpts =  join(m2t, drawOptions, ',');
-
-    %% plot the thing
-    xData = get(h, 'XData');
-    yData = get(h, 'YData');
-    [m2t, table] = makeTable(m2t, '', xData, '', yData);
-
-    str = sprintf('%s\\addplot[%s] plot table[row sep=crcr] {%s};\n', ...
-        str, drawOpts, table);
-end
-% ==============================================================================
-function [m2t, str] = drawAreaSeries(m2t, h)
-% Takes care of MATLAB's stem plots.
-%
-% TODO Get rid of code duplication with 'drawAxes'.
-
-    str = '';
-
-    if ~isfield(m2t, 'addedAreaOption') || isempty(m2t.addedAreaOption) || ~m2t.addedAreaOption
-        % Add 'area style' to axes options.
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, 'area style', []);
-        m2t.axesContainers{end}.options = ...
-            opts_add(m2t.axesContainers{end}.options, 'stack plots', 'y');
-        m2t.addedAreaOption = true;
-    end
-
-    % Handle draw options.
-    % define edge color
-    drawOptions = {};
-    edgeColor = get(h, 'EdgeColor');
-    [m2t, xEdgeColor] = getColor(m2t, h, edgeColor, 'patch');
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % define face color;
-    if ~isempty(get(h,'Children'))
-        % quite oddly, before MATLAB R2014b this value is stored in a child
-        % patch and not in the object itself
-        obj = get(h, 'Children');
-    else % R2014b and newer
-        obj = h;
-    end
-    faceColor = get(obj, 'FaceColor');
-    [m2t, xFaceColor] = getColor(m2t, h, faceColor, 'patch');
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % gather the draw options
-    lineStyle = get(h, 'LineStyle');
-    drawOptions{end+1} = sprintf('fill=%s', xFaceColor);
-    if isNone(lineStyle)
-        drawOptions{end+1} = 'draw=none';
-    else
-        drawOptions{end+1} = sprintf('draw=%s', xEdgeColor);
-    end
-    drawOpts = join(m2t, drawOptions, ',');
-
-    % plot the thing
-    xData = get(h, 'XData');
-    yData = get(h, 'YData');
-    [m2t, table] = makeTable(m2t, '', xData, '', yData);
-    str = sprintf('%s\\addplot[%s] plot table[row sep=crcr]{%s}\n\\closedcycle;\n',...
-        str, drawOpts, table);
-end
-% ==============================================================================
-function [m2t, str] = drawQuiverGroup(m2t, h)
-% Takes care of MATLAB's quiver plots.
-
-    % used for arrow styles, in case there are more than one quiver fields
-    m2t.quiverId = m2t.quiverId + 1;
-
-    str = '';
-
-    [x,y,z,u,v,w,is3D] = getAndRescaleQuivers(h);
-
-    % prepare output
-    if is3D
-        name = 'addplot3';
-        format = [m2t.ff,',',m2t.ff,',',m2t.ff];
-        m2t.currentAxesContain3dData = true;
-    else % 2D plotting
-        name   = 'addplot';
-        format = [m2t.ff,',',m2t.ff];
-    end
-
-    data = NaN(6,numel(x));
-    data(1,:) = x;
-    data(2,:) = y;
-    data(3,:) = z;
-    data(4,:) = x + u;
-    data(5,:) = y + v;
-    data(6,:) = z + w;
-
-    if ~is3D
-        data([3 6],:) = []; % remove Z-direction
-    end
-
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % gather the arrow options
-    showArrowHead = get(h, 'ShowArrowHead');
-    lineStyle     = get(h, 'LineStyle');
-    lineWidth     = get(h, 'LineWidth');
-
-    if (isNone(lineStyle) || lineWidth==0)  && ~showArrowHead
-        return
-    end
-
-    arrowOpts = cell(0);
-    if showArrowHead
-        arrowOpts = [arrowOpts, '->'];
-    else
-        arrowOpts = [arrowOpts, '-'];
-    end
-
-    color = get(h, 'Color');
-    [m2t, arrowcolor] = getColor(m2t, h, color, 'patch');
-    arrowOpts = [arrowOpts, ...
-        sprintf('color=%s', arrowcolor), ... % color
-        getLineOptions(m2t, lineStyle, lineWidth), ... % line options
-        ];
-
-    % define arrow style
-    arrowOptions = join(m2t, arrowOpts, ',');
-
-    % Append the arrow style to the TikZ options themselves.
-    % TODO: Look into replacing this by something more 'local',
-    % (see \pgfplotset{}).
-    m2t.content.options = opts_add(m2t.content.options,...
-        sprintf('arrow%d/.style', m2t.quiverId), ...
-        ['{', arrowOptions, '}']);
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % return the vector field code
-    str = [str, ...
-        sprintf(['\\',name,' [arrow',num2str(m2t.quiverId), '] ', ...
-        'coordinates{(',format,') (',format,')};\n'],...
-        data)];
-    %FIXME: external
-end
-% ==============================================================================
-function [x,y,z,u,v,w,is3D] = getAndRescaleQuivers(h)
-% get and rescale the arrows from a quivergroup object
-    x = get(h, 'XData');
-    y = get(h, 'YData');
-    z = getOrDefault(h, 'ZData', []);
-
-    u = get(h, 'UData');
-    v = get(h, 'VData');
-    w = getOrDefault(h, 'WData', []);
-
-    if isempty(z)
-        z = 0;
-        w = 0;
-        is3D  = false;
-    else
-        is3D = true;
-    end
-
-    % MATLAB uses a scaling algorithm to determine the size of the arrows.
-    % Before R2014b, the processed coordinates were available. This is no longer
-    % the case, so we have to re-implement it. In MATLAB it is implemented in
-    % the |quiver3|  (and |quiver|) function.
-    if any(size(x)==1)
-        nX = sqrt(numel(x)); nY = nX;
-    else
-        [nY, nX] = size(x);
-    end
-    range  = @(xyzData)(max(xyzData(:)) - min(xyzData(:)));
-    euclid = @(x,y,z)(sqrt(x.^2 + y.^2 + z.^2));
-    dx = range(x)/nX;
-    dy = range(y)/nY;
-    dz = range(z)/max(nX,nY);
-    dd = euclid(dx, dy, dz);
-    if dd > 0
-        vectorLength = euclid(u/dd,v/dd,w/dd);
-        maxLength = max(vectorLength(:));
-    else
-        maxLength = 1;
-    end
-    if getOrDefault(h, 'AutoScale', true)
-        scaleFactor = getOrDefault(h,'AutoScaleFactor', 0.9) / maxLength;
-    else
-        scaleFactor = 1;
-    end
-    x = x(:).'; u = u(:).'*scaleFactor;
-    y = y(:).'; v = v(:).'*scaleFactor;
-    z = z(:).'; w = w(:).'*scaleFactor;
-end
-% ==============================================================================
-function [m2t, str] = drawErrorBars(m2t, h)
-% Takes care of MATLAB's error bar plots.
-    if isa(h,'matlab.graphics.chart.primitive.ErrorBar') % MATLAB R2014b+
-        hData = h;
-        upDev = get(h, 'UData');
-        loDev = get(h, 'LData');
-
-        yDeviations = [upDev(:), loDev(:)];
-
-    else % Legacy Handling (Octave and MATLAB R2014a and older):
-        % 'errorseries' plots have two line-plot children, one of which contains
-        % the information about the center points; 'XData' and 'YData' components
-        % are both of length n.
-        % The other contains the information about the deviations (errors), more
-        % more precisely: the lines to be drawn. Those are
-        %        ___
-        %         |
-        %         |
-        %         X  <-- (x0,y0)
-        %         |
-        %        _|_
-        %
-        %    X: x0,     x0,     x0-eps, x0+eps, x0-eps, x0+eps;
-        %    Y: y0-dev, y0+dev, y0-dev, y0-dev, y0+dev, y0+dev.
-        %
-        % Hence, 'XData' and 'YData' are of length 6*n and contain redundant info.
-        % Some versions of MATLAB(R) insert more columns with NaNs (to be able to
-        % pass the entire X, Y arrays into plot()) such that the data is laid out as
-        %
-        %    X: x0,     x0,     NaN, x0-eps, x0+eps, NaN, x0-eps, x0+eps;
-        %    Y: y0-dev, y0+dev, NaN, y0-dev, y0-dev, NaN, y0+dev, y0+dev,
-        %
-        % or with another columns of NaNs added at the end.
-        c = get(h, 'Children');
-
-        % Find out which contains the data and which the deviations.
-        %TODO: this can be simplified using sort
-        n1 = length(get(c(1),'XData'));
-        n2 = length(get(c(2),'XData'));
-        if n2 == 6*n1
-            % 1 contains centerpoint info
-            dataIdx  = 1;
-            errorIdx = 2;
-            numDevData = 6;
-        elseif n1 == 6*n2
-            % 2 contains centerpoint info
-            dataIdx  = 2;
-            errorIdx = 1;
-            numDevData = 6;
-        elseif n2 == 9*n1-1 || n2 == 9*n1
-            % 1 contains centerpoint info
-            dataIdx  = 1;
-            errorIdx = 2;
-            numDevData = 9;
-        elseif n1 == 9*n2-1 || n1 == 9*n2
-            % 2 contains centerpoint info
-            dataIdx  = 2;
-            errorIdx = 1;
-            numDevData = 9;
-        else
-            error('drawErrorBars:errorMatch', ...
-                'Sizes of and error data not matching (6*%d ~= %d and 6*%d ~= %d, 9*%d-1 ~= %d, 9*%d-1 ~= %d).', ...
-                n1, n2, n2, n1, n1, n2, n2, n1);
-        end
-        hData  = c(dataIdx);
-        hError = c(errorIdx);
-
-        % prepare error array (that is, gather the y-deviations)
-        yValues = get(hData , 'YData');
-        yErrors = get(hError, 'YData');
-
-        n = length(yValues);
-
-        yDeviations = zeros(n, 2);
-
-        %TODO: this can be vectorized
-        for k = 1:n
-            % upper deviation
-            kk = numDevData*(k-1) + 1;
-            upDev = abs(yValues(k) - yErrors(kk));
-
-            % lower deviation
-            kk = numDevData*(k-1) + 2;
-            loDev = abs(yValues(k) - yErrors(kk));
-
-            yDeviations(k,:) = [upDev loDev];
-        end
-    end
-    % Now run drawLine() with deviation information.
-    [m2t, str] = drawLine(m2t, hData, yDeviations);
-end
-% ==============================================================================
-function [m2t, str] = drawEllipse(m2t, handle)
-% Takes care of MATLAB's ellipse annotations.
-%
-
-%     c = get(h, 'Children');
-
-    p = get(handle,'position');
-    radius = p([3 4]) / 2;
-    center = p([1 2]) + radius;
-
-    str = '';
-
-    lineStyle = get(handle, 'LineStyle');
-    lineWidth = get(handle, 'LineWidth');
-
-    color = get(handle, 'Color');
-    [m2t, xcolor] = getColor(m2t, handle, color, 'patch');
-    lineOptions = getLineOptions(m2t, lineStyle, lineWidth);
-
-    filling = get(handle, 'FaceColor');
-
-    %% Has a filling?
-    if isNone(filling)
-        drawOptions = [{sprintf('%s', xcolor)}, ... % color
-            lineOptions];
-        drawCommand = '\draw';
-    else
-        [m2t, xcolorF] = getColor(m2t, handle, filling, 'patch');
-        drawOptions = [{sprintf('draw=%s,fill=%s', xcolor,xcolorF)}, ... % color
-            lineOptions];
-        drawCommand = '\filldraw';
-    end
-
-    opt = join(m2t, drawOptions, ',');
-
-    str = sprintf('%s [%s] (axis cs:%g,%g) ellipse [x radius=%g, y radius=%g];\n', ...
-        drawCommand, opt, center, radius);
-end
-% ==============================================================================
-function [m2t, str] = drawTextarrow(m2t, handle)
-% Takes care of MATLAB's textarrow annotations.
-
-    % handleAllChildren to draw the arrow
-    [m2t, str] = handleAllChildren(m2t, handle);
-
-    % handleAllChildren ignores the text, unless hidden strings are shown
-    if ~m2t.cmdOpts.Results.showHiddenStrings
-        child = findobj(handle, 'type', 'text');
-        [m2t, str{end+1}] = drawText(m2t, child);
-    end
-end
-% ==============================================================================
-function out = linearFunction(X, Y)
-% Return the linear function that goes through (X[1], Y[1]), (X[2], Y[2]).
-    out = @(x) (Y(2,:)*(x-X(1)) + Y(1,:)*(X(2)-x)) / (X(2)-X(1));
-end
-% ==============================================================================
-function matlabColormap = pgfplots2matlabColormap(points, rgb, numColors)
-% Translates a Pgfplots colormap to a MATLAB color map.
-    matlabColormap = zeros(numColors, 3);
-    % Point indices between which to interpolate.
-    I = [1, 2];
-    f = linearFunction(points(I), rgb(I,:));
-    for k = 1:numColors
-        x = (k-1)/(numColors-1) * points(end);
-        if x > points(I(2))
-            I = I + 1;
-            f = linearFunction(points(I), rgb(I,:));
-        end
-        matlabColormap(k,:) = f(x);
-    end
-end
-% ==============================================================================
-function pgfplotsColormap = matlab2pgfplotsColormap(m2t, matlabColormap)
-% Translates a MATLAB color map into a Pgfplots colormap.
-
-% First check if we could use a default Pgfplots color map.
-% Unfortunately, MATLAB and Pgfplots color maps will never exactly coincide
-% except to the most simple cases such as blackwhite. This is because of a
-% slight incompatibility of Pgfplots and MATLAB colormaps:
-% In MATLAB, indexing goes from 1 through 64, whereas in Pgfplots you can
-% specify any range, the default ones having something like
-% (0: red, 1: yellow, 2: blue).
-% To specify this exact color map in MATLAB, one would have to put 'red' at
-% 1, blue at 64, and yellow in the middle of the two, 32.5 that is.
-% Not really sure how MATLAB rounds here: 32, 33? Anyways, it will be
-% slightly off and hence not match the Pgfplots color map.
-% As a workaround, build the MATLAB-formatted colormaps of Pgfplots default
-% color maps, and check if matlabColormap is close to it. If yes, take it.
-
-% For now, comment out the color maps which haven't landed yet in Pgfplots.
-    pgfmaps = { %struct('name', 'colormap/autumn', ...
-        %       'points', [0,1], ...
-        %       'values', [[1,0,0];[1,1,0]]), ...
-        %struct('name', 'colormap/bled', ...
-        %       'points', 0:6, ...
-        %       'values', [[0,0,0];[43,43,0];[0,85,0];[0,128,128];[0,0,170];[213,0,213];[255,0,0]]/255), ...
-        %struct('name', 'colormap/bright', ...
-        %       'points', 0:7, ...
-        %       'values', [[0,0,0];[78,3,100];[2,74,255];[255,21,181];[255,113,26];[147,213,114];[230,255,0];[255,255,255]]/255), ...
-        %struct('name', 'colormap/bone', ...
-        %       'points', [0,3,6,8], ...
-        %       'values', [[0,0,0];[84,84,116];[167,199,199];[255,255,255]]/255), ...
-        %struct('name', 'colormap/cold', ...
-        %       'points', 0:3, ...
-        %       'values', [[0,0,0];[0,0,1];[0,1,1];[1,1,1]]), ...
-        %struct('name', 'colormap/copper', ...
-        %       'points', [0,4,5], ...
-        %       'values', [[0,0,0];[255,159,101];[255,199,127]]/255), ...
-        %struct('name', 'colormap/copper2', ...
-        %       'points', 0:4, ...
-        %       'values', [[0,0,0];[68,62,63];[170,112,95];[207,194,138];[255,255,255]]/255), ...
-        %struct('name', 'colormap/hsv', ...
-        %       'points', 0:6, ...
-        %       'values', [[1,0,0];[1,1,0];[0,1,0];[0,1,1];[0,0,1];[1,0,1];[1,0,0]]), ...
-        struct('name', 'colormap/hot', ...
-        'points', 0:3, ...
-        'values', [[0,0,1];[1,1,0];[1,0.5,0];[1,0,0]]), ... % TODO check this
-        struct('name', 'colormap/hot2', ...
-        'points', [0,3,6,8], ...
-        'values', [[0,0,0];[1,0,0];[1,1,0];[1,1,1]]), ...
-        struct('name', 'colormap/jet', ...
-        'points', [0,1,3,5,7,8], ...
-        'values', [[0,0,128];[0,0,255];[0,255,255];[255,255,0];[255,0,0];[128,0,0]]/255), ...
-        struct('name', 'colormap/blackwhite', ...
-        'points', [0,1], ...
-        'values', [[0,0,0];[1,1,1]]), ...
-        struct('name', 'colormap/bluered', ...
-        'points', 0:5, ...
-        'values', [[0,0,180];[0,255,255];[100,255,0];[255,255,0];[255,0,0];[128,0,0]]/255), ...
-        struct('name', 'colormap/cool', ...
-        'points', [0,1,2], ...
-        'values', [[255,255,255];[0,128,255];[255,0,255]]/255), ...
-        struct('name', 'colormap/greenyellow', ...
-        'points', [0,1], ...
-        'values', [[0,128,0];[255,255,0]]/255), ...
-        struct('name', 'colormap/redyellow', ...
-        'points', [0,1], ...
-        'values', [[255,0,0];[255,255,0]]/255), ...
-        struct('name', 'colormap/violet', ...
-        'points', [0,1,2], ...
-        'values', [[25,25,122];[255,255,255];[238,140,238]]/255) ...
-        };
-
-    % The tolerance is a subjective matter of course.
-    % Some figures:
-    %    * The norm-distance between MATLAB's gray and bone is 6.8e-2.
-    %    * The norm-distance between MATLAB's jet and Pgfplots's jet is 2.8e-2.
-    %    * The norm-distance between MATLAB's hot and Pgfplots's hot2 is 2.1e-2.
-    tol = 5.0e-2;
-
-    for map = pgfmaps
-        numColors = size(matlabColormap, 1);
-        mmap = pgfplots2matlabColormap(map{1}.points, map{1}.values, numColors);
-        alpha = norm(matlabColormap - mmap) / sqrt(numColors);
-        if alpha < tol
-            userInfo(m2t, 'Found %s to be a pretty good match for your color map (||diff||=%g).', ...
-                map{1}.name, alpha);
-            pgfplotsColormap = map{1}.name;
-            return
-        end
-    end
-
-    % Build a custom color map.
-    % Loop over the data, stop at each spot where the linear
-    % interpolation is interrupted, and set a color mark there.
-    m = size(matlabColormap, 1);
-    steps = [1, 2];
-    % A colormap with a single color is valid in MATLAB but an error in
-    % pgfplots. Repeating the color produces the desired effect in this
-    % case.
-    if m==1
-        colors=[matlabColormap(1,:);matlabColormap(1,:)];
-    else
-        colors = [matlabColormap(1,:); matlabColormap(2,:)];
-        f = linearFunction(steps, colors);
-        k = 3;
-        while k <= m
-            if norm(matlabColormap(k,:) - f(k)) > 1.0e-10
-                % Add the previous step to the color list
-                steps(end) = k-1;
-                colors(end,:) = matlabColormap(k-1,:);
-                steps = [steps, k];
-                colors = [colors; matlabColormap(k,:)];
-                f = linearFunction(steps(end-1:end), colors(end-1:end,:));
-            end
-            k = k+1;
-        end
-        steps(end) = m;
-        colors(end,:) = matlabColormap(m,:);
-    end
-
-    % Get it in Pgfplots-readable form.
-    unit = 'pt';
-    colSpecs = {};
-    for k = 1:length(steps)
-        x = steps(k)-1;
-        sprintf('rgb(%d%s)=(%g, %g, %g)', x, unit, colors(k));
-        colSpecs{k} = sprintf('rgb(%d%s)=(%g,%g,%g)', x, unit, colors(k,:));
-    end
-    pgfplotsColormap = sprintf('colormap={mymap}{[1%s] %s}', unit, join(m2t, colSpecs, '; '));
-end
-% ==============================================================================
-function fontStyle = getFontStyle(m2t, handle)
-    fontStyle = '';
-    if strcmpi(get(handle, 'FontWeight'),'Bold')
-        fontStyle = sprintf('%s\\bfseries',fontStyle);
-    end
-    if strcmpi(get(handle, 'FontAngle'), 'Italic')
-        fontStyle = sprintf('%s\\itshape',fontStyle);
-    end
-    if m2t.cmdOpts.Results.strictFontSize
-        fontSize  = get(handle,'FontSize');
-        fontUnits = matlab2texUnits(get(handle,'FontUnits'), 'pt');
-        fontStyle = sprintf('\\fontsize{%d%s}{1em}%s\\selectfont',fontSize,fontUnits,fontStyle);
-    else
-        % don't try to be smart and "translate" MATLAB font sizes to proper LaTeX
-        % ones: it cannot be done. LaTeX uses semantic sizes (e.g. \small)
-        % whose actual dimensions depend on the document style, context, ...
-    end
-
-    if ~isempty(fontStyle)
-        fontStyle = opts_add(opts_new, 'font', fontStyle);
-    else
-        fontStyle = opts_new();
-    end
-end
-% ==============================================================================
-function axisOptions = getColorbarOptions(m2t, handle)
-
-    % begin collecting axes options
-    axisOptions = opts_new();
-    cbarOptions = {};
-    cbarStyleOptions = opts_new();
-
-    % set position, ticks etc. of the colorbar
-    loc = get(handle, 'Location');
-
-    switch lower(loc) % case insensitive (MATLAB: CamelCase, Octave: lower case)
-        case 'north'
-            cbarOptions{end+1} = 'horizontal';
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'at',...
-                '{(0.5,0.97)}');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'anchor',...
-                'north');
-            cbarStyleOptions = opts_add(cbarStyleOptions,...
-                'xticklabel pos', 'lower');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'width',...
-                '0.97*\pgfkeysvalueof{/pgfplots/parent axis width}');
-        case 'south'
-            cbarOptions{end+1} = 'horizontal';
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'at',...
-                '{(0.5,0.03)}');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'anchor', ...
-                'south');
-            cbarStyleOptions = opts_add(cbarStyleOptions, ...
-                'xticklabel pos','upper');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'width',...
-                '0.97*\pgfkeysvalueof{/pgfplots/parent axis width}');
-        case 'east'
-            cbarOptions{end+1} = 'right';
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'at',...
-                '{(0.97,0.5)}');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'anchor', ...
-                'east');
-            cbarStyleOptions = opts_add(cbarStyleOptions, ...
-                'xticklabel pos','left');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'width',...
-                '0.97*\pgfkeysvalueof{/pgfplots/parent axis width}');
-        case 'west'
-            cbarOptions{end+1} = 'left';
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'at',...
-                '{(0.03,0.5)}');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'anchor',...
-                'west');
-            cbarStyleOptions = opts_add(cbarStyleOptions,...
-                'xticklabel pos', 'right');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'width',...
-                '0.97*\pgfkeysvalueof{/pgfplots/parent axis width}');
-        case 'eastoutside'
-            %cbarOptions{end+1} = 'right';
-        case 'westoutside'
-            cbarOptions{end+1} = 'left';
-        case 'northoutside'
-            % TODO move to top
-            cbarOptions{end+1} = 'horizontal';
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'at',...
-                '{(0.5,1.03)}');
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'anchor',...
-                'south');
-            cbarStyleOptions = opts_add(cbarStyleOptions,...
-                'xticklabel pos', 'upper');
-        case 'southoutside'
-
-            cbarOptions{end+1} = 'horizontal';
-        otherwise
-            error('matlab2tikz:getColorOptions:unknownLocation',...
-                'getColorbarOptions: Unknown ''Location'' %s.', loc)
-    end
-
-    % axis label and direction
-    if isHG2(m2t)
-        % VERSION: Starting from R2014b there is only one field `label`.
-        % The colorbar's position determines, if it should be a x- or y-label.
-
-        % label
-        % TODO: Move redundant interpreter and multiline code to a separate
-        % function. It is duplicated below in 'title' and in functions
-        % 'getAxisOptions' and 'drawTitleOfAxes'.
-        labelString = get(get(handle, 'Label'), 'String');
-        if ~isempty(labelString) % add only, if not empty
-            labelInterpreter = get(get(handle, 'Label'), 'Interpreter');
-            labelString = prettyPrint(m2t, labelString, labelInterpreter);
-            if length(labelString) > 1 % multiline
-                cbarStyleOptions = opts_add(cbarStyleOptions, 'label style', ...
-                    '{align=center}');
-            end
-            labelString = join(m2t, labelString, '\\[1ex]');
-
-            if ~isempty(cbarOptions) && strcmpi(cbarOptions{1}, 'horizontal')
-                labelOption = 'xlabel';
-            else
-                labelOption = 'ylabel';
-            end
-
-            cbarStyleOptions = opts_add(cbarStyleOptions, labelOption, ...
-                sprintf('{%s}', labelString));
-        end
-
-        % direction
-        dirString = get(handle, 'Direction');
-        if ~strcmpi(dirString, 'normal') % only if not 'normal'
-            if ~isempty(cbarOptions) && strcmpi(cbarOptions{1}, 'horizontal')
-                dirOption = 'x dir';
-            else
-                dirOption = 'y dir';
-            end
-            cbarStyleOptions = opts_add(cbarStyleOptions, dirOption, dirString);
-        end
-
-        % TODO HG2: colorbar ticks and colorbar tick labels
-
-    else
-        % VERSION: Up to MATLAB R2014a and OCTAVE
-        [m2t, xo] = getAxisOptions(m2t, handle, 'x');
-        [m2t, yo] = getAxisOptions(m2t, handle, 'y');
-        xyo = opts_merge(xo, yo);
-        xyo = opts_remove(xyo, 'xmin','xmax','xtick','ymin','ymax','ytick');
-
-        cbarStyleOptions = opts_merge(cbarStyleOptions, xyo);
-    end
-
-    % title
-    title = get(get(handle, 'Title'), 'String');
-    if ~isempty(title)
-        titleInterpreter = get(get(handle, 'Title'), 'Interpreter');
-        title = prettyPrint(m2t, title, titleInterpreter);
-        if length(title) > 1 % multiline
-            cbarStyleOptions = opts_add(cbarStyleOptions, 'title style', ...
-                    '{align=center}');
-        end
-        title = join(m2t, title, '\\[1ex]');
-        cbarStyleOptions = opts_add(cbarStyleOptions, 'title', ...
-            sprintf('{%s}', title));
-    end
-
-    if m2t.cmdOpts.Results.strict
-        % Sampled colors.
-        numColors = size(m2t.currentHandles.colormap, 1);
-        cbarOptions{end+1} = 'sampled';
-        cbarStyleOptions = opts_add(cbarStyleOptions, 'samples', ...
-            sprintf('%d', numColors+1));
-
-    end
-
-    % Merge them together in axisOptions.
-    if isempty(cbarOptions)
-        axisOptions = opts_add(axisOptions, 'colorbar', []);
-    else
-        if length(cbarOptions) > 1
-            userWarning(m2t, ...
-                'Pgfplots cannot deal with more than one colorbar option yet.');
-        end
-        axisOptions = opts_add(axisOptions, ['colorbar ', cbarOptions{1}]);
-    end
-
-    if ~isempty(cbarStyleOptions)
-        axisOptions = opts_add(axisOptions, ...
-            'colorbar style', ...
-            ['{' opts_print(m2t, cbarStyleOptions, ',') '}']);
-    end
-
-    % Append upper and lower limit of the colorbar.
-    % TODO Use caxis not only for color bars.
-    clim = caxis(get(handle, 'axes'));
-    axisOptions = opts_add(axisOptions, 'point meta min', sprintf(m2t.ff, clim(1)));
-    axisOptions = opts_add(axisOptions, 'point meta max', sprintf(m2t.ff, clim(2)));
-
-    % do _not_ handle colorbar's children
-end
-% ==============================================================================
-function [m2t, xcolor] = getColor(m2t, handle, color, mode)
-% Handles MATLAB colors and makes them available to TikZ.
-% This includes translation of the color value as well as explicit
-% definition of the color if it is not available in TikZ by default.
-%
-% The variable 'mode' essentially determines what format 'color' can
-% have. Possible values are (as strings) 'patch' and 'image'.
-
-% check if the color is straight given in rgb
-% -- notice that we need the extra NaN test with respect to the QUIRK
-%    below
-    if isreal(color) && numel(color)==3 && ~any(isnan(color))
-        % everything alright: rgb color here
-        [m2t, xcolor] = rgb2colorliteral(m2t, color);
-    else
-        switch lower(mode)
-            case 'patch'
-                [m2t, xcolor] = patchcolor2xcolor(m2t, color, handle);
-            case 'image'
-                [m2t, colorindex] = cdata2colorindex(m2t, color, handle);
-                m = size(colorindex, 1);
-                n = size(colorindex, 2);
-                xcolor = cell(m, n);
-                for i = 1:m
-                    for j = 1:n
-                        [m2t, xc] = rgb2colorliteral(m2t, m2t.currentHandles.colormap(colorindex(i,j), :));
-                        xcolor{i, j} = xc;
-                    end
-                end
-            otherwise
-                error(['matlab2tikz:getColor', ...
-                    'Argument ''mode'' has illegal value ''%s''.'], ...
-                    mode);
-        end
-    end
-end
-% ==============================================================================
-function [m2t, xcolor] = patchcolor2xcolor(m2t, color, patchhandle)
-% Transforms a color of the edge or the face of a patch to an xcolor literal.
-    if ~ischar(color) && ~isnumeric(color)
-        error('patchcolor2xcolor:illegalInput', ...
-            'Input argument ''color'' not a string or numeric.');
-    end
-    if isnumeric(color)
-        [m2t, xcolor] = rgb2colorliteral(m2t, color);
-    else
-        switch color
-            case 'flat'
-                cdata = getCDataWithFallbacks(patchhandle);
-
-                col1 = cdata(1,1);
-                if all(isnan(cdata) | abs(cdata-col1)<1.0e-10)
-                    [m2t, colorindex] = cdata2colorindex(m2t, col1, patchhandle);
-                    [m2t, xcolor] = rgb2colorliteral(m2t, m2t.currentHandles.colormap(colorindex, :));
-                else
-                    % Don't return anything meaningful and count on the caller
-                    % to make something of it.
-                    xcolor = [];
-                end
-
-            case 'auto'
-                color = get(patchhandle, 'Color');
-                [m2t, xcolor] = rgb2colorliteral(m2t, color);
-
-            case 'none'
-                error('matlab2tikz:anycolor2rgb:ColorModelNoneNotAllowed',...
-                    ['Color model ''none'' not allowed here. ',...
-                    'Make sure this case gets intercepted before.']);
-
-            otherwise
-                    error('matlab2tikz:anycolor2rgb:UnknownColorModel',...
-                    'Don''t know how to handle the color model ''%s''.',color);
-        end
-    end
-end
-% ==============================================================================
-function cdata = getCDataWithFallbacks(patchhandle)
-% Looks for CData at different places
-    cdata = getOrDefault(patchhandle, 'CData', []);
-
-    if isempty(cdata) || ~isnumeric(cdata)
-        child = get(patchhandle, 'Children');
-        cdata = get(child, 'CData');
-    end
-    if isempty(cdata) || ~isnumeric(cdata)
-        % R2014b+: CData is implicit by the ordering of the siblings
-        siblings = get(get(patchhandle, 'Parent'), 'Children');
-        cdata = find(siblings(end:-1:1)==patchhandle);
-    end
-end
-% ==============================================================================
-function [m2t, colorindex] = cdata2colorindex(m2t, cdata, imagehandle)
-% Transforms a color in CData format to an index in the color map.
-% Only does something if CDataMapping is 'scaled', really.
-
-    if ~isnumeric(cdata) && ~islogical(cdata)
-        error('matlab2tikz:cdata2colorindex:unknownCDataType',...
-            'Don''t know how to handle CData ''%s''.',cdata);
-    end
-
-    axeshandle = m2t.currentHandles.gca;
-
-    % -----------------------------------------------------------------------
-    % For the following, see, for example, the MATLAB help page for 'image',
-    % section 'Image CDataMapping'.
-    switch get(imagehandle, 'CDataMapping')
-        case 'scaled'
-            % need to scale within clim
-            % see MATLAB's manual page for caxis for details
-            clim = get(axeshandle, 'clim');
-            m = size(m2t.currentHandles.colormap, 1);
-            colorindex = zeros(size(cdata));
-            idx1 = cdata <= clim(1);
-            idx2 = cdata >= clim(2);
-            idx3 = ~idx1 & ~idx2;
-            colorindex(idx1) = 1;
-            colorindex(idx2) = m;
-            colorindex(idx3) = fix((cdata(idx3)-clim(1)) / (clim(2)-clim(1)) *m) ...
-                + 1;
-        case 'direct'
-            % direct index
-            colorindex = cdata;
-
-        otherwise
-            error('matlab2tikz:anycolor2rgb:unknownCDataMapping',...
-                'Unknown CDataMapping ''%s''.',cdatamapping);
-    end
-end
-% ==============================================================================
-function [m2t, key, lOpts] = getLegendOpts(m2t, handle)
-% Need to check that there's nothing inside visible before we
-% abandon this legend -- an invisible property of the parent just
-% means the legend has no box.
-    children = get(handle, 'Children');
-    if ~isVisible(handle) && ~any(isVisible(children))
-        return
-    end
-
-    lStyle = opts_new();
-
-    lStyle = legendPosition(m2t, handle, lStyle);
-    lStyle = legendOrientation(m2t, handle, lStyle);
-    lStyle = legendEntryAlignment(m2t, handle, lStyle);
-
-    % If the plot has 'legend boxoff', we have the 'not visible'
-    % property, so turn off line and background fill.
-    if (~isVisible(handle))
-        lStyle = opts_add(lStyle, 'fill', 'none');
-        lStyle = opts_add(lStyle, 'draw', 'none');
-    else
-        % handle colors
-        [edgeColor, isDfltEdge] = getAndCheckDefault('Legend', handle, ...
-                                                     'EdgeColor', [1 1 1]);
-        if isNone(edgeColor)
-            lStyle = opts_add(lStyle, 'draw', 'none');
-
-        elseif ~isDfltEdge
-            [m2t, col] = getColor(m2t, handle, edgeColor, 'patch');
-            lStyle = opts_add(lStyle, 'draw', col);
-        end
-
-        [fillColor, isDfltFill] = getAndCheckDefault('Legend', handle, ...
-                                                     'Color', [1 1 1]);
-        if isNone(fillColor)
-            lStyle = opts_add(lStyle, 'fill', 'none');
-
-        elseif ~isDfltFill
-            [m2t, col] = getColor(m2t, handle, fillColor, 'patch');
-            lStyle = opts_add(lStyle, 'fill', col);
-        end
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    key = 'legend style';
-    lOpts = opts_print(m2t, lStyle, ',');
-end
-% ==============================================================================
-function [lStyle] = legendOrientation(m2t, handle, lStyle)
-% handle legend orientation
-    ori = get(handle, 'Orientation');
-    switch lower(ori)
-        case 'horizontal'
-            numLegendEntries = sprintf('%d',length(get(handle, 'String')));
-            lStyle = opts_add(lStyle, 'legend columns', numLegendEntries);
-
-        case 'vertical'
-            % Use default.
-        otherwise
-            userWarning(m2t, [' Unknown legend orientation ''',ori,'''' ...
-                '. Choosing default (vertical).']);
-    end
-end
-% ==============================================================================
-function [lStyle] = legendPosition(m2t, handle, lStyle)
-% handle legend location
-% #COMPLEX: just a big switch-case
-    loc  = get(handle, 'Location');
-    dist = 0.03;  % distance to to axes in normalized coordinates
-    % MATLAB(R)'s keywords are camel cased (e.g., 'NorthOutside'), in Octave
-    % small cased ('northoutside'). Hence, use lower() for uniformity.
-    switch lower(loc)
-        case 'northeast'
-            return % don't do anything in this (default) case
-        case 'northwest'
-            position = [dist, 1-dist];
-            anchor   = 'north west';
-        case 'southwest'
-            position = [dist, dist];
-            anchor   = 'south west';
-        case 'southeast'
-            position = [1-dist, dist];
-            anchor   = 'south east';
-        case 'north'
-            position = [0.5, 1-dist];
-            anchor   = 'north';
-        case 'east'
-            position = [1-dist, 0.5];
-            anchor   = 'east';
-        case 'south'
-            position = [0.5, dist];
-            anchor   = 'south';
-        case 'west'
-            position = [dist, 0.5];
-            anchor   = 'west';
-        case 'northoutside'
-            position = [0.5, 1+dist];
-            anchor = 'south';
-        case 'southoutside'
-            position = [0.5, -dist];
-            anchor = 'north';
-        case 'eastoutside'
-            position = [1+dist, 0.5];
-            anchor = 'west';
-        case 'westoutside'
-            position = [-dist, 0.5];
-            anchor = 'east';
-        case 'northeastoutside'
-            position = [1+dist, 1];
-            anchor = 'north west';
-        case 'northwestoutside'
-            position = [-dist, 1];
-            anchor = 'north east';
-        case 'southeastoutside'
-            position = [1+dist, 0];
-            anchor = 'south west';
-        case 'southwestoutside'
-            position = [-dist, 0];
-            anchor = 'south east';
-        case 'none'
-            legendPos = get(handle, 'Position');
-            unit = get(handle, 'Units');
-            if isequal(unit, 'normalized')
-                position = legendPos(1:2);
-            else
-                % Calculate where the legend is located w.r.t. the axes.
-                axesPos = get(m2t.currentHandles.gca, 'Position');
-                axesUnit = get(m2t.currentHandles.gca, 'Units');
-                % Convert to legend unit
-                axesPos = convertUnits(axesPos, axesUnit, unit);
-                % By default, the axes position is given w.r.t. to the figure,
-                % and so is the legend.
-                position = (legendPos(1:2)-axesPos(1:2)) ./ axesPos(3:4);
-            end
-            anchor = 'south west';
-        case {'best','bestoutside'}
-            % TODO: Implement these.
-            % The position could be determined by means of 'Position' and/or
-            % 'OuterPosition' of the legend handle; in fact, this could be made
-            % a general principle for all legend placements.
-            userWarning(m2t, [sprintf(' Option ''%s'' not yet implemented.',loc),         ...
-                ' Choosing default.']);
-            return % use defaults
-
-        otherwise
-            userWarning(m2t, [' Unknown legend location ''',loc,''''           ...
-                '. Choosing default.']);
-            return % use defaults
-    end
-
-    % set legend position
-    %TODO: shouldn't this include units?
-    lStyle = opts_add(lStyle, 'at',  sprintf('{(%s,%s)}', ...
-                        formatDim(position(1)), formatDim(position(2))));
-    lStyle = opts_add(lStyle, 'anchor', anchor);
-
-end
-% ==============================================================================
-function [lStyle] = legendEntryAlignment(m2t, handle, lStyle)
-% determines the text and picture alignment inside a legend
-    textalign = '';
-    pictalign = '';
-    switch m2t.env
-        case 'Octave'
-            % Octave allows to change the alignment of legend text and
-            % pictograms using legend('left') and legend('right')
-            textpos = get(handle, 'textposition');
-            switch lower(textpos)
-                case 'left'
-                    % pictogram right of flush right text
-                    textalign = 'left';
-                    pictalign = 'right';
-                case 'right'
-                    % pictogram left of flush left text (default)
-                    textalign = 'right';
-                    pictalign = 'left';
-                otherwise
-                    userWarning(m2t, ...
-                        ['Unknown legend text position ''',...
-                        textpos, '''. Choosing default.']);
-            end
-        case 'MATLAB'
-            % does not specify text/pictogram alignment in legends
-        otherwise
-            errorUnknownEnvironment();
-    end
-
-    % set alignment of legend text and pictograms, if available
-    if ~isempty(textalign) && ~isempty(pictalign)
-        lStyle = opts_add(lStyle, 'legend cell align', textalign);
-        lStyle = opts_add(lStyle, 'align', textalign);
-        lStyle = opts_add(lStyle, 'legend plot pos', pictalign);
-    else
-        % Make sure the entries are flush left (default MATLAB behavior).
-        % This is also import for multiline legend entries: Without alignment
-        % specification, the TeX document won't compile.
-        % 'legend plot pos' is not set explicitly, since 'left' is default.
-        lStyle = opts_add(lStyle, 'legend cell align', 'left');
-        lStyle = opts_add(lStyle, 'align', 'left');
-    end
-end
-% ==============================================================================
-function [pgfTicks, pgfTickLabels, hasMinorTicks, tickDirection] = getAxisTicks(m2t, handle, axis)
-% Return axis tick marks Pgfplots style. Nice: Tick lengths and such
-% details are taken care of by Pgfplots.
-    if ~strcmpi(axis,'x') && ~strcmpi(axis,'y') && ~strcmpi(axis,'z')
-        error('matlab2tikz:illegalAxisSpecifier',...
-            'Illegal axis specifier ''%s''.', axis);
-    end
-
-    keywordTickMode = [upper(axis), 'TickMode'];
-    tickMode = get(handle, keywordTickMode);
-    keywordTick = [upper(axis), 'Tick'];
-    ticks = get(handle, keywordTick);
-    if isempty(ticks)
-        % If no ticks are present, we need to enforce this in any case.
-        pgfTicks = '\empty';
-    else
-        if strcmp(tickMode, 'auto') && ~m2t.cmdOpts.Results.strict
-            % If the ticks are set automatically, and strict conversion is
-            % not required, then let Pgfplots take care of the ticks.
-            % In most cases, this looks a lot better anyway.
-            pgfTicks = [];
-        else % strcmp(tickMode,'manual') || m2t.cmdOpts.Results.strict
-            pgfTicks = join(m2t, cellstr(num2str(ticks(:))), ', ');
-        end
-    end
-
-    keywordTickLabelMode = [upper(axis), 'TickLabelMode'];
-    tickLabelMode = get(handle, keywordTickLabelMode);
-    keywordTickLabel = [upper(axis), 'TickLabel'];
-    tickLabels = cellstr(get(handle, keywordTickLabel));
-    if strcmp(tickLabelMode, 'auto') && ~m2t.cmdOpts.Results.strict
-        pgfTickLabels = [];
-    else % strcmp(tickLabelMode,'manual') || m2t.cmdOpts.Results.strict
-        keywordScale = [upper(axis), 'Scale'];
-        isAxisLog = strcmp(getOrDefault(handle,keywordScale, 'lin'), 'log');
-        [pgfTicks, pgfTickLabels] = ...
-            matlabTicks2pgfplotsTicks(m2t, ticks, tickLabels, isAxisLog, tickLabelMode);
-    end
-
-    keywordMinorTick = [upper(axis), 'MinorTick'];
-    hasMinorTicks = strcmp(getOrDefault(handle, keywordMinorTick, 'off'), 'on');
-    tickDirection = getOrDefault(handle, 'TickDir', 'in');
-end
-% ==============================================================================
-function [pTicks, pTickLabels] = ...
-    matlabTicks2pgfplotsTicks(m2t, ticks, tickLabels, isLogAxis, tickLabelMode)
-% Converts MATLAB style ticks and tick labels to pgfplots style (if needed)
-    if isempty(ticks)
-        pTicks      = '\empty';
-        pTickLabels = [];
-        return
-    end
-
-    % set ticks + labels
-    pTicks = join(m2t, num2cell(ticks), ',');
-
-    % if there's no specific labels, return empty
-    if isempty(tickLabels) || (length(tickLabels)==1 && isempty(tickLabels{1}))
-        pTickLabels = '\empty';
-        return
-    end
-
-    % sometimes tickLabels are cells, sometimes plain arrays
-    % -- unify this to cells
-    if ischar(tickLabels)
-        tickLabels = strtrim(mat2cell(tickLabels,                  ...
-            ones(size(tickLabels,1), 1), ...
-            size(tickLabels, 2)          ...
-            ) ...
-            );
-    end
-
-    % What MATLAB does when there the number of ticks and tick labels do not
-    % coincide is somewhat unclear. To fix bug
-    %     https://github.com/matlab2tikz/matlab2tikz/issues/161,
-    % cut off the first entries in `ticks`.
-    m = length(ticks);
-    n = length(tickLabels);
-    if n < m
-        ticks = ticks(m-n+1:end);
-    end
-
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-    % Check if tickLabels are really necessary (and not already covered by
-    % the tick values themselves).
-    plotLabelsNecessary = false;
-
-    k = find(ticks ~= 0.0, 1); % get an index with non-zero tick value
-    if isLogAxis || isempty(k) % only a 0-tick
-        scalingFactor = 1;
-    else
-        % When plotting axis, MATLAB might scale the axes by a factor of ten,
-        % say 10^n, and plot a 'x 10^k' next to the respective axis. This is
-        % common practice when the tick marks are really large or small
-        % numbers.
-        % Unfortunately, MATLAB doesn't contain the information about the
-        % scaling anywhere in the plot, and at the same time the {x,y}TickLabels
-        % are given as t*10^k, thus no longer corresponding to the actual
-        % value t.
-        % Try to find the scaling factor here. This is then used to check
-        % whether or not explicit {x,y}TickLabels are really necessary.
-        s = str2double(tickLabels{k});
-        scalingFactor = ticks(k)/s;
-        % check if the factor is indeed a power of 10
-        S = log10(scalingFactor);
-        if abs(round(S)-S) > m2t.tol
-            scalingFactor = 1.0;
-        end
-    end
-
-    for k = 1:min(length(ticks),length(tickLabels))
-        % Don't use str2num here as then, literal strings as 'pi' get
-        % legally transformed into 3.14... and the need for an explicit
-        % label will not be recognized. str2double returns a NaN for 'pi'.
-        if isLogAxis
-            s = 10^(str2double(tickLabels{k}));
-        else
-            s = str2double(tickLabels{k});
-        end
-        if isnan(s)  ||  abs(ticks(k)-s*scalingFactor) > m2t.tol
-            plotLabelsNecessary = true;
-            break;
-        end
-    end
-    % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-    if plotLabelsNecessary
-        % if the axis is logscaled, MATLAB does not store the labels,
-        % but the exponents to 10
-        if isLogAxis
-            for k = 1:length(tickLabels)
-                if isnumeric(tickLabels{k})
-                    str = num2str(tickLabels{k});
-                else
-                    str = tickLabels{k};
-                end
-                if strcmpi(tickLabelMode,'auto')
-                    tickLabels{k} = sprintf('$10^{%s}$', str);
-                end
-            end
-        end
-        tickLabels = cellfun(@(l)(sprintf('{%s}',l)), tickLabels, ...
-            'UniformOutput', false);
-        pTickLabels = join(m2t, tickLabels, ',');
-    else
-        pTickLabels = [];
-    end
-end
-% ==============================================================================
-function tikzLineStyle = translateLineStyle(matlabLineStyle)
-    if(~ischar(matlabLineStyle))
-        error('matlab2tikz:translateLineStyle:NotAString',...
-            'Variable matlabLineStyle is not a string.');
-    end
-
-    switch (matlabLineStyle)
-        case 'none'
-            tikzLineStyle = '';
-        case '-'
-            tikzLineStyle = 'solid';
-        case '--'
-            tikzLineStyle = 'dashed';
-        case ':'
-            tikzLineStyle = 'dotted';
-        case '-.'
-            tikzLineStyle = 'dash pattern=on 1pt off 3pt on 3pt off 3pt';
-        otherwise
-            error('matlab2tikz:translateLineStyle:UnknownLineStyle',...
-                'Unknown matlabLineStyle ''%s''.', matlabLineStyle);
-    end
-end
-% ==============================================================================
-function [m2t, table] = makeTable(m2t, varargin)
-%   [m2t,table] = makeTable(m2t, 'name1', data1, 'name2', data2, ...)
-%   [m2t,table] = makeTable(m2t, {'name1','name2',...}, {data1, data2, ...})
-%   [m2t,table] = makeTable(m2t, {'name1','name2',...}, [data1(:), data2(:), ...])
-%
-%  When all the names are empty, no header is printed
-    [variables, data] = parseInputsForTable_(varargin{:});
-
-    COLSEP = sprintf('\t');
-    if m2t.cmdOpts.Results.externalData
-        ROWSEP = sprintf('\n');
-    else
-        ROWSEP = sprintf('\\\\\n');
-    end
-
-    nColumns  = numel(data);
-    nRows     = cellfun(@numel, data);
-    if ~all(nRows==nRows(1))
-        warning('matlab2tikz:makeTableDifferentNumberOfRows',...
-            'Different data lengths [%s]. Only including the first %d ones.',...
-            num2str(nRows), min(nRows));
-    end
-    nRows = min(nRows);
-
-    FORMAT = repmat({m2t.ff}, 1, nColumns);
-    FORMAT(cellfun(@isCellOrChar, data)) = {'%s'};
-    FORMAT = join(m2t, FORMAT, COLSEP);
-    if all(cellfun(@isempty, variables))
-        header = {};
-    else
-        header = {join(m2t, variables, COLSEP)};
-    end
-
-    table = cell(nRows,1);
-    for iRow = 1:nRows
-        thisData = cellfun(@(x)(x(iRow)), data, 'UniformOutput', false);
-        for jCol = 1:nColumns
-            if iscell(thisData{jCol}) %TODO: probably this can be done more clearly
-                thisData{jCol} = thisData{jCol}{1};
-            end
-        end
-        table{iRow} = sprintf(FORMAT, thisData{:});
-    end
-    table = lower(table); % convert NaN and Inf to lower case for TikZ
-    table = [join(m2t, [header;table], ROWSEP) ROWSEP];
-
-    if m2t.cmdOpts.Results.externalData
-        % output data to external file
-        m2t.dataFileNo = m2t.dataFileNo + 1;
-        [filename, latexFilename] = externalFilename(m2t, m2t.dataFileNo, '.tsv');
-
-        % write the data table to an external file
-        fid = fileOpenForWrite(m2t, filename);
-        fprintf(fid, '%s', table);
-        fclose(fid);
-
-        % put the filename in the TikZ output
-        table = latexFilename;
-    else
-        % output data with "%newline" prepended for formatting consistency
-        % do NOT prepend another newline in the output: LaTeX will crash.
-        table = sprintf('%%\n%s', table);
-    end
-end
-% ==============================================================================
-function [variables, data] = parseInputsForTable_(varargin)
-% parse input arguments for |makeTable|
-    if numel(varargin) == 2 % cell syntax
-        variables = varargin{1};
-        data      = varargin{2};
-        if ischar(variables)
-            % one variable, one data vector -> (cell, cell)
-            variables = {variables};
-            data      = {data};
-        elseif iscellstr(variables) && ~iscell(data)
-            % multiple variables, one data matrix -> (cell, cell) by column
-            data = num2cell(data, 1);
-        end
-    else % key-value syntax
-        variables = varargin(1:2:end-1);
-        data      = varargin(2:2:end);
-    end
-end
-% ==============================================================================
-function [path, texpath] = externalFilename(m2t, counter, extension)
-% generates a file name for an external data file and its relative TeX path
-
-    [dummy, name] = fileparts(m2t.tikzFileName); %#ok
-    baseFilename  = [name '-' num2str(counter) extension];
-    path    = fullfile(m2t.dataPath, baseFilename);
-    texpath = TeXpath(fullfile(m2t.relativeDataPath, baseFilename));
-end
-% ==============================================================================
-function [names,definitions] = dealColorDefinitions(mergedColorDefs)
-    if isempty(mergedColorDefs)
-        mergedColorDefs = {};
-    end
-    [names,definitions] = cellfun(@(x)(deal(x{:})),  mergedColorDefs, ...
-        'UniformOutput', false);
-end
-% ==============================================================================
-function [m2t, colorLiteral] = rgb2colorliteral(m2t, rgb)
-% Translates an rgb value to an xcolor literal
-%
-% Possible outputs:
-%  - xcolor literal color, e.g. 'blue'
-%  - mixture of 2 previously defined colors, e.g. 'red!70!green'
-%  - a newly defined color, e.g. 'mycolor10'
-
-% Take a look at xcolor.sty for the color definitions.
-% In xcolor.sty some colors are defined in CMYK space and approximated
-% crudely for RGB color space. So it is better to redefine those colors
-% instead of using xcolor's:
-%    'cyan' , 'magenta', 'yellow', 'olive'
-%    [0,1,1], [1,0,1]  , [1,1,0] , [0.5,0.5,0]
-
-    xcolColorNames = {'white', 'black', 'red', 'green', 'blue', ...
-                      'brown', 'lime', 'orange', 'pink', ...
-                      'purple', 'teal', 'violet', ...
-                      'darkgray', 'gray', 'lightgray'};
-    xcolColorSpecs = {[1,1,1], [0,0,0], [1,0,0], [0,1,0], [0,0,1], ...
-                      [0.75,0.5,0.25], [0.75,1,0], [1,0.5,0], [1,0.75,0.75], ...
-                      [0.75,0,0.25], [0,0.5,0.5], [0.5,0,0.5], ...
-                      [0.25,0.25,0.25], [0.5,0.5,0.5], [0.75,0.75,0.75]};
-
-    colorNames = [xcolColorNames, m2t.extraRgbColorNames];
-    colorSpecs = [xcolColorSpecs, m2t.extraRgbColorSpecs];
-
-    %% check if rgb is a predefined color
-    for kColor = 1:length(colorSpecs)
-        Ck = colorSpecs{kColor}(:);
-        if max(abs(Ck - rgb(:))) < m2t.colorPrecision
-            colorLiteral = colorNames{kColor};
-            return % exact color was predefined
-        end
-    end
-
-    %% check if the color is a linear combination of two already defined colors
-    for iColor = 1:length(colorSpecs)
-        for jColor = iColor+1:length(colorSpecs)
-            Ci = colorSpecs{iColor}(:);
-            Cj = colorSpecs{jColor}(:);
-
-            % solve color mixing equation `Ck = p * Ci + (1-p) * Cj` for p
-            p  = (Ci-Cj) \ (rgb(:)-Cj);
-            p  = round(100*p)/100;  % round to a percentage
-            Ck = p * Ci + (1-p)*Cj; % approximated mixed color
-
-            if p <= 1 && p >= 0 && max(abs(Ck(:) - rgb(:))) < m2t.colorPrecision
-                colorLiteral = sprintf('%s!%d!%s', colorNames{iColor}, round(p*100), ...
-                    colorNames{jColor});
-                return % linear combination found
-            end
-        end
-    end
-
-    %% Define colors that are not a linear combination of two known colors
-    colorLiteral = sprintf('mycolor%d', length(m2t.extraRgbColorNames)+1);
-    m2t.extraRgbColorNames{end+1} = colorLiteral;
-    m2t.extraRgbColorSpecs{end+1} = rgb;
-end
-% ==============================================================================
-function newstr = join(m2t, cellstr, delimiter)
-% This function joins a cell of strings to a single string (with a
-% given delimiter in between two strings, if desired).
-%
-% Example of usage:
-%              join(m2t, cellstr, ',')
-    if isempty(cellstr)
-        newstr = '';
-        return
-    end
-
-    % convert all values to strings first
-    nElem = numel(cellstr);
-    for k = 1:nElem
-        if isnumeric(cellstr{k})
-            cellstr{k} = sprintf(m2t.ff, cellstr{k});
-        elseif iscell(cellstr{k})
-            cellstr{k} = join(m2t, cellstr{k}, delimiter);
-            % this will fail for heavily nested cells
-        elseif ~ischar(cellstr{k})
-            error('matlab2tikz:join:NotCellstrOrNumeric',...
-                'Expected cellstr or numeric.');
-        end
-    end
-
-    % inspired by strjoin of recent versions of MATLAB
-    newstr = cell(2,nElem);
-    newstr(1,:)         = reshape(cellstr, 1, nElem);
-    newstr(2,1:nElem-1) = {delimiter}; % put delimiters in-between the elements
-    newstr = [newstr{:}];
-end
-% ==============================================================================
-function [width, height, unit] = getNaturalFigureDimension(m2t)
-    % Returns the size of figure (in inch)
-    % To stay compatible with getNaturalAxesDimensions, the unit 'in' is
-    % also returned.
-
-    % Get current figure size
-    figuresize = get(m2t.currentHandles.gcf, 'Position');
-    figuresize = figuresize([3 4]);
-    figureunit = get(m2t.currentHandles.gcf, 'Units');
-
-    % Convert Figure Size
-    unit = 'in';
-    figuresize = convertUnits(figuresize, figureunit, unit);
-
-    % Split size into width and height
-    width  = figuresize(1);
-    height = figuresize(2);
-
-end
-% ==============================================================================
-function dimension = getFigureDimensions(m2t, widthString, heightString)
-% Returns the physical dimension of the figure.
-
-    [width, height, unit] = getNaturalFigureDimension(m2t);
-
-    % get the natural width-height ration of the plot
-    axesWidthHeightRatio = width / height;
-    % check matlab2tikz arguments
-    if ~isempty(widthString)
-        width = extractValueUnit(widthString);
-    end
-    if ~isempty(heightString)
-        height = extractValueUnit(heightString);
-    end
-
-    % prepare the output
-    if ~isempty(widthString) && ~isempty(heightString)
-        dimension.x.unit  = width.unit;
-        dimension.x.value = width.value;
-        dimension.y.unit  = height.unit;
-        dimension.y.value = height.value;
-    elseif ~isempty(widthString)
-        dimension.x.unit  = width.unit;
-        dimension.x.value = width.value;
-        dimension.y.unit  = width.unit;
-        dimension.y.value = width.value / axesWidthHeightRatio;
-    elseif ~isempty(heightString)
-        dimension.y.unit  = height.unit;
-        dimension.y.value = height.value;
-        dimension.x.unit  = height.unit;
-        dimension.x.value = height.value * axesWidthHeightRatio;
-    else % neither width nor height given
-        dimension.x.unit  = unit;
-        dimension.x.value = width;
-        dimension.y.unit  = unit;
-        dimension.y.value = height;
-    end
-end
-% ==============================================================================
-function position = getAxesPosition(m2t, handle, widthString, heightString, axesBoundingBox)
-% Returns the physical position of the axes. This includes - in difference
-% to the Dimension - also an offset to shift the axes inside the figure
-% An optional bounding box can be used to omit empty borders.
-
-    % Deal with optional parameter
-    if nargin < 4
-        axesBoundingBox = [0 0 1 1];
-    end
-
-    % First get the whole figures size
-    figDim = getFigureDimensions(m2t, widthString, heightString);
-
-    % Get the relative position of the axis
-    relPos = getRelativeAxesPosition(m2t, handle, axesBoundingBox);
-
-    position.x.value = relPos(1) * figDim.x.value;
-    position.x.unit  = figDim.x.unit;
-    position.y.value = relPos(2) * figDim.y.value;
-    position.y.unit  = figDim.y.unit;
-    position.w.value = relPos(3) * figDim.x.value;
-    position.w.unit  = figDim.x.unit;
-    position.h.value = relPos(4) * figDim.y.value;
-    position.h.unit  = figDim.y.unit;
-end
-% ==============================================================================
-function [position] = getRelativeAxesPosition(m2t, axesHandles, axesBoundingBox)
-% Returns the relative position of axes within the figure.
-% Position is an (n,4) matrix with [minX, minY, width, height] for each
-% handle. All these values are relative to the figure size, which means
-% that [0, 0, 1, 1] covers the whole figure.
-% It is possible to add a second parameter with the relative coordinates of
-% a bounding box around all axes of the figure (see getRelevantAxes()). In
-% this case, relative positions are rescaled so that the bounding box is
-% [0, 0, 1, 1]
-
-    % Get Figure Dimension
-    [figWidth, figHeight, figUnits] = getNaturalFigureDimension(m2t);
-
-    % Initialize position
-    position = zeros(numel(axesHandles), 4);
-    % Iterate over all handles
-    for i = 1:numel(axesHandles)
-        axesHandle = axesHandles(i);
-        axesPos = get(axesHandle, 'Position');
-        axesUnits = get(axesHandle, 'Units');
-        if isequal(lower(axesUnits), 'normalized')
-            % Position is already relative
-            position(i,:) = axesPos;
-        else
-            % Convert figure size into axes units
-            figureSize = convertUnits([figWidth, figHeight], figUnits, axesUnits);
-            % Figure size into axes units to get the relative size
-            position(i,:) = axesPos ./ [figureSize, figureSize];
-
-        end
-
-        % Change size if DataAspectRatioMode is manual
-        if isequal(lower(get(axesHandle,'DataAspectRatioMode')),'manual')
-            % get limits
-            xLim = get(axesHandle, 'XLim');
-            yLim = get(axesHandle, 'YLim');
-            % Get Aspect Ratio between width and height
-            aspectRatio = get(axesHandle,'DataAspectRatio');
-            % And Adjust it to the figure dimensions
-            aspectRatio = aspectRatio(1) * figWidth * (yLim(2) - yLim(1)) ...
-                / (aspectRatio(2) * figHeight * (xLim(2)-xLim(1)));
-            % Recompute height
-            newHeight = position(i,3) * aspectRatio;
-            % shrink width if newHeight is too large
-            if newHeight > position(i,4)
-                % Recompute width
-                newWidth = position(i,4) / aspectRatio;
-                % Center Axis
-                offset = (position(i,3) - newWidth) / 2;
-                position(i,1) = position(i,1) + offset;
-                % Store new width
-                position(i,3) = newWidth;
-            else
-                % Center Axis
-                offset = (position(i,4) - newHeight) / 2;
-                position(i,2) = position(i,2) + offset;
-                % Store new height
-                position(i,4) = newHeight;
-            end
-        end
-    end
-
-    %% Rescale if axesBoundingBox is given
-    if exist('axesBoundingBox','var')
-        % shift position so that [0, 0] is the lower left corner of the
-        % bounding box
-        position(:,1) = position(:,1) - axesBoundingBox(1);
-        position(:,2) = position(:,2) - axesBoundingBox(2);
-        % Recale
-        position(:,[1 3]) = position(:,[1 3]) / max(axesBoundingBox([3 4]));
-        position(:,[2 4]) = position(:,[2 4]) / max(axesBoundingBox([3 4]));
-    end
-end
-% ==============================================================================
-function texUnits = matlab2texUnits(matlabUnits, fallbackValue)
-    switch matlabUnits
-        case 'pixels'
-            texUnits = 'px'; % only in pdfTex/LuaTeX
-        case 'centimeters'
-            texUnits = 'cm';
-        case 'characters'
-            texUnits = 'em';
-        case 'points'
-            texUnits = 'pt';
-        case 'inches'
-            texUnits = 'in';
-        otherwise
-            texUnits = fallbackValue;
-    end
-end
-% ==============================================================================
-function dstValue = convertUnits(srcValue, srcUnit, dstUnit)
-% Converts values between different units.
-%   srcValue stores a length (or vector of lengths) in srcUnit.
-% The resulting dstValue is the converted length into dstUnit.
-%
-% Currently supported units are: in, cm, px, pt
-
-    % Use tex units, if possible (to make things simple)
-    srcUnit = matlab2texUnits(lower(srcUnit),lower(srcUnit));
-    dstUnit = matlab2texUnits(lower(dstUnit),lower(dstUnit));
-
-    if isequal(srcUnit, dstUnit)
-        dstValue = srcValue;
-        return % conversion to the same unit => factor = 1
-    end
-
-    units  = {srcUnit, dstUnit};
-    factor = ones(1,2);
-    for ii = 1:numel(factor) % Same code for srcUnit and dstUnit
-        % Use inches as intermediate unit
-        % Compute the factor to convert an inch into another unit
-        switch units{ii}
-            case 'cm'
-               factor(ii) = 2.54;
-            case 'px'
-               factor(ii) = get(0, 'ScreenPixelsPerInch');
-            case 'in'
-                factor(ii) = 1;
-            case 'pt'
-                factor(ii) = 72;
-            otherwise
-                warning('MATLAB2TIKZ:UnknownPhysicalUnit',...
-                'Can not convert unit ''%s''. Using conversion factor 1.', units{ii});
-        end
-    end
-
-    dstValue = srcValue * factor(2) / factor(1);
-end
-% ==============================================================================
-function out = extractValueUnit(str)
-% Decompose m2t.cmdOpts.Results.width into value and unit.
-
-    % Regular expression to match '4.12cm', '\figurewidth', ...
-    fp_regex = '[-+]?\d*\.?\d*(?:e[-+]?\d+)?';
-    pattern = strcat('(', fp_regex, ')?', '(\\?[a-z]+)');
-
-    [dummy,dummy,dummy,dummy,t,dummy] = regexp(str, pattern, 'match'); %#ok
-
-    if length(t)~=1
-        error('getAxesDimensions:illegalLength', ...
-            'The width string ''%s'' could not be decomposed into value-unit pair.', str);
-    end
-
-    if length(t{1}) == 1
-        out.value = 1.0; % such as in '1.0\figurewidth'
-        out.unit  = strtrim(t{1}{1});
-    elseif length(t{1}) == 2 && isempty(t{1}{1})
-        % MATLAB(R) does this:
-        % length(t{1})==2 always, but the first field may be empty.
-        out.value = 1.0;
-        out.unit  = strtrim(t{1}{2});
-    elseif length(t{1}) == 2
-        out.value = str2double(t{1}{1});
-        out.unit  = strtrim(t{1}{2});
-    else
-        error('getAxesDimensions:illegalLength', ...
-            'The width string ''%s'' could not be decomposed into value-unit pair.', str);
-    end
-end
-% ==============================================================================
-function str = escapeCharacters(str)
-% Replaces "%" and "\" with respectively "%%" and "\\"
-    str = strrep(str, '%' , '%%');
-    str = strrep(str, '\' , '\\');
-end
-% ==============================================================================
-function bool = isNone(value)
-% Checks whether a value is 'none'
-    bool = strcmpi(value, 'none');
-end
-% ==============================================================================
-function val = getOrDefault(handle, key, default)
-% gets the value or returns the default value if no such property exists
-    if all(isprop(handle, key))
-        val = get(handle, key);
-    else
-        val = default;
-    end
-end
-% ==============================================================================
-function val = getFactoryOrDefault(type, key, fallback)
-% get factory default value for a certain type of HG object
-% this CANNOT be done using |getOrDefault| as |isprop| doesn't work for
-% factory/default settings. Hence, we use a more expensive try-catch instead.
-    try
-        groot = 0;
-        val = get(groot, ['Factory' type key]);
-    catch
-        val = fallback;
-    end
-end
-% ==============================================================================
-function [val, isDefault] = getAndCheckDefault(type, handle, key, default)
-% gets the value from a handle of certain type and check the default values
-    default   = getFactoryOrDefault(type, key, default);
-    val       = getOrDefault(handle, key, default);
-    isDefault = isequal(val, default);
-end
-% ==============================================================================
-function [m2t, opts] = addIfNotDefault(m2t, type, handle, key, default, pgfKey, opts)
-% sets an option in the options array named `pgfKey` if the MATLAB option is
-% not a default value
-    [value, isDefault] = getAndCheckDefault(type, handle, key, default);
-    if ~isDefault || m2t.cmdOpts.Results.strict
-        opts = opts_add(opts, pgfKey, value);
-    end
-end
-% ==============================================================================
-function out = isVisible(handles)
-% Determines whether an object is actually visible or not.
-    out = strcmp(get(handles,'Visible'), 'on');
-    % There's another handle property, 'HandleVisibility', which may or may not
-    % determine the visibility of the object. Empirically, it seems to be 'off'
-    % whenever we're dealing with an object that's not user-created, such as
-    % automatic axis ticks, baselines in bar plots, axis lines for polar plots
-    % and so forth. For now, don't check 'HandleVisibility'.
-end
-% ==============================================================================
-function [relevantAxesHandles, axesBoundingBox] = getRelevantAxes(m2t, axesHandles)
-% Returns relevant axes. These are defines as visible axes that are no
-% colorbars. In addition, a bounding box around all relevant Axes is
-% computed. This can be used to avoid undesired borders.
-% This function is the remaining code of alignSubPlots() in the alternative
-% positioning system.
-    relevantAxesHandles = [];
-    for axesHandle = axesHandles(:)'
-        % Only handle visible non-colorbar handles.
-        if axisIsVisible(axesHandle) && ~strcmp(get(axesHandle,'Tag'), 'Colorbar')
-            relevantAxesHandles(end+1) = axesHandle;
-        end
-    end
-
-    % Compute the bounding box if width or height of the figure are set by
-    % parameter
-    if ~isempty(m2t.cmdOpts.Results.width) || ~isempty(m2t.cmdOpts.Results.height)
-        % TODO: check if relevant Axes or all Axes are better.
-        axesBoundingBox = getRelativeAxesPosition(m2t, relevantAxesHandles);
-        % Compute second corner from width and height for each axes
-        axesBoundingBox(:,[3 4]) = axesBoundingBox(:,[1 2]) + axesBoundingBox(:,[3 4]);
-        % Combine axes corners to get the bounding box
-        axesBoundingBox = [min(axesBoundingBox(:,[1 2]),[],1), max(axesBoundingBox(:,[3 4]), [], 1)];
-        % Compute width and height of the bounding box
-        axesBoundingBox(:,[3 4]) = axesBoundingBox(:,[3 4]) - axesBoundingBox(:,[1 2]);
-    else
-        % Otherwise take the whole figure as bounding box => lengths are
-        % not changed in tikz
-        axesBoundingBox = [0, 0, 1, 1];
-    end
-end
-% ==============================================================================
-function userInfo(m2t, message, varargin)
-% Display usage information.
-    if m2t.cmdOpts.Results.showInfo
-        mess = sprintf(message, varargin{:});
-
-        mess = strrep(mess, sprintf('\n'), sprintf('\n *** '));
-        fprintf(' *** %s\n', mess);
-    end
-end
-% ==============================================================================
-function userWarning(m2t, message, varargin)
-% Drop-in replacement for warning().
-    if m2t.cmdOpts.Results.showWarnings
-        warning('matlab2tikz:userWarning', message, varargin{:});
-    end
-end
-% ==============================================================================
-function warnAboutParameter(m2t, parameter, isActive, message)
-% warn the user about the use of a dangerous parameter
-    line = ['\n' repmat('=',1,80) '\n'];
-    if isActive(m2t.cmdOpts.Results.(parameter))
-        userWarning(m2t, [line, 'You are using the "%s" parameter.\n', ...
-                          message line], parameter);
-    end
-end
-% ==============================================================================
-function parent = addChildren(parent, children)
-    if isempty(children)
-        return;
-    elseif iscell(children)
-        for k = 1:length(children)
-            parent = addChildren(parent, children{k});
-        end
-    else
-        if isempty(parent.children)
-            parent.children = {children};
-        else
-            parent.children = {parent.children{:} children};
-        end
-    end
-end
-% ==============================================================================
-function printAll(m2t, env, fid)
-    if isfield(env, 'colors') && ~isempty(env.colors)
-        fprintf(fid, '%s', env.colors);
-    end
-
-    if isempty(env.options)
-        fprintf(fid, '\\begin{%s}\n', env.name);
-    else
-        fprintf(fid, '\\begin{%s}[%%\n%s\n]\n', env.name, ...
-                opts_print(m2t, env.options, sprintf(',\n')));
-    end
-
-    for item = env.content
-        fprintf(fid, '%s', char(item));
-    end
-
-    for k = 1:length(env.children)
-        if ischar(env.children{k})
-            fprintf(fid, escapeCharacters(env.children{k}));
-        else
-            fprintf(fid, '\n');
-            printAll(m2t, env.children{k}, fid);
-        end
-    end
-
-    % End the tikzpicture environment with an empty comment and no newline
-    % so no additional space is generated after the tikzpicture in TeX.
-    if strcmp(env.name, 'tikzpicture')
-        fprintf(fid, '\\end{%s}%%', env.name);
-    else
-        fprintf(fid, '\\end{%s}\n', env.name);
-    end
-end
-% ==============================================================================
-function c = prettyPrint(m2t, strings, interpreter)
-% Some resources on how MATLAB handles rich (TeX) markup:
-% http://www.mathworks.com/help/techdoc/ref/text_props.html#String
-% http://www.mathworks.com/help/techdoc/creating_plots/f0-4741.html#f0-28104
-% http://www.mathworks.com/help/techdoc/ref/text_props.html#Interpreter
-% http://www.mathworks.com/help/techdoc/ref/text.html#f68-481120
-
-    strings = cellstrOneLinePerCell(strings);
-
-    % Now loop over the strings and return them pretty-printed in c.
-    c = {};
-    for k = 1:length(strings)
-        % linear indexing for independence of cell array dimensions
-        s = strings{k};
-
-        % If the user set the matlab2tikz parameter 'parseStrings' to false, no
-        % parsing of strings takes place, thus making the user 100% responsible.
-        if ~m2t.cmdOpts.Results.parseStrings
-            c = strings;
-            return
-        end
-
-        % Make sure we have a valid interpreter set up
-        if ~any(strcmpi(interpreter, {'latex', 'tex', 'none'}))
-            userWarning(m2t, 'Don''t know interpreter ''%s''. Default handling.', interpreter);
-            interpreter = 'tex';
-        end
-
-        % The interpreter property of the text element defines how the string
-        % is parsed
-        switch lower(interpreter)
-            case 'latex' % Basic subset of the LaTeX markup language
-
-                % Replace $$...$$ with $...$ but otherwise leave untouched
-                string = regexprep(s, '^\$\$(.*)\$\$$', '$$1$');
-
-            case 'tex' % Subset of plain TeX markup language
-
-                % Deal with UTF8 characters.
-                string = s;
-
-                % degree symbol following "^" or "_" needs to be escaped
-                string = regexprep(string, '([\^\_])°', '$1{{}^\\circ}');
-                string = strrep(string, '°', '^\circ');
-                string = strrep(string, '∞', '\infty');
-
-                % Parse string piece-wise in a separate function.
-                string = parseTexString(m2t, string);
-
-            case 'none' % Literal characters
-                % Make special characters TeX compatible
-
-                string = strrep(s, '\', '\textbackslash{}');
-                % Note: '{' and '}' can't be converted to '\{' and '\}',
-                %       respectively, via strrep(...) as this would lead to
-                %       backslashes converted to '\textbackslash\{\}' because
-                %       the backslash was converted to '\textbackslash{}' in
-                %       the previous step. Using regular expressions with
-                %       negative look-behind makes sure any braces in 'string'
-                %       were not introduced by escaped backslashes.
-                %       Also keep in mind that escaping braces before backslashes
-                %       would not remedy the issue -- in that case 'string' would
-                %       contain backslashes introduced by brace escaping that are
-                %       not supposed to be printable characters.
-                repl = switchMatOct(m2t, '\\{', '\{');
-                string = regexprep(string, '(?<!\\textbackslash){', repl);
-                repl = switchMatOct(m2t, '\\}', '\}');
-                string = regexprep(string, '(?<!\\textbackslash{)}', repl);
-                string = strrep(string, '$', '\$');
-                string = strrep(string, '%', '\%');
-                string = strrep(string, '_', '\_');
-                string = strrep(string, '^', '\textasciicircum{}');
-                string = strrep(string, '#', '\#');
-                string = strrep(string, '&', '\&');
-                string = strrep(string, '~', '\textasciitilde{}'); % or '\~{}'
-                % Clean up: remove superfluous '{}' if it's followed by a backslash
-                string = strrep(string, '{}\', '\');
-                % Clean up: remove superfluous '{}' at the end of 'string'
-                string = regexprep(string, '\{\}$', '');
-
-                % Make sure to return a string and not a cellstr.
-                if iscellstr(string)
-                    string = string{1};
-                end
-            otherwise
-                error('matlab2tikz:prettyPrint', 'Unknown interpreter');
-        end
-        c{end+1} = string;
-    end
-end
-% ==============================================================================
-function strings = cellstrOneLinePerCell(strings)
-% convert to cellstr that contains only one-line strings
-    if ischar(strings)
-        strings = cellstr(strings);
-    elseif iscellstr(strings)
-        cs = {};
-        for s = strings
-            tmp = cellstr(s);
-            cs = {cs{:}, tmp{:}};
-        end
-        strings = cs;
-    else
-        error('matlab2tikz:cellstrOneLinePerCell', ...
-            'Data type not understood.');
-    end
-end
-% ==============================================================================
-function parsed = parseTexString(m2t, string)
-    if iscellstr(string)
-        % Convert cell string to regular string, otherwise MATLAB complains
-        string = string{:};
-    end
-
-    % Get the position of all braces
-    bracesPos = regexp(string, '\{|\}');
-
-    % Exclude braces that are part of any of these MATLAB-supported TeX commands:
-    % \color{...}  \color[...]{...}  \fontname{...}  \fontsize{...}
-    [sCmd, eCmd] = regexp(string, '\\(color(\[[^\]]*\])?|fontname|fontsize)\{[^}]*\}');
-    for i = 1:length(sCmd)
-        bracesPos(bracesPos >= sCmd(i) & bracesPos <= eCmd(i)) = [];
-    end
-
-    % Exclude braces that are preceded by an odd number of backslashes which
-    % means the brace is escaped and thus to be printed, not a grouping brace
-    expr = '(?<!\\)(\\\\)*\\(\{|\})';
-    escaped = regexp(string, expr, 'end');
-    % It's necessary to go over 'string' with the same RegEx again to catch
-    % overlapping matches, e.g. string == '\{\}'. In such a case the simple
-    % regexp(...) above only finds the first brace. What we have to do is look
-    % only at the part of 'string' that starts with the first brace but doesn't
-    % encompass its escaping backslash. Iterating over all previously found
-    % matches makes sure all overlapping matches are found, too. That way even
-    % cases like string == '\{\} \{\}' are handled correctly.
-    % The call to unique(...) is not necessary to get the behavior described, but
-    % by removing duplicates in 'escaped' it's cleaner than without.
-    for i = escaped
-        escaped = unique([escaped, regexp(string(i:end), expr, 'end') + i-1]);
-    end
-    % Now do the actual removal of escaped braces
-    for i = 1:length(escaped)
-        bracesPos(bracesPos == escaped(i)) = [];
-    end
-
-    parsed = '';
-    % Have a virtual brace one character left of where the actual string
-    % begins (remember, MATLAB strings start counting at 1, not 0). This is
-    % to make sure substrings left of the first brace get parsed, too.
-    prevBracePos = 0;
-    % Iterate over all the brace positions in order to split up 'string'
-    % at those positions and then parse the substrings. A virtual brace is
-    % added right of where the actual string ends to make sure substrings
-    % right of the right-most brace get parsed as well.
-    for currBracePos = [bracesPos, length(string)+1]
-        if (prevBracePos + 1) < currBracePos
-            % Parse the substring between (but not including) prevBracePos
-            % and currBracePos, i.e. between the previous brace and the
-            % current one (but only if there actually is a non-empty
-            % substring). Then append it to the output string.
-            substring = string(prevBracePos+1 : currBracePos-1);
-            parsed = [parsed, parseTexSubstring(m2t, substring)];
-        end
-        if currBracePos <= length(string)
-            % Append the brace itself to the output string, but only if the
-            % current brace position is within the limits of the string, i.e.
-            % don't append anything for the last, virtual brace that is only
-            % there to enable parsing of substrings beyond the right-most
-            % actual brace.
-            brace = string(currBracePos);
-            parsed = [parsed, brace];
-        end
-        % The current brace position will be next iteration's previous one
-        prevBracePos = currBracePos;
-    end
-
-    % Enclose everything in $...$ to use math mode
-    parsed = ['$' parsed '$'];
-    % ...except when everything is text
-    parsed = regexprep(parsed, '^\$\\text\{([^}]*)\}\$$', '$1');
-    % start-> $ \text {(non-}) } $<-end
-    % ...or when the parsed string is empty
-    parsed = regexprep(parsed, '^\$\$$', '');
-end
-% ==============================================================================
-function string = parseTexSubstring(m2t, string)
-    origstr = string; % keep this for warning messages
-
-    % Font families (italic, bold, etc.) get a trailing '{}' because they may be
-    % followed by a letter which would produce an error in (La)TeX.
-    for i = {'it', 'bf', 'rm', 'sl'}
-        string = strrep(string, ['\' i{:}], ['\' i{:} '{}']);
-    end
-
-    % The same holds true for special characters like \alpha
-    % The list of MATLAB-supported TeX characters was taken from
-    % http://www.mathworks.com/help/techdoc/ref/text_props.html#String
-    named = {'alpha', 'angle', 'ast', 'beta', 'gamma', 'delta',     ...
-        'epsilon', 'zeta', 'eta', 'theta', 'vartheta', 'iota', ...
-        'kappa', 'lambda', 'mu', 'nu', 'xi', 'pi', 'rho',      ...
-        'sigma', 'varsigma', 'tau', 'equiv', 'Im', 'otimes',   ...
-        'cap', 'int', 'rfloor', 'lfloor', 'perp', 'wedge',     ...
-        'rceil', 'vee', 'langle', 'upsilon', 'phi', 'chi',     ...
-        'psi', 'omega', 'Gamma', 'Delta', 'Theta', 'Lambda',   ...
-        'Xi', 'Pi', 'Sigma', 'Upsilon', 'Phi', 'Psi', 'Omega', ...
-        'forall', 'exists', 'ni', 'cong', 'approx', 'Re',      ...
-        'oplus', 'cup', 'subseteq', 'lceil', 'cdot', 'neg',    ...
-        'times', 'surd', 'varpi', 'rangle', 'sim', 'leq',      ...
-        'infty', 'clubsuit', 'diamondsuit', 'heartsuit',       ...
-        'spadesuit', 'leftrightarrow', 'leftarrow',            ...
-        'Leftarrow', 'uparrow', 'rightarrow', 'Rightarrow',    ...
-        'downarrow', 'circ', 'pm', 'geq', 'propto', 'partial', ...
-        'bullet', 'div', 'neq', 'aleph', 'wp', 'oslash',       ...
-        'supseteq', 'nabla', 'ldots', 'prime', '0', 'mid',     ...
-        'copyright'                                            };
-    for i = named
-        string = strrep(string, ['\' i{:}], ['\' i{:} '{}']);
-        % FIXME: Only append '{}' if there's an odd number of backslashes
-        %        in front of the items from 'named'. If it's an even
-        %        number instead, that means there's an escaped (printable)
-        %        backslash and some text like "alpha" after that.
-    end
-    % Some special characters' names are subsets of others, e.g. '\o' is
-    % a subset of '\omega'. This would produce undesired double-escapes.
-    % For example if '\o' was converted to '\o{}' after '\omega' has been
-    % converted to '\omega{}' this would result in '\o{}mega{}' instead of
-    % '\omega{}'. Had '\o' been converted to '\o{}' _before_ '\omega' is
-    % converted then the result would be '\o{}mega' and thus also wrong.
-    % To circumvent the problem all those special character names that are
-    % subsets of others are now converted using a regular expression that
-    % uses negative lookahead. The special handling of the backslash is
-    % required for MATLAB/Octave compatibility.
-    string = regexprep(string, '(\\)o(?!mega|times|plus|slash)', '$1o{}');
-    string = regexprep(string, '(\\)in(?!t|fty)', '$1in{}');
-    string = regexprep(string, '(\\)subset(?!eq)', '$1subset{}');
-    string = regexprep(string, '(\\)supset(?!eq)', '$1supset{}');
-
-    % Convert '\0{}' (TeX text mode) to '\emptyset{}' (TeX math mode)
-    string = strrep(string, '\0{}', '\emptyset{}');
-
-    % Add skip to \fontsize
-    % This is required for a successful LaTeX run on the output as in contrast
-    % to MATLAB/Octave it requires the skip parameter (even if it's zero)
-    string = regexprep(string, '(\\fontsize\{[^}]*\})', '$1{0}');
-
-    % Put '\o{}' inside \text{...} as it is a text mode symbol that does not
-    % exist in math mode (and LaTeX gives a warning if you use it in math mode)
-    string = strrep(string, '\o{}', '\text{\o{}}');
-
-    % Put everything that isn't a TeX command inside \text{...}
-    expr = '(\\[a-zA-Z]+(\[[^\]]*\])?(\{[^}]*\}){1,2})';
-    % |( \cmd  )( [...]?  )( {...}{1,2} )|
-    % (              subset $1               )
-    repl = '}$1\\text{';
-    string = regexprep(string, expr, repl);
-    % ...\alpha{}... -> ...}\alpha{}\text{...
-    string = ['\text{' string '}'];
-    % ...}\alpha{}\text{... -> \text{...}\alpha{}\text{...}
-
-    % '_' has to be in math mode so long as it's not escaped as '\_' in which
-    % case it remains as-is. Extra care has to be taken to make sure any
-    % backslashes in front of the underscore are not themselves escaped and
-    % thus printable backslashes. This is the case if there's an even number
-    % of backslashes in a row.
-    repl = '$1}_\\text{';
-    string = regexprep(string, '(?<!\\)((\\\\)*)_', repl);
-
-    % '^' has to be in math mode so long as it's not escaped as '\^' in which
-    % case it is expressed as '\textasciicircum{}' for compatibility with
-    % regular TeX. Same thing here regarding even/odd number of backslashes
-    % as in the case of underscores above.
-    repl = '$1\\textasciicircum{}';
-    string = regexprep(string, '(?<!\\)((\\\\)*)\\\^', repl);
-    repl = '$1}^\\text{';
-    string = regexprep(string, '(?<!\\)((\\\\)*)\^', repl);
-
-    % '<' and '>' has to be either in math mode or needs to be typeset as
-    % '\textless' and '\textgreater' in textmode
-    % This is handled better, if 'parseStringsAsMath' is activated
-    if m2t.cmdOpts.Results.parseStringsAsMath == 0
-        string = regexprep(string, '<', '\\textless');
-        string = regexprep(string, '>', '\\textgreater');
-    end
-
-    % Move font styles like \bf into the \text{} command.
-    expr = '(\\bf|\\it|\\rm|\\fontname)({\w*})+(\\text{)';
-    while regexp(string, expr)
-        string = regexprep(string, expr, '$3$1$2');
-    end
-
-    % Replace Fontnames
-    [~, ~, ~, ~, fonts, ~, subStrings] = regexp(string, '\\fontname{(\w*)}');
-    fonts = fonts2tex(fonts);
-    subStrings = [subStrings; fonts, {''}];
-    string = cell2mat(subStrings(:)');
-
-    % Merge adjacent \text fields:
-    string = mergeAdjacentTexCmds(string, '\text');
-
-    % '\\' has to be escaped to '\textbackslash{}'
-    % This cannot be done with strrep(...) as it would replace e.g. 4 backslashes
-    % with three times the replacement string because it finds overlapping matches
-    % (see http://www.mathworks.de/help/techdoc/ref/strrep.html)
-    % Note: Octave's backslash handling is broken. Even though its output does
-    % not resemble MATLAB's, the same m2t code is used for either software. That
-    % way MATLAB-compatible code produces the same matlab2tikz output no matter
-    % which software it's executed in. So long as this MATLAB incompatibility
-    % remains in Octave you're probably better off not using backslashes in TeX
-    % text anyway.
-    string = regexprep(string, '(\\)\\', '$1textbackslash{}');
-
-    % '_', '^', '{', and '}' are already escaped properly, even in MATLAB's TeX
-    % dialect (and if they're not, that's intentional)
-
-    % Escape "$", "%", and "#" to make them compatible to true TeX while in
-    % MATLAB/Octave they are not escaped
-    string = strrep(string, '$', '\$');
-    string = strrep(string, '%', '\%');
-    string = strrep(string, '#', '\#');
-
-    % Escape "§" as "\S" since it can give UTF-8 problems otherwise.
-    % The TeX string 'a_§' in particular lead to problems in Octave 3.6.0.
-    % m2t transcoded that string into '$\text{a}_\text{*}\text{#}$' with
-    % * = 0xC2 and # = 0xA7 which corresponds with the two-byte UTF-8
-    % encoding. Even though this looks like an Octave bug that shows
-    % during the '..._\text{abc}' to '..._\text{a}\text{bc}' conversion,
-    % it's best to include the workaround here.
-    string = strrep(string, '§', '\S{}');
-
-    % Escape plain "&" in MATLAB and replace it and the following character with
-    % a space in Octave unless the "&" is already escaped
-    switch m2t.env
-        case 'MATLAB'
-            string = strrep(string, '&', '\&');
-        case 'Octave'
-            % Ampersands should already be escaped in Octave.
-            % Octave (tested with 3.6.0) handles un-escaped ampersands a little
-            % funny in that it removes the following character, if there is one:
-            % 'abc&def'      -> 'abc ef'
-            % 'abc&\deltaef' -> 'abc ef'
-            % 'abc&$ef'      -> 'abc ef'
-            % 'abcdef&'      -> 'abcdef'
-            % Don't remove closing brace after '&' as this would result in
-            % unbalanced braces
-            string = regexprep(string, '(?<!\\)&(?!})', ' ');
-            string = regexprep(string, '(?<!\\)&}', '}');
-            if regexp(string, '(?<!\\)&\\')
-                % If there's a backslash after the ampersand, that means not only
-                % the backslash should be removed but the whole escape sequence,
-                % e.g. '\delta' or '\$'. Actually the '\delta' case is the
-                % trickier one since by now 'string' would have been turned from
-                % 'abc&\deltaef' into '\text{abc&}\delta{}\text{ef}', i.e. after
-                % the ampersand first comes a closing brace and then '\delta';
-                % the latter as well as the ampersand itself should be removed
-                % while the brace must remain in place to avoid unbalanced braces.
-                userWarning(m2t,                                                ...
-                    ['TeX string ''%s'' contains a special character '  ...
-                    'after an un-escaped ''&''. The output generated ' ...
-                    'by matlab2tikz will not precisely match that '    ...
-                    'which you see in Octave itself in that the '      ...
-                    'special character and the preceding ''&'' is '    ...
-                    'not replaced with a space.'], origstr)
-            end
-        otherwise
-            errorUnknownEnvironment();
-    end
-
-    % Escape plain "~" in MATLAB and replace escaped "\~" in Octave with a proper
-    % escape sequence. An un-escaped "~" produces weird output in Octave, thus
-    % give a warning in that case
-    switch m2t.env
-        case 'MATLAB'
-            string = strrep(string, '~', '\textasciitilde{}'); % or '\~{}'
-        case 'Octave'
-            string = strrep(string, '\~', '\textasciitilde{}'); % ditto
-            if regexp(string, '(?<!\\)~')
-                userWarning(m2t,                                             ...
-                    ['TeX string ''%s'' contains un-escaped ''~''. ' ...
-                    'For proper display in Octave you probably '    ...
-                    'want to escape it even though that''s '        ...
-                    'incompatible with MATLAB. '                    ...
-                    'In the matlab2tikz output it will have its '   ...
-                    'usual TeX function as a non-breaking space.'], ...
-                    origstr)
-            end
-        otherwise
-            errorUnknownEnvironment();
-    end
-
-    % Convert '..._\text{abc}' and '...^\text{abc}' to '..._\text{a}\text{bc}'
-    % and '...^\text{a}\text{bc}', respectively.
-    % Things get a little more complicated if instead of 'a' it's e.g. '$'. The
-    % latter has been converted to '\$' by now and simply extracting the first
-    % character from '\text{\$bc}' would result in '\text{$}\text{$bc}' which
-    % is syntactically wrong. Instead the whole command '\$' has to be moved in
-    % front of the \text{...} block, e.g. '..._\text{\$bc}' -> '..._\$\text{bc}'.
-    % Note that the problem does not occur for the majority of special characters
-    % like '\alpha' because they use math mode and therefore are never inside a
-    % \text{...} block to begin with. This means that the number of special
-    % characters affected by this issue is actually quite small:
-    %   $ # % & _ { } \o § ~ \ ^
-    expr = ['(_|\^)(\\text)\{([^}\\]|\\\$|\\#|\\%|\\&|\\_|\\\{|\\\}|', ...
-        ... %   (_/^)(\text) {(non-}\| \$ | \#| \%| \&| \_| \{ | \} |
-        ... %   ($1)( $2 )  (                 $3                      ->
-        '\\o\{\}|\\S\{\}|\\textasciitilde\{\}|\\textbackslash\{\}|', ...
-        ... %    \o{}  | \S{}  | \textasciitilde{}  | \textbackslash{}  |
-        ... %  <-                         $3                                 ->
-        '\\textasciicircum\{\})'];
-    %    \textasciicircum{} )
-    %  <-      $3           )
-    string = regexprep(string, expr, '$1$2{$3}$2{');
-
-    % Some further processing makes the output behave more like TeX math mode,
-    % but only if the matlab2tikz parameter parseStringsAsMath=true.
-    if m2t.cmdOpts.Results.parseStringsAsMath
-
-        % Some characters should be in math mode: =-+/,.()<>0-9
-        expr = '(\\text)\{([^}=\-+/,.()<>0-9]*)([=\-+/,.()<>0-9]+)([^}]*)\}';
-        %    \text  {(any non-"x"/'}'char)( any "x" char  )(non-}) }
-        %  ( $1 )  (       $2        )(      $3       )( $4)
-        while regexp(string, expr)
-            % Iterating is necessary to catch all occurrences. See above.
-            string = regexprep(string, expr, '$1{$2}$3$1{$4}');
-        end
-
-        % \text{ } should be a math-mode space
-        string = regexprep(string, '\\text\{(\s+)}', '$1');
-
-        % '<<' probably means 'much smaller than', i.e. '\ll'
-        repl = switchMatOct(m2t, '$1\\ll{}$2', '$1\ll{}$2');
-        string = regexprep(string, '([^<])<<([^<])', repl);
-
-        % '>>' probably means 'much greater than', i.e. '\gg'
-        repl = switchMatOct(m2t, '$1\\gg{}$2', '$1\gg{}$2');
-        string = regexprep(string, '([^>])>>([^>])', repl);
-
-        % Single letters are most likely variables and thus should be in math mode
-        string = regexprep(string, '\\text\{([a-zA-Z])\}', '$1');
-
-    end % parseStringsAsMath
-
-    % Clean up: remove empty \text{}
-    string = strrep(string, '\text{}', '');
-    % \text{}\alpha{}\text{...} -> \alpha{}\text{...}
-
-    % Clean up: convert '{}\' to '\' unless it's prefixed by a backslash which
-    % means the opening brace is escaped and thus a printable character instead
-    % of a grouping brace.
-    string = regexprep(string, '(?<!\\)\{\}(\\)', '$1');
-    % \alpha{}\text{...} -> \alpha\text{...}
-
-    % Clean up: convert '{}}' to '}' unless it's prefixed by a backslash
-    string = regexprep(string, '(?<!\\)\{\}\}', '}');
-
-    % Clean up: remove '{}' at the end of 'string' unless it's prefixed by a
-    % backslash
-    string = regexprep(string, '(?<!\\)\{\}$', '');
-end
-% ==============================================================================
-function tex = fonts2tex(fonts)
-% Returns a tex command for each fontname in the cell array fonts.
-    if ~iscell(fonts)
-        error('matlab2tikz:fonts2tex', ...
-                 'Expecting a cell array as input.');
-    end
-    tex = cell(size(fonts));
-
-    for ii = 1:numel(fonts)
-        font = fonts{ii}{1};
-
-        % List of known fonts.
-        switch lower(font)
-            case 'courier'
-                tex{ii} = '\ttfamily{}';
-            case 'times'
-                tex{ii} = '\rmfamily{}';
-            case {'arial', 'helvetica'}
-                tex{ii} = '\sffamily{}';
-            otherwise
-                warning('matlab2tikz:fonts2tex', ...
-                    'Unknown font ''%s''. Using tex default font.',font);
-                % Unknown font -> Switch to standard font.
-                tex{ii} = '\rm{}';
-        end
-    end
-end
-% ==============================================================================
-function string = mergeAdjacentTexCmds(string, cmd)
-% Merges adjacent tex commands like \text into one command
-    % If necessary, add a backslash
-    if cmd(1) ~= '\'
-        cmd = ['\' cmd];
-    end
-    % Link each bracket to the corresponding bracket
-    link = zeros(size(string));
-    pos = [regexp([' ' string], '([^\\]{)'), ...
-        regexp([' ' string], '([^\\]})')];
-    pos = sort(pos);
-    ii = 1;
-    while ii <= numel(pos)
-        if string(pos(ii)) == '}'
-            link(pos(ii-1)) = pos(ii);
-            link(pos(ii)) = pos(ii - 1);
-            pos([ii-1, ii]) = [];
-            ii = ii - 1;
-        else
-            ii = ii + 1;
-        end
-    end
-    % Find dispensable commands
-    pos = regexp(string, ['}\' cmd '{']);
-    delete = zeros(0,1);
-    len = numel(cmd);
-    for p = pos
-        l = link(p);
-        if l > len && isequal(string(l-len:l-1), cmd)
-            delete(end+1,1) = p;
-        end
-    end
-    %   3. Remove these commands (starting from the back
-    delete = repmat(delete, 1, len+2) + repmat(0:len+1,numel(delete), 1);
-    string(delete(:)) = [];
-end
-function dims = pos2dims(pos)
-% Position quadruplet [left, bottom, width, height] to dimension structure
-    dims = struct('left' , pos(1), 'bottom', pos(2));
-    if numel(pos) == 4
-        dims.width  = pos(3);
-        dims.height = pos(4);
-        dims.right  = dims.left   + dims.width;
-        dims.top    = dims.bottom + dims.height;
-    end
-end
-% OPTION ARRAYS ================================================================
-function opts = opts_new()
-% create a new options array
-    opts = cell(0,2);
-end
-function opts = opts_add(opts, key, value)
-% add a key-value pair to an options array (with duplication check)
-    if ~exist('value','var')
-        value = [];
-    end
-    value = char(value);
-
-    % Check if the key already exists.
-    if opts_has(opts, key)
-        oldValue = opts_get(opts, key);
-        if isequal(value, oldValue)
-            return; % no action needed: value already present
-        else
-            error('matlab2tikz:opts_add', ...
-                 ['Trying to add (%s, %s) to options, but it already ' ...
-                  'contains the conflicting key-value pair (%s, %s).'], ...
-                  key, value, key, oldValue);
-        end
-    end
-    opts = opts_append(opts, key, value);
-end
-function bool = opts_has(opts, key)
-% returns true if the options array contains the key
-    bool = ~isempty(opts) && ismember(key, opts(:,1));
-end
-function value = opts_get(opts, key)
-% returns the value(s) stored for a key in an options array
-    idx = find(ismember(opts(:,1), key));
-    switch numel(idx)
-        case 1
-            value = opts{idx,2}; % just the value
-        otherwise
-            value = opts(idx,2); % as cell array
-    end
-end
-function opts = opts_append(opts, key, value)
-% append a key-value pair to an options array (duplicate keys allowed)
-    if ~exist('value','var') || isempty(value)
-        value = [];
-    end
-    if ~(opts_has(opts, key) && isequal(opts_get(opts, key), value))
-        opts = cat(1, opts, {key, value});
-    end
-end
-function opts = opts_append_userdefined(opts, userDefined)
-% appends user-defined options to an options array
-% the sserDefined options can come either as a single string or a cellstr that
-% is already TikZ-formatted. The internal 2D cell format is NOT supported.
-    if ~isempty(userDefined)
-        if ischar(userDefined)
-            userDefined = {userDefined};
-        end
-        for k = 1:length(userDefined)
-            opts = opts_append(opts, userDefined{k});
-        end
-    end
-end
-function opts = opts_remove(opts, varargin)
-% remove some key-value pairs from an options array
-    keysToDelete = varargin;
-    idxToDelete = ismember(opts(:,1), keysToDelete);
-    opts(idxToDelete, :) = [];
-end
-function opts = opts_merge(opts, varargin)
-% merge multiple options arrays
-    for jArg = 1:numel(varargin)
-        opts2 = varargin{jArg};
-        for k = 1:size(opts2, 1)
-            opts = opts_append(opts, opts2{k,1}, opts2{k,2});
-        end
-    end
-end
-function str  = opts_print(m2t, opts, sep)
-% pretty print an options array
-    nOpts = size(opts,1);
-    c = cell(nOpts,1);
-    for k = 1:nOpts
-        if isempty(opts{k,2})
-            c{k} = sprintf('%s', opts{k,1});
-        else
-            c{k} = sprintf('%s=%s', opts{k,1}, opts{k,2});
-        end
-    end
-    str = join(m2t, c, sep);
-end
-% DEPRECATED OPTION ARRAYS =====================================================
-% TODO: Remove deprecated functions for next release
-function opts = addToOptions(opts, key, value)
-% Adds a key-value pair to a structure and does some sanity-checking.
-    warning('m2t:Deprecated','Use "opts_add" instead!');
-    if ~exist('value','var') || isempty(value)
-        value = [];
-    end
-    opts = opts_add(opts, key, value);
-end
-function opts = merge(opts, varargin)
-% Merges multiple option lists
-    warning('m2t:Deprecated','Use "opts_merge" instead!');
-    opts = opts_merge(opts, varargin{:});
-end
-function str = prettyprintOpts(m2t, opts, sep)
-    warning('m2t:Deprecated','Use "opts_print" instead!');
-    str = opts_print(m2t, opts, sep);
-end
-% ==============================================================================
-function [env,versionString] = getEnvironment()
-% Checks if we are in MATLAB or Octave.
-    alternatives = {'MATLAB','Octave'};
-    for iCase = 1:numel(alternatives)
-        env   = alternatives{iCase};
-        vData = ver(env);
-        if ~isempty(vData)
-            versionString = vData.Version;
-            return; % found the right environment
-        end
-    end
-    % otherwise:
-    env = '';
-    versionString = '';
-end
-% ==============================================================================
-function isHG2 = isHG2(m2t)
-% Checks if graphics system is HG2 (true) or HG1 (false).
-% HG1 : MATLAB up to R2014a and currently all OCTAVE versions
-% HG2 : MATLAB starting from R2014b (version 8.4)
-    isHG2 = false;
-    if strcmpi(m2t.env,'MATLAB') && ...
-        ~isVersionBelow(m2t.env, m2t.envVersion, [8,4])
-        isHG2 = true;
-    end
-end
-% ==============================================================================
-function isBelow = isVersionBelow(env, versionA, versionB)
-% Checks if versionA is smaller than versionB
-    vA         = versionArray(env, versionA);
-    vB         = versionArray(env, versionB);
-    n          = min(length(vA), length(vB));
-    deltaAB    = vA(1:n) - vB(1:n);
-    difference = find(deltaAB, 1, 'first');
-    if isempty(difference)
-        isBelow = false; % equal versions
-    else
-        isBelow = (deltaAB(difference) < 0);
-    end
-end
-% ==============================================================================
-function str = formatDim(value, unit)
-% format the value for use as a TeX dimension
-    if ~exist('unit','var') || isempty(unit)
-        unit = '';
-    end
-    tolerance = 1e-7;
-    value  = round(value/tolerance)*tolerance;
-    if value == 1 && ~isempty(unit) && unit(1) == '\'
-        str = unit; % just use the unit
-    else
-        str = sprintf('%.6f', value);
-        str = regexprep(str, '(\d*\.\d*?)0+$', '$1'); % remove trailing zeros
-        str = regexprep(str, '\.$', ''); % remove trailing period
-        str = [str unit];
-    end
-end
-% ==============================================================================
-function arr = versionArray(env, str)
-% Converts a version string to an array.
-    if ischar(str)
-        % Translate version string from '2.62.8.1' to [2; 62; 8; 1].
-        switch env
-            case 'MATLAB'
-                split = regexp(str, '\.', 'split'); % compatibility MATLAB < R2013a
-            case  'Octave'
-                split = strsplit(str, '.');
-            otherwise
-                errorUnknownEnvironment();
-        end
-        arr = str2num(char(split)); %#ok
-    else
-        arr = str;
-    end
-    arr = arr(:)';
-end
-% ==============================================================================
-function [retval] = switchMatOct(m2t, matlabValue, octaveValue)
-% Returns a different value for MATLAB and Octave
-    switch m2t.env
-        case 'MATLAB'
-            retval = matlabValue;
-        case 'Octave'
-            retval = octaveValue;
-        otherwise
-            errorUnknownEnvironment();
-    end
-end
-% ==============================================================================
-function checkDeprecatedEnvironment(m2t, minimalVersions)
-    if isfield(minimalVersions, m2t.env)
-        minVersion = minimalVersions.(m2t.env);
-        envWithVersion = sprintf('%s %s', m2t.env, minVersion.name);
-
-        if isVersionBelow(m2t.env, m2t.envVersion, minVersion.num)
-            ID = 'matlab2tikz:deprecatedEnvironment';
-
-            warningMessage = ['\n', repmat('=',1,80), '\n\n', ...
-                '  matlab2tikz is tested and developed on   %s   and newer.\n', ...
-                '  This script may still be able to handle your plots, but if you\n', ...
-                '  hit a bug, please consider upgrading your environment first.\n', ...
-                '  Type "warning off %s" to suppress this warning.\n', ...
-                '\n', repmat('=',1,80), ];
-            warning(ID, warningMessage, envWithVersion, ID);
-
-        end
-    else
-        errorUnknownEnvironment();
-    end
-end
-% ==============================================================================
-function errorUnknownEnvironment()
-    error('matlab2tikz:unknownEnvironment',...
-          'Unknown environment. Need MATLAB(R) or Octave.')
-end
-% ==============================================================================
-function m2t = needsPgfplotsVersion(m2t, minVersion)
-    if isVersionBelow(m2t, m2t.pgfplotsVersion, minVersion)
-        m2t.pgfplotsVersion = minVersion;
-    end
-end
-% ==============================================================================
-function str = formatPgfplotsVersion(m2t, version)
-    version = versionArray(m2t, version);
-    if all(isfinite(version))
-        str = sprintf('%d.',version);
-        str = str(1:end-1); % remove the last period
-    else
-        str = 'newest';
-    end
-end
-% ==============================================================================
-function [formatted,treeish] = VersionControlIdentifier()
-% This function gives the (git) commit ID of matlab2tikz
-%
-% This assumes the standard directory structure as used by Nico's master branch:
-%     SOMEPATH/src/matlab2tikz.m with a .git directory in SOMEPATH.
-%
-% The HEAD of that repository is determined from file system information only
-% by following dynamic references (e.g. ref:refs/heds/master) in branch files
-% until an absolute commit hash (e.g. 1a3c9d1...) is found.
-% NOTE: Packed branch references are NOT supported by this approach
-    MAXITER     = 10; % stop following dynamic references after a while
-    formatted   = '';
-    REFPREFIX   = 'ref:';
-    isReference = @(treeish)(any(strfind(treeish, REFPREFIX)));
-    treeish     = [REFPREFIX 'HEAD'];
-    try
-        % get the matlab2tikz directory
-        m2tDir = fileparts(mfilename('fullpath'));
-        gitDir = fullfile(m2tDir,'..','.git');
-
-        nIter = 1;
-        while isReference(treeish)
-            refName    = treeish(numel(REFPREFIX)+1:end);
-            branchFile = fullfile(gitDir, refName);
-
-            if exist(branchFile, 'file') && nIter < MAXITER
-                fid     = fopen(branchFile,'r');
-                treeish = fscanf(fid,'%s');
-                fclose(fid);
-                nIter   = nIter + 1;
-            else % no branch file or iteration limit reached
-                treeish = '';
-                return;
-            end
-        end
-    catch %#ok
-        treeish = '';
-    end
-    if ~isempty(treeish)
-        formatted = sprintf('(commit %s)',treeish);
-    end
-end
-% ==============================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/myfile b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/myfile
deleted file mode 100644
index 43166ea1..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/myfile
+++ /dev/null
@@ -1,43 +0,0 @@
-% This file was created by matlab2tikz.
-% Minimal pgfplots version: 1.3
-%
-%The latest updates can be retrieved from
-%  http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
-%where you can also make suggestions and rate matlab2tikz.
-%
-\begin{tikzpicture}
-
-\begin{axis}[%
-width=5.25in,
-height=2.586207in,
-at={(0.991379in,0.603448in)},
-scale only axis,
-separate axis lines,
-every outer x axis line/.append style={black},
-every x tick label/.append style={font=\color{black}},
-xmin=0,
-xmax=120,
-xlabel={$\fontsize{18}{0}\text{Prétension [kN]}$},
-xmajorgrids,
-every outer y axis line/.append style={black},
-every y tick label/.append style={font=\color{black}},
-ymin=0,
-ymax=1500,
-ylabel={$\fontsize{18}{0}\text{Surface de contacte [mm}^\text{2}\text{]}$},
-ymajorgrids
-]
-\addplot [color=blue,solid,line width=2.0pt,mark=asterisk,mark options={solid},forget plot]
-  table[row sep=crcr]{%
-10	41.465236444\\
-14	887.294699403\\
-18	1185.146646\\
-22	1185.146646\\
-26	1185.146646\\
-30	1185.146646\\
-50	1185.146646\\
-70	1185.146646\\
-90	1185.146646\\
-110	1185.146646\\
-};
-\end{axis}
-\end{tikzpicture}%
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/private/m2tUpdater.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/private/m2tUpdater.m
deleted file mode 100644
index ea7adcdc..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/private/m2tUpdater.m
+++ /dev/null
@@ -1,142 +0,0 @@
-function updater(name, fileExchangeUrl, version, verbose, env)
-%UPDATER   Auto-update matlab2tikz.
-%   Only for internal usage.
-
-%   Copyright (c) 2012--2014, Nico Schlömer <nico.schloemer@gmail.com>
-%   All rights reserved.
-%
-%   Redistribution and use in source and binary forms, with or without
-%   modification, are permitted provided that the following conditions are
-%   met:
-%
-%      * Redistributions of source code must retain the above copyright
-%        notice, this list of conditions and the following disclaimer.
-%      * Redistributions in binary form must reproduce the above copyright
-%        notice, this list of conditions and the following disclaimer in
-%        the documentation and/or other materials provided with the distribution
-%
-%   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-%   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-%   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-%   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-%   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-%   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-%   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-%   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-%   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-%   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-%   POSSIBILITY OF SUCH DAMAGE.
-% =========================================================================
-  try
-      html = urlread([fileExchangeUrl, '/all_files']);
-  catch %#ok
-      % Couldn't load the URL -- never mind.
-      html = '';
-  end
-  % Search for a string "/version-1.6.3" in the HTML. This assumes
-  % that the package author has added a file by that name to
-  % to package. This is a rather dirty hack around FileExchange's
-  % lack of native versioning information.
-  mostRecentVersion = regexp(html, '/version-(\d+\.\d+\.\d+)', 'tokens');
-  if ~isempty(mostRecentVersion)
-      if isVersionBelow(env, version, mostRecentVersion{1}{1})
-          userInfo(verbose, '**********************************************\n');
-          userInfo(verbose, 'New version available! (%s)\n', mostRecentVersion{1}{1});
-          userInfo(verbose, '**********************************************\n');
-
-          reply = input([' *** Would you like ', name, ' to self-upgrade? y/n [n]:'],'s');
-          if strcmp(reply, 'y')
-              % Download the files and unzip its contents into the folder
-              % above the folder that contains the current script.
-              % This assumes that the file structure is something like
-              %
-              %   src/matlab2tikz.m
-              %   src/[...]
-              %   AUTHORS
-              %   ChangeLog
-              %   [...]
-              %
-              % on the hard drive and the zip file. In particular, this assumes
-              % that the folder on the hard drive is writable by the user
-              % and that matlab2tikz.m is not symlinked from some other place.
-              pathstr = fileparts(mfilename('fullpath'));
-              targetPath = [pathstr, filesep, '..', filesep];
-              userInfo(verbose, ['Downloading and unzipping to ', targetPath, '...']);
-              upgradeSuccess = false;
-              try
-                  unzippedFiles = unzip([fileExchangeUrl, '?download=true'], targetPath);
-                  upgradeSuccess = true; %~isempty(unzippedFiles);
-                  userInfo(verbose, 'done.');
-              catch
-                  userInfo(verbose, 'FAILED.');
-              end
-              if upgradeSuccess
-                  % TODO explicitly delete all of the old content
-                  % Delete old version number file.
-                  versionFile = [pathstr, filesep, 'version-', version];
-                  if exist(versionFile, 'file') == 2
-                      delete(versionFile);
-                  end
-                  % TODO anything better than error()?
-                  error('Upgrade successful. Please re-execute.');
-              else
-                  error('Upgrade failed.');
-              end
-          end
-          userInfo(verbose, '');
-      end
-  end
-end
-% =========================================================================
-function isBelow = isVersionBelow(env, versionA, versionB)
-  % Checks if version string or vector versionA is smaller than
-  % version string or vector versionB.
-
-  vA = versionArray(env, versionA);
-  vB = versionArray(env, versionB);
-
-  isBelow = false;
-  for i = 1:min(length(vA), length(vB))
-    if vA(i) > vB(i)
-      isBelow = false;
-      break;
-    elseif vA(i) < vB(i)
-      isBelow = true;
-      break
-    end
-  end
-
-end
-% =========================================================================
-function arr = versionArray(env, str)
-  % Converts a version string to an array, e.g.,
-  % '2.62.8.1' to [2, 62, 8, 1].
-
-  if ischar(str)
-    if strcmpi(env, 'MATLAB')
-        split = regexp(str, '\.', 'split');
-    elseif strcmpi(env, 'Octave')
-        split = strsplit(str, '.');
-    end
-    arr = str2num(char(split)); %#ok
-  else
-    arr = str;
-  end
-
-end
-% =========================================================================
-function userInfo(verbose, message, varargin)
-  % Display usage information.
-
-  if ~verbose
-      return
-  end
-
-  mess = sprintf(message, varargin{:});
-
-  % Replace '\n' by '\n *** ' and print.
-  mess = strrep( mess, sprintf('\n'), sprintf('\n *** ') );
-  fprintf( ' *** %s\n', mess );
-
-end
-% =========================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/test.text b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/test.text
deleted file mode 100644
index 69bc0dcf..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/src/test.text
+++ /dev/null
@@ -1,322 +0,0 @@
-% This file was created by matlab2tikz.
-% Minimal pgfplots version: 1.3
-%
-%The latest updates can be retrieved from
-%  http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
-%where you can also make suggestions and rate matlab2tikz.
-%
-\begin{tikzpicture}
-
-\begin{axis}[%
-width=9.6875in,
-height=3.34375in,
-at={(1.625in,0.510417in)},
-scale only axis,
-separate axis lines,
-every outer x axis line/.append style={black},
-every x tick label/.append style={font=\color{black}},
-xmin=1,
-xmax=10,
-xlabel={$n_{std}$},
-xmajorgrids,
-every outer y axis line/.append style={black},
-every y tick label/.append style={font=\color{black}},
-ymode=log,
-ymin=100000,
-ymax=1e+15,
-yminorticks=true,
-ylabel={condition number},
-ymajorgrids,
-yminorgrids,
-legend style={legend cell align=left,align=left,draw=black}
-]
-\addplot [color=blue,solid,line width=2.0pt]
-  table[row sep=crcr]{%
-1	215657237.21042\\
-1.04522613	136820225.413517\\
-1.09045226	89608942.44\\
-1.13567839	60417150.9517798\\
-1.18090452	41831190.7629315\\
-1.22613065	29675776.706432\\
-1.27135678	21527373.5999616\\
-1.31658291	15939625.8614052\\
-1.36180905	12026890.1355725\\
-1.40703518	9233775.48088384\\
-1.45226131	7204182.27073421\\
-1.49748744	5705025.83181377\\
-1.54271357	4580776.43354252\\
-1.5879397	3725776.0785063\\
-1.63316583	3067036.45370892\\
-1.67839196	2553345.35426966\\
-1.72361809	2148243.42393524\\
-1.76884422	1825419.54430157\\
-1.81407035	1565644.080049\\
-1.85929648	1354695.28727389\\
-1.90452261	1181937.9131113\\
-1.94974874	1039335.55560049\\
-1.99497487	920756.316696951\\
-2.04020101	821478.398098347\\
-2.08542714	737834.662831489\\
-2.13065327	666954.225424749\\
-2.1758794	606572.911837312\\
-2.22110553	554893.041524291\\
-2.26633166	510479.001106209\\
-2.31155779	472179.23166594\\
-2.35678392	439068.236918351\\
-2.40201005	410404.872449736\\
-2.44723618	385606.329107303\\
-2.49246231	364244.522273867\\
-2.53768844	346098.071307408\\
-2.58291457	331439.715080992\\
-2.6281407	323070.674066522\\
-2.67336683	342018.259472786\\
-2.71859296	404629.185545462\\
-2.7638191	490126.661984278\\
-2.80904523	596166.073119711\\
-2.85427136	725661.314455159\\
-2.89949749	882971.221820954\\
-2.94472362	1073523.04104558\\
-2.98994975	1303861.38755625\\
-3.03517588	1581802.72481281\\
-3.08040201	1916643.18533517\\
-3.12562814	2319409.96384725\\
-3.17085427	2803158.06652063\\
-3.2160804	3383316.09890573\\
-3.26130653	4078088.51824717\\
-3.30653266	4908921.33545744\\
-3.35175879	5901040.91592187\\
-3.39698492	7084075.27483846\\
-3.44221106	8492770.41457107\\
-3.48743719	10167813.939853\\
-3.53266332	12156781.5683035\\
-3.57788945	14515221.8082826\\
-3.62311558	17307898.9755472\\
-3.66834171	20610214.052099\\
-3.71356784	24509827.2407036\\
-3.75879397	29108508.1556598\\
-3.8040201	34524242.7528462\\
-3.84924623	40893629.2122888\\
-3.89447236	48374599.2188472\\
-3.93969849	57149503.4606085\\
-3.98492462	67428607.2710279\\
-4.03015075	79454046.263808\\
-4.07537688	93504292.4951583\\
-4.12060302	109899199.394868\\
-4.16582915	129005681.433262\\
-4.21105528	151244114.639717\\
-4.25628141	177095528.706355\\
-4.30150754	207109697.02042\\
-4.34673367	241914183.663127\\
-4.3919598	282224524.052152\\
-4.43718593	328855574.775\\
-4.48241206	382734264.974901\\
-4.52763819	444913758.875845\\
-4.57286432	516589353.420124\\
-4.61809045	599116112.491952\\
-4.66331658	694028575.782968\\
-4.70854271	803062641.821928\\
-4.75376884	928179891.848816\\
-4.79899497	1071594634.99544\\
-4.84422111	1235803870.6776\\
-4.88944724	1423620520.509\\
-4.93467337	1638210187.87137\\
-4.9798995	1883131892.00857\\
-5.02512563	2162383057.1469\\
-5.07035176	2480449143.7932\\
-5.11557789	2842358530.11134\\
-5.16080402	3253742909.86987\\
-5.20603015	3720903913.42031\\
-5.25125628	4250886324.98886\\
-5.29648241	4851558755.61754\\
-5.34170854	5531702163.04615\\
-5.38693467	6301107163.49668\\
-5.4321608	7170680688.06443\\
-5.47738693	8152563062.37041\\
-5.52261307	9260256184.30458\\
-5.5678392	10508763860.3566\\
-5.61306533	11914745257.4492\\
-5.65829146	13496682903.8006\\
-5.70351759	15275066506.6756\\
-5.74874372	17272591869.1043\\
-5.79396985	19514380668.2299\\
-5.83919598	22028218261.798\\
-5.88442211	24844812785.3959\\
-5.92964824	27998077620.2401\\
-5.97487437	31525439606.0782\\
-6.0201005	35468172326.9619\\
-6.06532663	39871760149.2145\\
-6.11055276	44786292718.9093\\
-6.15577889	50266892837.4064\\
-6.20100503	56374181609.2205\\
-6.24623116	63174782057.1755\\
-6.29145729	70741865465.9649\\
-6.33668342	79155740523.69\\
-6.38190955	88504495353.6966\\
-6.42713568	98884689720.5283\\
-6.47236181	110402100245.653\\
-6.51758794	123172532736.627\\
-6.56281407	137322691872.685\\
-6.6080402	152991125424.64\\
-6.65326633	170329241170.995\\
-6.69849246	189502401912.638\\
-6.74371859	210691108219.242\\
-6.78894472	234092270123.166\\
-6.83417085	259920577253.124\\
-6.87939698	288409974555.423\\
-6.92462312	319815247850.498\\
-6.96984925	354413729710.578\\
-7.01507538	392507129197.163\\
-7.06030151	434423501985.988\\
-7.10552764	480519366253.382\\
-7.15075377	531181966841.959\\
-7.1959799	586831706221.842\\
-7.24120603	647924757226.93\\
-7.28643216	714955854364.587\\
-7.33165829	788461293848.765\\
-7.37688442	869022130770.009\\
-7.42211055	957267616672.292\\
-7.46733668	1053878876991.16\\
-7.51256281	1159592828040.97\\
-7.55778894	1275206352975.12\\
-7.60301508	1401580875580.12\\
-7.64824121	1539647052872.52\\
-7.69346734	1690409888850.37\\
-7.73869347	1854954327003.73\\
-7.7839196	2034450930427.24\\
-7.82914573	2230162170442.56\\
-7.87437186	2443449020877.6\\
-7.91959799	2675778040473.91\\
-7.96482412	2928728919473.7\\
-8.01005025	3204002481542.02\\
-8.05527638	3503429120415.6\\
-8.10050251	3828978067099.6\\
-8.14572864	4182766836195.08\\
-8.19095477	4567071646954.06\\
-8.2361809	4984338352691.71\\
-8.28140704	5437193957739.14\\
-8.32663317	5928458925046.44\\
-8.3718593	6461160390776.81\\
-8.41708543	7038546107707.71\\
-8.46231156	7664098911238.81\\
-8.50753769	8341552808902.62\\
-8.55276382	9074909106182.64\\
-8.59798995	9868454526284.93\\
-8.64321608	10726779534067.6\\
-8.68844221	11654798216265\\
-8.73366834	12657769212309.8\\
-8.77889447	13741318162726.6\\
-8.8241206	14911460665449.6\\
-8.86934673	16174627900245.6\\
-8.91457286	17537692291687.8\\
-8.95979899	19007995815445\\
-9.00502513	20593379106651.1\\
-9.05025126	22302213001529.2\\
-9.09547739	24143431056171.9\\
-9.14070352	26126564528964.6\\
-9.18592965	28261779255201.2\\
-9.23115578	30559914044206.9\\
-9.27638191	33032522158326.2\\
-9.32160804	35691914339897.3\\
-9.36683417	38551204026095.3\\
-9.4120603	41624356372873.2\\
-9.45728643	44926238364588.5\\
-9.50251256	48472672472399.1\\
-9.54773869	52280493366340.5\\
-9.59296482	56367607259008.2\\
-9.63819095	60753054065642.7\\
-9.68341709	65457074706447.7\\
-9.72864322	70501179167793.9\\
-9.77386935	75908220995300.4\\
-9.81909548	81702473021700.5\\
-9.86432161	87909710160957.6\\
-9.90954774	94557293096419.3\\
-9.95477387	101674259806590\\
-10	109291416242262\\
-};
-\addlegendentry{$Z^{\mathrm{T}}WZ$};
-
-\addplot [color=black,solid,line width=2.0pt]
-  table[row sep=crcr]{%
-1	560454412409859\\
-1.18367347	42498932093520.3\\
-1.36734694	5123890528457.51\\
-1.55102041	898105464233.222\\
-1.73469388	211017639202.433\\
-1.91836735	62169676611.3565\\
-2.10204082	21907648647.9303\\
-2.28571429	8926402639.07259\\
-2.46938776	4099829681.95167\\
-2.65306122	2080990765.85216\\
-2.83673469	1149170154.28539\\
-3.02040816	681802436.93214\\
-3.20408163	430217654.276045\\
-3.3877551	286338901.782842\\
-3.57142857	199653116.003929\\
-3.75510204	145016493.147664\\
-3.93877551	109206268.302508\\
-4.12244898	84925264.6026608\\
-4.30612245	67971453.1086336\\
-4.48979592	55832260.7758454\\
-4.67346939	46954284.3116833\\
-4.85714286	40348335.8101153\\
-5.04081633	35368028.5023324\\
-5.2244898	31581611.3051586\\
-5.40816327	28695666.7537723\\
-5.59183673	26508608.7673693\\
-5.7755102	24881882.2485996\\
-5.95918367	23722098.5228357\\
-6.14285714	22970352.5858438\\
-6.32653061	22596848.7230199\\
-6.51020408	22600475.7811779\\
-6.69387755	23014954.4581165\\
-6.87755102	23927246.9235142\\
-7.06122449	25524016.4254314\\
-7.24489796	28202140.1298424\\
-7.42857143	32758502.5023493\\
-7.6122449	40383651.4423756\\
-7.79591837	52193820.5722562\\
-7.97959184	69216418.0492402\\
-8.16326531	92847067.5423836\\
-8.34693878	125078476.218031\\
-8.53061224	168621384.493642\\
-8.71428571	227064562.415315\\
-8.89795918	305097706.446344\\
-9.08163265	408802687.901804\\
-9.26530612	546022951.373956\\
-9.44897959	726825866.229147\\
-9.63265306	964077206.835893\\
-9.81632653	1274151329.46174\\
-10	1677805397.01432\\
-};
-\addlegendentry{$Z^{\mathrm{T}}Z$};
-
-\addplot [color=blue,dashed,line width=2.0pt,forget plot]
-  table[row sep=crcr]{%
-1	323070.674066522\\
-10	323070.674066522\\
-};
-\addplot [color=black,dashed,line width=2.0pt,forget plot]
-  table[row sep=crcr]{%
-1	22596848.7230199\\
-10	22596848.7230199\\
-};
-\addplot [color=blue,dashed,line width=2.0pt,forget plot]
-  table[row sep=crcr]{%
-2.6281407	100000\\
-2.6281407	1e+16\\
-};
-\addplot [color=black,dashed,line width=2.0pt,forget plot]
-  table[row sep=crcr]{%
-6.32653061	100000\\
-6.32653061	1e+16\\
-};
-\addplot [color=black,only marks,mark=*,mark options={solid,fill=green},forget plot]
-  table[row sep=crcr]{%
-2.6281407	323070.674066522\\
-};
-\addplot [color=black,only marks,mark=*,mark options={solid,fill=red},forget plot]
-  table[row sep=crcr]{%
-6.32653061	22596848.7230199\\
-};
-\end{axis}
-\end{tikzpicture}%
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/ACID.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/ACID.m
deleted file mode 100644
index cf35d471..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/ACID.m
+++ /dev/null
@@ -1,2378 +0,0 @@
-% =========================================================================
-% *** FUNCTION ACID
-% ***
-% *** MATLAB2TikZ ACID test functions
-% ***
-% =========================================================================
-% ***
-% *** Copyright (c) 2008--2014, Nico Schlömer <nico.schloemer@gmail.com>
-% *** All rights reserved.
-% ***
-% *** Redistribution and use in source and binary forms, with or without
-% *** modification, are permitted provided that the following conditions are
-% *** met:
-% ***
-% ***    * Redistributions of source code must retain the above copyright
-% ***      notice, this list of conditions and the following disclaimer.
-% ***    * Redistributions in binary form must reproduce the above copyright
-% ***      notice, this list of conditions and the following disclaimer in
-% ***      the documentation and/or other materials provided with the distribution
-% ***
-% *** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-% *** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-% *** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-% *** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-% *** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-% *** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-% *** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-% *** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-% *** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-% *** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-% *** POSSIBILITY OF SUCH DAMAGE.
-% ***
-% =========================================================================
-function [status] = ACID(k)
-
-  % assign the functions to test
-  testfunction_handles = {                        ...
-                           @multiline_labels    , ...
-                           @plain_cos           , ...
-                           @sine_with_markers   , ...
-                           @markerSizes         , ...
-                           @markerSizes2        , ...
-                           @sine_with_annotation, ...
-                           @linesWithOutliers   , ...
-                           @peaks_contour       , ...
-                           @contourPenny        , ...
-                           @peaks_contourf      , ...
-                           @many_random_points  , ...
-                           @double_colorbar     , ...
-                           @randomWithLines     , ...
-                           @double_axes         , ...
-                           @double_axes2        , ...
-                           @logplot             , ...
-                           @colorbarLogplot     , ...
-                           @legendplot          , ...
-                           @legendplotBoxoff    , ...
-                           @moreLegends         , ...
-                           @zoom                , ...
-                           @quiveroverlap       , ...
-                           @quiverplot          , ...
-                           @quiver3plot         , ...
-                           @logicalImage        , ...
-                           @imagescplot         , ...
-                           @imagescplot2        , ...
-                           @stairsplot          , ...
-                           @polarplot           , ...
-                           @roseplot            , ...
-                           @compassplot         , ...
-                           @stemplot            , ...
-                           @stemplot2           , ...
-                           @bars                , ...
-                           @xAxisReversed       , ...
-                           @errorBars           , ...
-                           @errorBars2          , ...
-                           @subplot2x2b         , ...
-                           @manualAlignment     , ...
-                           @subplotCustom       , ...
-                           @legendsubplots      , ...
-                           @bodeplots           , ...
-                           @rlocusPlot          , ...
-                           @mandrillImage       , ...
-                           @besselImage         , ...
-                           @clownImage          , ...
-                           @zplanePlot1         , ...
-                           @zplanePlot2         , ...
-                           @freqResponsePlot    , ...
-                           @axesLocation        , ...
-                           @axesColors          , ...
-                           @multipleAxes        , ...
-                           @scatterPlotRandom   , ...
-                           @scatterPlot         , ...
-                           @scatter3Plot        , ...
-                           @spherePlot          , ...
-                           @surfPlot            , ...
-                           @surfPlot2           , ...
-                           @superkohle          , ...
-                           @meshPlot            , ...
-                           @ylabels             , ...
-                           @spectro             , ... % takes pretty long to LuaLaTeX-compile
-                           @mixedBarLine        , ...
-                           @decayingharmonic    , ...
-                           @texcolor            , ...
-                           @textext             , ...
-                           @texrandom           , ...
-                           @latexmath1          , ...
-                           @latexmath2          , ...
-                           @parameterCurve3d    , ...
-                           @parameterSurf       , ...
-                           @fill3plot           , ...
-                           @rectanglePlot       , ...
-                           @herrorbarPlot       , ...
-                           @hist3d              , ...
-                           @myBoxplot           , ...
-                           @areaPlot            , ...
-                           @customLegend        , ...
-                           @pixelLegend         , ...
-                           @croppedImage        , ...
-                           @pColorPlot          , ...
-                           @hgTransformPlot     , ...
-                           @scatterPlotMarkers  , ...
-                           @multiplePatches     , ...
-                           @logbaseline         , ...
-                           @alphaImage          , ...
-                           @annotation1         , ...
-                           @annotation2         , ...
-                           @annotation3         , ...
-                           @annotationText      , ...
-                           @annotationTextUnits , ...
-                           @imageOrientation_PNG, ...
-                           @imageOrientation_inline, ...
-                           @texInterpreter      , ...
-                           @stackedBarsWithOther, ...
-                           @colorbarLabelTitle
-                         };
-
-
-  numFunctions = length( testfunction_handles );
-
-  if (k<=0)
-      status = testfunction_handles;
-      return;  % This is used for querying numFunctions.
-
-  elseif (k<=numFunctions)
-      status = testfunction_handles{k}();
-      status.function = func2str(testfunction_handles{k});
-
-  else
-      error('testfunctions:outOfBounds', ...
-            'Out of bounds (number of testfunctions=%d)', numFunctions);
-  end
-
-end
-% =========================================================================
-function [stat] = multiline_labels()
-  stat.description = 'Test multiline labels and plot some points.';
-  stat.md5 = '2f08dbb3f961daa409c91ce0f5be65e4';
-
-  m = [0 1 1.5 1 -1];
-  plot(m,'*-'); hold on;
-  plot(m(end:-1:1)-0.5,'x--');
-
-  title({'multline','title'});
-  legend({sprintf('multi-line legends\ndo work 2^2=4'), ...
-        sprintf('second\nplot')});
-  xlabel(sprintf('one\ntwo\nthree'));
-  ylabel({'one','° ∞', 'three'});
-
-  set(gca,'YTick', []);
-  set(gca,'XTickLabel',{});
-end
-% =========================================================================
-function [stat] = plain_cos()
-  stat.description = 'Plain cosine function with minimumPointsDistance of $0.5$.';
-  stat.extraCleanfigureOptions = {'minimumPointsDistance', 0.5};
-  stat.md5 = '888ccfb8de61fe94ef1a4b21b515bbb2';
-
-  fplot( @cos, [0,2*pi] );
-
-  % add some minor ticks
-  set(gca, 'XMinorTick', 'on');
-  set(gca, 'YTick', []);
-
-  % Adjust the aspect ratio when in MATLAB(R) or Octave >= 3.4.
-  env = getEnvironment();
-  if strcmpi(env,'Octave') && isVersionBelow(env, 3,4)
-      % Octave < 3.4 doesn't have daspect unfortunately.
-  else
-      daspect([ 1 2 1 ])
-  end
-end
-% =========================================================================
-function [stat] = sine_with_markers ()
-  % Standard example plot from MATLAB's help pages.
-  stat.description = [ 'Twisted plot of the sine function. '                   ,...
-         'Pay particular attention to how markers and Infs/NaNs are treated.' ];
-  stat.md5 = '96317b8317f3eddee9ca01ca338f6c73';
-
-  x = -pi:pi/10:pi;
-  y = tan(sin(x)) - sin(tan(x));
-  y(3) = NaN;
-  y(7) = Inf;
-  y(11) = -Inf;
-  plot(x,y,'--o', 'Color', [0.6,0.2,0.0], ...
-                  'LineWidth', 1*360/127,...
-                  'MarkerEdgeColor','k',...
-                  'MarkerFaceColor',[0.3,0.1,0.0],...
-                  'MarkerSize', 5*360/127 );
-
-  set( gca, 'Color', [0.9 0.9 1], ...
-            'XTickLabel', [], ...
-            'YTickLabel', [] ...
-     );
-
-  set(gca,'XTick',[0]);
-  set(gca,'XTickLabel',{'null'});
-end
-% =========================================================================
-function [stat] = markerSizes()
-  stat.description = 'Marker sizes.';
-  stat.md5 = '466116e445acacf20b4d712600a43a63';
-
-  hold on;
-
-  h = fill([1 1 2 2],[1 2 2 1],'r');
-  set(h,'LineWidth',10);
-
-  plot([0],[0],'go','Markersize',14,'LineWidth',10)
-  plot([0],[0],'bo','Markersize',14,'LineWidth',1)
-end
-% =========================================================================
-function [stat] = markerSizes2()
-  stat.description = 'Line plot with with different marker sizes.';
-  stat.md5 = '0392b76c0de39655f33710fbd6bd5ac8';
-
-  hold on;
-  grid on;
-
-  n = 1:10;
-  d = 10;
-  s = round(linspace(6,25,10));
-  e = d * ones(size(n));
-  style = {'bx','rd','go','c.','m+','y*','bs','mv','k^','r<','g>','cp','bh'};
-  nStyles = numel(style);
-
-  for ii = 1:nStyles
-      for jj = 1:10
-        plot(n(jj), ii * e(jj),style{ii},'MarkerSize',s(jj));
-      end
-  end
-  xlim([min(n)-1 max(n)+1]);
-  ylim([0 d*(nStyles+1)]);
-  set(gca,'XTick',n,'XTickLabel',s,'XTickLabelMode','manual');
-end
-% =========================================================================
-function [stat] = sine_with_annotation ()
-  stat.description = [ 'Plot of the sine function. ',...
-        'Pay particular attention to how titles and annotations are treated.' ];
-  stat.md5 = 'a59a2a2295b5db533cc733feceda974b';
-
-  x = -pi:.1:pi;
-  y = sin(x);
-  h = plot(x,y);
-  set(gca,'XTick',-pi:pi/2:pi);
-
-  set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'});
-
-  xlabel('-\pi \leq \Theta \leq \pi');
-  ylabel('sin(\Theta)');
-  title({'Plot of sin(\Theta)','subtitle','and here''s one really long subtitle' });
-  text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)',...
-      'HorizontalAlignment','left');
-
-  % Doesn't work in Octave
-  %set(findobj(gca,'Type','line','Color',[0 0 1]),...
-  %    'Color','red',...
-  %    'LineWidth',10);
-
-end
-% =========================================================================
-function [stat] = linesWithOutliers()
-    stat.description = 'Lines with outliers.';
-    stat.md5 = 'ea2084452c49d1a6e0379739371b2e0a';
-
-    far = 200;
-    x = [ -far, -1,   -1,  -far, -10, -0.5, 0.5, 10,  far, 1,   1,    far, 10,   0.5, -0.5, -10,  -far ];
-    y = [ -10,  -0.5, 0.5, 10,   far, 1,    1,   far, 10,  0.5, -0.5, -10, -far, -1,  -1,   -far, -0.5 ];
-    plot( x, y,'o-');
-    axis( [-2,2,-2,2] );
-end
-% =========================================================================
-function [stat] = peaks_contour()
-  stat.description = 'Test contour plots.';
-  stat.md5 = 'fd564136304fa8e0dac8365abee077b5';
-
-  [C, h] = contour(peaks(20),10);
-  clabel(C, h);
-
-  % remove y-ticks
-  set(gca,'YTickLabel',[]);
-  set(gca,'YTick',[]);
-
-  colormap winter;
-
-end
-% =========================================================================
-function [stat] = contourPenny()
-  stat.description = 'Contour plot of a US\$ Penny.';
-  stat.md5 = '2bcbbf33b2b4a3de6fe3c282acdbf6ae';
-  stat.issues = [49 404];
-
-  if ~exist('penny.mat','file')
-      fprintf( 'penny data set not found. Skipping.\n\n' );
-      stat.skip = true;
-      return;
-  end
-
-  load penny;
-  contour(flipud(P));
-  axis square;
-
-end
-% =========================================================================
-function [stat] = peaks_contourf ()
-  stat.description = 'Test the contourfill plots.';
-  stat.md5 = '515a8b6209314b8a6ef0051b49b69508';
-
-  contourf(peaks(20), 10);
-  colorbar();
-  legend('my legend');
-%    colorbar('NorthOutside');
-%    colorbar('SouthOutside');
-%    colorbar('WestOutside');
-
-%  colormap([0:0.1:1; 1:-0.1:0; 0:0.1:1]')
-  colormap hsv;
-
-end
-% =========================================================================
-function [stat] = double_colorbar()
-  stat.description = 'Double colorbar.';
-  stat.md5 = '';
-
-  vspace = linspace(-40,40,20);
-  speed_map = magic(20).';
-  Q1_map = magic(20);
-
-  subplot(1, 2, 1);
-  contour(vspace(9:17),vspace(9:17),speed_map(9:17,9:17),20)
-  colorbar
-  axis tight
-  axis square
-  xlabel('$v_{2d}$')
-  ylabel('$v_{2q}$')
-
-  subplot(1, 2, 2)
-  contour(vspace(9:17),vspace(9:17),Q1_map(9:17,9:17),20)
-  colorbar
-  axis tight
-  axis square
-  xlabel('$v_{2d}$')
-  ylabel('$v_{2q}$')
-end
-% =========================================================================
-function [stat] = randomWithLines()
-  stat.description = 'Lissajous points with lines.';
-  stat.md5 = '9ddd96d692c4262ec581bbddea5dc5c0';
-
-  beta = 42.42;
-  t = 1:150;
-  X = [sin(t); cos(beta * t)].';
-
-  %X = randn(150,2);
-  X(:,1) = (X(:,1) * 90) + 75;
-  plot(X(:,1),X(:,2),'o');
-  hold on;
-  M(1)=min(X(:,1));
-  M(2)=max(X(:,1));
-  mn = mean(X(:,2));
-  s  = std(X(:,2));
-  plot(M,[mean(X(:,2)) mean(X(:,2))],'k-');
-  plot(M,mn + 1*[s s],'--');
-  plot(M,mn - 2*[s s],'--');
-  axis('tight');
-end
-% =========================================================================
-function [stat] = many_random_points ()
-  stat.description = 'Test the performance when drawing many points.';
-  stat.md5 = '759011e36b98a371a628a67cc29ca81d';
-
-  n = 1e3;
-  alpha = 1024;
-  beta = 1;
-  gamma = 5.47;
-
-  x = cos( (1:n) * alpha );
-  y = sin( (1:n) * beta + gamma);
-
-  plot ( x, y, '.r' );
-  axis([ 0, 1, 0, 1 ])
-end
-% =========================================================================
-function [stat] = double_axes()
-  stat.description = 'Double axes';
-  stat.md5 = '';
-
-  dyb = 0.1;   % normalized units, bottom offset
-  dyt = 0.1;   % separation between subsequent axes bottoms
-
-  x = [0; 24; 48; 72; 96;];
-  y = [7.653 7.473 7.637 7.652 7.651];
-
-  grid on
-  h1 = plot(x,y,'Color','k');
-
-  % following code is taken from `floatAxisX.m'
-
-  % get position of axes
-  allAxes = findobj(gcf,'type','axes');
-  naxes = length(allAxes);
-  ax1Pos = get(allAxes(naxes),'position');
-
-  % rescale and reposition all axes to handle additional axes
-  for an=1:naxes-1
-     if isequal(rem(an,2),0)
-        % even ones in array of axes handles represent axes on which lines are plotted
-        set(allAxes(an),'Position',[ax1Pos(1,1) ax1Pos(1,2)+dyb ax1Pos(1,3) ax1Pos(1,4)-dyt])
-     else
-        % odd ones in array of axes handles represent axes on which floating x-axss exist
-        axPos = get(allAxes(an),'Position');
-        set(allAxes(an),'Position',[axPos(1,1) axPos(1,2)+dyb axPos(1,3) axPos(1,4)])
-     end
-  end
-  % first axis a special case (doesn't fall into even/odd scenario of figure children)
-  set(allAxes(naxes),'Position',[ax1Pos(1,1) ax1Pos(1,2)+dyb ax1Pos(1,3) ax1Pos(1,4)-dyt])
-  ylimit1 = get(allAxes(naxes),'Ylim');
-
-  % get new position for plotting area of figure
-  ax1Pos = get(allAxes(naxes),'position');
-
-  % axis to which the floating axes will be referenced
-  ref_axis = allAxes(1);
-  refPosition = get(ref_axis,'position');
-
-  % overlay new axes on the existing one
-  ax2 = axes('Position',ax1Pos);
-  % plot data and return handle for the line
-  hl1 = plot(x,y,'k');
-  % make the new axes invisible, leaving only the line visible
-  set(ax2,'visible','off','ylim',ylimit1)
-
-  % set the axis limit mode so that it does not change if the
-  % user resizes the figure window
-  set(ax2,'xLimMode','manual')
-
-  % set up another set of axes to act as floater
-  ax3 = axes('Position',[refPosition(1) refPosition(2)-dyb refPosition(3) 0.01]);
-
-  set(ax3,'box','off','ycolor','w','yticklabel',[],'ytick',[])
-  set(ax3,'XMinorTick','on','color','none','xcolor',get(hl1,'color'))
-
-  xlabel('secondary axis')
-end
-% =========================================================================
-function [stat] = double_axes2()
-  stat.description = 'Double overlayed axes with a flip.' ;
-  stat.md5 = '245182a1593794038e5a601a5b7f6a42';
-
-  ah1=axes;
-  ph=plot([0 1],[0 1]);
-
-  title('Title')
-  ylabel('y')
-  xlabel('x')
-
-  % add a new set of axes
-  % to make a gray grid
-  ah2=axes;
-  % make the background transparent
-  set(ah1,'color','none')
-  % move these axes to the back
-  set(gcf,'Child',flipud(get(gcf,'Children')))
-end
-% =========================================================================
-function [stat] = logplot()
-  stat.description = 'Test logscaled axes.';
-  stat.md5 = '25d66c6fdd92aeb32ddaff72d310e6f5';
-
-  x = logspace(-1,2);
-  loglog(x,exp(x),'-s')
-  grid on;
-end
-% =========================================================================
-function [stat] = colorbarLogplot()
-  stat.description = 'Logscaled colorbar.';
-  stat.md5 = '8c99ef632b10a219daa1f09083d18bf5';
-
-  imagesc([1 10 100]);
-  try
-    set(colorbar(), 'YScale', 'log');
-  catch
-    warning('M2TAcid:LogColorBar',...
-        'Logarithmic Colorbars are not documented in MATLAB R2014b and Octave');
-    stat.skip = true;
-  end
-end
-% =========================================================================
-function [stat] = legendplot()
-  stat.description = 'Test inserting of legends.';
-  stat.md5 = 'a9e097172b3d79183b8ecbebeb4d8bed';
-
-%    x = -pi:pi/20:pi;
-%    plot(x,cos(x),'-ro',x,sin(x),'-.b');
-%    h = legend('one pretty long legend cos_x','sin_x',2);
-%    set(h,'Interpreter','none');
-
-  x = 0:0.01:2*pi;
-  plot( x, sin(x), 'b', ...
-        x, cos(x), 'r' );
-  xlim( [0 2*pi] )
-  ylim( [-0.9 0.9] )
-  title( '{tikz test}' )
-  xlabel( '{x-Values}' )
-  ylabel( '{y-Values}' )
-  legend( 'sin(x)', 'cos(x)', 'Location','NorthOutside', ...
-                              'Orientation', 'Horizontal' );
-  grid on;
-end
-% =========================================================================
-function [stat] = legendplotBoxoff ()
-  stat.description = 'Test inserting of legends.';
-  stat.md5 = '7b378300e46c789401e388cf7501ccd8';
-
-  x = -pi:pi/20:pi;
-  plot( x, cos(x),'-ro',...
-        x, sin(x),'-.b' ...
-      );
-  h = legend( 'cos_x', 'one pretty long legend sin_x', 2 );
-  set( h, 'Interpreter', 'none' );
-  legend boxoff;
-end
-% =========================================================================
-function [stat] = moreLegends()
-  stat.description = 'More legends.';
-
-  x = 0:.1:7;
-  y1 = sin(x);
-  y2 = cos(x);
-  [ax,h1,h2] = plotyy(x,y1,x,y2);
-  legend([h1;h2],'Sine','Cosine');
-end
-% =========================================================================
-function [stat] = zoom()
-  stat.description = 'Plain cosine function, zoomed in.';
-
-  fplot( @sin, [0,2*pi], '-*' );
-  hold on;
-  delta = pi/10;
-
-  plot( [pi/2, pi/2], [1-2*delta, 1+2*delta], 'r' ); % vertical line
-  plot( [pi/2-2*delta, pi/2+2*delta], [1, 1], 'g' ); % horizontal line
-
-  % diamond
-  plot( [ pi/2-delta, pi/2 , pi/2+delta, pi/2 , pi/2-delta ], ...
-        [ 1       , 1-delta,        1, 1+delta, 1        ], 'y'      );
-
-  % boundary lines with markers
-  plot([ pi/2-delta, pi/2 , pi/2+delta, pi/2+delta pi/2+delta, pi/2, pi/2-delta, pi/2-delta ], ...
-       [ 1-delta, 1-delta, 1-delta, 1, 1+delta, 1+delta, 1+delta, 1 ], ...
-       'ok', ...
-       'MarkerSize', 20, ...
-       'MarkerFaceColor', 'g' ...
-       );
-
-  hold off;
-
-  axis([pi/2-delta, pi/2+delta, 1-delta, 1+delta] );
-end
-% =========================================================================
-function [stat] = bars()
-  stat.description = '2x2 Subplot with different bars';
-
-  % dataset grouped
-  bins = 10 * (-0.5:0.1:0.5);
-  numEntries = length(bins);
-
-  alpha = [13 11 7];
-  numBars = numel(alpha);
-  plotData   = zeros(numEntries, numBars);
-  for iBar = 1:numBars
-      plotData(:,iBar) = abs(round(100*sin(alpha(iBar)*(1:numEntries))));
-  end
-
-  % dataset stacked
-  [data,dummy,dummy] = svd(magic(7)); %#ok
-  Y = round(abs(data(2:6,2:4))*10);
-
-  subplot(2,2,1);
-  b1 = bar(bins,plotData,'grouped','BarWidth',1.5);
-  set(gca,'XLim',[1.25*min(bins) 1.25*max(bins)]);
-
-  subplot(2,2,2);
-  barh(bins, plotData, 'grouped', 'BarWidth', 1.3);
-
-  subplot(2,2,3);
-  bar(Y, 'stacked');
-
-  subplot(2,2,4);
-  b2= barh(Y,'stacked','BarWidth', 0.75);
-
-  set(b1(1),'FaceColor','m','EdgeColor','none')
-  set(b2(1),'FaceColor','c','EdgeColor','none')
-
-end
-% =========================================================================
-function [stat] = stemplot()
-  stat.description = 'A simple stem plot.' ;
-
-  x = 0:25;
-  y = [exp(-.07*x).*cos(x);
-       exp(.05*x).*cos(x)]';
-  h = stem(x, y);
-  legend( 'exp(-.07x)*cos(x)', 'exp(.05*x)*cos(x)', 'Location', 'NorthWest');
-  set(h(1),'MarkerFaceColor','blue')
-  set(h(2),'MarkerFaceColor','red','Marker','square')
-end
-% =========================================================================
-function [stat] = stemplot2()
-  stat.description = 'Another simple stem plot.';
-
-  x = 0:25;
-  y = [exp(-.07*x).*cos(x);
-       exp(.05*x).*cos(x)]';
-  h = stem(x, y, 'filled');
-  legend( 'exp(-.07x)*cos(x)', 'exp(.05*x)*cos(x)', 'Location', 'NorthWest');
-end
-% =========================================================================
-function [stat] = stairsplot()
-  stat.description = 'A simple stairs plot.' ;
-
-  x = linspace(-2*pi,2*pi,40);
-  stairs(x,sin(x))
-end
-% =========================================================================
-function [stat] = quiverplot()
-  stat.description = 'A combined quiver/contour plot of $x\exp(-x^2-y^2)$.' ;
-
-  [X,Y] = meshgrid(-2:.2:2);
-  Z = X.*exp(-X.^2 - Y.^2);
-  [DX,DY] = gradient(Z,.2,.2);
-  contour(X,Y,Z);
-  hold on
-  quiver(X,Y,DX,DY);
-  colormap hsv;
-  hold off
-end
-% =========================================================================
-function [stat] = quiver3plot()
-  stat.description = 'Three-dimensional quiver plot.' ;
-
-  vz = 10;            % Velocity
-  a = -32;            % Acceleration
-
-  t = 0:.1:1;
-  z = vz*t + 1/2*a*t.^2;
-
-  vx = 2;
-  x = vx*t;
-  vy = 3;
-  y = vy*t;
-
-  u = gradient(x);
-  v = gradient(y);
-  w = gradient(z);
-  scale = 0;
-  quiver3(x,y,z,u,v,w,scale)
-  view([70 18])
-end
-% =========================================================================
-function [stat] = quiveroverlap ()
-  stat.description = 'Quiver plot with avoided overlap.';
-
-  x = [0 1];
-  y = [0 0];
-  u = [1 -1];
-  v = [1 1];
-
-  quiver(x,y,u,v);
-end
-% =========================================================================
-function [stat] = polarplot ()
-  stat.description = 'A simple polar plot.' ;
-  stat.extraOptions = {'showHiddenStrings',true};
-
-  t = 0:.01:2*pi;
-  polar(t,sin(2*t).*cos(2*t),'--r')
-end
-% =========================================================================
-function [stat] = roseplot ()
-  stat.description = 'A simple rose plot.' ;
-  stat.extraOptions = {'showHiddenStrings',true};
-
-  theta = 2*pi*sin(linspace(0,8,100));
-  rose(theta);
-end
-% =========================================================================
-function [stat] = compassplot ()
-  stat.description = 'A simple compass plot.' ;
-  stat.extraOptions = {'showHiddenStrings',true};
-
-  Z = (1:20).*exp(1i*2*pi*cos(1:20));
-  compass(Z);
-end
-% =========================================================================
-function [stat] = logicalImage()
-  stat.description = 'An image plot of logical matrix values.' ;
-
-  [plotData,dummy,dummy] = svd(magic(10)); %#ok
-  imagesc(plotData > mean(plotData(:)));
-end
-% =========================================================================
-function [stat] = imagescplot()
-  stat.description = 'An imagesc plot of $\sin(x)\cos(y)$.';
-
-  pointsX = 10;
-  pointsY = 20;
-  x = 0:1/pointsX:1;
-  y = 0:1/pointsY:1;
-  z = sin(x)'*cos(y);
-  imagesc(x,y,z);
-end
-% =========================================================================
-function [stat] = imagescplot2()
-  stat.description = 'A trimmed imagesc plot.';
-
-  a=magic(10);
-  x=-5:1:4;
-  y=10:19;
-  imagesc(x,y,a)
-
-  xlim([-3,2])
-  ylim([12,15])
-
-  grid on;
-end
-% =========================================================================
-function [stat] = xAxisReversed ()
-  stat.description = 'Reversed axes with legend.' ;
-
-  n = 100;
-  x = (0:1/n:1);
-  y = exp(x);
-  plot(x,y);
-  set(gca,'XDir','reverse');
-  set(gca,'YDir','reverse');
-  legend( 'Location', 'SouthWest' );
-end
-% =========================================================================
-function [stat] = subplot2x2b ()
-  stat.description = 'Three aligned subplots on a $2\times 2$ subplot grid.' ;
-
-  x = (1:5);
-
-  subplot(2,2,1);
-  y = sin(x.^3);
-  plot(x,y);
-
-  subplot(2,2,2);
-  y = cos(x.^3);
-  plot(x,y);
-
-  subplot(2,2,3:4);
-  y = tan(x);
-  plot(x,y);
-end
-% =========================================================================
-function [stat] = manualAlignment()
-  stat.description = 'Manually aligned figures.';
-
-  xrange = linspace(-3,4,2*1024);
-
-  axes('Position', [0.1 0.1 0.85 0.15]);
-  plot(xrange);
-  ylabel('$n$');
-  xlabel('$x$');
-
-  axes('Position', [0.1 0.25 0.85 0.6]);
-  plot(xrange);
-  set(gca,'XTick',[]);
-end
-% =========================================================================
-function [stat] = subplotCustom ()
-  stat.description = 'Three customized aligned subplots.' ;
-
-  x = (1:5);
-
-  y = cos(sqrt(x));
-  subplot( 'Position', [0.05 0.1 0.3 0.3] )
-  plot(x,y);
-
-  y = sin(sqrt(x));
-  subplot( 'Position', [0.35 0.5 0.3 0.3] )
-  plot(x,y);
-
-  y = tan(sqrt(x));
-  subplot( 'Position', [0.65 0.1 0.3 0.3] )
-  plot(x,y);
-end
-% =========================================================================
-function [stat] = errorBars ()
-  stat.description = 'Generic error bar plot.';
-
-  plotData = 1:10;
-  [u,s,v] = svd(magic(11));
-
-  eH = abs(u(1:10,5));
-  eL = abs(v(1:10,9));
-
-  errorbar(1:10, plotData, eL, eH, '.')
-end
-% =========================================================================
-function [stat] = errorBars2 ()
-  stat.description = 'Another error bar example.';
-
-  data = load( 'myCount.dat' );
-  y = mean( data, 2 );
-  e = std( data, 1, 2 );
-  errorbar( y, e, 'xr' );
-end
-% =========================================================================
-function [stat] = legendsubplots()
-  stat.description = [ 'Subplots with legends. ' , ...
-    'Increase value of "length" in the code to stress-test your TeX installation.' ];
-
-  % size of upper subplot
-  rows = 4;
-  % number of points.  A large number here (eg 1000) will stress-test
-  % matlab2tikz and your TeX installation.  Be prepared for it to run out of
-  % memory
-  length = 100;
-
-  % generate some spurious data
-  t = 0:(4*pi)/length:4*pi;
-  x = t;
-  a = t;
-  y = sin(t) + 0.1*sin(134*t.^2);
-  b = sin(t) + 0.1*cos(134*t.^2) + 0.05*cos(2*t);
-
-  % plot the top figure
-  subplot(rows+2,1,1:rows);
-
-  % first line
-  sigma1 = std(y);
-  tracey = mean(y,1);
-  plot123 = plot(x,tracey,'b-');
-
-  hold on
-
-  % second line
-  sigma2 = std(b);
-  traceb = mean(b,1);
-  plot456 = plot(a,traceb,'r-');
-
-  spec0 = ['Mean V(t)_A (\sigma \approx ' num2str(sigma1,'%0.4f') ')'];
-  spec1 = ['Mean V(t)_B (\sigma \approx ' num2str(sigma2,'%0.4f') ')'];
-
-  hold off
-  %plot123(1:2)
-  legend([plot123; plot456],spec0,spec1)
-  legend boxoff
-  xlabel('Time/s')
-  ylabel('Voltage/V')
-  title('Time traces');
-
-  % now plot a differential trace
-  subplot(rows+2,1,rows+1:rows+2)
-  plot7 = plot(a,traceb-tracey,'k');
-
-  legend(plot7,'\Delta V(t)')
-  legend boxoff
-  xlabel('Time/s')
-  ylabel('\Delta V')
-  title('Differential time traces');
-end
-% =========================================================================
-function [stat] = bodeplots()
-  stat.description = 'Bode plots with legends.';
-
-  if isempty(which('tf'))
-      fprintf( 'function "tf" not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  Rc=1;
-  C=1.5e-6; %F
-
-  % Set inductors
-  L1=4e-3;
-  L2=0.8e-3;
-
-  % Resistances of inductors
-  R1=4;
-  R2=2;
-
-  % Transfer functions
-  % Building transfer functions
-  s=tf('s');
-  Zc=1/(s*C)+Rc;
-  Z1=s*L1+R1;
-  Z2=s*L2+R2;
-  LCLd=(Z2+Zc)/(Z1+Zc);
-  LCL=(s^2*C*L2+1)/(s^2*C*L1+1);
-
-  t=logspace(3,5,1000);
-  bode(LCL,t)
-  hold on
-  bode(LCLd,t)
-  title('Voltage transfer function of a LCL filter')
-  set(findall(gcf,'type','line'),'linewidth',1.5)
-  grid on
-
-  legend('Perfect LCL',' Real LCL','Location','SW')
-end
-% =========================================================================
-function [stat] = rlocusPlot()
-  stat.description = 'rlocus plot.';
-
-  if isempty(which('tf'))
-      fprintf( 'function "tf" not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  s=tf('s');
-  rlocus(tf([1 1],[4 3 1]))
-end
-% =========================================================================
-function [stat] = mandrillImage()
-  stat.description = 'Picture of a mandrill.';
-
-  if ~exist('mandrill.mat','file')
-      fprintf( 'mandrill data set not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  data = load( 'mandrill' );
-  image( data.X )       % show image
-  colormap( data.map )  % adapt colormap
-  axis image            % pixels should be square
-  axis off              % disable axis
-end
-% =========================================================================
-function [stat] = besselImage()
-  stat.description = 'Bessel function.';
-
-  nu   = -5:0.25:5;
-  beta = 0:0.05:2.5;
-
-  m = length(beta);
-  n = length(nu);
-  trace = zeros(m,n);
-  for i=1:length(beta);
-      for j=1:length(nu)
-              if (floor(nu(j))==nu(j))
-                  trace(i,j)=abs(besselj(nu(j),beta(i)));
-              end
-      end
-  end
-
-  imagesc(nu,beta,trace);
-  colorbar()
-  xlabel('Order')
-  ylabel('\beta')
-  set(gca,'YDir','normal')
-end
-% =========================================================================
-function [stat] = clownImage()
-  stat.description = 'Picture of a clown.';
-
-  if ~exist('clown.mat','file')
-      fprintf( 'clown data set not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  data = load( 'clown' );
-  imagesc( data.X )
-  colormap( gray )
-end
-% =========================================================================
-function [stat] = zplanePlot1()
-  stat.description = 'Representation of the complex plane with zplane.';
-
-  % check of the signal processing toolbox is installed
-  if length(ver('signal')) ~= 1
-      fprintf( 'Signal toolbox not found. Skip.\n\n' );
-      stat.skip = true;
-
-      return
-  end
-
-  [z,p] = ellip(4,3,30,200/500);
-  zplane(z,p);
-  title('4th-Order Elliptic Lowpass Digital Filter');
-end
-% =========================================================================
-function [stat] = zplanePlot2()
-  stat.description = 'Representation of the complex plane with zplane.';
-  stat.closeall = true;
-
-  % check of the signal processing toolbox is installed
-  if length(ver('signal')) ~= 1
-      fprintf( 'Signal toolbox not found. Skip.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  [b,a] = ellip(4,3,30,200/500);
-  Hd = dfilt.df1(b,a);
-  zplane(Hd) % FIXME: This opens a new figure that doesn't get closed automatically
-end
-% =========================================================================
-function [stat] = freqResponsePlot()
-  stat.description = 'Frequency response plot.';
-  stat.closeall = true;
-  stat.issues = [409];
-
-  % check of the signal processing toolbox is installed
-  if length(ver('signal')) ~= 1
-      fprintf( 'Signal toolbox not found. Skip.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  b  = fir1(80,0.5,kaiser(81,8));
-  hd = dfilt.dffir(b);
-  freqz(hd); % FIXME: This opens a new figure that doesn't get closed automatically
-end
-% =========================================================================
-function [stat] = axesLocation()
-  stat.description = 'Swapped axis locations.';
-
-  plot(cos(1:10));
-  set(gca,'XAxisLocation','top');
-  set(gca,'YAxisLocation','right');
-end
-% =========================================================================
-function [stat] = axesColors()
-  stat.description = 'Custom axes colors.';
-
-  plot(sin(1:15));
-  set(gca,'XColor','g','YColor','b');
-%  set(gca,'XColor','b','YColor','k');
-  box off;
-end
-% =========================================================================
-function [stat] = multipleAxes()
-  stat.description = 'Multiple axes.';
-
-  x1 = 0:.1:40;
-  y1 = 4.*cos(x1)./(x1+2);
-  x2 = 1:.2:20;
-  y2 = x2.^2./x2.^3;
-
-  line(x1,y1,'Color','r');
-  ax1 = gca;
-  set(ax1,'XColor','r','YColor','r')
-
-  ax2 = axes('Position',get(ax1,'Position'),...
-             'XAxisLocation','top',...
-             'YAxisLocation','right',...
-             'Color','none',...
-             'XColor','k','YColor','k');
-
-  line(x2,y2,'Color','k','Parent',ax2);
-
-  xlimits = get(ax1,'XLim');
-  ylimits = get(ax1,'YLim');
-  xinc = (xlimits(2)-xlimits(1))/5;
-  yinc = (ylimits(2)-ylimits(1))/5;
-
-  % Now set the tick mark locations.
-  set(ax1,'XTick',xlimits(1):xinc:xlimits(2) ,...
-          'YTick',ylimits(1):yinc:ylimits(2) )
-end
-% =========================================================================
-function [stat] = scatterPlotRandom()
-  stat.description = 'Generic scatter plot.';
-
-  n = 1:100;
-  scatter(n, n, 1000*(1+cos(n.^1.5)), n.^8);
-  colormap autumn;
-end
-% =========================================================================
-function [stat] = scatterPlot()
-  stat.description = 'Scatter plot with MATLAB(R) stat.';
-  if ~exist('seamount.mat','file')
-      fprintf( 'seamount data set not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  data = load( 'seamount' );
-  scatter( data.x, data.y, 5, data.z, '^' );
-end
-% =========================================================================
-function [stat] = scatterPlotMarkers()
-  stat.description = 'Scatter plot with with different marker sizes and legend.';
-
-  n = 1:10;
-  d = 10;
-  s = d^2 * n;
-  e = d * ones(size(n));
-  grid on;
-  hold on;
-
-  style = {'bx','rd','go','c.','m+','y*','bs','mv','k^','r<','g>','cp','bh'};
-  names = {'bx','rd','go','c.','m plus','y star','bs','mv',...
-           'k up triangle','r left triangle','g right triangle','cp','bh'};
-
-  nStyles = numel(style);
-  for ii = 1:nStyles
-      scatter(n, ii * e, s, style{ii});
-  end
-  xlim([min(n)-1 max(n)+1]);
-  ylim([0 d*(nStyles+1)]);
-  set(gca,'XTick',n,'XTickLabel',s,'XTickLabelMode','manual');
-
-end
-% =========================================================================
-function [stat] = scatter3Plot()
-  stat.description = 'Scatter3 plot with MATLAB(R) stat.';
-
-  [x,y,z] = sphere(16);
-  X = [x(:)*.5 x(:)*.75 x(:)];
-  Y = [y(:)*.5 y(:)*.75 y(:)];
-  Z = [z(:)*.5 z(:)*.75 z(:)];
-  S = repmat([1 .75 .5]*10,numel(x),1);
-  C = repmat([1 2 3],numel(x),1);
-  scatter3(X(:),Y(:),Z(:),S(:),C(:),'filled'), view(-60,60)
-  view(40,35)
-end
-% =========================================================================
-function [stat] = spherePlot()
-  stat.description = 'Plot a sphere.';
-
-  sphere(30);
-  title('a sphere: x^2+y^2+z^2');
-  xlabel('x');
-  ylabel('y');
-  zlabel('z');
-  axis equal;
-end
-% =========================================================================
-function [stat] = surfPlot()
-  stat.description = 'Surface plot.';
-
-  [X,Y,Z] = peaks(30);
-  surf(X,Y,Z)
-  colormap hsv
-  axis([-3 3 -3 3 -10 5])
-  set(gca,'View',[-37.5,36]);
-
-  hc = colorbar('YTickLabel', ...
-                {'Freezing','Cold','Cool','Neutral',...
-                 'Warm','Hot','Burning','Nuclear'});
-  set(get(hc,'Xlabel'),'String','Multitude');
-  set(get(hc,'Ylabel'),'String','Magnitude');
-  set(hc,'YTick',0:0.7:7);
-  set(hc,'YTickLabel',...
-         {'-0.8' '-0.6' '-0.4' '-0.2' '0.0' ...
-          '0.2' '0.4' '0.6' '0.8' '0.10' '0.12'});
-
-  set(get(hc,'Title'),...
-      'String', 'k(u,v)', ...
-      'FontSize', 12, ...
-      'interpreter', 'tex');
-
-  xlabel( 'x' )
-  ylabel( 'y' )
-  zlabel( 'z' )
-end
-% =========================================================================
-function [stat] = surfPlot2()
-  stat.description = 'Another surface plot.';
-
-  z = [ ones(15, 5) zeros(15,5);
-        zeros(5, 5) zeros( 5,5)];
-
-  surf(abs(fftshift(fft2(z))) + 1);
-  set(gca,'ZScale','log');
-
-  legend( 'legendary', 'Location', 'NorthEastOutside' );
-end
-% =========================================================================
-function [stat] = superkohle()
-
-  if ~exist('initmesh')
-      fprintf( 'initmesh() not found. Skipping.\n\n' );
-      stat.skip = true;
-      return;
-  end
-
-  stat.description = 'Superkohle plot.';
-
-  x1=0;
-  x2=pi;
-  y1=0;
-  y2=pi;
-  omegashape = [2 2 2 2             % 2 = line segment; 1 = circle segment; 4 = elipse segment
-              x1 x2 x2 x1         % start point x
-              x2 x2 x1 x1         % end point x
-              y1 y1 y2 y2         % start point y
-              y1 y2 y2 y1         % end point y
-              1 1 1 1
-              0 0 0 0];
-  [xy,edges,tri] = initmesh(omegashape,'Hgrad',1.05);
-  mmin = 1;
-  while size(xy,2) < mmin
-      [xy,edges,tri] = refinemesh(omegashape,xy,edges,tri);
-  end
-  m = size(xy,2);
-  x = xy(1,:)';
-  y = xy(2,:)';
-  y0 = cos(x).*cos(y);
-
-  pdesurf(xy,tri,y0(:,1));
-  title('y_0');
-  xlabel('x1 axis');
-  ylabel('x2 axis');
-  axis([0 pi 0 pi -1 1]);
-  grid on;
-end
-% =========================================================================
-function [stat] = meshPlot()
-  stat.description = 'Mesh plot.';
-
-  [X,Y,Z] = peaks(30);
-  mesh(X,Y,Z)
-  colormap hsv
-  axis([-3 3 -3 3 -10 5])
-
-  xlabel( 'x' )
-  ylabel( 'y' )
-  zlabel( 'z' )
-end
-% =========================================================================
-function [stat] = ylabels()
-  stat.description = 'Separate y-labels.';
-
-  x = 0:.01:2*pi;
-  H = plotyy(x,sin(x),x,3*cos(x));
-
-  ylabel(H(1),'sin(x)');
-  ylabel(H(2),'3cos(x)');
-
-  xlabel(gca,'time')
-end
-% =========================================================================
-function [stat] = spectro()
-  stat.description = 'Spectrogram plot';
-
-  % In the original test case, this is 0:0.001:2, but that takes forever
-  % for LaTeX to process.
-  if isempty(which('chirp'))
-      fprintf( 'chirp() not found. Skipping.\n\n' );
-      stat.description = [];
-      stat.skip = true;
-      return
-  end
-
-  T = 0:0.005:2;
-  X = chirp(T,100,1,200,'q');
-  spectrogram(X,128,120,128,1E3);
-  title('Quadratic Chirp');
-end
-% =========================================================================
-function [stat] = mixedBarLine()
-  stat.description = 'Mixed bar/line plot.';
-
-  [x,s,v] = svd(magic(33));
-  x = x(end:-1:end-1000);
-  hist(x,10)
-  y = ylim;
-  hold on;
-  plot([mean(x) mean(x)], y, '-r');
-  hold off;
-end
-% =========================================================================
-function [stat] = decayingharmonic()
-  stat.description = 'Decaying harmonic oscillation with \TeX{} title.';
-
-  % Based on an example from
-  % http://www.mathworks.com/help/techdoc/creating_plots/f0-4741.html#f0-28104
-  A = 0.25;
-  alpha = 0.007;
-  beta = 0.17;
-  t = 0:901;
-  y = A * exp(-alpha*t) .* sin(beta*t);
-  plot(t, y)
-  title('{\itAe}^{-\alpha\itt}sin\beta{\itt}, \alpha<<\beta, \beta>>\alpha, \alpha<\beta, \beta>\alpha')
-  xlabel('Time \musec.')
-  ylabel('Amplitude')
-end
-% =========================================================================
-function [stat] = texcolor()
-  stat.description = 'Multi-colored text using \TeX{} commands.';
-
-  % Taken from an example at
-  % http://www.mathworks.com/help/techdoc/creating_plots/f0-4741.html#f0-28104
-  text(.1, .5, ['\fontsize{16}black {\color{magenta}magenta '...
-                '\color[rgb]{0 .5 .5}teal \color{red}red} black again'])
-end
-% =========================================================================
-function [stat] = textext()
-  stat.description = 'Formatted text and special characters using \TeX{}.';
-
-  % Taken from an example at
-  % http://www.mathworks.com/help/techdoc/creating_plots/f0-4741.html#f0-28303
-  txstr(1) = { 'Each cell is a quoted string' };
-  txstr(2) = { 'You can specify how the string is aligned' };
-  txstr(3) = { 'You can use LaTeX symbols like \pi \chi \Xi' };
-  txstr(4) = { '\bfOr use bold \rm\itor italic font\rm' };
-  txstr(5) = { '\fontname{courier}Or even change fonts' };
-  plot( 0:6, sin(0:6) )
-  text( 5.75, sin(2.5), txstr, 'HorizontalAlignment', 'right' )
-end
-% =========================================================================
-function [stat] = texrandom()
-  stat.description = 'Random TeX symbols';
-
-  try
-      rng(42); %fix seed
-      %TODO: fully test tex conversion instead of a random subsample!
-  catch
-      warning('testfuncs:texrandom','Cannot fix seed for random generator!');
-  end
-
-  num = 20; % number of symbols per line
-  symbols = {'\it', '\bf', '\rm', '\sl',                                ...
-             '\alpha', '\angle', '\ast', '\beta', '\gamma', '\delta',   ...
-             '\epsilon', '\zeta', '\eta', '\theta', '\vartheta',        ...
-             '\iota', '\kappa', '\lambda', '\mu', '\nu', '\xi', '\pi',  ...
-             '\rho', '\sigma', '\varsigma', '\tau', '\equiv', '\Im',    ...
-             '\otimes', '\cap', '{\int}', '\rfloor', '\lfloor', '\perp',...
-             '\wedge', '\rceil', '\vee', '\langle', '\upsilon', '\phi', ...
-             '\chi', '\psi', '\omega', '\Gamma', '\Delta', '\Theta',    ...
-             '\Lambda', '\Xi', '\Pi', '\Sigma', '\Upsilon', '\Phi',     ...
-             '\Psi', '\Omega', '\forall', '\exists', '\ni', '{\cong}',  ...
-             '\approx', '\Re', '\oplus', '\cup', '\subseteq', '\lceil', ...
-             '\cdot', '\neg', '\times', '\surd', '\varpi', '\rangle',   ...
-             '\sim', '\leq', '\infty', '\clubsuit', '\diamondsuit',     ...
-             '\heartsuit', '\spadesuit', '\leftrightarrow',             ...
-             '\leftarrow', '\Leftarrow', '\uparrow', '\rightarrow',     ...
-             '\Rightarrow', '\downarrow', '\circ', '\pm', '\geq',       ...
-             '\propto', '\partial', '\bullet', '\div', '\neq',          ...
-             '\aleph', '\wp', '\oslash', '\supseteq', '\nabla',         ...
-             '{\ldots}', '\prime', '\0', '\mid', '\copyright',          ...
-             '\o', '\in', '\subset', '\supset',                         ...
-             '\_', '\^', '\{', '\}', '$', '%', '#',                     ...
-             '(', ')', '+', '-', '=', '/', ',', '.', '<', '>',          ...
-             '!', '?', ':', ';', '*', '[', ']', '§', '"', '''',         ...
-             '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',          ...
-             'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',     ...
-             'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',     ...
-             'w', 'x', 'y', 'z',                                        ...
-             'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',     ...
-             'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',     ...
-             'W', 'X', 'Y', 'Z'                                         ...
-            };
-      % Note: Instead of '\ldots' the list of symbols contains the entry
-      %       '{\ldots}'. This is because TeX gives an error if it
-      %       encounters the sequence '$a_\ldots$' or '$a^\ldots$'. It
-      %       looks like that is a TeX bug. Nevertheless this sequence
-      %       could appear in the random output, therefore \ldots is
-      %       wrapped in braces since '$a_{\ldots}$' and '$a^{\ldots}$'
-      %       don't crash TeX.
-      %       Same thing with '\cong' and '\int'.
-      % \color{red} etc. isn't included
-      % \fontname{Times} etc. isn't included
-      % \fontsize{12} etc. isn't included
-
-  switch getEnvironment()
-      case 'MATLAB'
-          % MATLAB expects tilde and ampersand to be un-escaped and backslashes
-          % to be escaped
-          symbols = [ symbols, {'~', '&', '\\'} ];
-      case 'Octave'
-          % Octave expects tilde and ampersand to be escaped for regular
-          % output. If either are used un-escaped, that creates odd output in
-          % Octave itself, but since matlab2tikz should be able to handle
-          % those cases, let's include the un-escaped symbols in the list.
-          symbols = [ symbols, {'\~', '\&', '~', '&'} ];
-          % Octave's backslash handling is weird to say the least. However,
-          % matlab2tikz treats backslashes the same in Octave as it does in
-          % MATLAB. Therefore, let's add an escaped backslash to the list
-          symbols = [ symbols, {'\\'} ];
-      otherwise
-          error( 'Unknown environment. Need MATLAB(R) or Octave.' )
-  end
-
-  for ypos = [0.9:-.2:.1]
-      % Generate `num' random indices to the list of symbols
-      index = max(ceil(rand(1, num)*length(symbols)), 1);
-      % Assemble symbols into one cell string array
-      string = symbols(index);
-
-      % Add random amount of balanced braces in random positions to `string'.
-      % By potentially generating more than one set of braces randomly, it's
-      % possible to create more complex patterns of nested braces. Increase
-      % `braceprob' to get more braces, but don't use values greater than or
-      % equal 1 which would result in an infinite loop.
-      braceprob = 0.6;
-      while rand(1,1) < braceprob
-          % Generate two random numbers ranging from 1 to n with n = number
-          % of symbols in `string'
-          bracepos = max(ceil(rand(1, 2)*length(string)), 1);
-          % Modify `string' so that an opening brace is inserted before
-          % min(bracepos) symbols and a closing brace after max(bracepos)
-          % symbols. That way any number of symbols from one to all in
-          % `string' are wrapped in braces for min(bracepos) == max(bracepos)
-          % and min(bracepos) == 1 && max(bracepos) == length(string),
-          % respectively.
-          string = [string(1:min(bracepos)-1), {'{'},    ...
-                    string(min(bracepos):max(bracepos)), ...
-                    {'}'}, string(max(bracepos)+1:end)   ];
-      end
-      % Clean up: remove '{}', '{{}}', etc.
-      clean = false;
-      while clean == false
-          clean = true;
-          for i = 1:length(string)-1
-              if strcmp( string(i), '{' ) && strcmp( string(i+1), '}' )
-                  string = [string(1:i-1), string(i+2:end)];
-                  clean = false;
-                  break
-              end
-          end
-      end
-
-      % Subscripts '_' and superscripts '^' in TeX are tricky in that certain
-      % combinations are not allowed and there are some subtleties in regard
-      % to more complicated combinations of sub/superscripts:
-      % - ^a or _a at the beginning of a TeX math expression is permitted.
-      % - a^ or a_ at the end of a TeX math expression is not.
-      % - a__b, a_^b, a^_b, or a^^b is not allowed, as is any number of
-      %   consecutive sub/superscript operators. Actually a^^b does not
-      %   crash TeX, but it produces seemingly random output instead of `b',
-      %   therefore it should be avoided, too.
-      % - a^b^c or a_b_c is not allowed as it results in a "double subscript/
-      %   superscript" error.
-      % - a^b_c or a_b^c, however, does work.
-      % - a^bc^d or a_bc_d also works.
-      % - a^b_c^d or a_b^c_d is not allowed and results in a "double
-      %   subscript/superscript" error.
-      % - a{_}b, a{^}b, {a_}b or {a^}b is not permitted.
-      % - a{_b} or a{^b} is valid TeX code.
-      % - {a_b}_c produces the same output as a_{bc}. Likewise for '^'.
-      % - a_{b_c} results in "a index b sub-index c". Likewise for '^'.
-      % - a^{b}^c or a_{b}_c is not allowed as it results in a "double
-      %   subscript/superscript" error.
-      %
-      % From this we can derive a number of rules:
-      % 1)  The last symbol in a TeX string must not be '^' or '_'.
-      % 2a) There must be at least one non-brace symbol between any '^' and '_'.
-      % 2b) There must be at least one non-brace symbol between any '_' and '^'.
-      % 3a) There must either be at least two non-brace, non-'_' symbols or at
-      %     least one non-brace, non-'_' symbol and one brace (opening or
-      %     closing) between any two '^'.
-      % 3b) There must either be at least two non-brace, non-'^' symbols or at
-      %     least one brace (opening or closing) between any two '_'.
-      % 4)  '^' or '_' must not appear directly before '}'.
-      % 5)  '^' or '_' must not appear directly after '}'.
-      % 6)  Whenever braces were mentioned, that refers to non-empty braces,
-      %     i.e. '{}' counts as nothing. Printable/escaped braces '\{' and '\}'
-      %     also don't count as braces but as regular symbols.
-      % 7)  '^' or '_' must not appear directly before '\it', '\bf', '\rm', or
-      %     '\sl'.
-      % 8)  '^' or '_' must not appear directly after '\it', '\bf', '\rm', or
-      %     '\sl'.
-      %
-      % A few test cases:
-      % Permitted: ^a...  _a...  a^b_c  a_b^c  a^bc^d  a_bc_d  a{_b}  a{^b}
-      %            {a_b}_c  a_{bc}  {a^b}^c  a^{bc}  a_{b_c}  a^{b^c}
-      % Forbidden: ...z^  ...z_  a__b  a_^b  a^_b  [a^^b]  a^b^c  a_b_c
-      %            a^b_c^d  a_b^c_d  a{_}b  a{^}b  {a_}b  {a^}b
-      %            a^{_b}  a_{^b}  a^{b}^c  a_{b}_c
-      %
-      % Now add sub/superscripts according to these rules
-      subsupprob   = 0.1;  % Probability for insertion of a sub/superscript
-      caretdist    = Inf;  % Distance to the last caret
-      underscdist  = Inf;  % Distance to the last underscore
-      bracedist    = Inf;  % Distance to the last brace (opening or closing)
-      pos = 0;
-      % Making sure the post-update `pos' in the while loop is less than the
-      % number of symbols in `string' enforces rule 1: The last symbol in
-      % a TeX string must not be '^' or '_'.
-      while pos+1 < length(string)
-         % Move one symbol further
-         pos = pos + 1;
-         % Enforce rule 7: No sub/superscript directly before '\it', '\bf',
-         %                 '\rm', or '\sl'.
-         if strcmp( string(pos), '\it' ) || strcmp( string(pos), '\bf' ) ...
-         || strcmp( string(pos), '\rm' ) || strcmp( string(pos), '\sl' )
-             continue
-         end
-         % Enforce rule 8: No sub/superscript directly after '\it', '\bf',
-         %                 '\rm', or '\sl'.
-         if (pos > 1)                           ...
-         && (    strcmp( string(pos-1), '\it' ) ...
-              || strcmp( string(pos-1), '\bf' ) ...
-              || strcmp( string(pos-1), '\rm' ) ...
-              || strcmp( string(pos-1), '\sl' ) ...
-            )
-             continue
-         end
-         bracedist = bracedist + 1;
-         % Enforce rule 4: No sub/superscript directly before '}'
-         if strcmp( string(pos), '}' )
-             bracedist = 0; % Also update braces distance
-             continue
-         end
-         % Enforce rule 5: No sub/superscript directly after '}'
-         if (pos > 1) && strcmp( string(pos-1), '}' )
-             continue
-         end
-         % Update distances for either braces or caret/underscore depending
-         % on whether the symbol currently under scrutiny is a brace or not.
-         if strcmp( string(pos), '{' )
-             bracedist = 0;
-         else
-             caretdist = caretdist + 1;
-             underscdist = underscdist + 1;
-         end
-         % Generate two random numbers, then check if any of them is low
-         % enough, so that with probability `subsupprob' a sub/superscript
-         % operator is inserted into `string' at the current position. In
-         % case both random numbers are below the threshold, whether a
-         % subscript or superscript operator is to be inserted depends on
-         % which of the two numbers is smaller.
-         randomnums = rand(1, 2);
-         if min(randomnums) < subsupprob
-             if randomnums(1) < randomnums(2)
-                 % Enforce rule 2b: There must be at least one non-brace
-                 % symbol between previous '_' and to-be-inserted '^'.
-                 if underscdist < 1
-                     continue
-                 end
-                 % Enforce rule 3a: There must either be at least two
-                 % non-brace, non-'_' symbols or at least one brace (opening
-                 % or closing) between any two '^'.
-                 if ~( ((caretdist >= 2) && (underscdist >= 2)) ...
-                       || ((bracedist < 2) && (caretdist >= 2)) )
-                     continue
-                 end
-                 % Insert '^' before `pos'th symbol in `string' now that
-                 % we've made sure all rules are honored.
-                 string = [ string(1:pos-1), {'^'}, string(pos:end) ];
-                 caretdist = 0;
-                 pos = pos + 1;
-             else
-                 % Enforce rule 2a: There must be at least one non-brace
-                 % symbol between previous '^' and to-be-inserted '_'.
-                 if caretdist < 1
-                     continue
-                 end
-                 % Enforce rule 3b: There must either be at least two
-                 % non-brace, non-'^' symbols or at least one brace (opening
-                 % or closing) between any two '_'.
-                 if ~( ((caretdist >= 2) && (underscdist >= 2)) ...
-                       || ((bracedist < 2) && (underscdist >= 2)) )
-                     continue
-                 end
-                 % Insert '_' before `pos'th symbol in `string' now that
-                 % we've made sure all rules are honored.
-                 string = [ string(1:pos-1), {'_'}, string(pos:end) ];
-                 underscdist = 0;
-                 pos = pos + 1;
-             end
-         end
-      end % while pos+1 < length(string)
-
-      % Now convert the cell string array of symbols into one regular string
-      string = [string{:}];
-      % Print the string in the figure to be converted by matlab2tikz
-      text( .05, ypos, string, 'interpreter', 'tex' )
-      % And print it to the console, too, in order to enable analysis of
-      % failed tests
-      fprintf( 'Original string: %s\n', string )
-  end
-
-  title('Random TeX symbols \\\{\}\_\^$%#&')
-end
-% =========================================================================
-function [stat] = latexmath1()
-  stat.description = 'A formula typeset using the \LaTeX{} interpreter.';
-
-  % Adapted from an example at
-  % http://www.mathworks.com/help/techdoc/ref/text_props.html#Interpreter
-  axes
-  title( '\omega\subseteq\Omega' );
-  text( 0.5, 0.5, '$$\int_0^x\!\int_{\Omega} dF(u,v) d\omega$$', ...
-        'Interpreter', 'latex',                   ...
-        'FontSize', 16                            )
-end
-% =========================================================================
-function [stat] = latexmath2()
-  stat.description = 'Some nice-looking formulas typeset using the \LaTeX{} interpreter.';
-
-  % Adapted from an example at
-  % http://www.mathworks.com/help/techdoc/creating_plots/f0-4741.html#bq558_t
-  set(gcf, 'color', 'white')
-  set(gcf, 'units', 'inches')
-  set(gcf, 'position', [2 2 4 6.5])
-  set(gca, 'visible', 'off')
-
-  % Note: Most likely due to a bug in matlab2tikz the pgfplots output will
-  %       appear empty even though the LaTeX strings are contained in the
-  %       output file. This is because the following (or something like it)
-  %       is missing from the axis environment properties:
-  %       xmin=0, xmax=4, ymin=-1, ymax=6
-  % Note: The matrices in h(1) and h(2) cannot be compiled inside pgfplots.
-  %       They are therefore disabled.
-% h(1) = text( 'units', 'inch', 'position', [.2 5],                    ...
-%       'fontsize', 14, 'interpreter', 'latex', 'string',              ...
-%       [ '$$\hbox {magic(3) is } \left( {\matrix{ 8 & 1 & 6 \cr'      ...
-%         '3 & 5 & 7 \cr 4 & 9 & 2 } } \right)$$'                      ]);
-% h(2) = text( 'units', 'inch', 'position', [.2 4],                    ...
-%       'fontsize', 14, 'interpreter', 'latex', 'string',              ...
-%       [ '$$\left[ {\matrix{\cos(\phi) & -\sin(\phi) \cr'             ...
-%         '\sin(\phi) & \cos(\phi) \cr}} \right]'                      ...
-%         '\left[ \matrix{x \cr y} \right]$$'                          ]);
-  h(3) = text( 'units', 'inch', 'position', [.2 3],                    ...
-        'fontsize', 14, 'interpreter', 'latex', 'string',              ...
-        [ '$$L\{f(t)\}  \equiv  F(s) = \int_0^\infty\!\!{e^{-st}'      ...
-          'f(t)dt}$$'                                                  ]);
-  h(4) = text( 'units', 'inch', 'position', [.2 2],                    ...
-        'fontsize', 14, 'interpreter', 'latex', 'string',              ...
-        '$$e = \sum_{k=0}^\infty {1 \over {k!} } $$'                   );
-  h(5) = text( 'units', 'inch', 'position', [.2 1],                    ...
-        'fontsize', 14, 'interpreter', 'latex', 'string',              ...
-        [ '$$m \ddot y = -m g + C_D \cdot {1 \over 2}'                 ...
-          '\rho {\dot y}^2 \cdot A$$'                                  ]);
-  h(6) = text( 'units', 'inch', 'position', [.2 0],                    ...
-        'fontsize', 14, 'interpreter', 'latex', 'string',              ...
-        '$$\int_{0}^{\infty} x^2 e^{-x^2} dx = \frac{\sqrt{\pi}}{4}$$' );
-
-  % TODO: On processing the matlab2tikz_acidtest output, LaTeX complains
-  %       about the use of \over:
-  %         Package amsmath Warning: Foreign command \over;
-  %         (amsmath)                \frac or \genfrac should be used instead
-end
-% =========================================================================
-function [stat] = parameterCurve3d()
-  stat.description = 'Parameter curve in 3D.';
-
-  ezplot3('sin(t)','cos(t)','t',[0,6*pi]);
-  text(0.5, 0.5, 10, 'abs');
-end
-% =========================================================================
-function [stat] = parameterSurf()
-  stat.description = 'Parameter and surface plot.';
-
-  if ~exist('TriScatteredInterp')
-      fprintf( 'TriScatteredInterp() not found. Skipping.\n\n' );
-      stat.skip = true;
-      return;
-  end
-
-  t = (1:100).';
-  t1 = cos(5.75352*t).^2;
-  t2 = abs(sin(t));
-
-  x = t1*4 - 2;
-  y = t2*4 - 2;
-  z = x.*exp(-x.^2 - y.^2);
-
-  %TODO: do we really need this TriScatteredInterp?
-  % It will be removed from MATLAB
-
-  % Construct the interpolant
-  F = TriScatteredInterp(x,y,z,'linear');
-
-  % Evaluate the interpolant at the locations (qx, qy), qz
-  % is the corresponding value at these locations.
-  ti = -2:.25:2;
-  [qx,qy] = meshgrid(ti,ti);
-  qz = F(qx,qy);
-
-  hold on
-  surf(qx,qy,qz)
-  plot3(x,y,z,'o')
-  view(gca,[-69 14]);
-  hold off
-end
-% =========================================================================
-function [stat] = fill3plot()
-  stat.description = 'fill3 plot.';
-
-  if ~exist('fill3','builtin')
-      fprintf( 'fill3() not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  x1 = -10:0.1:10;
-  x2 = -10:0.1:10;
-  p = sin(x1);
-  d = zeros(1,numel(p));
-  d(2:2:end) = 1;
-  h = p.*d;
-  grid on;
-  fill3(x1,x2,h,'k');
-  view(45,22.5);
-  box on;
-end
-% =========================================================================
-function [stat] = rectanglePlot()
-  stat.description = 'Rectangle handle.';
-
-  rectangle('Position', [0.59,0.35,3.75,1.37],...
-            'Curvature', [0.8,0.4],...
-            'LineWidth', 2, ...
-            'LineStyle', '--' ...
-           );
-  daspect([1,1,1]);
-end
-% =========================================================================
-function [stat] = herrorbarPlot()
-  stat.description = 'herrorbar plot.';
-
-  hold on;
-  X = 1:10;
-  Y = 1:10;
-  err = repmat(0.2, 1, 10);
-  h1 = errorbar(X, Y, err, 'r');
-  h_vec = herrorbar(X, Y, err);
-  for h=h_vec
-      set(h, 'color', [1 0 0]);
-  end
-  h2 = errorbar(X, Y+1, err, 'g');
-  h_vec = herrorbar(X, Y+1, err);
-  for h=h_vec
-      set(h, 'color', [0 1 0]);
-  end
-  legend([h1 h2], {'test1', 'test2'})
-end
-% =========================================================================
-function [stat] = hist3d()
-  stat.description = '3D histogram plot.';
-
-  if ~exist('hist3','builtin') && isempty(which('hist3'))
-      fprintf( 'Statistics toolbox not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-%  load carbig
-%  X = [MPG,Weight];
-%  hist3(X,[7 7]);
-%  xlabel('MPG'); ylabel('Weight');
-%  set(get(gca,'child'),'FaceColor','interp','CDataMode','auto');
-
-  load carbig
-  X = [MPG,Weight];
-  hist3(X,[7 7]);
-  xlabel('MPG'); ylabel('Weight');
-  hist3(X,[7 7],'FaceAlpha',.65);
-  xlabel('MPG'); ylabel('Weight');
-  % Linux crashed with OpenGL.
-  %%set(gcf,'renderer','opengl');
-
-%  load seamount
-%  dat = [-y,x]; % Grid corrected for negative y-values
-%  n = hist3(dat); % Extract histogram data;
-%                  % default to 10x10 bins
-%  view([-37.5, 30]);
-end
-% =========================================================================
-function [stat] = myBoxplot()
-  stat.description = 'Boxplot.';
-
-  if ~exist('boxplot','builtin') && isempty(which('boxplot'))
-      fprintf( 'Statistics toolbox not found. Skipping.\n\n' );
-      stat.skip = true;
-      return
-  end
-
-  errors =[
-     0.810000   3.200000   0.059500
-     0.762500  -3.200000   0.455500
-     0.762500   4.000000   0.901000
-     0.762500   3.600000   0.406000
-     0.192500   3.600000   0.307000
-     0.810000  -3.600000   0.604000
-     1.000000  -2.400000   0.505000
-     0.430000  -2.400000   0.455500
-     1.000000   3.200000   0.158500
-  ];
-
-  boxplot(errors);
-end
-% =========================================================================
-function [stat] = areaPlot()
-  stat.description = 'Area plot.';
-
-  M = magic(5);
-  M = M(1:3,2:4);
-  area(1:3, M);
-  legend('foo', 'bar', 'foobar');
-end
-% =========================================================================
-function [stat] = customLegend()
-  stat.description = 'Custom legend.';
-
-  x = -pi:pi/10:pi;
-  y = tan(sin(x)) - sin(tan(x));
-  plot(x,y,'--rs');
-
-  lh=legend('y',4);
-  set(lh,'color','g')
-  set(lh,'edgecolor','r')
-  set(lh, 'position',[.5 .6 .1 .05])
-end
-% =========================================================================
-function [stat] = pixelLegend()
-  stat.description = 'Legend with pixel position.';
-
-  x = linspace(0,1);
-  plot(x, [x;x.^2]);
-  set(gca, 'units', 'pixels')
-  lh=legend('1', '2');
-  set(lh, 'units','pixels','position', [100 200 65 42])
-end
-% =========================================================================
-function [stat] = croppedImage()
-  stat.description = 'Custom legend.';
-
-  if ~exist('flujet.mat','file')
-      fprintf( 'flujet data set not found. Skipping.\n\n' );
-      stat.skip = true;
-      return;
-  end
-
-  load('flujet','X','map');
-  image(X)
-  colormap(map)
-  %axis off
-  axis image
-  xlim([50 200])
-  ylim([50 200])
-  % colorbar at top
-  colorbar('north');
-  set(gca,'Units','normalized');
-end
-% =========================================================================
-function [stat] = pColorPlot()
-  stat.description = 'pcolor() plot.';
-
-  n = 6;
-  r = (0:n)'/n;
-  theta = pi*(-n:n)/n;
-  X = r*cos(theta);
-  Y = r*sin(theta);
-  C = r*cos(2*theta);
-  pcolor(X,Y,C)
-  axis equal tight
-end
-% =========================================================================
-function [stat] = multiplePatches()
-  stat.description = 'Multiple patches.';
-
-  xdata = [2     2     0     2     5;
-           2     8     2     4     5;
-           8     8     2     4     8];
-  ydata = [4     4     4     2     0;
-           8     4     6     2     2;
-           4     0     4     0     0];
-  cdata = [15     0     4     6    10;
-           1     2     5     7     9;
-           2     3     0     8     3];
-  p = patch(xdata,ydata,cdata,'Marker','o',...
-            'MarkerFaceColor','flat',...
-            'FaceColor','none');
-end
-% =========================================================================
-function [stat] = hgTransformPlot()
-  stat.description = 'hgtransform() plot.';
-
-  % Check out
-  % http://www.mathworks.de/de/help/matlab/ref/hgtransform.html.
-
-  ax = axes('XLim',[-2 1],'YLim',[-2 1],'ZLim',[-1 1]);
-  view(3);
-  grid on;
-  axis equal;
-
-  [x y z] = cylinder([.2 0]);
-  h(1) = surface(x,y,z,'FaceColor','red');
-  h(2) = surface(x,y,-z,'FaceColor','green');
-  h(3) = surface(z,x,y,'FaceColor','blue');
-  h(4) = surface(-z,x,y,'FaceColor','cyan');
-  h(5) = surface(y,z,x,'FaceColor','magenta');
-  h(6) = surface(y,-z,x,'FaceColor','yellow');
-
-  t1 = hgtransform('Parent',ax);
-  t2 = hgtransform('Parent',ax);
-
-  set(h,'Parent',t1);
-  h2 = copyobj(h,t2);
-
-  Txy = makehgtform('translate',[-1.5 -1.5 0]);
-  set(t2,'Matrix',Txy)
-  drawnow
-end
-% =========================================================================
-function [stat] = logbaseline()
-  stat.description = 'Logplot with modified baseline.';
-
-  bar([0 1 2], [1 1e-2 1e-5],'basevalue', 1e-6);
-  set(gca,'YScale','log');
-end
-% =========================================================================
-function [stat] = alphaImage()
-  stat.description = 'Image with alpha channel.';
-
-  N = 20;
-  h_imsc = imagesc(repmat(1:N, N, 1));
-  mask = zeros(N);
-  mask(N/4:3*N/4, N/4:3*N/4) = 1;
-  set(h_imsc, 'AlphaData', double(~mask));
-  set(h_imsc, 'AlphaDataMapping', 'scaled');
-  set(gca, 'ALim', [-1,1]);
-end
-% =========================================================================
-function [stat] = annotation1()
-
-  stat.description = 'Annotations only';
-
-  if ~exist('annotation')
-    fprintf( 'annotation() not found. Skipping.\n\n' );
-    stat.skip = true;
-    return;
-  end
-
-  annotation(gcf,'arrow',[0.192857142857143 0.55],...
-    [0.729952380952381 0.433333333333333]);
-
-  annotation(gcf,'ellipse',...
-    [0.538499999999999 0.240476190476191 0.157928571428572 0.2452380952381]);
-
-  annotation(gcf,'textbox',...
-    [0.3 0.348251748251748 0.0328486806677437 0.0517482517482517],...
-    'String',{'y-x'},...
-    'FontSize',16);
-end
-% =========================================================================
-function [stat] = annotation2()
-  stat.description = 'Annotations over plot';
-
-  if ~exist('annotation')
-    fprintf( 'annotation() not found. Skipping.\n\n' );
-    stat.skip = true;
-    return;
-  end
-
-  axes1 = axes('Parent',gcf);
-  hold(axes1,'all');
-
-  plot(0:pi/20:2*pi,sin(0:pi/20:2*pi))
-
-  annotation(gcf,'arrow',[0.192857142857143 0.55],...
-    [0.729952380952381 0.433333333333333]);
-
-  annotation(gcf,'ellipse',...
-    [0.538499999999999 0.240476190476191 0.157928571428572 0.2452380952381]);
-
-  annotation(gcf,'textbox',...
-    [0.3 0.348251748251748 0.0328486806677437 0.0517482517482517],...
-    'String',{'y-x'},...
-    'FontSize',16,...
-    'FitBoxToText','off',...
-    'LineStyle','none');
-end
-% =========================================================================
-function [stat] = annotation3()
-  stat.description = 'Annotated and unaligned subplots';
-
-  if ~exist('annotation')
-    fprintf( 'annotation() not found. Skipping.\n\n' );
-    stat.skip = true;
-    return;
-  end
-
-  X1 = 0:0.01:1;
-  Y1 = X1.^2;
-  Y2 = Y1.^2;
-  Y3 = X1.^(1/4);
-
-  set(gcf, 'Position', [100 100 1500 600]);
-
-  axes1 = axes('Parent',gcf, 'Position',[0.07 0.4015 0.2488 0.5146]);
-  box(axes1,'on');
-  hold(axes1,'all');
-
-  title('f(x)=x^2');
-
-  plot(X1,Y1,'Parent',axes1, 'DisplayName','(0:0.05:1).^2 vs 0:0.05:1');
-
-  axes2 = axes('Parent',gcf, 'OuterPosition',[0.4062 0 0.2765 0.6314]);
-  box(axes2,'on');
-  hold(axes2,'all');
-
-  plot(X1,Y2,'Parent',axes2,'DisplayName','(0:0.05:1).^4 vs 0:0.05:1');
-
-  axes3 = axes('Parent',gcf, 'Position',[0.7421 0.3185 0.21 0.5480]);
-  box(axes3,'on');
-  hold(axes3,'all');
-
-  plot(X1,Y3,'Parent',axes3,'DisplayName','(0:0.05:1).^(1/4) vs 0:0.05:1');
-
-  annotation(gcf,'textbox',[0.3667 0.5521 0.0124 0.0393], ...
-    'String',{'f^2'}, 'FitBoxToText','off');
-
-  annotation(gcf,'arrow',[0.3263 0.4281], [0.6606 0.3519]);
-
-  annotation(gcf,'textarrow',[0.6766 0.7229], [0.3108 0.6333],...
-    'TextEdgeColor','none', 'HorizontalAlignment','center', ...
-    'String',{'invert'});
-end
-% =========================================================================
-function [stat] = annotationText()
-  stat.description = 'Variations of textual annotations';
-
-  if ~exist('annotation')
-    fprintf( 'annotation() not found. Skipping.\n\n' );
-    stat.skip = true;
-    return;
-  end
-
-  X1 = -5:0.1:5;
-  Y1 = log(X1.^2+1);
-
-  % Resize figure to fit all text inside
-  set(gcf,'Position', [100 100 1000 700]);
-
-  % Otherwise the axes is plotted wrongly
-  drawnow();
-
-  % Create axes
-  axes1 = axes('Parent',gcf);
-  hold(axes1,'all');
-
-  % Create plot
-  plot(X1,Y1);
-
-  % Create text
-  text('Parent',axes1,'String',' \leftarrow some point on the curve',...
-    'Position',[-2.01811125485123 1.5988219895288 7.105427357601e-15]);
-
-  % Create text
-  text('Parent',axes1,'String','another point \rightarrow',...
-    'Position',[1 0.693147180559945 0],...
-    'HorizontalAlignment','right');
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.305611222444885 0.292803442287824 0.122244488977956 0.0942562592047128],...
-    'String',{'This boxes size','should adjust to','the text size'});
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.71643086172344 0.195876288659794 0.10020240480962 0.209240982129118],...
-    'String',{'Multiple Lines due to fixed width'},...
-    'FitBoxToText','off');
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.729456913827655 0.608247422680412 0.0851723446893787 0.104257797902974],...
-    'String',{'Overlapping','and italic'},...
-    'FontAngle','italic',...
-    'FitBoxToText','off',...
-    'BackgroundColor',[0.756862759590149 0.866666674613953 0.776470601558685]);
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.420000437011093 0.680170575692964 0.155149863590109 0.192171438527209],...
-    'VerticalAlignment','middle',...
-    'String',{'Text with a','thick and','dotted','border'},...
-    'HorizontalAlignment','center',...
-    'FitBoxToText','off',...
-    'LineStyle',':',...
-    'LineWidth',4);
-
-  % Create textarrow
-  annotation(gcf,'textarrow',[0.21943887775551 0.2625250501002],...
-    [0.371002132196162 0.235640648011782],'TextEdgeColor','none',...
-    'TextBackgroundColor',[0.678431391716003 0.921568632125854 1],...
-    'TextRotation',30,...
-    'VerticalAlignment','bottom',...
-    'HorizontalAlignment','center',...
-    'String',{'Rotated Text'});
-
-  % Create textarrow
-  annotation(gcf,'textarrow',[0.238436873747493 0.309619238476953],...
-    [0.604315828808828 0.524300441826215],'TextEdgeColor','none',...
-    'TextColor',[1 1 1],...
-    'TextBackgroundColor',[0 0 1],...
-    'TextRotation',30,...
-    'VerticalAlignment','bottom',...
-    'HorizontalAlignment','center',...
-    'String',{'Rotated Text 2'},...
-    'HeadStyle','diamond',...
-    'Color',[1 0 0]);
-end
-% =========================================================================
-function [stat] = annotationTextUnits()
-  stat.description = 'Text with changed Units';
-
-  if ~exist('annotation')
-    fprintf( 'annotation() not found. Skipping.\n\n' );
-    stat.skip = true;
-    return;
-  end
-
-  X1 = -5:0.1:5;
-  Y1 = log(X1.^2+1);
-
-  % Resize figure to fit all text inside
-  set(gcf,'Units', 'inches');
-  set(gcf,'Position', [1.03125, 1.03125, 10.416666666666666, 7.291666666666666 ]);
-
-  % Otherwise the axes is plotted wrongly
-  drawnow();
-
-  % Create axes
-  axes1 = axes('Parent',gcf,'Units','centimeters',...
-    'Position',[3.4369697916666664, 2.035743645833333 20.489627604166664 15.083009739583332]);
-  hold(axes1,'all');
-
-  % Create plot
-  plot(X1,Y1);
-
-  % Create text
-  text('Parent',axes1,'Units','normalized',...
-    'String',' \leftarrow some point on the curve',...
-    'Position',[0.295865633074935 0.457364341085271 0]);
-
-  % Create text
-  text('Parent',axes1,'Units','centimeters',...
-    'String','another point \rightarrow',...
-    'Position',[12.2673383333333 2.98751989583333 0],...
-    'HorizontalAlignment','right');
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.305611222444885 0.292803442287824 0.122244488977956 0.0942562592047128],...
-    'String',{'This boxes size','should adjust to','the text size'},...
-    'FitBoxToText','off',...
-    'Units','pixels');
-
-
-  % Create textarrow
-  annotation(gcf,'textarrow',[0.21943887775551 0.2625250501002],...
-    [0.371002132196162 0.235640648011782],'TextEdgeColor','none',...
-    'TextBackgroundColor',[0.678431391716003 0.921568632125854 1],...
-    'TextRotation',30,...
-    'HorizontalAlignment','center',...
-    'String',{'Rotated Text'},...
-    'Units','points');
-
-  % Create textarrow
-  annotation(gcf,'textarrow',[0.238436873747493 0.309619238476953],...
-    [0.604315828808828 0.524300441826215],'TextEdgeColor','none',...
-    'TextColor',[1 1 1],...
-    'TextBackgroundColor',[0 0 1],...
-    'TextRotation',30,...
-    'HorizontalAlignment','center',...
-    'String',{'Rotated Text 2'},...
-    'HeadStyle','diamond',...
-    'Color',[1 0 0]);
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.71643086172344 0.195876288659794 0.10020240480962 0.209240982129118],...
-    'String',{'Multiple Lines due to fixed width'},...
-    'FitBoxToText','off',...
-    'Units','characters');
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.420000437011093 0.680170575692964 0.155149863590109 0.192171438527209],...
-    'VerticalAlignment','middle',...
-    'String',{'Text with a','thick and','dotted','border'},...
-    'HorizontalAlignment','center',...
-    'FitBoxToText','off',...
-    'LineStyle',':',...
-    'LineWidth',4);
-
-  % Create textbox
-  annotation(gcf,'textbox',...
-    [0.729456913827655 0.608247422680412 0.0851723446893787 0.104257797902974],...
-    'String',{'Overlapping','and italic'},...
-    'FontAngle','italic',...
-    'FitBoxToText','off',...
-    'BackgroundColor',[0.756862759590149 0.866666674613953 0.776470601558685]);
-end
-% =========================================================================
-function [stat] = imageOrientation_inline()
-% Run test and save pictures as inline TikZ code
-    [stat] = imageOrientation(false);
-end
-function [stat] = imageOrientation_PNG()
-% Run test and save pictures as external PNGs
-    [stat] = imageOrientation(true);
-end
-function [stat] = imageOrientation(imagesAsPng)
-% Parameter 'imagesAsPng' is boolean
-    stat.description = ['Systematic test of different axis', ...
-      ' orientations and visibility (imagesAsPng = ', ...
-      num2str(imagesAsPng), ').'];
-    stat.extraOptions = {'imagesAsPng', imagesAsPng};
-
-    data = magic(3);
-
-    subplot(3,2,1);
-    imagesc(data);
-    set(gca,'XDir','normal');
-    xlabel('XDir normal');
-    set(gca,'YDir','normal');
-    ylabel('YDir normal');
-
-    subplot(3,2,2);
-    imagesc(data);
-    set(gca,'XDir','reverse');
-    xlabel('XDir reverse');
-    set(gca,'YDir','normal');
-    ylabel('YDir normal');
-
-    subplot(3,2,3);
-    imagesc(data);
-    set(gca,'XDir','normal');
-    xlabel('XDir normal');
-    set(gca,'YDir','reverse');
-    ylabel('YDir reverse');
-
-    subplot(3,2,4);
-    imagesc(data);
-    set(gca,'XDir','reverse');
-    xlabel('XDir reverse');
-    set(gca,'YDir','reverse');
-    ylabel('YDir reverse');
-
-    subplot(3,2,5);
-    imagesc(data);
-    set(gca,'XDir','normal');
-    xlabel('XDir normal');
-    set(gca,'YDir','reverse');
-    ylabel('YDir reverse');
-    axis off;
-    title('like above, but axis off');
-
-    subplot(3,2,6);
-    imagesc(data);
-    set(gca,'XDir','reverse');
-    xlabel('XDir reverse');
-    set(gca,'YDir','reverse');
-    ylabel('YDir reverse');
-    axis off;
-    title('like above, but axis off');
-end
-% =========================================================================
-function [stat] = texInterpreter()
-    stat.description = 'Combinations of tex commands';
-    axes
-    text(0.1,0.9, {'\bfBold text before \alpha and also afterwards.', 'Even the next line is bold \itand a bit italic.'});
-    text(0.1,0.75, {'Changing \bfthe\fontname{Courier} font or \color[rgb]{0,0.75,0}color doesn''t', 'change the style. Resetting \rmthe style', 'doesn''t change the font or color.'});
-    text(0.1,0.6, 'Styles can be {\bflimited} using \{ and \}.');
-    text(0.1,0.45, {'But what happens to the output if there is', '{\bfuse an \alpha inside} the limitted style.'});
-    text(0.1,0.3, 'Or if the\fontsize{14} size\color{red} and color are \fontsize{10}changed at different\color{blue} points.');
-    text(0.1,0.15, {'Also_{some \bf subscripts} and^{superscripts} are possible.', 'Without brackets, it l^o_oks like t_his.' });
-end
-% =========================================================================
-function [stat] = stackedBarsWithOther()
-  stat.description = 'stacked bar plots and other plots';
-  stat.issues = 442;
-
-  % dataset stacked
-  [data,dummy,summy] = svd(magic(7)); %#ok
-  Y = round(abs(data(2:6,2:4))*10);
-  n = size(Y,1);
-  xVals = (1:n).';
-  yVals = min((xVals).^2, sum(Y,2));
-
-  subplot(2,1,1); hold on;
-  bar(Y,'stack');
-  plot(xVals, yVals, 'Color', 'r', 'LineWidth', 2);
-  legend('show');
-
-  subplot(2,1,2); hold on;
-  b2 = barh(Y,'stack','BarWidth', 0.75);
-  plot(yVals, xVals, 'Color', 'b', 'LineWidth', 2);
-
-  set(b2(1),'FaceColor','c','EdgeColor','none')
-end
-% =========================================================================
-function [stat] = colorbarLabelTitle()
-    stat.description = 'colorbar with label and title';
-    stat.issues = 429;
-
-    % R2014b handles colorbars smart:  `XLabel` and `YLabel` merged into `Label`
-    % Use colormap 'jet' to create comparable output with MATLAB R2014b
-    % * Check horizontal/vertical colorbar (subplots)
-    % * Check if 'direction' is respected
-    % * Check if multiline label and title works
-    % * Check if latex interpreter works in label and title
-
-    subplot(1,2,1)
-    imagesc(magic(3));
-    hc = colorbar;
-    colormap('jet');
-    title(hc,'title $\beta$','Interpreter','latex');
-    ylabel(hc,'label $a^2$','Interpreter','latex');
-    set(hc,'YDir','reverse');
-
-    subplot(1,2,2)
-    label_multiline = {'first','second','third'};
-    title_multiline = {'title 1','title 2'};
-    imagesc(magic(3));
-    hc = colorbar('southoutside');
-    colormap('jet');
-    title(hc,title_multiline);
-    xlabel(hc,label_multiline);
-end
-% =========================================================================
-function env = getEnvironment
-  if ~isempty(ver('MATLAB'))
-     env = 'MATLAB';
-  elseif ~isempty(ver('Octave'))
-     env = 'Octave';
-  else
-     env = [];
-  end
-end
-% =========================================================================
-function [below, noenv] = isVersionBelow ( env, threshMajor, threshMinor )
-  % get version string for `env' by iterating over all toolboxes
-  versionData = ver;
-  versionString = '';
-  for k = 1:max(size(versionData))
-      if strcmp( versionData(k).Name, env )
-          % found it: store and exit the loop
-          versionString = versionData(k).Version;
-          break
-      end
-  end
-
-  if isempty( versionString )
-      % couldn't find `env'
-      below = true;
-      noenv = true;
-      return
-  end
-
-  majorVer = str2double(regexprep( versionString, '^(\d+)\..*', '$1' ));
-  minorVer = str2double(regexprep( versionString, '^\d+\.(\d+\.?\d*)[^\d]*.*', '$1' ));
-
-  if (majorVer < threshMajor) || (majorVer == threshMajor && minorVer < threshMinor)
-      % version of `env' is below threshold
-      below = true;
-  else
-      % version of `env' is same as or above threshold
-      below = false;
-  end
-  noenv = false;
-end
-% =========================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/README b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/README
deleted file mode 100644
index 0c2581a2..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/README
+++ /dev/null
@@ -1,27 +0,0 @@
-This test module is part of matlab2tikz.
-
-It provides the means for easily comparing the results of a direct PDF print of
-a figure in MATLAB as opposed to having it exported by matlab2tikz. As a matter
-of fact, this test suite can take any matlab2xxx-converter as argument (see
-step 2 below) with possibly minor modifications to the LaTeX file output.
-
-
- USAGE:
-=======
-  1. Open MATLAB, make matlab2tikz and matlab2tikz_acidtest available for
-     calling (by putting in the MATLAB Path,for example).
-
-  2. Call the script by
-
-        >> matlab2tikz_acidtest( 'testsuite', @ACID );
-
-     What happens is that MATLAB generates a number of figures as defined in
-     ACID.m, and exports them as PDF (using the print command) and by
-     matlab2tikz.
-     At the same time, a LaTeX file is created in the tex-subfolder.
-
-  3. You can compile 'tex/acid.tex' with 'make' (making use of 'tex/Makefile').
-
-If all goes well, the result will be the file 'tex/acid.pdf' which contains a
-list of the test figures, exported as PDF and right next to it the matlab2tikz
-generated plot.
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/codeReport.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/codeReport.m
deleted file mode 100644
index a97c09a0..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/codeReport.m
+++ /dev/null
@@ -1,268 +0,0 @@
-function [ report ] = codeReport( varargin )
-%CODEREPORT Builds a report of the code health
-%
-% This function generates a Markdown report on the code health. At the moment
-% this is limited to the McCabe (cyclomatic) complexity of a function and its
-% subfunctions.
-%
-% This makes use of |checkcode| in MATLAB.
-%
-% Usage:
-%
-%   CODEREPORT('function', functionName) to determine which function is
-%   analyzed. (default: matlab2tikz)
-%
-%   CODEREPORT('complexityThreshold', integer ) to set above which complexity, a
-%   function is added to the report (default: 10)
-%
-% See also: checkcode, mlint,
-
-
-    %% input options
-    ipp = m2tInputParser();
-    ipp = ipp.addParamValue(ipp, 'function', 'matlab2tikz', @ischar);
-    ipp = ipp.addParamValue(ipp, 'complexityThreshold', 10, @isnumeric);
-    ipp = ipp.parse(ipp, varargin{:});
-
-    %% generate report data
-    data = checkcode(ipp.Results.function,'-cyc','-struct');
-    [complexityAll, mlintMessages] = splitCycloComplexity(data);
-
-    %% analyze cyclomatic complexity
-    categorizeComplexity = @(x) categoryOfComplexity(x, ...
-                                 ipp.Results.complexityThreshold, ...
-                                 ipp.Results.function);
-
-    complexityAll = arrayfun(@parseCycloComplexity, complexityAll);
-    complexityAll = arrayfun(categorizeComplexity, complexityAll);
-
-    complexity = filter(complexityAll, @(x) strcmpi(x.category, 'Bad'));
-    complexity = sortBy(complexity, 'line', 'ascend');
-    complexity = sortBy(complexity, 'complexity', 'descend');
-
-    [complexityStats] = complexityStatistics(complexityAll);
-
-    %% analyze other messages
-    %TODO: handle all mlint messages and/or other metrics of the code
-
-    %% format report
-    dataStr = complexity;
-    dataStr = arrayfun(@(d) mapField(d, 'function',  @markdownInlineCode), dataStr);
-    if ~isempty(dataStr)
-        dataStr = addFooterRow(dataStr, 'complexity', @sum, {'line',0, 'function',bold('Total')});
-    end
-    dataStr = arrayfun(@(d) mapField(d, 'line',         @integerToString), dataStr);
-    dataStr = arrayfun(@(d) mapField(d, 'complexity',   @integerToString), dataStr);
-
-    report = makeTable(dataStr, {'function', 'complexity'}, ...
-                                {'Function', 'Complexity'});
-
-    %% command line usage
-    if nargout == 0
-        disp(codelinks(report, ipp.Results.function));
-
-        figure('name',sprintf('Complexity statistics of %s', ipp.Results.function));
-        h = statisticsPlot(complexityStats, 'Complexity', 'Number of functions');
-        for hh = h
-            plot(hh, [1 1]*ipp.Results.complexityThreshold, ylim(hh), ...
-                 'k--','DisplayName','Threshold');
-        end
-        legend(h(1),'show','Location','NorthEast');
-
-        clear report
-    end
-
-end
-%% CATEGORIZATION ==============================================================
-function [complexity, others] = splitCycloComplexity(list)
-% splits codereport into McCabe complexity and others
-    filter = @(l) ~isempty(strfind(l.message, 'McCabe complexity'));
-    idxComplexity = arrayfun(filter, list);
-    complexity = list( idxComplexity);
-    others     = list(~idxComplexity);
-end
-function [data] = categoryOfComplexity(data, threshold, mainFunc)
-% categorizes the complexity as "Good", "Bad" or "Accepted"
-  TOKEN = '#COMPLEX'; % token to signal allowed complexity
-
-  try %#ok
-    helpStr = help(sprintf('%s>%s', mainFunc, data.function));
-    if ~isempty(strfind(helpStr, TOKEN))
-        data.category = 'Accepted';
-        return;
-    end
-  end
-  if data.complexity > threshold
-      data.category = 'Bad';
-  else
-      data.category = 'Good';
-  end
-end
-
-%% PARSING =====================================================================
-function [out] = parseCycloComplexity(in)
-% converts McCabe complexity report strings into a better format
-    out = regexp(in.message, ...
-                 'The McCabe complexity of ''(?<function>[A-Za-z0-9_]+)'' is (?<complexity>[0-9]+).', ...
-                 'names');
-    out.complexity = str2double(out.complexity);
-    out.line = in.line;
-end
-
-%% DATA PROCESSING =============================================================
-function selected = filter(list, filterFunc)
-% filters an array according to a binary function
-    idx = logical(arrayfun(filterFunc, list));
-    selected = list(idx);
-end
-function [data] = mapField(data, field, mapping)
-    data.(field) = mapping(data.(field));
-end
-function sorted = sortBy(list, fieldName, mode)
-% sorts a struct array by a single field
-% extra arguments are as for |sort|
-    values = arrayfun(@(m)m.(fieldName), list);
-    [dummy, idxSorted] = sort(values(:), 1, mode); %#ok
-    sorted = list(idxSorted);
-end
-
-function [stat] = complexityStatistics(list)
-% calculate some basic statistics of the complexities
-
-    stat.values     = arrayfun(@(c)(c.complexity), list);
-    stat.binCenter  = sort(unique(stat.values));
-
-    categoryPerElem = {list.category};
-    stat.categories = unique(categoryPerElem);
-    nCategories = numel(stat.categories);
-
-    groupedHist = zeros(numel(stat.binCenter), nCategories);
-    for iCat = 1:nCategories
-        category = stat.categories{iCat};
-        idxCat = ismember(categoryPerElem, category);
-        groupedHist(:,iCat) = hist(stat.values(idxCat), stat.binCenter);
-    end
-
-    stat.histogram  = groupedHist;
-    stat.median     = median(stat.values);
-end
-function [data] = addFooterRow(data, column, func, otherFields)
-% adds a footer row to data table based on calculations of a single column
-footer = data(end);
-for iField = 1:2:numel(otherFields)
-    field = otherFields{iField};
-    value = otherFields{iField+1};
-    footer.(field) = value;
-end
-footer.(column) = func([data(:).(column)]);
-data(end+1) = footer;
-end
-
-%% FORMATTING ==================================================================
-function str = integerToString(value)
-% convert integer to string
-    str = sprintf('%d',value);
-end
-function str = markdownInlineCode(str)
-% format as inline code for markdown
-    str = sprintf('`%s`', str);
-end
-function str = makeTable(data, fields, header)
-% make a markdown table from struct array
-    nData = numel(data);
-    str = '';
-    if nData == 0
-        return; % empty input
-    end
-
-    % determine column sizes
-    nFields = numel(fields);
-    table = cell(nFields, nData);
-    columnWidth = zeros(1,nFields);
-    for iField = 1:nFields
-        field = fields{iField};
-        table(iField, :) = {data(:).(field)};
-        columnWidth(iField) = max(cellfun(@numel, table(iField, :)));
-    end
-    columnWidth = max(columnWidth, cellfun(@numel, header));
-    columnWidth = columnWidth + 2; % empty space left and right
-    columnWidth([1,end]) = columnWidth([1,end]) - 1; % except at the edges
-
-    % format table inside cell array
-    table = [header; table'];
-    for iField = 1:nFields
-        FORMAT = ['%' int2str(columnWidth(iField)) 's'];
-
-        for jData = 1:size(table, 1)
-            table{jData, iField} = strjust(sprintf(FORMAT, ...
-                                           table{jData, iField}), 'center');
-        end
-    end
-
-    % insert separator
-    table = [table(1,:)
-             arrayfun(@(n) repmat('-',1,n), columnWidth, 'UniformOutput',false)
-             table(2:end,:)]';
-
-    % convert cell array to string
-    FORMAT = ['%s' repmat('|%s', 1,nFields-1) '\n'];
-    str = sprintf(FORMAT, table{:});
-
-end
-
-function str = codelinks(str, functionName)
-% replaces inline functions with clickable links in MATLAB
-str = regexprep(str, '`([A-Za-z0-9_]+)`', ...
-                ['`<a href="matlab:edit ' functionName '>$1">$1</a>`']);
-%NOTE: editing function>subfunction will focus on that particular subfunction
-% in the editor (this also works for the main function)
-end
-function str = bold(str)
-str = ['**' str '**'];
-end
-
-%% PLOTTING ====================================================================
-function h = statisticsPlot(stat, xLabel, yLabel)
-% plot a histogram and box plot
-    nCategories = numel(stat.categories);
-    colors = colorscheme;
-
-    h(1) = subplot(5,1,1:4);
-    hold all;
-    hb = bar(stat.binCenter, stat.histogram, 'stacked');
-
-    for iCat = 1:nCategories
-        category = stat.categories{iCat};
-
-        set(hb(iCat), 'DisplayName', category, 'FaceColor', colors.(category), ...
-                   'LineStyle','none');
-    end
-
-    %xlabel(xLabel);
-    ylabel(yLabel);
-
-    h(2) = subplot(5,1,5);
-    hold all;
-
-    boxplot(stat.values,'orientation','horizontal',...
-                        'boxstyle',   'outline', ...
-                        'symbol',     'o', ...
-                        'colors',  colors.All);
-    xlabel(xLabel);
-
-    xlims = [min(stat.binCenter)-1 max(stat.binCenter)+1];
-    c     = 1;
-    ylims = (ylim(h(2)) - c)/3 + c;
-
-    set(h,'XTickMode','manual','XTick',stat.binCenter,'XLim',xlims);
-    set(h(1),'XTickLabel','');
-    set(h(2),'YTickLabel','','YLim',ylims);
-    linkaxes(h, 'x');
-end
-function colors = colorscheme()
-% recognizable color scheme for the categories
- colors.All      = [  0 113 188]/255;
- colors.Good     = [118 171  47]/255;
- colors.Bad      = [161  19  46]/255;
- colors.Accepted = [236 176  31]/255;
-end
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/converted/Makefile b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/converted/Makefile
deleted file mode 100644
index 2bab3eb5..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/converted/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-# ./Makefile
-
-ECHOCMD:=/bin/echo -e
-LATEX:=lualatex --shell-escape -interaction=batchmode
-
-TEST_SRCS:=$(wildcard test*-converted.tex)
-TEST_PDFS:=$(TEST_SRCS:.tex=.pdf)
-
-default: $(TEST_PDFS)
-
-%.pdf: %.tex
-	@$(LATEX) $<
-
-.PHONY: clean
-
-clean:
-	rm -f test*-converted.aux \
-		test*-converted.log \
-		test*-converted.pdf
-
-distclean: clean
-	rm -f test*-converted.tex \
-		test*-converted*.png
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/reference/Makefile b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/reference/Makefile
deleted file mode 100644
index 1c39facf..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/data/reference/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# ./Makefile
-
-EPSTOPDF:=epstopdf
-
-REFERENCE_EPSS:=$(wildcard test*-reference.eps)
-REFERENCE_PDFS:=$(REFERENCE_EPSS:.eps=.pdf)
-
-default: $(REFERENCE_PDFS)
-
-%.pdf: %.eps
-	$(EPSTOPDF) $<
-
-.PHONY: clean
-
-clean:
-	rm -f test*-reference.pdf
-
-distclean: clean
-	rm -f test*-reference.eps
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/herrorbar.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/herrorbar.m
deleted file mode 100644
index 71320285..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/herrorbar.m
+++ /dev/null
@@ -1,152 +0,0 @@
-function hh = herrorbar(x, y, l, u, symbol)
-%HERRORBAR Horizontal Error bar plot.
-%   HERRORBAR(X,Y,L,R) plots the graph of vector X vs. vector Y with
-%   horizontal error bars specified by the vectors L and R. L and R contain the
-%   left and right error ranges for each point in X. Each error bar
-%   is L(i) + R(i) long and is drawn a distance of L(i) to the right and R(i)
-%   to the right the points in (X,Y). The vectors X,Y,L and R must all be
-%   the same length. If X,Y,L and R are matrices then each column
-%   produces a separate line.
-%
-%   HERRORBAR(X,Y,E) or HERRORBAR(Y,E) plots X with error bars [X-E X+E].
-%   HERRORBAR(...,'LineSpec') uses the color and linestyle specified by
-%   the string 'LineSpec'. See PLOT for possibilities.
-%
-%   H = HERRORBAR(...) returns a vector of line handles.
-%
-%   Example:
-%      x = 1:10;
-%      y = sin(x);
-%      e = std(y)*ones(size(x));
-%      herrorbar(x,y,e)
-%   draws symmetric horizontal error bars of unit standard deviation.
-%
-%   This code is based on ERRORBAR provided in MATLAB.
-%
-%   See also ERRORBAR
-
-%   Jos van der Geest
-%   email: jos@jasen.nl
-%
-%   File history:
-%   August 2006 (Jos): I have taken back ownership. I like to thank Greg Aloe from
-%   The MathWorks who originally introduced this piece of code to the
-%   Matlab File Exchange.
-%   September 2003 (Greg Aloe): This code was originally provided by Jos
-%   from the newsgroup comp.soft-sys.matlab:
-%   http://newsreader.mathworks.com/WebX?50@118.fdnxaJz9btF^1@.eea3ff9
-%   After unsuccessfully attempting to contact the orignal author, I
-%   decided to take ownership so that others could benefit from finding it
-%   on the MATLAB Central File Exchange.
-
-if min(size(x))==1,
-    npt = length(x);
-    x = x(:);
-    y = y(:);
-    if nargin > 2,
-        if ~ischar(l),
-            l = l(:);
-        end
-        if nargin > 3
-            if ~ischar(u)
-                u = u(:);
-            end
-        end
-    end
-else
-    [npt,n] = size(x);
-end
-
-if nargin == 3
-    if ~ischar(l)
-        u = l;
-        symbol = '-';
-    else
-        symbol = l;
-        l = y;
-        u = y;
-        y = x;
-        [m,n] = size(y);
-        x(:) = (1:npt)'*ones(1,n);;
-    end
-end
-
-if nargin == 4
-    if ischar(u),
-        symbol = u;
-        u = l;
-    else
-        symbol = '-';
-    end
-end
-
-if nargin == 2
-    l = y;
-    u = y;
-    y = x;
-    [m,n] = size(y);
-    x(:) = (1:npt)'*ones(1,n);;
-    symbol = '-';
-end
-
-u = abs(u);
-l = abs(l);
-
-if ischar(x) | ischar(y) | ischar(u) | ischar(l)
-    error('Arguments must be numeric.')
-end
-
-if ~isequal(size(x),size(y)) | ~isequal(size(x),size(l)) | ~isequal(size(x),size(u)),
-    error('The sizes of X, Y, L and U must be the same.');
-end
-
-tee = (max(y(:))-min(y(:)))/100; % make tee .02 x-distance for error bars
-% changed from errorbar.m
-xl = x - l;
-xr = x + u;
-ytop = y + tee;
-ybot = y - tee;
-n = size(y,2);
-% end change
-
-% Plot graph and bars
-hold_state = ishold;
-cax = newplot;
-next = lower(get(cax,'NextPlot'));
-
-% build up nan-separated vector for bars
-% changed from errorbar.m
-xb = zeros(npt*9,n);
-xb(1:9:end,:) = xl;
-xb(2:9:end,:) = xl;
-xb(3:9:end,:) = NaN;
-xb(4:9:end,:) = xl;
-xb(5:9:end,:) = xr;
-xb(6:9:end,:) = NaN;
-xb(7:9:end,:) = xr;
-xb(8:9:end,:) = xr;
-xb(9:9:end,:) = NaN;
-
-yb = zeros(npt*9,n);
-yb(1:9:end,:) = ytop;
-yb(2:9:end,:) = ybot;
-yb(3:9:end,:) = NaN;
-yb(4:9:end,:) = y;
-yb(5:9:end,:) = y;
-yb(6:9:end,:) = NaN;
-yb(7:9:end,:) = ytop;
-yb(8:9:end,:) = ybot;
-yb(9:9:end,:) = NaN;
-% end change
-
-
-[ls,col,mark,msg] = colstyle(symbol); if ~isempty(msg), error(msg); end
-symbol = [ls mark col]; % Use marker only on data part
-esymbol = ['-' col]; % Make sure bars are solid
-
-h = plot(xb,yb,esymbol); hold on
-h = [h;plot(x,y,symbol)];
-
-if ~hold_state, hold off; end
-
-if nargout>0, hh = h; end
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/issues.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/issues.m
deleted file mode 100644
index e6a9fd00..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/issues.m
+++ /dev/null
@@ -1,43 +0,0 @@
-function [ status ] = issues( k )
-%ISSUES M2T Test cases related to issues
-%
-% Issue-related test cases for matlab2tikz
-%
-% See also: ACID, matlab2tikz_acidtest
-  testfunction_handles = {
-                           @scatter3Plot3
-                         };
-
-  numFunctions = length( testfunction_handles );
-
-  if (k<=0)
-      status = testfunction_handles;
-      return;  % This is used for querying numFunctions.
-
-  elseif (k<=numFunctions)
-      status = testfunction_handles{k}();
-      status.function = func2str(testfunction_handles{k});
-
-  else
-      error('issues:outOfBounds', ...
-            'Out of bounds (number of testfunctions=%d)', numFunctions);
-  end
-  
-end
-
-% =========================================================================
-function [stat] = scatter3Plot3()
-  stat.description = 'Scatter3 plot with 2 colors';
-  stat.issues = 292;
-  
-  hold on;
-  x = sin(1:5);
-  y = cos(3.4 *(1:5));
-  z = x.*y;
-  scatter3(x,y,z,150,...
-           'MarkerEdgeColor','none','MarkerFaceColor','k');
-  scatter3(-x,y,z,150,...
-           'MarkerEdgeColor','none','MarkerFaceColor','b');
-end
-
-% =========================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/matlab2tikz_acidtest.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/matlab2tikz_acidtest.m
deleted file mode 100644
index ae4324ff..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/matlab2tikz_acidtest.m
+++ /dev/null
@@ -1,609 +0,0 @@
-function matlab2tikz_acidtest(varargin)
-%MATLAB2TIKZ_ACIDTEST    unit test driver for matlab2tikz
-%
-% MATLAB2TIKZ_ACIDTEST('testFunctionIndices', INDICES, ...) or
-%   MATLAB2TIKZ_ACIDTEST(INDICES, ...) runs the test only for the specified
-%   indices. When empty, all tests are run. (Default: []).
-%
-% MATLAB2TIKZ_ACIDTEST('extraOptions', {'name',value, ...}, ...)
-%   passes the cell array of options to MATLAB2TIKZ. Default: {}
-%
-% MATLAB2TIKZ_ACIDTEST('figureVisible', LOGICAL, ...)
-%   plots the figure visibly during the test process. Default: false
-%
-% MATLAB2TIKZ_ACIDTEST('cleanBefore', LOGICAL, ...)
-%   tries to run "make clean" in the ./tex folder. Default: true
-%
-% MATLAB2TIKZ_ACIDTEST('testsuite', FUNCTION_HANDLE, ...)
-%   Determines which test suite is to be run. Default: @ACID
-%   A test suite is a function that takes a single integer argument, which:
-%     when 0: returns a cell array containing the N function handles to the tests
-%     when >=1 and <=N: runs the appropriate test function
-%     when >N: throws an error
-%
-% See also matlab2tikz, ACID
-
-% Copyright (c) 2008--2014, Nico Schlömer <nico.schloemer@gmail.com>
-% All rights reserved.
-%
-% Redistribution and use in source and binary forms, with or without
-% modification, are permitted provided that the following conditions are met:
-%
-%    * Redistributions of source code must retain the above copyright
-%      notice, this list of conditions and the following disclaimer.
-%    * Redistributions in binary form must reproduce the above copyright
-%      notice, this list of conditions and the following disclaimer in
-%      the documentation and/or other materials provided with the distribution
-%
-% THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-% AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-% IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-% ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-% LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-% CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-% SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-% INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-% CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-% ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-% POSSIBILITY OF SUCH DAMAGE.
-%
-% =========================================================================
-
-  % In which environment are we?
-  env = getEnvironment();
-  if ~strcmp(env, 'MATLAB') && ~strcmp(env, 'Octave')
-      error('Unknown environment. Need MATLAB(R) or GNU Octave.')
-  end
-
-
-  % -----------------------------------------------------------------------
-  ipp = m2tInputParser;
-
-  ipp = ipp.addOptional(ipp, 'testFunctionIndices', [], @isfloat);
-  ipp = ipp.addParamValue(ipp, 'extraOptions', {}, @iscell);
-  ipp = ipp.addParamValue(ipp, 'figureVisible', false, @islogical);
-  ipp = ipp.addParamValue(ipp, 'testsuite', @ACID, @(x)(isa(x,'function_handle')));
-  ipp = ipp.addParamValue(ipp, 'cleanBefore', true, @islogical);
-
-  ipp = ipp.parse(ipp, varargin{:});
-  % -----------------------------------------------------------------------
-
-  testsuite = ipp.Results.testsuite;
-  testsuiteName = func2str(testsuite);
-
-  % try to clean the output
-  cleanFiles(ipp.Results.cleanBefore);
-
-  % first, initialize the tex output
-  texfile = 'tex/acid.tex';
-  fh = fopen(texfile, 'w');
-  assert(fh ~= -1, 'Could not open TeX file ''%s'' for writing.', texfile);
-  texfile_init(fh);
-
-  % output streams
-  stdout = 1;
-  if strcmp(env, 'Octave') && ~ipp.Results.figureVisible
-      % Use the gnuplot backend to work around an fltk bug, see
-      % <http://savannah.gnu.org/bugs/?43429>.
-      graphics_toolkit gnuplot
-  end
-
-  % query the number of test functions
-  n = length(testsuite(0));
-
-  defaultStatus = emptyStatus();
-
-  if ~isempty(ipp.Results.testFunctionIndices)
-      indices = ipp.Results.testFunctionIndices;
-      % kick out the illegal stuff
-      I = find(indices>=1 & indices<=n);
-      indices = indices(I); %#ok
-  else
-      indices = 1:n;
-  end
-
-  % start overall timing
-  elapsedTimeOverall = tic;
-
-  errorHasOccurred = false;
-
-  % cell array to accomodate different structure
-  status = cell(length(indices), 1);
-
-  for k = 1:length(indices)
-      fprintf(stdout, 'Executing %s test no. %d...\n', testsuiteName, indices(k));
-
-      % open a window
-      fig_handle = figure('visible',onOffBoolean(ipp.Results.figureVisible));
-
-      % plot the figure
-      try
-          status{k} = testsuite(indices(k));
-
-      catch %#ok
-          e = lasterror('reset'); %#ok
-
-          status{k}.description = '\textcolor{red}{Error during plot generation.}';
-          if isempty(status{k}) || ~isfield(status{k}, 'function') ...
-                  || isempty(status{k}.function)
-              status{k}.function = extractFunctionFromError(e, testsuite);
-          end
-
-          [status{k}.plotStage, errorHasOccurred] = errorHandler(e, env);
-      end
-
-      status{k} = fillStruct(status{k}, defaultStatus);
-
-      % plot not successful
-      if status{k}.skip
-          close(fig_handle);
-          continue
-      end
-
-      reference_eps = sprintf('data/reference/test%d-reference.eps', indices(k));
-      reference_pdf = sprintf('data/reference/test%d-reference.pdf', indices(k));
-      reference_fig = sprintf('data/reference/test%d-reference', indices(k));
-      gen_tex = sprintf('data/converted/test%d-converted.tex', indices(k));
-      gen_pdf  = sprintf('data/converted/test%d-converted.pdf', indices(k));
-
-      elapsedTime = tic;
-
-      % Save reference output as PDF
-      try
-          switch env
-              case 'MATLAB'
-                  % MATLAB does not generate properly cropped PDF files.
-                  % So, we generate EPS files that are converted later on.
-                  print(gcf, '-depsc2', reference_eps);
-
-                  % On R2014b Win, line endings in .eps are Unix style
-                  % https://github.com/matlab2tikz/matlab2tikz/issues/370
-                  ensureLineEndings(reference_eps);
-
-              case 'Octave'
-                  % In Octave, figures are properly cropped when using  print().
-                  print(reference_pdf, '-dpdf', '-S415,311', '-r150');
-                  pause(1.0)
-              otherwise
-                  error('Unknown environment. Need MATLAB(R) or GNU Octave.')
-          end
-      catch %#ok
-          e = lasterror('reset'); %#ok
-          [status{k}.saveStage, errorHasOccurred] = errorHandler(e, env);
-      end
-      % now, test matlab2tikz
-      try
-          cleanfigure(status{k}.extraCleanfigureOptions{:});
-          matlab2tikz('filename', gen_tex, ...
-                      'showInfo', false, ...
-                      'checkForUpdates', false, ...
-                      'dataPath', 'data/converted/', ...
-                      'standalone', true, ...
-                      ipp.Results.extraOptions{:}, ...
-                      status{k}.extraOptions{:} ...
-                     );
-      catch %#ok
-          e = lasterror('reset'); %#ok
-          % Remove (corrupted) output file. This is necessary to avoid that the
-          % Makefile tries to compile it and fails.
-          delete(gen_tex)
-          [status{k}.tikzStage, errorHasOccurred] = errorHandler(e, env);
-      end
-
-      % ...and finally write the bits to the LaTeX file
-      texfile_addtest(fh, reference_fig, gen_pdf, status{k}, indices(k), testsuiteName);
-
-      if ~status{k}.closeall
-          close(fig_handle);
-      else
-          close all;
-      end
-
-      elapsedTime = toc(elapsedTime);
-      fprintf(stdout, '%s ', status{k}.function);
-      fprintf(stdout, 'done (%4.2fs).\n\n', elapsedTime);
-  end
-
-  % Write the summary table to the LaTeX file
-  texfile_tab_completion_init(fh)
-  for k = 1:length(indices)
-      stat = status{k};
-      % Break table up into pieces if it gets too long for one page
-      if ~mod(k,35)
-          texfile_tab_completion_finish(fh);
-          texfile_tab_completion_init(fh);
-      end
-
-      fprintf(fh, '%d & \\texttt{%s}', indices(k), name2tex(stat.function));
-      if stat.skip
-          fprintf(fh, ' & --- & skipped & ---');
-      else
-          for err = [stat.plotStage.error, ...
-                     stat.saveStage.error, ...
-                     stat.tikzStage.error]
-              if err
-                  fprintf(fh, ' & \\textcolor{red}{failed}');
-              else
-                  fprintf(fh, ' & \\textcolor{green!50!black}{passed}');
-              end
-          end
-      end
-      fprintf(fh, ' \\\\\n');
-  end
-  texfile_tab_completion_finish(fh);
-
-  % Write the error messages to the LaTeX file if there are any
-  if errorHasOccurred
-      fprintf(fh, '\\section*{Error messages}\n\\scriptsize\n');
-      for k = 1:length(indices)
-          stat = status{k};
-          if isempty(stat.plotStage.message) && ...
-             isempty(stat.saveStage.message) && ...
-             isempty(stat.tikzStage.message)
-              continue % No error messages for this test case
-          end
-
-          fprintf(fh, '\n\\subsection*{Test case %d: \\texttt{%s}}\n', indices(k), name2tex(stat.function));
-          print_verbatim_information(fh, 'Plot generation', stat.plotStage.message);
-          print_verbatim_information(fh, 'PDF generation' , stat.saveStage.message);
-          print_verbatim_information(fh, 'matlab2tikz'    , stat.tikzStage.message);
-      end
-      fprintf(fh, '\n\\normalsize\n\n');
-  end
-
-  % now, finish off the file and close file and window
-  texfile_finish(fh, testsuite);
-  fclose(fh);
-
-  % print out overall timing
-  elapsedTimeOverall = toc(elapsedTimeOverall);
-  fprintf(stdout, 'overall time: %4.2fs\n\n', elapsedTimeOverall);
-
-end
-% =========================================================================
-function cleanFiles(cleanBefore)
-% clean output files in ./tex using make
-    if cleanBefore && exist(fullfile('tex','Makefile'),'file')
-        fprintf(1, 'Cleaning output files...\n');
-        cwd = pwd;
-        try
-            cd('tex');
-            [exitCode, output] = system('make distclean');
-            fprintf(1,'%s\n', output);
-            assert(exitCode==0, 'Exit code 0 means correct execution');
-        catch
-            % This might happen when make is not present
-            fprintf(2, '\tNot completed succesfully\n\n');
-        end
-        cd(cwd);
-    end
-end
-% =========================================================================
-function texfile_init(texfile_handle)
-
-  fprintf(texfile_handle, ...
-           ['\\documentclass[landscape]{scrartcl}\n'                , ...
-            '\\pdfminorversion=6\n\n'                               , ...
-            '\\usepackage{amsmath} %% required for $\\text{xyz}$\n\n', ...
-            '\\usepackage{hyperref}\n'                              , ...
-            '\\usepackage{graphicx}\n'                              , ...
-            '\\usepackage{epstopdf}\n'                              , ...
-            '\\usepackage{tikz}\n'                                  , ...
-            '\\usetikzlibrary{plotmarks}\n\n'                       , ...
-            '\\usepackage{pgfplots}\n'                              , ...
-            '\\pgfplotsset{compat=newest}\n\n'                      , ...
-            '\\usepackage[margin=0.5in]{geometry}\n'                , ...
-            '\\newlength\\figurewidth\n'                            , ...
-            '\\setlength\\figurewidth{0.4\\textwidth}\n\n'          , ...
-            '\\begin{document}\n\n']);
-
-end
-% =========================================================================
-function texfile_finish(texfile_handle, testsuite)
-
-  [env,versionString] = getEnvironment();
-
-
-  fprintf(texfile_handle, ...
-      [
-      '\\newpage\n',...
-      '\\begin{tabular}{ll}\n',...
-      '  Suite    & ' name2tex(func2str(testsuite)) ' \\\\ \n', ...
-      '  Created  & ' datestr(now) ' \\\\ \n', ...
-      '  OS       & ' OSVersion ' \\\\ \n',...
-      '  ' env '  & ' versionString ' \\\\ \n', ...
-      VersionControlIdentifier, ...
-      '  TikZ     & \\expandafter\\csname ver@tikz.sty\\endcsname \\\\ \n',...
-      '  Pgfplots & \\expandafter\\csname ver@pgfplots.sty\\endcsname \\\\ \n',...
-      '\\end{tabular}\n',...
-      '\\end{document}']);
-
-end
-% =========================================================================
-function print_verbatim_information(texfile_handle, title, contents)
-    if ~isempty(contents)
-        fprintf(texfile_handle, ...
-                ['\\subsubsection*{%s}\n', ...
-                 '\\begin{verbatim}\n%s\\end{verbatim}\n'], ...
-                title, contents);
-    end
-end
-% =========================================================================
-function texfile_addtest(texfile_handle, ref_file, gen_tex, status, funcId, testsuiteName)
-  % Actually add the piece of LaTeX code that'll later be used to display
-  % the given test.
-
-  ref_error = status.plotStage.error;
-  gen_error = status.tikzStage.error;
-
-  fprintf(texfile_handle, ...
-          ['\\begin{figure}\n'                                          , ...
-           '  \\centering\n'                                            , ...
-           '  \\begin{tabular}{cc}\n'                                   , ...
-           '    %s & %s \\\\\n'                                         , ...
-           '    reference rendering & generated\n'                      , ...
-           '  \\end{tabular}\n'                                         , ...
-           '  \\caption{%s \\texttt{%s}, \\texttt{%s(%d)}.%s}\n', ...
-          '\\end{figure}\n'                                             , ...
-          '\\clearpage\n\n'],...
-          include_figure(ref_error, 'includegraphics', ref_file), ...
-          include_figure(gen_error, 'includegraphics', gen_tex), ...
-          status.description, ...
-          name2tex(status.function), name2tex(testsuiteName), funcId, ...
-          formatIssuesForTeX(status.issues));
-
-end
-% =========================================================================
-function str = include_figure(errorOccured, command, filename)
-    if errorOccured
-        str = sprintf(['\\tikz{\\draw[red,thick] ', ...
-                       '(0,0) -- (\\figurewidth,\\figurewidth) ', ...
-                       '(0,\\figurewidth) -- (\\figurewidth,0);}']);
-    else
-        switch command
-            case 'includegraphics'
-                strFormat = '\\includegraphics[width=\\figurewidth]{../%s}';
-            case 'input'
-                strFormat = '\\input{../%s}';
-            otherwise
-                error('Matlab2tikz_acidtest:UnknownFigureCommand', ...
-                      'Unknown figure command "%s"', command);
-        end
-        str = sprintf(strFormat, filename);
-    end
-end
-% =========================================================================
-function texfile_tab_completion_init(texfile_handle)
-
-  fprintf(texfile_handle, ['\\clearpage\n\n'                            , ...
-                           '\\begin{table}\n'                           , ...
-                           '\\centering\n'                              , ...
-                           '\\caption{Test case completion summary}\n'  , ...
-                           '\\begin{tabular}{rlccc}\n'                  , ...
-                           'No. & Test case & Plot & PDF & TikZ \\\\\n' , ...
-                           '\\hline\n']);
-
-end
-% =========================================================================
-function texfile_tab_completion_finish(texfile_handle)
-
-  fprintf(texfile_handle, ['\\end{tabular}\n' , ...
-                           '\\end{table}\n\n' ]);
-
-end
-% =========================================================================
-function [env,versionString] = getEnvironment()
-  % Check if we are in MATLAB or Octave.
-  % Calling ver with an argument: iterating over all entries is very slow
-  alternatives = {'MATLAB','Octave'};
-  for iCase = 1:numel(alternatives)
-      env   = alternatives{iCase};
-      vData = ver(env);
-      if ~isempty(vData)
-          versionString = vData.Version;
-          return; % found the right environment
-      end
-  end
-  % otherwise:
-  env = [];
-  versionString = [];
-end
-% =========================================================================
-function [formatted, OSType, OSVersion] = OSVersion()
-    if ismac
-        OSType = 'Mac OS';
-        [dummy, OSVersion] = system('sw_vers -productVersion');
-    elseif ispc
-        OSType = '';% will already contain Windows in the output of `ver`
-        [dummy, OSVersion] = system('ver');
-    elseif isunix
-        OSType = 'Unix';
-        [dummy, OSVersion] = system('uname -r');
-    else
-        OSType = '';
-        OSVersion = '';
-    end
-    formatted = strtrim([OSType ' ' OSVersion]);
-end
-% =========================================================================
-function msg = format_error_message(e)
-    msg = '';
-    if ~isempty(e.message)
-        msg = sprintf('%serror: %s\n', msg, e.message);
-    end
-    if ~isempty(e.identifier)
-        msg = sprintf('%serror: %s\n', msg, e.identifier);
-    end
-    if ~isempty(e.stack)
-        msg = sprintf('%serror: called from:\n', msg);
-        for ee = e.stack(:)'
-            msg = sprintf('%serror:   %s at line %d, in function %s\n', ...
-                          msg, ee.file, ee.line, ee.name);
-        end
-    end
-end
-% =========================================================================
-function disp_error_message(env, msg)
-    stderr = 2;
-    % When displaying the error message in MATLAB, all backslashes
-    % have to be replaced by two backslashes. This must not, however,
-    % be applied constantly as the string that's saved to the LaTeX
-    % output must have only one backslash.
-    if strcmp(env, 'MATLAB')
-        fprintf(stderr, strrep(msg, '\', '\\'));
-    else
-        fprintf(stderr, msg);
-    end
-end
-% =========================================================================
-function [formatted,treeish] = VersionControlIdentifier()
-% This function gives the (git) commit ID of matlab2tikz
-%
-% This assumes the standard directory structure as used by Nico's master branch:
-%     SOMEPATH/src/matlab2tikz.m with a .git directory in SOMEPATH.
-%
-% The HEAD of that repository is determined from file system information only
-% by following dynamic references (e.g. ref:refs/heds/master) in branch files
-% until an absolute commit hash (e.g. 1a3c9d1...) is found.
-% NOTE: Packed branch references are NOT supported by this approach
-    MAXITER     = 10; % stop following dynamic references after a while
-    formatted   = '';
-    REFPREFIX   = 'ref:';
-    isReference = @(treeish)(any(strfind(treeish, REFPREFIX)));
-    treeish     = [REFPREFIX 'HEAD'];
-    try
-        % get the matlab2tikz directory
-        m2tDir = fileparts(mfilename('fullpath'));
-        gitDir = fullfile(m2tDir,'..','.git');
-
-        nIter = 1;
-        while isReference(treeish)
-            refName    = treeish(numel(REFPREFIX)+1:end);
-            branchFile = fullfile(gitDir, refName);
-
-            if exist(branchFile, 'file') && nIter < MAXITER
-                fid     = fopen(branchFile,'r');
-                treeish = fscanf(fid,'%s');
-                fclose(fid);
-                nIter   = nIter + 1;
-            else % no branch file or iteration limit reached
-                treeish = '';
-                return;
-            end
-        end
-    catch %#ok
-        treeish = '';
-    end
-    if ~isempty(treeish)
-        formatted = ['  Commit & ' treeish ' \\\\ \n'];
-    end
-end
-% =========================================================================
-function texName = name2tex(matlabIdentifier)
-texName = strrep(matlabIdentifier, '_', '\_');
-end
-% =========================================================================
-function str = formatIssuesForTeX(issues)
-% make links to GitHub issues for the LaTeX output
-  issues = issues(:)';
-  if isempty(issues)
-      str = '';
-      return
-  end
-  BASEURL = 'https://github.com/matlab2tikz/matlab2tikz/issues/';
-  SEPARATOR = sprintf(' \n');
-  strs = arrayfun(@(n) sprintf(['\\href{' BASEURL '%d}{\\#%d}'], n,n), issues, ...
-                  'UniformOutput', false);
-  strs = [strs; repmat({SEPARATOR}, 1, numel(strs))];
-  str = sprintf('{\\color{blue} \\texttt{%s}}', [strs{:}]);
-end
-% =========================================================================
-function onOff = onOffBoolean(bool)
-if bool
-    onOff = 'on';
-else
-    onOff = 'off';
-end
-end
-% =========================================================================
-function ensureLineEndings(filename)
-% Read in one line and test the ending
-fid = fopen(filename,'r+');
-testline = fgets(fid);
-if ispc && ~strcmpi(testline(end-1:end), sprintf('\r\n'))
-    % Rewind, read the whole
-    fseek(fid,0,'bof');
-    str = fread(fid,'*char')';
-
-    % Replace, overwrite and close
-    str = strrep(str, testline(end), sprintf('\r\n'));
-    fseek(fid,0,'bof');
-    fprintf(fid,'%s',str);
-    fclose(fid);
-end
-end
-% =========================================================================
-function defaultStatus = emptyStatus()
-% constructs an empty status struct
-defaultStatus = struct('function',               '', ...
-                       'description',            '',...
-                       'issues',                 [],...
-                       'skip',                   false, ... % skipped this test?
-                       'closeall',               false, ... % call close all after?
-                       'extraOptions',           {cell(0)}, ...
-                       'extraCleanfigureOptions',{cell(0)}, ...
-                       'plotStage',              emptyStage(), ...
-                       'saveStage',              emptyStage(), ...
-                       'tikzStage',              emptyStage());
-end
-% =========================================================================
-function stage = emptyStage()
-% constructs an empty (workflow) stage struct
-stage = struct('message', '', 'error'  , false);
-end
-% =========================================================================
-function [status] = fillStruct(status, defaultStatus)
-% fills non-existant fields of |data| with those of |defaultData|
-  fields = fieldnames(defaultStatus);
-  for iField = 1:numel(fields)
-      field = fields{iField};
-      if ~isfield(status,field)
-          status.(field) = defaultStatus.(field);
-      end
-  end
-end
-% =========================================================================
-function name = extractFunctionFromError(e, testsuite)
-% extract function name from an error (using the stack)
-    name = '';
-    if isa(testsuite, 'function_handle')
-        testsuite = func2str(testsuite);
-    end
-    for kError = 1:numel(e.stack);
-        ee = e.stack(kError);
-        if isempty(name)
-            name = '';
-            if ~isempty(regexp(ee.name, ['^' testsuite '>'],'once'))
-                % extract function name
-                name = regexprep(ee.name, ['^' testsuite '>(.*)'], '$1');
-            elseif ~isempty(regexp(ee.name, ['^' testsuite],'once')) && ...
-                    kError < numel(e.stack)
-                % new stack trace format (R2014b)
-                if kError > 1
-                    name = e.stack(kError-1).name;
-                end
-            end
-        end
-    end
-end
-% =========================================================================
-function [stage, errorHasOccurred] = errorHandler(e,env)
-% common error handler code: save and print to console
-errorHasOccurred = true;
-stage = emptyStage();
-stage.message = format_error_message(e);
-stage.error   = errorHasOccurred;
-
-disp_error_message(env, stage.message);
-end
-% =========================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/myCount.dat b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/myCount.dat
deleted file mode 100644
index 69e029e2..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/myCount.dat
+++ /dev/null
@@ -1,24 +0,0 @@
-    11    11     9
-     7    13    11
-    14    17    20
-    11    13     9
-    43    51    69
-    38    46    76
-    61   132   186
-    75   135   180
-    38    88   115
-    28    36    55
-    12    12    14
-    18    27    30
-    18    19    29
-    17    15    18
-    19    36    48
-    32    47    10
-    42    65    92
-    57    66   151
-    44    55    90
-   114   145   257
-    35    58    68
-    11    12    15
-    13     9    15
-    10     9     7
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/pointReductionTest.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/pointReductionTest.m
deleted file mode 100644
index 6b6718fb..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/pointReductionTest.m
+++ /dev/null
@@ -1,34 +0,0 @@
-% ==============================================================================
-function pointReductionTest()
-
-  breakTime = 5.0;
-
-  testPlots = {@testPlot1, ...
-              };
-               %@testPlot2};
-
-  for testPlot = testPlots
-      testPlot();
-      'a'
-      %pause(breakTime);
-      %pointReduction2d(0.1);
-      pause(breakTime);
-      'b'
-  end
-
-  close all;
-
-end
-% ==============================================================================
-function testPlot1()
-  x = -pi:pi/1000:pi;
-  y = tan(sin(x)) - sin(tan(x));
-  plot(x,y,'--rs');
-end
-% ==============================================================================
-function testPlot2()
-  x = -pi:pi/1000:pi;
-  y = exp(tan(sin(x)) - sin(tan(x)));
-  semilogy(x,y,'--rs');
-end
-% ==============================================================================
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/runtests b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/runtests
deleted file mode 100644
index 1135424c..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/runtests
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/octave -q
-
-# Create 
-#
-template = [ ...
- '%%!test\n', ...
- '%%! display(''Test %d...'');\n', ...
- '%%! graphics_toolkit gnuplot\n', ...
- '%%! try\n', ...
- '%%!   out = ACID(%d);\n', ...
- '%%! catch e\n', ...
- '%%!   error(''Exception in ACID:\\n%%s'', e.message);\n', ...
- '%%! end\n', ...
- '%%! if ~(isfield(out, ''skip'') && out.skip)\n', ...
- '%%!   outputFile = ''data/converted/test%d-converted.tex'';\n', ...
- '%%!   try\n', ...
- '%%!     matlab2tikz( ...\n', ...
- '%%!       ''filename'', outputFile, ...\n', ...
- '%%!       ''width'', ''5cm'', ...\n', ...
- '%%!       ''showInfo'', false, ...\n', ...
- '%%!       ''checkForUpdates'', false, ...\n', ...
- '%%!       ''dataPath'', ''data/converted/'', ...\n', ...
- '%%!       ''standalone'', true ...\n', ...
- '%%!       );\n', ...
- '%%!   catch e\n', ...
- '%%!     error(''Exception in matlab2tikz:\\n%%s'', e.message);\n', ...
- '%%!   end\n', ...
- '%%!   %%type(outputFile);\n', ...
- '%%!   assert(md5sum(outputFile), out.md5);\n', ...
- '%%! end\n', ...
- '%%!\n' ...
- ];
-
-# Create test entries for all tests
-testfile = 'testlist.m';
-fh = fopen(testfile, 'w');
-testcases = ACID(0);
-for k = 1:length(testcases)
-  fprintf(fh, template, k, k, k);
-end
-fclose(fh);
-
-# Actually run the tests.
-# Can't use the [n, max] return arguments
-# <https://www.gnu.org/software/octave/doc/interpreter/Test-Functions.html>
-# since they don't account for exceptions in tests.
-addpath('../src/');
-success = test(testfile);
-
-if success
-  printf('Tests successful.');
-  ierr = 0;
-else
-  ierr = 1;
-end
-exit(ierr);
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testPatches.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testPatches.m
deleted file mode 100644
index d4e8cffe..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testPatches.m
+++ /dev/null
@@ -1,121 +0,0 @@
-function status = testPatches(k)
-% TESTPATCHES Test suite for patches
-%
-% See also: ACID, matlab2tikz_acidtest
-
-testfunction_handles = {
-    @patch01;
-    @patch02;
-    @patch03;
-    @patch04;
-    @patch05;
-    @patch06;
-    @patch07;
-    @patch08;
-    };
-
-numFunctions = length( testfunction_handles );
-
-if nargin < 1 || isempty(k) || k <= 0
-    status = testfunction_handles;
-    return;  % This is used for querying numFunctions.
-    
-elseif (k<=numFunctions)
-    status = testfunction_handles{k}();
-    status.function = func2str(testfunction_handles{k});
-    
-else
-    error('patchTests:outOfBounds', ...
-        'Out of bounds (number of testfunctions=%d)', numFunctions);
-end
-
-end
-
-% =========================================================================
-function p = patch00()
-% DO NOT INCLUDE IN ACID LIST
-% Base patch plot for following tests
-xdata = [2 2 0 2 5; 2 8 2 4 5; 8 8 2 4 8];
-ydata = [4 4 4 2 0; 8 4 6 2 2; 4 0 4 0 0];
-zdata = ones(3,5)*2;
-p     = patch(xdata,ydata,zdata);
-end
-% =========================================================================
-function stat = patch01()
-stat.description = 'Set face color red';
-
-p = patch00();
-set(p,'FaceColor','r')
-end
-% =========================================================================
-function stat = patch02()
-stat.description = 'Flat face colors scaled in clim [0,40]';
-
-p = patch00();
-set(gca,'CLim',[0 40])
-cdata = [15 30 25 2 60];
-set(p,'FaceColor','flat','CData',cdata,'CDataMapping','scaled')
-end
-% =========================================================================
-function stat = patch03()
-stat.description = 'Flat face colors direct in clim [0,40]';
-
-p = patch00();
-set(gca,'CLim',[0 40])
-cdata = [15 30 25 2 60];
-set(p,'FaceColor','flat','CData',cdata,'CDataMapping','direct')
-end
-% =========================================================================
-function stat = patch04()
-stat.description = 'Flat face colors with 3D (truecolor) CData';
-
-p = patch00();
-cdata(:,:,1) = [0 0 1 0 0.8];
-cdata(:,:,2) = [0 0 0 0 0.8];
-cdata(:,:,3) = [1 1 1 0 0.8];
-set(p,'FaceColor','flat','CData',cdata)
-end
-% =========================================================================
-function stat = patch05()
-stat.description = 'Flat face color, scaled edge colors in clim [0,40]';
-
-p = patch00();
-set(gca,'CLim',[0 40])
-cdata = [15 30 25 2 60; 12 23 40 13 26; 24 8 1 65 42];
-set(p,'FaceColor','flat','CData',cdata,'EdgeColor','flat','LineWidth',5,'CDataMapping','scaled')
-end
-% =========================================================================
-function stat = patch06()
-stat.description = 'Flat face color, direct edge colors in clim [0,40]';
-
-p = patch00();
-set(gca,'CLim',[0 40])
-cdata = [15 30 25 2 60; 12 23 40 13 26; 24 8 1 65 42];
-set(p,'FaceColor','flat','CData',cdata,'EdgeColor','flat','LineWidth',5,'CDataMapping','direct')
-end
-% =========================================================================
-function stat = patch07()
-stat.description = 'Flat face color with 3D CData and interp edge colors';
-
-p = patch00();
-cdata(:,:,1) = [0 0 1 0 0.8;
-                0 0 1 0.2 0.6;
-                0 1 0 0.4 1];
-cdata(:,:,2) = [0 0 0 0 0.8;
-                1 1 1 0.2 0.6;
-                1 0 0 0.4 0];
-cdata(:,:,3) = [1 1 1 0 0.8;
-                0 1 0 0.2 0.6;
-                1 0 1 0.4 0];
-set(p,'FaceColor','flat','CData',cdata,'EdgeColor','interp','LineWidth',5)
-end
-% =========================================================================
-function stat = patch08()
-stat.description = 'Interp face colors, flat edges, scaled CData in clims [0,40]';
-
-p = patch00();
-set(gca,'CLim',[0 40])
-cdata = [15 30 25 2 60; 12 23 40 13 26; 24 8 1 65 42];
-set(p,'FaceColor','interp','CData',cdata,'EdgeColor','flat','LineWidth',5,'CDataMapping','scaled')
-end
-% =========================================================================
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testSurfshader.m b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testSurfshader.m
deleted file mode 100644
index e329d9cf..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/testSurfshader.m
+++ /dev/null
@@ -1,103 +0,0 @@
-function status = testSurfshader(k)
-% TESTSURFSHADER Test suite for Surf/mesh shaders (coloring)
-%
-% See also: ACID, matlab2tikz_acidtest
-
-  testfunction_handles = {
-      @surfShader1;
-      @surfShader2;
-      @surfShader3;
-      @surfShader4;
-      @surfShader5;
-      @surfNoShader;
-      @surfNoPlot;
-      @surfMeshInterp;
-      @surfMeshRGB;
-      };
-
-  numFunctions = length( testfunction_handles );
-
-  if nargin < 1 || isempty(k) || k <= 0
-      status = testfunction_handles;
-      return;  % This is used for querying numFunctions.
-
-  elseif (k<=numFunctions)
-      status = testfunction_handles{k}();
-      status.function = func2str(testfunction_handles{k});
-
-  else
-      error('patchTests:outOfBounds', ...
-            'Out of bounds (number of testfunctions=%d)', numFunctions);
-  end
-  
-end
-
-% =========================================================================
-function [stat] = surfShader1()
-  stat.description = 'shader=flat/(flat mean) | Fc: flat | Ec: none';
-
-  [X,Y,Z]  = peaks(5);
-  surf(X,Y,Z,'FaceColor','flat','EdgeColor','none')
-end
-% =========================================================================
-function [stat] = surfShader2()
-  stat.description = 'shader=interp | Fc: interp | Ec: none';
-
-  [X,Y,Z]  = peaks(5);
-  surf(X,Y,Z,'FaceColor','interp','EdgeColor','none')
-end
-% =========================================================================
-function [stat] = surfShader3()
-  stat.description = 'shader=faceted | Fc: flat | Ec: RGB';
-
-  [X,Y,Z]  = peaks(5);
-  surf(X,Y,Z,'FaceColor','flat','EdgeColor','green')
-end
-% =========================================================================
-function [stat] = surfShader4()
-stat.description = 'shader=faceted | Fc: RGB | Ec: interp';
-env = getEnvironment();
-if strcmpi(env, 'MATLAB') && isVersionBelow(env, 8, 4) %R2014a and older
-    warning('m2t:ACID:surfShader4',...
-        'The MATLAB EPS export may behave strangely for this case');
-end
-
-[X,Y,Z]  = peaks(5);
-surf(X,Y,Z,'FaceColor','blue','EdgeColor','interp')
-end
-% =========================================================================
-function [stat] = surfShader5()
-stat.description = 'shader=faceted interp | Fc: interp | Ec: flat';
-
-[X,Y,Z]  = peaks(5);
-surf(X,Y,Z,'FaceColor','interp','EdgeColor','flat')
-end
-% =========================================================================
-function [stat] = surfNoShader()
-stat.description = 'no shader | Fc: RGB | Ec: RGB';
-
-[X,Y,Z]  = peaks(5);
-surf(X,Y,Z,'FaceColor','blue','EdgeColor','yellow')
-end
-% =========================================================================
-function [stat] = surfNoPlot()
-stat.description = 'no plot | Fc: none | Ec: none';
-
-[X,Y,Z]  = peaks(5);
-surf(X,Y,Z,'FaceColor','none','EdgeColor','none')
-end
-% =========================================================================
-function [stat] = surfMeshInterp()
-stat.description = 'mesh | Fc: none | Ec: interp';
-
-[X,Y,Z]  = peaks(5);
-surf(X,Y,Z,'FaceColor','none','EdgeColor','interp')
-end
-% =========================================================================
-function [stat] = surfMeshRGB()
-stat.description = 'mesh | Fc: none | Ec: RGB';
-
-[X,Y,Z]  = peaks(5);
-surf(X,Y,Z,'FaceColor','none','EdgeColor','green')
-end
-% =========================================================================
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/tex/Makefile b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/tex/Makefile
deleted file mode 100644
index 89809159..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/test/tex/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# ./Makefile
-
-ECHOCMD:=/bin/echo -e
-LATEX:=lualatex --shell-escape
-TARGET:=acid
-
-main:
-	cd ../data/reference/ && $(MAKE)
-	cd ../data/converted/ && $(MAKE)
-	@$(LATEX) $(TARGET)
-
-.PHONY: clean
-
-clean:
-	@rm -f $(TARGET).aux \
-	$(TARGET).log \
-	$(TARGET).nav \
-	$(TARGET).out \
-	$(TARGET).snm \
-	$(TARGET).toc \
-	$(TARGET).vrb \
-	$(TARGET).pdf \
-	$(TARGET).dvi \
-	$(TARGET).ps \
-	missfont.log
-	@rm -f *~
-	cd ../data/reference/ && $(MAKE) clean
-	cd ../data/converted/ && $(MAKE) clean
-
-distclean: clean
-	@rm -f $(TARGET).tex
-	cd ../data/reference/ && $(MAKE) distclean
-	cd ../data/converted/ && $(MAKE) distclean
diff --git a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/version-0.6.0 b/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/version-0.6.0
deleted file mode 100644
index 5e89b8a4..00000000
--- a/katoptron/matlab/TPL/matlab2tikz-matlab2tikz-722609f/version-0.6.0
+++ /dev/null
@@ -1,6 +0,0 @@
-This file is there to make sure that the HTML page
-
-  http://www.mathworks.de/matlabcentral/fileexchange/22022-matlab2tikz/all_files
-
-contains the version number in clear text. This is used
-by the automatic updater.
diff --git a/katoptron/matlab/TPL/matlab2tikz2.m b/katoptron/matlab/TPL/matlab2tikz2.m
deleted file mode 100644
index 39c31976..00000000
--- a/katoptron/matlab/TPL/matlab2tikz2.m
+++ /dev/null
@@ -1,29 +0,0 @@
-function matlab2tikz2(filename,width_macro,height_macro)
-
-    filename_tmp = [filename,'_tmp'];
-    matlab2tikz(filename_tmp);
-    
-    fid = fopen(filename_tmp);
-    fid2 = fopen(filename, 'w');
-    tline = fgetl(fid);
-    while ischar(tline)
-        if((length(tline)>5) & (tline(1:5) == 'width'))
-            disp(tline)
-            clear tline
-            tline = ['width=',width_macro, ','];
-            disp(tline)
-        elseif((length(tline)>6) & (tline(1:6) == 'height'))
-            disp(tline)
-            clear tline
-            tline = ['height=',height_macro, ','];
-            disp(tline)
-        end
-        fwrite(fid2, tline);
-        fprintf(fid2,char(10));
-        tline = fgetl(fid);
-    end
-
-    fclose(fid);
-    fclose(fid2);
-    
-end
\ No newline at end of file
diff --git a/katoptron/matlab/TPL/test.tex b/katoptron/matlab/TPL/test.tex
deleted file mode 100644
index 1c8f7cfd..00000000
--- a/katoptron/matlab/TPL/test.tex
+++ /dev/null
@@ -1,130 +0,0 @@
-% This file was created by matlab2tikz.
-% Minimal pgfplots version: 1.3
-%
-%The latest updates can be retrieved from
-%  http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
-%where you can also make suggestions and rate matlab2tikz.
-%
-\definecolor{mycolor1}{rgb}{0.00000,0.44700,0.74100}%
-%
-\begin{tikzpicture}
-
-\begin{axis}[%
-width=\hi,
-height=\ho,
-at={(1.011111in,0.641667in)},
-scale only axis,
-xmin=-5,
-xmax=5,
-ymin=-80,
-ymax=80
-]
-\addplot [color=mycolor1,solid,forget plot]
-  table[row sep=crcr]{%
--5	-65\\
--4.8989898989899	-58.7883786338026\\
--4.7979797979798	-52.8766648218745\\
--4.6969696969697	-47.258674903303\\
--4.5959595959596	-41.9282252171753\\
--4.49494949494949	-36.8791321025787\\
--4.39393939393939	-32.1052118986003\\
--4.29292929292929	-27.6002809443275\\
--4.19191919191919	-23.3581555788474\\
--4.09090909090909	-19.3726521412472\\
--3.98989898989899	-15.6375869706142\\
--3.88888888888889	-12.1467764060357\\
--3.78787878787879	-8.89403678659878\\
--3.68686868686869	-5.87318445139076\\
--3.58585858585859	-3.07803573949884\\
--3.48484848484848	-0.502406990010293\\
--3.38383838383838	1.85988545798769\\
--3.28282828282828	4.01502526540787\\
--3.18181818181818	5.96919609316303\\
--3.08080808080808	7.72858160216593\\
--2.97979797979798	9.29936545332934\\
--2.87878787878788	10.687731307566\\
--2.77777777777778	11.8998628257887\\
--2.67676767676768	12.9419436689103\\
--2.57575757575758	13.8201574978434\\
--2.47474747474747	14.540687973501\\
--2.37373737373737	15.1097187567956\\
--2.27272727272727	15.5334335086401\\
--2.17171717171717	15.8180158899473\\
--2.07070707070707	15.96964956163\\
--1.96969696969697	15.9945181846008\\
--1.86868686868687	15.8988054197727\\
--1.76767676767677	15.6886949280583\\
--1.66666666666667	15.3703703703704\\
--1.56565656565657	14.9500154076218\\
--1.46464646464646	14.4338137007252\\
--1.36363636363636	13.8279489105935\\
--1.26262626262626	13.1386046981394\\
--1.16161616161616	12.3719647242757\\
--1.06060606060606	11.5342126499151\\
--0.959595959595959	10.6315321359705\\
--0.858585858585859	9.67010684335447\\
--0.757575757575758	8.65612043297994\\
--0.656565656565657	7.59575656575963\\
--0.555555555555555	6.49519890260631\\
--0.454545454545454	5.36063110443275\\
--0.353535353535354	4.19823683215174\\
--0.252525252525253	3.01419974667603\\
--0.151515151515151	1.81470350891838\\
--0.0505050505050502	0.605931779791586\\
-0.0505050505050502	-0.605931779791586\\
-0.151515151515151	-1.81470350891838\\
-0.252525252525253	-3.01419974667603\\
-0.353535353535354	-4.19823683215174\\
-0.454545454545454	-5.36063110443275\\
-0.555555555555555	-6.49519890260631\\
-0.656565656565657	-7.59575656575963\\
-0.757575757575758	-8.65612043297994\\
-0.858585858585859	-9.67010684335447\\
-0.959595959595959	-10.6315321359705\\
-1.06060606060606	-11.5342126499151\\
-1.16161616161616	-12.3719647242757\\
-1.26262626262626	-13.1386046981394\\
-1.36363636363636	-13.8279489105935\\
-1.46464646464646	-14.4338137007252\\
-1.56565656565657	-14.9500154076218\\
-1.66666666666667	-15.3703703703704\\
-1.76767676767677	-15.6886949280583\\
-1.86868686868687	-15.8988054197727\\
-1.96969696969697	-15.9945181846008\\
-2.07070707070707	-15.96964956163\\
-2.17171717171717	-15.8180158899473\\
-2.27272727272727	-15.5334335086401\\
-2.37373737373737	-15.1097187567956\\
-2.47474747474747	-14.540687973501\\
-2.57575757575758	-13.8201574978434\\
-2.67676767676768	-12.9419436689103\\
-2.77777777777778	-11.8998628257887\\
-2.87878787878788	-10.687731307566\\
-2.97979797979798	-9.29936545332933\\
-3.08080808080808	-7.72858160216592\\
-3.18181818181818	-5.96919609316303\\
-3.28282828282828	-4.0150252654079\\
-3.38383838383838	-1.85988545798769\\
-3.48484848484848	0.502406990010286\\
-3.58585858585859	3.07803573949887\\
-3.68686868686869	5.87318445139076\\
-3.78787878787879	8.89403678659875\\
-3.88888888888889	12.1467764060357\\
-3.98989898989899	15.6375869706142\\
-4.09090909090909	19.3726521412472\\
-4.19191919191919	23.3581555788474\\
-4.29292929292929	27.6002809443274\\
-4.39393939393939	32.1052118986004\\
-4.49494949494949	36.8791321025787\\
-4.5959595959596	41.9282252171753\\
-4.6969696969697	47.258674903303\\
-4.7979797979798	52.8766648218745\\
-4.8989898989899	58.7883786338026\\
-5	65\\
-};
-\node[right, align=left, inner sep=0mm, text=black]
-at (axis cs:-2,16,0) {dy/dx = 0};
-\node[right, align=left, inner sep=0mm, text=black]
-at (axis cs:2,-16,0) {dy/dx = 0};
-\end{axis}
-\end{tikzpicture}%
diff --git a/katoptron/matlab/TPL/test.tex_tmp b/katoptron/matlab/TPL/test.tex_tmp
deleted file mode 100644
index b9209af1..00000000
--- a/katoptron/matlab/TPL/test.tex_tmp
+++ /dev/null
@@ -1,130 +0,0 @@
-% This file was created by matlab2tikz.
-% Minimal pgfplots version: 1.3
-%
-%The latest updates can be retrieved from
-%  http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
-%where you can also make suggestions and rate matlab2tikz.
-%
-\definecolor{mycolor1}{rgb}{0.00000,0.44700,0.74100}%
-%
-\begin{tikzpicture}
-
-\begin{axis}[%
-width=6.027778in,
-height=4.754167in,
-at={(1.011111in,0.641667in)},
-scale only axis,
-xmin=-5,
-xmax=5,
-ymin=-80,
-ymax=80
-]
-\addplot [color=mycolor1,solid,forget plot]
-  table[row sep=crcr]{%
--5	-65\\
--4.8989898989899	-58.7883786338026\\
--4.7979797979798	-52.8766648218745\\
--4.6969696969697	-47.258674903303\\
--4.5959595959596	-41.9282252171753\\
--4.49494949494949	-36.8791321025787\\
--4.39393939393939	-32.1052118986003\\
--4.29292929292929	-27.6002809443275\\
--4.19191919191919	-23.3581555788474\\
--4.09090909090909	-19.3726521412472\\
--3.98989898989899	-15.6375869706142\\
--3.88888888888889	-12.1467764060357\\
--3.78787878787879	-8.89403678659878\\
--3.68686868686869	-5.87318445139076\\
--3.58585858585859	-3.07803573949884\\
--3.48484848484848	-0.502406990010293\\
--3.38383838383838	1.85988545798769\\
--3.28282828282828	4.01502526540787\\
--3.18181818181818	5.96919609316303\\
--3.08080808080808	7.72858160216593\\
--2.97979797979798	9.29936545332934\\
--2.87878787878788	10.687731307566\\
--2.77777777777778	11.8998628257887\\
--2.67676767676768	12.9419436689103\\
--2.57575757575758	13.8201574978434\\
--2.47474747474747	14.540687973501\\
--2.37373737373737	15.1097187567956\\
--2.27272727272727	15.5334335086401\\
--2.17171717171717	15.8180158899473\\
--2.07070707070707	15.96964956163\\
--1.96969696969697	15.9945181846008\\
--1.86868686868687	15.8988054197727\\
--1.76767676767677	15.6886949280583\\
--1.66666666666667	15.3703703703704\\
--1.56565656565657	14.9500154076218\\
--1.46464646464646	14.4338137007252\\
--1.36363636363636	13.8279489105935\\
--1.26262626262626	13.1386046981394\\
--1.16161616161616	12.3719647242757\\
--1.06060606060606	11.5342126499151\\
--0.959595959595959	10.6315321359705\\
--0.858585858585859	9.67010684335447\\
--0.757575757575758	8.65612043297994\\
--0.656565656565657	7.59575656575963\\
--0.555555555555555	6.49519890260631\\
--0.454545454545454	5.36063110443275\\
--0.353535353535354	4.19823683215174\\
--0.252525252525253	3.01419974667603\\
--0.151515151515151	1.81470350891838\\
--0.0505050505050502	0.605931779791586\\
-0.0505050505050502	-0.605931779791586\\
-0.151515151515151	-1.81470350891838\\
-0.252525252525253	-3.01419974667603\\
-0.353535353535354	-4.19823683215174\\
-0.454545454545454	-5.36063110443275\\
-0.555555555555555	-6.49519890260631\\
-0.656565656565657	-7.59575656575963\\
-0.757575757575758	-8.65612043297994\\
-0.858585858585859	-9.67010684335447\\
-0.959595959595959	-10.6315321359705\\
-1.06060606060606	-11.5342126499151\\
-1.16161616161616	-12.3719647242757\\
-1.26262626262626	-13.1386046981394\\
-1.36363636363636	-13.8279489105935\\
-1.46464646464646	-14.4338137007252\\
-1.56565656565657	-14.9500154076218\\
-1.66666666666667	-15.3703703703704\\
-1.76767676767677	-15.6886949280583\\
-1.86868686868687	-15.8988054197727\\
-1.96969696969697	-15.9945181846008\\
-2.07070707070707	-15.96964956163\\
-2.17171717171717	-15.8180158899473\\
-2.27272727272727	-15.5334335086401\\
-2.37373737373737	-15.1097187567956\\
-2.47474747474747	-14.540687973501\\
-2.57575757575758	-13.8201574978434\\
-2.67676767676768	-12.9419436689103\\
-2.77777777777778	-11.8998628257887\\
-2.87878787878788	-10.687731307566\\
-2.97979797979798	-9.29936545332933\\
-3.08080808080808	-7.72858160216592\\
-3.18181818181818	-5.96919609316303\\
-3.28282828282828	-4.0150252654079\\
-3.38383838383838	-1.85988545798769\\
-3.48484848484848	0.502406990010286\\
-3.58585858585859	3.07803573949887\\
-3.68686868686869	5.87318445139076\\
-3.78787878787879	8.89403678659875\\
-3.88888888888889	12.1467764060357\\
-3.98989898989899	15.6375869706142\\
-4.09090909090909	19.3726521412472\\
-4.19191919191919	23.3581555788474\\
-4.29292929292929	27.6002809443274\\
-4.39393939393939	32.1052118986004\\
-4.49494949494949	36.8791321025787\\
-4.5959595959596	41.9282252171753\\
-4.6969696969697	47.258674903303\\
-4.7979797979798	52.8766648218745\\
-4.8989898989899	58.7883786338026\\
-5	65\\
-};
-\node[right, align=left, inner sep=0mm, text=black]
-at (axis cs:-2,16,0) {dy/dx = 0};
-\node[right, align=left, inner sep=0mm, text=black]
-at (axis cs:2,-16,0) {dy/dx = 0};
-\end{axis}
-\end{tikzpicture}%
\ No newline at end of file
diff --git a/katoptron/matlab/ensemble/eric_data.m b/katoptron/matlab/ensemble/eric_data.m
deleted file mode 100644
index cfea0b6b..00000000
--- a/katoptron/matlab/ensemble/eric_data.m
+++ /dev/null
@@ -1,571 +0,0 @@
-% clear all
-% close all
-% clc
-% 
-% throughput_haswell = ...
-% [0.9119170984455955, 7.906111492602527;
-% 3.979274611398962, 10.228603533304188;
-% 7.792746113989635, 10.62563206192646;
-% 11.772020725388602, 11.215931081840303;
-% 15.917098445595853, 11.132030713527676;
-% 19.813471502590673, 11.336537861289713;
-% 23.875647668393782, 11.348773331668632;
-% 27.689119170984455, 11.360259691616193;
-% 31.751295336787564, 11.372495161995118];
-% 
-% throughput_haswell(:,1) = round(throughput_haswell(:,1));
-% 
-% throughput_cray = ...
-% [1.0777202072538863, 2.3162494537736436;
-% 4.145077720207253, 3.0965728197765117;
-% 7.87564766839378, 3.204195018415625;
-% 12.020725388601038, 3.2166801922716672;
-% 15.999999999999998, 3.4214370435108137;
-% 19.979274611398964, 3.3370372682439537;
-% 23.875647668393782, 3.3487733316686317;
-% 27.772020725388607, 3.5532804794306685;
-% 31.834196891191716, 3.469130407640911];
-% 
-% throughput_cray(:,1) = round(throughput_cray(:,1));
-% 
-% throughput_nvidia = ...
-% [0.9948186528497391, 17.159373244272423;
-% 15.999999999999998, 34.168424995318055;
-% 31.834196891191716, 35.08358823896622];
-% 
-% throughput_nvidia(:,1) = round(throughput_nvidia(:,1));
-% 
-% throughput_knc = ...
-% [0.8290155440414484, 14.749235283101314;
-% 7.626943005181348, 15.348024221237274;
-% 15.917098445595853, 19.228416255696352;
-% 23.875647668393782, 24.457207066608397;
-% 31.751295336787564, 25.73394094512765];
-% 
-% throughput_knc(:,1) = round(throughput_knc(:,1));
-% 
-% %%
-% matrix_speed_up_haswell = ...
-% [0.8000000000000007, 0.9986486486486488;
-% 3.9200000000000017, 1.307657657657658;
-% 7.759999999999998, 1.3896396396396398;
-% 11.84, 1.4211711711711714;
-% 15.84, 1.4400900900900904;
-% 19.759999999999998, 1.4495495495495496;
-% 23.839999999999996, 1.4495495495495496;
-% 27.839999999999996, 1.4590090090090093;
-% 31.919999999999995, 1.4653153153153156];
-% 
-% matrix_speed_up_cray = ...
-% [0.8000000000000007, 0.9954954954954955;
-% 4.080000000000002, 1.307657657657658;
-% 7.920000000000002, 1.326576576576577;
-% 12, 1.392792792792793;
-% 15.999999999999996, 1.4211711711711714;
-% 19.92, 1.411711711711712;
-% 23.919999999999995, 1.3833333333333335;
-% 28, 1.4810810810810813;
-% 32, 1.4211711711711714];
-% 
-% matrix_speed_up_nvidia = ...
-% [0.8000000000000007, 1.001801801801802;
-% 15.999999999999996, 1.9855855855855857;
-% 32, 2.032882882882883];
-% 
-% matrix_speed_up_knc = ...
-% [0.8000000000000007, 0.9986486486486488;
-% 7.759999999999998, 1.0490990990990992;
-% 15.84, 1.3234234234234237;
-% 23.759999999999998, 1.6702702702702705;
-% 31.83999999999999, 1.7585585585585588];
-% 
-% matrix_speed_up_haswell(:,1) = round(matrix_speed_up_haswell(:,1));
-% matrix_speed_up_cray(:,1) = round(matrix_speed_up_cray(:,1));
-% matrix_speed_up_nvidia(:,1) = round(matrix_speed_up_nvidia(:,1));
-% matrix_speed_up_knc(:,1) = round(matrix_speed_up_knc(:,1));
-% %%
-% mrhs_assembly_time_haswell = ...
-% [0.8226221079691509, 78.73303167420812;
-% 3.86632390745501, 52.26244343891403;
-% 7.814910025706938, 36.65158371040724;
-% 15.87660668380463, 29.864253393665194;
-% 31.835475578406168, 27.149321266968343];
-% 
-% mrhs_assembly_time_cray = ...
-% [0.9871465295629829, 269.4570135746606;
-% 4.030848329048842, 171.71945701357464;
-% 7.97943444730077, 144.5701357466063;
-% 16.041131105398456, 138.46153846153845;
-% 31.917737789203088, 132.3529411764706];
-% 
-% mrhs_assembly_time_nvidia = ...
-% [0.9871465295629829, 51.58371040723978;
-% 15.958868894601542, 43.43891402714934;
-% 32, 43.43891402714934];
-% 
-% mrhs_assembly_time_knc = ...
-% [0.8226221079691509, 74.66063348416293;
-% 7.814910025706938, 28.50678733031674;
-% 15.87660668380463, 20.361990950226243;
-% 31.835475578406168, 16.968325791855193];
-% 
-% 
-% mrhs_assembly_time_haswell(:,1) = round(mrhs_assembly_time_haswell(:,1));
-% mrhs_assembly_time_cray(:,1) = round(mrhs_assembly_time_cray(:,1));
-% mrhs_assembly_time_nvidia(:,1) = round(mrhs_assembly_time_nvidia(:,1));
-% mrhs_assembly_time_knc(:,1) = round(mrhs_assembly_time_knc(:,1));
-% 
-% %%
-% mrhs_assembly_speed_up_haswell = ...
-% [0.9663930062484223, 0.9955056179775283;
-% 4.007778307041386, 1.501123595505618;
-% 7.850575807671829, 2.1988764044943823;
-% 15.918495895093729, 2.653932584269663;
-% 31.96305864552103, 2.91685393258427];
-% 
-% mrhs_assembly_speed_up_cray = ...
-% [0.9663930062484223, 0.9955056179775283;
-% 4.08883409453893, 1.571910112359551;
-% 8.0040796884194, 1.8550561797752811;
-% 16.06536467819216, 1.9359550561797754;
-% 32.027257698450505, 2.037078651685394];
-% 
-% mrhs_assembly_speed_up_nvidia = ...
-% [0.9663930062484223, 0.9955056179775283;
-% 16.051556502003415, 1.1573033707865177;
-% 32.011656252626864, 1.1573033707865177];
-% 
-% mrhs_assembly_speed_up_knc = ...
-% [0.9663930062484223, 0.9955056179775283;
-% 7.860438790663787, 2.755056179775281;
-% 15.937325226260194, 3.7157303370786523;
-% 31.990674997898516, 4.474157303370787];
-% 
-% mrhs_assembly_speed_up_theoretical = ...
-% [0.9663930062484223, 0.9955056179775283;
-% 4.094572557370617, 1.8955056179775278;
-% 8.010535459105045, 2.2191011235955065;
-% 15.994351200650064, 2.4314606741573037;
-% 32.116024545378124, 2.542696629213484];
-% 
-% mrhs_assembly_speed_up_haswell(:,1) = round(mrhs_assembly_speed_up_haswell(:,1));
-% mrhs_assembly_speed_up_cray(:,1) = round(mrhs_assembly_speed_up_cray(:,1));
-% mrhs_assembly_speed_up_nvidia(:,1) = round(mrhs_assembly_speed_up_nvidia(:,1));
-% mrhs_assembly_speed_up_knc(:,1) = round(mrhs_assembly_speed_up_knc(:,1));
-% mrhs_assembly_speed_up_theoretical(:,1) = round(mrhs_assembly_speed_up_theoretical(:,1));
-% %%
-% halo_time = zeros(5,6);
-% halo_time(:,1:2) = ...
-% [1.079518072289158, 0.927835051546392;
-% 4.086746987951807, 1.4536082474226788;
-% 8.096385542168676, 2.195876288659793;
-% 16.11566265060241, 3.9587628865979383;
-% 31.999999999999996, 7.422680412371134];
-% 
-% halo_time(:,[1,3]) = ...
-% [0.7710843373493983, 1.0515463917525736;
-% 4.086746987951807, 1.6082474226804138;
-% 7.865060240963853, 2.3505154639175245;
-% 15.807228915662652, 3.9278350515463902;
-% 31.922891566265054, 7.824742268041238];
-% 
-% halo_time(:,[1,4]) = ...
-% [0.9253012048192772, 0.927835051546392;
-% 3.9325301204819283, 1.4536082474226788;
-% 7.942168674698795, 2.1030927835051543;
-% 16.11566265060241, 3.8350515463917514;
-% 31.999999999999996, 7.608247422680414];
-% 
-% halo_time(:,[1,5]) = ...
-% [0.7710843373493983, 1.0824742268041234;
-% 4.009638554216867, 1.731958762886599;
-% 7.865060240963853, 2.5670103092783503;
-% 16.038554216867468, 5.041237113402062;
-% 31.922891566265054, 9.34020618556701];
-% 
-% halo_time(:,[1,6]) = ...
-% [1.0024096385542158, 1.144329896907216;
-% 4.009638554216867, 1.8247422680412377;
-% 7.942168674698795, 2.7525773195876297;
-% 16.038554216867468, 5.443298969072165;
-% 31.999999999999996, 10.453608247422682];
-% 
-% halo_time(:,1) = round(halo_time(:,1));
-% 
-% %%
-% halo_speed_up = zeros(5,6);
-% halo_speed_up(:,1:2) = ...
-% [0.9230769230769234, 1.0141388174807187;
-% 4, 2.6079691516709502;
-% 8.000000000000002, 3.4717223650385596;
-% 16.07692307692308, 3.8213367609254494;
-% 32.15384615384615, 4.088688946015424];
-% 
-% halo_speed_up(:,[1,3]) = ...
-% [0.9230769230769234, 1.0141388174807187;
-% 3.8461538461538467, 2.5874035989717212;
-% 7.8461538461538485, 3.410025706940874;
-% 16, 4.057840616966581;
-% 31.846153846153847, 3.9858611825192796];
-% 
-% halo_speed_up(:,[1,4]) = ...
-% [1, 0.9935732647814906;
-% 4.153846153846155, 2.5874035989717212;
-% 7.923076923076925, 3.5745501285347037;
-% 16.07692307692308, 3.996143958868894;
-% 32, 4.07840616966581];
-% 
-% halo_speed_up(:,[1,5]) = ...
-% [0.9230769230769234, 1.0038560411311046;
-% 3.9230769230769234, 2.597686375321336;
-% 8.076923076923078, 3.3791773778920304;
-% 16, 3.482005141388174;
-% 32, 3.7596401028277633];
-% 
-% halo_speed_up(:,[1,6]) = ...
-% [1, 1.0038560411311046;
-% 4, 2.515424164524421;
-% 8.000000000000002, 3.2763496143958863;
-% 16.07692307692308, 3.30719794344473;
-% 32, 3.451156812339331];
-% 
-% halo_speed_up(:,1) = round(halo_speed_up(:,1));
-% halo_speed_up(1,:) = round(halo_speed_up(1,:));
-% 
-% %%
-% multigrid_time_haswell = ...
-% [0.7346938775510221, 161.43497757847535;
-% 3.8367346938775526, 115.69506726457405;
-% 7.836734693877553, 108.96860986547085;
-% 15.836734693877553, 108.96860986547085;
-% 31.755102040816325, 107.62331838565024];
-% 
-% multigrid_time_cray = ...
-% [0.9795918367346967, 516.5919282511211;
-% 4.0000000000000036, 390.13452914798205;
-% 7.918367346938776, 367.2645739910314;
-% 15.918367346938776, 360.5381165919282;
-% 31.91836734693878, 356.50224215246635];
-% 
-% multigrid_time_nvidia = ...
-% [0.8979591836734713, 217.9372197309417;
-% 16.000000000000004, 40.35874439461884;
-% 32, 34.97757847533637];
-% 
-% multigrid_time_knc = ...
-% [0.8163265306122458, 357.84753363228697;
-% 7.836734693877553, 137.21973094170403;
-% 15.836734693877553, 122.42152466367713;
-% 31.836734693877553, 96.86098654708519];
-% 
-% multigrid_time_haswell(:,1) = round(multigrid_time_haswell(:,1));
-% multigrid_time_cray(:,1) = round(multigrid_time_cray(:,1));
-% multigrid_time_nvidia(:,1) = round(multigrid_time_nvidia(:,1));
-% multigrid_time_knc(:,1) = round(multigrid_time_knc(:,1));
-% 
-% %%
-% 
-% multigrid_speed_up_haswell = ...
-% [0.8256346233874332, 1.0224719101123583;
-% 3.9409071993341662, 1.4157303370786511;
-% 7.8678318768206434, 1.5101123595505612;
-% 15.86799833541407, 1.525842696629213;
-% 31.86799833541407, 1.525842696629213];
-% 
-% multigrid_speed_up_cray = ...
-% [1.0476903870162317, 1.0067415730337075;
-% 4.088056595921765, 1.321348314606741;
-% 8.01498127340824, 1.4157303370786511;
-% 16.015147732001665, 1.4314606741573028;
-% 32.015147732001665, 1.4314606741573028];
-% 
-% multigrid_speed_up_nvidia = ...
-% [1.1210986267166057, 0.9438202247191008;
-% 15.98119017894299, 5.222471910112359;
-% 32.135996670828135, 5.8516853932584265];
-% 
-% multigrid_speed_up_knc = ...
-% [0.8998751560549323, 1.0382022471910108;
-% 7.9542238868081565, 2.6741573033707864;
-% 15.883478984602585, 2.988764044943819;
-% 31.965709529754477, 3.7595505617977523];
-% 
-% multigrid_speed_up_haswell(:,1) = round(multigrid_speed_up_haswell(:,1));
-% multigrid_speed_up_cray(:,1) = round(multigrid_speed_up_cray(:,1));
-% multigrid_speed_up_nvidia(:,1) = round(multigrid_speed_up_nvidia(:,1));
-% multigrid_speed_up_knc(:,1) = round(multigrid_speed_up_knc(:,1));
-% 
-% %%
-% multigrid_time = zeros(11,6);
-% multigrid_time (:,1:2) = ...
-% [1.004601335761512, 0.431561091324417;
-% 2.0022310518627857, 0.4648076936073582;
-% 3.9907541866293017, 0.5024579804956508;
-% 8.067136920042914, 0.6656173335946528;
-% 15.871378265692428, 0.6812451424979895;
-% 31.611875431385002, 0.6528401603060142;
-% 65.54680834192969, 0.8049984118080382;
-% 128.93640540214113, 0.8052133245926456;
-% 263.7529429587845, 0.8847067251481749;
-% 512.2327024531801, 0.8827157406719066;
-% 1034.5108168706413, 0.96000324396656];
-% 
-% multigrid_time (:,[1,3]) = ...
-% [0.9898630039192093, 0.24219859833611546;
-% 1.972163655048691, 0.24241756607892295;
-% 3.781986290199016, 0.2514317381578326;
-% 7.736449695170425, 0.3309251387133618;
-% 15.41451655389125, 0.33554779106152055;
-% 31.501006611194768, 0.3225638149046748;
-% 62.81135245994453, 0.39764542093845257;
-% 123.54105127778845, 0.38685112220968176;
-% 252.4499560516854, 0.36726161914480926;
-% 496.95223315463164, 0.4357336433123602;
-% 1015.8300692705786, 0.4469699324849459];
-% 
-% multigrid_time (:,[1,4]) = ...
-% [0.9896311818224733, 0.22018017530935952;
-% 1.9968919285183184, 0.21379767110234038;
-% 3.978621194896021, 0.21621848114782338;
-% 8.034514473381059, 0.28469861523177475;
-% 15.804975192978107, 0.28711537031905743;
-% 31.891504605957156, 0.2807328661120385;
-% 64.38430149678541, 0.3227908925638825;
-% 128.2797245536246, 0.3252117026093655;
-% 262.1025006692223, 0.294612988031115;
-% 509.3374728580412, 0.34986990342441215;
-% 1041.3420944190705, 0.37872093101840276];
-% 
-% multigrid_time (:,[1,5]) = ...
-% [0.9895152911343404, 0.20917096379598155;
-% 2.0481938350469275, 0.1983928849000116;
-% 4.028979554277443, 0.198607797684619;
-% 8.135828113905916, 0.2626842471632187;
-% 16.004272808348748, 0.2651010022505018;
-% 32.29213742842352, 0.25431481343813145;
-% 66.03065729822492, 0.29637689484817553;
-% 128.22565290964383, 0.28557854116120485;
-% 258.69919460762884, 0.265984983138132;
-% 522.4595100453286, 0.3410706441301099;
-% 1041.1469872085095, 0.36110619259699783];
-% 
-% multigrid_time (:,[1,6]) = ...
-% [1.0020632930844884, 0.19376212263545245;
-% 2.0218829033820773, 0.18297593382308208;
-% 3.9772236101291005, 0.18319084660768947;
-% 8.030751609469974, 0.24066176917826287;
-% 16.000899443790264, 0.24528442152642138;
-% 32.287599599458105, 0.24110375962207797;
-% 65.18090612879159, 0.2787581014685707;
-% 128.2466780623628, 0.30099143727993405;
-% 258.77797808513225, 0.2946089330729149;
-% 515.7238781063681, 0.3212500084478296;
-% 1040.6837540786007, 0.31927118884616146];
-% 
-% multigrid_time(:,1) = [1;2;4;8;16;32;64;128;256;512;1024];
-% 
-% %%
-% multigrid_speed_up = zeros(11,5);
-% multigrid_speed_up (:,1:2) = ...
-% [0.9748386077230256, 1.8175824175824178;
-% 1.939765632694965, 1.9593406593406595;
-% 3.8598088750025874, 2.0186813186813186;
-% 7.778860438260265, 2.0351648351648355;
-% 15.282657491732875, 2.0615384615384618;
-% 30.79988248222343, 2.0483516483516486;
-% 62.86846815377844, 2.064835164835165;
-% 123.51388400008273, 2.130769230769231;
-% 248.92353402432835, 2.463736263736264;
-% 495.3161606896037, 2.0615384615384618;
-% 998.2347343083767, 2.173626373626374];
-% 
-% multigrid_speed_up (:,[1,3]) = ...
-% [0.9873391553681163, 1.9791208791208796;
-% 2.0153486066729274, 2.1472527472527476;
-% 3.959433740543081, 2.2989010989010987;
-% 7.979639272217277, 2.3450549450549456;
-% 15.677115545750981, 2.384615384615385;
-% 31.5948529717797, 2.338461538461539;
-% 64.49115541353366, 2.5;
-% 128.32660287856152, 2.5032967032967033;
-% 258.6228403103788, 2.9714285714285715;
-% 501.6676974640312, 2.565934065934066;
-% 1023.9999999999993, 2.5758241758241756];
-% 
-% multigrid_speed_up (:,[1,4]) = ...
-% [0.9873391553681163, 2.0813186813186815;
-% 2.0153486066729274, 2.308791208791209;
-% 4.010206339955046, 2.5;
-% 7.979639272217277, 2.5626373626373624;
-% 15.878146288957785, 2.6021978021978027;
-% 31.5948529717797, 2.6054945054945056;
-% 65.31813821309349, 2.753846153846154;
-% 126.70187969737844, 2.757142857142857;
-% 255.34845671095258, 3.301098901098901;
-% 514.6161564485006, 2.5593406593406596;
-% 1011.0352950969501, 2.6483516483516487];
-% 
-% multigrid_speed_up (:,[1,5]) = ...
-% [1, 2.104395604395605;
-% 1.9898325910847585, 2.374725274725275;
-% 3.909303965123828, 2.565934065934066;
-% 7.979639272217277, 2.651648351648352;
-% 15.677115545750981, 2.6714285714285717;
-% 32.4103423084332, 2.5791208791208793;
-% 64.49115541353366, 2.803296703296703;
-% 126.70187969737844, 2.6483516483516487;
-% 255.34845671095258, 2.987912087912088;
-% 501.6676974640312, 2.684615384615385;
-% 1037.130953869863, 2.9450549450549453];
-% 
-% multigrid_speed_up(:,1) = [1;2;4;8;16;32;64;128;256;512;1024];
-%%
-clear all
-close all
-clc
-load('eric_paper.mat')
-load('timers.mat')
-s = linspace(1,32,100);
-
-figure(1);
-hold on 
-plot(throughput_haswell(:,1),throughput_haswell(:,2),'-o','linewidth',2)
-plot(throughput_cray(:,1),throughput_cray(:,2),'-o','linewidth',2)
-plot(throughput_nvidia(:,1),throughput_nvidia(:,2),'-o','linewidth',2)
-plot(throughput_knc(:,1),throughput_knc(:,2),'-o','linewidth',2)
-xlim([1,32])
-title('throughput')
-grid on
-hold off
-
-figure(2);
-hold on 
-plot(matrix_speed_up_haswell(:,1),matrix_speed_up_haswell(:,2),'-o','linewidth',2)
-plot(matrix_speed_up_cray(:,1),matrix_speed_up_cray(:,2),'-o','linewidth',2)
-plot(matrix_speed_up_nvidia(:,1),matrix_speed_up_nvidia(:,2),'-o','linewidth',2)
-plot(matrix_speed_up_knc(:,1),matrix_speed_up_knc(:,2),'-o','linewidth',2)
-%plot(E,E.*timers(6,1)./timers(6,:),'-o','linewidth',2);
-xlim([1,32])
-title('matrix x vector speed up')
-grid on
-hold off
-
-figure(3);
-hold on 
-plot(mrhs_assembly_time_haswell(:,1),mrhs_assembly_time_haswell(:,2),'-o','linewidth',2)
-plot(mrhs_assembly_time_cray(:,1),mrhs_assembly_time_cray(:,2),'-o','linewidth',2)
-plot(mrhs_assembly_time_nvidia(:,1),mrhs_assembly_time_nvidia(:,2),'-o','linewidth',2)
-plot(mrhs_assembly_time_knc(:,1),mrhs_assembly_time_knc(:,2),'-o','linewidth',2)
-xlim([1,32])
-title('matrix and rhs assembly time')
-grid on
-hold off
-
-figure(4);
-hold on 
-plot(mrhs_assembly_speed_up_haswell(:,1),mrhs_assembly_speed_up_haswell(:,2),'-o','linewidth',2)
-plot(mrhs_assembly_speed_up_cray(:,1),mrhs_assembly_speed_up_cray(:,2),'-o','linewidth',2)
-plot(mrhs_assembly_speed_up_nvidia(:,1),mrhs_assembly_speed_up_nvidia(:,2),'-o','linewidth',2)
-plot(mrhs_assembly_speed_up_knc(:,1),mrhs_assembly_speed_up_knc(:,2),'-o','linewidth',2)
-plot(mrhs_assembly_speed_up_theoretical(:,1),mrhs_assembly_speed_up_theoretical(:,2),'ko','linewidth',2)
-plot(s,(8368+4992).*s./(8368+4992.*s),'k','linewidth',2)
-title('matrix and rhs speed up')
-xlim([1,32])
-grid on
-hold off
-
-figure(5);
-hold on 
-plot(halo_time(:,1),halo_time(:,2),'-o','linewidth',2)
-plot(halo_time(:,1),halo_time(:,3),'-o','linewidth',2)
-plot(halo_time(:,1),halo_time(:,4),'-o','linewidth',2)
-plot(halo_time(:,1),halo_time(:,5),'-o','linewidth',2)
-plot(halo_time(:,1),halo_time(:,6),'-o','linewidth',2)
-title('halo time')
-xlim([1,32])
-grid on
-hold off
-
-figure(6);
-hold on 
-plot(halo_speed_up(:,1),halo_speed_up(:,2),'-o','linewidth',2)
-plot(halo_speed_up(:,1),halo_speed_up(:,3),'-o','linewidth',2)
-plot(halo_speed_up(:,1),halo_speed_up(:,4),'-o','linewidth',2)
-plot(halo_speed_up(:,1),halo_speed_up(:,5),'-o','linewidth',2)
-plot(halo_speed_up(:,1),halo_speed_up(:,6),'-o','linewidth',2)
-title('halo speed up')
-xlim([1,32])
-grid on
-hold off
-
-figure(7);
-hold on 
-plot(multigrid_time_haswell(:,1),multigrid_time_haswell(:,2),'-o','linewidth',2)
-plot(multigrid_time_cray(:,1),multigrid_time_cray(:,2),'-o','linewidth',2)
-plot(multigrid_time_nvidia(:,1),multigrid_time_nvidia(:,2),'-o','linewidth',2)
-plot(multigrid_time_knc(:,1),multigrid_time_knc(:,2),'-o','linewidth',2)
-title('multigrid time')
-xlim([1,32])
-grid on
-hold off
-
-figure(8);
-hold on 
-plot(multigrid_speed_up_haswell(:,1),multigrid_speed_up_haswell(:,2),'-o','linewidth',2)
-plot(multigrid_speed_up_cray(:,1),multigrid_speed_up_cray(:,2),'-o','linewidth',2)
-plot(multigrid_speed_up_nvidia(:,1),multigrid_speed_up_nvidia(:,2),'-o','linewidth',2)
-plot(multigrid_speed_up_knc(:,1),multigrid_speed_up_knc(:,2),'-o','linewidth',2)
-xlim([1,32])
-title('multigrid speed up')
-grid on
-hold off
-
-figure(9);
-semilogx(multigrid_time(:,1),multigrid_time(:,2),'k-o','linewidth',2)
-hold on
-plot(multigrid_time(:,1),multigrid_time(:,3),'-o','linewidth',2)
-plot(multigrid_time(:,1),multigrid_time(:,4),'-o','linewidth',2)
-plot(multigrid_time(:,1),multigrid_time(:,5),'-o','linewidth',2)
-plot(multigrid_time(:,1),multigrid_time(:,6),'-o','linewidth',2)
-xlim([1,1024])
-title('multigrid time')
-grid on
-hold off
-
-figure(10);
-semilogx(multigrid_speed_up(:,1),multigrid_speed_up(:,2),'-o','linewidth',2)
-hold on
-plot(multigrid_speed_up(:,1),multigrid_speed_up(:,3),'-o','linewidth',2)
-plot(multigrid_speed_up(:,1),multigrid_speed_up(:,4),'-o','linewidth',2)
-plot(multigrid_speed_up(:,1),multigrid_speed_up(:,5),'-o','linewidth',2)
-xlim([1,1024])
-title('multigrid speed up')
-grid on
-hold off
-
-%%
-s = linspace(1,64,100);
-%close all
-p = polyfit(halo_time(1:3,1),halo_time(1:3,2),1);
-
-figure(11);
-subplot(1,2,1)
-hold on 
-plot(halo_time(:,1),halo_time(:,2),'-o','linewidth',2)
-plot(s,polyval(p,s),'k','linewidth',2)
-title('halo time')
-%xlim([1,32])
-grid on
-hold off
-subplot(1,2,2)
-hold on 
-%plot(halo_speed_up(:,1),halo_speed_up(:,2),'-o','linewidth',2)
-plot(halo_time(:,1),(halo_time(:,1).*halo_time(1,2))./halo_time(:,2),'-o','linewidth',2)
-plot(s,polyval(p,1).*s./polyval(p,s),'k','linewidth',2)
-plot([min(s),max(s)],[(sum(p))/p(1),(sum(p))/p(1)],'k--','linewidth',2)
-title('halo speed up')
-%xlim([1,32])
-grid on
-hold off
-
-
diff --git a/katoptron/matlab/ensemble/eric_paper.mat b/katoptron/matlab/ensemble/eric_paper.mat
deleted file mode 100644
index 1fe2848fa6caa4f96ed19ac814a9e998508d919f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4953
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
L0Tf7yUK{&ATpe{_

diff --git a/katoptron/matlab/ensemble/timers.mat b/katoptron/matlab/ensemble/timers.mat
deleted file mode 100644
index f2bd7eb04e3c5b3b36b8dc7af2a04128daf99749..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 689
zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2c0*X0%nwjV*I2WZRmZYXA<mXu_
zgp{T#I2IHs7?~;<nphbaTbY<E7#SFvD-a79V1UunmmkRX0OE={kCPJ;JQ$M96rMF)
zQaHf%)R<|b!W6cTbMHPj_73XqifqVHRp?9YOtj=^Yj0eW?C^_)+xm5#LjT;a3IfF&
zoX#*aoZrv$8DyRr+`JEH=FLb;DPX<iV_+xDEzK^@Kfhr@$BdRKJ#&~s<QeR(7{7va
z&t?R<CN{{{`*46r?W6RC9E%p+wYuu5(UIYhdrR%(>T5@?<cm1+aEW>c2X6QCyUXPy
zd&E=VxZXcjNA=}-bLYs!-1VvQlRLux@X5XEb34C3OAX-ocv;tFemgVMi}`WK{@ycw
zVjH_A^xQfBQ|kl--~YXO*|+pu`m22p=XY?)gv$P}IlD^!{Xfot6|$d|gLz*cJ5YXX
zX8Z(>SpJeM$5#eVSw1Nptjql7Z!FJx?E8{+%x6`8tIj;H<d<?IpXKA*g;!Xs55zO-
zrz`Yje(5gWpZqE6f@|opBR7<4O_jcPSO;DA+#PvjEzhf~s!12}g+4yc+!23v!F#U#
z&J9+Tmk(@zWPjJF<gCrl)pvr^?OVTcuROeWO`*Q<j@iuTc}t8t;=R7)Cht!a{uem=
zkIfH%tM`tL^Fyau-RW-q<J<Us-tzu~b;TXs>#jVE%XyN``t0WUix&TFKHTIzA9?>l
z&FwSmi|t-XY5uSYS;AK;{d1q}i`>coXZpoSeY~4maqgAckFT{qw5R=<x8ifXMr>>8
ZTip-!{2gMi*#ZyWxqtnYeA_Gkn*h5PCbR$m

diff --git a/katoptron/matlab/gmsh/distancePointPlane.m b/katoptron/matlab/gmsh/distancePointPlane.m
deleted file mode 100644
index 356697c1..00000000
--- a/katoptron/matlab/gmsh/distancePointPlane.m
+++ /dev/null
@@ -1,13 +0,0 @@
-function d = distancePointPlane(point, plane)
-%DISTANCEPOINTPLANE Signed distance betwen 3D point and plane
-%
-%   D = distancePointPlane(POINT, PLANE)
-%   Returns the euclidean distance between point POINT and the plane PLANE,
-%   given by: 
-%   POINT : [x0 y0 z0]
-%   PLANE : [a b c d]
-%   D     : scalar  
-
-
-d = (plane(1)*point(1)+plane(2)*point(2)+plane(3)*point(3)+plane(4))...
-    /sqrt(plane(1)^2+plane(2)^2+plane(3)^2);
\ No newline at end of file
diff --git a/katoptron/matlab/gmsh/readMshFile.m b/katoptron/matlab/gmsh/readMshFile.m
deleted file mode 100644
index bf89cf7e..00000000
--- a/katoptron/matlab/gmsh/readMshFile.m
+++ /dev/null
@@ -1,68 +0,0 @@
-function [Nodes,Elements] = readMshFile(filename)
-
-    fileID = fopen(filename,'r');
-    
-    tline = fgetl(fileID);
- 
-    stop = false;
-    while 1        
-        if strcmp(tline,'$Nodes')
-            disp('Start reading nodes');
-            while 1
-                tline = fgetl(fileID);
-                if strcmp(tline,'$EndNodes')
-                    break
-                end    
-                tmp = strread(tline);
-                if length(tmp) == 1
-                    Nodes = zeros(tmp,3);
-                else
-                   Nodes(tmp(1),:) = tmp(2:4); 
-                end
-            end
-            disp('Stop reading nodes');
-        elseif strcmp(tline,'$Elements')
-            disp('Start reading elements');   
-            while 1
-                tline = fgetl(fileID);
-                if strcmp(tline,'$EndElements')
-                    stop = true;
-                    break
-                end  
-                tmp = strread(tline);
-                if length(tmp) == 1
-                    Elements = zeros(tmp,9);
-                else
-                   Elements(tmp(1),1) = tmp(2);
-                   
-                   switch Elements(tmp(1),1)
-                       case 1
-                           %segment
-                           Elements(tmp(1),(end-1):end)= tmp((end-1):end);
-                       case 2
-                           %triangle
-                           Elements(tmp(1),(end-2):end)= tmp((end-2):end);
-                       case 3
-                           %quadrangle
-                           Elements(tmp(1),(end-3):end)= tmp((end-3):end);
-                       case 4
-                           %tetrahedron
-                           Elements(tmp(1),(end-3):end)= tmp((end-3):end);
-                       case 5
-                           %hexahedron
-                           Elements(tmp(1),(end-7):end)= tmp((end-7):end);
-                   end
-                    
-                end
-            end
-            disp('Stop reading elements');                
-        end
-        if stop
-            break
-        end
-        tline = fgetl(fileID);        
-    end
-    
-    fclose(fileID);
-
-end
diff --git a/katoptron/matlab/gmsh/showMsh.m b/katoptron/matlab/gmsh/showMsh.m
deleted file mode 100644
index 8c886c41..00000000
--- a/katoptron/matlab/gmsh/showMsh.m
+++ /dev/null
@@ -1,129 +0,0 @@
-function [fig] = showMsh(filename, plane, point, vec1, vec2, tol)
-
-    [Nodes,Elements] = readMshFile(filename);
-    
-    fig = figure;
-    
-    hold on
-    for i=1:size(Nodes,1)
-        if distancePointPlane(Nodes(i,:), plane) < tol
-            x = (Nodes(i,:)-point)*vec1';
-            y = (Nodes(i,:)-point)*vec2';
-            plot(x,y,'k.','MarkerSize',10);
-        end
-    end
-    
-    for i=1:size(Elements,1)
-        switch Elements(i,1)
-            case 1
-                %segment
-                if distancePointPlane(Nodes(Elements(i,end-1),:), plane) < tol && ...
-                   distancePointPlane(Nodes(Elements(i,end),:), plane) < tol
-               
-                    x1 = (Nodes(Elements(i,end-1),:)-point)*vec1';
-                    x2 = (Nodes(Elements(i,end),:)-point)*vec1';
-                    y1 = (Nodes(Elements(i,end-1),:)-point)*vec2';
-                    y2 = (Nodes(Elements(i,end),:)-point)*vec2';   
-                    plot([x1,x2],[y1,y2],'k');
-               
-                end
-
-            case 2
-                %triangle
-                for j=1:3
-                    index1 = size(Elements,2)-j;
-                    if j==3
-                        index1 = size(Elements,2);
-                    end
-                    index2 = size(Elements,2)-j+1;
-                    if distancePointPlane(Nodes(Elements(i,index1),:), plane) < tol && ...
-                       distancePointPlane(Nodes(Elements(i,index2),:), plane) < tol
-
-                        x1 = (Nodes(Elements(i,index1),:)-point)*vec1';
-                        x2 = (Nodes(Elements(i,index2),:)-point)*vec1';
-                        y1 = (Nodes(Elements(i,index1),:)-point)*vec2';
-                        y2 = (Nodes(Elements(i,index2),:)-point)*vec2';   
-                        plot([x1,x2],[y1,y2],'k');
-
-                    end
-                end
-            case 3
-                %quadrangle
-                for j=1:4
-                    index1 = size(Elements,2)-j;
-                    if j==4
-                        index1 = size(Elements,2);
-                    end
-                    index2 = size(Elements,2)-j+1;
-                    if distancePointPlane(Nodes(Elements(i,index1),:), plane) < tol && ...
-                       distancePointPlane(Nodes(Elements(i,index2),:), plane) < tol
-
-                        x1 = (Nodes(Elements(i,index1),:)-point)*vec1';
-                        x2 = (Nodes(Elements(i,index2),:)-point)*vec1';
-                        y1 = (Nodes(Elements(i,index1),:)-point)*vec2';
-                        y2 = (Nodes(Elements(i,index2),:)-point)*vec2';   
-                        plot([x1,x2],[y1,y2],'k');
-
-                    end
-                end
-            case 5
-                %hexahedron
-                for j=1:4
-                    index1 = size(Elements,2)-j;
-                    if j==4
-                        index1 = size(Elements,2);
-                    end
-                    index2 = size(Elements,2)-j+1;
-                    if distancePointPlane(Nodes(Elements(i,index1),:), plane) < tol && ...
-                       distancePointPlane(Nodes(Elements(i,index2),:), plane) < tol
-
-                        x1 = (Nodes(Elements(i,index1),:)-point)*vec1';
-                        x2 = (Nodes(Elements(i,index2),:)-point)*vec1';
-                        y1 = (Nodes(Elements(i,index1),:)-point)*vec2';
-                        y2 = (Nodes(Elements(i,index2),:)-point)*vec2';   
-                        plot([x1,x2],[y1,y2],'k');
-
-                    end
-                end 
-                for j=1:4
-                    index1 = size(Elements,2)-j-4;
-                    if j==4
-                        index1 = size(Elements,2)-4;
-                    end
-                    index2 = size(Elements,2)-j-3;
-                    if distancePointPlane(Nodes(Elements(i,index1),:), plane) < tol && ...
-                       distancePointPlane(Nodes(Elements(i,index2),:), plane) < tol
-
-                        x1 = (Nodes(Elements(i,index1),:)-point)*vec1';
-                        x2 = (Nodes(Elements(i,index2),:)-point)*vec1';
-                        y1 = (Nodes(Elements(i,index1),:)-point)*vec2';
-                        y2 = (Nodes(Elements(i,index2),:)-point)*vec2';   
-                        plot([x1,x2],[y1,y2],'k');
-
-                    end
-                end  
-                for j=1:4
-                    index1 = size(Elements,2)-j-4;
-                    if j==4
-                        index1 = size(Elements,2)-4;
-                    end
-                    index2 = size(Elements,2)-j;
-                    if j==4
-                        index2 = size(Elements,2);
-                    end
-                    if distancePointPlane(Nodes(Elements(i,index1),:), plane) < tol && ...
-                       distancePointPlane(Nodes(Elements(i,index2),:), plane) < tol
-
-                        x1 = (Nodes(Elements(i,index1),:)-point)*vec1';
-                        x2 = (Nodes(Elements(i,index2),:)-point)*vec1';
-                        y1 = (Nodes(Elements(i,index1),:)-point)*vec2';
-                        y2 = (Nodes(Elements(i,index2),:)-point)*vec2';   
-                        plot([x1,x2],[y1,y2],'k');
-
-                    end
-                end              
-        end
-
-    end
-    axis equal
-end
\ No newline at end of file
diff --git a/katoptron/matlab/gmsh/test_readMshFile.m b/katoptron/matlab/gmsh/test_readMshFile.m
deleted file mode 100644
index d6b20049..00000000
--- a/katoptron/matlab/gmsh/test_readMshFile.m
+++ /dev/null
@@ -1,80 +0,0 @@
-clear all
-close all
-clc
-
-filename = '../tests/aa.msh';
-[Nodes,Elements] = readMshFile(filename);
-
-
-figure
-hold on
-for i=1:size(Nodes,1)
-    
-    
-end
-
-for i=1:size(Elements,1)
-    switch Elements(i,1)
-        case 1
-            %segment
-            plot3([Nodes(Elements(i,end-1),1),Nodes(Elements(i,end),1)],...
-                  [Nodes(Elements(i,end-1),2),Nodes(Elements(i,end),2)],...
-                  [Nodes(Elements(i,end-1),3),Nodes(Elements(i,end),3)],'k');
-        case 2
-            %triangle
-            for j=1:3
-                plot3([Nodes(Elements(i,end-j),1),Nodes(Elements(i,end-j+1),1)],...
-                      [Nodes(Elements(i,end-j),2),Nodes(Elements(i,end-j+1),2)],...
-                      [Nodes(Elements(i,end-j),3),Nodes(Elements(i,end-j+1),3)],'k');
-            end
-        case 3
-            %quadrangle
-            for j=1:4
-                index1 = size(Elements,2)-j;
-                if j==4
-                    index1 = size(Elements,2);
-                end
-                index2 = size(Elements,2)-j+1;
-                plot3([Nodes(Elements(i,index1),1),Nodes(Elements(i,index2),1)],...
-                      [Nodes(Elements(i,index1),2),Nodes(Elements(i,index2),2)],...
-                      [Nodes(Elements(i,index1),3),Nodes(Elements(i,index2),3)],'k');
-            end
-        case 5
-            %hexahedron
-            for j=1:4
-                index1 = size(Elements,2)-j;
-                if j==4
-                    index1 = size(Elements,2);
-                end
-                index2 = size(Elements,2)-j+1;
-                plot3([Nodes(Elements(i,index1),1),Nodes(Elements(i,index2),1)],...
-                      [Nodes(Elements(i,index1),2),Nodes(Elements(i,index2),2)],...
-                      [Nodes(Elements(i,index1),3),Nodes(Elements(i,index2),3)],'k');
-            end 
-            for j=1:4
-                index1 = size(Elements,2)-j-4;
-                if j==4
-                    index1 = size(Elements,2)-4;
-                end
-                index2 = size(Elements,2)-j-3;
-                plot3([Nodes(Elements(i,index1),1),Nodes(Elements(i,index2),1)],...
-                      [Nodes(Elements(i,index1),2),Nodes(Elements(i,index2),2)],...
-                      [Nodes(Elements(i,index1),3),Nodes(Elements(i,index2),3)],'k');
-            end  
-            for j=1:4
-                index1 = size(Elements,2)-j-4;
-                if j==4
-                    index1 = size(Elements,2)-4;
-                end
-                index2 = size(Elements,2)-j;
-                if j==4
-                    index2 = size(Elements,2);
-                end
-                plot3([Nodes(Elements(i,index1),1),Nodes(Elements(i,index2),1)],...
-                      [Nodes(Elements(i,index1),2),Nodes(Elements(i,index2),2)],...
-                      [Nodes(Elements(i,index1),3),Nodes(Elements(i,index2),3)],'k');
-            end              
-    end
-    
-end
-axis equal
\ No newline at end of file
diff --git a/katoptron/matlab/gmsh/test_showMsh.m b/katoptron/matlab/gmsh/test_showMsh.m
deleted file mode 100644
index c549d99c..00000000
--- a/katoptron/matlab/gmsh/test_showMsh.m
+++ /dev/null
@@ -1,12 +0,0 @@
-clear all
-close all
-clc
-
-filename = '../tests/aa.msh';
-tol = 0.00001;
-plane = [0,1,0,0];
-point = [0,0,0];
-vec1 = [1,0,0];
-vec2 = [0,0,1];
-
-[fig] = showMsh(filename, plane, point, vec1, vec2, tol);
\ No newline at end of file
diff --git a/katoptron/matlab/matrix graph/load_crs_matrix.m b/katoptron/matlab/matrix graph/load_crs_matrix.m
deleted file mode 100644
index 04cf7ba7..00000000
--- a/katoptron/matlab/matrix graph/load_crs_matrix.m	
+++ /dev/null
@@ -1,42 +0,0 @@
-function [ A ] = load_crs_matrix( file_name, ensemble_size, sample )
-
-
-crsA = [];
-
-fid = fopen(file_name);
-
-tline = fgets(fid);
-while length(tline) >=2
-    words = strsplit(tline);
-    if ensemble_size > 1 && length(words) >= 4+ensemble_size
-        if length(crsA) == 0      
-            crsA = zeros(1,3);
-            crsA(1) = str2num(char(words(1)))+1;
-            crsA(2) = str2num(char(words(2)))+1;
-            crsA(3) = str2num(char(words(3+sample)));
-        else
-            
-            crsA = [crsA; str2num(char(words(1)))+1, str2num(char(words(2)))+1, str2num(char(words(3+sample)))];
-        end
-        
-    elseif ensemble_size == 1 && length(words) >= 3
-         if length(crsA) == 0      
-            crsA = zeros(1,3);
-            crsA(1) = str2num(char(words(1)))+1;
-            crsA(2) = str2num(char(words(2)))+1;
-            crsA(3) = str2num(char(words(3)));
-        else
-            
-            crsA = [crsA; str2num(char(words(1)))+1, str2num(char(words(2)))+1, str2num(char(words(3)))];
-        end       
-        
-    end
-    tline = fgets(fid);
-end
-
-fclose(fid);
-
-A = crsA;
-
-end
-
diff --git a/katoptron/matlab/matrix graph/show_graph.m b/katoptron/matlab/matrix graph/show_graph.m
deleted file mode 100644
index b85cc5ad..00000000
--- a/katoptron/matlab/matrix graph/show_graph.m	
+++ /dev/null
@@ -1,52 +0,0 @@
-function show_graph(A,type)
-
-    figure;
-    xmax = size(A,2);
-    ymax = size(A,1);
-    if type == 'C'
-        imagesc([0.5 xmax-0.5],[0.5 ymax-0.5],A);
-    else
-        imagesc([1.5 xmax+0.5],[1.5 ymax+0.5],A);
-    end
-    axis equal
-    grid on
-    box on
-    %colorbar
-
-
-    if type == 'C'
-        xlim([0,xmax]);
-        ylim([0,ymax]);
-        
-        tmp = [];
-        for i=1:xmax
-            tmp = [tmp, i-1];
-        end
-        set(gca,'XTick',tmp)
-        tmp = [];
-        for i=1:ymax
-            tmp = [tmp, i-1];
-        end
-        set(gca,'YTick',tmp)
-    else
-        xlim([1,xmax+1]);
-        ylim([1,ymax+1]);
-        
-        tmp = [];
-        for i=1:xmax
-            tmp = [tmp, i];
-        end
-        set(gca,'XTick',tmp)
-        tmp = [];
-        for i=1:ymax
-            tmp = [tmp, i];
-        end
-        set(gca,'YTick',tmp)
-    end    
-    caxis([0,1]);
-    
-    set(gca,'fontsize',18)
-    
-    colormap(gray);
-    colormap(flipud(colormap));
-end
\ No newline at end of file
diff --git a/katoptron/matlab/matrix graph/show_trilinos_graph.m b/katoptron/matlab/matrix graph/show_trilinos_graph.m
deleted file mode 100644
index 6d5f5b67..00000000
--- a/katoptron/matlab/matrix graph/show_trilinos_graph.m	
+++ /dev/null
@@ -1,31 +0,0 @@
-function [H] = show_trilinos_graph(file_name)
-
-trilinos_out = load(file_name);
-
-matrix = trilinos_out;
-matrix(:,1) = matrix(:,1)+1;
-matrix(:,2) = matrix(:,2)+1;
-
-matrix(1,:)
-
-zero_indices = [];
-
-tol = 10^(-16);
-
-for i=1:size(matrix,1)
-    if abs(matrix(i,3)) < tol
-        zero_indices = [zero_indices, i];
-    elseif matrix(i,1) < 1 || matrix(i,2) < 1
-        zero_indices = [zero_indices, i];
-        disp(strcat('Attention, file:  ',file_name,' line:  ', int2str(i)));
-    end
-    
-end
-
-matrix = matrix(setdiff(1:size(matrix,1),zero_indices),1:3);
-
-H = spconvert(matrix);
-%spy(H);
-
-end
-
diff --git a/katoptron/matlab/matrix graph/testSchur.m b/katoptron/matlab/matrix graph/testSchur.m
deleted file mode 100644
index 24747c86..00000000
--- a/katoptron/matlab/matrix graph/testSchur.m	
+++ /dev/null
@@ -1,70 +0,0 @@
-clear all 
-close all
-clc
-
-ensemble_size = 2;
-
-
-A  = load_crs_matrix( 'Schur test input/A 1.txt', ensemble_size,1 );
-B_T  = load_crs_matrix( 'Schur test input/B_T1.txt', ensemble_size,1 );
-
-B1  = load_crs_matrix( 'Schur test input/B1.txt', ensemble_size,1 );
-C1  = load_crs_matrix( 'Schur test input/C1.txt', ensemble_size,1 );
-
-B2  = load_crs_matrix( 'Schur test input/B1.txt', ensemble_size,2 );
-C2  = load_crs_matrix( 'Schur test input/C1.txt', ensemble_size,2 );
-
-%load('schur_test.mat')
-
-%format longEng
-
-format long
-
-crsA = spconvert(A);
-crsB_T = spconvert(B_T);
-crsB1 = spconvert(B1);
-crsB2 = spconvert(B2);
-crsC1 = spconvert(C1);
-crsC2 = spconvert(C2);
-
-n = size(crsA,1);
-n_2 = size(crsB_T,1);
-m = size(crsB_T,2);
-
-fullA = full(crsA);
-fullB_T = zeros(n,m);
-tmpfullB_T = full(crsB_T);
-fullB_T(1:n_2,:) = tmpfullB_T;
-
-fullC1 = zeros(m,m);
-fullC2 = zeros(m,m);
-
-tmpfullC1 = full(crsC1);
-tmpfullC2 = full(crsC2);
-
-fullC1(1:size(crsC1,1),1:size(crsC1,2)) = tmpfullC1;
-fullC2(1:size(crsC2,1),1:size(crsC2,2)) = tmpfullC2;
-
-
-fullB1 = zeros(m,n);
-fullB2 = zeros(m,n);
-
-tmpfullB1 = full(crsB1);
-tmpfullB2 = full(crsB2);
-
-fullB1(1:size(crsB1,1),1:size(crsB1,2)) = tmpfullB1;
-fullB2(1:size(crsB2,1),1:size(crsB2,2)) = tmpfullB2;
-
-invDiagA = diag(1./diag(fullA));
-
-Schur1 = fullC1 - fullB1*invDiagA*fullB_T;
-Schur2 = fullC2 - fullB2*invDiagA*fullB_T;
-
-crsSchur1 = sparse(Schur1);
-crsSchur2 = sparse(Schur2);
-
-diagEnsemble = [full(diag(crsSchur1)),full( diag(crsSchur2))]
-
-
-
-
diff --git a/katoptron/matlab/matrix graph/test_show_graph.m b/katoptron/matlab/matrix graph/test_show_graph.m
deleted file mode 100644
index 36f54c42..00000000
--- a/katoptron/matlab/matrix graph/test_show_graph.m	
+++ /dev/null
@@ -1,42 +0,0 @@
-close all
-clear all
-
-XWO0 = [1,1,0,0,0;
-        1,1,1,0,0;
-        0,1,1,0,0;
-        0,0,0,0,0;
-        0,0,0,0,0];
-XWO1 = [0,0,0,0,0;
-        0,0,0,0,0;
-        0,0,1,1,0;
-        0,0,1,1,1;
-        0,0,0,1,1]; 
- 
-X0 = [1,1,0,0,0;
-      1,1,1,0,0;
-      0,1,1,1,0;
-      0,0,0,0,0;
-      0,0,0,0,0];
-  
-X1 = [0,0,0,0,0;
-     0,0,0,0,0;
-     0,0,0,0,0;
-     0,0,1,1,1;
-     0,0,0,1,1];  
- 
-XG = [1,1,0,0,0;
-      1,1,1,0,0;
-      0,1,1,1,0;
-      0,0,1,1,1;
-      0,0,0,1,1];
- 
-show_graph(XWO0,'C')
-%matlab2tikz('XWO0.txt')
-show_graph(XWO1,'C')
-%matlab2tikz('XWO1.txt')
-show_graph(XG,'C')
-%matlab2tikz('XG.txt')
-show_graph(X0,'C')
-%matlab2tikz('X0.txt')
-show_graph(X1,'C')
-%matlab2tikz('X1.txt')
\ No newline at end of file
diff --git a/katoptron/preconditioners/AMG_BGS_gs_gs.xml b/katoptron/preconditioners/AMG_BGS_gs_gs.xml
deleted file mode 100644
index 65889a5d..00000000
--- a/katoptron/preconditioners/AMG_BGS_gs_gs.xml
+++ /dev/null
@@ -1,232 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Elasticity 3 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 3 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) Heat equation-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 1 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 1 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- It needs information about the coarse map for block 1 (myCoarseMap1 in this
-         example). It builds a new coarse map starting with GIDs from myCoarseMap1.maxGID + 1.
-         The number of GIDs is determined using the aggregation information. Since we are
-         reusing the aggregation from the first sub block for this sub block we have to
-         provide that information (myAggFact1). In fact, the information should also available
-         through the group "mySecondGroup", but it does not hurt here. -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="BlockedCoarseMapFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from elasticity block! -->
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="Striding info" type="string" value="{ 1 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from elasticity block! -->
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from elasticity block! -->
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>    
-
-
-    <!-- Use Block GS: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="3"/>
-      <Parameter name="Damping factor" type="double" value="1.0"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/BraessSarazin_cheby.xml b/katoptron/preconditioners/BraessSarazin_cheby.xml
deleted file mode 100644
index 1b9d268f..00000000
--- a/katoptron/preconditioners/BraessSarazin_cheby.xml
+++ /dev/null
@@ -1,243 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Braess-Sarazin: -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BraessSarazinSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/BraessSarazin_direct.xml b/katoptron/preconditioners/BraessSarazin_direct.xml
deleted file mode 100644
index e4128204..00000000
--- a/katoptron/preconditioners/BraessSarazin_direct.xml
+++ /dev/null
@@ -1,237 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use Braess-Sarazin: -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BraessSarazinSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/BraessSarazin_gs.xml b/katoptron/preconditioners/BraessSarazin_gs.xml
deleted file mode 100644
index 348a4f7c..00000000
--- a/katoptron/preconditioners/BraessSarazin_gs.xml
+++ /dev/null
@@ -1,249 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Braess-Sarazin: -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BraessSarazinSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/BraessSarazin_jacobi.xml b/katoptron/preconditioners/BraessSarazin_jacobi.xml
deleted file mode 100644
index ba583b55..00000000
--- a/katoptron/preconditioners/BraessSarazin_jacobi.xml
+++ /dev/null
@@ -1,249 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Braess-Sarazin: -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BraessSarazinSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/BraessSarazin_mtgs.xml b/katoptron/preconditioners/BraessSarazin_mtgs.xml
deleted file mode 100644
index aa57ebe1..00000000
--- a/katoptron/preconditioners/BraessSarazin_mtgs.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Braess-Sarazin: -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BraessSarazinSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/IndefiniteBlockDiagonal_cheby.xml b/katoptron/preconditioners/IndefiniteBlockDiagonal_cheby.xml
deleted file mode 100644
index 9994cda6..00000000
--- a/katoptron/preconditioners/IndefiniteBlockDiagonal_cheby.xml
+++ /dev/null
@@ -1,250 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use indefinite block diagonal smoother: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="IndefiniteBlockDiagonalSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/IndefiniteBlockDiagonal_direct.xml b/katoptron/preconditioners/IndefiniteBlockDiagonal_direct.xml
deleted file mode 100644
index 0eb1c647..00000000
--- a/katoptron/preconditioners/IndefiniteBlockDiagonal_direct.xml
+++ /dev/null
@@ -1,244 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use indefinite block diagonal smoother: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="IndefiniteBlockDiagonalSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/IndefiniteBlockDiagonal_gs.xml b/katoptron/preconditioners/IndefiniteBlockDiagonal_gs.xml
deleted file mode 100644
index 4860200f..00000000
--- a/katoptron/preconditioners/IndefiniteBlockDiagonal_gs.xml
+++ /dev/null
@@ -1,256 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use indefinite block diagonal smoother: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="IndefiniteBlockDiagonalSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/IndefiniteBlockDiagonal_jacobi.xml b/katoptron/preconditioners/IndefiniteBlockDiagonal_jacobi.xml
deleted file mode 100644
index b13e54b2..00000000
--- a/katoptron/preconditioners/IndefiniteBlockDiagonal_jacobi.xml
+++ /dev/null
@@ -1,256 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use indefinite block diagonal smoother: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="IndefiniteBlockDiagonalSmoother"/>
-      <Parameter name="Sweeps" type="int" value="3"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/IndefiniteBlockDiagonal_mtgs.xml b/katoptron/preconditioners/IndefiniteBlockDiagonal_mtgs.xml
deleted file mode 100644
index c6a9d26e..00000000
--- a/katoptron/preconditioners/IndefiniteBlockDiagonal_mtgs.xml
+++ /dev/null
@@ -1,258 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use indefinite block diagonal smoother: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="IndefiniteBlockDiagonalSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLEC_cheby.xml b/katoptron/preconditioners/SIMPLEC_cheby.xml
deleted file mode 100644
index 6a860ca0..00000000
--- a/katoptron/preconditioners/SIMPLEC_cheby.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <!--<Parameter name="lumping" type="bool" value="true"/>-->
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLEC: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLEC_direct.xml b/katoptron/preconditioners/SIMPLEC_direct.xml
deleted file mode 100644
index 181f71e6..00000000
--- a/katoptron/preconditioners/SIMPLEC_direct.xml
+++ /dev/null
@@ -1,245 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <!--<Parameter name="lumping" type="bool" value="true"/>-->
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use SIMPLEC: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLEC_gs.xml b/katoptron/preconditioners/SIMPLEC_gs.xml
deleted file mode 100644
index aa8574d4..00000000
--- a/katoptron/preconditioners/SIMPLEC_gs.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <!--<Parameter name="lumping" type="bool" value="true"/>-->
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLEC: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLEC_jacobi.xml b/katoptron/preconditioners/SIMPLEC_jacobi.xml
deleted file mode 100644
index 0748d678..00000000
--- a/katoptron/preconditioners/SIMPLEC_jacobi.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <!--<Parameter name="lumping" type="bool" value="true"/>-->
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLEC: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="3"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLEC_mtgs.xml b/katoptron/preconditioners/SIMPLEC_mtgs.xml
deleted file mode 100644
index 750a4c79..00000000
--- a/katoptron/preconditioners/SIMPLEC_mtgs.xml
+++ /dev/null
@@ -1,259 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <!--<Parameter name="lumping" type="bool" value="true"/>-->
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLEC: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="true"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLE_cheby.xml b/katoptron/preconditioners/SIMPLE_cheby.xml
deleted file mode 100644
index 27fc352b..00000000
--- a/katoptron/preconditioners/SIMPLE_cheby.xml
+++ /dev/null
@@ -1,251 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLE_direct.xml b/katoptron/preconditioners/SIMPLE_direct.xml
deleted file mode 100644
index bbb4f080..00000000
--- a/katoptron/preconditioners/SIMPLE_direct.xml
+++ /dev/null
@@ -1,245 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLE_direct_2_lvls.xml b/katoptron/preconditioners/SIMPLE_direct_2_lvls.xml
deleted file mode 100644
index c1caa86a..00000000
--- a/katoptron/preconditioners/SIMPLE_direct_2_lvls.xml
+++ /dev/null
@@ -1,245 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-        
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="2"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLE_gs.xml b/katoptron/preconditioners/SIMPLE_gs.xml
deleted file mode 100644
index a2ec20ff..00000000
--- a/katoptron/preconditioners/SIMPLE_gs.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/SIMPLE_gs.xml.in b/katoptron/preconditioners/SIMPLE_gs.xml.in
deleted file mode 100644
index 8bed4cda..00000000
--- a/katoptron/preconditioners/SIMPLE_gs.xml.in
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="$BLOCK_11_STRIDING_INFO"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="$BLOCK_00_GS_sweeps"/>
-        <Parameter name="relaxation: damping factor" type="double" value="$BLOCK_00_GS_damping"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="$SCHUR_omega"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="$BLOCK_11_GS_sweeps"/>
-        <Parameter name="relaxation: damping factor" type="double" value="$BLOCK_11_GS_damping"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="$SimpleSmoother_damping"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/SIMPLE_gs_2_lvls.xml b/katoptron/preconditioners/SIMPLE_gs_2_lvls.xml
deleted file mode 100644
index be2fa416..00000000
--- a/katoptron/preconditioners/SIMPLE_gs_2_lvls.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="2"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/SIMPLE_gs_3_sweeps.xml b/katoptron/preconditioners/SIMPLE_gs_3_sweeps.xml
deleted file mode 100644
index 5cc57667..00000000
--- a/katoptron/preconditioners/SIMPLE_gs_3_sweeps.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLE_gs_direct.xml.in b/katoptron/preconditioners/SIMPLE_gs_direct.xml.in
deleted file mode 100644
index 60705f07..00000000
--- a/katoptron/preconditioners/SIMPLE_gs_direct.xml.in
+++ /dev/null
@@ -1,250 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="$BLOCK_11_STRIDING_INFO"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="$BLOCK_00_GS_sweeps"/>
-        <Parameter name="relaxation: damping factor" type="$BLOCK_00_GS_damping"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="$SCHUR_omega"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="$SimpleSmoother_damping"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/SIMPLE_gs_direct_lvl.xml.in b/katoptron/preconditioners/SIMPLE_gs_direct_lvl.xml.in
deleted file mode 100644
index 80271977..00000000
--- a/katoptron/preconditioners/SIMPLE_gs_direct_lvl.xml.in
+++ /dev/null
@@ -1,276 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoalesceDropFact">
-      <Parameter name="factory"                             type="string" value="CoalesceDropFactory"/>
-      <Parameter name="lightweight wrap"                    type="bool"   value="true"/>
-      <!-- for aggregation dropping -->
-      <!--<Parameter name="aggregation: drop tol"               type="double" value="1e-10"/>-->
-    </ParameterList>    
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <!--<Parameter name="aggregation: min agg size" type="int" value="7"/>-->
-      <!--<Parameter name="aggregation: max agg size" type="int" value="10"/>-->
-      <!--<Parameter name="aggregation: max selected neighbors" type="int" value="1"/>-->
-      <!--<Parameter name="Graph"                               type="string" value="myCoalesceDropFact"/>
-      <Parameter name="DofsPerNode"                         type="string" value="myCoalesceDropFact"/>-->        
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>      
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="$BLOCK_11_STRIDING_INFO"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>      
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myAggExport"> 
-      <Parameter name="factory"                             type="string" value="AggregationExportFactory"/> 
-      <Parameter name="Aggregates"                          type="string" value="myAggFact1"/> 
-      <Parameter name="aggregation: output filename"        type="string" value="structured_aggs"/> 
-      <Parameter name="aggregation: output file: agg style" type="string" value="Jacks"/> 
-      <Parameter name="aggregation: output file: agg style" type="string" value="Convex Hulls"/> 
-    </ParameterList> -->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-        <!--<Parameter name="ExportVTK"                   type="string" value="myAggExport"/>-->
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="$BLOCK_00_GS_sweeps"/>
-        <Parameter name="relaxation: damping factor" type="double" value="$BLOCK_00_GS_damping"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="$SCHUR_omega"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="BASKER"/>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="$SimpleSmoother_sweeps"/>
-      <Parameter name="Damping factor" type="double" value="$SimpleSmoother_damping"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-      <Parameter name="type"  type="string" value="BASKER"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="$N_LVLS"/>
-    <Parameter name="coarse: max size"          type="int"      value="$N_SIZES"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-    <Parameter name="aggregation: export visualization data" type="bool" value="$EXPORT_DATA"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <Parameter name="Coordinates"       type="string"   value="myTransferCoordinatesFact"/>
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/SIMPLE_gs_direct_lvl_MT.xml.in b/katoptron/preconditioners/SIMPLE_gs_direct_lvl_MT.xml.in
deleted file mode 100644
index daa5b75e..00000000
--- a/katoptron/preconditioners/SIMPLE_gs_direct_lvl_MT.xml.in
+++ /dev/null
@@ -1,276 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_00_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myCoalesceDropFact">
-      <Parameter name="factory"                             type="string" value="CoalesceDropFactory"/>
-      <Parameter name="lightweight wrap"                    type="bool"   value="true"/>
-      <!-- for aggregation dropping -->
-      <!--<Parameter name="aggregation: drop tol"               type="double" value="1e-10"/>-->
-    </ParameterList>    
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <!--<Parameter name="aggregation: min agg size" type="int" value="7"/>-->
-      <!--<Parameter name="aggregation: max agg size" type="int" value="10"/>-->
-      <!--<Parameter name="aggregation: max selected neighbors" type="int" value="1"/>-->
-      <!--<Parameter name="Graph"                               type="string" value="myCoalesceDropFact"/>
-      <Parameter name="DofsPerNode"                         type="string" value="myCoalesceDropFact"/>-->        
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>      
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ $BLOCK_11_STRIDING_INFO }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_11_STRIDING_INFO }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="$BLOCK_11_STRIDING_INFO"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-      <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-      <Parameter name="tentative: calculate qr" type="bool" value="false"/>      
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myAggExport"> 
-      <Parameter name="factory"                             type="string" value="AggregationExportFactory"/> 
-      <Parameter name="Aggregates"                          type="string" value="myAggFact1"/> 
-      <Parameter name="aggregation: output filename"        type="string" value="structured_aggs"/> 
-      <Parameter name="aggregation: output file: agg style" type="string" value="Jacks"/> 
-      <Parameter name="aggregation: output file: agg style" type="string" value="Convex Hulls"/> 
-    </ParameterList> -->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-        <!--<Parameter name="ExportVTK"                   type="string" value="myAggExport"/>-->
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="$BLOCK_00_GS_sweeps"/>
-        <Parameter name="relaxation: damping factor" type="double" value="$BLOCK_00_GS_damping"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="$SCHUR_omega"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="$SimpleSmoother_sweeps"/>
-      <Parameter name="Damping factor" type="double" value="$SimpleSmoother_damping"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-      <Parameter name="type"  type="string" value="BASKER"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="$N_LVLS"/>
-    <Parameter name="coarse: max size"          type="int"      value="$N_SIZES"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-    <Parameter name="aggregation: export visualization data" type="bool" value="$EXPORT_DATA"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <Parameter name="Coordinates"       type="string"   value="myTransferCoordinatesFact"/>
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/SIMPLE_jacobi.xml b/katoptron/preconditioners/SIMPLE_jacobi.xml
deleted file mode 100644
index 8a9ca96c..00000000
--- a/katoptron/preconditioners/SIMPLE_jacobi.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="3"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/SIMPLE_mtgs.xml b/katoptron/preconditioners/SIMPLE_mtgs.xml
deleted file mode 100644
index 0cba3b54..00000000
--- a/katoptron/preconditioners/SIMPLE_mtgs.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the
-         Factory creates the default null space containing of constant
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the
-         Factory creates the default null space containing of constant
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="1."/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="1."/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-
diff --git a/katoptron/preconditioners/Uzawa_cheby.xml b/katoptron/preconditioners/Uzawa_cheby.xml
deleted file mode 100644
index 1c8d7bdf..00000000
--- a/katoptron/preconditioners/Uzawa_cheby.xml
+++ /dev/null
@@ -1,250 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="CHEBYSHEV"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="degree" type="int" value="2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Uzawa: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="UzawaSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/Uzawa_direct.xml b/katoptron/preconditioners/Uzawa_direct.xml
deleted file mode 100644
index 0953891f..00000000
--- a/katoptron/preconditioners/Uzawa_direct.xml
+++ /dev/null
@@ -1,244 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>
-
-    <!-- Use Uzawa: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="UzawaSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/Uzawa_gs.xml b/katoptron/preconditioners/Uzawa_gs.xml
deleted file mode 100644
index 920eaa7e..00000000
--- a/katoptron/preconditioners/Uzawa_gs.xml
+++ /dev/null
@@ -1,256 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Uzawa: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="UzawaSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/Uzawa_jacobi.xml b/katoptron/preconditioners/Uzawa_jacobi.xml
deleted file mode 100644
index becd02d9..00000000
--- a/katoptron/preconditioners/Uzawa_jacobi.xml
+++ /dev/null
@@ -1,256 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Jacobi"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Uzawa: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="UzawaSmoother"/>
-      <Parameter name="Sweeps" type="int" value="3"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/Uzawa_mtgs.xml b/katoptron/preconditioners/Uzawa_mtgs.xml
deleted file mode 100644
index c1d21dca..00000000
--- a/katoptron/preconditioners/Uzawa_mtgs.xml
+++ /dev/null
@@ -1,258 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 2 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="3"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory -->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="false"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="MT Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: symmetric matrix structure" type="bool" value="True"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="3"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use Uzawa: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="UzawaSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/preconditioners/blockdirect.xml b/katoptron/preconditioners/blockdirect.xml
deleted file mode 100644
index 4a5b0a72..00000000
--- a/katoptron/preconditioners/blockdirect.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="1"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
diff --git a/katoptron/preconditioners/gs_lvl.xml.in b/katoptron/preconditioners/gs_lvl.xml.in
deleted file mode 100644
index 2439cadc..00000000
--- a/katoptron/preconditioners/gs_lvl.xml.in
+++ /dev/null
@@ -1,95 +0,0 @@
-
-<ParameterList name="MueLu">
-
-  <ParameterList name="Matrix">
-    <Parameter name="PDE equations"                   type="int" value="$BLOCK_00_STRIDING_INFO"/> <!-- Number of PDE equations at each grid node.-->
-  </ParameterList>
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <ParameterList name="myCoalesceDropFact">
-      <Parameter name="factory"                             type="string" value="CoalesceDropFactory"/>
-      <Parameter name="lightweight wrap"                    type="bool"   value="true"/>
-      <!-- for aggregation dropping -->
-      <Parameter name="aggregation: drop tol"               type="double" value="1e-10"/>
-    </ParameterList>
-
-    <ParameterList name="mySmooFact">
-      <Parameter name="factory"                             type="string" value="TrilinosSmoother"/>
-      <Parameter name="type"                                type="string" value="RELAXATION"/>
-      <Parameter name="overlap"                             type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type"                  type="string" value="MT Gauss-Seidel"/>
-        <Parameter name="relaxation: backward mode"         type="bool"   value="true"/>
-        <Parameter name="relaxation: sweeps"                type="int"    value="$BLOCK_00_GS_sweeps"/>
-        <Parameter name="relaxation: damping factor"        type="double" value="$BLOCK_00_GS_damping"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myCoarseFact">
-      <Parameter name="factory" type="string" value="DirectSolver"/>
-      <Parameter name="type"  type="string" value="KLU"/>
-    </ParameterList>    
-
-    <ParameterList name="myAggFact">
-      <Parameter name="factory"                             type="string" value="UncoupledAggregationFactory"/>
-      <!-- <Parameter name="aggregation: min agg size" type="int" value="7"/> -->
-      <!-- <Parameter name="aggregation: max agg size" type="int" value="4"/> -->
-      <!-- <Parameter name="aggregation: max selected neighbors" type="int" value="1"/> -->      
-      <Parameter name="Graph"                               type="string" value="myCoalesceDropFact"/>
-      <Parameter name="DofsPerNode"                         type="string" value="myCoalesceDropFact"/>      
-    </ParameterList>
-
-    <ParameterList name="MyCoarseMap">
-      <Parameter name="factory"                             type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ $BLOCK_00_STRIDING_INFO }"/>
-      <Parameter name="Aggregates"                          type="string" value="myAggFact"/>
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact">
-      <Parameter name="factory"                             type="string" value="TentativePFactory"/>
-      <Parameter name="Aggregates"                          type="string" value="myAggFact"/>
-      <Parameter name="CoarseMap"                           type="string" value="MyCoarseMap"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact">
-      <Parameter name="factory"                             type="string" value="TransPFactory"/>
-      <Parameter name="P"                                   type="string" value="myTentativePFact"/>
-    </ParameterList>
-
-    <ParameterList name="myAggExport"> 
-      <Parameter name="factory"                             type="string" value="AggregationExportFactory"/> 
-      <Parameter name="Aggregates"                          type="string" value="myAggFact"/> 
-      <Parameter name="aggregation: output filename"        type="string" value="structured_aggs"/> 
-      <Parameter name="aggregation: output file: agg style" type="string" value="Jacks"/> 
-      <Parameter name="aggregation: output file: agg style" type="string" value="Convex Hulls"/>
-    </ParameterList>
-
-    <ParameterList name="myRAPFact">
-      <Parameter name="factory" type="string" value="RAPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact"/>
-      <Parameter name="R" type="string" value="myRFact"/>
-      <ParameterList name="TransferFactories">
-        <Parameter name="ExportVTK"                   type="string" value="myAggExport"/>
-      </ParameterList>
-    </ParameterList>
-
-  </ParameterList>
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-    <Parameter name="max levels"                            type="int"      value="$N_LVLS"/>
-    <Parameter name="coarse: max size"                      type="int"      value="$N_SIZES"/>
-    <Parameter name="verbosity"                             type="string"   value="High"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"                          type="int"      value="0"/>
-      <Parameter name="Smoother"                            type="string"   value="mySmooFact"/>
-      <Parameter name="CoarseSolver"                        type="string"   value="myCoarseFact"/>
-      <Parameter name="P"                                   type="string"   value="myTentativePFact"/>
-      <Parameter name="R"                                   type="string"   value="myRFact"/>           
-      <Parameter name="A"                                   type="string"   value="myRAPFact"/> 
-    </ParameterList>
-  </ParameterList>
-</ParameterList>
\ No newline at end of file
diff --git a/katoptron/readers.py b/katoptron/readers.py
deleted file mode 100644
index 2d887e26..00000000
--- a/katoptron/readers.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-import numpy as np
-
-
-def read_timers(filename, querylines):
-    file = open(filename, "r")
-    times = np.zeros((len(querylines),))
-    for line in file:
-        words = line.split()
-        if len(words) == 0:
-            continue
-        for i in range(0, len(querylines)):
-            if times[i] == 0.:
-                if words[0] == querylines[i]:
-                    times[i] = float(words[2])
-                    continue
-    file.close()
-    return times
-
-
-def read_teuchos_timers(filename, querylines):
-    file = open(filename, "r")
-    times = np.zeros((len(querylines),))
-    for line in file:
-        words = line.split()
-        if len(words) == 0:
-            continue
-        for i in range(0, len(querylines)):
-            if times[i] == 0.:
-                querylines_words = querylines[i].split()
-                has_to_be_read = True
-                for j in range(0, len(querylines_words)):
-                    if words[j] != querylines_words[j]:
-                        has_to_be_read = False
-                        break
-                if has_to_be_read:
-                    times[i] = float(words[len(querylines_words)])
-                    continue
-    file.close()
-    return times
-
-
-def read_Belos(filename, ensemble_size):
-    active_set_number = 1
-
-    number_of_criterion = 0
-
-    previously_an_iter = False
-
-    iter_indices = np.array([])
-
-    residuals = np.array([])
-
-    file = open(filename, "r")
-    for line in file:
-        words = line.split()
-        if len(words) == 0:
-            continue
-        if words[0] == "Iter":
-            previously_an_iter = True
-            word = words[1]
-            len_word = len(word)
-            if iter_indices.size != 0:
-                iter_indices = np.append(
-                    iter_indices, [int(word[:(len_word-1)])], axis=0)
-            else:
-                iter_indices = np.array([int(word[:(len_word-1)])])
-
-            if number_of_criterion == 0:
-                word = words[3]
-                len_word = len(word)
-
-                number_of_criterion = int(word[:(len_word-1)])
-            if number_of_criterion == 1:
-                if ensemble_size > 1:
-
-                    residual = np.array([float(words[6])])
-                    for i in range(1, ensemble_size):
-                        residual = np.append(residual, [float(words[6+i])])
-                    if residuals.size != 0:
-                        residuals = np.append(residuals, [residual], axis=0)
-                    else:
-                        residuals = np.array([residual])
-
-                else:
-                    if residuals.size != 0:
-                        residuals = np.append(
-                            residuals, [float(words[5])], axis=0)
-                    else:
-                        residuals = np.array([float(words[5])])
-        elif previously_an_iter:
-            previously_an_iter = False
-            active_set_number = active_set_number + 1
-
-    file.close()
-    return iter_indices, residuals
-
-
-def plot_Belos(iter_indices, residuals, ensemble_size=1, hold=False, color_offset=1):
-    import matplotlib.pyplot as plt
-
-    col = {'c1': (0., 0.4470, 0.7410),     'c2': (0.8500, 0.3250, 0.0980),
-           'c3': (0.9290, 0.6940, 0.1250), 'c4': (0.4940, 0.1840, 0.5560),
-           'c5': (0.4660, 0.6740, 0.1880), 'c6': (0.3010, 0.7450, 0.9330),
-           'c7': (0.6350, 0.0780, 0.1840), 'c8': (0, 0.4470, 0.7410)}
-
-    plt_linewidth = 2
-    plt.style.use('ggplot')
-
-    if hold == False:
-        plt.figure(figsize=(8, 8))
-        plt.grid(True)
-
-    if ensemble_size > 1:
-        for i in range(0, ensemble_size):
-            plt.semilogy(iter_indices, residuals[:, i], '-', color=col['c'+str(
-                color_offset+i)], zorder=2, linewidth=plt_linewidth)
-    else:
-        plt.semilogy(iter_indices, residuals, '-',
-                     color=col['c'+str(color_offset)], zorder=2, linewidth=plt_linewidth)
diff --git a/katoptron/speedup.py b/katoptron/speedup.py
deleted file mode 100644
index 16750d4b..00000000
--- a/katoptron/speedup.py
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import numpy as np
-
-from katoptron.readers import *
-
-
-def read_iter_all_ensemble_sizes(n_samples, ensemble_sizes, file_base_dir, reduction=False):
-    iter = np.zeros((len(ensemble_sizes), n_samples))
-    for i in range(0, len(ensemble_sizes)):
-        file_base_dir_2 = file_base_dir + '/' + str(ensemble_sizes[i])+'/'
-        for j in range(0, int((n_samples // ensemble_sizes[i]))):
-            input_MC_file_dir = file_base_dir_2 + str(j)+'/'
-            es = ensemble_sizes[i]
-            if reduction:
-                es = 1
-            iter_indices, residuals = read_Belos(
-                input_MC_file_dir + 'belos_out.txt', es)
-            for k in range(0, ensemble_sizes[i]):
-                iter[i][j*ensemble_sizes[i]+k] = iter_indices[-1]
-    return iter
-
-
-def read_timers_all_ensemble_sizes(n_samples, ensemble_sizes, file_base_dir, querylines, use_waves_timers, use_teuchos_timers):
-    timers = np.zeros((len(ensemble_sizes), n_samples, len(querylines)))
-    timers_s = np.zeros((len(querylines),))
-    for i in range(0, len(ensemble_sizes)):
-        file_base_dir_2 = file_base_dir + '/' + str(ensemble_sizes[i])+'/'
-        for j in range(0, int((n_samples // ensemble_sizes[i]))):
-            input_MC_file_dir = file_base_dir_2 + str(j)+'/'
-            for k in use_waves_timers:
-                timers_s[int(k)] = read_timers(input_MC_file_dir +
-                                               'timers.txt', [querylines[int(k)]])[0]
-            for k in use_teuchos_timers:
-                timers_s[int(k)] = read_teuchos_timers(
-                    input_MC_file_dir + 'teuchos_timers.txt', [querylines[int(k)]])[0]
-            for k in range(0, ensemble_sizes[i]):
-                timers[i][j*ensemble_sizes[i]+k][:] = timers_s[:]
-
-    return timers
-
-
-def compute_speedup(n_samples, ensemble_sizes, file_base_dir, querylines, per_iteration, quantiles, use_waves_timers, use_teuchos_timers, reduction=False):
-    iter = read_iter_all_ensemble_sizes(
-        n_samples, ensemble_sizes, file_base_dir, reduction)
-    timers = read_timers_all_ensemble_sizes(
-        n_samples, ensemble_sizes, file_base_dir, querylines, use_waves_timers, use_teuchos_timers)
-
-    n_quantiles = len(quantiles)
-
-    speedup = np.zeros((len(ensemble_sizes), len(querylines), n_quantiles))
-
-    i_no_ep = 0
-
-    for i in range(0, len(ensemble_sizes)):
-        if i == i_no_ep:
-            speedup[i][:][:] = np.ones((1, len(querylines), n_quantiles))
-        else:
-            cum_timers = np.zeros(
-                (2, int((n_samples // ensemble_sizes[i])), len(querylines)))
-            for j in range(0, int((n_samples // ensemble_sizes[i]))):
-                for l in range(0, len(querylines)):
-                    if per_iteration[l]:
-                        sum_iter = 0
-                    else:
-                        sum_iter = 1
-                    for k in range(0, ensemble_sizes[i]):
-                        cum_timers[0][j][l] = cum_timers[0][j][l] + \
-                            timers[i_no_ep][j*ensemble_sizes[i]+k][l]
-                        if per_iteration[l]:
-                            sum_iter = sum_iter + \
-                                iter[i_no_ep][j*ensemble_sizes[i]+k]
-                    cum_timers[0][j][l] = (
-                        cum_timers[0][j][l] / sum_iter)
-                    if cum_timers[0][j][l] == 0:
-                        print('Warning! The cumulated cpu cost of ' + querylines[l] + ' is zero and is replaced by ' + str(
-                            (0.01 / sum_iter)) + ', the precision of the timers has to be increased or the test is too small.')
-                        cum_timers[0][j][l] = (0.01 / sum_iter)
-                    if per_iteration[l]:
-                        cum_timers[1][j][l] = (
-                            timers[i][j*ensemble_sizes[i]][l] / (iter[i][j*ensemble_sizes[i]]*ensemble_sizes[i]))
-                    else:
-                        cum_timers[1][j][l] = timers[i][j*ensemble_sizes[i]][l]
-            for l in range(0, len(querylines)):
-                speedup[i][l] = np.quantile(
-                    (cum_timers[0, :, l] / cum_timers[1, :, l]), quantiles, axis=0)
-    return speedup
-
-
-def plot_speedup(speedup, ensemble_sizes, which_l=[0], title=None, querylines=None, per_iteration=None):
-    import matplotlib.pyplot as plt
-
-    plt.figure(figsize=(8, 8))
-
-    col = {'c1': (0., 0.4470, 0.7410),     'c2': (0.8500, 0.3250, 0.0980),
-           'c3': (0.9290, 0.6940, 0.1250), 'c4': (0.4940, 0.1840, 0.5560),
-           'c5': (0.4660, 0.6740, 0.1880), 'c6': (0.3010, 0.7450, 0.9330),
-           'c7': (0.6350, 0.0780, 0.1840), 'c8': (0, 0.4470, 0.7410)}
-
-    plt_linewidth = 2
-    plt.style.use('ggplot')
-
-    for i in range(0, len(which_l)):
-        color = col['c'+str(i+1)]
-        for j in range(0, speedup.shape[2]):
-            if j == 0 and querylines is not None:
-                plt.plot(ensemble_sizes, speedup[:, which_l[i], j], color=color,
-                         label=querylines[which_l[i]]+'_'+str(per_iteration[which_l[i]]))
-            else:
-                plt.plot(ensemble_sizes,
-                         speedup[:, which_l[i], j], color=color)
-
-    plt.xlabel('ensemble size')
-    plt.ylabel('speedup')
-    plt.xlim(min(ensemble_sizes), max(ensemble_sizes))
-    if title is not None:
-        plt.title(title)
-    if querylines is not None:
-        plt.legend()
-
-
-def save_speedup(speedup, ensemble_sizes, querylines, filename):
-    tmp = np.zeros((speedup.shape[0], speedup.shape[2]+1))
-    tmp[:, 0] = ensemble_sizes
-    for l in range(0, len(querylines)):
-        for i in range(1, speedup.shape[2]+1):
-            tmp[:, i] = speedup[:, l, i-1]
-        name = filename + '_' + querylines[l] + '.txt'
-        name = name.replace(" ", "_")
-        name = name.replace(":", "")
-        name = name.replace("[", "")
-        name = name.replace("]", "")
-        name = name.replace("(", "")
-        name = name.replace(")", "")
-        name = name.replace("*", "")
-        np.savetxt(name, tmp, delimiter=' ')
-
-
-def compute_R(n_samples, ensemble_sizes, file_base_dir, quantiles, reduction=False):
-    iter = read_iter_all_ensemble_sizes(
-        n_samples, ensemble_sizes, file_base_dir, reduction)
-    n_quantiles = len(quantiles)
-
-    R = np.ones((len(ensemble_sizes), n_quantiles))
-
-    i_no_ep = 0
-
-    for i in range(0, len(ensemble_sizes)):
-        if i != i_no_ep:
-            cum_iter = np.zeros(
-                (2, int((n_samples // ensemble_sizes[i]))))
-            for j in range(0, int((n_samples // ensemble_sizes[i]))):
-                for k in range(0, ensemble_sizes[i]):
-                    cum_iter[0][j] = cum_iter[0][j] + \
-                        iter[i_no_ep][j*ensemble_sizes[i]+k]
-                cum_iter[1][j] = iter[i][j*ensemble_sizes[i]]*ensemble_sizes[i]
-            R[i, :] = np.quantile(
-                (cum_iter[1, :] / cum_iter[0, :]), quantiles, axis=0)
-    return R
-
-
-def save_R(R, filename):
-    name = filename + '.txt'
-    name = name.replace(" ", "_")
-    name = name.replace(":", "")
-    name = name.replace("[", "")
-    name = name.replace("]", "")
-    name = name.replace("(", "")
-    name = name.replace(")", "")
-    name = name.replace("*", "")
-    np.savetxt(name, R, delimiter=' ')
diff --git a/katoptron/src/Algebraic.h b/katoptron/src/Algebraic.h
deleted file mode 100644
index dffadb95..00000000
--- a/katoptron/src/Algebraic.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef KATOPTRON_ALGEBRAIC_H
-#define KATOPTRON_ALGEBRAIC_H
-
-#include "katoptron.h"
-#include "Map.h"
-#include "Domain.h"
-#include "Loads.h"
-#include "Graph.h"
-#include "Matrices.h"
-#include "Vectors.h"
-
-#include "LinearSolver.h"
-
-#include "EnsembleTraits.h"
-
-#include <limits>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store Teuchos::RCP to the algebraic information of the problem:
- * <ul>
- *  <li> map: an object that stores all the maps,
- *  <li> graph: an object that stores all the graphs (the sparsity patterns of the matrices),
- *  <li> matrices: an object that stores all the matrices,
- *  <li> vectors: an object that stores all the vectors.
- * </ul>
- */
-template <typename scalar>
-class Algebraic
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-public:
-    Teuchos::RCP<Map> map;
-    Teuchos::RCP<Graph> graph;
-    Teuchos::RCP<Matrices<scalar>> matrices;
-    Teuchos::RCP<Vectors<scalar>> vectors;
-
-    Algebraic(Teuchos::RCP<Map> map, Teuchos::RCP<Domain<scalar>> domain);
-
-    Teuchos::RCP<Tpetra::Vector<scalar, local_ordinal_type, global_ordinal_type>> readVectorFromFile(std::string &name, size_t myRank);
-};
-}; // namespace katoptron
-
-#endif //KATOPTRON_ALGEBRAIC_H
diff --git a/katoptron/src/Algebraic.hpp b/katoptron/src/Algebraic.hpp
deleted file mode 100644
index 1ad56e35..00000000
--- a/katoptron/src/Algebraic.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-namespace katoptron
-{
-
-/**
- * @brief Algebraic constructor
- * 
- * This contrusctor calls the constructor of the katoptron::Graph, katoptron::Matrices, and katoptron::Vectors classes.
- * To do so, we need information regarding the distributions of the nodes and elements over the MPI processes (information
- * included in the katoptron::Map class) and information regarding the connectivity between the degrees of freedom (or,
- * equivalently, between the nodes) (information included in katoptron::Domain::elementsList).
- *
- * Arguments:
- * <ul>
- *  <li> map: an RCP to a Map object,
- *  <li> domain: an RCP to a Domain object.
- * </ul>
- */
-template <typename scalar>
-Algebraic<scalar>::Algebraic(Teuchos::RCP<Map> _map, Teuchos::RCP<Domain<scalar>> domain)
-{
-    map = _map;
-
-    LinearSolver::getTimers()["graph"].start();
-    graph = Teuchos::rcp(new Graph(_map, domain->elementsList));
-    LinearSolver::getTimers()["graph"].stop();
-    matrices = Teuchos::rcp(new Matrices<scalar>(graph));
-    vectors = Teuchos::rcp(new Vectors<scalar>(map));
-}
-
-/**
- * @brief Function to read a vector from file and distribute it to the MPI processes.
- * 
- * Arguments:
- * <ul>
- *  <li> name: the name of input file,
- *  <li> myRank: rank of the process.
- * </ul>
- */
-template <typename scalar>
-Teuchos::RCP<Tpetra::Vector<scalar, Map::local_ordinal_type, Map::global_ordinal_type>>
-Algebraic<scalar>::readVectorFromFile(std::string &name, size_t myRank)
-{
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    std::ifstream inputfile;
-    if (myRank == 0)
-        inputfile.open(name);
-
-    RCP<Tpetra::Vector<scalar, Map::local_ordinal_type, Map::global_ordinal_type>> x_0 =
-        rcp(new Tpetra::Vector<scalar, Map::local_ordinal_type, Map::global_ordinal_type>(map->mapOutput, true));
-    RCP<Tpetra::Vector<scalar, Map::local_ordinal_type, Map::global_ordinal_type>> x =
-        rcp(new Tpetra::Vector<scalar, Map::local_ordinal_type, Map::global_ordinal_type>(map->mapDofs, true));
-
-    if (myRank == 0)
-    {
-        auto line_size = map->mapOutput->getGlobalNumElements();
-
-        typedef EnsembleTraits<scalar> ET;
-        const int ensemble_size = ET::size;
-
-        for (Map::global_ordinal_type global_index = 0; global_index < line_size; ++global_index)
-        {
-            scalar tmp;
-            for (auto j = 0; j < ensemble_size; ++j)
-                inputfile >> ET::coeff(tmp, j);
-
-            x_0->replaceGlobalValue(global_index, tmp);
-        }
-        inputfile.close();
-    }
-
-    Tpetra::Export<> exportDof(map->mapOutput, map->mapDofs);
-
-    x->doExport(*x_0, exportDof, Tpetra::ADD);
-    return x;
-}
-
-}; // namespace katoptron
diff --git a/katoptron/src/AlgebraicETI.cpp b/katoptron/src/AlgebraicETI.cpp
deleted file mode 100644
index 2bef1983..00000000
--- a/katoptron/src/AlgebraicETI.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "Algebraic.h"
-#include "Algebraic.hpp"
-
-using namespace katoptron;
-
-template class Algebraic<double>;
-template class Algebraic<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>>;
-template class Algebraic<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>>;
-template class Algebraic<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>>;
-template class Algebraic<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>>;
\ No newline at end of file
diff --git a/katoptron/src/BelosStatusTestWeightedGenResNorm_MP_Vector.hpp b/katoptron/src/BelosStatusTestWeightedGenResNorm_MP_Vector.hpp
deleted file mode 100644
index 2011eb80..00000000
--- a/katoptron/src/BelosStatusTestWeightedGenResNorm_MP_Vector.hpp
+++ /dev/null
@@ -1,769 +0,0 @@
-//@HEADER
-// ************************************************************************
-//
-//                 Belos: Block Linear Solvers Package
-//                  Copyright 2004 Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
-//
-// ************************************************************************
-//@HEADER
-
-#ifndef BELOS_STATUS_TEST_WEIGHTED_GEN_RESNORM_MP_VECTORH
-#define BELOS_STATUS_TEST_WEIGHTED_GEN_RESNORM_MP_VECTORH
-
-/*!
-  \file BelosStatusTestWeightedGenResNorm.hpp
-  \brief Belos::StatusTestResNorm for specifying general residual norm stopping criteria.
-*/
-
-#include "BelosStatusTestResNorm.hpp"
-#include "BelosLinearProblem.hpp"
-#include "BelosMultiVecTraits.hpp"
-
-#include "EnsembleTraits.h"
-
-/*!
-  \class Belos::StatusTestWeightedGenResNorm
-  \brief An implementation of StatusTestResNorm using a family of weighted residual norms.
-
-  StatusTestWeightedGenResNorm is an implementation of StatusTestResNorm that allows a user to construct
-  one of a family of residual tests for use as a status/convergence test for Belos.
-  The form of the test is
-   \f[
-   \frac{\|w\odot r_i\|}{\sigma_i} \le \tau
-   \f]
-   where
-   <ul>
-   <li> \f$w\f$ is a vector of weights,
-   <li> \f$\odot\f$ is the Hadamard product,
-   <li> \f$r_i\f$ is the i-th residual std::vector, implicitly or explicitly computed (determined by enum ResType),
-   <li> \f$\|r_i\|\f$ is the i-th residual norm determined by the enum NormType  (1-norm, 2-norm or inf-norm),
-   <li> \f$\sigma_i\f$ is the i-th scale factor that can be passed in as a precomputed number of the templated type,
-   or can be selected from by the enum ScaleType (norm of RHS, norm of initial residual).
-   <li> \f$\tau\f$ is the tolerance that is passed in as a number of the templated type to the constructor.
-   The value of \f$\tau\f$ can be reset using the setTolerance() method.
-   </ul>
-
-*/
-
-namespace Belos
-{
-
-template <class ScalarType, class MV, class OP>
-class StatusTestWeightedGenResNorm : public StatusTestResNorm<ScalarType, MV, OP>
-{
-
-public:
-    // Convenience typedefs
-    typedef Teuchos::ScalarTraits<ScalarType> SCT;
-    typedef typename SCT::magnitudeType MagnitudeType;
-    typedef MultiVecTraits<ScalarType, MV> MVT;
-
-    //! @name Enums.
-    //@{
-
-    /*!
-    \brief Select how the residual std::vector is produced.
-  */
-    enum ResType
-    {
-        Implicit, /*!< Use the residual std::vector produced by the iterative solver. */
-        Explicit  /*!< Explicitly compute the residual std::vector r = b - A*x using the
-                            linear problem. */
-    };
-
-    //@}
-
-    //! @name Constructors/destructors.
-    //@{
-    //! Constructor
-    /*! The constructor takes a single argument specifying the tolerance (\f$\tau\f$).
-    If none of the form definition methods are called, we use \f$\|r\|_2/\|r^{(0)}\|_2 \le \tau\f$
-    as the stopping criterion, where \f$\|r\|_2\f$ uses the least costly form of the 2-norm of
-    residual available from the iterative method and \f$\|r^{(0)}\|_2\f$ is the corresponding norm
-    of the initial residual.  The least costly form of the 2-norm depends on the chosen iterative
-    method.  Most Krylov methods produce the preconditioned residual std::vector in a form that would be
-    exact in infinite precision arithmetic.  This std::vector may be different from the true residual
-    either because left preconditioning was used, or because round-off error has
-    introduced significant error, or both.
-
-    You can also state the number of vectors that must pass the convergence criteria before the
-    status test passes by using the \c quorum argument.
-  */
-    StatusTestWeightedGenResNorm(MagnitudeType Tolerance, Teuchos::RCP<MV> weights, int quorum = -1, bool showMaxResNormOnly = false);
-
-    //! Destructor
-    virtual ~StatusTestWeightedGenResNorm();
-    //@}
-
-    //! @name Form and parameter definition methods.
-    //@{
-
-    //! Define form of the residual, its norm and optional weighting std::vector.
-    /*! This method defines the form of \f$\|r\|\f$.  We specify:
-    <ul>
-    <li> Whether the residual std::vector should be explicitly computed, or taken from the iterative method.
-    <li> The norm to be used on the residual (this may be different than the norm used in
-    DefineScaleForm()).
-    </ul>
-  */
-    int defineResForm(ResType TypeOfResidual, NormType TypeOfNorm);
-
-    //! Define form of the scaling, its norm, its optional weighting std::vector, or, alternatively, define an explicit value.
-    /*! This method defines the form of how the residual is scaled (if at all).  It operates in two modes:
-    <ol>
-    <li> User-provided scaling value:
-    <ul>
-    <li> Set argument TypeOfScaling to UserProvided.
-    <li> Set ScaleValue to a non-zero value that the residual norm will be divided by.
-    <li> TypeOfNorm argument will be ignored.
-    <li> Sample use:  Define ScaleValue = \f$\|A\|_{\infty}\f$ where \f$ A \f$ is the matrix
-    of the linear problem.
-    </ul>
-
-    <li> Use a supported Scaling Form:
-    <ul>
-    <li> Define TypeOfScaling to be the norm of the right hand side, the initial residual std::vector,
-    or to none.
-    <li> Define norm to be used on the scaling std::vector (this may be different than the norm used
-    in DefineResForm()).
-    </ul>
-    </ol>
-  */
-    int defineScaleForm(ScaleType TypeOfScaling, NormType TypeOfNorm, MagnitudeType ScaleValue = Teuchos::ScalarTraits<MagnitudeType>::one());
-
-    NormType getResNormType() { return resnormtype_; }
-
-    //! Set the value of the tolerance
-    /*! We allow the tolerance to be reset for cases where, in the process of testing the residual,
-    we find that the initial tolerance was too tight or too lax.
-  */
-    int setTolerance(MagnitudeType tolerance)
-    {
-        tolerance_ = tolerance;
-        return (0);
-    }
-
-    //! Sets the number of residuals that must pass the convergence test before Passed is returned.
-    //! \note If \c quorum=-1 then all residuals must pass the convergence test before Passed is returned.
-    int setQuorum(int quorum)
-    {
-        quorum_ = quorum;
-        return (0);
-    }
-
-    //! Set whether the only maximum residual norm is displayed when the print() method is called
-    int setShowMaxResNormOnly(bool showMaxResNormOnly)
-    {
-        showMaxResNormOnly_ = showMaxResNormOnly;
-        return (0);
-    }
-
-    //@}
-
-    //! @name Status methods
-    //@{
-    //! Check convergence status: Passed, Failed, or Undefined.
-    /*! This method checks to see if the convergence criteria are met.
-    Depending on how the residual test is constructed this method will return
-    the appropriate status type.
-
-    \return StatusType: Passed, Failed, or Undefined.
-  */
-    StatusType checkStatus(Iteration<ScalarType, MV, OP> *iSolver);
-
-    //! Return the result of the most recent CheckStatus call.
-    StatusType getStatus() const { return (status_); };
-    //@}
-
-    //! @name Reset methods
-    //@{
-
-    //! Resets the internal configuration to the initial state.
-    void reset();
-
-    //@}
-
-    //! @name Print methods
-    //@{
-
-    //! Output formatted description of stopping test to output stream.
-    void print(std::ostream &os, int indent = 0) const;
-
-    //! Print message for each status specific to this stopping test.
-    void printStatus(std::ostream &os, StatusType type) const;
-    //@}
-
-    //! @name Methods to access data members.
-    //@{
-
-    //! Returns the current solution estimate that was computed for the most recent residual test.
-    //! \note This is useful for explicit residual tests, if this test is an implicit residual test
-    //! a null pointer will be returned.
-    Teuchos::RCP<MV> getSolution() { return curSoln_; }
-
-    //! Returns the number of residuals that must pass the convergence test before Passed is returned.
-    //! \note If \c quorum=-1 then all residuals must pass the convergence test before Passed is returned.
-    int getQuorum() const { return quorum_; }
-
-    //! Returns whether the only maximum residual norm is displayed when the print() method is called
-    bool getShowMaxResNormOnly() { return showMaxResNormOnly_; }
-
-    //! Returns the std::vector containing the indices of the residuals that passed the test.
-    std::vector<int> convIndices() { return ind_; }
-
-    //! Returns the value of the tolerance, \f$ \tau \f$, set in the constructor.
-    MagnitudeType getTolerance() const { return (tolerance_); };
-
-    //! Returns the test value, \f$ \frac{\|r\|}{\sigma} \f$, computed in most recent call to CheckStatus.
-    const std::vector<MagnitudeType> *getTestValue() const { return (&testvector_); };
-
-    //! Returns the residual norm value, \f$ \|r\| \f$, computed in most recent call to CheckStatus.
-    const std::vector<MagnitudeType> *getResNormValue() const { return (&resvector_); };
-
-    //! Returns the scaled norm value, \f$ \sigma \f$.
-    const std::vector<MagnitudeType> *getScaledNormValue() const { return (&scalevector_); };
-
-    //! Returns a boolean indicating a loss of accuracy has been detected in computing the residual.
-    //! \note This status test does not check for loss of accuracy, so this method will always return false.
-    bool getLOADetected() const { return false; }
-
-    //! Returns number of ensemble iterations
-    const std::vector<int> getEnsembleIterations() const { return ensemble_iterations; }
-    //@}
-
-    /** @name Misc. */
-    //@{
-
-    /** \brief Call to setup initial scaling std::vector.
-   *
-   * After this function is called <tt>getScaledNormValue()</tt> can be called
-   * to get the scaling std::vector.
-   */
-    StatusType firstCallCheckStatusSetup(Iteration<ScalarType, MV, OP> *iSolver);
-    //@}
-
-    /** \name Overridden from Teuchos::Describable */
-    //@{
-
-    /** \brief Method to return description of the maximum iteration status test  */
-    std::string description() const
-    {
-        std::ostringstream oss;
-        oss << "Belos::StatusTestWeightedGenResNorm<>: " << resFormStr();
-        oss << ", tol = " << tolerance_;
-        return oss.str();
-    }
-    //@}
-
-protected:
-private:
-    //! @name Private methods.
-    //@{
-    /** \brief Description of current residual form */
-    std::string resFormStr() const
-    {
-        std::ostringstream oss;
-        oss << "(";
-        oss << ((resnormtype_ == OneNorm) ? "1-Norm" : (resnormtype_ == TwoNorm) ? "2-Norm" : "Inf-Norm");
-        oss << " Exp";
-        oss << " Res Vec) ";
-
-        // If there is no residual scaling, return current string.
-        if (scaletype_ != None)
-        {
-            // Insert division sign.
-            oss << "/ ";
-
-            // Determine output string for scaling, if there is any.
-            if (scaletype_ == UserProvided)
-                oss << " (User Scale)";
-            else
-            {
-                oss << "(";
-                oss << ((scalenormtype_ == OneNorm) ? "1-Norm" : (resnormtype_ == TwoNorm) ? "2-Norm" : "Inf-Norm");
-                if (scaletype_ == NormOfInitRes || scaletype_ == NormOfFullInitRes || scaletype_ == NormOfFullScaledInitRes)
-                    oss << " Res0";
-                else if (scaletype_ == NormOfPrecInitRes || scaletype_ == NormOfFullPrecInitRes || scaletype_ == NormOfFullScaledPrecInitRes)
-                    oss << " Prec Res0";
-                else
-                    oss << " RHS ";
-                oss << ")";
-            }
-        }
-
-        return oss.str();
-    }
-
-    //@}
-
-    //! @name Private helper functions
-    //@{
-
-    // calculate weighted norm
-    void MvWNorm(const MV &mv, const MV &w, std::vector<typename Teuchos::ScalarTraits<ScalarType>::magnitudeType> &normVec, NormType type = TwoNorm)
-    {
-
-        Teuchos::RCP<MV> wmv = MVT::CloneCopy(mv);
-
-        Teuchos::ArrayRCP<typename MV::scalar_type> wmv_entries;
-        Teuchos::ArrayRCP<const typename MV::scalar_type> w_entries;
-
-        for (size_t j = 0; j < MVT::GetNumberVecs(mv); ++j)
-        {
-            wmv_entries = wmv->getDataNonConst(j);
-            w_entries = w.getData(j);
-            for (size_t i = 0; i < wmv_entries.size(); ++i)
-                wmv_entries[i] *= w_entries[i];
-        }
-        MVT::MvNorm(*wmv, normVec, type);
-    }
-    //@}
-
-    //! @name Private data members.
-    //@{
-
-    //! Tolerance used to determine convergence
-    MagnitudeType tolerance_;
-
-    //! Number of residuals that must pass the convergence test before Passed is returned.
-    int quorum_;
-
-    //! Determines if the entries for all of the residuals are shown or just the max.
-    bool showMaxResNormOnly_;
-
-    //! Type of norm to use on residual (OneNorm, TwoNorm, or InfNorm).
-    NormType resnormtype_;
-
-    //! Type of scaling to use (Norm of RHS, Norm of Initial Residual, None or User provided)
-    ScaleType scaletype_;
-
-    //! Type of norm to use on the scaling (OneNorm, TwoNorm, or InfNorm)
-    NormType scalenormtype_;
-
-    //! Scaling value.
-    MagnitudeType scalevalue_;
-
-    //! Scaling std::vector.
-    std::vector<MagnitudeType> scalevector_;
-
-    //! Residual norm std::vector.
-    std::vector<MagnitudeType> resvector_;
-
-    //! Test std::vector = resvector_ / scalevector_
-    std::vector<MagnitudeType> testvector_;
-
-    //! Vector containing the indices for the vectors that passed the test.
-    std::vector<int> ind_;
-
-    //! Most recent solution vector used by this status test.
-    Teuchos::RCP<MV> curSoln_;
-
-    //! Status
-    StatusType status_;
-
-    //! The current blocksize of the linear system being solved.
-    int curBlksz_;
-
-    //! The current number of right-hand sides being solved for.
-    int curNumRHS_;
-
-    //! The indices of the current number of right-hand sides being solved for.
-    std::vector<int> curLSIdx_;
-
-    //! The current number of linear systems that have been loaded into the linear problem.
-    int curLSNum_;
-
-    //! The total number of right-hand sides being solved for.
-    int numrhs_;
-
-    //! Is this the first time CheckStatus is called?
-    bool firstcallCheckStatus_;
-
-    //! Is this the first time DefineResForm is called?
-    bool firstcallDefineResForm_;
-
-    //! Is this the first time DefineScaleForm is called?
-    bool firstcallDefineScaleForm_;
-
-    //! Weights of the used norm:
-    Teuchos::RCP<MV> weights_;
-
-    //! The number of iterations at which point each ensemble component converges
-    std::vector<int> ensemble_iterations;
-
-    //@}
-};
-
-template <class ScalarType, class MV, class OP>
-StatusTestWeightedGenResNorm<ScalarType, MV, OP>::
-    StatusTestWeightedGenResNorm(MagnitudeType Tolerance, Teuchos::RCP<MV> weights, int quorum, bool showMaxResNormOnly)
-    : tolerance_(Tolerance),
-      quorum_(quorum),
-      showMaxResNormOnly_(showMaxResNormOnly),
-      resnormtype_(TwoNorm),
-      scaletype_(NormOfInitRes),
-      scalenormtype_(TwoNorm),
-      scalevalue_(Teuchos::ScalarTraits<MagnitudeType>::one()),
-      status_(Undefined),
-      curBlksz_(0),
-      curNumRHS_(0),
-      curLSNum_(0),
-      numrhs_(0),
-      firstcallCheckStatus_(true),
-      firstcallDefineResForm_(true),
-      firstcallDefineScaleForm_(true),
-      weights_(weights),
-      ensemble_iterations(EnsembleTraits<ScalarType>::size, 0)
-{
-    // This constructor will compute the residual ||r_i||/||r0_i|| <= tolerance using the 2-norm of
-    // the explicit residual std::vector.
-}
-
-template <class ScalarType, class MV, class OP>
-StatusTestWeightedGenResNorm<ScalarType, MV, OP>::~StatusTestWeightedGenResNorm()
-{
-}
-
-template <class ScalarType, class MV, class OP>
-void StatusTestWeightedGenResNorm<ScalarType, MV, OP>::reset()
-{
-    status_ = Undefined;
-    curBlksz_ = 0;
-    curLSNum_ = 0;
-    curLSIdx_.resize(0);
-    numrhs_ = 0;
-    ind_.resize(0);
-    firstcallCheckStatus_ = true;
-    curSoln_ = Teuchos::null;
-}
-
-template <class ScalarType, class MV, class OP>
-int StatusTestWeightedGenResNorm<ScalarType, MV, OP>::defineResForm(ResType TypeOfResidual, NormType TypeOfNorm)
-{
-    TEUCHOS_TEST_FOR_EXCEPTION(firstcallDefineResForm_ == false, StatusTestError,
-                               "StatusTestWeightedGenResNorm::defineResForm(): The residual form has already been defined.");
-    firstcallDefineResForm_ = false;
-
-    resnormtype_ = TypeOfNorm;
-
-    return (0);
-}
-
-template <class ScalarType, class MV, class OP>
-int StatusTestWeightedGenResNorm<ScalarType, MV, OP>::defineScaleForm(ScaleType TypeOfScaling, NormType TypeOfNorm,
-                                                                      MagnitudeType ScaleValue)
-{
-    TEUCHOS_TEST_FOR_EXCEPTION(firstcallDefineScaleForm_ == false, StatusTestError,
-                               "StatusTestWeightedGenResNorm::defineScaleForm(): The scaling type has already been defined.");
-    firstcallDefineScaleForm_ = false;
-
-    scaletype_ = TypeOfScaling;
-    scalenormtype_ = TypeOfNorm;
-    scalevalue_ = ScaleValue;
-
-    return (0);
-}
-
-template <class ScalarType, class MV, class OP>
-StatusType StatusTestWeightedGenResNorm<ScalarType, MV, OP>::checkStatus(Iteration<ScalarType, MV, OP> *iSolver)
-{
-    typedef EnsembleTraits<ScalarType> ET;
-    const int ensemble_size = ET::size;
-    MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
-    const LinearProblem<ScalarType, MV, OP> &lp = iSolver->getProblem();
-    // Compute scaling term (done once for each block that's being solved)
-    if (firstcallCheckStatus_)
-    {
-        StatusType status = firstCallCheckStatusSetup(iSolver);
-        if (status == Failed)
-        {
-            status_ = Failed;
-            return (status_);
-        }
-    }
-    //
-    // This section computes the norm of the residual std::vector
-    //
-    if (curLSNum_ != lp.getLSNumber())
-    {
-        //
-        // We have moved on to the next rhs block
-        //
-        curLSNum_ = lp.getLSNumber();
-        curLSIdx_ = lp.getLSIndex();
-        curBlksz_ = (int)curLSIdx_.size();
-        int validLS = 0;
-        for (int i = 0; i < curBlksz_; ++i)
-        {
-            if (curLSIdx_[i] > -1 && curLSIdx_[i] < numrhs_)
-                validLS++;
-        }
-        curNumRHS_ = validLS;
-        curSoln_ = Teuchos::null;
-        //
-    }
-    else
-    {
-        //
-        // We are in the same rhs block, return if we are converged
-        //
-        if (status_ == Passed)
-        {
-            return status_;
-        }
-    }
-    {
-        //
-        // Request the true residual for this block of right-hand sides.
-        //
-        Teuchos::RCP<MV> cur_update = iSolver->getCurrentUpdate();
-        curSoln_ = lp.updateSolution(cur_update);
-        Teuchos::RCP<MV> cur_res = MVT::Clone(*curSoln_, MVT::GetNumberVecs(*curSoln_));
-        lp.computeCurrResVec(&*cur_res, &*curSoln_);
-        std::vector<MagnitudeType> tmp_resvector(MVT::GetNumberVecs(*cur_res));
-        MvWNorm(*cur_res, *weights_, tmp_resvector, resnormtype_);
-        typename std::vector<int>::iterator p = curLSIdx_.begin();
-        for (int i = 0; p < curLSIdx_.end(); ++p, ++i)
-        {
-            // Check if this index is valid
-            if (*p != -1)
-                resvector_[*p] = tmp_resvector[i];
-        }
-    }
-    //
-    // Compute the new linear system residuals for testing.
-    // (if any of them don't meet the tolerance or are NaN, then we exit with that status)
-    //
-    if (scalevector_.size() > 0)
-    {
-        typename std::vector<int>::iterator p = curLSIdx_.begin();
-        for (; p < curLSIdx_.end(); ++p)
-        {
-            // Check if this index is valid
-            if (*p != -1)
-            {
-                // Scale the std::vector accordingly
-                if (scalevector_[*p] != zero)
-                {
-                    // Don't intentionally divide by zero.
-                    testvector_[*p] = resvector_[*p] / scalevector_[*p] / scalevalue_;
-                }
-                else
-                {
-                    testvector_[*p] = resvector_[*p] / scalevalue_;
-                }
-            }
-        }
-    }
-    else
-    {
-        typename std::vector<int>::iterator p = curLSIdx_.begin();
-        for (; p < curLSIdx_.end(); ++p)
-        {
-            // Check if this index is valid
-            if (*p != -1)
-                testvector_[*p] = resvector_[*p] / scalevalue_;
-        }
-    }
-
-    // Check status of new linear system residuals and see if we have the quorum.
-    int have = 0;
-    ind_.resize(curLSIdx_.size());
-    typename std::vector<int>::iterator p = curLSIdx_.begin();
-    for (; p < curLSIdx_.end(); ++p)
-    {
-        // Check if this index is valid
-        if (*p != -1)
-        {
-            // Check if any of the residuals are larger than the tolerance.
-            bool all_converged = true;
-            for (int ii = 0; ii < ensemble_size; ++ii)
-            {
-                if (ET::coeff(testvector_[*p], ii) > ET::coeff(tolerance_, ii))
-                {
-                    ++ensemble_iterations[ii];
-                    all_converged = false;
-                }
-                else if (!(ET::coeff(testvector_[*p], ii) <= ET::coeff(tolerance_, ii)))
-                {
-                    // Throw an std::exception if a NaN is found.
-                    status_ = Failed;
-                    TEUCHOS_TEST_FOR_EXCEPTION(true, StatusTestError, "StatusTestWeightedGenResNorm::checkStatus(): NaN has been detected.");
-                }
-            }
-            if (all_converged)
-            {
-                ind_[have] = *p;
-                have++;
-            }
-        }
-    }
-    ind_.resize(have);
-    int need = (quorum_ == -1) ? curNumRHS_ : quorum_;
-    status_ = (have >= need) ? Passed : Failed;
-
-    // Return the current status
-    return status_;
-}
-
-template <class ScalarType, class MV, class OP>
-void StatusTestWeightedGenResNorm<ScalarType, MV, OP>::print(std::ostream &os, int indent) const
-{
-    for (int j = 0; j < indent; j++)
-        os << ' ';
-    printStatus(os, status_);
-    os << resFormStr();
-    if (status_ == Undefined)
-        os << ", tol = " << tolerance_ << std::endl;
-    else
-    {
-        os << std::endl;
-        if (showMaxResNormOnly_ && curBlksz_ > 1)
-        {
-            const MagnitudeType maxRelRes = *std::max_element(
-                testvector_.begin() + curLSIdx_[0], testvector_.begin() + curLSIdx_[curBlksz_ - 1]);
-            for (int j = 0; j < indent + 13; j++)
-                os << ' ';
-            os << "max{residual[" << curLSIdx_[0] << "..." << curLSIdx_[curBlksz_ - 1] << "]} = " << maxRelRes
-               << (maxRelRes <= tolerance_ ? " <= " : " > ") << tolerance_ << std::endl;
-        }
-        else
-        {
-            for (int i = 0; i < numrhs_; i++)
-            {
-                for (int j = 0; j < indent + 13; j++)
-                    os << ' ';
-                os << "residual [ " << i << " ] = " << testvector_[i];
-                os << ((testvector_[i] < tolerance_) ? " < " : (testvector_[i] == tolerance_) ? " == " : (testvector_[i] > tolerance_) ? " > " : " ") << tolerance_ << std::endl;
-            }
-        }
-    }
-    os << std::endl;
-}
-
-template <class ScalarType, class MV, class OP>
-void StatusTestWeightedGenResNorm<ScalarType, MV, OP>::printStatus(std::ostream &os, StatusType type) const
-{
-    os << std::left << std::setw(13) << std::setfill('.');
-    switch (type)
-    {
-    case Passed:
-        os << "Converged";
-        break;
-    case Failed:
-        os << "Unconverged";
-        break;
-    case Undefined:
-    default:
-        os << "**";
-        break;
-    }
-    os << std::left << std::setfill(' ');
-    return;
-}
-
-template <class ScalarType, class MV, class OP>
-StatusType StatusTestWeightedGenResNorm<ScalarType, MV, OP>::firstCallCheckStatusSetup(Iteration<ScalarType, MV, OP> *iSolver)
-{
-    int i;
-    MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
-    MagnitudeType one = Teuchos::ScalarTraits<MagnitudeType>::one();
-    const LinearProblem<ScalarType, MV, OP> &lp = iSolver->getProblem();
-    // Compute scaling term (done once for each block that's being solved)
-    if (firstcallCheckStatus_)
-    {
-        //
-        // Get some current solver information.
-        //
-        firstcallCheckStatus_ = false;
-
-        if (scaletype_ == NormOfRHS)
-        {
-            Teuchos::RCP<const MV> rhs = lp.getRHS();
-            numrhs_ = MVT::GetNumberVecs(*rhs);
-            scalevector_.resize(numrhs_);
-            MvWNorm(*rhs, *weights_, scalevector_, scalenormtype_);
-        }
-        else if (scaletype_ == NormOfInitRes || scaletype_ == NormOfFullInitRes || scaletype_ == NormOfFullScaledInitRes)
-        {
-            Teuchos::RCP<const MV> init_res = lp.getInitResVec();
-            numrhs_ = MVT::GetNumberVecs(*init_res);
-            scalevector_.resize(numrhs_);
-            MvWNorm(*init_res, *weights_, scalevector_, scalenormtype_);
-        }
-        else if (scaletype_ == NormOfPrecInitRes || scaletype_ == NormOfFullPrecInitRes || scaletype_ == NormOfFullScaledPrecInitRes)
-        {
-            Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
-            numrhs_ = MVT::GetNumberVecs(*init_res);
-            scalevector_.resize(numrhs_);
-            MvWNorm(*init_res, *weights_, scalevector_, scalenormtype_);
-        }
-        else
-        {
-            numrhs_ = MVT::GetNumberVecs(*(lp.getRHS()));
-        }
-
-        resvector_.resize(numrhs_);
-        testvector_.resize(numrhs_);
-
-        curLSNum_ = lp.getLSNumber();
-        curLSIdx_ = lp.getLSIndex();
-        curBlksz_ = (int)curLSIdx_.size();
-        int validLS = 0;
-        for (i = 0; i < curBlksz_; ++i)
-        {
-            if (curLSIdx_[i] > -1 && curLSIdx_[i] < numrhs_)
-                validLS++;
-        }
-        curNumRHS_ = validLS;
-        //
-        // Initialize the testvector.
-        for (i = 0; i < numrhs_; i++)
-        {
-            testvector_[i] = one;
-        }
-
-        // Return an error if the scaling is zero.
-        if (scalevalue_ == zero)
-        {
-            return Failed;
-        }
-    }
-    return Undefined;
-}
-
-} // end namespace Belos
-
-#endif /* BELOS_STATUS_TEST_RESNORM_H */
diff --git a/katoptron/src/BelosXpetraStatusTestGenResSubNorm_MP_Vector.hpp b/katoptron/src/BelosXpetraStatusTestGenResSubNorm_MP_Vector.hpp
deleted file mode 100644
index c06459d5..00000000
--- a/katoptron/src/BelosXpetraStatusTestGenResSubNorm_MP_Vector.hpp
+++ /dev/null
@@ -1,1537 +0,0 @@
-// @HEADER
-//
-// ***********************************************************************
-//
-//        MueLu: A package for multigrid based preconditioning
-//                  Copyright 2012 Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact
-//                    Jonathan Hu       (jhu@sandia.gov)
-//                    Andrey Prokopenko (aprokop@sandia.gov)
-//                    Ray Tuminaro      (rstumin@sandia.gov)
-//                    Tobias Wiesner    (tawiesn@sandia.gov)
-//
-// ***********************************************************************
-//
-// @HEADER
-#ifndef BELOS_XPETRA_STATUS_TEST_GEN_RES_SUB_NORM_MP_VECTORHPP
-#define BELOS_XPETRA_STATUS_TEST_GEN_RES_SUB_NORM_MP_VECTORHPP
-
-#include "Stokhos_config.h"
-
-#ifdef HAVE_STOKHOS_ENSEMBLE_REDUCT
-
-#include "Xpetra_ConfigDefs.hpp"
-
-#include "Xpetra_BlockedCrsMatrix.hpp"
-
-#include "MueLu_Exceptions.hpp"
-
-#include <BelosConfigDefs.hpp>
-#include <BelosTypes.hpp>
-#include <BelosOperatorT.hpp>
-#include <BelosXpetraAdapterOperator.hpp>
-#include <BelosStatusTestGenResSubNorm.hpp>
-#include <BelosXpetraStatusTestGenResSubNorm.hpp>
-#include "EnsembleTraits.h"
-
-namespace Belos
-{
-
-/*! \brief Template specialization of Belos::StatusTestGenResSubNorm class using the
- * Xpetra::MultiVector and Belos::OperatorT MueLu adapter class.
- */
-template <class Storage, class LocalOrdinal, class GlobalOrdinal, class Node>
-class StatusTestGenResSubNorm<typename Teuchos::ScalarTraits<Sacado::MP::Vector<Storage>>::magnitudeType, Xpetra::MultiVector<Sacado::MP::Vector<Storage>, LocalOrdinal, GlobalOrdinal, Node>, Belos::OperatorT<Xpetra::MultiVector<Sacado::MP::Vector<Storage>, LocalOrdinal, GlobalOrdinal, Node>>>
-    : public StatusTestResNorm<typename Teuchos::ScalarTraits<Sacado::MP::Vector<Storage>>::magnitudeType, Xpetra::MultiVector<Sacado::MP::Vector<Storage>, LocalOrdinal, GlobalOrdinal, Node>, Belos::OperatorT<Xpetra::MultiVector<Sacado::MP::Vector<Storage>, LocalOrdinal, GlobalOrdinal, Node>>>
-{
-
-public:
-    // Convenience typedefs
-    typedef Sacado::MP::Vector<Storage> ScalarType;
-
-    typedef Xpetra::MultiVector<ScalarType, LocalOrdinal, GlobalOrdinal, Node> MV;
-    typedef Xpetra::BlockedCrsMatrix<ScalarType, LocalOrdinal, GlobalOrdinal, Node> BCRS;
-    typedef Xpetra::MapExtractor<ScalarType, LocalOrdinal, GlobalOrdinal, Node> ME;
-    typedef Belos::OperatorT<MV> OP;
-
-    typedef Teuchos::ScalarTraits<ScalarType> SCT;
-    typedef typename SCT::magnitudeType MagnitudeType;
-    typedef MultiVecTraits<ScalarType, MV> MVT;
-    typedef OperatorTraits<ScalarType, MV, OP> OT;
-
-    //! @name Constructors/destructors.
-    //@{
-    //! Constructor
-    /*! The constructor takes a single argument specifying the tolerance (\f$\tau\f$).
-    If none of the form definition methods are called, we use \f$\|r\|/\|r^{(0)}\| \le \tau\f$
-    as the stopping criterion, where \f$\|r\|\f$ always uses the true residual and
-    \f$\|r^{(0)}\|\f$ is the corresponding norm of the initial residual.
-    The used norm can be specified by defineResForm and defineScaleForm.
-
-    @param Tolerance: Specifies tolerance \f$\tau\f
-    @param subIdx: index of block row in the n x n block system we want to check the residual of
-    @param quorum: Number of residual (sub-)vectors which are needed to be within the tolerance before check is considered to be passed
-    @param showMaxResNormOnly: for output only
-
-  */
-    StatusTestGenResSubNorm(MagnitudeType Tolerance, size_t subIdx, int quorum = -1, bool showMaxResNormOnly = false)
-        : tolerance_(Tolerance),
-          subIdx_(subIdx),
-          quorum_(quorum),
-          showMaxResNormOnly_(showMaxResNormOnly),
-          resnormtype_(TwoNorm),
-          scaletype_(NormOfInitRes),
-          scalenormtype_(TwoNorm),
-          scalevalue_(Teuchos::ScalarTraits<MagnitudeType>::one()),
-          status_(Undefined),
-          curBlksz_(0),
-          curNumRHS_(0),
-          curLSNum_(0),
-          numrhs_(0),
-          firstcallCheckStatus_(true),
-          firstcallDefineResForm_(true),
-          firstcallDefineScaleForm_(true),
-          mapExtractor_(Teuchos::null),
-          ensemble_iterations(EnsembleTraits<MagnitudeType>::size, 0) {}
-
-    //! Destructor
-    virtual ~StatusTestGenResSubNorm(){};
-    //@}
-
-    //! @name Form and parameter definition methods.
-    //@{
-
-    //! Define form of the residual, its norm and optional weighting std::vector.
-    /*! This method defines the form of \f$\|r\|\f$.  We specify:
-    <ul>
-    <li> The norm to be used on the residual (this may be different than the norm used in
-    DefineScaleForm()).
-    </ul>
-  */
-    int defineResForm(NormType TypeOfNorm)
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(firstcallDefineResForm_ == false, StatusTestError,
-                                   "StatusTestGenResSubNorm::defineResForm(): The residual form has already been defined.");
-        firstcallDefineResForm_ = false;
-
-        resnormtype_ = TypeOfNorm;
-
-        return (0);
-    }
-
-    //! Define form of the scaling, its norm, its optional weighting std::vector, or, alternatively, define an explicit value.
-    /*! This method defines the form of how the residual is scaled (if at all).  It operates in two modes:
-    <ol>
-    <li> User-provided scaling value:
-    <ul>
-    <li> Set argument TypeOfScaling to UserProvided.
-    <li> Set ScaleValue to a non-zero value that the residual norm will be divided by.
-    <li> TypeOfNorm argument will be ignored.
-    <li> Sample use:  Define ScaleValue = \f$\|A\|_{\infty}\f$ where \f$ A \f$ is the matrix
-    of the linear problem.
-    </ul>
-
-    <li> Use a supported Scaling Form:
-    <ul>
-    <li> Define TypeOfScaling to be the norm of the right hand side, the initial residual std::vector,
-    or to none.
-    <li> Define norm to be used on the scaling std::vector (this may be different than the norm used
-    in DefineResForm()).
-    </ul>
-    </ol>
-  */
-    int defineScaleForm(ScaleType TypeOfScaling, NormType TypeOfNorm, MagnitudeType ScaleValue = Teuchos::ScalarTraits<MagnitudeType>::one())
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(firstcallDefineScaleForm_ == false, StatusTestError,
-                                   "StatusTestGenResSubNorm::defineScaleForm(): The scaling type has already been defined.");
-        firstcallDefineScaleForm_ = false;
-
-        scaletype_ = TypeOfScaling;
-        scalenormtype_ = TypeOfNorm;
-        scalevalue_ = ScaleValue;
-
-        return (0);
-    }
-
-    //! Set the value of the tolerance
-    /*! We allow the tolerance to be reset for cases where, in the process of testing the residual,
-    we find that the initial tolerance was too tight or too lax.
-  */
-    int setTolerance(MagnitudeType tolerance)
-    {
-        tolerance_ = tolerance;
-        return (0);
-    }
-
-    //! Set the block index of which we want to check the norm of the sub-residuals
-    /*! It does not really make sense to change/reset the index during the solution process
-   */
-    int setSubIdx(size_t subIdx)
-    {
-        subIdx_ = subIdx;
-        return (0);
-    }
-
-    //! Sets the number of residuals that must pass the convergence test before Passed is returned.
-    //! \note If \c quorum=-1 then all residuals must pass the convergence test before Passed is returned.
-    int setQuorum(int quorum)
-    {
-        quorum_ = quorum;
-        return (0);
-    }
-
-    //! Set whether the only maximum residual norm is displayed when the print() method is called
-    int setShowMaxResNormOnly(bool showMaxResNormOnly)
-    {
-        showMaxResNormOnly_ = showMaxResNormOnly;
-        return (0);
-    }
-
-    //@}
-
-    //! @name Status methods
-    //@{
-    //! Check convergence status: Passed, Failed, or Undefined.
-    /*! This method checks to see if the convergence criteria are met.
-    Depending on how the residual test is constructed this method will return
-    the appropriate status type.
-
-    \return StatusType: Passed, Failed, or Undefined.
-  */
-    StatusType checkStatus(Iteration<MagnitudeType, MV, OP> *iSolver)
-    {
-        typedef EnsembleTraits<MagnitudeType> ET;
-        const int ensemble_size = ET::size;
-        MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
-        const LinearProblem<MagnitudeType, MV, OP> &lp = iSolver->getProblem();
-        // Compute scaling term (done once for each block that's being solved)
-        if (firstcallCheckStatus_)
-        {
-            StatusType status = firstCallCheckStatusSetup(iSolver);
-            if (status == Failed)
-            {
-                status_ = Failed;
-                return (status_);
-            }
-        }
-
-        //
-        // This section computes the norm of the residual std::vector
-        //
-        if (curLSNum_ != lp.getLSNumber())
-        {
-            //
-            // We have moved on to the next rhs block
-            //
-            curLSNum_ = lp.getLSNumber();
-            curLSIdx_ = lp.getLSIndex();
-            curBlksz_ = (int)curLSIdx_.size();
-            int validLS = 0;
-            for (int i = 0; i < curBlksz_; ++i)
-            {
-                if (curLSIdx_[i] > -1 && curLSIdx_[i] < numrhs_)
-                    validLS++;
-            }
-            curNumRHS_ = validLS;
-            curSoln_ = Teuchos::null;
-            //
-        }
-        else
-        {
-            //
-            // We are in the same rhs block, return if we are converged
-            //
-            if (status_ == Passed)
-            {
-                return status_;
-            }
-        }
-
-        //
-        // Request the true residual for this block of right-hand sides.
-        //
-        Teuchos::RCP<MV> cur_update = iSolver->getCurrentUpdate();
-        curSoln_ = lp.updateSolution(cur_update);
-        Teuchos::RCP<MV> cur_res = MVT::Clone(*curSoln_, MVT::GetNumberVecs(*curSoln_));
-        lp.computeCurrResVec(&*cur_res, &*curSoln_);
-        std::vector<MagnitudeType> tmp_resvector(MVT::GetNumberVecs(*cur_res));
-        MvSubNorm(*cur_res, subIdx_, tmp_resvector, resnormtype_);
-
-        typename std::vector<int>::iterator p = curLSIdx_.begin();
-        for (int i = 0; p < curLSIdx_.end(); ++p, ++i)
-        {
-            // Check if this index is valid
-            if (*p != -1)
-                resvector_[*p] = tmp_resvector[i];
-        }
-
-        //
-        // Compute the new linear system residuals for testing.
-        // (if any of them don't meet the tolerance or are NaN, then we exit with that status)
-        //
-        if (scalevector_.size() > 0)
-        {
-            typename std::vector<int>::iterator pp = curLSIdx_.begin();
-            for (; pp < curLSIdx_.end(); ++pp)
-            {
-                // Check if this index is valid
-                if (*pp != -1)
-                {
-                    // Scale the std::vector accordingly
-                    if (scalevector_[*pp] != zero)
-                    {
-                        // Don't intentionally divide by zero.
-                        testvector_[*pp] = resvector_[*pp] / scalevector_[*pp] / scalevalue_;
-                    }
-                    else
-                    {
-                        testvector_[*pp] = resvector_[*pp] / scalevalue_;
-                    }
-                }
-            }
-        }
-        else
-        {
-            typename std::vector<int>::iterator pp = curLSIdx_.begin();
-            for (; pp < curLSIdx_.end(); ++pp)
-            {
-                // Check if this index is valid
-                if (*pp != -1)
-                    testvector_[*pp] = resvector_[*pp] / scalevalue_;
-            }
-        }
-        // Check status of new linear system residuals and see if we have the quorum.
-        int have = 0;
-        ind_.resize(curLSIdx_.size());
-        typename std::vector<int>::iterator p2 = curLSIdx_.begin();
-        for (; p2 < curLSIdx_.end(); ++p2)
-        {
-            // Check if this index is valid
-            if (*p2 != -1)
-            {
-                // Check if any of the residuals are larger than the tolerance.
-                bool all_converged = true;
-                for (int ii = 0; ii < ensemble_size; ++ii)
-                {
-                    if (ET::coeff(testvector_[*p2], ii) > ET::coeff(tolerance_, ii))
-                    {
-                        ++ensemble_iterations[ii];
-                        all_converged = false;
-                    }
-                    else if (!(ET::coeff(testvector_[*p2], ii) <= ET::coeff(tolerance_, ii)))
-                    {
-                        // Throw an std::exception if the current residual norm is
-                        // NaN.  We know that it's NaN because it is not less than,
-                        // equal to, or greater than the current tolerance.  This is
-                        // only possible if either the residual norm or the current
-                        // tolerance is NaN; we assume the former.  We also mark the
-                        // test as failed, in case you want to catch the exception.
-                        status_ = Failed;
-                        TEUCHOS_TEST_FOR_EXCEPTION(true, StatusTestError, "StatusTestGenResSubNorm::checkStatus(): NaN has been detected.");
-                    }
-                }
-                if (all_converged)
-                {
-                    ind_[have] = *p2;
-                    have++;
-                }
-            }
-        }
-        ind_.resize(have);
-        int need = (quorum_ == -1) ? curNumRHS_ : quorum_;
-        status_ = (have >= need) ? Passed : Failed;
-        // Return the current status
-        return status_;
-    }
-
-    //! Return the result of the most recent CheckStatus call.
-    StatusType getStatus() const { return (status_); };
-    //@}
-
-    //! @name Reset methods
-    //@{
-
-    //! Resets the internal configuration to the initial state.
-    void reset()
-    {
-        status_ = Undefined;
-        curBlksz_ = 0;
-        curLSNum_ = 0;
-        curLSIdx_.resize(0);
-        numrhs_ = 0;
-        ind_.resize(0);
-        firstcallCheckStatus_ = true;
-        curSoln_ = Teuchos::null;
-    }
-
-    //@}
-
-    //! @name Print methods
-    //@{
-
-    //! Output formatted description of stopping test to output stream.
-    void print(std::ostream &os, int indent = 0) const
-    {
-        os.setf(std::ios_base::scientific);
-        for (int j = 0; j < indent; j++)
-            os << ' ';
-        printStatus(os, status_);
-        os << resFormStr();
-        if (status_ == Undefined)
-            os << ", tol = " << tolerance_ << std::endl;
-        else
-        {
-            os << std::endl;
-            if (showMaxResNormOnly_ && curBlksz_ > 1)
-            {
-                const MagnitudeType maxRelRes = *std::max_element(
-                    testvector_.begin() + curLSIdx_[0], testvector_.begin() + curLSIdx_[curBlksz_ - 1]);
-                for (int j = 0; j < indent + 13; j++)
-                    os << ' ';
-                os << "max{residual[" << curLSIdx_[0] << "..." << curLSIdx_[curBlksz_ - 1] << "]} = " << maxRelRes
-                   << (maxRelRes <= tolerance_ ? " <= " : " > ") << tolerance_ << std::endl;
-            }
-            else
-            {
-                for (int i = 0; i < numrhs_; i++)
-                {
-                    for (int j = 0; j < indent + 13; j++)
-                        os << ' ';
-                    os << "residual [ " << i << " ] = " << testvector_[i];
-                    os << ((testvector_[i] < tolerance_) ? " < " : (testvector_[i] == tolerance_) ? " == " : (testvector_[i] > tolerance_) ? " > " : " ") << tolerance_ << std::endl;
-                }
-            }
-        }
-        os << std::endl;
-    }
-
-    //! Print message for each status specific to this stopping test.
-    void printStatus(std::ostream &os, StatusType type) const
-    {
-        os << std::left << std::setw(13) << std::setfill('.');
-        switch (type)
-        {
-        case Passed:
-            os << "Converged";
-            break;
-        case Failed:
-            os << "Unconverged";
-            break;
-        case Undefined:
-        default:
-            os << "**";
-            break;
-        }
-        os << std::left << std::setfill(' ');
-        return;
-    }
-    //@}
-
-    //! @name Methods to access data members.
-    //@{
-
-    //! Returns the current solution estimate that was computed for the most recent residual test.
-    Teuchos::RCP<MV> getSolution() { return curSoln_; }
-
-    //! Returns the number of residuals that must pass the convergence test before Passed is returned.
-    //! \note If \c quorum=-1 then all residuals must pass the convergence test before Passed is returned.
-    int getQuorum() const { return quorum_; }
-
-    //! Returns the index of the block row the norms are calculated for
-    size_t getSubIdx() const { return subIdx_; }
-
-    //! Returns whether the only maximum residual norm is displayed when the print() method is called
-    bool getShowMaxResNormOnly() { return showMaxResNormOnly_; }
-
-    //! Returns the std::vector containing the indices of the residuals that passed the test.
-    std::vector<int> convIndices() { return ind_; }
-
-    //! Returns the value of the tolerance, \f$ \tau \f$, set in the constructor.
-    MagnitudeType getTolerance() const { return (tolerance_); };
-
-    //! Returns the test value, \f$ \frac{\|r\|}{\sigma} \f$, computed in most recent call to CheckStatus.
-    const std::vector<MagnitudeType> *getTestValue() const { return (&testvector_); };
-
-    //! Returns the residual norm value, \f$ \|r\| \f$, computed in most recent call to CheckStatus.
-    const std::vector<MagnitudeType> *getResNormValue() const { return (&resvector_); };
-
-    //! Returns the scaled norm value, \f$ \sigma \f$.
-    const std::vector<MagnitudeType> *getScaledNormValue() const { return (&scalevector_); };
-
-    //! Returns a boolean indicating a loss of accuracy has been detected in computing the residual.
-    //! \note This status test does not check for loss of accuracy, so this method will always return false.
-    bool getLOADetected() const { return false; }
-
-    const std::vector<int> getEnsembleIterations() const { return ensemble_iterations; }
-
-    //@}
-
-    /** @name Misc. */
-    //@{
-
-    /** \brief Call to setup initial scaling std::vector.
-   *
-   * After this function is called <tt>getScaledNormValue()</tt> can be called
-   * to get the scaling std::vector.
-   */
-    StatusType firstCallCheckStatusSetup(Iteration<MagnitudeType, MV, OP> *iSolver)
-    {
-        int i;
-        MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
-        MagnitudeType one = Teuchos::ScalarTraits<MagnitudeType>::one();
-        const LinearProblem<MagnitudeType, MV, OP> &lp = iSolver->getProblem();
-        // Compute scaling term (done once for each block that's being solved)
-        if (firstcallCheckStatus_)
-        {
-            //
-            // Get some current solver information.
-            //
-            firstcallCheckStatus_ = false;
-
-            // try to access the underlying blocked operator
-            Teuchos::RCP<const OP> Op = lp.getOperator();
-            Teuchos::RCP<const Belos::XpetraOp<ScalarType, LocalOrdinal, GlobalOrdinal, Node>> xOp =
-                Teuchos::rcp_dynamic_cast<const Belos::XpetraOp<ScalarType, LocalOrdinal, GlobalOrdinal, Node>>(Op);
-            TEUCHOS_TEST_FOR_EXCEPTION(xOp.is_null(), MueLu::Exceptions::BadCast, "Bad cast from \'const Belos::OperatorT\' to \'const Belos::XpetraOp\'. The origin type is " << typeid(const OP).name() << ".");
-            Teuchos::RCP<const Xpetra::Operator<ScalarType, LocalOrdinal, GlobalOrdinal, Node>> xIntOp =
-                xOp->getOperator();
-            TEUCHOS_TEST_FOR_EXCEPTION(xIntOp.is_null(), MueLu::Exceptions::BadCast, "Cannot access Xpetra::Operator stored in Belos::XpetraOperator.");
-            Teuchos::RCP<const Xpetra::Matrix<ScalarType, LocalOrdinal, GlobalOrdinal, Node>> xMat =
-                Teuchos::rcp_dynamic_cast<const Xpetra::Matrix<ScalarType, LocalOrdinal, GlobalOrdinal, Node>>(xIntOp);
-            TEUCHOS_TEST_FOR_EXCEPTION(xMat.is_null(), MueLu::Exceptions::RuntimeError, "Cannot access Xpetra::Matrix stored in Belos::XpetraOp. Error.");
-            Teuchos::RCP<const Xpetra::BlockedCrsMatrix<ScalarType, LocalOrdinal, GlobalOrdinal, Node>> bMat = Teuchos::rcp_dynamic_cast<const Xpetra::BlockedCrsMatrix<ScalarType, LocalOrdinal, GlobalOrdinal, Node>>(xMat);
-            TEUCHOS_TEST_FOR_EXCEPTION(bMat.is_null(), MueLu::Exceptions::BadCast, "Bad cast from \'const Xpetra::Matrix\' to \'const Xpetra::BlockedCrsMatrix\'. The origin type is " << typeid(const Xpetra::Matrix<ScalarType, LocalOrdinal, GlobalOrdinal, Node>).name() << ". Note: you need a BlockedCrsMatrix object for the StatusTestGenResSubNorm to work!");
-            mapExtractor_ = bMat->getRangeMapExtractor();
-            TEUCHOS_TEST_FOR_EXCEPTION(mapExtractor_.is_null(), MueLu::Exceptions::RuntimeError, "Could not extract map extractor from BlockedCrsMatrix. Error.");
-            TEUCHOS_TEST_FOR_EXCEPTION(mapExtractor_->NumMaps() <= subIdx_, MueLu::Exceptions::RuntimeError, "The multivector is only split into " << mapExtractor_->NumMaps() << " sub parts. Cannot access sub-block " << subIdx_ << ".");
-
-            // calculate initial norms
-            if (scaletype_ == NormOfRHS)
-            {
-                Teuchos::RCP<const MV> rhs = lp.getRHS();
-                numrhs_ = MVT::GetNumberVecs(*rhs);
-                scalevector_.resize(numrhs_);
-                MvSubNorm(*rhs, subIdx_, scalevector_, scalenormtype_);
-            }
-            else if (scaletype_ == NormOfInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MvSubNorm(*init_res, subIdx_, scalevector_, scalenormtype_);
-            }
-            else if (scaletype_ == NormOfPrecInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MvSubNorm(*init_res, subIdx_, scalevector_, scalenormtype_);
-            }
-            else if (scaletype_ == NormOfFullInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                scalevalue_ = one;
-            }
-            else if (scaletype_ == NormOfFullPrecInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                scalevalue_ = one;
-            }
-            else if (scaletype_ == NormOfFullScaledInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                MvScalingRatio(*init_res, subIdx_, scalevalue_);
-            }
-            else if (scaletype_ == NormOfFullScaledPrecInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                MvScalingRatio(*init_res, subIdx_, scalevalue_);
-            }
-            else
-            {
-                numrhs_ = MVT::GetNumberVecs(*(lp.getRHS()));
-            }
-
-            resvector_.resize(numrhs_);
-            testvector_.resize(numrhs_);
-
-            curLSNum_ = lp.getLSNumber();
-            curLSIdx_ = lp.getLSIndex();
-            curBlksz_ = (int)curLSIdx_.size();
-            int validLS = 0;
-            for (i = 0; i < curBlksz_; ++i)
-            {
-                if (curLSIdx_[i] > -1 && curLSIdx_[i] < numrhs_)
-                    validLS++;
-            }
-            curNumRHS_ = validLS;
-            //
-            // Initialize the testvector.
-            for (i = 0; i < numrhs_; i++)
-            {
-                testvector_[i] = one;
-            }
-
-            // Return an error if the scaling is zero.
-            if (scalevalue_ == zero)
-            {
-                return Failed;
-            }
-        }
-        return Undefined;
-    }
-    //@}
-
-    /** \name Overridden from Teuchos::Describable */
-    //@{
-
-    /** \brief Method to return description of the maximum iteration status test  */
-    std::string description() const
-    {
-        std::ostringstream oss;
-        oss << "Belos::StatusTestGenResSubNorm<>: " << resFormStr();
-        oss << ", tol = " << tolerance_;
-        return oss.str();
-    }
-    //@}
-
-protected:
-private:
-    //! @name Private methods.
-    //@{
-    /** \brief Description of current residual form */
-    std::string resFormStr() const
-    {
-        std::ostringstream oss;
-        oss << "(";
-        oss << ((resnormtype_ == OneNorm) ? "1-Norm" : (resnormtype_ == TwoNorm) ? "2-Norm" : "Inf-Norm");
-        oss << " Exp";
-        oss << " Res Vec [" << subIdx_ << "]) ";
-
-        // If there is no residual scaling, return current string.
-        if (scaletype_ != None)
-        {
-            // Insert division sign.
-            oss << "/ ";
-
-            // Determine output string for scaling, if there is any.
-            if (scaletype_ == UserProvided)
-                oss << " (User Scale)";
-            else
-            {
-                oss << "(";
-                oss << ((scalenormtype_ == OneNorm) ? "1-Norm" : (resnormtype_ == TwoNorm) ? "2-Norm" : "Inf-Norm");
-                if (scaletype_ == NormOfInitRes)
-                    oss << " Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfPrecInitRes)
-                    oss << " Prec Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullInitRes)
-                    oss << " Full Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullPrecInitRes)
-                    oss << " Full Prec Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullScaledInitRes)
-                    oss << " scaled Full Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullScaledPrecInitRes)
-                    oss << " scaled Full Prec Res0 [" << subIdx_ << "]";
-                else
-                    oss << " RHS [" << subIdx_ << "]";
-                oss << ")";
-            }
-        }
-
-        // TODO add a tagging name
-
-        return oss.str();
-    }
-
-    //@}
-
-    //! @name Private helper functions
-    //@{
-
-    // calculate norm of partial multivector
-    void MvSubNorm(const MV &mv, size_t block, std::vector<MagnitudeType> &normVec, NormType type = TwoNorm)
-    {
-
-        Teuchos::RCP<const MV> input = Teuchos::rcpFromRef(mv);
-
-        Teuchos::RCP<const MV> SubVec = mapExtractor_->ExtractVector(input, block);
-        typedef MultiVecTraits<ScalarType, MV> MVT;
-        MVT::MvNorm(*SubVec, normVec, type);
-    }
-
-    // calculate ration of sub-vector length to full vector length (for scalevalue_)
-    void MvScalingRatio(const MV &mv, size_t block, MagnitudeType &lengthRatio)
-    {
-        Teuchos::RCP<const MV> input = Teuchos::rcpFromRef(mv);
-
-        Teuchos::RCP<const MV> SubVec = mapExtractor_->ExtractVector(input, block);
-
-        lengthRatio = Teuchos::as<MagnitudeType>(SubVec->getGlobalLength()) / Teuchos::as<MagnitudeType>(input->getGlobalLength());
-    }
-    //@}
-
-    //! @name Private data members.
-    //@{
-
-    //! Tolerance used to determine convergence
-    MagnitudeType tolerance_;
-
-    //! Index of block row in n x n block system of which we want to check the sub-residuals
-    size_t subIdx_;
-
-    //! Number of residuals that must pass the convergence test before Passed is returned.
-    int quorum_;
-
-    //! Determines if the entries for all of the residuals are shown or just the max.
-    bool showMaxResNormOnly_;
-
-    //! Type of norm to use on residual (OneNorm, TwoNorm, or InfNorm).
-    NormType resnormtype_;
-
-    //! Type of scaling to use (Norm of RHS, Norm of Initial Residual, None or User provided)
-    ScaleType scaletype_;
-
-    //! Type of norm to use on the scaling (OneNorm, TwoNorm, or InfNorm)
-    NormType scalenormtype_;
-
-    //! Scaling value.
-    MagnitudeType scalevalue_;
-
-    //! Scaling std::vector.
-    std::vector<MagnitudeType> scalevector_;
-
-    //! Residual norm std::vector.
-    std::vector<MagnitudeType> resvector_;
-
-    //! Test std::vector = resvector_ / scalevector_
-    std::vector<MagnitudeType> testvector_;
-
-    //! Vector containing the indices for the vectors that passed the test.
-    std::vector<int> ind_;
-
-    //! Most recent solution vector used by this status test.
-    Teuchos::RCP<MV> curSoln_;
-
-    //! Status
-    StatusType status_;
-
-    //! The current blocksize of the linear system being solved.
-    int curBlksz_;
-
-    //! The current number of right-hand sides being solved for.
-    int curNumRHS_;
-
-    //! The indices of the current number of right-hand sides being solved for.
-    std::vector<int> curLSIdx_;
-
-    //! The current number of linear systems that have been loaded into the linear problem.
-    int curLSNum_;
-
-    //! The total number of right-hand sides being solved for.
-    int numrhs_;
-
-    //! Is this the first time CheckStatus is called?
-    bool firstcallCheckStatus_;
-
-    //! Is this the first time DefineResForm is called?
-    bool firstcallDefineResForm_;
-
-    //! Is this the first time DefineScaleForm is called?
-    bool firstcallDefineScaleForm_;
-
-    //! MapExtractor for range space
-    Teuchos::RCP<const ME> mapExtractor_;
-
-    //! The number of iterations at which point each ensemble component converges
-    std::vector<int> ensemble_iterations;
-
-    //@}
-};
-
-} // namespace Belos
-
-#else
-
-#include "Xpetra_ConfigDefs.hpp"
-
-#include "Xpetra_BlockedCrsMatrix.hpp"
-
-#include "MueLu_Exceptions.hpp"
-
-#include <BelosConfigDefs.hpp>
-#include <BelosTypes.hpp>
-#include <BelosOperatorT.hpp>
-#include <BelosXpetraAdapterOperator.hpp>
-#include <BelosStatusTestGenResSubNorm.hpp>
-#include "EnsembleTraits.h"
-
-namespace Belos
-{
-
-/*! \brief Template specialization of Belos::StatusTestGenResSubNorm class using the
- * Xpetra::MultiVector and Belos::OperatorT MueLu adapter class.
- */
-template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
-class StatusTestGenResSubNorm<Scalar, Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>, Belos::OperatorT<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>>
-    : public StatusTestResNorm<Scalar, Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>, Belos::OperatorT<Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node>>>
-{
-
-public:
-    // Convenience typedefs
-    typedef Xpetra::MultiVector<Scalar, LocalOrdinal, GlobalOrdinal, Node> MV;
-    typedef Xpetra::BlockedCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node> BCRS;
-    typedef Xpetra::MapExtractor<Scalar, LocalOrdinal, GlobalOrdinal, Node> ME;
-    typedef Belos::OperatorT<MV> OP;
-
-    typedef Teuchos::ScalarTraits<Scalar> SCT;
-    typedef typename SCT::magnitudeType MagnitudeType;
-    typedef MultiVecTraits<Scalar, MV> MVT;
-    typedef OperatorTraits<Scalar, MV, OP> OT;
-
-    //! @name Constructors/destructors.
-    //@{
-    //! Constructor
-    /*! The constructor takes a single argument specifying the tolerance (\f$\tau\f$).
-    If none of the form definition methods are called, we use \f$\|r\|/\|r^{(0)}\| \le \tau\f$
-    as the stopping criterion, where \f$\|r\|\f$ always uses the true residual and
-    \f$\|r^{(0)}\|\f$ is the corresponding norm of the initial residual.
-    The used norm can be specified by defineResForm and defineScaleForm.
-    @param Tolerance: Specifies tolerance \f$\tau\f
-    @param subIdx: index of block row in the n x n block system we want to check the residual of
-    @param quorum: Number of residual (sub-)vectors which are needed to be within the tolerance before check is considered to be passed
-    @param showMaxResNormOnly: for output only
-  */
-    StatusTestGenResSubNorm(MagnitudeType Tolerance, size_t subIdx, int quorum = -1, bool showMaxResNormOnly = false)
-        : tolerance_(Tolerance),
-          subIdx_(subIdx),
-          quorum_(quorum),
-          showMaxResNormOnly_(showMaxResNormOnly),
-          resnormtype_(TwoNorm),
-          scaletype_(NormOfInitRes),
-          scalenormtype_(TwoNorm),
-          scalevalue_(Teuchos::ScalarTraits<MagnitudeType>::one()),
-          status_(Undefined),
-          curBlksz_(0),
-          curNumRHS_(0),
-          curLSNum_(0),
-          numrhs_(0),
-          firstcallCheckStatus_(true),
-          firstcallDefineResForm_(true),
-          firstcallDefineScaleForm_(true),
-          mapExtractor_(Teuchos::null),
-          ensemble_iterations(EnsembleTraits<Scalar>::size, 0) {}
-
-    //! Destructor
-    virtual ~StatusTestGenResSubNorm(){};
-    //@}
-
-    //! @name Form and parameter definition methods.
-    //@{
-
-    //! Define form of the residual, its norm and optional weighting std::vector.
-    /*! This method defines the form of \f$\|r\|\f$.  We specify:
-    <ul>
-    <li> The norm to be used on the residual (this may be different than the norm used in
-    DefineScaleForm()).
-    </ul>
-  */
-    int defineResForm(NormType TypeOfNorm)
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(firstcallDefineResForm_ == false, StatusTestError,
-                                   "StatusTestGenResSubNorm::defineResForm(): The residual form has already been defined.");
-        firstcallDefineResForm_ = false;
-
-        resnormtype_ = TypeOfNorm;
-
-        return (0);
-    }
-
-    //! Define form of the scaling, its norm, its optional weighting std::vector, or, alternatively, define an explicit value.
-    /*! This method defines the form of how the residual is scaled (if at all).  It operates in two modes:
-    <ol>
-    <li> User-provided scaling value:
-    <ul>
-    <li> Set argument TypeOfScaling to UserProvided.
-    <li> Set ScaleValue to a non-zero value that the residual norm will be divided by.
-    <li> TypeOfNorm argument will be ignored.
-    <li> Sample use:  Define ScaleValue = \f$\|A\|_{\infty}\f$ where \f$ A \f$ is the matrix
-    of the linear problem.
-    </ul>
-    <li> Use a supported Scaling Form:
-    <ul>
-    <li> Define TypeOfScaling to be the norm of the right hand side, the initial residual std::vector,
-    or to none.
-    <li> Define norm to be used on the scaling std::vector (this may be different than the norm used
-    in DefineResForm()).
-    </ul>
-    </ol>
-  */
-    int defineScaleForm(ScaleType TypeOfScaling, NormType TypeOfNorm, MagnitudeType ScaleValue = Teuchos::ScalarTraits<MagnitudeType>::one())
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(firstcallDefineScaleForm_ == false, StatusTestError,
-                                   "StatusTestGenResSubNorm::defineScaleForm(): The scaling type has already been defined.");
-        firstcallDefineScaleForm_ = false;
-
-        scaletype_ = TypeOfScaling;
-        scalenormtype_ = TypeOfNorm;
-        scalevalue_ = ScaleValue;
-
-        return (0);
-    }
-
-    //! Set the value of the tolerance
-    /*! We allow the tolerance to be reset for cases where, in the process of testing the residual,
-    we find that the initial tolerance was too tight or too lax.
-  */
-    int setTolerance(MagnitudeType tolerance)
-    {
-        tolerance_ = tolerance;
-        return (0);
-    }
-
-    //! Set the block index of which we want to check the norm of the sub-residuals
-    /*! It does not really make sense to change/reset the index during the solution process
-   */
-    int setSubIdx(size_t subIdx)
-    {
-        subIdx_ = subIdx;
-        return (0);
-    }
-
-    //! Sets the number of residuals that must pass the convergence test before Passed is returned.
-    //! \note If \c quorum=-1 then all residuals must pass the convergence test before Passed is returned.
-    int setQuorum(int quorum)
-    {
-        quorum_ = quorum;
-        return (0);
-    }
-
-    //! Set whether the only maximum residual norm is displayed when the print() method is called
-    int setShowMaxResNormOnly(bool showMaxResNormOnly)
-    {
-        showMaxResNormOnly_ = showMaxResNormOnly;
-        return (0);
-    }
-
-    //@}
-
-    //! @name Status methods
-    //@{
-    //! Check convergence status: Passed, Failed, or Undefined.
-    /*! This method checks to see if the convergence criteria are met.
-    Depending on how the residual test is constructed this method will return
-    the appropriate status type.
-    \return StatusType: Passed, Failed, or Undefined.
-  */
-    StatusType checkStatus(Iteration<Scalar, MV, OP> *iSolver)
-    {
-        typedef EnsembleTraits<Scalar> ET;
-        const int ensemble_size = ET::size;
-        MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
-        const LinearProblem<Scalar, MV, OP> &lp = iSolver->getProblem();
-        // Compute scaling term (done once for each block that's being solved)
-        if (firstcallCheckStatus_)
-        {
-            StatusType status = firstCallCheckStatusSetup(iSolver);
-            if (status == Failed)
-            {
-                status_ = Failed;
-                return (status_);
-            }
-        }
-
-        //
-        // This section computes the norm of the residual std::vector
-        //
-        if (curLSNum_ != lp.getLSNumber())
-        {
-            //
-            // We have moved on to the next rhs block
-            //
-            curLSNum_ = lp.getLSNumber();
-            curLSIdx_ = lp.getLSIndex();
-            curBlksz_ = (int)curLSIdx_.size();
-            int validLS = 0;
-            for (int i = 0; i < curBlksz_; ++i)
-            {
-                if (curLSIdx_[i] > -1 && curLSIdx_[i] < numrhs_)
-                    validLS++;
-            }
-            curNumRHS_ = validLS;
-            curSoln_ = Teuchos::null;
-            //
-        }
-        else
-        {
-            //
-            // We are in the same rhs block, return if we are converged
-            //
-            if (status_ == Passed)
-            {
-                return status_;
-            }
-        }
-
-        //
-        // Request the true residual for this block of right-hand sides.
-        //
-        Teuchos::RCP<MV> cur_update = iSolver->getCurrentUpdate();
-        curSoln_ = lp.updateSolution(cur_update);
-        Teuchos::RCP<MV> cur_res = MVT::Clone(*curSoln_, MVT::GetNumberVecs(*curSoln_));
-        lp.computeCurrResVec(&*cur_res, &*curSoln_);
-        std::vector<MagnitudeType> tmp_resvector(MVT::GetNumberVecs(*cur_res));
-        MvSubNorm(*cur_res, subIdx_, tmp_resvector, resnormtype_);
-
-        typename std::vector<int>::iterator p = curLSIdx_.begin();
-        for (int i = 0; p < curLSIdx_.end(); ++p, ++i)
-        {
-            // Check if this index is valid
-            if (*p != -1)
-                resvector_[*p] = tmp_resvector[i];
-        }
-
-        //
-        // Compute the new linear system residuals for testing.
-        // (if any of them don't meet the tolerance or are NaN, then we exit with that status)
-        //
-        if (scalevector_.size() > 0)
-        {
-            typename std::vector<int>::iterator pp = curLSIdx_.begin();
-            for (; pp < curLSIdx_.end(); ++pp)
-            {
-                // Check if this index is valid
-                if (*pp != -1)
-                {
-                    // Scale the std::vector accordingly
-                    if (scalevector_[*pp] != zero)
-                    {
-                        // Don't intentionally divide by zero.
-                        testvector_[*pp] = resvector_[*pp] / scalevector_[*pp] / scalevalue_;
-                    }
-                    else
-                    {
-                        testvector_[*pp] = resvector_[*pp] / scalevalue_;
-                    }
-                }
-            }
-        }
-        else
-        {
-            typename std::vector<int>::iterator pp = curLSIdx_.begin();
-            for (; pp < curLSIdx_.end(); ++pp)
-            {
-                // Check if this index is valid
-                if (*pp != -1)
-                    testvector_[*pp] = resvector_[*pp] / scalevalue_;
-            }
-        }
-        // Check status of new linear system residuals and see if we have the quorum.
-        int have = 0;
-        ind_.resize(curLSIdx_.size());
-        typename std::vector<int>::iterator p2 = curLSIdx_.begin();
-        for (; p2 < curLSIdx_.end(); ++p2)
-        {
-            // Check if this index is valid
-            if (*p2 != -1)
-            {
-                // Check if any of the residuals are larger than the tolerance.
-                bool all_converged = true;
-                for (int ii = 0; ii < ensemble_size; ++ii)
-                {
-                    if (ET::coeff(testvector_[*p2], ii) > ET::coeff(tolerance_, ii))
-                    {
-                        ++ensemble_iterations[ii];
-                        all_converged = false;
-                    }
-                    else if (!(ET::coeff(testvector_[*p2], ii) <= ET::coeff(tolerance_, ii)))
-                    {
-                        // Throw an std::exception if the current residual norm is
-                        // NaN.  We know that it's NaN because it is not less than,
-                        // equal to, or greater than the current tolerance.  This is
-                        // only possible if either the residual norm or the current
-                        // tolerance is NaN; we assume the former.  We also mark the
-                        // test as failed, in case you want to catch the exception.
-                        status_ = Failed;
-                        TEUCHOS_TEST_FOR_EXCEPTION(true, StatusTestError, "StatusTestGenResSubNorm::checkStatus(): NaN has been detected.");
-                    }
-                }
-                if (all_converged)
-                {
-                    ind_[have] = *p2;
-                    have++;
-                }
-            }
-        }
-        ind_.resize(have);
-        int need = (quorum_ == -1) ? curNumRHS_ : quorum_;
-        status_ = (have >= need) ? Passed : Failed;
-        // Return the current status
-        return status_;
-    }
-
-    //! Return the result of the most recent CheckStatus call.
-    StatusType getStatus() const { return (status_); };
-    //@}
-
-    //! @name Reset methods
-    //@{
-
-    //! Resets the internal configuration to the initial state.
-    void reset()
-    {
-        status_ = Undefined;
-        curBlksz_ = 0;
-        curLSNum_ = 0;
-        curLSIdx_.resize(0);
-        numrhs_ = 0;
-        ind_.resize(0);
-        firstcallCheckStatus_ = true;
-        curSoln_ = Teuchos::null;
-    }
-
-    //@}
-
-    //! @name Print methods
-    //@{
-
-    //! Output formatted description of stopping test to output stream.
-    void print(std::ostream &os, int indent = 0) const
-    {
-        os.setf(std::ios_base::scientific);
-        for (int j = 0; j < indent; j++)
-            os << ' ';
-        printStatus(os, status_);
-        os << resFormStr();
-        if (status_ == Undefined)
-            os << ", tol = " << tolerance_ << std::endl;
-        else
-        {
-            os << std::endl;
-            if (showMaxResNormOnly_ && curBlksz_ > 1)
-            {
-                const MagnitudeType maxRelRes = *std::max_element(
-                    testvector_.begin() + curLSIdx_[0], testvector_.begin() + curLSIdx_[curBlksz_ - 1]);
-                for (int j = 0; j < indent + 13; j++)
-                    os << ' ';
-                os << "max{residual[" << curLSIdx_[0] << "..." << curLSIdx_[curBlksz_ - 1] << "]} = " << maxRelRes
-                   << (maxRelRes <= tolerance_ ? " <= " : " > ") << tolerance_ << std::endl;
-            }
-            else
-            {
-                for (int i = 0; i < numrhs_; i++)
-                {
-                    for (int j = 0; j < indent + 13; j++)
-                        os << ' ';
-                    os << "residual [ " << i << " ] = " << testvector_[i];
-                    os << ((testvector_[i] < tolerance_) ? " < " : (testvector_[i] == tolerance_) ? " == " : (testvector_[i] > tolerance_) ? " > " : " ") << tolerance_ << std::endl;
-                }
-            }
-        }
-        os << std::endl;
-    }
-
-    //! Print message for each status specific to this stopping test.
-    void printStatus(std::ostream &os, StatusType type) const
-    {
-        os << std::left << std::setw(13) << std::setfill('.');
-        switch (type)
-        {
-        case Passed:
-            os << "Converged";
-            break;
-        case Failed:
-            os << "Unconverged";
-            break;
-        case Undefined:
-        default:
-            os << "**";
-            break;
-        }
-        os << std::left << std::setfill(' ');
-        return;
-    }
-    //@}
-
-    //! @name Methods to access data members.
-    //@{
-
-    //! Returns the current solution estimate that was computed for the most recent residual test.
-    Teuchos::RCP<MV> getSolution() { return curSoln_; }
-
-    //! Returns the number of residuals that must pass the convergence test before Passed is returned.
-    //! \note If \c quorum=-1 then all residuals must pass the convergence test before Passed is returned.
-    int getQuorum() const { return quorum_; }
-
-    //! Returns the index of the block row the norms are calculated for
-    size_t getSubIdx() const { return subIdx_; }
-
-    //! Returns whether the only maximum residual norm is displayed when the print() method is called
-    bool getShowMaxResNormOnly() { return showMaxResNormOnly_; }
-
-    //! Returns the std::vector containing the indices of the residuals that passed the test.
-    std::vector<int> convIndices() { return ind_; }
-
-    //! Returns the value of the tolerance, \f$ \tau \f$, set in the constructor.
-    MagnitudeType getTolerance() const { return (tolerance_); };
-
-    //! Returns the test value, \f$ \frac{\|r\|}{\sigma} \f$, computed in most recent call to CheckStatus.
-    const std::vector<MagnitudeType> *getTestValue() const { return (&testvector_); };
-
-    //! Returns the residual norm value, \f$ \|r\| \f$, computed in most recent call to CheckStatus.
-    const std::vector<MagnitudeType> *getResNormValue() const { return (&resvector_); };
-
-    //! Returns the scaled norm value, \f$ \sigma \f$.
-    const std::vector<MagnitudeType> *getScaledNormValue() const { return (&scalevector_); };
-
-    //! Returns a boolean indicating a loss of accuracy has been detected in computing the residual.
-    //! \note This status test does not check for loss of accuracy, so this method will always return false.
-    bool getLOADetected() const { return false; }
-
-    const std::vector<int> getEnsembleIterations() const { return ensemble_iterations; }
-
-    //@}
-
-    /** @name Misc. */
-    //@{
-
-    /** \brief Call to setup initial scaling std::vector.
-   *
-   * After this function is called <tt>getScaledNormValue()</tt> can be called
-   * to get the scaling std::vector.
-   */
-    StatusType firstCallCheckStatusSetup(Iteration<Scalar, MV, OP> *iSolver)
-    {
-        int i;
-        MagnitudeType zero = Teuchos::ScalarTraits<MagnitudeType>::zero();
-        MagnitudeType one = Teuchos::ScalarTraits<MagnitudeType>::one();
-        const LinearProblem<Scalar, MV, OP> &lp = iSolver->getProblem();
-        // Compute scaling term (done once for each block that's being solved)
-        if (firstcallCheckStatus_)
-        {
-            //
-            // Get some current solver information.
-            //
-            firstcallCheckStatus_ = false;
-
-            // try to access the underlying blocked operator
-            Teuchos::RCP<const OP> Op = lp.getOperator();
-            Teuchos::RCP<const Belos::XpetraOp<Scalar, LocalOrdinal, GlobalOrdinal, Node>> xOp =
-                Teuchos::rcp_dynamic_cast<const Belos::XpetraOp<Scalar, LocalOrdinal, GlobalOrdinal, Node>>(Op);
-            TEUCHOS_TEST_FOR_EXCEPTION(xOp.is_null(), MueLu::Exceptions::BadCast, "Bad cast from \'const Belos::OperatorT\' to \'const Belos::XpetraOp\'. The origin type is " << typeid(const OP).name() << ".");
-            Teuchos::RCP<const Xpetra::Operator<Scalar, LocalOrdinal, GlobalOrdinal, Node>> xIntOp =
-                xOp->getOperator();
-            TEUCHOS_TEST_FOR_EXCEPTION(xIntOp.is_null(), MueLu::Exceptions::BadCast, "Cannot access Xpetra::Operator stored in Belos::XpetraOperator.");
-            Teuchos::RCP<const Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>> xMat =
-                Teuchos::rcp_dynamic_cast<const Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>>(xIntOp);
-            TEUCHOS_TEST_FOR_EXCEPTION(xMat.is_null(), MueLu::Exceptions::RuntimeError, "Cannot access Xpetra::Matrix stored in Belos::XpetraOp. Error.");
-            Teuchos::RCP<const Xpetra::BlockedCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>> bMat = Teuchos::rcp_dynamic_cast<const Xpetra::BlockedCrsMatrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>>(xMat);
-            TEUCHOS_TEST_FOR_EXCEPTION(bMat.is_null(), MueLu::Exceptions::BadCast, "Bad cast from \'const Xpetra::Matrix\' to \'const Xpetra::BlockedCrsMatrix\'. The origin type is " << typeid(const Xpetra::Matrix<Scalar, LocalOrdinal, GlobalOrdinal, Node>).name() << ". Note: you need a BlockedCrsMatrix object for the StatusTestGenResSubNorm to work!");
-            mapExtractor_ = bMat->getRangeMapExtractor();
-            TEUCHOS_TEST_FOR_EXCEPTION(mapExtractor_.is_null(), MueLu::Exceptions::RuntimeError, "Could not extract map extractor from BlockedCrsMatrix. Error.");
-            TEUCHOS_TEST_FOR_EXCEPTION(mapExtractor_->NumMaps() <= subIdx_, MueLu::Exceptions::RuntimeError, "The multivector is only split into " << mapExtractor_->NumMaps() << " sub parts. Cannot access sub-block " << subIdx_ << ".");
-
-            // calculate initial norms
-            if (scaletype_ == NormOfRHS)
-            {
-                Teuchos::RCP<const MV> rhs = lp.getRHS();
-                numrhs_ = MVT::GetNumberVecs(*rhs);
-                scalevector_.resize(numrhs_);
-                MvSubNorm(*rhs, subIdx_, scalevector_, scalenormtype_);
-            }
-            else if (scaletype_ == NormOfInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MvSubNorm(*init_res, subIdx_, scalevector_, scalenormtype_);
-            }
-            else if (scaletype_ == NormOfPrecInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MvSubNorm(*init_res, subIdx_, scalevector_, scalenormtype_);
-            }
-            else if (scaletype_ == NormOfFullInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                scalevalue_ = one;
-            }
-            else if (scaletype_ == NormOfFullPrecInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                scalevalue_ = one;
-            }
-            else if (scaletype_ == NormOfFullScaledInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                MvScalingRatio(*init_res, subIdx_, scalevalue_);
-            }
-            else if (scaletype_ == NormOfFullScaledPrecInitRes)
-            {
-                Teuchos::RCP<const MV> init_res = lp.getInitPrecResVec();
-                numrhs_ = MVT::GetNumberVecs(*init_res);
-                scalevector_.resize(numrhs_);
-                MVT::MvNorm(*init_res, scalevector_, scalenormtype_);
-                MvScalingRatio(*init_res, subIdx_, scalevalue_);
-            }
-            else
-            {
-                numrhs_ = MVT::GetNumberVecs(*(lp.getRHS()));
-            }
-
-            resvector_.resize(numrhs_);
-            testvector_.resize(numrhs_);
-
-            curLSNum_ = lp.getLSNumber();
-            curLSIdx_ = lp.getLSIndex();
-            curBlksz_ = (int)curLSIdx_.size();
-            int validLS = 0;
-            for (i = 0; i < curBlksz_; ++i)
-            {
-                if (curLSIdx_[i] > -1 && curLSIdx_[i] < numrhs_)
-                    validLS++;
-            }
-            curNumRHS_ = validLS;
-            //
-            // Initialize the testvector.
-            for (i = 0; i < numrhs_; i++)
-            {
-                testvector_[i] = one;
-            }
-
-            // Return an error if the scaling is zero.
-            if (scalevalue_ == zero)
-            {
-                return Failed;
-            }
-        }
-        return Undefined;
-    }
-    //@}
-
-    /** \name Overridden from Teuchos::Describable */
-    //@{
-
-    /** \brief Method to return description of the maximum iteration status test  */
-    std::string description() const
-    {
-        std::ostringstream oss;
-        oss << "Belos::StatusTestGenResSubNorm<>: " << resFormStr();
-        oss << ", tol = " << tolerance_;
-        return oss.str();
-    }
-    //@}
-
-protected:
-private:
-    //! @name Private methods.
-    //@{
-    /** \brief Description of current residual form */
-    std::string resFormStr() const
-    {
-        std::ostringstream oss;
-        oss << "(";
-        oss << ((resnormtype_ == OneNorm) ? "1-Norm" : (resnormtype_ == TwoNorm) ? "2-Norm" : "Inf-Norm");
-        oss << " Exp";
-        oss << " Res Vec [" << subIdx_ << "]) ";
-
-        // If there is no residual scaling, return current string.
-        if (scaletype_ != None)
-        {
-            // Insert division sign.
-            oss << "/ ";
-
-            // Determine output string for scaling, if there is any.
-            if (scaletype_ == UserProvided)
-                oss << " (User Scale)";
-            else
-            {
-                oss << "(";
-                oss << ((scalenormtype_ == OneNorm) ? "1-Norm" : (resnormtype_ == TwoNorm) ? "2-Norm" : "Inf-Norm");
-                if (scaletype_ == NormOfInitRes)
-                    oss << " Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfPrecInitRes)
-                    oss << " Prec Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullInitRes)
-                    oss << " Full Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullPrecInitRes)
-                    oss << " Full Prec Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullScaledInitRes)
-                    oss << " scaled Full Res0 [" << subIdx_ << "]";
-                else if (scaletype_ == NormOfFullScaledPrecInitRes)
-                    oss << " scaled Full Prec Res0 [" << subIdx_ << "]";
-                else
-                    oss << " RHS [" << subIdx_ << "]";
-                oss << ")";
-            }
-        }
-
-        // TODO add a tagging name
-
-        return oss.str();
-    }
-
-    //@}
-
-    //! @name Private helper functions
-    //@{
-
-    // calculate norm of partial multivector
-    void MvSubNorm(const MV &mv, size_t block, std::vector<typename Teuchos::ScalarTraits<Scalar>::magnitudeType> &normVec, NormType type = TwoNorm)
-    {
-
-        Teuchos::RCP<const MV> input = Teuchos::rcpFromRef(mv);
-
-        Teuchos::RCP<const MV> SubVec = mapExtractor_->ExtractVector(input, block);
-        typedef MultiVecTraits<Scalar, MV> MVT;
-        MVT::MvNorm(*SubVec, normVec, type);
-    }
-
-    // calculate ration of sub-vector length to full vector length (for scalevalue_)
-    void MvScalingRatio(const MV &mv, size_t block, MagnitudeType &lengthRatio)
-    {
-        Teuchos::RCP<const MV> input = Teuchos::rcpFromRef(mv);
-
-        Teuchos::RCP<const MV> SubVec = mapExtractor_->ExtractVector(input, block);
-
-        lengthRatio = Teuchos::as<MagnitudeType>(SubVec->getGlobalLength()) / Teuchos::as<MagnitudeType>(input->getGlobalLength());
-    }
-    //@}
-
-    //! @name Private data members.
-    //@{
-
-    //! Tolerance used to determine convergence
-    MagnitudeType tolerance_;
-
-    //! Index of block row in n x n block system of which we want to check the sub-residuals
-    size_t subIdx_;
-
-    //! Number of residuals that must pass the convergence test before Passed is returned.
-    int quorum_;
-
-    //! Determines if the entries for all of the residuals are shown or just the max.
-    bool showMaxResNormOnly_;
-
-    //! Type of norm to use on residual (OneNorm, TwoNorm, or InfNorm).
-    NormType resnormtype_;
-
-    //! Type of scaling to use (Norm of RHS, Norm of Initial Residual, None or User provided)
-    ScaleType scaletype_;
-
-    //! Type of norm to use on the scaling (OneNorm, TwoNorm, or InfNorm)
-    NormType scalenormtype_;
-
-    //! Scaling value.
-    MagnitudeType scalevalue_;
-
-    //! Scaling std::vector.
-    std::vector<MagnitudeType> scalevector_;
-
-    //! Residual norm std::vector.
-    std::vector<MagnitudeType> resvector_;
-
-    //! Test std::vector = resvector_ / scalevector_
-    std::vector<MagnitudeType> testvector_;
-
-    //! Vector containing the indices for the vectors that passed the test.
-    std::vector<int> ind_;
-
-    //! Most recent solution vector used by this status test.
-    Teuchos::RCP<MV> curSoln_;
-
-    //! Status
-    StatusType status_;
-
-    //! The current blocksize of the linear system being solved.
-    int curBlksz_;
-
-    //! The current number of right-hand sides being solved for.
-    int curNumRHS_;
-
-    //! The indices of the current number of right-hand sides being solved for.
-    std::vector<int> curLSIdx_;
-
-    //! The current number of linear systems that have been loaded into the linear problem.
-    int curLSNum_;
-
-    //! The total number of right-hand sides being solved for.
-    int numrhs_;
-
-    //! Is this the first time CheckStatus is called?
-    bool firstcallCheckStatus_;
-
-    //! Is this the first time DefineResForm is called?
-    bool firstcallDefineResForm_;
-
-    //! Is this the first time DefineScaleForm is called?
-    bool firstcallDefineScaleForm_;
-
-    //! MapExtractor for range space
-    Teuchos::RCP<const ME> mapExtractor_;
-
-    //! The number of iterations at which point each ensemble component converges
-    std::vector<int> ensemble_iterations;
-
-    //@}
-};
-
-} // namespace Belos
-
-#endif
-
-#endif /* BELOS_XPETRA_STATUS_TEST_GEN_RES_SUB_NORM_HPP */
diff --git a/katoptron/src/CMakeLists.txt b/katoptron/src/CMakeLists.txt
deleted file mode 100644
index 5c97361a..00000000
--- a/katoptron/src/CMakeLists.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-# CMake input file of katoptron.so
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.hpp)
-
-#ADD_EXECUTABLE(katoptron2 main.cpp)
-
-ADD_LIBRARY(katoptron SHARED ${SRCS})
-MACRO_DebugPostfix(katoptron)
-TARGET_INCLUDE_DIRECTORIES(katoptron PUBLIC ${PROJECT_SOURCE_DIR}/katoptron/src)
-
-target_compile_definitions(katoptron PUBLIC WAVES_USE_TBOXVTK)
-
-# -- Search for Trilinos
-FIND_PACKAGE(Trilinos REQUIRED)
-
-set (_VERB 0)  # set to 1 for debugging
-IF(_VERB)
-    MESSAGE("\nFound Trilinos!  Here are the details: ")
-    MESSAGE("   Trilinos_DIR = ${Trilinos_DIR}")
-    MESSAGE("   Trilinos_VERSION = ${Trilinos_VERSION}")
-    MESSAGE("   Trilinos_PACKAGE_LIST = ${Trilinos_PACKAGE_LIST}")
-    MESSAGE("   Trilinos_LIBRARIES = ${Trilinos_LIBRARIES}")
-    MESSAGE("   Trilinos_INCLUDE_DIRS = ${Trilinos_INCLUDE_DIRS}")
-    MESSAGE("   Trilinos_LIBRARY_DIRS = ${Trilinos_LIBRARY_DIRS}")
-    MESSAGE("   Trilinos_TPL_LIST = ${Trilinos_TPL_LIST}")
-    MESSAGE("   Trilinos_TPL_INCLUDE_DIRS = ${Trilinos_TPL_INCLUDE_DIRS}")
-    MESSAGE("   Trilinos_TPL_LIBRARIES = ${Trilinos_TPL_LIBRARIES}")
-    MESSAGE("   Trilinos_TPL_LIBRARY_DIRS = ${Trilinos_TPL_LIBRARY_DIRS}")
-    MESSAGE("   Trilinos_BUILD_SHARED_LIBS = ${Trilinos_BUILD_SHARED_LIBS}")
-    MESSAGE("   Trilinos_CXX_COMPILER_FLAGS = ${Trilinos_CXX_COMPILER_FLAGS}")
-    MESSAGE("End of Trilinos details\n")
-ENDIF()
-
-# MPI check 
-LIST(FIND Trilinos_TPL_LIST MPI MPI_List_ID)
-IF (MPI_List_ID GREATER -1)
-  MESSAGE("-- Checking if MPI is enabled in Trilinos: MPI ENABLED")
-  SET(MYAPP_MPI TRUE)
-  ADD_DEFINITIONS(-DMYAPP_MPI)
-ELSE()
-  MESSAGE("-- Checking if MPI is enabled in Trilinos: MPI NOT ENABLED")
-  SET(MYAPP_MPI FALSE)
-ENDIF()
-
-# Set optional dependency in MyApp on Epetra package: 
-#   this toggles code within  #ifdef MYAPP_EPETRA 
-LIST(FIND Trilinos_PACKAGE_LIST Epetra Epetra_List_ID)
-IF (Epetra_List_ID GREATER -1)
-  ADD_DEFINITIONS(-DMYAPP_EPETRA)
-  MESSAGE("-- Looking for Epetra: -- found, compiling with -DMYAPP_EPETRA")
-  SET(MYAPP_EPETRA TRUE)
-ELSE()
-  MESSAGE("-- Looking for Epetra: -- not found.")
-  SET(MYAPP_EPETRA FALSE)
-ENDIF()
-
-# --------------------------------------------------------------
-# Finds MPI (including MSMPI)
-# --------------------------------------------------------------
-if(WIN32)  
-    FIND_PATH(MPI_INCLUDE_PATH NAMES  mpi.h HINTS "$ENV{MSMPI_INC}")
-    if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
-        set(MS_MPI_ARCH_DIR x64)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB64}")
-    else()
-        set(MS_MPI_ARCH_DIR x86)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB32}")
-    endif()
-else()
-    find_package(MPI REQUIRED)
-    # intel mpi (mpi.h doit etre inclus avant stdio.h)
-    # ou definir ces 2 macros
-    ADD_DEFINITIONS(-DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX)
-endif()
-# --------------------------------------------------------------
-
-IF(_VERB)
-MESSAGE("   Trilinos_LIBRARIES = ${Trilinos_LIBRARIES}")
-ENDIF()
-
-list(REMOVE_ITEM Trilinos_LIBRARIES pytrilinos)
-
-IF(_VERB)
-MESSAGE("   Trilinos_LIBRARIES = ${Trilinos_LIBRARIES}")
-ENDIF()
-
-INCLUDE_DIRECTORIES (  ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src 
-                       ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
-                       ${Trilinos_INCLUDE_DIRS} 
-                       ${Trilinos_TPL_INCLUDE_DIRS}
-                       ${MPI_INCLUDE_PATH})
-
-LINK_DIRECTORIES (${Trilinos_LIBRARY_DIRS} ${Trilinos_TPL_LIBRARY_DIRS})
-        
-TARGET_LINK_LIBRARIES(katoptron tbox tboxVtk fwk ${Trilinos_LIBRARIES} ${Trilinos_TPL_LIBRARIES} ${MPI_LIBRARIES})
-
-INSTALL(TARGETS katoptron DESTINATION ${CMAKE_INSTALL_PREFIX})
diff --git a/katoptron/src/ContactsList.cpp b/katoptron/src/ContactsList.cpp
deleted file mode 100644
index ed239f19..00000000
--- a/katoptron/src/ContactsList.cpp
+++ /dev/null
@@ -1,284 +0,0 @@
-#include "ContactsList.h"
-
-#include "NodesList.h"
-
-#include "wProblem.h"
-#include "wTag.h"
-#include "wMshData.h"
-#include "wElement.h"
-#include "wNode.h"
-#include "wMedium.h"
-#include "wDirichlet.h"
-#include "wContact.h"
-
-using namespace katoptron;
-using namespace tbox;
-
-/**
- * @brief ContactsList constructor
- * 
- * This constructor allocates 11 Kokkos::View which store all the required information related to each contact interface, including:
- * <ul>
- *  <li> all the slaves and master nodes and elements IDs,
- *  <li> all the normal of the surfaces,
- *  <li> type of Lagrange multiplier shape functions,
- *  <li> type of the interface (contact, Signorini, sticking contact, mesh tying),
- *  <li> initial status of the Lagrange multipliers and whether they should be updated.
- * </ul>
- * 
- * To do so, we need the information regarding the contact interfaces (stored into the katoptron::Problem object), the information on the 
- * distribution of the nodes (stored into the katoptron::Map object), and the information on the nodes and elements (stored into the 
- * katoptron::NodesList and katoptron::ElementList objects).
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object,
- *  <li> elementsList: an RCP to an ElementList object,
- *  <li> nodesList: an RCP to a NodesList object.
- * </ul>
- */
-ContactsList::ContactsList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList, Teuchos::RCP<NodesList> nodesList)
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-    contacts_number = pbl.Contacts.size();
-    local_ordinal_type maxNumSlaveNodesPerContactFace = 0;
-    local_ordinal_type maxNumMasterNodesPerContactFace = 0;
-    local_ordinal_type maxNumSlaveElemsPerContactFace = 0;
-    local_ordinal_type maxNumMasterElemsPerContactFace = 0;
-    local_ordinal_type maxNumSlaveDirichletNodesPerContactFace = 0;
-
-    for (auto i = 0; i < contacts_number; ++i)
-    {
-        std::vector<global_ordinal_type> myContactSlaveNodes;
-        std::vector<global_ordinal_type> myContactSlaveElems;
-        for (auto j = 0; j < pbl.Contacts[i]->slave_elems.size(); ++j)
-        {
-            local_ordinal_type e = map->mapElems->getLocalElement(pbl.Contacts[i]->slave_elems[j]->no - 1);
-            if (elementsList->getElementType(e) == static_cast<int>(ElType::QUAD4))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(ElType::TRI3))
-                ;
-            else
-                continue;
-            myContactSlaveElems.push_back(e);
-            for (auto n1 = 0; n1 < elementsList->getElementSize(e); ++n1)
-            {
-                global_ordinal_type i_global = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(e, n1));
-
-                if (std::find(myContactSlaveNodes.begin(), myContactSlaveNodes.end(), i_global) == myContactSlaveNodes.end())
-                    myContactSlaveNodes.push_back(i_global);
-            }
-        }
-
-        int myNumContactSlaveNodes = myContactSlaveNodes.size();
-        int myNumContactSlaveElems = myContactSlaveElems.size();
-
-        int myNumContactSlaveDirichletNodes = pbl.Contacts[i]->slave_dirichlet_nodes.size();
-
-        std::vector<global_ordinal_type> myContactMasterNodes;
-        std::vector<global_ordinal_type> myContactMasterElems;
-        for (auto j = 0; j < pbl.Contacts[i]->master_elems.size(); ++j)
-        {
-            local_ordinal_type e = map->mapElems->getLocalElement(pbl.Contacts[i]->master_elems[j]->no - 1);
-            if (elementsList->getElementType(e) == static_cast<int>(ElType::QUAD4))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(ElType::TRI3))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(ElType::LINE2))
-                ;
-            else
-                continue;
-            myContactMasterElems.push_back(e);
-            for (auto n1 = 0; n1 < elementsList->getElementSize(e); ++n1)
-            {
-                global_ordinal_type i_global = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(e, n1));
-                if (std::find(myContactMasterNodes.begin(), myContactMasterNodes.end(), i_global) == myContactMasterNodes.end())
-                    myContactMasterNodes.push_back(i_global);
-            }
-        }
-
-        int myNumContactMasterNodes = myContactMasterNodes.size();
-        int myNumContactMasterElems = myContactMasterElems.size();
-
-        if (maxNumSlaveNodesPerContactFace < myNumContactSlaveNodes)
-            maxNumSlaveNodesPerContactFace = myNumContactSlaveNodes;
-        if (maxNumSlaveElemsPerContactFace < myNumContactSlaveElems)
-            maxNumSlaveElemsPerContactFace = myNumContactSlaveElems;
-
-        if (maxNumSlaveDirichletNodesPerContactFace < myNumContactSlaveDirichletNodes)
-            maxNumSlaveDirichletNodesPerContactFace = myNumContactSlaveDirichletNodes;
-
-        if (maxNumMasterNodesPerContactFace < myNumContactMasterNodes)
-            maxNumMasterNodesPerContactFace = myNumContactMasterNodes;
-        if (maxNumMasterElemsPerContactFace < myNumContactMasterElems)
-            maxNumMasterElemsPerContactFace = myNumContactMasterElems;
-    }
-
-    contacts_slave_nodes_size = 0;
-    contacts_slave_elems_size = 1;
-    contacts_master_nodes_size = 2;
-    contacts_master_elems_size = 3;
-    contacts_slave_normal = 4;
-    contacts_master_normal = 7;
-    contacts_slave_nodes = 10;
-    contacts_slave_elems = contacts_slave_nodes + maxNumSlaveNodesPerContactFace;
-    contacts_master_nodes = contacts_slave_elems + maxNumSlaveElemsPerContactFace;
-    contacts_master_elems = contacts_master_nodes + maxNumMasterNodesPerContactFace;
-
-    size_t numMaxDirichletSlaveNode = 1;
-    for (auto i = 0; i < contacts_number; ++i)
-        if (numMaxDirichletSlaveNode < pbl.Contacts[i]->slave_dirichlet_nodes.size())
-            numMaxDirichletSlaveNode = pbl.Contacts[i]->slave_dirichlet_nodes.size();
-
-    size_t numMaxClosedNode = 1;
-    for (auto i = 0; i < contacts_number; ++i)
-        if (numMaxClosedNode < pbl.Contacts[i]->initially_closed_nodes.size())
-            numMaxClosedNode = pbl.Contacts[i]->initially_closed_nodes.size();
-
-    Kokkos::resize(contacts, contacts_number, contacts_master_elems + maxNumMasterElemsPerContactFace);
-    Kokkos::resize(contacts_normal, contacts_number, 6);
-    Kokkos::resize(shape_function, contacts_number);
-    Kokkos::resize(signorini, contacts_number);
-    Kokkos::resize(initially_open, contacts_number);
-    Kokkos::resize(no_update, contacts_number);
-    Kokkos::resize(sticking, contacts_number);
-    Kokkos::resize(mesh_tying, contacts_number);
-    Kokkos::resize(contacts_scale, contacts_number);
-    Kokkos::resize(contacts_dirichlet, contacts_number, numMaxDirichletSlaveNode + 1);
-    Kokkos::resize(initially_closed_nodes, contacts_number, numMaxClosedNode + 1);
-
-    for (auto i = 0; i < contacts_number; ++i)
-    {
-        contacts_dirichlet(i, 0) = pbl.Contacts[i]->slave_dirichlet_nodes.size();
-        for (auto j = 0; j < contacts_dirichlet(i, 0); ++j)
-            contacts_dirichlet(i, j + 1) = pbl.Contacts[i]->slave_dirichlet_nodes[j];
-    }
-
-    for (auto i = 0; i < contacts_number; ++i)
-    {
-        initially_closed_nodes(i, 0) = pbl.Contacts[i]->initially_closed_nodes.size();
-        for (auto j = 0; j < initially_closed_nodes(i, 0); ++j)
-            initially_closed_nodes(i, j + 1) = pbl.Contacts[i]->initially_closed_nodes[j];
-    }
-
-    for (auto i = 0; i < contacts_number; ++i)
-    {
-        int myContactSlaveNodes_id = 0;
-        int myContactSlaveElems_id = 0;
-
-        std::vector<global_ordinal_type> myContactSlaveNodes;
-
-        for (auto j = 0; j < pbl.Contacts[i]->slave_elems.size(); ++j)
-        {
-            local_ordinal_type e = map->mapElems->getLocalElement(pbl.Contacts[i]->slave_elems[j]->no - 1);
-            if (elementsList->getElementType(e) == static_cast<int>(ElType::QUAD4))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(ElType::TRI3))
-                ;
-            else
-                continue;
-            contacts(i, contacts_slave_elems + myContactSlaveElems_id) = e;
-            ++myContactSlaveElems_id;
-            for (auto n1 = 0; n1 < elementsList->getElementSize(e); ++n1)
-            {
-                global_ordinal_type i_global = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(e, n1));
-                if (std::find(myContactSlaveNodes.begin(), myContactSlaveNodes.end(), i_global) == myContactSlaveNodes.end())
-                {
-                    myContactSlaveNodes.push_back(i_global);
-                    ++myContactSlaveNodes_id;
-                }
-            }
-        }
-        for (auto j = 0; j < myContactSlaveNodes.size(); ++j)
-            contacts(i, contacts_slave_nodes + j) = myContactSlaveNodes[j];
-
-        contacts(i, contacts_slave_nodes_size) = myContactSlaveNodes_id;
-        contacts(i, contacts_slave_elems_size) = myContactSlaveElems_id;
-
-        int myContactMasterNodes_id = 0;
-        int myContactMasterElems_id = 0;
-
-        std::vector<global_ordinal_type> myContactMasterNodes;
-
-        for (auto j = 0; j < pbl.Contacts[i]->master_elems.size(); ++j)
-        {
-            local_ordinal_type e = map->mapElems->getLocalElement(pbl.Contacts[i]->master_elems[j]->no - 1);
-            if (elementsList->getElementType(e) == static_cast<int>(ElType::QUAD4))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(ElType::TRI3))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(ElType::LINE2))
-                ;
-            else
-                continue;
-            contacts(i, contacts_master_elems + myContactMasterElems_id) = e;
-            ++myContactMasterElems_id;
-            for (auto n1 = 0; n1 < elementsList->getElementSize(e); ++n1)
-            {
-                global_ordinal_type i_global = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(e, n1));
-                if (std::find(myContactMasterNodes.begin(), myContactMasterNodes.end(), i_global) == myContactMasterNodes.end())
-                {
-                    myContactMasterNodes.push_back(i_global);
-                    ++myContactMasterNodes_id;
-                }
-            }
-        }
-
-        for (auto j = 0; j < myContactMasterNodes.size(); ++j)
-            contacts(i, contacts_master_nodes + j) = myContactMasterNodes[j];
-
-        contacts(i, contacts_master_nodes_size) = myContactMasterNodes_id;
-        contacts(i, contacts_master_elems_size) = myContactMasterElems_id;
-    }
-
-    for (auto i = 0; i < contacts_number; ++i)
-    {
-
-        for (auto j = 0; j < 3; ++j)
-        {
-            contacts(i, contacts_slave_normal + j) = pbl.Contacts[i]->slave_normal(j);
-            contacts(i, contacts_master_normal + j) = pbl.Contacts[i]->master_normal(j);
-
-            contacts_normal(i, j) = pbl.Contacts[i]->slave_normal(j);
-            contacts_normal(i, j + 3) = pbl.Contacts[i]->master_normal(j);
-        }
-
-        if (pbl.Contacts[i]->standard_shape_functions)
-            shape_function(i) = 1;
-        else
-            shape_function(i) = 0;
-
-        if (pbl.Contacts[i]->is_Signorini)
-            signorini(i) = 1;
-        else
-            signorini(i) = 0;
-
-        if (pbl.Contacts[i]->mesh_tying)
-            mesh_tying(i) = 1;
-        else
-            mesh_tying(i) = 0;
-
-        if (pbl.Contacts[i]->no_Update)
-            no_update(i) = 1;
-        else
-            no_update(i) = 0;
-
-        if (pbl.Contacts[i]->sticking)
-        {
-            sticking(i) = true;
-            at_least_one_sticking = true;
-        }
-        else
-            sticking(i) = false;
-
-        if (pbl.Contacts[i]->initial_closed)
-            initially_open(i) = 0;
-        else
-            initially_open(i) = 1;
-
-        contacts_scale(i) = pbl.Contacts[i]->scale;
-    }
-}
diff --git a/katoptron/src/ContactsList.h b/katoptron/src/ContactsList.h
deleted file mode 100644
index 4f6bf1f2..00000000
--- a/katoptron/src/ContactsList.h
+++ /dev/null
@@ -1,500 +0,0 @@
-#ifndef KATOPTRON_CONTACTSLIST_H
-#define KATOPTRON_CONTACTSLIST_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "NodesList.h"
-#include "ElementsList.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store the list of the contact interfaces.
- */
-class ContactsList
-{
-private:
-    bool at_least_one_sticking = false;
-
-    typedef typename Map::local_ordinal_type local_ordinal_type;
-    typedef typename Map::global_ordinal_type global_ordinal_type;
-
-    Kokkos::View<global_ordinal_type **, Kokkos::LayoutRight> contacts;
-    Kokkos::View<global_ordinal_type **, Kokkos::LayoutRight> contacts_dirichlet;
-
-    Kokkos::View<local_ordinal_type *, Kokkos::LayoutRight> shape_function;
-
-    Kokkos::View<local_ordinal_type *, Kokkos::LayoutRight> signorini;
-
-    Kokkos::View<local_ordinal_type *, Kokkos::LayoutRight> initially_open;
-
-    Kokkos::View<local_ordinal_type *, Kokkos::LayoutRight> no_update;
-    Kokkos::View<local_ordinal_type *, Kokkos::LayoutRight> sticking;
-    Kokkos::View<local_ordinal_type *, Kokkos::LayoutRight> mesh_tying;
-
-    Kokkos::View<double *, Kokkos::LayoutRight> contacts_scale;
-
-    Kokkos::View<local_ordinal_type **, Kokkos::LayoutRight> initially_closed_nodes;
-
-    Kokkos::View<double **, Kokkos::LayoutRight> contacts_normal;
-
-    local_ordinal_type contacts_number;
-    local_ordinal_type contacts_slave_nodes_size;
-    local_ordinal_type contacts_slave_elems_size;
-    local_ordinal_type contacts_master_nodes_size;
-    local_ordinal_type contacts_master_elems_size;
-    local_ordinal_type contacts_slave_normal;
-    local_ordinal_type contacts_master_normal;
-    local_ordinal_type contacts_slave_nodes;
-    local_ordinal_type contacts_slave_elems;
-    local_ordinal_type contacts_master_nodes;
-    local_ordinal_type contacts_master_elems;
-
-public:
-    ContactsList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList,
-                 Teuchos::RCP<NodesList> nodesList);
-
-    ~ContactsList()
-    {
-        Kokkos::resize(contacts, 0, 0);
-        Kokkos::resize(contacts_normal, 0, 0);
-        Kokkos::resize(shape_function, 0);
-        Kokkos::resize(signorini, 0);
-        Kokkos::resize(initially_open, 0);
-        Kokkos::resize(no_update, 0);
-        Kokkos::resize(sticking, 0);
-        Kokkos::resize(mesh_tying, 0);
-        Kokkos::resize(contacts_scale, 0);
-        Kokkos::resize(contacts_dirichlet, 0, 0);
-        Kokkos::resize(initially_closed_nodes, 0, 0);
-    }
-
-    /**
-    * @brief Return the number of contact interfaces.
-    * 
-    */
-    inline local_ordinal_type getContactNumber() { return contacts_number; }
-
-    /**
-    * @brief Return the number of slave nodes for a
-    * given interface.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID.
-    * </ul>
-    */
-    inline local_ordinal_type getSlaveNodesSize(local_ordinal_type i)
-    {
-        return contacts(i, contacts_slave_nodes_size);
-    }
-
-    /**
-    * @brief Return the number of slave elements for a
-    * given interface.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID.
-    * </ul>
-    */
-    inline local_ordinal_type getSlaveElementsSize(local_ordinal_type i)
-    {
-        return contacts(i, contacts_slave_elems_size);
-    }
-
-    /**
-    * @brief Return the number of master nodes for a
-    * given interface.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID.
-    * </ul>
-    */
-    inline local_ordinal_type getMasterNodesSize(local_ordinal_type i)
-    {
-        return contacts(i, contacts_master_nodes_size);
-    }
-
-    /**
-    * @brief Return the number of master elements for a
-    * given interface.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID.
-    * </ul>
-    */
-    inline local_ordinal_type getMasterElementsSize(local_ordinal_type i)
-    {
-        return contacts(i, contacts_master_elems_size);
-    }
-
-    /**
-    * @brief Return the global ID of the slave node n1 of 
-    * a given interface.
-    * 
-    * Arguments:
-    * <ul>
-    *  <li> i: the interface ID,
-    *  <li> n1: the ID of the node on the current interface.
-    * </ul>
-    */
-    inline global_ordinal_type getSlaveNode(local_ordinal_type i, local_ordinal_type n1)
-    {
-        return contacts(i, contacts_slave_nodes + n1);
-    }
-
-    /**
-    * @brief Return the local ID of the slave element e1 of 
-    * a given interface.
-    * 
-    * Arguments:
-    * <ul>
-    *  <li> i: the interface ID,
-    *  <li> e1: the ID of the element on the current interface.
-    * </ul>
-    */
-    inline local_ordinal_type getSlaveElement(local_ordinal_type i, local_ordinal_type e1)
-    {
-        return contacts(i, contacts_slave_elems + e1);
-    }
-
-    /**
-    * @brief Return the global ID of the master node n1 of 
-    * a given interface.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID,
-    *  <li> n1: the ID of the node on the current interface.
-    * </ul>
-    */
-    inline global_ordinal_type getMasterNode(local_ordinal_type i, local_ordinal_type n1)
-    {
-        return contacts(i, contacts_master_nodes + n1);
-    }
-
-    /**
-    * @brief Return the local ID of the master element e1 of 
-    * a given interface.
-    * 
-    * Arguments:
-    * <ul>
-    *  <li> i: the interface ID,
-    *  <li> e1: the ID of the element on the current interface.
-    * </ul>
-    */
-    inline local_ordinal_type getMasterElement(local_ordinal_type i, local_ordinal_type e1)
-    {
-        return contacts(i, contacts_master_elems + e1);
-    }
-
-    /**
-    * @brief Return the jth component of the normal vector to the slave
-    * side of a given interface.
-    * 
-    * Arguments:
-    * <ul>
-    *  <li> i: the interface ID,
-    *  <li> j: the index of the component of the normal vector.
-    * </ul> 
-    */
-    inline double getSlaveNormal(local_ordinal_type i, local_ordinal_type j)
-    {
-        return contacts_normal(i, j);
-    }
-
-    /**
-    * @brief Return the jth component of the normal vector to the master
-    * side of a given interface.
-    * 
-    * Arguments:
-    * <ul>
-    *  <li> i: the interface ID,
-    *  <li> j: the index of the component of the normal vector.
-    * </ul>
-    */
-    inline double getMasterNormal(local_ordinal_type i, local_ordinal_type j)
-    {
-        return contacts_normal(i, j + 3);
-    }
-
-    /**
-    * @brief Return true if the shape functions of the Lagrange 
-    * multipliers are the standard shape function for a given interface.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID.
-    * </ul>
-    */
-    inline bool isStandardShapeFunction(local_ordinal_type i)
-    {
-        return shape_function(i) == 1;
-    }
-
-    /**
-    * @brief Return true if contact of the given interface is 
-    * initially open.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID.
-    * </ul>
-    */
-    inline bool isInitiallyOpen(local_ordinal_type i)
-    {
-        return initially_open(i) == 1;
-    }
-
-    /**
-    * @brief Return true if contact of the given interface is 
-    * initially close.
-    * 
-    * Argument:
-    * <ul>
-    *  <li> i: the interface ID.
-    * </ul>
-    */
-    inline bool isInitiallyClose(local_ordinal_type i)
-    {
-        return initially_open(i) == 0;
-    }
-
-    /**
-     * @brief Return true if the contact status of the given interface 
-     * should be checked and potentially updated.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline bool isUpdated(local_ordinal_type i)
-    {
-        return no_update(i) == 0;
-    }
-
-    /**
-     * @brief Return true if the contact status of the given interface 
-     * should not be checked.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline bool isNotUpdated(local_ordinal_type i)
-    {
-        return no_update(i) == 1;
-    }
-
-    /**
-     * @brief Return true if the given interface is a sticking contact
-     * interface.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline bool isSticking(local_ordinal_type i)
-    {
-        return sticking(i);
-    }
-
-    /**
-     * @brief Return true if the given interface is a mesh tying
-     * interface.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline bool isTying(local_ordinal_type i)
-    {
-        return mesh_tying(i);
-    }
-
-    /**
-     * @brief Return true if at least one contact interface is sticking.
-     */
-    inline bool hasAtLeastOneSticking(void)
-    {
-        return at_least_one_sticking;
-    }
-
-    /**
-     * @brief Return true if the given interface is a Signorini 
-     * contact interface.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline bool isSignorini(local_ordinal_type i)
-    {
-        return signorini(i) == 1;
-    }
-
-    /**
-     * @brief Return true if the given interface is not a Signorini 
-     * contact interface.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline bool isNotSignorini(local_ordinal_type i)
-    {
-        return signorini(i) == 0;
-    }
-
-    /**
-     * @brief Return true if at least one contact interface is a
-     * Signorini contact interface.
-     */
-    inline bool isSignorini()
-    {
-        for (local_ordinal_type i = 0; i < contacts_number; ++i)
-            if (isSignorini(i))
-                return true;
-        return false;
-    }
-
-    /**
-     * @brief Return true if all the contact interfaces are not
-     * Signorini contact interfaces.
-     */
-    inline bool isNotSignorini()
-    {
-        for (local_ordinal_type i = 0; i < contacts_number; ++i)
-            if (isSignorini(i))
-                return false;
-        return true;
-    }
-
-    /**
-     * @brief Return the number of Dirichlet nodes on the slave 
-     * side for a given interface.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline local_ordinal_type slaveDirichletSize(local_ordinal_type i)
-    {
-        return contacts_dirichlet(i, 0);
-    }
-
-    /**
-     * @brief Return the multiplicative scale used to multiply
-     * the normals of a given interface.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the interface ID.
-     * </ul>
-     */
-    inline double getMortarScale(local_ordinal_type i)
-    {
-        return contacts_scale(i);
-    }
-
-    /**
-     * @brief Return true if the node of global ID j is 
-     * a slave node of the interface i.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the interface ID,
-     *  <li> j: the global ID of the tested node.
-     * </ul>
-     */
-    bool isASlaveNode(local_ordinal_type i, global_ordinal_type j)
-    {
-        local_ordinal_type size = getSlaveNodesSize(i);
-        if (size == 0)
-            return false;
-        for (auto j2 = 0; j2 < size; ++j2)
-            if (j == getSlaveNode(i, j2))
-                return true;
-        return false;
-    }
-
-    /**
-     * @brief Return the interface ID associated to a slave node
-     * of global ID j.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> j: the global ID of the node.
-     * </ul>
-     */
-    local_ordinal_type getInterfaceOfSlaveNode(local_ordinal_type j)
-    {
-        for (local_ordinal_type i = 0; i < contacts_number; ++i)
-            if (isASlaveNode(i, j))
-                return i;
-        return 0;
-    }
-
-    /**
-     * @brief Return true if the slave node of global ID j 
-     * is a Dirichlet node on the interface i.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the interface ID,
-     *  <li> j: the global ID of the node.
-     * </ul>
-     */
-    bool isASlaveDirichletNode(local_ordinal_type i, local_ordinal_type j)
-    {
-        local_ordinal_type size = slaveDirichletSize(i);
-        if (size == 0)
-            return false;
-        for (auto j2 = 0; j2 < size; ++j2)
-            if (j == contacts_dirichlet(i, j2 + 1))
-                return true;
-        return false;
-    }
-
-    /**
-     * @brief Return true if the Lagrange multiplier associated to the
-     * slave node of global ID j on the interface i is initially active (closed contact).
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the interface ID,
-     *  <li> j: the global ID of the node.
-     * </ul>
-     */
-    bool isNodeInitiallyClosed(local_ordinal_type i, local_ordinal_type j)
-    {
-        local_ordinal_type size = initially_closed_nodes(i, 0);
-        if (size == 0)
-            return false;
-        for (auto j2 = 0; j2 < size; ++j2)
-            if (j == initially_closed_nodes(i, j2 + 1))
-                return true;
-        return false;
-    }
-};
-
-}; // namespace katoptron
-
-#endif //KATOPTRON_CONTACTSLIST_H
diff --git a/katoptron/src/DirichletList.h b/katoptron/src/DirichletList.h
deleted file mode 100644
index 8f5627e9..00000000
--- a/katoptron/src/DirichletList.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef KATOPTRON_DIRICHLETLIST_H
-#define KATOPTRON_DIRICHLETLIST_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "wDirichlet.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wNode.h"
-
-#include "ElementsList.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-#include "EnsembleTraits.h"
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store the list of the Dirichlet boundary conditions (BC).
- */
-template <typename scalar>
-class DirichletList
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-private:
-    Kokkos::View<global_ordinal_type **, Kokkos::LayoutRight> dirichlet_nodesList;
-    Kokkos::View<scalar ***, Kokkos::LayoutRight> dirichlet_values_list;
-
-    local_ordinal_type dirichlet_number;
-    local_ordinal_type dirichlet_size;
-    local_ordinal_type dirichlet_nodes;
-
-    local_ordinal_type dirichlet_time;
-    local_ordinal_type dirichlet_dofs;
-    local_ordinal_type dirichlet_values;
-
-public:
-    DirichletList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList);
-
-    /**
-     * @brief Return the number of Dirichlet BC.
-     */
-    inline local_ordinal_type getDirichletNumber() { return dirichlet_number; }
-
-    /**
-     * @brief Return the number of nodes for a
-     * given Dirichlet BC.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the BC ID.
-     * </ul>
-     */
-    inline local_ordinal_type getDirichletSize(local_ordinal_type i)
-    {
-        return dirichlet_nodesList(i, dirichlet_size);
-    }
-
-    /**
-     * @brief Return the global ID of the node n1 of 
-     * a given BC.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the BC ID,
-     *  <li> n1: the ID of the node on the current BC.
-     * </ul>
-     */
-    inline global_ordinal_type getDirichletNode(local_ordinal_type i, local_ordinal_type n1)
-    {
-        return dirichlet_nodesList(i, dirichlet_nodes + n1);
-    }
-
-    /**
-     * @brief Return whether the DOF j is fixed for a given BC.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the BC ID,
-     *  <li> j: the index of the DOF (0-3 if thermomechanical problems).
-     * </ul> 
-     */
-    inline scalar getDirichletDof(local_ordinal_type i, local_ordinal_type j)
-    {
-        return dirichlet_values_list(i, 0, dirichlet_dofs + j);
-    }
-
-    /**
-     * @brief Return the value of the fixed DOF for a given BC.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the BC ID,
-     *  <li> j: the index of the DOF (0-3 if thermomechanical problems).
-     * </ul> 
-     */
-    inline scalar getDirichletValue(local_ordinal_type i, local_ordinal_type j)
-    {
-        return dirichlet_values_list(i, 0, dirichlet_values + j);
-    }
-};
-}; // namespace katoptron
-
-#endif //KATOPTRON_DIRICHLETLIST_H
diff --git a/katoptron/src/DirichletList.hpp b/katoptron/src/DirichletList.hpp
deleted file mode 100644
index c26eabc8..00000000
--- a/katoptron/src/DirichletList.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-namespace katoptron
-{
-
-/**
- * @brief DirichletList constructor
- *
- * This constructor allocates 2 Kokkos::View which store all the required information related to each Dirichlet BC, including:
- * <ul>
- *  <li> all the Dirichlet nodes,
- *  <li> all the values of the Dirichlet BC.
- * </ul>
- *
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object,
- *  <li> elementsList: an RCP to an ElementList object.
- * </ul>
- */
-template <typename scalar>
-DirichletList<scalar>::DirichletList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList)
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-    typedef EnsembleTraits<scalar> ET;
-    const int ensemble_size = ET::size;
-
-    local_ordinal_type numDPN = map->numPrimalDPN;
-    dirichlet_number = pbl.duBCs.size();
-    local_ordinal_type maxNumNodesPerBC = 0;
-
-    std::vector<std::vector<global_ordinal_type>> bcNodes = {};
-
-    for (auto i = 0; i < dirichlet_number; ++i)
-    {
-        std::vector<global_ordinal_type> tmpMyBcNodes = {};
-        std::vector<global_ordinal_type> myBcNodes = {};
-
-        for (auto j = 0; j < pbl.duBCs[i]->nodes.size(); ++j)
-            tmpMyBcNodes.push_back(pbl.duBCs[i]->nodes[j]->row);
-
-        std::sort(tmpMyBcNodes.begin(), tmpMyBcNodes.end());
-
-        if (tmpMyBcNodes.size() >= 1)
-            myBcNodes.push_back(tmpMyBcNodes[0]);
-
-        for (auto ii = 1; ii < tmpMyBcNodes.size(); ++ii)
-            if (tmpMyBcNodes[ii] != tmpMyBcNodes[ii - 1])
-                myBcNodes.push_back(tmpMyBcNodes[ii]);
-
-        bcNodes.push_back(myBcNodes);
-        if (maxNumNodesPerBC < myBcNodes.size())
-            maxNumNodesPerBC = myBcNodes.size();
-    }
-
-    dirichlet_size = 0;
-    dirichlet_nodes = 1;
-    dirichlet_nodesList = Kokkos::View<int **, Kokkos::LayoutRight>("R", dirichlet_number, dirichlet_nodes + maxNumNodesPerBC);
-
-    for (auto i = 0; i < dirichlet_number; ++i)
-    {
-        dirichlet_nodesList(i, dirichlet_size) = bcNodes[i].size();
-        for (auto j = 0; j < bcNodes[i].size(); ++j)
-        {
-            dirichlet_nodesList(i, dirichlet_nodes + j) = bcNodes[i][j];
-        }
-    }
-
-    dirichlet_time = 0;
-    dirichlet_dofs = 1;
-    dirichlet_values = 1 + numDPN;
-    dirichlet_values_list = Kokkos::View<scalar ***, Kokkos::LayoutRight>("R", dirichlet_number, 1, 1 + 2 * numDPN);
-    for (auto i = 0; i < dirichlet_number; ++i)
-    {
-        dirichlet_values_list(i, 0, dirichlet_time) = 0.; //to change latter
-        for (auto j = 0; j < numDPN; ++j)
-            if (pbl.duBCs[i]->which_dof[j])
-                dirichlet_values_list(i, 0, dirichlet_dofs + j) = 1;
-            else
-                dirichlet_values_list(i, 0, dirichlet_dofs + j) = 0;
-
-        for (int j = 0; j < ensemble_size; ++j)
-        {
-            ET::coeff(dirichlet_values_list(i, 0, dirichlet_values + 0), j) = pbl.duBCs[i]->x_values[j];
-            ET::coeff(dirichlet_values_list(i, 0, dirichlet_values + 1), j) = pbl.duBCs[i]->y_values[j];
-            ET::coeff(dirichlet_values_list(i, 0, dirichlet_values + 2), j) = pbl.duBCs[i]->z_values[j];
-            if (numDPN == 4)
-                ET::coeff(dirichlet_values_list(i, 0, dirichlet_values + 3), j) = pbl.duBCs[i]->T_values[j];
-        }
-    }
-}
-}; // namespace katoptron
diff --git a/katoptron/src/DirichletListETI.cpp b/katoptron/src/DirichletListETI.cpp
deleted file mode 100644
index ea0ea71e..00000000
--- a/katoptron/src/DirichletListETI.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "DirichletList.h"
-#include "DirichletList.hpp"
-
-using namespace katoptron;
-
-template class DirichletList<double>;
-template class DirichletList<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>>;
-template class DirichletList<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>>;
-template class DirichletList<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>>;
-template class DirichletList<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>>;
\ No newline at end of file
diff --git a/katoptron/src/DiscreteProblem.h b/katoptron/src/DiscreteProblem.h
deleted file mode 100644
index 54a9c7d4..00000000
--- a/katoptron/src/DiscreteProblem.h
+++ /dev/null
@@ -1,99 +0,0 @@
-#ifndef KATOPTRON_DISCRETEPROBLEM_H
-#define KATOPTRON_DISCRETEPROBLEM_H
-
-#include "katoptron.h"
-#include "Map.h"
-#include "Domain.h"
-#include "Loads.h"
-#include "Algebraic.h"
-#include "ElementMatrices.h"
-#include "ElementVectors.h"
-
-#include <Xpetra_Map.hpp>
-#include <Xpetra_TpetraMap.hpp>
-#include <Xpetra_BlockedMap.hpp>
-#include <Xpetra_BlockedCrsMatrix.hpp>
-#include <Xpetra_BlockedMultiVector.hpp>
-#include <Xpetra_TpetraCrsMatrix.hpp>
-#include <Xpetra_TpetraMultiVector.hpp>
-#include <Xpetra_CrsMatrixWrap.hpp>
-//#include <Xpetra_UseShortNames.hpp>
-
-#include "LinearSolver.h"
-
-#include "Mortar.h"
-
-#include <mpi.h>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store all the information related to the discretized problem:
- * <ul>
- *  <li> the information related to the activity of the Lagrange multipliers,
- *  <li> the discretized domain,
- *  <li> the algebraic information.
- * </ul>
- */
-template <typename scalar>
-class DiscreteProblem
-{
-private:
-    Kokkos::View<scalar *, Kokkos::LayoutRight> old_old_activity;
-    Kokkos::View<scalar *, Kokkos::LayoutRight> old_activity;
-
-public:
-    //
-    // Convenience typedefs
-    //
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-    typedef Map::node_type node_type;
-    typedef Tpetra::Export<local_ordinal_type, global_ordinal_type> export_type;
-
-    typedef Map::tpetra_map_type tpetra_map_type;
-    typedef Map::xpetra_map_type xpetra_map_type;
-    typedef Map::xpetra_tmap_type xpetra_tmap_type;
-    typedef Map::xpetra_bmap_type xpetra_bmap_type;
-
-    typedef typename Vectors<scalar>::tpetra_vector_type tpetra_vector_type;
-    typedef typename Vectors<scalar>::tpetra_mvector_type tpetra_mvector_type;
-    typedef typename Vectors<scalar>::xpetra_bmvector_type xpetra_bmvector_type;
-    typedef typename Vectors<scalar>::xpetra_mvector_type xpetra_mvector_type;
-    typedef typename Vectors<scalar>::xpetra_tmvector_type xpetra_tmvector_type;
-
-    typedef typename Matrices<scalar>::tpetra_crs_type tpetra_crs_type;
-    typedef typename Matrices<scalar>::xpetra_crs_type xpetra_crs_type;
-    typedef typename Matrices<scalar>::xpetra_wcrs_type xpetra_wcrs_type;
-    typedef typename Matrices<scalar>::xpetra_bcrs_type xpetra_bcrs_type;
-    typedef typename Matrices<scalar>::xpetra_tcrs_type xpetra_tcrs_type;
-#ifndef SWIG
-    Teuchos::RCP<Domain<scalar>> domain;
-    Teuchos::RCP<Loads<scalar>> loads;
-    Teuchos::RCP<Algebraic<scalar>> algebraic;
-#endif
-    size_t numPrimalDPN;
-
-    DiscreteProblem(Problem &pbl, size_t _numPrimalDPN,
-                    Teuchos::RCP<Teuchos::ParameterList> randomParams,
-                    Kokkos::View<scalar *, Kokkos::LayoutLeft> m_rv_values);
-
-    ~DiscreteProblem()
-    {
-        std::cout << "~DiscreteProblem()\n";
-    }
-
-#ifndef SWIG
-    void createBlockMatrix(scalar gamma, bool write, bool merge);
-    void createBlockMVector(bool write);
-    void computeMatrices(void);
-    void computeContactMatrices(MPI_Comm comm);
-    void computeLoads(bool scaled = false);
-    Mask<scalar> updateActivity(int active_set_iteration);
-
-#endif
-};
-}; // namespace katoptron
-
-#endif //KATOPTRON_DISCRETEPROBLEM_H
diff --git a/katoptron/src/DiscreteProblem.hpp b/katoptron/src/DiscreteProblem.hpp
deleted file mode 100644
index 3a0332c0..00000000
--- a/katoptron/src/DiscreteProblem.hpp
+++ /dev/null
@@ -1,1424 +0,0 @@
-#include <Xpetra_MatrixFactory.hpp>
-#include <Xpetra_Matrix.hpp>
-#include <Xpetra_MatrixMatrix.hpp>
-#include <Xpetra_CrsMatrixWrap.hpp>
-#include <Xpetra_BlockedCrsMatrix.hpp>
-#include <Xpetra_CrsMatrix.hpp>
-#include <MueLu_Utilities_decl.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief DiscreteProblem constructor
- * 
- * This constructor constructs a katoptron::Map, a katoptron::Domain, a katoptron::Loads, and a katoptron::Algebraic.
- * The last three objects are stored as member data of the katoptron::DiscreteProblem object and include all
- * the information related to the problem to solve. See the documentation of the member data for more information on
- * the purpose of each class.
- * 
- * Arguments:
- * <ul>
- *  <li> A problem object,
- *  <li> An RCP to a ParameterList object which describes the random fields,
- *  <li> A Kokkos View of the values used in the discretization of the random fields.
- * </ul>
- */
-template <typename scalar>
-DiscreteProblem<scalar>::DiscreteProblem(Problem &pbl, size_t _numPrimalDPN,
-                                         Teuchos::RCP<Teuchos::ParameterList> randomParams,
-                                         Kokkos::View<scalar *, Kokkos::LayoutLeft> m_rv_values)
-{
-    numPrimalDPN = _numPrimalDPN;
-
-    LinearSolver::getTimers()["map"].start();
-    Teuchos::RCP<Map> map = Teuchos::rcp(new Map(pbl, numPrimalDPN));
-    LinearSolver::getTimers()["map"].stop();
-    LinearSolver::getTimers()["domain"].start();
-    domain = Teuchos::rcp(new Domain<scalar>(pbl, map, randomParams, m_rv_values));
-    LinearSolver::getTimers()["domain"].stop();
-    LinearSolver::getTimers()["loads"].start();
-    loads = Teuchos::rcp(new Loads<scalar>(pbl, map, domain));
-    LinearSolver::getTimers()["loads"].stop();
-    algebraic = Teuchos::rcp(new Algebraic<scalar>(map, domain));
-}
-
-/**
- * @brief Update the activity of the Lagrange multipliers
- * and return a Mask which stores true for the converged samples.
- * 
- * Argument:
- * <ul>
- *  <li> active_set_iteration: ID of the current active set iteration.
- * </ul>
- */
-template <typename scalar>
-Mask<scalar> DiscreteProblem<scalar>::updateActivity(int active_set_iteration)
-{
-    using Teuchos::Array;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    const size_t myRank = algebraic->map->mapDofs->getComm()->getRank();
-
-    // First, get the displacement solution,
-
-    RCP<tpetra_mvector_type> mx =
-        (Teuchos::rcp_dynamic_cast<xpetra_tmvector_type>(algebraic->vectors->solutionMultiVector))->getTpetra_MultiVector();
-    RCP<tpetra_vector_type> xl = mx->getVectorNonConst(0);
-
-    RCP<tpetra_vector_type> x = rcp(new tpetra_vector_type(algebraic->map->mapDofs, false));
-
-    RCP<xpetra_bmvector_type> blockedSol =
-        rcp(new xpetra_bmvector_type(algebraic->map->blockedMap, algebraic->vectors->solutionMultiVector));
-
-    RCP<tpetra_vector_type> l =
-        (Teuchos::rcp_dynamic_cast<xpetra_tmvector_type>(blockedSol->getMultiVector(1, true)))->getTpetra_MultiVector()->getVectorNonConst(0);
-
-    RCP<tpetra_vector_type> gap = rcp(new tpetra_vector_type(*algebraic->vectors->initialGap, Teuchos::Copy));
-
-    RCP<export_type> exportx = rcp(new export_type(algebraic->map->fullmap, algebraic->map->mapDofs));
-
-    x->doExport(*xl, *exportx, Tpetra::INSERT);
-
-    // Multiply it with B_G and remove initial gap
-
-    // gap = 1 * B_G * x - 1 * gap
-
-    algebraic->matrices->B_G->apply(*x, *gap, Teuchos::NO_TRANS, ((scalar)1.), ((scalar)-1.));
-
-    // sum lambda + c * the previously computed vector
-    double c = 1.;
-    l->update((scalar)c, *gap, (scalar)1.); // l = l + c*gap
-
-    // loop on the local lagrange and create the new activity
-
-    l->template sync<Kokkos::HostSpace>();
-    auto l_2d = l->template getLocalView<Kokkos::HostSpace>();
-
-    Mask<scalar> hasConverged;
-    const size_t ensemble_size = hasConverged.getSize();
-
-    for (size_t l = 0; l < ensemble_size; ++l)
-        hasConverged.set(l, true);
-
-    bool hasConverged_old = false;
-    if (active_set_iteration > 1)
-        hasConverged_old = true;
-
-    algebraic->matrices->B_2->resumeFill();
-    algebraic->matrices->C->resumeFill();
-    algebraic->matrices->Cb->resumeFill();
-
-    const size_t numDPN = algebraic->map->numPrimalDPN;
-
-    size_t numLMPN;
-    if (domain->contactsList->hasAtLeastOneSticking() && numDPN == 4)
-        numLMPN = 4;
-    else if (domain->contactsList->hasAtLeastOneSticking())
-        numLMPN = 3;
-    else if (numDPN == 4)
-        numLMPN = 2;
-    else
-        numLMPN = 1;
-
-    const int numMyLagrangeNum = algebraic->map->mapLagrangeDofs->getNodeNumElements();
-
-    const int numMyMechLagrangeNum = numMyLagrangeNum / numLMPN;
-
-    for (auto local_index = 0; local_index < numMyMechLagrangeNum; ++local_index)
-    {
-        global_ordinal_type lagrange_id = algebraic->map->mapLagrangeDofs->getGlobalElement(local_index);
-        global_ordinal_type node_id = algebraic->map->lm_to_dof[lagrange_id];
-        lagrange_id = lagrange_id * numLMPN;
-        local_ordinal_type interface_id = domain->contactsList->getInterfaceOfSlaveNode(node_id);
-
-        if (domain->contactsList->isNotUpdated(interface_id))
-            continue;
-
-        scalar old_mask = old_activity(local_index);
-        scalar old_old_mask = old_old_activity(local_index);
-        Mask<scalar> current_mask = (l_2d(local_index * numLMPN, 0) >= 0.);
-
-        scalar oneMask, oneNotMask;
-        mask_assign<scalar>(current_mask, oneMask) = {1., 0.};
-        mask_assign<scalar>(current_mask, oneNotMask) = {0., 1.};
-
-        if (active_set_iteration > 1)
-            if (!MaskLogic::AND(oneMask == old_old_mask))
-                hasConverged_old = false;
-
-        hasConverged = hasConverged && (oneMask == old_mask);
-
-        if (!MaskLogic::AND(oneMask == old_mask))
-        {
-            global_ordinal_type lagrange_id = algebraic->map->mapLagrangeDofs->getGlobalElement(local_index);
-
-            lagrange_id = lagrange_id * numLMPN;
-
-            // If the current Lagrange multiplier is active for every sample of the current ensemble,
-            // we can do the update without using the mask entries.
-            if (MaskLogic::AND(current_mask))
-            {
-                Teuchos::ArrayView<const local_ordinal_type> local_indices;
-                Teuchos::ArrayView<const scalar> values;
-
-                if (domain->contactsList->isSticking(interface_id))
-                {
-                    for (size_t j = 0; j < numLMPN; ++j)
-                    {
-                        algebraic->matrices->B->getLocalRowView(local_index * numLMPN + j, local_indices, values);
-
-                        for (auto k = 0; k < local_indices.size(); ++k)
-                        {
-                            global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                            algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + j,
-                                                                          Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                          Teuchos::tuple<scalar>(values[k]));
-                        }
-
-                        algebraic->matrices->C->replaceGlobalValues(lagrange_id + j,
-                                                                    Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                    Teuchos::tuple<scalar>((scalar)0.));
-
-                        algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + j,
-                                                                     Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                     Teuchos::tuple<scalar>((scalar)1.));
-                    }
-                }
-                else
-                {
-                    algebraic->matrices->B->getLocalRowView(local_index * numLMPN, local_indices, values);
-
-                    for (auto k = 0; k < local_indices.size(); ++k)
-                    {
-                        global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                        algebraic->matrices->B_2->replaceGlobalValues(lagrange_id,
-                                                                      Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                      Teuchos::tuple<scalar>(values[k]));
-                    }
-
-                    algebraic->matrices->C->replaceGlobalValues(lagrange_id,
-                                                                Teuchos::tuple<global_ordinal_type>(lagrange_id),
-                                                                Teuchos::tuple<scalar>((scalar)0.));
-
-                    algebraic->matrices->Cb->replaceGlobalValues(lagrange_id,
-                                                                 Teuchos::tuple<global_ordinal_type>(lagrange_id),
-                                                                 Teuchos::tuple<scalar>((scalar)1.));
-
-                    if (numLMPN == 2 || numLMPN == 4)
-                    {
-                        algebraic->matrices->B->getLocalRowView(local_index * numLMPN + numLMPN - 1, local_indices, values);
-
-                        for (auto k = 0; k < local_indices.size(); ++k)
-                        {
-                            global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                            algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                          Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                          Teuchos::tuple<scalar>(values[k]));
-                        }
-
-                        algebraic->matrices->C->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                    Teuchos::tuple<global_ordinal_type>(lagrange_id + numLMPN - 1),
-                                                                    Teuchos::tuple<scalar>((scalar)0.));
-
-                        algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                     Teuchos::tuple<global_ordinal_type>(lagrange_id + numLMPN - 1),
-                                                                     Teuchos::tuple<scalar>((scalar)1.));
-                    }
-                }
-            }
-            // If the current Lagrange multiplier is inactive for every sample of the current ensemble,
-            // we can do the update without using the mask entries.
-            else if (!MaskLogic::AND(current_mask))
-            {
-                Teuchos::ArrayView<const local_ordinal_type> local_indices;
-                Teuchos::ArrayView<const scalar> values;
-
-                if (domain->contactsList->isSticking(interface_id))
-                {
-                    for (size_t j = 0; j < numLMPN; ++j)
-                    {
-                        algebraic->matrices->B->getLocalRowView(local_index * numLMPN + j, local_indices, values);
-
-                        for (auto k = 0; k < local_indices.size(); ++k)
-                        {
-                            global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                            algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + j,
-                                                                          Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                          Teuchos::tuple<scalar>((scalar)0.));
-                        }
-
-                        algebraic->matrices->C->replaceGlobalValues(lagrange_id + j,
-                                                                    Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                    Teuchos::tuple<scalar>((scalar)1.));
-
-                        algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + j,
-                                                                     Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                     Teuchos::tuple<scalar>((scalar)0.));
-                    }
-                }
-                else
-                {
-                    algebraic->matrices->B->getLocalRowView(local_index * numLMPN, local_indices, values);
-
-                    for (auto k = 0; k < local_indices.size(); ++k)
-                    {
-                        global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                        algebraic->matrices->B_2->replaceGlobalValues(lagrange_id,
-                                                                      Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                      Teuchos::tuple<scalar>((scalar)0.));
-                    }
-
-                    algebraic->matrices->C->replaceGlobalValues(lagrange_id,
-                                                                Teuchos::tuple<global_ordinal_type>(lagrange_id),
-                                                                Teuchos::tuple<scalar>((scalar)1.));
-
-                    algebraic->matrices->Cb->replaceGlobalValues(lagrange_id,
-                                                                 Teuchos::tuple<global_ordinal_type>(lagrange_id),
-                                                                 Teuchos::tuple<scalar>((scalar)0.));
-
-                    if (numLMPN == 2 || numLMPN == 4)
-                    {
-                        algebraic->matrices->B->getLocalRowView(local_index * numLMPN + numLMPN - 1, local_indices, values);
-
-                        for (auto k = 0; k < local_indices.size(); ++k)
-                        {
-                            global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                            algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                          Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                          Teuchos::tuple<scalar>((scalar)0.));
-                        }
-
-                        algebraic->matrices->C->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                    Teuchos::tuple<global_ordinal_type>(lagrange_id + numLMPN - 1),
-                                                                    Teuchos::tuple<scalar>((scalar)1.));
-
-                        algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                     Teuchos::tuple<global_ordinal_type>(lagrange_id + numLMPN - 1),
-                                                                     Teuchos::tuple<scalar>((scalar)0.));
-                    }
-                }
-            }
-            // Else, if the activity of the current Lagrange multiplier depends on the samples, we use the mask to do the update.
-            else
-            {
-
-                Teuchos::ArrayView<const local_ordinal_type> local_indices;
-                Teuchos::ArrayView<const scalar> values;
-
-                if (domain->contactsList->isSticking(interface_id))
-                {
-                    for (size_t j = 0; j < numLMPN; ++j)
-                    {
-                        algebraic->matrices->B->getLocalRowView(local_index * numLMPN + j, local_indices, values);
-
-                        for (auto k = 0; k < local_indices.size(); ++k)
-                        {
-                            global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                            algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + j,
-                                                                          Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                          Teuchos::tuple<scalar>(oneMask * values[k]));
-                        }
-
-                        algebraic->matrices->C->replaceGlobalValues(lagrange_id + j,
-                                                                    Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                    Teuchos::tuple<scalar>(oneNotMask));
-
-                        algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + j,
-                                                                     Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                     Teuchos::tuple<scalar>(oneMask));
-                    }
-                }
-                else
-                {
-                    algebraic->matrices->B->getLocalRowView(local_index * numLMPN, local_indices, values);
-
-                    for (auto k = 0; k < local_indices.size(); ++k)
-                    {
-                        global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                        algebraic->matrices->B_2->replaceGlobalValues(lagrange_id,
-                                                                      Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                      Teuchos::tuple<scalar>(oneMask * values[k]));
-                    }
-
-                    algebraic->matrices->C->replaceGlobalValues(lagrange_id,
-                                                                Teuchos::tuple<global_ordinal_type>(lagrange_id),
-                                                                Teuchos::tuple<scalar>(oneNotMask));
-
-                    algebraic->matrices->Cb->replaceGlobalValues(lagrange_id,
-                                                                 Teuchos::tuple<global_ordinal_type>(lagrange_id),
-                                                                 Teuchos::tuple<scalar>(oneMask));
-
-                    if (numLMPN == 2 || numLMPN == 4)
-                    {
-                        algebraic->matrices->B->getLocalRowView(local_index * numLMPN + numLMPN - 1, local_indices, values);
-
-                        for (auto k = 0; k < local_indices.size(); ++k)
-                        {
-                            global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                            algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                          Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                          Teuchos::tuple<scalar>(oneMask * values[k]));
-                        }
-
-                        algebraic->matrices->C->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                    Teuchos::tuple<global_ordinal_type>(lagrange_id + numLMPN - 1),
-                                                                    Teuchos::tuple<scalar>(oneNotMask));
-
-                        algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + numLMPN - 1,
-                                                                     Teuchos::tuple<global_ordinal_type>(lagrange_id + numLMPN - 1),
-                                                                     Teuchos::tuple<scalar>(oneMask));
-                    }
-                }
-            }
-        }
-
-        old_old_activity(local_index) = old_activity(local_index);
-        old_activity(local_index) = oneMask;
-    }
-
-    algebraic->matrices->B_2->fillComplete(algebraic->map->mapDofs, algebraic->map->mapLagrangeDofs);
-    algebraic->matrices->C->fillComplete();
-    algebraic->matrices->Cb->fillComplete();
-
-    RCP<tpetra_vector_type> initialActiveGap(new tpetra_vector_type(algebraic->map->mapLagrangeDofs, true));
-    algebraic->matrices->Cb->apply(*algebraic->vectors->initialGap, *initialActiveGap);
-
-    RCP<xpetra_mvector_type> xg =
-        rcp(new xpetra_tmvector_type(initialActiveGap));
-    algebraic->vectors->rhsBlockedMultiVector->setMultiVector(1, xg, true);
-    algebraic->vectors->rhsMultiVector = algebraic->vectors->rhsBlockedMultiVector->Merge();
-
-    size_t numtasks = algebraic->map->mapDofs->getComm()->getSize();
-
-    double tmp;
-
-    if (myRank == 0)
-    {
-        Mask<scalar> globalHasConverged = hasConverged;
-        bool globalHasConverged_old = hasConverged_old;
-
-        for (size_t i = 1; i < numtasks; ++i)
-        {
-            for (size_t l = 0; l < ensemble_size; ++l)
-            {
-                MPI_Recv(&tmp, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
-                if (tmp < 0.)
-                    globalHasConverged.set(l, false);
-            }
-            MPI_Recv(&tmp, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
-            if (tmp < 0.)
-                globalHasConverged_old = false;
-        }
-        hasConverged = globalHasConverged;
-        hasConverged_old = globalHasConverged_old;
-
-        for (size_t i = 1; i < numtasks; ++i)
-        {
-            for (size_t l = 0; l < ensemble_size; ++l)
-            {
-                tmp = hasConverged.get(l) ? 1. : -1.;
-                MPI_Send(&tmp, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD);
-            }
-            tmp = hasConverged_old ? 1. : -1.;
-            MPI_Send(&tmp, 1, MPI_DOUBLE, i, 0, MPI_COMM_WORLD);
-        }
-    }
-    else
-    {
-        for (size_t l = 0; l < ensemble_size; ++l)
-        {
-            tmp = hasConverged.get(l) ? 1. : -1.;
-            MPI_Send(&tmp, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
-        }
-        tmp = hasConverged_old ? 1. : -1.;
-        MPI_Send(&tmp, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
-        for (size_t l = 0; l < ensemble_size; ++l)
-        {
-            MPI_Recv(&tmp, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
-            hasConverged.set(l, tmp > 0.);
-        }
-        MPI_Recv(&tmp, 1, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
-        hasConverged_old = (tmp > 0.);
-    }
-
-    if (hasConverged_old)
-    {
-        if (myRank == 0)
-        {
-            std::cout << "-----------------------" << std::endl;
-            std::cout << "---Has not converged---" << std::endl;
-            std::cout << "-----------------------" << std::endl;
-        }
-        return true;
-    }
-
-    return hasConverged;
-}
-
-/**
- * @brief Create the block matrix.
- * 
- * Arguments:
- * <ul>
- *  <li> gamma: the value used for the Augmented Lagrangian formulation,
- *  <li> write: a boolean which is used to write matrices on disk or not.
- * </ul>
- */
-template <typename scalar>
-void DiscreteProblem<scalar>::createBlockMatrix(scalar gamma, bool write, bool merge)
-{
-    using Teuchos::Array;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    const std::vector<RCP<const tpetra_map_type>> maps = {algebraic->map->mapDofs, algebraic->map->mapLagrangeDofs};
-
-    const size_t numDofs = algebraic->map->mapDofs->getGlobalNumElements();
-    const size_t numMyDofs = algebraic->map->mapDofs->getNodeNumElements();
-    const size_t numMyDofsWO = algebraic->map->mapDofsWO->getNodeNumElements();
-    Teuchos::ArrayView<const global_ordinal_type> myDofs = algebraic->map->mapDofs->getNodeElementList();
-    Teuchos::ArrayView<const global_ordinal_type> myDofsWO = algebraic->map->mapDofsWO->getNodeElementList();
-
-    const size_t numLagrangeDofs = algebraic->map->mapLagrangeDofs->getGlobalNumElements();
-    const size_t numMyLagrangeDofs = algebraic->map->mapLagrangeDofs->getNodeNumElements();
-    Teuchos::ArrayView<const global_ordinal_type> myLagrangeDofs = algebraic->map->mapLagrangeDofs->getNodeElementList();
-
-    Array<global_ordinal_type> myFullDofs(numMyDofs + numMyLagrangeDofs);
-    for (auto i = 0; i < numMyDofs; ++i)
-        myFullDofs[i] = myDofs[i];
-    for (auto i = 0; i < numMyLagrangeDofs; ++i)
-        myFullDofs[numMyDofs + i] = numDofs + myLagrangeDofs[i];
-
-    Array<global_ordinal_type> myFullDofsWO(numMyDofsWO + numMyLagrangeDofs);
-    for (auto i = 0; i < numMyDofsWO; ++i)
-        myFullDofsWO[i] = myDofsWO[i];
-    for (auto i = 0; i < numMyLagrangeDofs; ++i)
-        myFullDofsWO[numMyDofsWO + i] = numDofs + myLagrangeDofs[i];
-
-    algebraic->map->fullmap =
-        rcp(new tpetra_map_type(numDofs + numLagrangeDofs,
-                                myFullDofs,
-                                algebraic->map->mapDofs->getIndexBase(),
-                                algebraic->map->mapDofs->getComm()));
-    algebraic->map->fullmapWO =
-        rcp(new tpetra_map_type(numDofs + numLagrangeDofs,
-                                myFullDofsWO,
-                                algebraic->map->mapDofs->getIndexBase(),
-                                algebraic->map->mapDofs->getComm()));
-
-    RCP<xpetra_map_type> xfullmap = rcp(new xpetra_tmap_type(algebraic->map->fullmap));
-
-    const size_t myRank = algebraic->map->mapDofs->getComm()->getRank();
-    const size_t numLclIndices = (myRank == 0) ? numDofs + numLagrangeDofs : 0;
-
-    algebraic->map->fullmapOutput =
-        rcp(new tpetra_map_type(numDofs + numLagrangeDofs,
-                                numLclIndices,
-                                algebraic->map->mapDofs->getIndexBase(),
-                                algebraic->map->mapDofs->getComm()));
-
-    std::vector<RCP<const xpetra_map_type>> xsubmaps = {rcp(new xpetra_tmap_type(algebraic->map->mapDofs)), //algebraic->map->thermomecBlockedMap,
-                                                        rcp(new xpetra_tmap_type(algebraic->map->mapLagrangeDofs))};
-
-    algebraic->map->blockedMap =
-        rcp(new xpetra_bmap_type(xfullmap, xsubmaps, true));
-
-    algebraic->matrices->blockedMatrix =
-        rcp(new xpetra_bcrs_type(algebraic->map->blockedMap, algebraic->map->blockedMap, 8));
-
-    //Update B based on the initial activity
-
-    algebraic->matrices->B_2->resumeFill();
-    algebraic->matrices->C->resumeFill();
-    algebraic->matrices->Cb->resumeFill();
-
-    const size_t numDPN = algebraic->map->numPrimalDPN;
-
-    size_t numLMPN;
-    if (domain->contactsList->hasAtLeastOneSticking() && numDPN == 4)
-        numLMPN = 4;
-    else if (domain->contactsList->hasAtLeastOneSticking())
-        numLMPN = 3;
-    else if (numDPN == 4)
-        numLMPN = 2;
-    else
-        numLMPN = 1;
-
-    const int numMyLagrangeNum = algebraic->map->mapLagrangeDofs->getNodeNumElements();
-
-    const int numMyMechLagrangeNum = numMyLagrangeNum / numLMPN;
-
-    old_activity = Kokkos::View<scalar *, Kokkos::LayoutRight>("R", numMyMechLagrangeNum);
-    old_old_activity = Kokkos::View<scalar *, Kokkos::LayoutRight>("R", numMyMechLagrangeNum);
-
-    for (auto local_index = 0; local_index < numMyMechLagrangeNum; ++local_index)
-    {
-        global_ordinal_type lagrange_id = algebraic->map->mapLagrangeDofs->getGlobalElement(local_index);
-        global_ordinal_type node_id = algebraic->map->lm_to_dof[lagrange_id];
-        lagrange_id = lagrange_id * numLMPN;
-        local_ordinal_type interface_id = domain->contactsList->getInterfaceOfSlaveNode(node_id);
-        if (domain->contactsList->isInitiallyOpen(interface_id))
-        {
-            if (domain->contactsList->isNodeInitiallyClosed(interface_id, node_id))
-            {
-                old_activity(local_index) = (scalar)1.;
-                continue;
-            }
-            old_activity(local_index) = (scalar)0.;
-
-            Teuchos::ArrayView<const local_ordinal_type> local_indices;
-            Teuchos::ArrayView<const scalar> values;
-
-            for (size_t j = 0; j < numLMPN; ++j)
-            {
-                algebraic->matrices->B_2->getLocalRowView(local_index * numLMPN + j, local_indices, values);
-
-                for (auto k = 0; k < local_indices.size(); ++k)
-                {
-                    global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                    algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + j,
-                                                                  Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                  Teuchos::tuple<scalar>((scalar)0.));
-                }
-
-                algebraic->matrices->C->replaceGlobalValues(lagrange_id + j,
-                                                            Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                            Teuchos::tuple<scalar>((scalar)1.));
-
-                algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + j,
-                                                             Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                             Teuchos::tuple<scalar>((scalar)0.));
-            }
-        }
-        else
-        {
-            old_activity(local_index) = (scalar)1.;
-            if (domain->contactsList->isSticking(interface_id) == false && domain->contactsList->hasAtLeastOneSticking() == true)
-            {
-                Teuchos::ArrayView<const local_ordinal_type> local_indices;
-                Teuchos::ArrayView<const scalar> values;
-
-                for (size_t j = 1; j < numLMPN; ++j)
-                {
-                    algebraic->matrices->B_2->getLocalRowView(local_index * numLMPN + j, local_indices, values);
-
-                    for (auto k = 0; k < local_indices.size(); ++k)
-                    {
-                        global_ordinal_type column_index = algebraic->matrices->B->getColMap()->getGlobalElement(local_indices[k]);
-
-                        algebraic->matrices->B_2->replaceGlobalValues(lagrange_id + j,
-                                                                      Teuchos::tuple<global_ordinal_type>(column_index),
-                                                                      Teuchos::tuple<scalar>((scalar)0.));
-                    }
-
-                    algebraic->matrices->C->replaceGlobalValues(lagrange_id + j,
-                                                                Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                Teuchos::tuple<scalar>((scalar)1.));
-
-                    algebraic->matrices->Cb->replaceGlobalValues(lagrange_id + j,
-                                                                 Teuchos::tuple<global_ordinal_type>(lagrange_id + j),
-                                                                 Teuchos::tuple<scalar>((scalar)0.));
-                }
-            }
-        }
-    }
-    algebraic->matrices->B_2->fillComplete(algebraic->map->mapDofs, algebraic->map->mapLagrangeDofs);
-    algebraic->matrices->C->fillComplete();
-    algebraic->matrices->Cb->fillComplete();
-
-    algebraic->matrices->xB = rcp(new xpetra_tcrs_type(algebraic->matrices->B_2));
-    algebraic->matrices->xB_T = rcp(new xpetra_tcrs_type(algebraic->matrices->B_T));
-    algebraic->matrices->xC = rcp(new xpetra_tcrs_type(algebraic->matrices->C));
-
-    algebraic->matrices->xwB = rcp(new xpetra_wcrs_type(algebraic->matrices->xB));
-    algebraic->matrices->xwB_T = rcp(new xpetra_wcrs_type(algebraic->matrices->xB_T));
-    algebraic->matrices->xwC = rcp(new xpetra_wcrs_type(algebraic->matrices->xC));
-
-    RCP<Xpetra::Matrix<scalar, local_ordinal_type, global_ordinal_type, node_type>> CTC = Teuchos::null;
-    RCP<Xpetra::Matrix<scalar, local_ordinal_type, global_ordinal_type, node_type>> ApCTC = Teuchos::null;
-    std::string MatrixMatrix_output_file = "MatrixMatrix_out.txt";
-    std::ofstream MatrixMatrix_ofstream(MatrixMatrix_output_file);
-    RCP<Teuchos::FancyOStream> verbOut = Teuchos::getFancyOStream(Teuchos::rcpFromRef(MatrixMatrix_ofstream));
-    CTC =
-        Xpetra::MatrixMatrix<scalar, local_ordinal_type, global_ordinal_type, node_type>::Multiply(*(algebraic->matrices->xwB_T),
-                                                                                                   false,
-                                                                                                   *(algebraic->matrices->xwB),
-                                                                                                   false,
-                                                                                                   *verbOut);
-    RCP<xpetra_bcrs_type> bA = Teuchos::rcp_dynamic_cast<xpetra_bcrs_type>(algebraic->matrices->A);
-
-    if (gamma > 0.)
-    {
-        if (bA != Teuchos::null && merge)
-            Xpetra::MatrixMatrix<scalar, local_ordinal_type, global_ordinal_type, node_type>::TwoMatrixAdd(*CTC,
-                                                                                                           false,
-                                                                                                           gamma,
-                                                                                                           *(bA->Merge()),
-                                                                                                           false,
-                                                                                                           (scalar)1.,
-                                                                                                           ApCTC,
-                                                                                                           *verbOut);
-        else
-            Xpetra::MatrixMatrix<scalar, local_ordinal_type, global_ordinal_type, node_type>::TwoMatrixAdd(*CTC,
-                                                                                                           false,
-                                                                                                           gamma,
-                                                                                                           *(algebraic->matrices->A),
-                                                                                                           false,
-                                                                                                           (scalar)1.,
-                                                                                                           ApCTC,
-                                                                                                           *verbOut);
-    }
-    else
-    {
-        if (bA != Teuchos::null && merge)
-            ApCTC = bA->Merge();
-        else
-            ApCTC = algebraic->matrices->A;
-    }
-
-    algebraic->matrices->blockedMatrix->setMatrix(0, 0, ApCTC);
-    algebraic->matrices->blockedMatrix->setMatrix(0, 1, algebraic->matrices->xwB_T);
-    algebraic->matrices->blockedMatrix->setMatrix(1, 0, algebraic->matrices->xwB);
-    algebraic->matrices->blockedMatrix->setMatrix(1, 1, algebraic->matrices->xwC);
-
-    algebraic->matrices->blockedMatrix->fillComplete();
-    RCP<const xpetra_wcrs_type> tmpOp = Teuchos::rcp_dynamic_cast<const xpetra_wcrs_type>(ApCTC);
-    const RCP<const xpetra_tcrs_type> &tmp_ECrsMtx = Teuchos::rcp_dynamic_cast<const xpetra_tcrs_type>(tmpOp->getCrsMatrix());
-    RCP<const tpetra_crs_type> tpetra_ApCTC = tmp_ECrsMtx->getTpetra_CrsMatrix();
-
-    if (write)
-        Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeSparseFile(std::string("ApCTC_mm.txt"), tpetra_ApCTC);
-}
-
-/**
- * @brief Create the block vectors.
- * 
- * Argument:
- * <ul>
- *  <li> write: a boolean which is used to write vectors on disk or not.
- * </ul>
- */
-template <typename scalar>
-void DiscreteProblem<scalar>::createBlockMVector(bool write)
-{
-    using Teuchos::Array;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    RCP<tpetra_vector_type> intialContactPosition(new tpetra_vector_type(algebraic->map->mapDofs, true));
-    algebraic->vectors->initialGap = rcp(new tpetra_vector_type(algebraic->map->mapLagrangeDofs, true));
-    RCP<tpetra_vector_type> initialActiveGap(new tpetra_vector_type(algebraic->map->mapLagrangeDofs, true));
-
-    algebraic->vectors->lagrange = rcp(new tpetra_vector_type(algebraic->map->mapLagrangeDofs, true));
-
-    {
-        size_t numMyContacts = domain->contactsList->getContactNumber();
-        size_t numPrimalDPN = algebraic->map->numPrimalDPN;
-        size_t numMPrimalDPN = 3;
-        size_t offSet = 0;
-        if (numPrimalDPN == 4)
-            offSet = algebraic->map->mapNodes->getGlobalNumElements();
-
-        for (auto i = 0; i < numMyContacts; ++i)
-        {
-            size_t numMySlaveNodes = domain->contactsList->getSlaveNodesSize(i);
-            for (auto j = 0; j < numMySlaveNodes; ++j)
-            {
-                // get unique node id
-                auto global_nodeid = domain->contactsList->getSlaveNode(i, j);
-                if (algebraic->map->mapNodes->isNodeGlobalElement(global_nodeid))
-                {
-                    auto local_nodeid = algebraic->map->mapNodesWO->getLocalElement(global_nodeid);
-                    for (auto k = 0; k < 3; ++k)
-                    {
-                        scalar tmp = domain->nodesList->nodes(local_nodeid, k) +
-                                     domain->contactsList->getSlaveNormal(i, k) *
-                                         loads->preloadList->getPreloadValue(i);
-                        intialContactPosition->replaceGlobalValue(offSet + global_nodeid * numMPrimalDPN + k, tmp);
-                    }
-                }
-            }
-
-            size_t numMyMasterNodes = domain->contactsList->getMasterNodesSize(i);
-            for (auto j = 0; j < numMyMasterNodes; ++j)
-            {
-                // get unique node id
-                auto global_nodeid = domain->contactsList->getMasterNode(i, j);
-                if (algebraic->map->mapNodes->isNodeGlobalElement(global_nodeid))
-                {
-                    auto local_nodeid = algebraic->map->mapNodesWO->getLocalElement(global_nodeid);
-                    for (auto k = 0; k < 3; ++k)
-                        intialContactPosition->replaceGlobalValue(offSet + global_nodeid * numMPrimalDPN + k,
-                                                                  ((scalar)domain->nodesList->nodes(local_nodeid, k)));
-                }
-            }
-        }
-    }
-
-    algebraic->matrices->B_G->apply(*intialContactPosition, *algebraic->vectors->initialGap, Teuchos::NO_TRANS, ((scalar)-1.));
-
-    algebraic->matrices->Cb->apply(*algebraic->vectors->initialGap, *initialActiveGap);
-
-    // TODO: fix me when there is mesh tying and contact together!
-    if (domain->contactsList->isTying(0))
-        initialActiveGap->scale((scalar)0.);
-
-    if (write)
-        Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("initialActiveGap_mm.txt"), initialActiveGap);
-
-    RCP<xpetra_mvector_type> xb =
-        rcp(new xpetra_tmvector_type(algebraic->vectors->b));
-
-    RCP<xpetra_mvector_type> xg =
-        rcp(new xpetra_tmvector_type(initialActiveGap));
-
-    RCP<xpetra_mvector_type> xx =
-        rcp(new xpetra_tmvector_type(algebraic->vectors->x));
-
-    RCP<xpetra_mvector_type> xlagrange =
-        rcp(new xpetra_tmvector_type(algebraic->vectors->lagrange));
-
-    algebraic->vectors->rhsBlockedMultiVector =
-        rcp(new xpetra_bmvector_type(algebraic->map->blockedMap, 1, true));
-
-    algebraic->vectors->solutionBlockedMultiVector =
-        rcp(new xpetra_bmvector_type(algebraic->map->blockedMap, 1, true));
-
-    algebraic->vectors->rhsBlockedMultiVector->setMultiVector(0, xb, true);
-    algebraic->vectors->rhsBlockedMultiVector->setMultiVector(1, xg, true);
-
-    algebraic->vectors->solutionBlockedMultiVector->setMultiVector(0, xx, true);
-    algebraic->vectors->solutionBlockedMultiVector->setMultiVector(1, xlagrange, true);
-
-    algebraic->vectors->rhsMultiVector = algebraic->vectors->rhsBlockedMultiVector->Merge();
-    algebraic->vectors->solutionMultiVector = algebraic->vectors->solutionBlockedMultiVector->Merge();
-}
-
-/**
- * @brief Compute the contacts matrices.
- * 
- * Argument:
- * <ul>
- *  <li> comm: the used MPI communicator.
- * </ul>
- */
-template <typename scalar>
-void DiscreteProblem<scalar>::computeContactMatrices(MPI_Comm comm)
-{
-    compute_B<scalar>(algebraic->matrices,
-                      domain->elementsList,
-                      domain->nodesList,
-                      domain->contactsList,
-                      algebraic->map, comm);
-}
-
-/**
- * @brief Compute the primal matrix.
- */
-template <typename scalar>
-void DiscreteProblem<scalar>::computeMatrices(void)
-{
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    typedef KokkosSparse::CrsMatrix<scalar, local_ordinal_type, typename tpetra_crs_type::execution_space> local_matrix_type;
-
-    typedef Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> elem_matrix_view_type;
-
-    local_matrix_type local_L, local_K, local_S;
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-    {
-        algebraic->matrices->L->resumeFill();
-        algebraic->matrices->L->setAllToScalar((scalar)0.0);
-
-        local_L = algebraic->matrices->L->getLocalMatrix();
-    }
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-    {
-        algebraic->matrices->K->resumeFill();
-        algebraic->matrices->K->setAllToScalar((scalar)0.0);
-
-        local_K = algebraic->matrices->K->getLocalMatrix();
-    }
-    if (numPrimalDPN == 4)
-    {
-        algebraic->matrices->S->resumeFill();
-        algebraic->matrices->S->setAllToScalar((scalar)0.0);
-
-        local_S = algebraic->matrices->S->getLocalMatrix();
-    }
-
-    auto numMyElems = domain->elementsList->getElementNumber();
-
-    elem_matrix_view_type K, L, S;
-
-#ifdef KOKKOS_ENABLE_DEPRECATED_CODE
-    int pool_size = Kokkos::DefaultExecutionSpace::thread_pool_size();
-#else
-    int pool_size = Kokkos::DefaultExecutionSpace::impl_thread_pool_size();
-#endif
-    int max_element_size = 1;
-
-    for (int i_elem = 0; i_elem < numMyElems; ++i_elem)
-    {
-        if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::HEX8))
-        {
-            max_element_size = 8;
-            break;
-        }
-        if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::TETRA4))
-        {
-            max_element_size = 4;
-            break;
-        }
-    }
-
-    K = Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A",
-                                                                                     pool_size,
-                                                                                     3 * max_element_size,
-                                                                                     3 * max_element_size);
-    L = Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A",
-                                                                                     pool_size,
-                                                                                     max_element_size,
-                                                                                     max_element_size);
-    S = Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A",
-                                                                                     pool_size,
-                                                                                     3 * max_element_size,
-                                                                                     max_element_size);
-
-    ElementMatrices<scalar, static_cast<int>(tbox::ElType::HEX8), 8> *elementMatrices_HEX8 =
-        new ElementMatrices<scalar, static_cast<int>(tbox::ElType::HEX8), 8>(domain, numPrimalDPN, pool_size);
-    ElementMatrices<scalar, static_cast<int>(tbox::ElType::TETRA4), 4> *elementMatrices_TETRA4 =
-        new ElementMatrices<scalar, static_cast<int>(tbox::ElType::TETRA4), 4>(domain, numPrimalDPN, pool_size);
-
-    Kokkos::parallel_for(
-        numMyElems, KOKKOS_LAMBDA(const int i_elem) {
-            bool bContinue = true;
-
-#ifdef KOKKOS_ENABLE_DEPRECATED_CODE
-            int i_thread = Kokkos::DefaultExecutionSpace::thread_pool_rank();
-#else
-            int i_thread = Kokkos::DefaultExecutionSpace::impl_thread_pool_rank();
-#endif
-            const int e_size = domain->elementsList->getElementSize(i_elem);
-
-            auto K_e = subview(K, i_thread, make_pair(0, 3 * e_size), make_pair(0, 3 * e_size));
-            auto L_e = subview(L, i_thread, make_pair(0, e_size), make_pair(0, e_size));
-            auto S_e = subview(S, i_thread, make_pair(0, 3 * e_size), make_pair(0, e_size));
-
-            if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::HEX8))
-            {
-                elementMatrices_HEX8->compute(i_elem, i_thread);
-                Kokkos::deep_copy(K_e, elementMatrices_HEX8->getK(i_thread));
-                Kokkos::deep_copy(L_e, elementMatrices_HEX8->getL(i_thread));
-                Kokkos::deep_copy(S_e, elementMatrices_HEX8->getS(i_thread));
-            }
-
-            else if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::TETRA4))
-            {
-                elementMatrices_TETRA4->compute(i_elem, i_thread);
-                Kokkos::deep_copy(K_e, elementMatrices_TETRA4->getK(i_thread));
-                Kokkos::deep_copy(L_e, elementMatrices_TETRA4->getL(i_thread));
-                Kokkos::deep_copy(S_e, elementMatrices_TETRA4->getS(i_thread));
-            }
-            else
-                bContinue = false;
-
-            if (bContinue)
-                for (auto i = 0; i < e_size; ++i)
-                {
-                    local_ordinal_type node_i = domain->elementsList->getElementNode(i_elem, i);
-                    global_ordinal_type global_node_id_i = algebraic->map->mapNodesWO->getGlobalElement(node_i);
-                    // Test if mapNodes ownes global_node_id_i
-                    if (algebraic->map->mapNodes->isNodeGlobalElement(global_node_id_i))
-                    {
-                        local_ordinal_type local_node_id_i = algebraic->map->mapNodes->getLocalElement(global_node_id_i);
-                        for (auto j = 0; j < e_size; ++j)
-                        {
-                            local_ordinal_type node_j = domain->elementsList->getElementNode(i_elem, j);
-
-                            if (numPrimalDPN == 4 || numPrimalDPN == 1)
-                            {
-                                local_ordinal_type cols = node_j;
-                                scalar vals = L_e(i, j);
-
-                                local_L.sumIntoValues(local_node_id_i, &cols, 1, &vals, false, true);
-                            }
-                            if (numPrimalDPN == 4 || numPrimalDPN == 3)
-                            {
-                                for (auto k = 0; k < 3; ++k)
-                                    for (auto l = 0; l < 3; ++l)
-                                    {
-                                        local_ordinal_type cols = 3 * node_j + l;
-                                        scalar vals = K_e(3 * i + k, 3 * j + l);
-                                        local_K.sumIntoValues(3 * local_node_id_i + k, &cols, 1, &vals, false, true);
-                                    }
-                            }
-                            if (numPrimalDPN == 4)
-                            {
-                                for (auto k = 0; k < 3; ++k)
-                                {
-                                    local_ordinal_type cols = node_j;
-                                    scalar vals = S_e(3 * i + k, j);
-                                    local_S.sumIntoValues(3 * local_node_id_i + k, &cols, 1, &vals, false, true);
-                                }
-                            }
-                        }
-                    }
-                }
-        });
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-    {
-        algebraic->matrices->L->fillComplete();
-    }
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-    {
-        algebraic->matrices->K->fillComplete();
-    }
-    if (numPrimalDPN == 4)
-    {
-        algebraic->matrices->S->fillComplete();
-    }
-
-    delete elementMatrices_HEX8;
-    delete elementMatrices_TETRA4;
-
-    if (numPrimalDPN == 4)
-    {
-        RCP<xpetra_bcrs_type> bA = rcp(new xpetra_bcrs_type(algebraic->map->thermomecBlockedMap, algebraic->map->thermomecBlockedMap, 8));
-
-        RCP<xpetra_crs_type> xL = rcp(new xpetra_tcrs_type(algebraic->matrices->L));
-        RCP<xpetra_crs_type> xK = rcp(new xpetra_tcrs_type(algebraic->matrices->K));
-        RCP<xpetra_crs_type> xS = rcp(new xpetra_tcrs_type(algebraic->matrices->S));
-
-        RCP<xpetra_wcrs_type> xwL = rcp(new xpetra_wcrs_type(xL));
-        RCP<xpetra_wcrs_type> xwK = rcp(new xpetra_wcrs_type(xK));
-        RCP<xpetra_wcrs_type> xwS = rcp(new xpetra_wcrs_type(xS));
-
-        bA->setMatrix(0, 0, xwL);
-        bA->setMatrix(1, 0, xwS);
-        bA->setMatrix(1, 1, xwK);
-
-        bA->fillComplete();
-
-        algebraic->matrices->A = bA;
-    }
-    else if (numPrimalDPN == 3)
-    {
-        RCP<xpetra_crs_type> xK = rcp(new xpetra_tcrs_type(algebraic->matrices->K));
-        algebraic->matrices->A = rcp(new xpetra_wcrs_type(xK));
-    }
-    else
-    {
-        RCP<xpetra_crs_type> xL = rcp(new xpetra_tcrs_type(algebraic->matrices->L));
-        algebraic->matrices->A = rcp(new xpetra_wcrs_type(xL));
-    }
-}
-
-/**
- * @brief Compute the rhs.
- * 
- * Argument:
- * <ul>
- *  <li> scaled: a boolean which describes whether the system is scaled or not.
- * </ul>
- */
-template <typename scalar>
-void DiscreteProblem<scalar>::computeLoads(bool scaled)
-{
-
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-    using Teuchos::tuple;
-
-    typedef Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> elem_matrix_view_type;
-
-    elem_matrix_view_type N, N_S;
-
-    auto numMyElems = domain->elementsList->getElementNumber();
-
-#ifdef KOKKOS_ENABLE_DEPRECATED_CODE
-    int pool_size = Kokkos::DefaultExecutionSpace::thread_pool_size();
-#else
-    int pool_size = Kokkos::DefaultExecutionSpace::impl_thread_pool_size();
-#endif
-    int max_element_size = 1;
-    int max_element_size_S = 1;
-
-    for (int i_elem = 0; i_elem < numMyElems; ++i_elem)
-    {
-        if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::HEX8))
-        {
-            max_element_size = 8;
-            max_element_size_S = 4;
-            break;
-        }
-        if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::TETRA4))
-        {
-            max_element_size = 4;
-            max_element_size_S = 3;
-            break;
-        }
-    }
-    N = elem_matrix_view_type("A", pool_size, max_element_size, max_element_size);
-    N_S = elem_matrix_view_type("A", pool_size, max_element_size_S, max_element_size_S);
-
-    ElementVectors<scalar, static_cast<int>(tbox::ElType::TRI3), 3> *elementVectors_TRI3 =
-        new ElementVectors<scalar, static_cast<int>(tbox::ElType::TRI3), 3>(domain, numPrimalDPN, pool_size);
-    ElementVectors<scalar, static_cast<int>(tbox::ElType::QUAD4), 4> *elementVectors_QUAD4 =
-        new ElementVectors<scalar, static_cast<int>(tbox::ElType::QUAD4), 4>(domain, numPrimalDPN, pool_size);
-    ElementVectors<scalar, static_cast<int>(tbox::ElType::TETRA4), 4> *elementVectors_TETRA4 =
-        new ElementVectors<scalar, static_cast<int>(tbox::ElType::TETRA4), 4>(domain, numPrimalDPN, pool_size);
-    ElementVectors<scalar, static_cast<int>(tbox::ElType::HEX8), 8> *elementVectors_HEX8 =
-        new ElementVectors<scalar, static_cast<int>(tbox::ElType::HEX8), 8>(domain, numPrimalDPN, pool_size);
-
-    RCP<tpetra_vector_type> bWO = rcp(new tpetra_vector_type(algebraic->map->mapDofsWO, true));
-
-    auto bWO_view = bWO->getLocalViewHost();
-
-    // ------------------------------------------
-    //
-    //          volumetric heat sources
-    //
-    // ------------------------------------------
-
-    auto numMySources = loads->sourcesList->getSourceNumber();
-
-    for (auto i = 0; i < numMySources; ++i)
-    {
-        auto currentSourceSize = loads->sourcesList->getSourceSize(i);
-        Kokkos::parallel_for(
-            currentSourceSize, KOKKOS_LAMBDA(const int e1) {
-                local_ordinal_type i_elem = loads->sourcesList->getSourceElement(i, e1);
-#ifdef KOKKOS_ENABLE_DEPRECATED_CODE
-                int i_thread = Kokkos::DefaultExecutionSpace::thread_pool_rank();
-#else
-                int i_thread = Kokkos::DefaultExecutionSpace::impl_thread_pool_rank();
-#endif
-                const int e_size = domain->elementsList->getElementSize(i_elem);
-
-                auto N_e = subview(N, i_thread, make_pair(0, e_size), make_pair(0, e_size));
-
-                bool bContinue = true;
-
-                if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::HEX8))
-                {
-                    elementVectors_HEX8->compute(i_elem, i_thread);
-                    Kokkos::deep_copy(N_e, elementVectors_HEX8->getN(i_thread));
-                }
-                else if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::TETRA4))
-                {
-                    elementVectors_TETRA4->compute(i_elem, i_thread);
-                    Kokkos::deep_copy(N_e, elementVectors_TETRA4->getN(i_thread));
-                }
-                else
-                    bContinue = false;
-
-                if (bContinue)
-                {
-                    for (auto ii = 0; ii < e_size; ++ii)
-                    {
-                        local_ordinal_type local_i = domain->elementsList->getElementNode(i_elem, ii);
-                        global_ordinal_type global_i = algebraic->map->mapNodesWO->getGlobalElement(local_i);
-
-                        // Test if mapDofs ownes global_i
-                        if (algebraic->map->mapNodes->isNodeGlobalElement(global_i))
-                        {
-                            scalar tmp = 0.;
-
-                            for (auto jj = 0; jj < e_size; ++jj)
-                                tmp += N_e(ii, jj);
-
-                            tmp *= loads->sourcesList->getSourceValue(i);
-
-                            Kokkos::atomic_fetch_add(&bWO_view(local_i, 0), tmp);
-                        }
-                    }
-                }
-            });
-    }
-
-    // ------------------------------------------
-    //
-    //       von Neumann boundary conditions
-    //
-    // ------------------------------------------
-
-    auto numMynBCs = loads->neumannList->getNeumannNumber();
-
-    const size_t numNodes = algebraic->map->mapNodes->getGlobalNumElements();
-    //const size_t numMyNodes = algebraic->map->mapNodes->getNodeNumElements();
-    const size_t numMyNodesWO = algebraic->map->mapNodesWO->getNodeNumElements();
-
-    for (auto i = 0; i < numMynBCs; ++i)
-    {
-        auto currentBCSize = loads->neumannList->getNeumannSize(i);
-        Kokkos::parallel_for(
-            currentBCSize, KOKKOS_LAMBDA(const int e1) {
-                local_ordinal_type i_elem = loads->neumannList->getNeumannElement(i, e1);
-
-#ifdef KOKKOS_ENABLE_DEPRECATED_CODE
-                int i_thread = Kokkos::DefaultExecutionSpace::thread_pool_rank();
-#else
-                int i_thread = Kokkos::DefaultExecutionSpace::impl_thread_pool_rank();
-#endif
-                const int e_size = domain->elementsList->getElementSize(i_elem);
-
-                auto N_e = subview(N_S, i_thread, make_pair(0, e_size), make_pair(0, e_size));
-
-                bool bContinue = true;
-
-                if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::TRI3))
-                {
-                    elementVectors_TRI3->compute(i_elem, i_thread);
-                    Kokkos::deep_copy(N_e, elementVectors_TRI3->getN(i_thread));
-                }
-                else if (domain->elementsList->getElementType(i_elem) == static_cast<int>(tbox::ElType::QUAD4))
-                {
-                    elementVectors_QUAD4->compute(i_elem, i_thread);
-                    Kokkos::deep_copy(N_e, elementVectors_QUAD4->getN(i_thread));
-                }
-                else
-                    bContinue = false;
-
-                if (bContinue)
-                {
-                    for (auto j = 0; j < numPrimalDPN; ++j)
-                    {
-                        scalar which_dof = loads->neumannList->getNeumannDof(i, j);
-                        scalar value = loads->neumannList->getNeumannValue(i, j);
-                        if (which_dof == (scalar)1)
-                        {
-                            for (auto ii = 0; ii < e_size; ++ii)
-                            {
-                                local_ordinal_type local_i;
-                                if (j == 3)
-                                    local_i = domain->elementsList->getElementNode(i_elem, ii);
-                                else
-                                {
-                                    if (numPrimalDPN == 4)
-                                        local_i = numMyNodesWO + 3 * domain->elementsList->getElementNode(i_elem, ii) + j;
-                                    else
-                                        local_i = 3 * domain->elementsList->getElementNode(i_elem, ii) + j;
-                                }
-
-                                scalar tmp = 0.;
-
-                                for (auto jj = 0; jj < e_size; ++jj)
-                                    tmp += N_e(ii, jj);
-
-                                tmp *= value;
-
-                                Kokkos::atomic_fetch_add(&bWO_view(local_i, 0), tmp);
-                            }
-                        }
-                    }
-                }
-            });
-    }
-
-    // ------------------------------------------
-    //
-    //        Dirichlet boundary conditions
-    //
-    // ------------------------------------------
-
-    Tpetra::Export<> exportBWO(algebraic->map->mapDofsWO, algebraic->map->mapDofs);
-    algebraic->vectors->b->doExport(*bWO, exportBWO, Tpetra::ADD);
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-        algebraic->matrices->K->resumeFill();
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-        algebraic->matrices->L->resumeFill();
-    if (numPrimalDPN == 4)
-        algebraic->matrices->S->resumeFill();
-
-    auto numMyBCs = loads->dirichletList->getDirichletNumber();
-    for (auto i = 0; i < numMyBCs; ++i)
-    {
-        auto currentBCSize = loads->dirichletList->getDirichletSize(i);
-        for (int i_node = 0; i_node < currentBCSize; ++i_node)
-        {
-            global_ordinal_type n1 = loads->dirichletList->getDirichletNode(i, i_node);
-
-            if (algebraic->map->mapNodes->isNodeGlobalElement(n1))
-                for (auto j = 0; j < numPrimalDPN; ++j)
-                {
-                    scalar which_dof = loads->dirichletList->getDirichletDof(i, j);
-
-                    if (which_dof == (scalar)1)
-                    {
-                        global_ordinal_type global_index, global_index_0, global_index_r0;
-
-                        bool thermo = false;
-
-                        if (j == 3)
-                        {
-                            global_index_0 = 0;
-                            global_index_r0 = n1;
-
-                            thermo = true;
-                        }
-                        else
-                        {
-                            if (numPrimalDPN == 4)
-                                global_index_0 = numNodes;
-                            else
-                                global_index_0 = 0;
-                            global_index_r0 = 3 * n1 + j;
-                        }
-
-                        global_index = global_index_0 + global_index_r0;
-
-                        Teuchos::Array<global_ordinal_type> global_indices;
-
-                        if (thermo)
-                        {
-                            size_t numColInds = algebraic->graph->L->getNumEntriesInGlobalRow(global_index);
-                            global_indices.resize(numColInds);
-                            algebraic->graph->L->getGlobalRowCopy(global_index, global_indices(), numColInds);
-
-                            // Replace the initialized elements by zero
-                            for (auto k = 0; k < numColInds; ++k)
-                                algebraic->matrices->L->replaceGlobalValues(global_index,
-                                                                            tuple<global_ordinal_type>(global_indices[k]),
-                                                                            tuple<scalar>(scalar(0.0)));
-
-                            // Put one on the diagonal element
-                            algebraic->matrices->L->replaceGlobalValues(global_index,
-                                                                        tuple<global_ordinal_type>(global_index),
-                                                                        tuple<scalar>(scalar(1.0)));
-                        }
-                        else
-                        {
-                            size_t numColInds = algebraic->graph->K->getNumEntriesInGlobalRow(global_index_r0);
-                            global_indices.resize(numColInds);
-                            algebraic->graph->K->getGlobalRowCopy(global_index_r0, global_indices(), numColInds);
-
-                            // Replace the initialized elements by zero
-                            for (auto k = 0; k < numColInds; ++k)
-                                algebraic->matrices->K->replaceGlobalValues(global_index_r0,
-                                                                            tuple<global_ordinal_type>(global_indices[k]),
-                                                                            tuple<scalar>(scalar(0.0)));
-
-                            // Put one on the diagonal element
-                            algebraic->matrices->K->replaceGlobalValues(global_index_r0,
-                                                                        tuple<global_ordinal_type>(global_index_r0),
-                                                                        tuple<scalar>(scalar(1.0)));
-
-                            if (numPrimalDPN == 4)
-                            {
-                                size_t numColInds = algebraic->graph->S->getNumEntriesInGlobalRow(global_index_r0);
-                                global_indices.resize(numColInds);
-                                algebraic->graph->S->getGlobalRowCopy(global_index_r0, global_indices(), numColInds);
-
-                                // Replace the initialized elements by zero
-                                for (auto k = 0; k < numColInds; ++k)
-                                    algebraic->matrices->S->replaceGlobalValues(global_index_r0,
-                                                                                tuple<global_ordinal_type>(global_indices[k]),
-                                                                                tuple<scalar>(scalar(0.0)));
-                            }
-                        }
-
-                        // Put the corresponding value in the right hand side
-                        algebraic->vectors->b->replaceGlobalValue(global_index,
-                                                                  (scalar(loads->dirichletList->getDirichletValue(i, j))));
-                        algebraic->vectors->x->replaceGlobalValue(global_index,
-                                                                  (scalar(loads->dirichletList->getDirichletValue(i, j))));
-                    }
-                }
-        }
-    }
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-        algebraic->matrices->K->fillComplete();
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-        algebraic->matrices->L->fillComplete();
-    if (numPrimalDPN == 4)
-        algebraic->matrices->S->fillComplete();
-
-    /*
-    if (scaled)
-    {
-        tpetra_vector_type diag(algebraic->matrices->A->getRowMap());
-        algebraic->matrices->A->getLocalDiagCopy(diag);
-
-        Teuchos::ArrayRCP<scalar> diag_entries;
-        diag_entries = diag.getDataNonConst();
-        for (size_t i = 0; i < diag_entries.size(); ++i)
-            diag_entries[i] = 1. / diag_entries[i];
-
-        Teuchos::ArrayRCP<scalar> rhs_entries;
-        rhs_entries = algebraic->vectors->b->getDataNonConst();
-        for (size_t i = 0; i < rhs_entries.size(); ++i)
-            rhs_entries[i] = rhs_entries[i] * diag_entries[i];
-
-        algebraic->matrices->A->leftScale(diag);
-
-        if (domain->contactsList->getContactNumber() >= 1)
-            algebraic->matrices->B_T->leftScale(diag);
-    }
-    */
-    // ------------------------------------------
-    //
-    //       weights computation
-    //
-    // ------------------------------------------
-
-    auto numMyWeightRegions = loads->weightsList->getWeightRegionsNumber();
-
-    for (auto i = 0; i < numMyWeightRegions; ++i)
-    {
-        auto currentWeightRegionSize = loads->weightsList->getWeightRegionSize(i);
-        Kokkos::parallel_for(
-            currentWeightRegionSize, KOKKOS_LAMBDA(const int i_node) {
-                global_ordinal_type n1 = loads->weightsList->getNode(i, i_node);
-
-                if (algebraic->map->mapNodes->isNodeGlobalElement(n1))
-                {
-                    for (auto j = 0; j < numPrimalDPN; ++j)
-                    {
-                        if (loads->weightsList->getWeightDof(i, j))
-                        {
-                            global_ordinal_type global_index;
-
-                            if (j == 3)
-                            {
-                                global_index = n1;
-                            }
-                            else
-                            {
-                                if (numPrimalDPN == 4)
-                                    global_index = numNodes + 3 * n1 + j;
-                                else
-                                    global_index = 3 * n1 + j;
-                            }
-
-                            algebraic->vectors->weights->sumIntoGlobalValue(global_index,
-                                                                            (scalar(loads->weightsList->getWeightValue(i, j))),
-                                                                            true);
-                        }
-                    }
-                }
-            });
-    }
-
-    delete elementVectors_TRI3;
-    delete elementVectors_QUAD4;
-    delete elementVectors_TETRA4;
-    delete elementVectors_HEX8;
-}
-}; // namespace katoptron
diff --git a/katoptron/src/DiscreteProblemETI.cpp b/katoptron/src/DiscreteProblemETI.cpp
deleted file mode 100644
index 9cb91180..00000000
--- a/katoptron/src/DiscreteProblemETI.cpp
+++ /dev/null
@@ -1,10 +0,0 @@
-#include "DiscreteProblem.h"
-#include "DiscreteProblem.hpp"
-
-using namespace katoptron;
-
-template class DiscreteProblem<double>;
-template class DiscreteProblem<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>>;
-template class DiscreteProblem<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>>;
-template class DiscreteProblem<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>>;
-template class DiscreteProblem<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>>;
\ No newline at end of file
diff --git a/katoptron/src/Domain.h b/katoptron/src/Domain.h
deleted file mode 100644
index 43fdf2f8..00000000
--- a/katoptron/src/Domain.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef KATOPTRON_DOMAIN_H
-#define KATOPTRON_DOMAIN_H
-
-#include "katoptron.h"
-#include "Map.h"
-#include "ElementsList.h"
-#include "NodesList.h"
-#include "MaterialsList.h"
-#include "ContactsList.h"
-#include "wRandomField.h"
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store all the information related to the discretized domain:
- * <ul>
- *  <li> the list of the local elements,
- *  <li> the list of the nodes,
- *  <li> the list of the materials,
- *  <li> the list of the contact interfaces,
- *  <li> the list of the random fields.
- * </ul>
- */
-template <typename scalar>
-class Domain
-{
-public:
-    Teuchos::RCP<ElementsList> elementsList;
-    Teuchos::RCP<NodesList> nodesList;
-    Teuchos::RCP<MaterialsList<scalar>> materialsList;
-    Teuchos::RCP<ContactsList> contactsList;
-    Teuchos::RCP<RandomField<scalar, Kokkos::DefaultExecutionSpace>> random_field;
-
-    Domain(Problem &pbl,
-           Teuchos::RCP<Map> map,
-           Teuchos::RCP<Teuchos::ParameterList> randomParams,
-           Kokkos::View<scalar *, Kokkos::LayoutLeft> m_rv_values);
-
-    ~Domain()
-    {
-        std::cout << "~Domain()\n";
-    }
-};
-
-/**
- * @brief Domain constructor
- * 
- * This constructor initializes the lists of elements, nodes, materials, contact interfaces, and random fields.
- * 
- * Arguments:
- * <ul>
- *  <li> A problem object,
- *  <li> An RCP to a Map object,
- *  <li> An RCP to a ParameterList object which describes the random fields,
- *  <li> A Kokkos View of the values used in the discretization of the random fields.
- * </ul>
- */
-template <typename scalar>
-Domain<scalar>::Domain(Problem &pbl,
-                       Teuchos::RCP<Map> map,
-                       Teuchos::RCP<Teuchos::ParameterList> randomParams,
-                       Kokkos::View<scalar *, Kokkos::LayoutLeft> m_rv_values)
-{
-    elementsList = Teuchos::rcp(new ElementsList(pbl, map));
-    nodesList = Teuchos::rcp(new NodesList(pbl, map));
-    materialsList = Teuchos::rcp(new MaterialsList<scalar>(pbl, map));
-    contactsList = Teuchos::rcp(new ContactsList(pbl, map, elementsList, nodesList));
-    random_field = Teuchos::rcp(new RandomField<scalar, Kokkos::DefaultExecutionSpace>(randomParams, m_rv_values));
-}
-
-}; // namespace katoptron
-
-#endif //KATOPTRON_DOMAIN_H
diff --git a/katoptron/src/ElementComputation.cpp b/katoptron/src/ElementComputation.cpp
deleted file mode 100644
index 5ffb9b91..00000000
--- a/katoptron/src/ElementComputation.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "ElementComputation.h"
-#include "ElementComputation.hpp"
-using namespace tbox;
-
-template class ElementComputation<double, 2>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>, 2>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>, 2>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>, 2>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>, 2>;
-
-template class ElementComputation<double, 3>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>, 3>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>, 3>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>, 3>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>, 3>;
-
-template class ElementComputation<double, 4>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>, 4>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>, 4>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>, 4>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>, 4>;
-
-template class ElementComputation<double, 5>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>, 5>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>, 5>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>, 5>;
-template class ElementComputation<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>, 5>;
\ No newline at end of file
diff --git a/katoptron/src/ElementComputation.h b/katoptron/src/ElementComputation.h
deleted file mode 100644
index 1e069a2b..00000000
--- a/katoptron/src/ElementComputation.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef KATOPTRON_ELEMENTCOMPUTATION_H
-#define KATOPTRON_ELEMENTCOMPUTATION_H
-
-#include "Stokhos_Sacado_Kokkos_MP_Vector.hpp"
-
-#include <Kokkos_Core.hpp>
-#include "Kokkos_ViewFactory.hpp"
-#include "wCacheHex8.h"
-#include "wCacheQuad4.h"
-#include "wCacheTetra4.h"
-#include "wCacheTri3.h"
-#include "tMatrix.h"
-#include "Sacado.hpp"
-#include "Domain.h"
-
-#include "MaterialsList.h"
-#include "Material.h"
-
-#include "Map.h"
-
-#include "wElement.h"
-
-#include "wLazy.h"
-#include "tMatrix.h"
-
-/**
- * @brief Base class for the element computations
- */
-template <typename scalar, int element_type>
-class ElementComputation
-{
-    typedef katoptron::Map::local_ordinal_type local_ordinal_type;
-
-protected:
-    tbox::CacheHex8 &trilinosHex8GetCache();
-    tbox::CacheTetra4 &trilinosTetra4GetCache();
-    tbox::CacheTri3 &trilinosTri3GetCache();
-    tbox::CacheQuad4 &trilinosQuad4GetCache();
-
-    double buildJ(int k, tMatrix<double, 3, 3> &J,
-                  local_ordinal_type e,
-                  const katoptron::ElementsList &elementsList,
-                  const katoptron::NodesList &nodesList);
-};
-
-#endif //KATOPTRON_ELEMENTCOMPUTATION_H
diff --git a/katoptron/src/ElementComputation.hpp b/katoptron/src/ElementComputation.hpp
deleted file mode 100644
index e1062eb1..00000000
--- a/katoptron/src/ElementComputation.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-
-/**
- * @brief Compute the Jacobian matrix \f$\boldsymbol{J}\f$ of an element.
- */
-template <typename scalar, int element_type>
-double ElementComputation<scalar, element_type>::buildJ(int k,
-                                                        tMatrix<double, 3, 3> &J, local_ordinal_type e,
-                                                        const katoptron::ElementsList &elementsList,
-                                                        const katoptron::NodesList &nodesList)
-{
-    tbox::Cache *cache;
-    size_t element_size;
-
-    if (element_type == static_cast<int>(tbox::ElType::HEX8))
-    {
-        tbox::CacheHex8 &cachehex8 = trilinosHex8GetCache();
-        cache = &cachehex8;
-        element_size = 8;
-    }
-    else if (element_type == static_cast<int>(tbox::ElType::TETRA4))
-    {
-        tbox::CacheTetra4 &cachetetra4 = trilinosTetra4GetCache();
-        cache = &cachetetra4;
-        element_size = 4;
-    }
-    else if (element_type == static_cast<int>(tbox::ElType::TRI3))
-    {
-        tbox::CacheTri3 &cachetri3 = trilinosTri3GetCache();
-        cache = &cachetri3;
-        element_size = 3;
-
-        tVector<double, 3> tg1, tg2, n;
-
-        int i = 0;
-        for (auto n1 = 0; n1 < element_size; ++n1, ++i)
-        {
-            for (auto j = 0; j < 3; ++j)
-            {
-                tg1(j) += (static_cast<tbox::CacheTri3 *>(cache)->getDsf(k))(0, i) *
-                          nodesList.nodes(elementsList.getElementNode(e, n1), j);
-                tg2(j) += (static_cast<tbox::CacheTri3 *>(cache)->getDsf(k))(1, i) *
-                          nodesList.nodes(elementsList.getElementNode(e, n1), j);
-            }
-        }
-
-        n(0) = tg1(1) * tg2(2) - tg1(2) * tg2(1);
-        n(1) = tg1(2) * tg2(0) - tg1(0) * tg2(2);
-        n(2) = tg1(0) * tg2(1) - tg1(1) * tg2(0);
-        double detJ = sqrt(pow(n(0), 2) + pow(n(1), 2) + pow(n(2), 2));
-        return detJ;
-    }
-    else if (element_type == static_cast<int>(tbox::ElType::QUAD4))
-    {
-        tbox::CacheQuad4 &cachequad4 = trilinosQuad4GetCache();
-        cache = &cachequad4;
-        element_size = 4;
-
-        tVector<double, 3> tg1, tg2, n;
-
-        int i = 0;
-        for (auto n1 = 0; n1 < element_size; ++n1, ++i)
-        {
-            for (auto j = 0; j < 3; ++j)
-            {
-                tg1(j) += (static_cast<tbox::CacheQuad4 *>(cache)->getDsf(k))(0, i) *
-                          nodesList.nodes(elementsList.getElementNode(e, n1), j);
-                tg2(j) += (static_cast<tbox::CacheQuad4 *>(cache)->getDsf(k))(1, i) *
-                          nodesList.nodes(elementsList.getElementNode(e, n1), j);
-            }
-        }
-
-        n(0) = tg1(1) * tg2(2) - tg1(2) * tg2(1);
-        n(1) = tg1(2) * tg2(0) - tg1(0) * tg2(2);
-        n(2) = tg1(0) * tg2(1) - tg1(1) * tg2(0);
-        double detJ = sqrt(pow(n(0), 2) + pow(n(1), 2) + pow(n(2), 2));
-        return detJ;
-    }
-
-    tMatrix<double, 3, 3> Jn;
-    J.clean();
-
-    tVector<double, 3> tmp, tmp2;
-
-    int i = 0;
-    for (auto n1 = 0; n1 < elementsList.getElementSize(e); ++n1, ++i)
-    {
-        for (auto j = 0; j < 3; ++j)
-        {
-            tmp(j) = nodesList.nodes(elementsList.getElementNode(e, n1), j);
-            if (element_type == static_cast<int>(tbox::ElType::HEX8))
-                tmp2(j) = (static_cast<tbox::CacheHex8 *>(cache)->getDsf(k))(j, i);
-            else if (element_type == static_cast<int>(tbox::ElType::TETRA4))
-                tmp2(j) = (static_cast<tbox::CacheTetra4 *>(cache)->getDsf(k))(j, i);
-        }
-
-        Jn = tmp2.ddotproduct(tmp);
-        J += Jn;
-    }
-
-    double detJ = J.det();
-    return detJ;
-}
-
-/**
- * @brief Return the tbox cache of the hexahedron elements.
- */
-template <typename scalar, int element_type>
-tbox::CacheHex8 &ElementComputation<scalar, element_type>::trilinosHex8GetCache()
-{
-    static tbox::Lazy<tbox::CacheHex8> cache(2);
-    return cache.get();
-}
-
-/**
- * @brief Return the tbox cache of the tetrahedron elements.
- */
-template <typename scalar, int element_type>
-tbox::CacheTetra4 &ElementComputation<scalar, element_type>::trilinosTetra4GetCache()
-{
-    static tbox::Lazy<tbox::CacheTetra4> cache(2);
-    return cache.get();
-}
-
-/**
- * @brief Return the tbox cache of the triangular elements.
- */
-template <typename scalar, int element_type>
-tbox::CacheTri3 &ElementComputation<scalar, element_type>::trilinosTri3GetCache()
-{
-    static tbox::Lazy<tbox::CacheTri3> cache(2);
-    return cache.get();
-}
-
-/**
- * @brief Return the tbox cache of the quadrangular elements.
- */
-template <typename scalar, int element_type>
-tbox::CacheQuad4 &ElementComputation<scalar, element_type>::trilinosQuad4GetCache()
-{
-    static tbox::Lazy<tbox::CacheQuad4> cache(2);
-    return cache.get();
-}
diff --git a/katoptron/src/ElementMatrices.h b/katoptron/src/ElementMatrices.h
deleted file mode 100644
index ad7b227b..00000000
--- a/katoptron/src/ElementMatrices.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef KATOPTRON_ELEMENTMATRICES_H
-#define KATOPTRON_ELEMENTMATRICES_H
-
-#include "Stokhos_Sacado_Kokkos_MP_Vector.hpp"
-#include "EnsembleTraits.h"
-
-/*
-#include "Stokhos_Tpetra_MP_Vector.hpp"
-#include "Stokhos_Tpetra_Utilities_MP_Vector.hpp"
-#include "Stokhos_Sacado_Kokkos_MP_Vector.hpp"
-*/
-
-#include <Kokkos_Core.hpp>
-#include "Kokkos_ViewFactory.hpp"
-#include "wCacheHex8.h"
-#include "wCacheQuad4.h"
-#include "wCacheTetra4.h"
-#include "wCacheTri3.h"
-#include "tMatrix.h"
-
-//#include "Sacado_Fad_MP_Vector.hpp"
-//#include "Sacado.hpp"
-#include "Domain.h"
-
-#include "MaterialsList.h"
-#include "Material.h"
-
-#include "wLazy.h"
-#include "tMatrix.h"
-
-#include "ElementComputation.h"
-
-#include "EnsembleTraits.h"
-
-#include <iostream>
-
-/**
- * @brief Class used to compute the element matrices:
- * <ul>
- *  <li> The element stifness matrix \f$\boldsymbol{K}\f$,
- *  <li> The thermal element matrix \f$\boldsymbol{L}\f$,
- *  <li> The coupling element matrix \f$\boldsymbol{S}\f$.
- * </ul> 
- */
-template <typename scalar, int element_type, int element_size>
-class ElementMatrices : public ElementComputation<scalar, element_type>
-{
-public:
-    typedef Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> view_type_3D;
-    typedef Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> view_type_2D;
-
-    view_type_3D K, L, S;
-
-    view_type_2D material;
-
-    Teuchos::RCP<katoptron::Domain<scalar>> domain;
-
-    size_t numPrimalDPN;
-
-    ElementMatrices(Teuchos::RCP<katoptron::Domain<scalar>> domain, size_t numPrimalDPN, size_t pool_size);
-    ~ElementMatrices(){};
-
-    void compute(int e, int i_thread);
-    view_type_2D getK(size_t i_thread) const;
-    view_type_2D getL(size_t i_thread) const;
-    view_type_2D getS(size_t i_thread) const;
-};
-
-#endif //KATOPTRON_ELEMENTMATRICES_H
diff --git a/katoptron/src/ElementMatrices.hpp b/katoptron/src/ElementMatrices.hpp
deleted file mode 100644
index 208932cc..00000000
--- a/katoptron/src/ElementMatrices.hpp
+++ /dev/null
@@ -1,300 +0,0 @@
-//#define ElementMatrices_DEBUG
-
-/**
- * @brief ElementMatrices constructor
- * 
- * Arguments:
- * <ul>
- *  <li> domain: an RCP to a Domain object,
- *  <li> numPrimalDPN: the number of degrees of freedom per node (without taking into account the Lagrange multipliers),
- *  <li> pool_size: the number of threads that will be used to compute the element matrices.
- * </ul>
- * 
- * The number of used threads is specify to allocate distinct memory for each thread to ensure that the threads
- * do not use the same memory addresses.
- */
-template <typename scalar, int element_type, int element_size>
-ElementMatrices<scalar, element_type, element_size>::ElementMatrices(Teuchos::RCP<katoptron::Domain<scalar>> _domain,
-                                                                     size_t _numPrimalDPN,
-                                                                     size_t pool_size) : domain(_domain), numPrimalDPN(_numPrimalDPN)
-{
-
-    K = Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A", pool_size, 3 * element_size, 3 * element_size);
-    L = Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A", pool_size, element_size, element_size);
-    S = Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A", pool_size, 3 * element_size, element_size);
-
-    material = Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A", pool_size, 3 * element_size);
-}
-
-/**
- * @brief Compute all the matrices and store them as member data.
- * This function must be called before getK, getL, or getS.
- * 
- * The computations have been gathered into one function to reuse reusable data such as Jacobian
- * computations.
- * 
- * Arguments:
- * <ul>
- *  <li> e: the local ID of the element for which the matrices have to be computed,
- *  <li> i_thread: the ID of the thread used to compute the element matrices.
- * </ul> 
- */
-template <typename scalar, int element_type, int element_size>
-void ElementMatrices<scalar, element_type, element_size>::compute(int e, int i_thread)
-{
-
-    tbox::Cache *cache;
-
-    /* @todo could probably be refactored into cache = element->getVCache(); */
-    if (element_type == static_cast<int>(tbox::ElType::HEX8))
-    {
-        tbox::CacheHex8 &cachehex8 = this->trilinosHex8GetCache();
-        cache = &cachehex8;
-    }
-    else if (element_type == static_cast<int>(tbox::ElType::TETRA4))
-    {
-        tbox::CacheTetra4 &cachetetra4 = this->trilinosTetra4GetCache();
-        cache = &cachetetra4;
-    }
-
-    std::vector<Eigen::Vector3d> gauss_p;
-    std::vector<double> gauss_w;
-    for (size_t a = 0; a < cache->getVGauss().getN(); ++a)
-    {
-        gauss_p.push_back(cache->getVGauss().getP(a));
-        gauss_w.push_back(cache->getVGauss().getW(a));
-    }
-
-    tVector<scalar, element_size * 4> tValues;
-
-    auto K_current = subview(K, i_thread, Kokkos::ALL(), Kokkos::ALL());
-    auto L_current = subview(L, i_thread, Kokkos::ALL(), Kokkos::ALL());
-    auto S_current = subview(S, i_thread, Kokkos::ALL(), Kokkos::ALL());
-
-    Kokkos::deep_copy(K_current, 0);
-    Kokkos::deep_copy(L_current, 0);
-    Kokkos::deep_copy(S_current, 0);
-
-    auto element_material = domain->elementsList->getElementMaterial(e);
-
-    tVector<double, 3> factor1, factor2, dffi, dffj;
-    tVector<scalar, 3> factor3;
-    tMatrix<double, 3, 3> J, Jinv;
-    tMatrix<scalar, 3, 3> TMP1;
-    tMatrix<scalar, 9, 9> H;
-    tVector<double, element_size> ff;
-    scalar E, nu, lambda, G, conductivity, beta;
-    tMatrix<scalar, 3, 3> K_conductivity;
-    tMatrix<scalar, 3, 3> D;
-
-    katoptron::Material<scalar> material = domain->materialsList->getMaterial(element_material, i_thread);
-    if (domain->random_field->isRandom)
-    {
-        double x = 0., y = 0., z = 0.;
-        for (auto j = 0; j < element_size; ++j)
-        {
-            x += domain->nodesList->nodes(domain->elementsList->getElementNode(e, j), 0) / element_size;
-            y += domain->nodesList->nodes(domain->elementsList->getElementNode(e, j), 1) / element_size;
-            z += domain->nodesList->nodes(domain->elementsList->getElementNode(e, j), 2) / element_size;
-        }
-
-        G = domain->random_field->operator()(x, y, z);
-#ifdef ElementMatrices_DEBUG
-        printf("G_0 = %f\n", EnsembleTraits<scalar>::coeff(G, 0));
-#endif
-
-        //E = material.getE();
-        nu = material.getNu();
-        lambda = 2. * G * nu / (1. - 2. * nu);
-        //lambda = (nu*E)/((1+nu)*(1-2*nu));
-    }
-    else
-    {
-        E = material.getE();
-        nu = material.getNu();
-        lambda = (nu * E) / ((1 + nu) * (1 - 2 * nu));
-        G = E / (2 * (1 + nu));
-    }
-
-    // Machine epsilon
-
-    double epsilon = 2e-16;
-    // Looping on gauss points
-    for (auto a = 0; a < gauss_p.size(); ++a)
-    {
-        for (auto j = 0; j < element_size; ++j)
-            if (element_size == 8)
-                ff(j) = (static_cast<tbox::CacheHex8 *>(cache)->getSf(a))(j);
-            else if (element_size == 4)
-                ff(j) = (static_cast<tbox::CacheTetra4 *>(cache)->getSf(a))(j);
-
-        // H matrix
-        H.clean();
-
-        for (auto i = 0; i < 3; ++i)
-            for (auto j = 0; j < 3; ++j)
-                for (auto k = 0; k < 3; ++k)
-                    for (auto l = 0; l < 3; ++l)
-                    {
-                        if (i == j && k == l)
-                            H(i * 3 + j, k * 3 + l) = lambda;
-                        if (i == k && j == l)
-                            H(i * 3 + j, k * 3 + l) = H(i * 3 + j, k * 3 + l) + G;
-                        if (i == l && j == k)
-                            H(i * 3 + j, k * 3 + l) = H(i * 3 + j, k * 3 + l) + G;
-                    }
-
-        conductivity = material.getK();
-        K_conductivity.clean();
-        for (auto i = 0; i < 3; ++i)
-            K_conductivity(i, i) = conductivity;
-
-        beta = material.getBeta();
-        D.clean();
-        for (auto i = 0; i < 3; ++i)
-            D(i, i) = -3 * (lambda + (2. / 3.) * G) * beta;
-
-        double detJ = this->buildJ(a, J, e, *(domain->elementsList), *(domain->nodesList));
-
-#ifdef ElementMatrices_DEBUG
-        printf("detJ = %f\n", detJ);
-#endif
-
-        Jinv = J.inv();
-
-        for (auto i = 0; i < element_size; ++i)
-        {
-
-            for (auto k = 0; k < 3; ++k)
-                if (element_size == 8)
-                    dffi(k) = (static_cast<tbox::CacheHex8 *>(cache)->getDsf(a))(k, i);
-                else if (element_size == 4)
-                    dffi(k) = (static_cast<tbox::CacheTetra4 *>(cache)->getDsf(a))(k, i);
-            factor1 = Jinv * dffi;
-#ifdef ElementMatrices_DEBUG
-            printf("dffi = [%f, %f, %f]\n", dffi(0), dffi(1), dffi(2));
-            printf("factor1 = [%f, %f, %f]\n", factor1(0), factor1(1), factor1(2));
-#endif
-            // K
-            for (auto j = i; j < element_size; ++j)
-            {
-                for (auto k = 0; k < 3; ++k)
-                    if (element_size == 8)
-                        dffj(k) = (static_cast<tbox::CacheHex8 *>(cache)->getDsf(a))(k, j);
-                    else if (element_size == 4)
-                        dffj(k) = (static_cast<tbox::CacheTetra4 *>(cache)->getDsf(a))(k, j);
-                factor2 = Jinv * dffj;
-
-                TMP1.clean();
-                for (auto k = 0; k < 3; ++k)
-                    for (auto m = 0; m < 3; ++m)
-                    {
-                        for (auto l = 0; l < 3; ++l)
-                            for (auto n = 0; n < 3; ++n)
-                                TMP1(l, n) = H(k * 3 + l, m * 3 + n);
-
-                        factor3 = TMP1 * factor2;
-
-                        scalar dotProduct = factor1.dotproduct(factor3);
-#ifdef ElementMatrices_DEBUG
-                        printf("dotProduct_0 = %f\n", EnsembleTraits<scalar>::coeff(dotProduct, 0));
-#endif
-                        K_current(i * 3 + k, j * 3 + m) += dotProduct * gauss_w[a] * detJ;
-                    }
-            }
-
-            // L
-            factor3 = K_conductivity * factor1;
-            for (auto j = i; j < element_size; ++j)
-            {
-                for (auto k = 0; k < 3; ++k)
-                    if (element_size == 8)
-                        dffj(k) = (static_cast<tbox::CacheHex8 *>(cache)->getDsf(a))(k, j);
-                    else if (element_size == 4)
-                        dffj(k) = (static_cast<tbox::CacheTetra4 *>(cache)->getDsf(a))(k, j);
-
-                factor2 = Jinv * dffj;
-                scalar dotProduct = factor3.dotproduct(factor2);
-                L_current(i, j) += dotProduct * gauss_w[a] * detJ;
-            }
-
-            // S
-            factor3 = D * factor1;
-
-            for (auto j = 0; j < element_size; ++j)
-                for (auto k = 0; k < 3; ++k)
-                    S_current(i * 3 + k, j) += factor3(k) * ff(j) * gauss_w[a] * detJ;
-        }
-    }
-
-    for (auto i = 0; i < 3 * element_size; ++i)
-        for (auto j = i; j < 3 * element_size; ++j)
-        {
-            if (fabs(K_current(i, j)) < epsilon)
-                K_current(i, j) = 0;
-            if (i != j)
-                K_current(j, i) = K_current(i, j);
-        }
-
-    for (auto i = 0; i < element_size; ++i)
-        for (auto j = i; j < element_size; ++j)
-        {
-            if (fabs(L_current(i, j)) < epsilon)
-                L_current(i, j) = 0;
-            if (i != j)
-                L_current(j, i) = L_current(i, j);
-        }
-
-    for (auto i = 0; i < 3 * element_size; ++i)
-        for (auto j = 0; j < element_size; ++j)
-            if (fabs(S_current(i, j)) < epsilon)
-                S_current(i, j) = 0;
-}
-
-/**
- * @brief Return the element stifness matrix \f$\boldsymbol{K}\f$ computed
- * by the thread i_thread.
- * 
- * Argument:
- * <ul>
- *  <li> i_thread: the ID of the thread used to compute the element matrices.
- * </ul> 
- */
-template <typename scalar, int element_type, int element_size>
-Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> ElementMatrices<scalar, element_type, element_size>::getK(size_t i_thread) const
-{
-    Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> K_current = subview(K, i_thread, Kokkos::ALL(), Kokkos::ALL());
-    return K_current;
-}
-
-/**
- * @brief Return the thermal element matrix \f$\boldsymbol{L}\f$ computed
- * by the thread i_thread.
- * 
- * Argument:
- * <ul>
- *  <li> i_thread: the ID of the thread used to compute the element matrices.
- * </ul> 
- */
-template <typename scalar, int element_type, int element_size>
-Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> ElementMatrices<scalar, element_type, element_size>::getL(size_t i_thread) const
-{
-    Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> L_current = subview(L, i_thread, Kokkos::ALL(), Kokkos::ALL());
-    return L_current;
-}
-
-/**
- * @brief Return the coupling element matrix \f$\boldsymbol{S}\f$ computed
- * by the thread i_thread.
- * 
- * Argument:
- * <ul>
- *  <li> i_thread: the ID of the thread used to compute the element matrices.
- * </ul> 
- */
-template <typename scalar, int element_type, int element_size>
-Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> ElementMatrices<scalar, element_type, element_size>::getS(size_t i_thread) const
-{
-    Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> S_current = subview(S, i_thread, Kokkos::ALL(), Kokkos::ALL());
-    return S_current;
-}
\ No newline at end of file
diff --git a/katoptron/src/ElementMatricesETI.cpp b/katoptron/src/ElementMatricesETI.cpp
deleted file mode 100644
index 0df65d21..00000000
--- a/katoptron/src/ElementMatricesETI.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "ElementMatrices.h"
-#include "ElementMatrices.hpp"
-
-template class ElementMatrices<double, 4, 4>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>, 4, 4>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>, 4, 4>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>, 4, 4>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>, 4, 4>;
-
-template class ElementMatrices<double, 5, 8>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>, 5, 8>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>, 5, 8>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>, 5, 8>;
-template class ElementMatrices<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>, 5, 8>;
diff --git a/katoptron/src/ElementVectors.h b/katoptron/src/ElementVectors.h
deleted file mode 100644
index 3c7474ff..00000000
--- a/katoptron/src/ElementVectors.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef KATOPTRON_ELEMENTVECTORS_H
-#define KATOPTRON_ELEMENTVECTORS_H
-
-#include <Kokkos_Core.hpp>
-#include "Kokkos_ViewFactory.hpp"
-#include "wCacheHex8.h"
-#include "wCacheQuad4.h"
-#include "wCacheTetra4.h"
-#include "wCacheTri3.h"
-#include "tMatrix.h"
-#include "Domain.h"
-#include "Loads.h"
-
-#include "ElementComputation.h"
-
-#include "MaterialsList.h"
-#include "Material.h"
-
-#include "wLazy.h"
-#include "tMatrix.h"
-
-/**
- * @brief Class used to compute the matrix associated to the
- * integration of load on surface \f$\boldsymbol{N}\f$.
- */
-template <typename scalar, int element_type, int element_size>
-class ElementVectors : public ElementComputation<scalar, element_type>
-{
-public:
-    Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> N;
-
-    Teuchos::RCP<katoptron::Domain<scalar>> domain;
-
-    size_t numPrimalDPN;
-
-    ElementVectors(Teuchos::RCP<katoptron::Domain<scalar>> domain, size_t numPrimalDPN, size_t pool_size);
-
-    void compute(int e, int i_thread);
-    Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> getN(size_t i_thread) const;
-};
-
-#endif //KATOPTRON_ELEMENTVECTORS_H
diff --git a/katoptron/src/ElementVectors.hpp b/katoptron/src/ElementVectors.hpp
deleted file mode 100644
index f89101de..00000000
--- a/katoptron/src/ElementVectors.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * @brief ElementVectors constructor
- * 
- * Arguments:
- * <ul>
- *  <li> domain: an RCP to a Domain object,
- *  <li> numPrimalDPN: the number of degrees of freedom per node (without taking into account the Lagrange multipliers),
- *  <li> pool_size: the number of threads that will be used to compute \f$\boldsymbol{N}\f$.
- * </ul>
- * 
- * The number of used threads is specify to allocate distinct memory for each thread to ensure that the threads
- * do not use the same memory addresses.
- */
-template <typename scalar, int element_type, int element_size>
-ElementVectors<scalar, element_type, element_size>::ElementVectors(Teuchos::RCP<katoptron::Domain<scalar>> _domain,
-                                                                   size_t _numPrimalDPN,
-                                                                   size_t pool_size) : domain(_domain), numPrimalDPN(_numPrimalDPN)
-{
-    N = Kokkos::View<scalar ***, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace>("A", pool_size, element_size, element_size);
-}
-
-/**
- * @brief Compute the \f$\boldsymbol{N}\f$ matrix.
- * Arguments:
- * <ul>
- *  <li> e: the local ID of the element for which \f$\boldsymbol{N}\f$ has to be computed,
- *  <li> i_thread: the ID of the thread used to compute \f$\boldsymbol{N}\f$.
- * </ul> 
- */
-template <typename scalar, int element_type, int element_size>
-void ElementVectors<scalar, element_type, element_size>::compute(int e, int i_thread)
-{
-    tbox::Cache *cache;
-
-    std::vector<Eigen::Vector3d> gauss_p;
-    std::vector<double> gauss_w;
-
-    /* @todo could probably be refactored into cache = element->getVCache(); */
-    if (element_type == static_cast<int>(tbox::ElType::HEX8))
-    {
-        tbox::CacheHex8 &cachehex8 = this->trilinosHex8GetCache();
-        cache = &cachehex8;
-    }
-    else if (element_type == static_cast<int>(tbox::ElType::TETRA4))
-    {
-        tbox::CacheTetra4 &cachetetra4 = this->trilinosTetra4GetCache();
-        cache = &cachetetra4;
-    }
-    else if (element_type == static_cast<int>(tbox::ElType::TRI3))
-    {
-        tbox::CacheTri3 &cachetri3 = this->trilinosTri3GetCache();
-        cache = &cachetri3;
-    }
-    else if (element_type == static_cast<int>(tbox::ElType::QUAD4))
-    {
-        tbox::CacheQuad4 &cachequad4 = this->trilinosQuad4GetCache();
-        cache = &cachequad4;
-    }
-
-    for (size_t a = 0; a < cache->getVGauss().getN(); ++a)
-    {
-        gauss_p.push_back(cache->getVGauss().getP(a));
-        gauss_w.push_back(cache->getVGauss().getW(a));
-    }
-
-    tVector<double, element_size> ff;
-    tMatrix<double, 3, 3> J;
-
-    auto N_current = subview(N, i_thread, Kokkos::ALL(), Kokkos::ALL());
-
-    Kokkos::deep_copy(N_current, 0);
-
-    // Looping on gauss points
-    for (auto a = 0; a < gauss_p.size(); ++a)
-    {
-        for (auto j = 0; j < element_size; ++j)
-            if (element_type == static_cast<int>(tbox::ElType::HEX8))
-                ff(j) = (static_cast<tbox::CacheHex8 *>(cache)->getSf(a))(j);
-            else if (element_type == static_cast<int>(tbox::ElType::TETRA4))
-                ff(j) = (static_cast<tbox::CacheTetra4 *>(cache)->getSf(a))(j);
-            else if (element_type == static_cast<int>(tbox::ElType::TRI3))
-                ff(j) = (static_cast<tbox::CacheTri3 *>(cache)->getSf(a))(j);
-            else if (element_type == static_cast<int>(tbox::ElType::QUAD4))
-                ff(j) = (static_cast<tbox::CacheQuad4 *>(cache)->getSf(a))(j);
-
-        double detJ = this->buildJ(a, J, e, *(domain->elementsList), *(domain->nodesList));
-
-        for (auto i = 0; i < element_size; ++i)
-            for (auto j = 0; j < element_size; ++j)
-                N_current(i, j) += ff(i) * ff(j) * gauss_w[a] * detJ;
-    }
-}
-
-/**
- * @brief Return the \f$\boldsymbol{N}\f$.
- * 
- * Argument:
- * <ul>
- *  <li> i_thread: the ID of the thread used to compute \f$\boldsymbol{N}\f$.
- * </ul> 
- */
-template <typename scalar, int element_type, int element_size>
-Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> ElementVectors<scalar, element_type, element_size>::getN(size_t i_thread) const
-{
-    Kokkos::View<scalar **, Kokkos::LayoutRight, Kokkos::DefaultExecutionSpace> N_current =
-        subview(N, i_thread, Kokkos::ALL(), Kokkos::ALL());
-    return N_current;
-}
\ No newline at end of file
diff --git a/katoptron/src/ElementVectorsETI.cpp b/katoptron/src/ElementVectorsETI.cpp
deleted file mode 100644
index 445a934b..00000000
--- a/katoptron/src/ElementVectorsETI.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-#include "ElementVectors.h"
-#include "ElementVectors.hpp"
-using namespace tbox;
-
-template class ElementVectors<double, static_cast<int>(ElType::TRI3), 3>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TRI3), 3>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TRI3), 3>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TRI3), 3>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TRI3), 3>;
-
-template class ElementVectors<double, static_cast<int>(ElType::QUAD4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::QUAD4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::QUAD4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::QUAD4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::QUAD4), 4>;
-
-template class ElementVectors<double, static_cast<int>(ElType::TETRA4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TETRA4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TETRA4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TETRA4), 4>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::TETRA4), 4>;
-
-template class ElementVectors<double, static_cast<int>(ElType::HEX8), 8>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::HEX8), 8>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::HEX8), 8>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::HEX8), 8>;
-template class ElementVectors<Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>,
-                              static_cast<int>(ElType::HEX8), 8>;
diff --git a/katoptron/src/ElementsList.cpp b/katoptron/src/ElementsList.cpp
deleted file mode 100644
index fd78fd75..00000000
--- a/katoptron/src/ElementsList.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-#include "ElementsList.h"
-
-#include "wProblem.h"
-#include "wTag.h"
-#include "wMshData.h"
-#include "wElement.h"
-#include "wNode.h"
-#include "wMedium.h"
-
-using namespace katoptron;
-
-/**
- * @brief ElementsList constructor
- * 
- * This constructor allocates 1 Kokkos::View which stores all the required information related to the elements, including:
- * <ul>
- *  <li> all their local node IDs,
- *  <li> their size, type, and material (at most one material per element).
- * </ul>
- *
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object.
- * </ul>
- */
-ElementsList::ElementsList(Problem &pbl, Teuchos::RCP<Map> map)
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-
-    elements_number = map->mapElems->getNodeNumElements();
-
-    local_ordinal_type materials_number = pbl.media.size();
-    elements_type = 0;
-    elements_size = 1;
-    elements_material = 2;
-    elements_owned = 3;
-    elements_nodes = 4;
-
-    elements = Kokkos::View<int **, Kokkos::LayoutRight>("R", elements_number, elements_nodes + 8);
-
-    const int n_procs = map->mapElems->getComm()->getSize();
-    const int rank = map->mapElems->getComm()->getRank();
-
-    int i1 = 0;
-    int i2 = 0;
-    while (i1 < elements_number)
-    {
-        tbox::Element *e = pbl.msh->elems[i2++];
-        if (map->mapElems->isNodeGlobalElement(e->no - 1))
-        {
-            elements(i1, elements_type) = static_cast<int>(e->type());
-            elements(i1, elements_size) = e->nodes.size();
-            for (int j = 0; j < materials_number; ++j)
-                if (e->ptag == (pbl.media[j]->tag))
-                {
-                    elements(i1, elements_material) = j;
-                    break;
-                }
-            for (int j = 0; j < e->nodes.size(); ++j)
-                elements(i1, elements_nodes + j) = map->mapNodesWO->getLocalElement(e->nodes[j]->row);
-            ++i1;
-        }
-    }
-
-    for (int i = 0; i < elements_number; ++i)
-        elements(i, elements_owned) = 0;
-
-    int p_key;
-    if (n_procs != 1)
-        for (auto const &p : pbl.msh->parts)
-            if (p.second->no == (rank + 1))
-                p_key = p.first;
-
-    if (n_procs != 1)
-        for (int i = 0; i < pbl.msh->parts[p_key]->elems.size(); ++i)
-        {
-            local_ordinal_type local_i = map->mapElems->getLocalElement(pbl.msh->parts[p_key]->elems[i]->no - 1);
-            elements(local_i, elements_owned) = 1;
-        }
-
-    else
-        for (int i = 0; i < elements_number; ++i)
-            elements(i, elements_owned) = 1;
-}
diff --git a/katoptron/src/ElementsList.h b/katoptron/src/ElementsList.h
deleted file mode 100644
index 08f902a8..00000000
--- a/katoptron/src/ElementsList.h
+++ /dev/null
@@ -1,112 +0,0 @@
-#ifndef KATOPTRON_ELEMENTLISTS_H
-#define KATOPTRON_ELEMENTLISTS_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to store the element information including:
- * <ul>
- *  <li> The number of local elements,
- *  <li> The type of every elements,
- *  <li> The size of each elements,
- *  <li> The material ID of each elements,
- *  <li> The local node ID of each elements.
- * </ul> 
- */
-class ElementsList
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-
-private:
-    Kokkos::View<int **, Kokkos::LayoutRight> elements;
-
-    local_ordinal_type elements_number;
-    local_ordinal_type elements_type;
-    local_ordinal_type elements_size;
-    local_ordinal_type elements_material;
-    local_ordinal_type elements_owned;
-    local_ordinal_type elements_nodes;
-
-public:
-    ElementsList(Problem &pbl, Teuchos::RCP<Map> map);
-
-    /**
-     * @brief Return the number of local elements i.e. the number
-     * of elements owned by the calling process.
-     */
-    inline local_ordinal_type getElementNumber(void) const { return elements_number; }
-
-    /**
-     * @brief Return the type of the local element of local ID e.
-     * Argument:
-     * <ul>
-     *  <li> e: local ID of the element.
-     * </ul>
-     */
-    inline local_ordinal_type getElementType(const local_ordinal_type e) const
-    {
-        return elements(e, elements_type);
-    }
-
-    /**
-     * @brief Return the size of the local element of local ID e.
-     * Argument:
-     * <ul>
-     *  <li> e: local ID of the element.
-     * </ul>
-     */
-    inline local_ordinal_type getElementSize(const local_ordinal_type e) const
-    {
-        return elements(e, elements_size);
-    }
-
-    /**
-     * @brief Return the material ID of the local element of ID e.
-     * Argument:
-     * <ul>
-     *  <li> e: local ID of the element.
-     * </ul>
-     */
-    inline local_ordinal_type getElementMaterial(const local_ordinal_type e) const
-    {
-        return elements(e, elements_material);
-    }
-
-    /**
-     * @brief Return the local ID of the ith node of the local element of ID e.
-     * Argument:
-     * <ul>
-     *  <li> e: local ID of the element,
-     *  <li> i: element local ID of the node.
-     * </ul>
-     */
-    inline local_ordinal_type getElementNode(const local_ordinal_type e, local_ordinal_type i) const
-    {
-        return elements(e, elements_nodes + i);
-    }
-
-    /**
-     * @brief Return whether local element of ID e is owned by this MPI process (i.e whether it
-     * is not a ghost element).
-     * Argument:
-     * <ul>
-     *  <li> e: local ID of the element.
-     * </ul>
-     */
-    inline local_ordinal_type isLocal(const local_ordinal_type e) const
-    {
-        return elements(e, elements_owned);
-    }
-};
-}; // namespace katoptron
-
-#endif //KATOPTRON_ELEMENTLISTS_H
diff --git a/katoptron/src/EnsembleReduction.h b/katoptron/src/EnsembleReduction.h
deleted file mode 100644
index 9d6f393e..00000000
--- a/katoptron/src/EnsembleReduction.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef KATOPTRON_ENSEMBLEREDUCTION_H
-#define KATOPTRON_ENSEMBLEREDUCTION_H
-
-#include <Stokhos_config.h>
-
-bool UseEnsembleReduction()
-{
-#ifdef HAVE_STOKHOS_ENSEMBLE_REDUCT
-    return true;
-#else
-    return false;
-#endif
-}
-#endif //KATOPTRON_ENSEMBLEREDUCTION_H
\ No newline at end of file
diff --git a/katoptron/src/EnsembleTraits.h b/katoptron/src/EnsembleTraits.h
deleted file mode 100644
index d107df17..00000000
--- a/katoptron/src/EnsembleTraits.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef KATOPTRON_ENSEMBLETRAITS_H
-#define KATOPTRON_ENSEMBLETRAITS_H
-
-#include "Sacado.hpp"
-#include "Stokhos_Tpetra_Utilities_MP_Vector.hpp"
-
-template <typename T>
-struct EnsembleTraits
-{
-    static const int size = 1;
-    typedef T value_type;
-    static const value_type &coeff(const T &x, int i) { return x; }
-    static value_type &coeff(T &x, int i) { return x; }
-};
-
-template <typename S>
-struct EnsembleTraits<Sacado::MP::Vector<S>>
-{
-    static const int size = S::static_size;
-    typedef typename S::value_type value_type;
-    static const value_type &coeff(const Sacado::MP::Vector<S> &x, int i)
-    {
-        return x.fastAccessCoeff(i);
-    }
-    static value_type &coeff(Sacado::MP::Vector<S> &x, int i)
-    {
-        return x.fastAccessCoeff(i);
-    }
-};
-#endif // KATOPTRON_ENSEMBLETRAITS_H
diff --git a/katoptron/src/Graph.cpp b/katoptron/src/Graph.cpp
deleted file mode 100644
index b5859366..00000000
--- a/katoptron/src/Graph.cpp
+++ /dev/null
@@ -1,335 +0,0 @@
-#include "Graph.h"
-
-#include "wProblem.h"
-#include "wMshData.h"
-#include "wElement.h"
-#include "wNode.h"
-
-#include <utility>
-
-#include <Kokkos_UnorderedMap.hpp>
-#include <Kokkos_Sort.hpp>
-
-#include "Tpetra_CrsMatrix.hpp"
-#include <MatrixMarket_Tpetra.hpp>
-
-#include "LinearSolver.h"
-
-using namespace katoptron;
-
-int min(int a, int b)
-{
-    return (a <= b) ? a : b;
-}
-
-int max(int a, int b)
-{
-    return (a >= b) ? a : b;
-}
-
-/**
- * @brief Graph constructor
- *
- * This constructor computes the sparsity pattern of the primal matrix.
- * 
- * Arguments:
- * <ul>
- *  <li> map: an RCP to a Map object,
- *  <li> elementsList: an RCP to a ElementsList object.
- * </ul>
- */
-Graph::Graph(Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList)
-{
-    using std::pair;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-    using Teuchos::tuple;
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-    typedef Tpetra::CrsGraph<local_ordinal_type, global_ordinal_type> crs_graph_type;
-    typedef local_ordinal_type LO;
-    typedef global_ordinal_type GO;
-
-    auto numMyElems = elementsList->getElementNumber();
-
-    auto numPrimalDPN = map->numPrimalDPN;
-
-    int numLclNodes = map->mapNodes->getNodeNumElements();
-
-    int numLclRowsK = 3 * numLclNodes;
-    int numLclRowsL = numLclNodes;
-
-    Kokkos::View<size_t *> rowCountsK("row counts", numLclRowsK);
-    Kokkos::View<size_t *> rowCountsS("row counts", numLclRowsK);
-    Kokkos::View<size_t *> rowCountsL("row counts", numLclRowsL);
-
-    const int maxConnections = 30;
-    Kokkos::UnorderedMap<pair<GO, GO>, bool> nodenode(numLclNodes * maxConnections);
-
-    size_t numLclEntries = 0;
-
-    Kokkos::parallel_reduce(
-        numMyElems,
-        KOKKOS_LAMBDA(const LO e, size_t &curNumLclEntries) {
-            const int element_size = elementsList->getElementSize(e);
-
-            for (auto n1 = 0; n1 < element_size; ++n1)
-                for (auto n2 = n1; n2 < element_size; ++n2)
-                {
-                    const LO lclNodeWO1 = elementsList->getElementNode(e, n1);
-                    const LO lclNodeWO2 = elementsList->getElementNode(e, n2);
-
-                    const GO globalTmpNode1 = map->mapNodesWO->getGlobalElement(lclNodeWO1);
-                    const GO globalTmpNode2 = map->mapNodesWO->getGlobalElement(lclNodeWO2);
-
-                    const GO globalNode1 = min(globalTmpNode1, globalTmpNode2);
-                    const GO globalNode2 = max(globalTmpNode1, globalTmpNode2);
-
-                    const pair<GO, GO> key(globalNode1, globalNode2);
-
-                    auto result = nodenode.insert(key);
-
-                    if (result.success())
-                    {
-                        const bool isDiffNodes = (globalNode1 != globalNode2);
-                        const bool isLocalNode1 = map->mapNodes->isNodeGlobalElement(globalNode1);
-                        const bool isLocalNode2 = map->mapNodes->isNodeGlobalElement(globalNode2);
-
-                        const LO lclNode1 = map->mapNodes->getLocalElement(globalNode1);
-                        const LO lclNode2 = map->mapNodes->getLocalElement(globalNode2);
-
-                        if (numPrimalDPN == 4 || numPrimalDPN == 1)
-                        {
-                            if (isLocalNode1)
-                                Kokkos::atomic_fetch_add(&rowCountsL(lclNode1), 1);
-                            if (isDiffNodes && isLocalNode2)
-                                Kokkos::atomic_fetch_add(&rowCountsL(lclNode2), 1);
-                        }
-                        if (numPrimalDPN == 4 || numPrimalDPN == 3)
-                        {
-                            for (auto i = 0; i < 3; ++i)
-                                for (auto j = 0; j < 3; ++j)
-                                {
-                                    const LO lclRow = 3 * lclNode1 + i;
-                                    const LO lclCol = 3 * lclNode2 + j;
-
-                                    if (isLocalNode1)
-                                        Kokkos::atomic_fetch_add(&rowCountsK(lclRow), 1);
-                                    if (isDiffNodes && isLocalNode2)
-                                        Kokkos::atomic_fetch_add(&rowCountsK(lclCol), 1);
-                                }
-                        }
-                        if (numPrimalDPN == 4)
-                        {
-                            if (isLocalNode1)
-                                for (auto i = 0; i < 3; ++i)
-                                {
-                                    const LO lclRow = 3 * lclNode1 + i;
-                                    Kokkos::atomic_fetch_add(&rowCountsS(lclRow), 1);
-                                }
-
-                            if (isDiffNodes && isLocalNode2)
-                                for (auto i = 0; i < 3; ++i)
-                                {
-                                    const LO lclRow = 3 * lclNode2 + i;
-
-                                    Kokkos::atomic_fetch_add(&rowCountsS(lclRow), 1);
-                                }
-                        }
-                    }
-                }
-        },
-        numLclEntries);
-
-    Kokkos::View<size_t *> rowOffsetsK("row offsets", numLclRowsK + 1);
-    Kokkos::View<size_t *> rowOffsetsS("row offsets", numLclRowsK + 1);
-    Kokkos::View<size_t *> rowOffsetsL("row offsets", numLclRowsL + 1);
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-        Kokkos::parallel_scan(
-            numLclRowsL,
-            KOKKOS_LAMBDA(int irow, int &update, bool final) {
-                // parallel scan is a multi-pass parallel pattern
-                // In the ‘final’ pass ‘update’ has the prefix value
-                if (final)
-                    rowOffsetsL(irow) = update;
-                update += rowCountsL(irow);
-                if (final && numLclRowsL == irow + 1)
-                    rowOffsetsL(irow + 1) = update; // total non-zeros
-            });
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-        Kokkos::parallel_scan(
-            numLclRowsK,
-            KOKKOS_LAMBDA(int irow, int &update, bool final) {
-                // parallel scan is a multi-pass parallel pattern
-                // In the ‘final’ pass ‘update’ has the prefix value
-                if (final)
-                    rowOffsetsK(irow) = update;
-                update += rowCountsK(irow);
-                if (final && numLclRowsK == irow + 1)
-                    rowOffsetsK(irow + 1) = update; // total non-zeros
-            });
-
-    if (numPrimalDPN == 4)
-        Kokkos::parallel_scan(
-            numLclRowsK,
-            KOKKOS_LAMBDA(int irow, int &update, bool final) {
-                // parallel scan is a multi-pass parallel pattern
-                // In the ‘final’ pass ‘update’ has the prefix value
-                if (final)
-                    rowOffsetsS(irow) = update;
-                update += rowCountsS(irow);
-                if (final && numLclRowsK == irow + 1)
-                    rowOffsetsS(irow + 1) = update; // total non-zeros
-            });
-
-    Kokkos::deep_copy(rowCountsK, static_cast<size_t>(0));
-    Kokkos::deep_copy(rowCountsS, static_cast<size_t>(0));
-    Kokkos::deep_copy(rowCountsL, static_cast<size_t>(0));
-
-    Kokkos::View<LO *> colIndicesK("column indices", rowOffsetsK(numLclRowsK));
-    Kokkos::View<LO *> colIndicesS("column indices", rowOffsetsS(numLclRowsK));
-    Kokkos::View<LO *> colIndicesL("column indices", rowOffsetsL(numLclRowsL));
-
-    Kokkos::parallel_for(
-        nodenode.capacity(),
-        KOKKOS_LAMBDA(int ientry) {
-            if (nodenode.valid_at(ientry))
-            {
-                const pair<GO, GO> key = nodenode.key_at(ientry);
-                const GO globalNode1 = key.first;
-                const GO globalNode2 = key.second;
-
-                const bool isDiffNodes = (globalNode1 != globalNode2);
-                const bool isLocalNode1 = map->mapNodes->isNodeGlobalElement(globalNode1);
-                const bool isLocalNode2 = map->mapNodes->isNodeGlobalElement(globalNode2);
-
-                const LO lclNode1 = map->mapNodes->getLocalElement(globalNode1);
-                const LO lclNode2 = map->mapNodes->getLocalElement(globalNode2);
-
-                const LO lclNodeWO1 = map->mapNodesWO->getLocalElement(globalNode1);
-                const LO lclNodeWO2 = map->mapNodesWO->getLocalElement(globalNode2);
-
-                if (numPrimalDPN == 4 || numPrimalDPN == 1)
-                {
-
-                    if (isLocalNode1)
-                    {
-                        const LO lclRow = lclNode1;
-                        const LO lclCol = lclNodeWO2;
-
-                        const size_t count = Kokkos::atomic_fetch_add(&rowCountsL(lclRow), 1);
-                        colIndicesL(rowOffsetsL(lclRow) + count) = lclCol;
-                    }
-                    if (isDiffNodes && isLocalNode2)
-                    {
-                        const LO lclRow = lclNode2;
-                        const LO lclCol = lclNodeWO1;
-
-                        const size_t count = Kokkos::atomic_fetch_add(&rowCountsL(lclRow), 1);
-                        colIndicesL(rowOffsetsL(lclRow) + count) = lclCol;
-                    }
-                }
-                if (numPrimalDPN == 4 || numPrimalDPN == 3)
-                {
-                    if (isLocalNode1)
-                    {
-                        for (auto i = 0; i < 3; ++i)
-                            for (auto j = 0; j < 3; ++j)
-                            {
-                                const LO lclRow = 3 * lclNode1 + i;
-                                const LO lclCol = 3 * lclNodeWO2 + j;
-
-                                const size_t count = Kokkos::atomic_fetch_add(&rowCountsK(lclRow), 1);
-                                colIndicesK(rowOffsetsK(lclRow) + count) = lclCol;
-                            }
-                    }
-                    if (isDiffNodes && isLocalNode2)
-                    {
-                        for (auto i = 0; i < 3; ++i)
-                            for (auto j = 0; j < 3; ++j)
-                            {
-                                const LO lclRow = 3 * lclNode2 + i;
-                                const LO lclCol = 3 * lclNodeWO1 + j;
-
-                                const size_t count = Kokkos::atomic_fetch_add(&rowCountsK(lclRow), 1);
-                                colIndicesK(rowOffsetsK(lclRow) + count) = lclCol;
-                            }
-                    }
-                }
-                if (numPrimalDPN == 4)
-                {
-                    if (isLocalNode1)
-                        for (auto i = 0; i < 3; ++i)
-                        {
-                            const LO lclRow = 3 * lclNode1 + i;
-                            const LO lclCol = lclNodeWO2;
-
-                            const size_t count = Kokkos::atomic_fetch_add(&rowCountsS(lclRow), 1);
-                            colIndicesS(rowOffsetsS(lclRow) + count) = lclCol;
-                        }
-                    if (isDiffNodes && isLocalNode2)
-                        for (auto i = 0; i < 3; ++i)
-                        {
-                            const LO lclRow = 3 * lclNode2 + i;
-                            const LO lclCol = lclNodeWO1;
-
-                            const size_t count = Kokkos::atomic_fetch_add(&rowCountsS(lclRow), 1);
-                            colIndicesS(rowOffsetsS(lclRow) + count) = lclCol;
-                        }
-                }
-            }
-        });
-
-    LinearSolver::getTimers()["graph: sort"].start();
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-        Kokkos::parallel_for(
-            numLclRowsL,
-            KOKKOS_LAMBDA(int lclRow) {
-                auto currentColIndices = subview(colIndicesL, Kokkos::make_pair(rowOffsetsL(lclRow), rowOffsetsL(lclRow + 1)));
-                LO *const lclColIndsRaw = currentColIndices.data();
-                std::sort(lclColIndsRaw, lclColIndsRaw + rowOffsetsL(lclRow + 1) - rowOffsetsL(lclRow));
-            });
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-        Kokkos::parallel_for(
-            numLclRowsK,
-            KOKKOS_LAMBDA(int lclRow) {
-                auto currentColIndices = subview(colIndicesK, Kokkos::make_pair(rowOffsetsK(lclRow), rowOffsetsK(lclRow + 1)));
-                LO *const lclColIndsRaw = currentColIndices.data();
-                std::sort(lclColIndsRaw, lclColIndsRaw + rowOffsetsK(lclRow + 1) - rowOffsetsK(lclRow));
-            });
-
-    if (numPrimalDPN == 4)
-        Kokkos::parallel_for(
-            numLclRowsK,
-            KOKKOS_LAMBDA(int lclRow) {
-                auto currentColIndices = subview(colIndicesS, Kokkos::make_pair(rowOffsetsS(lclRow), rowOffsetsS(lclRow + 1)));
-                LO *const lclColIndsRaw = currentColIndices.data();
-                std::sort(lclColIndsRaw, lclColIndsRaw + rowOffsetsS(lclRow + 1) - rowOffsetsS(lclRow));
-            });
-
-    LinearSolver::getTimers()["graph: sort"].stop();
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-    {
-        L = rcp(new crs_graph_type(map->thermoMap, map->thermoMapWO, rowOffsetsL, colIndicesL));
-        L->fillComplete(map->thermoMap, map->thermoMap);
-    }
-
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-    {
-        K = rcp(new crs_graph_type(map->mechaMap, map->mechaMapWO, rowOffsetsK, colIndicesK));
-        K->fillComplete(map->mechaMap, map->mechaMap);
-    }
-
-    if (numPrimalDPN == 4)
-    {
-        S = rcp(new crs_graph_type(map->mechaMap, map->thermoMapWO, rowOffsetsS, colIndicesS));
-        S->fillComplete(map->thermoMap, map->mechaMap);
-
-        Tpetra::MatrixMarket::Writer<Tpetra::CrsMatrix<>>::writeSparseGraphFile(std::string("S_graph.txt"), S);
-    }
-}
diff --git a/katoptron/src/Graph.h b/katoptron/src/Graph.h
deleted file mode 100644
index f3f0fd52..00000000
--- a/katoptron/src/Graph.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef KATOPTRON_GRAPH_H
-#define KATOPTRON_GRAPH_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "ElementsList.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Tpetra_CrsGraph.hpp>
-
-#include <Teuchos_RCP.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to compute and store the graph of the primal matrices with and without overlaps.
- */
-class Graph
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-    typedef Tpetra::CrsGraph<local_ordinal_type, global_ordinal_type> crs_graph_type;
-
-public:
-    Teuchos::RCP<crs_graph_type> K;
-    Teuchos::RCP<crs_graph_type> S;
-    Teuchos::RCP<crs_graph_type> L;
-
-    Graph(Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList);
-};
-}; // namespace katoptron
-
-#endif //KATOPTRON_GRAPH_H
diff --git a/katoptron/src/IterativeSolver.cpp b/katoptron/src/IterativeSolver.cpp
deleted file mode 100644
index cf429c7f..00000000
--- a/katoptron/src/IterativeSolver.cpp
+++ /dev/null
@@ -1,868 +0,0 @@
-#include "IterativeSolver.h"
-#include "wTimer.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wMshData.h"
-#include "wElement.h"
-#include "wNode.h"
-#include "wMedium.h"
-#include "wDirichlet.h"
-#include "wContact.h"
-#include <map>
-#include "wTag.h"
-#include <math.h>
-#include "wHex8.h"
-#include "wQuad4.h"
-#include "wTri3.h"
-#include "wCacheHex8.h"
-#include "wGaussHex8.h"
-#include "wResults.h"
-
-#include "wRandomVariable.h"
-
-//#include "wElemMatrix.h"
-
-#include "wDisplayHook.h"
-
-#include <math.h>
-
-#include <mpi.h>
-
-//#include <tbb/tbb.h>
-//#include <tbb/parallel_for.h>
-//#include <tbb/blocked_range.h>
-//#include <tbb/task_scheduler_init.h>
-//#include <tbb/spin_mutex.h>
-
-#include <cstring>
-#include <sstream>
-#include <iostream>
-#include <locale> // std::locale
-
-// Tpetra
-#include "Stokhos_Tpetra_MP_Vector.hpp"
-#include "Stokhos_Tpetra_Utilities_MP_Vector.hpp"
-#include "Tpetra_ConfigDefs.hpp"
-
-#include "Tpetra_Map.hpp"
-#include "Tpetra_MultiVector.hpp"
-#include "Tpetra_Vector.hpp"
-#include "Tpetra_CrsGraph.hpp"
-#include "Tpetra_CrsMatrix.hpp"
-#include "Stokhos_Tpetra_CG.hpp"
-//#include "Sacado_Fad_MP_Vector.hpp"
-
-#include "Teuchos_XMLParameterListCoreHelpers.hpp"
-#include <Teuchos_Array.hpp>
-#include <Teuchos_GlobalMPISession.hpp>
-#include <Teuchos_oblackholestream.hpp>
-#include <Teuchos_ScalarTraits.hpp>
-#include <Teuchos_RCP.hpp>
-#include "Teuchos_ParameterList.hpp"
-
-#include "Stokhos_Amesos2_MP_Vector.hpp"
-#include "Amesos2_Factory.hpp"
-
-#include "Stokhos_Ifpack2_MP_Vector.hpp"
-#include "Ifpack2_Factory.hpp"
-
-#include "Belos_Tpetra_MP_Vector.hpp"
-#include "BelosStatusTestCombo.hpp"
-
-#include <Xpetra_BlockedCrsMatrix.hpp>
-#include <Xpetra_Matrix.hpp>
-#include <BelosXpetraAdapter.hpp> // => This header defines Belos::XpetraOp
-#include <BelosMueLuAdapter.hpp>  // => This header defines Belos::MueLuOp
-#include <Xpetra_TpetraMultiVector.hpp>
-
-#include <Xpetra_MapExtractorFactory.hpp>
-#include <Xpetra_MatrixUtils.hpp>
-//#include "BelosGmresSolMgr.hpp"
-
-#include "Kokkos_ViewFactory.hpp"
-#include "Kokkos_Vector.hpp"
-
-#include <Epetra_Map.h>
-#include "Epetra_MpiComm.h"
-
-#include "BelosConfigDefs.hpp"
-
-#include "Map.h"
-#include "DiscreteProblem.h"
-
-#include <fstream>
-
-#include <MueLu.hpp>
-
-#include <MueLu_Exceptions.hpp>
-#include <MueLu_Hierarchy.hpp>
-#include <MueLu_MasterList.hpp>
-#include <MueLu_MLParameterListInterpreter.hpp>
-#include <MueLu_ParameterListInterpreter.hpp>
-#include <MueLu_Utilities.hpp>
-#include <MueLu_HierarchyUtils.hpp>
-
-#include <BelosXpetraStatusTestGenResSubNorm_MP_Vector.hpp>
-#include <BelosStatusTestWeightedGenResNorm_MP_Vector.hpp>
-
-#include "ElementMatrices.h"
-
-#include "NodesList.h"
-
-#ifdef max
-#undef max // pour std::numeric_limits<std::streamsize>::max()
-#endif
-
-using namespace katoptron;
-using namespace fwk;
-
-#define HAVE_BELOS_TPETRA_TIMERS
-
-template <typename scalar>
-Teuchos::ParameterList convertParamList(Teuchos::ParameterList &paramList)
-{
-    for (Teuchos::ParameterList::ConstIterator i = paramList.begin(); i != paramList.end(); ++i)
-    {
-        const std::string &name_i = paramList.name(i);
-
-        if (Teuchos::isParameterType<double>(paramList, name_i))
-        {
-            double value = Teuchos::getParameter<double>(paramList, name_i);
-            std::string name_ii = name_i;
-
-            paramList.set<scalar>(name_ii, ((scalar)value));
-        }
-        else if (Teuchos::isParameterType<Teuchos::ParameterList>(paramList, name_i))
-        {
-            Teuchos::ParameterList subparamList = Teuchos::getParameter<Teuchos::ParameterList>(paramList, name_i);
-            subparamList = convertParamList<scalar>(subparamList);
-            paramList.set(name_i, subparamList);
-        }
-    }
-
-    return paramList;
-}
-
-/**
- * @brief Display IterativeSolver information.
- */
-void IterativeSolver::write(std::ostream &out) const
-{
-    out << "katoptron::Solver:\n";
-    out << pbl; // wProblem.h
-}
-
-/**
- * @brief Launch the solver.
- */
-void IterativeSolver::start()
-{
-    std::locale::global(std::locale::classic());
-    {
-        if (minimum_ensemble_size <= 1)
-        {
-            IterativeSolver::tstart<double>();
-        }
-        else if (minimum_ensemble_size <= 8)
-        {
-            typedef Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>> ensemble_scalar;
-            IterativeSolver::tstart<ensemble_scalar>();
-        }
-        else if (minimum_ensemble_size <= 16)
-        {
-            typedef Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>> ensemble_scalar;
-            IterativeSolver::tstart<ensemble_scalar>();
-        }
-        else if (minimum_ensemble_size <= 24)
-        {
-            typedef Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>> ensemble_scalar;
-            IterativeSolver::tstart<ensemble_scalar>();
-        }
-        else if (minimum_ensemble_size <= 32)
-        {
-            typedef Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>> ensemble_scalar;
-            IterativeSolver::tstart<ensemble_scalar>();
-        }
-    }
-}
-
-/**
- * @brief Launch the solver with a templated scalar type.
- */
-template <typename scalar>
-void IterativeSolver::tstart()
-{
-    LinearSolver::getTimers().reset();
-    // ------------------------------------------
-    //
-    //         Trilinos initialization
-    //
-    // ------------------------------------------
-    using std::cerr;
-    using std::cout;
-    using std::endl;
-    using Teuchos::arcp;
-    using Teuchos::Array;
-    using Teuchos::ArrayRCP;
-    using Teuchos::ArrayView;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-    using Teuchos::tuple;
-
-    using Kokkos::ALL;
-    using Kokkos::subview;
-
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-    typedef Map::node_type node_type;
-
-    typedef typename Vectors<scalar>::tpetra_vector_type tpetra_vector_type;
-    typedef typename Vectors<scalar>::tpetra_mvector_type tpetra_mvector_type;
-    typedef typename Vectors<scalar>::xpetra_mvector_type xpetra_mvector_type;
-    typedef typename Vectors<scalar>::xpetra_tmvector_type xpetra_tmvector_type;
-
-    typedef typename Matrices<scalar>::tpetra_crs_type tpetra_crs_type;
-
-    typedef typename Matrices<scalar>::xpetra_bcrs_type xpetra_bcrs_type;
-    typedef typename Matrices<scalar>::xpetra_mat_type xpetra_mat_type;
-
-    typedef Tpetra::Export<local_ordinal_type, global_ordinal_type, node_type> export_type;
-    typedef Tpetra::Import<local_ordinal_type, global_ordinal_type, node_type> import_type;
-
-    typedef MueLu::Hierarchy<scalar, local_ordinal_type, global_ordinal_type, node_type> Hierarchy;
-    typedef MueLu::ParameterListInterpreter<scalar, local_ordinal_type, global_ordinal_type, node_type> ParameterListInterpreter;
-
-    typedef Teuchos::ScalarTraits<scalar> STS;
-    typedef typename STS::magnitudeType magnitude_type;
-
-    Teuchos::oblackholestream blackhole;
-
-    RCP<const Teuchos::Comm<int>> comm = rcp(new Teuchos::MpiComm<int>(pbl.comm));
-
-    const size_t myRank = comm->getRank();
-
-    // Make an output stream (for verbose output) that only prints on
-    // Proc 0 of the communicator.
-    Teuchos::oblackholestream blackHole;
-    std::ostream &out = (myRank == 0) ? std::cout : blackHole;
-
-    // Create some timers used by Belos so we can access them
-    Teuchos::RCP<Teuchos::Time> time_mat_vec =
-        Teuchos::TimeMonitor::getNewTimer("Belos: Operation Op*x");
-    Teuchos::RCP<Teuchos::Time> time_prec_apply =
-        Teuchos::TimeMonitor::getNewTimer("Belos: Operation Prec*x");
-    Teuchos::RCP<Teuchos::Time> time_prec_setup =
-        Teuchos::TimeMonitor::getNewTimer("Total MueLu setup time");
-
-    std::string ortho_strategy = solverList->get("Orthogonalization", "DGKS");
-    std::string belos_ortho_timer_name = "Belos: " + ortho_strategy;
-
-    if (ortho_strategy == "IMGS")
-        belos_ortho_timer_name = belos_ortho_timer_name + "[1]";
-    else
-        belos_ortho_timer_name = belos_ortho_timer_name + "[2]";
-
-    Teuchos::RCP<Teuchos::Time> time_ortho =
-        Teuchos::TimeMonitor::getNewTimer(belos_ortho_timer_name + ": Orthogonalization");
-    Teuchos::RCP<Teuchos::Time> time_ortho_inner =
-        Teuchos::TimeMonitor::getNewTimer(belos_ortho_timer_name + ": Ortho (Inner Product)");
-    Teuchos::RCP<Teuchos::Time> time_ortho_norm =
-        Teuchos::TimeMonitor::getNewTimer(belos_ortho_timer_name + ": Ortho (Norm)");
-    Teuchos::RCP<Teuchos::Time> time_ortho_update =
-        Teuchos::TimeMonitor::getNewTimer(belos_ortho_timer_name + ": Ortho (Update)");
-
-    Teuchos::RCP<Teuchos::Time> time_belos_total =
-        Teuchos::TimeMonitor::getNewTimer("Belos: PseudoBlockGmresSolMgr total solve time");
-
-    bool write_intermediate_files = solverList->get("Write intermediate files", false);
-    bool write_txt_files = solverList->get("Write txt files", false);
-    bool write_vtk_files = solverList->get("Write vtk files", true);
-    {
-        LinearSolver::getTimers()["total"].start();
-        auto msh = pbl.msh;
-
-        auto numNodes = msh->nodes.size();
-
-        RCP<Teuchos::ParameterList> randomParams =
-            rcp(new Teuchos::ParameterList(solverList->get("randomParams", Teuchos::ParameterList())));
-        const int n_rv = pbl.RandomVariables.size();
-
-        typedef Kokkos::View<scalar *, Kokkos::LayoutLeft> RandomVariableView;
-
-        RandomVariableView m_rv_values = RandomVariableView("KL Random Variables", n_rv);
-
-        typedef EnsembleTraits<scalar> ET;
-        const int ensemble_size = ET::size;
-
-        for (int i = 0; i < n_rv; ++i)
-            for (int j = 0; j < ensemble_size; ++j)
-                ET::coeff(m_rv_values(i), j) = (double)pbl.RandomVariables[i]->values[j];
-
-        LinearSolver::getTimers()["dp"].start();
-        Teuchos::RCP<DiscreteProblem<scalar>> discreteProblem =
-            Teuchos::rcp(new DiscreteProblem<scalar>(pbl, numPrimalDPN, randomParams, m_rv_values));
-        LinearSolver::getTimers()["dp"].stop();
-        LinearSolver::getTimers()["computeMatrices"].start();
-
-        const bool contactProblem = (discreteProblem->domain->contactsList->getContactNumber() >= 1);
-
-        if (contactProblem)
-        {
-            LinearSolver::getTimers()["compute contact matrices"].start();
-            discreteProblem->computeContactMatrices(pbl.comm);
-            LinearSolver::getTimers()["compute contact matrices"].stop();
-        }
-        LinearSolver::getTimers()["compute block 00 matrix"].start();
-        discreteProblem->computeMatrices();
-        LinearSolver::getTimers()["compute block 00 matrix"].stop();
-        LinearSolver::getTimers()["computeMatrices"].stop();
-
-        LinearSolver::getTimers()["computeMatrices"].start();
-
-        const bool mergeMatrix = solverList->get("Merge block matrix", true);
-        const bool writeMatrixAndVectors = solverList->get("Write matrix and vectors", false);
-
-        if (writeMatrixAndVectors)
-        {
-            LinearSolver::getTimers()["write"].start();
-            Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeSparseFile(std::string("A_mm.txt"),
-                                                                           discreteProblem->algebraic->matrices->K);
-            if (contactProblem)
-            {
-                Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeSparseFile(std::string("B_mm.txt"),
-                                                                               discreteProblem->algebraic->matrices->B);
-                Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeSparseFile(std::string("B_T_mm.txt"),
-                                                                               discreteProblem->algebraic->matrices->B_T);
-            }
-            LinearSolver::getTimers()["write"].stop();
-        }
-
-        LinearSolver::getTimers()["computeLoads"].start();
-        bool is_scaled = solverList->get("Scaled Block 0", false);
-        discreteProblem->computeLoads(is_scaled);
-        LinearSolver::getTimers()["computeLoads"].stop();
-
-        if (contactProblem)
-        {
-            scalar gamma;
-            if (solverList->isType<std::string>("gamma"))
-            {
-                Teuchos::Array<double> array_gamma_double = Teuchos::getArrayFromStringParameter<double>(*solverList, "gamma");
-                for (int j = 0; j < ensemble_size; ++j)
-                    ET::coeff(gamma, j) = (double)array_gamma_double[j];
-            }
-            else
-                gamma = solverList->get("gamma", 0.);
-            discreteProblem->createBlockMatrix(gamma, writeMatrixAndVectors, mergeMatrix);
-        }
-
-        LinearSolver::getTimers()["computeMatrices"].stop();
-
-        LinearSolver::getTimers()["computeLoads"].start();
-        if (contactProblem)
-        {
-            discreteProblem->createBlockMVector(writeMatrixAndVectors);
-        }
-        LinearSolver::getTimers()["computeLoads"].stop();
-
-        if (writeMatrixAndVectors)
-        {
-            std::string name_1, name_2, name_3;
-            name_1 = "matrix_after_bc.text";
-            name_2 = "matrix_after_bc";
-            name_3 = "vector_after_bc.text";
-
-            LinearSolver::getTimers()["write"].start();
-            Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeSparseFile(std::string("A_mm_after_bc.txt"),
-                                                                           discreteProblem->algebraic->matrices->K);
-            Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("b_mm_after_bc.txt"),
-                                                                          discreteProblem->algebraic->vectors->b);
-            LinearSolver::getTimers()["write"].stop();
-        }
-
-        std::string name_4, defaultName, name_x;
-        defaultName = "none";
-        name_4 = solverList->get("Initial guess", defaultName);
-        name_x = "solution";
-
-        RCP<export_type> exportOutput;
-        RCP<import_type> importOutput;
-        RCP<tpetra_vector_type> xPost, xPost2;
-        if (contactProblem)
-        {
-            importOutput = rcp(new import_type(discreteProblem->algebraic->map->fullmap, discreteProblem->algebraic->map->fullmapWO));
-            exportOutput = rcp(new export_type(discreteProblem->algebraic->map->fullmapWO, discreteProblem->algebraic->map->fullmapOutput));
-            xPost = rcp(new tpetra_vector_type(discreteProblem->algebraic->map->fullmapWO, false));
-            xPost2 = rcp(new tpetra_vector_type(discreteProblem->algebraic->map->fullmapOutput, false));
-        }
-        else
-        {
-            importOutput = rcp(new import_type(discreteProblem->algebraic->map->mapDofs, discreteProblem->algebraic->map->mapDofsWO));
-            exportOutput = rcp(new export_type(discreteProblem->algebraic->map->mapDofsWO, discreteProblem->algebraic->map->mapOutput));
-            xPost = rcp(new tpetra_vector_type(discreteProblem->algebraic->map->mapDofsWO, false));
-            xPost2 = rcp(new tpetra_vector_type(discreteProblem->algebraic->map->mapOutput, false));
-        }
-
-        if (name_4.compare(defaultName) != 0)
-            discreteProblem->algebraic->vectors->x = discreteProblem->algebraic->readVectorFromFile(name_4, myRank);
-
-        RCP<tpetra_vector_type> r(new tpetra_vector_type(discreteProblem->algebraic->map->mapDofs, true));
-
-        discreteProblem->algebraic->matrices->K->apply(*(discreteProblem->algebraic->vectors->x), *r, Teuchos::NO_TRANS, (scalar)-1., (scalar)1.);
-
-        if (writeMatrixAndVectors)
-        {
-            LinearSolver::getTimers()["write"].start();
-            std::string name_5 = "x_0.text";
-            Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string(name_5), discreteProblem->algebraic->vectors->x);
-            std::string name_6 = "r_0.text";
-            Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string(name_6), r);
-            LinearSolver::getTimers()["write"].stop();
-        }
-
-        bool usePrec = solverList->get("Use preconditioner", contactProblem);
-
-        std::string belos_output_file = solverList->get("Output Stream file name belos", "belos_out.txt");
-
-        std::ofstream belos_ofstream(belos_output_file);
-
-        RCP<Teuchos::FancyOStream> verbOut = Teuchos::getFancyOStream(Teuchos::rcpFromRef(belos_ofstream));
-        solverList->set("Output Stream", verbOut->getOStream());
-
-        magnitude_type GMRES_tol = solverList->get("Ensemble Convergence Tolerance", 1E-08);
-        solverList->set("Convergence Tolerance", GMRES_tol);
-
-        active_set_iteration = 0;
-        size_t max_active_set_iteration = solverList->get("Maximum active set iteration", 1);
-
-        bool blockedStatusTest = solverList->get("Use blocked status test", !mergeMatrix);
-        bool blockedStatusTest_x = solverList->get("Use blocked status test: x", blockedStatusTest);
-        bool blockedStatusTest_T = solverList->get("Use blocked status test: T", blockedStatusTest);
-
-        LinearSolver::getTimers()["solver"].start();
-        while (true)
-        {
-            // Solve
-            RCP<tpetra_vector_type> xx;
-
-            const bool blockedMatrix = (numPrimalDPN == 4);
-
-            RCP<xpetra_mat_type> A;
-            if (contactProblem)
-                A = discreteProblem->algebraic->matrices->blockedMatrix;
-            else if (mergeMatrix && blockedMatrix)
-                A = Teuchos::rcp_dynamic_cast<xpetra_bcrs_type>(discreteProblem->algebraic->matrices->A)->Merge();
-            else
-                A = discreteProblem->algebraic->matrices->A;
-
-            typedef xpetra_mvector_type MV;
-            typedef typename tpetra_mvector_type::dot_type belos_scalar;
-            typedef Belos::OperatorT<MV> OP;
-
-            typedef Belos::LinearProblem<belos_scalar, MV, OP> BLinProb;
-            // Turns a Xpetra::Matrix object into a Belos operator
-            RCP<OP> belosOp = rcp(new Belos::XpetraOp<scalar, local_ordinal_type, global_ordinal_type, node_type>(A));
-            RCP<OP> belosPrec;
-
-            if (usePrec)
-            {
-                LinearSolver::getTimers()["preconditioner setup"].start();
-                RCP<xpetra_mvector_type> nullspace1 = Teuchos::null;
-                RCP<xpetra_mvector_type> nullspace2 = Teuchos::null;
-
-                bool useXML = solverList->get("use xml file", false);
-                string xmlFileName = solverList->get("MueLu xml file name", " ");
-                RCP<Teuchos::ParameterList> mueluParams;
-
-                if (useXML || contactProblem)
-                {
-                    bool doIconver = solverList->get("convert MueLu xml file", false);
-
-                    RCP<Teuchos::ParameterList> paramList = Teuchos::getParametersFromXmlFile(xmlFileName);
-
-                    Teuchos::ParameterList paramList2;
-
-                    if (contactProblem)
-                    {
-                        RCP<std::map<local_ordinal_type, local_ordinal_type>> lagr2dof =
-                            Teuchos::rcpFromRef(discreteProblem->algebraic->map->lm_to_dof);
-
-                        RCP<Teuchos::ParameterList> paramsF, paramsI;
-                        paramsF = sublist(paramList, "Factories");
-                        paramsI = sublist(paramsF, "myInterfaceAggs2");
-                        paramsI->set<RCP<std::map<local_ordinal_type, local_ordinal_type>>>("DualNodeID2PrimalNodeID - level 0", lagr2dof);
-                    }
-
-                    if (doIconver)
-                        paramList2 = convertParamList<scalar>(*paramList);
-                    else
-                        paramList2 = (*paramList);
-
-                    mueluParams = rcp(new Teuchos::ParameterList(paramList2));
-                }
-                else
-                    mueluParams = rcp(new Teuchos::ParameterList(solverList->get("mueluParams", Teuchos::ParameterList())));
-
-                ParameterListInterpreter mueLuFactory(*mueluParams, comm);
-                RCP<Hierarchy> H = mueLuFactory.CreateHierarchy();
-                H->GetLevel(0)->Set("A", A);
-
-                H->IsPreconditioner(true);
-                H->SetDefaultVerbLevel(MueLu::Extreme);
-                mueLuFactory.SetupHierarchy(*H);
-                LinearSolver::getTimers()["preconditioner setup"].stop();
-
-                // Turns a MueLu::Hierarchy object into a Belos operator
-                belosPrec = rcp(new Belos::MueLuOp<scalar, local_ordinal_type, global_ordinal_type, node_type>(H));
-            }
-
-            RCP<MV> xMV;
-            RCP<MV> bMV;
-            RCP<MV> weightsMV;
-
-            if (contactProblem)
-            {
-                xMV = discreteProblem->algebraic->vectors->solutionMultiVector;
-                bMV = discreteProblem->algebraic->vectors->rhsMultiVector;
-            }
-            else
-            {
-                xMV = rcp(new xpetra_tmvector_type(discreteProblem->algebraic->vectors->x));
-                bMV = rcp(new xpetra_tmvector_type(discreteProblem->algebraic->vectors->b));
-                weightsMV = rcp(new xpetra_tmvector_type(discreteProblem->algebraic->vectors->weights));
-            }
-
-            RCP<BLinProb> blinproblem = rcp(new BLinProb(belosOp, xMV, bMV));
-
-            if (usePrec)
-                blinproblem->setRightPrec(belosPrec);
-            blinproblem->setProblem();
-            RCP<Teuchos::ParameterList> belosParams = solverList;
-            RCP<Belos::SolverManager<belos_scalar, MV, OP>> blinsolver =
-                rcp(new Belos::PseudoBlockGmresSolMgr<belos_scalar, MV, OP>(blinproblem, belosParams));
-            out << "Belos informations are written in file " << belos_output_file << endl;
-
-            if (writeMatrixAndVectors)
-            {
-                LinearSolver::getTimers()["write"].start();
-                if (contactProblem)
-                {
-                    RCP<tpetra_mvector_type> mxx =
-                        (Teuchos::rcp_dynamic_cast<xpetra_tmvector_type>(discreteProblem->algebraic->vectors->solutionMultiVector))->getTpetra_MultiVector();
-                    RCP<tpetra_mvector_type> mbb =
-                        (Teuchos::rcp_dynamic_cast<xpetra_tmvector_type>(discreteProblem->algebraic->vectors->rhsMultiVector))->getTpetra_MultiVector();
-                    Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("blocked_x_0_mm.txt"), mxx->getVectorNonConst(0));
-                    Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("blocked_b_mm.txt"), mbb->getVectorNonConst(0));
-                }
-                LinearSolver::getTimers()["write"].stop();
-            }
-
-            if (contactProblem && solverList->get("Create Preconditioned Matrix", false))
-            {
-                LinearSolver::getTimers()["create AM^{-1}"].start();
-                typedef xpetra_tmvector_type TMV;
-
-                Teuchos::RCP<const Xpetra::Map<local_ordinal_type, global_ordinal_type, node_type>> merged_map =
-                    discreteProblem->algebraic->vectors->rhsMultiVector->getMap();
-
-                Teuchos::RCP<TMV> MVx1 = Teuchos::rcp(new TMV(merged_map, merged_map->getGlobalNumElements(), true));
-                Teuchos::RCP<TMV> MVx2 = Teuchos::rcp(new TMV(merged_map, merged_map->getGlobalNumElements(), true));
-                Teuchos::RCP<TMV> MVy1 = Teuchos::rcp(new TMV(merged_map, merged_map->getGlobalNumElements(), true));
-                Teuchos::RCP<TMV> MVy2 = Teuchos::rcp(new TMV(merged_map, merged_map->getGlobalNumElements(), true));
-
-                for (size_t local_i = 0; local_i < merged_map->getNodeNumElements(); ++local_i)
-                    MVx1->sumIntoGlobalValue(merged_map->getGlobalElement(local_i), merged_map->getGlobalElement(local_i), ((scalar)1.));
-
-                belosPrec->Apply(*MVx1, *MVx2);
-                belosOp->Apply(*MVx2, *MVy2);
-                belosOp->Apply(*MVx1, *MVy1);
-
-                Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("Applied_Matrix_mm.txt"),
-                                                                              MVy1->getTpetra_MultiVector());
-                Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("Applied_Preconditioner_mm.txt"),
-                                                                              MVx2->getTpetra_MultiVector());
-                Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("Applied_Preconditioned_Matrix_mm.txt"),
-                                                                              MVy2->getTpetra_MultiVector());
-
-                LinearSolver::getTimers()["create AM^{-1}"].stop();
-            }
-
-            if (blockedMatrix && blockedStatusTest)
-            {
-                typedef Belos::StatusTestGenResSubNorm<belos_scalar, MV, OP> blockStatusTestClass;
-                typedef Belos::StatusTestWeightedGenResNorm<belos_scalar, MV, OP> weightedStatusTestClass;
-                typedef Belos::StatusTestCombo<belos_scalar, MV, OP> StatusTestComboClass;
-
-                magnitude_type GMRES_tol_x = solverList->get("Ensemble Convergence Tolerance: x", 1E-08);
-                magnitude_type GMRES_tol_T = solverList->get("Ensemble Convergence Tolerance: T", 1E-08);
-                magnitude_type GMRES_tol_w = solverList->get("Ensemble Convergence Tolerance: weights", 1E-08);
-
-                bool x_rel = solverList->get("Ensemble Convergence Tolerance: x - relative", true);
-                bool x_rel_full_rhs = solverList->get("Ensemble Convergence Tolerance: x - relative full rhs", false);
-                bool T_rel = solverList->get("Ensemble Convergence Tolerance: T - relative", true);
-                bool T_rel_full_rhs = solverList->get("Ensemble Convergence Tolerance: T - relative full rhs", false);
-
-                bool weightStatusTest = solverList->get("Use weighted status test", false);
-                bool w_rel = solverList->get("Ensemble Convergence Tolerance: weights - relative", true);
-
-                RCP<blockStatusTestClass> blockStatusTest_T = Teuchos::rcp(new blockStatusTestClass(GMRES_tol_T, 0));
-                RCP<blockStatusTestClass> blockStatusTest_x = Teuchos::rcp(new blockStatusTestClass(GMRES_tol_x, 1));
-                RCP<weightedStatusTestClass> weightedStatusTest = Teuchos::rcp(new weightedStatusTestClass(GMRES_tol_w, weightsMV));
-
-                if (x_rel && x_rel_full_rhs)
-                    blockStatusTest_x->defineScaleForm(Belos::NormOfFullInitRes, Belos::TwoNorm);
-                else if (!x_rel)
-                    blockStatusTest_x->defineScaleForm(Belos::None, Belos::TwoNorm);
-                if (T_rel && T_rel_full_rhs)
-                    blockStatusTest_T->defineScaleForm(Belos::NormOfFullInitRes, Belos::TwoNorm);
-                else if (!T_rel)
-                    blockStatusTest_T->defineScaleForm(Belos::None, Belos::TwoNorm);
-                if (!w_rel)
-                    weightedStatusTest->defineScaleForm(Belos::None, Belos::TwoNorm);
-
-                RCP<StatusTestComboClass> statusTestCombo = Teuchos::rcp(new StatusTestComboClass(StatusTestComboClass::SEQ));
-
-                if (blockedStatusTest_T)
-                    statusTestCombo->addStatusTest(blockStatusTest_T);
-                if (blockedStatusTest_x)
-                    statusTestCombo->addStatusTest(blockStatusTest_x);
-                if (weightStatusTest)
-                    statusTestCombo->addStatusTest(weightedStatusTest);
-
-                blinsolver->setUserConvStatusTest(statusTestCombo);
-            }
-            out << "--------- Belos start" << endl;
-            blinsolver->solve();
-            out << "--------- Belos stop" << endl;
-
-            if (contactProblem)
-            {
-                RCP<tpetra_mvector_type> mxx =
-                    (Teuchos::rcp_dynamic_cast<xpetra_tmvector_type>(discreteProblem->algebraic->vectors->solutionMultiVector))->getTpetra_MultiVector();
-                xx = mxx->getVectorNonConst(0);
-
-                if (write_intermediate_files)
-                {
-                    LinearSolver::getTimers()["solver"].stop();
-                    LinearSolver::getTimers()["write results"].start();
-
-                    std::string name_5 = "x_sol" + std::to_string(active_set_iteration) + ".txt";
-                    Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string(name_5), xx);
-                    LinearSolver::getTimers()["write results"].stop();
-                    LinearSolver::getTimers()["solver"].start();
-                }
-
-                xPost->doImport(*xx, *importOutput, Tpetra::INSERT);
-            }
-            else
-            {
-                xPost->doImport(*(discreteProblem->algebraic->vectors->x), *importOutput, Tpetra::INSERT);
-            }
-            ++active_set_iteration;
-
-            if (write_intermediate_files)
-            {
-                LinearSolver::getTimers()["solver"].stop();
-                LinearSolver::getTimers()["write results"].start();
-                if (write_txt_files)
-                {
-                    xPost2->doExport(*(xPost), *exportOutput, Tpetra::INSERT);
-                    Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("x_mm.txt"), xPost2);
-                }
-                if (write_vtk_files)
-                {
-                    this->writeResults<scalar>(xPost, numNodes, name_x, active_set_iteration,
-                                               false, false, discreteProblem->algebraic->map,
-                                               discreteProblem->domain->random_field);
-                }
-                LinearSolver::getTimers()["write results"].stop();
-                LinearSolver::getTimers()["solver"].start();
-            }
-
-            Mask<scalar> hasConverged;
-            const size_t ensemble_size = hasConverged.getSize();
-
-            for (size_t l = 0; l < ensemble_size; ++l)
-                hasConverged.set(l, true);
-
-            if (active_set_iteration == max_active_set_iteration)
-            {
-                if (contactProblem)
-                {
-                    LinearSolver::getTimers()["update"].start();
-                    hasConverged = discreteProblem->updateActivity(active_set_iteration);
-                    LinearSolver::getTimers()["update"].stop();
-
-                    if (MaskLogic::AND(hasConverged) == false)
-                    {
-                        out << "---------------------------------------------------------" << std::endl;
-                        out << "---Has not converged before reaching maximum iteration---" << std::endl;
-                        out << "---------------------------------------------------------" << std::endl;
-                    }
-                }
-                break;
-            }
-            else if (contactProblem)
-            {
-                LinearSolver::getTimers()["update"].start();
-                hasConverged = discreteProblem->updateActivity(active_set_iteration);
-                LinearSolver::getTimers()["update"].stop();
-            }
-            if (MaskLogic::AND(hasConverged))
-                break;
-            else
-            {
-#ifndef HAVE_STOKHOS_ENSEMBLE_REDUCT
-                mask_assign(hasConverged, GMRES_tol) = {1., GMRES_tol};
-                solverList->set("Convergence Tolerance", GMRES_tol);
-#else
-                ;
-#endif
-            }
-        }
-
-        LinearSolver::getTimers()["solver"].stop();
-
-        LinearSolver::getTimers()["write results"].start();
-        if (write_txt_files)
-        {
-            xPost2->doExport(*(xPost), *exportOutput, Tpetra::INSERT);
-            Tpetra::MatrixMarket::Writer<tpetra_crs_type>::writeDenseFile(std::string("x_mm.txt"), xPost2);
-        }
-        if (write_vtk_files)
-        {
-            this->writeResults<scalar>(xPost, numNodes, name_x, active_set_iteration, true, false,
-                                       discreteProblem->algebraic->map, discreteProblem->domain->random_field);
-        }
-        LinearSolver::getTimers()["write results"].stop();
-        // ------------------------------------------
-        //
-        //        End of the timers and print
-        //
-        // ------------------------------------------
-        LinearSolver::getTimers()["total"].stop();
-
-        discreteProblem->domain->elementsList = Teuchos::null;
-        discreteProblem->domain->nodesList = Teuchos::null;
-        discreteProblem->domain->materialsList = Teuchos::null;
-        discreteProblem->domain->contactsList = Teuchos::null;
-        discreteProblem->domain->random_field = Teuchos::null;
-        discreteProblem->domain->~Domain();
-        discreteProblem = Teuchos::null;
-
-        double time_mat_vec_sec = time_mat_vec->totalElapsedTime();
-        double time_prec_setup_sec = time_prec_setup->totalElapsedTime();
-        double time_prec_apply_sec = time_prec_apply->totalElapsedTime();
-        double time_ortho_sec = time_ortho->totalElapsedTime();
-
-        double time_belos_total_sec = time_belos_total->totalElapsedTime();
-
-        double time_ortho_inner_sec = time_ortho_inner->totalElapsedTime();
-        double time_ortho_norm_sec = time_ortho_norm->totalElapsedTime();
-        double time_ortho_update_sec = time_ortho_update->totalElapsedTime();
-
-        static clock_t freq = CLOCKS_PER_SEC;
-
-        UnixClockTime zero_time = UnixClockTime(0);
-        UnixClockTime time_mat_vec_time = UnixClockTime(time_mat_vec_sec * static_cast<double>(freq) / 10000);
-        UnixClockTime time_prec_setup_time = UnixClockTime(time_prec_setup_sec * static_cast<double>(freq) / 10000);
-        UnixClockTime time_prec_apply_time = UnixClockTime(time_prec_apply_sec * static_cast<double>(freq) / 10000);
-        UnixClockTime time_ortho_time = UnixClockTime(time_ortho_sec * static_cast<double>(freq) / 10000);
-        UnixClockTime time_ortho_inner_time = UnixClockTime(time_ortho_inner_sec * static_cast<double>(freq) / 10000);
-        UnixClockTime time_ortho_norm_time = UnixClockTime(time_ortho_norm_sec * static_cast<double>(freq) / 10000);
-        UnixClockTime time_ortho_update_time = UnixClockTime(time_ortho_update_sec * static_cast<double>(freq) / 10000);
-
-        UnixClockTime time_belos_total_time = UnixClockTime(time_belos_total_sec * static_cast<double>(freq) / 10000);
-
-        Times time_mat_vec_times, time_prec_setup_times, time_prec_apply_times, time_ortho_times,
-            time_ortho_inner_times, time_ortho_norm_times, time_ortho_update_times;
-        Times zero_times;
-
-        Times time_belos_total_times;
-
-        time_mat_vec_times.setUser(zero_time);
-        time_mat_vec_times.setReal(time_mat_vec_time);
-        time_mat_vec_times.setKernel(zero_time);
-
-        time_prec_setup_times.setUser(zero_time);
-        time_prec_setup_times.setReal(time_prec_setup_time);
-        time_prec_setup_times.setKernel(zero_time);
-
-        time_prec_apply_times.setUser(zero_time);
-        time_prec_apply_times.setReal(time_prec_apply_time);
-        time_prec_apply_times.setKernel(zero_time);
-
-        time_ortho_times.setUser(zero_time);
-        time_ortho_times.setReal(time_ortho_time);
-        time_ortho_times.setKernel(zero_time);
-
-        time_ortho_inner_times.setUser(zero_time);
-        time_ortho_inner_times.setReal(time_ortho_inner_time);
-        time_ortho_inner_times.setKernel(zero_time);
-
-        time_ortho_norm_times.setUser(zero_time);
-        time_ortho_norm_times.setReal(time_ortho_norm_time);
-        time_ortho_norm_times.setKernel(zero_time);
-
-        time_ortho_update_times.setUser(zero_time);
-        time_ortho_update_times.setReal(time_ortho_update_time);
-        time_ortho_update_times.setKernel(zero_time);
-
-        zero_times.setUser(zero_time);
-        zero_times.setReal(zero_time);
-        zero_times.setKernel(zero_time);
-
-        time_belos_total_times.setUser(zero_time);
-        time_belos_total_times.setReal(time_belos_total_time);
-        time_belos_total_times.setKernel(zero_time);
-
-        LinearSolver::getTimers()["time_belos_total"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_belos_total"].setTElaps(time_belos_total_times);
-
-        LinearSolver::getTimers()["time_mat_vec"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_mat_vec"].setTElaps(time_mat_vec_times);
-
-        LinearSolver::getTimers()["time_prec_setup"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_prec_setup"].setTElaps(time_prec_setup_times);
-
-        LinearSolver::getTimers()["time_prec_apply"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_prec_apply"].setTElaps(time_prec_apply_times);
-
-        LinearSolver::getTimers()["time_ortho"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_ortho"].setTElaps(time_ortho_times);
-
-        LinearSolver::getTimers()["time_ortho_inner"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_ortho_inner"].setTElaps(time_ortho_inner_times);
-
-        LinearSolver::getTimers()["time_ortho_norm"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_ortho_norm"].setTElaps(time_ortho_norm_times);
-
-        LinearSolver::getTimers()["time_ortho_update"].setTStart(zero_times);
-        LinearSolver::getTimers()["time_ortho_update"].setTElaps(time_ortho_update_times);
-
-        out << "\n---CPU statistics of proc " << myRank << "---\n";
-        out << LinearSolver::getTimers();
-        out << "---------------------------\n";
-
-        bool print_teuchos_timers = solverList->get("Print Teuchos timers", false);
-        if (print_teuchos_timers)
-        {
-            std::streambuf *psbuf, *backup;
-            std::ofstream filestr;
-            filestr.open("teuchos_timers.txt");
-
-            backup = std::cout.rdbuf(); // back up cout's streambuf
-
-            psbuf = filestr.rdbuf(); // get file's streambuf
-            std::cout.rdbuf(psbuf);  // assign streambuf to cout
-
-            Teuchos::TimeMonitor::summarize();
-
-            std::cout.rdbuf(backup); // restore cout's original streambuf
-
-            filestr.close();
-        }
-
-        Teuchos::TimeMonitor::zeroOutTimers();
-    }
-}
diff --git a/katoptron/src/IterativeSolver.h b/katoptron/src/IterativeSolver.h
deleted file mode 100644
index 57e1df27..00000000
--- a/katoptron/src/IterativeSolver.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef KATOPTRON_ITERATIVESOLVER_H
-#define KATOPTRON_ITERATIVESOLVER_H
-
-#include "katoptron.h"
-#include "wObject.h"
-#include "wTimer.h"
-#include "wTimers.h"
-#include "Teuchos_ParameterList.hpp"
-
-#include "LinearSolver.h"
-
-namespace katoptron
-{
-
-/**
- * @brief Solver class where the active set strategy is implemented.
- */
-class KATOPTRON_API IterativeSolver : public LinearSolver
-{
-public:
-    IterativeSolver(Problem &pbl, Teuchos::RCP<Teuchos::ParameterList> solverList,
-                    int numPrimalDPN = 3,
-                    size_t minimum_ensemble_size = 1)
-        : LinearSolver(pbl, solverList, numPrimalDPN, minimum_ensemble_size){};
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-    void start();
-
-private:
-    template <typename scalar>
-    void tstart();
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_ITERATIVESOLVER_H
diff --git a/katoptron/src/Kokkos_Init.h b/katoptron/src/Kokkos_Init.h
deleted file mode 100644
index 70164ab0..00000000
--- a/katoptron/src/Kokkos_Init.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef KATOPTRON_KOKKOSINIT_H
-#define KATOPTRON_KOKKOSINIT_H
-
-#include <Kokkos_Core.hpp>
-
-void Kokkos_Initialize(int nThreads)
-{
-#ifdef KOKKOS_ENABLE_DEPRECATED_CODE
-    Kokkos::OpenMP::initialize(nThreads);
-#else
-    Kokkos::OpenMP::impl_initialize(nThreads);
-#endif
-}
-
-void Kokkos_Finalize()
-{
-    Kokkos::finalize();
-}
-
-#endif //KATOPTRON_KOKKOSINIT_H
\ No newline at end of file
diff --git a/katoptron/src/LinearSolver.h b/katoptron/src/LinearSolver.h
deleted file mode 100644
index 0fe02a2f..00000000
--- a/katoptron/src/LinearSolver.h
+++ /dev/null
@@ -1,162 +0,0 @@
-#ifndef KATOPTRON_LINEARSOLVER_H
-#define KATOPTRON_LINEARSOLVER_H
-
-#include "katoptron.h"
-#include "wObject.h"
-#include "wTimer.h"
-#include "wTimers.h"
-#include "wTag.h"
-#include "wMedium.h"
-#include "wNode.h"
-
-#include "Teuchos_ParameterList.hpp"
-
-#include "wProblem.h"
-#include "wContact.h"
-#include "wMshData.h"
-#include "wDisplayHook.h"
-#include "wElement.h"
-
-// Tpetra
-#include "Stokhos_Tpetra_MP_Vector.hpp"
-#include "Stokhos_Tpetra_Utilities_MP_Vector.hpp"
-#include "Tpetra_ConfigDefs.hpp"
-#include "Tpetra_Map.hpp"
-#include "Tpetra_MultiVector.hpp"
-#include "Tpetra_Vector.hpp"
-#include "Tpetra_CrsGraph.hpp"
-#include "Tpetra_CrsMatrix.hpp"
-#include "Stokhos_Tpetra_CG.hpp"
-
-#include <Teuchos_Array.hpp>
-#include <Teuchos_GlobalMPISession.hpp>
-#include <Teuchos_oblackholestream.hpp>
-#include <Teuchos_ScalarTraits.hpp>
-#include <Teuchos_RCP.hpp>
-#include "Teuchos_ParameterList.hpp"
-
-#include "Stokhos_Amesos2_MP_Vector.hpp"
-#include "Amesos2_Factory.hpp"
-
-#include "Stokhos_Ifpack2_MP_Vector.hpp"
-#include "Ifpack2_Factory.hpp"
-
-#include "Belos_Tpetra_MP_Vector.hpp"
-#include "BelosLinearProblem.hpp"
-#include "BelosPseudoBlockGmresSolMgr.hpp"
-#include "BelosPseudoBlockCGSolMgr.hpp"
-#include "BelosBlockGmresSolMgr.hpp"
-
-#include "Kokkos_ViewFactory.hpp"
-#include "Kokkos_Vector.hpp"
-
-#include <Epetra_Map.h>
-#include "Epetra_MpiComm.h"
-
-#include "BelosConfigDefs.hpp"
-
-#include "wRandomField.h"
-
-#include "wResults.h"
-#include "wLazy.h"
-#include "Map.h"
-
-#include <map>
-
-#include <limits>
-
-#include "EnsembleTraits.h"
-
-#include "ResultsDecl.hpp"
-
-namespace katoptron
-{
-
-/**
- * @brief Solver class which includes utilities such as timers and VTK writers.
- */
-class KATOPTRON_API LinearSolver
-{
-public:
-#ifndef SWIG
-    Problem &pbl;
-#endif
-    Teuchos::RCP<Teuchos::ParameterList> solverList;
-    const int numPrimalDPN;
-    const size_t minimum_ensemble_size;
-    size_t active_set_iteration;
-#ifndef SWIG
-    DisplayHook *dhook;
-
-#endif
-public:
-    /**
-     * @brief LinearSolver constructor
-     *
-     * Arguments:
-     * <ul>
-     *  <li> _pbl: A Problem object,
-     *  <li> _solverList: an RCP to a ParameterList object which describes the solver,
-     *  <li> _numPrimalDPN: the number of degrees of freedom per node (without taking into account the Lagrange multipliers),
-     *  <li> _minimum_ensemble_size: the used ensemble size (1, 8, 16, 24, or 32),
-     * </ul>
-     */
-    LinearSolver(Problem &_pbl, Teuchos::RCP<Teuchos::ParameterList> _solverList,
-                 int _numPrimalDPN,
-                 size_t _minimum_ensemble_size) : pbl(_pbl),
-                                                  solverList(_solverList),
-                                                  numPrimalDPN(_numPrimalDPN),
-                                                  minimum_ensemble_size(_minimum_ensemble_size)
-    {
-        dhook = NULL;
-    }
-
-    virtual ~LinearSolver() {}
-
-    /**
-    * @brief Manage timers.
-    */
-    static fwk::Timers &getTimers()
-    {
-        static fwk::Timers tms;
-        return tms;
-    }
-
-    /**
-     * @brief Set the GUI.
-     */
-    void setGUI(DisplayHook &hook)
-    {
-        dhook = &hook;
-    }
-
-protected:
-    /**
-     * @brief Write results on disk in VTK format.
-     */
-    template <typename scalar>
-    void writeResults(
-        Teuchos::RCP<Tpetra::Vector<scalar, Map::local_ordinal_type, Map::global_ordinal_type>> xPost,
-        size_t numNodes,
-        std::string name,
-        size_t ast,
-        bool final_result,
-        bool write_txt,
-        Teuchos::RCP<Map> map,
-        Teuchos::RCP<RandomField<scalar, Kokkos::DefaultExecutionSpace>> random_field)
-    {
-        LinearSolver::getTimers()["write results"].start();
-
-        typedef Map::local_ordinal_type LocalOrdinal;
-        typedef Map::global_ordinal_type GlobalOrdinal;
-
-        writeResultsVTK<scalar, LocalOrdinal, GlobalOrdinal>(pbl, xPost, map,
-                                                             random_field,
-                                                             name, ast, final_result, write_txt);
-
-        LinearSolver::getTimers()["write results"].stop();
-    }
-};
-} // namespace katoptron
-
-#endif //KATOPTRON_LINEARSOLVER_H
diff --git a/katoptron/src/Loads.h b/katoptron/src/Loads.h
deleted file mode 100644
index aa8ab46d..00000000
--- a/katoptron/src/Loads.h
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef KATOPTRON_LOADS_H
-#define KATOPTRON_LOADS_H
-
-#include "katoptron.h"
-#include "Map.h"
-#include "Domain.h"
-#include "DirichletList.h"
-#include "NeumannList.h"
-#include "SourcesList.h"
-#include "ElementsList.h"
-#include "PreloadList.h"
-#include "WeightsList.h"
-
-namespace katoptron
-{
-
-/**
- * @brief Class which includes all the loads, boundary conditions, preloads, and weights.
- */
-template <typename scalar>
-class Loads
-{
-public:
-    Teuchos::RCP<DirichletList<scalar>> dirichletList;
-    Teuchos::RCP<NeumannList<scalar>> neumannList;
-    Teuchos::RCP<SourcesList<scalar>> sourcesList;
-    Teuchos::RCP<PreloadList<scalar>> preloadList;
-    Teuchos::RCP<WeightsList<scalar>> weightsList;
-
-    Loads();
-    Loads(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<Domain<scalar>> domain);
-};
-
-/**
- * @brief Loads constructor
- * 
- * This constructor initializes the lists of Dirichlet BC, Neumann BC, sources, preloads, and weights.
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: A Problem object,
- *  <li> map: an RCP to a Map object,
- *  <li> domain: an RCP to a Domain object.
- * </ul>
- */
-template <typename scalar>
-Loads<scalar>::Loads(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<Domain<scalar>> domain)
-{
-    dirichletList = Teuchos::rcp(new DirichletList<scalar>(pbl, map, domain->elementsList));
-    neumannList = Teuchos::rcp(new NeumannList<scalar>(pbl, map, domain->elementsList));
-    sourcesList = Teuchos::rcp(new SourcesList<scalar>(pbl, map, domain->elementsList));
-    preloadList = Teuchos::rcp(new PreloadList<scalar>(pbl, map, domain->elementsList));
-    weightsList = Teuchos::rcp(new WeightsList<scalar>(pbl, map, domain->elementsList));
-}
-
-}; // namespace katoptron
-
-#endif //KATOPTRON_LOADS_H
diff --git a/katoptron/src/Map.cpp b/katoptron/src/Map.cpp
deleted file mode 100644
index 50321d34..00000000
--- a/katoptron/src/Map.cpp
+++ /dev/null
@@ -1,328 +0,0 @@
-#include "Map.h"
-
-#include "wProblem.h"
-#include "wMshData.h"
-#include "wElement.h"
-#include "wNode.h"
-#include "wGroup.h"
-#include "wTag.h"
-
-#include <mpi.h>
-
-#include "wContact.h"
-
-#include <Teuchos_Array.hpp>
-
-using namespace katoptron;
-using namespace tbox;
-
-void std_vector_intersection(std::vector<Map::global_ordinal_type> vec1,
-                             std::vector<int> vec2, std::vector<int> &vec3)
-{
-    std::sort(vec2.begin(), vec2.end());
-    for (auto i = 0; i < vec1.size(); ++i)
-    {
-        if (std::find(vec2.begin(), vec2.end(), vec1[i]) != vec2.end())
-            vec3.push_back(vec1[i]);
-    }
-}
-
-/**
- * @brief Map constructor
- * 
- * This constructor initializes the maps used to describe the distributed matrices and vectors.
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: A Problem object,
- *  <li> numPrimalDPN: the number of degrees of freedom per node (without taking into account the Lagrange multipliers).
- * </ul>
- */
-Map::Map(Problem &pbl, size_t _numPrimalDPN)
-{
-    using Teuchos::Array;
-    using Teuchos::ArrayRCP;
-    using Teuchos::ArrayView;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    numPrimalDPN = _numPrimalDPN;
-
-    RCP<const Teuchos::Comm<int>> comm = rcp(new Teuchos::MpiComm<int>(pbl.comm));
-
-    const size_t myRank = comm->getRank();
-    const size_t numtasks = comm->getSize();
-
-    auto msh = pbl.msh;
-
-    const Tpetra::global_size_t numNodes = msh->nodes.size();
-    const Tpetra::global_size_t numPrimalDOFs = numNodes * numPrimalDPN;
-    const Tpetra::global_size_t numThermalDOFs = numNodes;
-    const Tpetra::global_size_t numMechanicalDOFs = numNodes * 3;
-
-    // ------------------------------------------------------------- //
-    //                     Node and elements maps
-    // ------------------------------------------------------------- //
-
-    // Nodes map with overlaps
-    // Create a map which associates to each mpi process the nodes included
-    // in their elements partition. This map has overlaps associated to the
-    // interfaces of the partitions.
-    std::vector<global_ordinal_type> myNodesWO1 = {};
-    std::vector<global_ordinal_type> myNodesWO2 = {};
-    std::vector<global_ordinal_type> tmpMyNodesWO1 = {};
-    std::vector<global_ordinal_type> tmpMyNodesWO2 = {};
-    std::vector<global_ordinal_type> myElems = {};
-
-    if (numtasks == 1)
-    {
-        for (auto e : msh->elems)
-            if (e->type() != ElType::POINT1)
-                myElems.push_back(e->no - 1);
-
-        for (auto n : msh->nodes)
-        {
-            myNodesWO1.push_back(n->row);
-            myNodesWO2.push_back(n->row);
-        }
-    }
-    else
-    {
-        for (auto const &p : msh->parts)
-        {
-            if (p.second->no == (myRank + 1))
-            {
-                for (auto e : p.second->elems)
-                {
-                    if (e->type() == ElType::HEX8 || e->type() == ElType::TETRA4)
-                        for (auto n1 : e->nodes)
-                        {
-                            tmpMyNodesWO1.push_back(n1->row);
-                            tmpMyNodesWO2.push_back(n1->row);
-                        }
-                    if (e->type() != ElType::POINT1)
-                        myElems.push_back(e->no - 1);
-                }
-            }
-            else if (p.second->no == -(myRank + 1))
-            {
-                for (auto e : p.second->elems)
-                {
-                    if (e->type() == ElType::HEX8 || e->type() == ElType::TETRA4)
-                        for (auto n1 : e->nodes)
-                            tmpMyNodesWO1.push_back(n1->row);
-
-                    if (e->type() != ElType::POINT1)
-                        myElems.push_back(e->no - 1);
-                }
-            }
-        }
-
-        std::sort(tmpMyNodesWO1.begin(), tmpMyNodesWO1.end());
-        std::sort(tmpMyNodesWO2.begin(), tmpMyNodesWO2.end());
-        std::sort(myElems.begin(), myElems.end());
-
-        myNodesWO1.push_back(tmpMyNodesWO1[0]);
-
-        for (auto i = 1; i < tmpMyNodesWO1.size(); ++i)
-            if (tmpMyNodesWO1[i] != tmpMyNodesWO1[i - 1])
-                myNodesWO1.push_back(tmpMyNodesWO1[i]);
-
-        myNodesWO2.push_back(tmpMyNodesWO2[0]);
-
-        for (auto i = 1; i < tmpMyNodesWO2.size(); ++i)
-            if (tmpMyNodesWO2[i] != tmpMyNodesWO2[i - 1])
-                myNodesWO2.push_back(tmpMyNodesWO2[i]);
-    }
-
-    mapNodesWO = rcp(new tpetra_map_type(numNodes, myNodesWO1, indexBase, comm));
-    mapElems = rcp(new tpetra_map_type(Teuchos::OrdinalTraits<Tpetra::global_size_t>::invalid(), myElems, indexBase, comm));
-
-    // Loop on the contact and remove from myNodesWO2 any nodes included in a contact boundary for which the
-    // current mpi process has no contact element.
-    // This prevent Moertel of not finding the nodes.
-    int contacts_number = pbl.Contacts.size();
-    if (numtasks != 1)
-        for (auto i = 0; i < contacts_number; ++i)
-        {
-            {
-                std::vector<int> v3;
-                std_vector_intersection(myNodesWO2, pbl.Contacts[i]->slave_boundary_nodes, v3);
-                for (auto j = 0; j < pbl.Contacts[i]->slave_elems.size(); ++j)
-                    for (auto jj = 0; jj < pbl.Contacts[i]->slave_elems[j]->nodes.size(); ++jj)
-                    {
-                        auto no = pbl.Contacts[i]->slave_elems[j]->nodes[jj]->row;
-
-                        auto p = std::find(v3.begin(), v3.end(), no);
-                        if (p != v3.end())
-                        {
-                            v3.erase(p);
-                        }
-                    }
-
-                for (auto j = 0; j < v3.size(); ++j)
-                {
-                    auto p = std::find(myNodesWO2.begin(), myNodesWO2.end(), v3[j]);
-                    if (p != myNodesWO2.end())
-                    {
-                        myNodesWO2.erase(p);
-                    }
-                }
-            }
-            {
-                std::vector<int> v3;
-                std_vector_intersection(myNodesWO2, pbl.Contacts[i]->master_boundary_nodes, v3);
-
-                for (auto j = 0; j < pbl.Contacts[i]->master_elems.size(); ++j)
-                    for (auto jj = 0; jj < pbl.Contacts[i]->master_elems[j]->nodes.size(); ++jj)
-                    {
-                        auto no = pbl.Contacts[i]->master_elems[j]->nodes[jj]->row;
-                        auto p = std::find(v3.begin(), v3.end(), no);
-                        if (p != v3.end())
-                        {
-                            v3.erase(p);
-                        }
-                    }
-                for (auto j = 0; j < v3.size(); ++j)
-                {
-                    auto p = std::find(myNodesWO2.begin(), myNodesWO2.end(), v3[j]);
-                    if (p != myNodesWO2.end())
-                    {
-                        myNodesWO2.erase(p);
-                    }
-                }
-            }
-        }
-    RCP<const Tpetra::Map<>> mapNodesWO_contact = rcp(new tpetra_map_type(numNodes, myNodesWO2, indexBase, comm));
-
-    // Create a map of nodes without overlaps. Each node is owned by one and
-    // only mpi process.
-    mapNodes = Tpetra::createOneToOne(mapNodesWO_contact);
-
-    // Create a map of the degrees of fredom associated to the nodes of the
-    // previous map.
-    const size_t numMyNodes = mapNodes->getNodeNumElements();
-    const size_t numMyNodesWO = mapNodesWO->getNodeNumElements();
-    Teuchos::ArrayView<const global_ordinal_type> myNodes = mapNodes->getNodeElementList();
-
-    // ------------------------------------------------------------- //
-    //                          Dofs maps
-    // ------------------------------------------------------------- //
-
-    // Create a map of the degrees of fredom associated to the nodes of the
-    // previous map.
-    Array<global_ordinal_type> myDofsWO(numMyNodesWO * numPrimalDPN);
-    Array<global_ordinal_type> myThermalDofsWO(numMyNodesWO);
-    Array<global_ordinal_type> myMechanicalDofsWO(numMyNodesWO * 3);
-
-    for (auto i = 0; i < numMyNodesWO; ++i)
-    {
-        if (numPrimalDPN == 4)
-        {
-            myThermalDofsWO[i] = myNodesWO1[i];
-            myDofsWO[i] = myNodesWO1[i];
-
-            for (auto j = 0; j < 3; ++j)
-            {
-                myDofsWO[numMyNodesWO + 3 * i + j] = 3 * myNodesWO1[i] + j + numNodes;
-                myMechanicalDofsWO[3 * i + j] = 3 * myNodesWO1[i] + j;
-            }
-        }
-        else if (numPrimalDPN == 3)
-        {
-            for (auto j = 0; j < 3; ++j)
-            {
-                myMechanicalDofsWO[3 * i + j] = 3 * myNodesWO1[i] + j;
-                myDofsWO[3 * i + j] = 3 * myNodesWO1[i] + j;
-            }
-        }
-        else if (numPrimalDPN == 1)
-        {
-            myThermalDofsWO[i] = myNodesWO1[i];
-            myDofsWO[i] = myNodesWO1[i];
-        }
-    }
-
-    mapDofsWO = rcp(new tpetra_map_type(numPrimalDOFs, myDofsWO, indexBase, comm));
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-        thermoMapWO = rcp(new tpetra_map_type(numThermalDOFs, myThermalDofsWO, indexBase, comm));
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-        mechaMapWO = rcp(new tpetra_map_type(numMechanicalDOFs, myMechanicalDofsWO, indexBase, comm));
-
-    Array<global_ordinal_type> myDofs(numMyNodes * numPrimalDPN);
-    Array<global_ordinal_type> myThermalDofs(numMyNodes);
-    Array<global_ordinal_type> myMechanicalDofs(numMyNodes * 3);
-    Array<global_ordinal_type> myThermomechanicalDofs(numMyNodes * numPrimalDPN);
-
-    for (auto i = 0; i < numMyNodes; ++i)
-    {
-        if (numPrimalDPN == 4)
-        {
-            myThermalDofs[i] = myNodes[i];
-            myDofs[i] = myNodes[i];
-
-            for (auto j = 0; j < 3; ++j)
-            {
-                myMechanicalDofs[3 * i + j] = 3 * myNodes[i] + j;
-                myDofs[numMyNodes + 3 * i + j] = 3 * myNodes[i] + j + numNodes;
-            }
-        }
-        else if (numPrimalDPN == 3)
-        {
-            for (auto j = 0; j < 3; ++j)
-            {
-                myMechanicalDofs[3 * i + j] = 3 * myNodes[i] + j;
-                myDofs[3 * i + j] = 3 * myNodes[i] + j;
-            }
-        }
-        else if (numPrimalDPN == 1)
-        {
-            myThermalDofs[i] = myNodes[i];
-            myDofs[i] = myNodes[i];
-        }
-    }
-
-    mapDofs = rcp(new tpetra_map_type(numPrimalDOFs, myDofs, indexBase, comm));
-    if (numPrimalDPN == 4 || numPrimalDPN == 1)
-        thermoMap = rcp(new tpetra_map_type(numThermalDOFs, myThermalDofs, indexBase, comm));
-    if (numPrimalDPN == 4 || numPrimalDPN == 3)
-        mechaMap = rcp(new tpetra_map_type(numMechanicalDOFs, myMechanicalDofs, indexBase, comm));
-
-    if (numPrimalDPN == 4)
-    {
-        thermoMap = rcp(new tpetra_map_type(numThermalDOFs, myThermalDofs, indexBase, comm));
-        mechaMap = rcp(new tpetra_map_type(numMechanicalDOFs, myMechanicalDofs, indexBase, comm));
-
-        thermomecFullmap = rcp(new tpetra_map_type(numPrimalDOFs, myThermomechanicalDofs, indexBase, comm));
-        RCP<xpetra_map_type> xthermomecFullmap = rcp(new xpetra_tmap_type(thermomecFullmap));
-        std::vector<RCP<const xpetra_map_type>> xsubmaps = {rcp(new xpetra_tmap_type(thermoMap)),
-                                                            rcp(new xpetra_tmap_type(mechaMap))};
-
-        thermomecBlockedMap = rcp(new xpetra_bmap_type(xthermomecFullmap, xsubmaps, true));
-    }
-    else if (numPrimalDPN == 3)
-    {
-        mechaMap = rcp(new tpetra_map_type(numMechanicalDOFs, myMechanicalDofs, indexBase, comm));
-
-        thermomecFullmap = rcp(new tpetra_map_type(numPrimalDOFs, myThermomechanicalDofs, indexBase, comm));
-        RCP<xpetra_map_type> xthermomecFullmap = rcp(new xpetra_tmap_type(thermomecFullmap));
-        std::vector<RCP<const xpetra_map_type>> xsubmaps = {rcp(new xpetra_tmap_type(mechaMap))};
-
-        thermomecBlockedMap = rcp(new xpetra_bmap_type(xthermomecFullmap, xsubmaps, true));
-    }
-    else
-    {
-        thermoMap = rcp(new tpetra_map_type(numThermalDOFs, myThermalDofs, indexBase, comm));
-
-        thermomecFullmap = rcp(new tpetra_map_type(numPrimalDOFs, myThermomechanicalDofs, indexBase, comm));
-        RCP<xpetra_map_type> xthermomecFullmap = rcp(new xpetra_tmap_type(thermomecFullmap));
-        std::vector<RCP<const xpetra_map_type>> xsubmaps = {rcp(new xpetra_tmap_type(thermoMap))};
-
-        thermomecBlockedMap = rcp(new xpetra_bmap_type(xthermomecFullmap, xsubmaps, true));
-    }
-
-    // Construct a Map that puts all the equations on processor 0 (for outputs).
-    const size_t numLclIndices = (myRank == 0) ? numPrimalDOFs : 0;
-
-    mapOutput = rcp(new tpetra_map_type(numPrimalDOFs, numLclIndices, indexBase, comm));
-}
\ No newline at end of file
diff --git a/katoptron/src/Map.h b/katoptron/src/Map.h
deleted file mode 100644
index 39e95abe..00000000
--- a/katoptron/src/Map.h
+++ /dev/null
@@ -1,73 +0,0 @@
-#ifndef KATOPTRON_MAP_H
-#define KATOPTRON_MAP_H
-
-#include "katoptron.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-
-#include <Xpetra_Map.hpp>
-#include <Xpetra_TpetraMap.hpp>
-#include <Xpetra_BlockedMap.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which includes all the Trilinos maps (Tpetra maps and Xpetra maps) used
- * in the simulation.
- */
-class Map
-{
-public:
-    //
-    // Convenience typedefs
-    //
-    typedef int local_ordinal_type;
-    typedef int global_ordinal_type;
-    typedef KokkosClassic::DefaultNode::DefaultNodeType node_type;
-    typedef Tpetra::Map<local_ordinal_type, global_ordinal_type, node_type> tpetra_map_type;
-    typedef Xpetra::Map<local_ordinal_type, global_ordinal_type, node_type> xpetra_map_type;
-    typedef Xpetra::TpetraMap<local_ordinal_type, global_ordinal_type, node_type> xpetra_tmap_type;
-    typedef Xpetra::BlockedMap<local_ordinal_type, global_ordinal_type, node_type> xpetra_bmap_type;
-
-    Teuchos::RCP<const tpetra_map_type> mapNodesWO;
-    Teuchos::RCP<const tpetra_map_type> mapNodes;
-    Teuchos::RCP<const tpetra_map_type> mapElems;
-    Teuchos::RCP<const tpetra_map_type> mapDofsWO;
-    Teuchos::RCP<const tpetra_map_type> mapDofs;
-    Teuchos::RCP<const tpetra_map_type> mapOutput;
-    Teuchos::RCP<const tpetra_map_type> mapLagrangeDofs;
-    Teuchos::RCP<const tpetra_map_type> fullmap;
-    Teuchos::RCP<const tpetra_map_type> fullmapWO;
-    Teuchos::RCP<const tpetra_map_type> fullmapOutput;
-
-    Teuchos::RCP<const tpetra_map_type> thermoMap;
-    Teuchos::RCP<const tpetra_map_type> mechaMap;
-
-    Teuchos::RCP<const tpetra_map_type> thermoMapWO;
-    Teuchos::RCP<const tpetra_map_type> mechaMapWO;
-
-    Teuchos::RCP<const tpetra_map_type> thermomecFullmap;
-    Teuchos::RCP<const tpetra_map_type> thermomecFullmapWO;
-
-    Teuchos::RCP<const xpetra_bmap_type> thermomecBlockedMap;
-
-    Teuchos::RCP<const xpetra_bmap_type> blockedMap;
-
-    std::map<int, int> lm_to_dof;        //to change
-    std::map<int, int> lm_to_dof_global; //to change
-    std::map<int, int> lagrange_to_dof;
-    std::map<int, int> dof_to_lm;
-
-    const global_ordinal_type indexBase = 0;
-    size_t numPrimalDPN;
-    size_t numDualDPN = 1;
-
-    Map(Problem &pbl, size_t _numPrimalDPN);
-};
-
-}; // namespace katoptron
-
-#endif //KATOPTRON_MAP_H
diff --git a/katoptron/src/Material.h b/katoptron/src/Material.h
deleted file mode 100644
index af6b2b18..00000000
--- a/katoptron/src/Material.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef KATOPTRON_MATERIAL_H
-#define KATOPTRON_MATERIAL_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wMshData.h"
-#include "wElement.h"
-#include "wNode.h"
-#include "wMedium.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which includes all constitutive values of a given material.
- */
-template <typename scalar>
-class Material
-{
-private:
-    scalar E;
-    scalar nu;
-    scalar k;
-    scalar beta;
-
-public:
-    Material(scalar _E, scalar _nu, scalar _k, scalar _beta);
-
-    /**
-    * @brief Return \f$E\f$
-    */
-    inline scalar getE() { return E; }
-
-    /**
-    * @brief Return \f$\nu\f$
-    */
-    inline scalar getNu() { return nu; }
-
-    /**
-    * @brief Return \f$k\f$
-    */
-    inline scalar getK() { return k; }
-
-    /**
-    * @brief Return \f$\beta\f$
-    */
-    inline scalar getBeta() { return beta; }
-};
-
-/**
- * @brief Material constructor
- * 
- * This constructor creates a new katoptron::Material which store the constitutive parameters.
- * 
- * Arguments:
- * <ul>
- *  <li> _E: the Young modulus \f$E\f$,
- *  <li> _nu: the Poisson coefficient \f$\nu\f$,
- *  <li> _k: the heat conductivity \f$k\f$,
- *  <li> _beta: the coefficient of thermal expansion \f$\beta\f$.
- * </ul>
- */
-template <typename scalar>
-Material<scalar>::Material(scalar _E, scalar _nu, scalar _k, scalar _beta) : E(_E), nu(_nu), k(_k), beta(_beta)
-{
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_MATERIAL_H
diff --git a/katoptron/src/MaterialsList.h b/katoptron/src/MaterialsList.h
deleted file mode 100644
index 4ca10108..00000000
--- a/katoptron/src/MaterialsList.h
+++ /dev/null
@@ -1,170 +0,0 @@
-#ifndef KATOPTRON_MATERIALSLIST_H
-#define KATOPTRON_MATERIALSLIST_H
-
-#include "Stokhos_Sacado_Kokkos_MP_Vector.hpp"
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wMshData.h"
-#include "wElement.h"
-#include "wNode.h"
-#include "wMedium.h"
-
-#include "Material.h"
-
-#include <Kokkos_Core.hpp>
-//#include "Sacado.hpp"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-#include <vector>
-
-#include "EnsembleTraits.h"
-
-namespace katoptron
-{
-
-/**
- * @brief Class which stores the list of the used materials.
- */
-template <typename scalar>
-class MaterialsList
-{
-private:
-    Kokkos::View<scalar ***, Kokkos::LayoutRight> materials;
-
-    Map::local_ordinal_type materials_number;
-
-public:
-    Map::local_ordinal_type materials_T;
-    Map::local_ordinal_type materials_E;
-    Map::local_ordinal_type materials_nu;
-    Map::local_ordinal_type materials_k;
-    Map::local_ordinal_type materials_beta;
-
-    MaterialsList(Problem &pbl, Teuchos::RCP<Map> map);
-
-    Material<scalar> getMaterial(int current_material, int i_thread);
-};
-
-/**
- * @brief MaterialsList constructor
- * 
- * This constructor allocates 1 Kokkos::View which stores all the constitutive parameters of each material.
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: A Problem object,
- *  <li> map: an RCP to a Map object..
- * </ul>
- */
-template <typename scalar>
-MaterialsList<scalar>::MaterialsList(Problem &pbl, Teuchos::RCP<Map> map)
-{
-    materials_number = pbl.media.size();
-
-    materials_T = 0;
-    materials_E = 1;
-    materials_nu = 2;
-    materials_k = 3;
-    materials_beta = 4;
-
-    typedef EnsembleTraits<scalar> ET;
-    const int ensemble_size = ET::size;
-
-    materials = Kokkos::View<scalar ***, Kokkos::LayoutRight>("R", materials_number, 1, 5);
-    for (auto i = 0; i < materials_number; ++i)
-    {
-        materials(i, 0, materials_T) = (scalar)0; // !!! needed to be changed latter on !!!
-        for (int j = 0; j < ensemble_size; ++j)
-        {
-            ET::coeff(materials(i, 0, materials_E), j) = (double)pbl.media[i]->E_vector[j];
-            ET::coeff(materials(i, 0, materials_nu), j) = (double)pbl.media[i]->nu_vector[j];
-            ET::coeff(materials(i, 0, materials_k), j) = (double)pbl.media[i]->k_vector[j];
-            ET::coeff(materials(i, 0, materials_beta), j) = (double)pbl.media[i]->beta_vector[j];
-        }
-        materials(i, 0, materials_k) = (scalar)pbl.media[i]->k;
-        materials(i, 0, materials_beta) = (scalar)pbl.media[i]->beta;
-    }
-}
-
-/**
- * @brief Return a Material
- * 
- * Arguments:
- * <ul>
- *  <li> current_material: current material ID,
- *  <li> i_thread: thread ID.
- * </ul>
- */
-template <typename scalar>
-Material<scalar> MaterialsList<scalar>::getMaterial(int current_material, int i_thread)
-{
-    scalar E;
-    scalar nu;
-    scalar k;
-    scalar beta;
-
-    size_t materials_T = 0;
-
-    typedef EnsembleTraits<scalar> ET;
-    const int ensemble_size = ET::size;
-
-    for (int j = 0; j < ensemble_size; ++j)
-    {
-        typename ET::value_type Tj = 0.;
-
-        size_t index_0 = 0;
-        size_t index_1 = materials.extent(1) - 1;
-
-        if (Tj <= ET::coeff(materials(current_material, index_0, materials_T), j))
-        {
-            ET::coeff(E, j) = ET::coeff(materials(current_material, index_0, 1), j);
-            ET::coeff(nu, j) = ET::coeff(materials(current_material, index_0, 2), j);
-            ET::coeff(k, j) = ET::coeff(materials(current_material, index_0, 3), j);
-            ET::coeff(beta, j) = ET::coeff(materials(current_material, index_0, 4), j);
-        }
-        else if (Tj > ET::coeff(materials(current_material, index_1, materials_T), j))
-        {
-            ET::coeff(E, j) = ET::coeff(materials(current_material, index_1, 1), j);
-            ET::coeff(nu, j) = ET::coeff(materials(current_material, index_1, 2), j);
-            ET::coeff(k, j) = ET::coeff(materials(current_material, index_1, 3), j);
-            ET::coeff(beta, j) = ET::coeff(materials(current_material, index_1, 4), j);
-        }
-        else
-        {
-            while (index_1 != index_0 + 1)
-            {
-                size_t index_c = index_0 + (index_1 - index_0) / 2;
-
-                if (Tj == ET::coeff(materials(current_material, index_c, materials_T), j))
-                {
-                    index_1 = index_c;
-                    index_0 = index_1 - 1;
-                }
-                else if (Tj < ET::coeff(materials(current_material, index_c, materials_T), j))
-                    index_1 = index_c;
-                else
-                    index_0 = index_c;
-            }
-
-            double coeff = (Tj - ET::coeff(materials(current_material, index_0, materials_T), j)) / (ET::coeff(materials(current_material, index_1, materials_T), j) - ET::coeff(materials(current_material, index_0, materials_T), j));
-
-            ET::coeff(E, j) = ET::coeff(materials(current_material, index_0, 1), j) + coeff * (ET::coeff(materials(current_material, index_1, 1), j) - ET::coeff(materials(current_material, index_0, 1), j));
-            ET::coeff(nu, j) = ET::coeff(materials(current_material, index_0, 2), j) + coeff * (ET::coeff(materials(current_material, index_1, 2), j) - ET::coeff(materials(current_material, index_0, 2), j));
-            ET::coeff(k, j) = ET::coeff(materials(current_material, index_0, 3), j) + coeff * (ET::coeff(materials(current_material, index_1, 3), j) - ET::coeff(materials(current_material, index_0, 3), j));
-            ET::coeff(beta, j) = ET::coeff(materials(current_material, index_0, 4), j) + coeff * (ET::coeff(materials(current_material, index_1, 4), j) - ET::coeff(materials(current_material, index_0, 4), j));
-        }
-    }
-
-    Material<scalar> material(E, nu, k, beta);
-    return material;
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_MATERIALSLIST_H
diff --git a/katoptron/src/Matrices.h b/katoptron/src/Matrices.h
deleted file mode 100644
index be293660..00000000
--- a/katoptron/src/Matrices.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef KATOPTRON_MATRICES_H
-#define KATOPTRON_MATRICES_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "Graph.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Tpetra_CrsGraph.hpp>
-#include <Tpetra_CrsMatrix.hpp>
-#include <Teuchos_RCP.hpp>
-
-#include <Xpetra_BlockedMap.hpp>
-#include <Xpetra_BlockedCrsMatrix.hpp>
-#include <Stokhos_MueLu_MP_Vector.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which includes all the Trilinos matrices (Tpetra matrices and Xpetra matrices) used
- * in the simulation.
- * 
- * In the case of the saddle point matrix arising from the Mortar FEM, the block matrix is stored as follows:
- * \f[ 
- *   \begin{bmatrix} \boldsymbol{A} & \boldsymbol{B}_1 \\ \boldsymbol{B}_2 & \boldsymbol{C} \end{bmatrix}. 
- * \f]
- */
-template <typename scalar>
-class Matrices
-{
-    /*
-    2x2 block matrix:
-    ----------------
-
-    *-----*-----*
-    |  A  | B_1 |
-    *-----*-----*
-    | B_2 |  C  |
-    *-----*-----*
-
-    B includes the values of B_2 if the contact is fully closed.
-    B_T includes the values of B_1 if the contact is fully closed.
-    B_G includes the values of B with the M matrix included regardless if we have a Signorini problem or not.
-    */
-public:
-    //
-    // Convenience typedefs
-    //
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-    typedef Map::node_type node_type;
-    typedef Map::tpetra_map_type tpetra_map_type;
-    typedef Map::xpetra_bmap_type xpetra_bmap_type;
-    typedef Tpetra::CrsGraph<local_ordinal_type, global_ordinal_type, node_type> tpetra_graph_type;
-    typedef Tpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type, node_type> tpetra_crs_type;
-
-    typedef Xpetra::Matrix<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_mat_type;
-    typedef Xpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_crs_type;
-    typedef Xpetra::CrsMatrixWrap<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_wcrs_type;
-    typedef Xpetra::BlockedCrsMatrix<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_bcrs_type;
-    typedef Xpetra::TpetraCrsMatrix<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_tcrs_type;
-
-    Teuchos::RCP<tpetra_crs_type> K;
-    Teuchos::RCP<tpetra_crs_type> S;
-    Teuchos::RCP<tpetra_crs_type> L;
-    Teuchos::RCP<tpetra_crs_type> B;
-    Teuchos::RCP<tpetra_crs_type> B_T;
-    Teuchos::RCP<tpetra_crs_type> B_1;
-    Teuchos::RCP<tpetra_crs_type> B_2;
-    Teuchos::RCP<tpetra_crs_type> B_G;
-    Teuchos::RCP<tpetra_crs_type> C;
-    Teuchos::RCP<tpetra_crs_type> Cb;
-
-    Teuchos::RCP<xpetra_crs_type> xA;
-    Teuchos::RCP<xpetra_crs_type> xB;
-    Teuchos::RCP<xpetra_crs_type> xB_T;
-    Teuchos::RCP<xpetra_crs_type> xC;
-
-    Teuchos::RCP<xpetra_wcrs_type> xwA;
-    Teuchos::RCP<xpetra_wcrs_type> xwB;
-    Teuchos::RCP<xpetra_wcrs_type> xwB_T;
-    Teuchos::RCP<xpetra_wcrs_type> xwC;
-
-    Teuchos::RCP<xpetra_bcrs_type> blockedMatrix;
-
-    Teuchos::RCP<xpetra_mat_type> A;
-
-    Matrices(Teuchos::RCP<Graph> graph);
-};
-
-/**
- * @brief Matrices constructor
- * 
- * This constructor allocates the memory for the matrix \f$\boldsymbol{A}\f$.
- * The other matrices and the filling of the entries are done later.
- * 
- * Argument:
- * <ul>
- *  <li> graph: an RCP to a Graph object.
- * </ul>
- */
-template <typename scalar>
-Matrices<scalar>::Matrices(Teuchos::RCP<Graph> graph)
-{
-    if (graph->K != Teuchos::null)
-    {
-        K = Teuchos::rcp(new tpetra_crs_type(graph->K));
-        K->fillComplete();
-    }
-    if (graph->S != Teuchos::null)
-    {
-        S = Teuchos::rcp(new tpetra_crs_type(graph->S));
-        S->fillComplete(graph->S->getDomainMap(), graph->S->getRangeMap());
-    }
-    if (graph->L != Teuchos::null)
-    {
-        L = Teuchos::rcp(new tpetra_crs_type(graph->L));
-        L->fillComplete();
-    }
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_MATRICES_H
diff --git a/katoptron/src/Mortar.cpp b/katoptron/src/Mortar.cpp
deleted file mode 100644
index ae171421..00000000
--- a/katoptron/src/Mortar.cpp
+++ /dev/null
@@ -1,1059 +0,0 @@
-#include "Mortar.h"
-//#include "wElement.h"
-
-#include <MatrixMarket_Tpetra.hpp>
-
-#include "Epetra_MpiComm.h"
-#include "Epetra_SerialComm.h"
-#include "Teuchos_ParameterList.hpp"
-
-// MOERTEL headers
-#include "mrtr_manager.H"
-#include "mrtr_segment_bilinearquad.H"
-#include "mrtr_segment_bilineartri.H"
-
-/**
- * @brief Compute the Mortar matrices using Moertel and returns a Tpetra CrsMatrix
- * with double scalar type.
- */
-Teuchos::RCP<Tpetra::CrsMatrix<>> compute_B(Teuchos::RCP<katoptron::ElementsList> elementsList,
-                                            Teuchos::RCP<katoptron::NodesList> nodesList,
-                                            Teuchos::RCP<katoptron::ContactsList> contactsList,
-                                            Teuchos::RCP<katoptron::Map> map, MPI_Comm comm, bool SignoriniCheck)
-{
-    Epetra_MpiComm Comm(comm);
-    Teuchos::RCP<const Teuchos::Comm<int>> Tcomm = Teuchos::rcp(new Teuchos::MpiComm<int>(comm));
-
-    typedef katoptron::Map::local_ordinal_type local_ordinal_type;
-    typedef katoptron::Map::global_ordinal_type global_ordinal_type;
-
-    typedef Tpetra::CrsMatrix<> crs_matrix_type;
-
-    const local_ordinal_type numMyContacts = contactsList->getContactNumber();
-
-    // ------------------------------------------------------------- //
-    // create numMyContacts empty MOERTEL::Interface instances
-    // ------------------------------------------------------------- //
-    int printlevel = 0;
-    std::vector<Teuchos::RCP<MOERTEL::Interface>> interfaces(numMyContacts);
-    for (auto i = 0; i < numMyContacts; ++i)
-        interfaces[i] = Teuchos::rcp(new MOERTEL::Interface(i, false, Comm, printlevel));
-
-    // ------------------------------------------------------------- //
-    // Add nodes on both sides of interface to interfaces
-    // loop all nodes in the maps add them
-    // to the interface with unique ids
-    // ------------------------------------------------------------- //
-    for (auto i = 0; i < numMyContacts; ++i)
-    {
-        const local_ordinal_type numMySlaveNodes = contactsList->getSlaveNodesSize(i);
-
-        for (auto j = 0; j < numMySlaveNodes; ++j)
-        {
-            // get unique node id
-            auto global_nodeid = contactsList->getSlaveNode(i, j);
-
-            if (map->mapNodes->isNodeGlobalElement(global_nodeid))
-            {
-                // get node coordinates
-                auto local_nodeid = map->mapNodesWO->getLocalElement(global_nodeid);
-                double coord[3];
-                for (auto k = 0; k < 3; ++k)
-                    coord[k] = nodesList->nodes(local_nodeid, k);
-
-                // create a moertel node
-                MOERTEL::Node node(global_nodeid, coord, 1, &global_nodeid, contactsList->isASlaveDirichletNode(i, global_nodeid), printlevel);
-                // add node to interface i on side j
-                interfaces[i]->AddNode(node, 0);
-            }
-        }
-
-        const local_ordinal_type numMyMasterNodes = contactsList->getMasterNodesSize(i);
-
-        for (auto j = 0; j < numMyMasterNodes; ++j)
-        {
-            // get unique node id
-            auto global_nodeid = contactsList->getMasterNode(i, j);
-
-            if (map->mapNodes->isNodeGlobalElement(global_nodeid))
-            {
-                // get node coordinates
-                auto local_nodeid = map->mapNodesWO->getLocalElement(global_nodeid);
-                double coord[3];
-                for (auto k = 0; k < 3; ++k)
-                    coord[k] = nodesList->nodes(local_nodeid, k);
-
-                // create a moertel node
-                MOERTEL::Node node(global_nodeid, coord, 1, &global_nodeid, false, printlevel);
-                // add node to interface i on side j
-                interfaces[i]->AddNode(node, 1);
-            }
-        }
-    }
-
-    // ------------------------------------------------------------- //
-    // add segments on both sides of the interface to the interface
-    // ------------------------------------------------------------- //
-
-    auto i_index = 0;
-
-    for (auto i = 0; i < numMyContacts; ++i)
-    {
-        const local_ordinal_type numMySlaveElems = contactsList->getSlaveElementsSize(i);
-
-        for (auto j = 0; j < numMySlaveElems; ++j)
-        {
-            auto elem_local_index = contactsList->getSlaveElement(i, j);
-
-            if (elementsList->getElementSize(elem_local_index) == 4)
-            {
-                i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                global_ordinal_type nodeids[4];
-                for (auto k = 0; k < 4; ++k)
-                    nodeids[k] =
-                        map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-
-                MOERTEL::Segment_BiLinearQuad segment(i_index, 4, nodeids, printlevel);
-                interfaces[i]->AddSegment(segment, 0);
-            }
-            else if (elementsList->getElementSize(elem_local_index) == 3)
-            {
-                i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                global_ordinal_type nodeids[3];
-                for (auto k = 0; k < 3; ++k)
-                    nodeids[k] =
-                        map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-                MOERTEL::Segment_BiLinearTri segment(i_index++, 3, nodeids, printlevel);
-                interfaces[i]->AddSegment(segment, 0);
-            }
-        }
-
-        const local_ordinal_type numMyMasterElems = contactsList->getMasterElementsSize(i);
-
-        for (auto j = 0; j < numMyMasterElems; ++j)
-        {
-            auto elem_local_index = contactsList->getMasterElement(i, j);
-
-            if (elementsList->getElementSize(elem_local_index) == 4)
-            {
-                i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                global_ordinal_type nodeids[4];
-                for (auto k = 0; k < 4; ++k)
-                    nodeids[k] =
-                        map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-
-                MOERTEL::Segment_BiLinearQuad segment(i_index, 4, nodeids, printlevel);
-                interfaces[i]->AddSegment(segment, 1);
-            }
-            else if (elementsList->getElementSize(elem_local_index) == 3)
-            {
-                i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                global_ordinal_type nodeids[3];
-                for (auto k = 0; k < 3; ++k)
-                    nodeids[k] =
-                        map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-                MOERTEL::Segment_BiLinearTri segment(i_index++, 3, nodeids, printlevel);
-                interfaces[i]->AddSegment(segment, 1);
-            }
-        }
-    }
-
-    // ------------------------------------------------------------- //
-    // choose the mortar side of the interface (0 or 1)
-    //
-    // ------------------------------------------------------------- //
-    for (auto i = 0; i < numMyContacts; ++i)
-        interfaces[i]->SetMortarSide(1);
-
-    // ------------------------------------------------------------- //
-    // As we do not know the mortar side yet (we decided to le the
-    // package choose it), we can not set a dual trace function (mortar space)
-    // as we don't know the side to set it to
-    // so we just give orders for the function type
-    // ------------------------------------------------------------- //
-    for (auto i = 0; i < numMyContacts; ++i)
-    {
-        if (contactsList->getSlaveElementsSize(i) >= 1)
-        {
-            if (elementsList->getElementSize(contactsList->getSlaveElement(i, 0)) == 4)
-            {
-                if (contactsList->isStandardShapeFunction(i))
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_BiLinearQuad,
-                                                    MOERTEL::Function::func_BiLinearQuad);
-                }
-                else
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_BiLinearQuad,
-                                                    MOERTEL::Function::func_DualBiLinearQuad);
-                }
-            }
-            else if (elementsList->getElementSize(contactsList->getSlaveElement(i, 0)) == 3)
-            {
-                if (contactsList->isStandardShapeFunction(i))
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_LinearTri,
-                                                    MOERTEL::Function::func_LinearTri);
-                }
-                else
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_LinearTri,
-                                                    MOERTEL::Function::func_DualLinearTri);
-                }
-            }
-        }
-
-        else if (contactsList->getMasterElementsSize(i) >= 1)
-        {
-            if (elementsList->getElementSize(contactsList->getMasterElement(i, 0)) == 4)
-            {
-                if (contactsList->isStandardShapeFunction(i))
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_BiLinearQuad,
-                                                    MOERTEL::Function::func_BiLinearQuad);
-                }
-                else
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_BiLinearQuad,
-                                                    MOERTEL::Function::func_DualBiLinearQuad);
-                }
-            }
-            else if (elementsList->getElementSize(contactsList->getMasterElement(i, 0)) == 3)
-            {
-                if (contactsList->isStandardShapeFunction(i))
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_LinearTri,
-                                                    MOERTEL::Function::func_LinearTri);
-                }
-                else
-                {
-                    interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_LinearTri,
-                                                    MOERTEL::Function::func_DualLinearTri);
-                }
-            }
-        }
-    }
-    // ------------------------------------------------------------- //
-    // complete the interfaces
-    // ------------------------------------------------------------- //
-    for (auto i = 0; i < numMyContacts; ++i)
-        if (!interfaces[i]->Complete())
-        {
-            exit(EXIT_FAILURE);
-        }
-    // ------------------------------------------------------------- //
-    // create an empty MOERTEL::Manager for 3D problems
-    // It organizes everything from integration to solution
-    // ------------------------------------------------------------- //
-    MOERTEL::Manager manager(Comm, MOERTEL::Manager::manager_3D, printlevel);
-
-    // ------------------------------------------------------------- //
-    // Add the interfaces to the manager
-    // ------------------------------------------------------------- //
-    for (auto i = 0; i < numMyContacts; ++i)
-        manager.AddInterface(*(interfaces[i]));
-
-    // ------------------------------------------------------------- //
-    // for mortar integration, the mortar manager needs to know about
-    // the rowmap of the original (uncoupled) problem because it will
-    // create coupling matrices D and M matching that rowmap
-    // ------------------------------------------------------------- //
-    Teuchos::ArrayView<const global_ordinal_type> myNodes = map->mapNodes->getNodeElementList();
-
-    int numMyNodes = map->mapNodes->getNodeNumElements();
-    int numNodes = map->mapNodes->getGlobalNumElements();
-
-    int myNodesArray[numMyNodes];
-
-    for (auto i = 0; i < numMyNodes; ++i)
-        myNodesArray[i] = (int)myNodes[i];
-
-    Epetra_Map map00((int)numNodes, (int)numMyNodes, myNodesArray, (int)map->mapNodes->getIndexBase(), Comm);
-    manager.SetProblemMap(&map00);
-
-    // ============================================================= //
-    // choose integration parameters
-    // ============================================================= //
-    Teuchos::ParameterList &moertelparams = manager.Default_Parameters();
-    // this does affect this 3D case only
-    moertelparams.set("exact values at gauss points", true);
-    // 1D interface possible values are 1,2,3,4,5,6,7,8,10 (2 recommended with linear shape functions)
-    moertelparams.set("number gaussian points 1D", 2);
-    // 2D interface possible values are 3,6,12,13,16,19,27 (12 recommended with linear functions)
-    moertelparams.set("number gaussian points 2D", 12);
-
-    // ============================================================= //
-    // Here we are done with the construction phase of the interface
-    // so we can integrate the mortar integrals
-    // (Note we have not yet evaluated the PDE at all!)
-    // ============================================================= //
-
-    bool do_integrate = true;
-    int n_integration = 0;
-    int n_integration_max = 10;
-
-    while (do_integrate)
-    {
-        try
-        {
-            do_integrate = false;
-            ++n_integration;
-            manager.Mortar_Integrate();
-        }
-        catch (...)
-        {
-            do_integrate = true;
-        }
-
-        if (n_integration >= n_integration_max)
-            break;
-    }
-
-    if (n_integration != 1)
-        std::cout << "Has integrate " << n_integration << " times" << std::endl;
-
-    const Epetra_CrsMatrix *D = manager.D();
-    const Epetra_CrsMatrix *M = manager.M();
-
-    std::map<int, int> lm_to_dof = manager.lm_to_dof();
-
-    const size_t numDPN = map->numPrimalDPN;
-    const size_t numMDPN = 3;
-    const bool isThermo = (numDPN == 4);
-    const size_t numMechanicalLagrangeMultipliers = (D->NumGlobalCols() - numNodes);
-
-    size_t numLMPN;
-    if (contactsList->hasAtLeastOneSticking() && isThermo)
-        numLMPN = 4;
-    else if (contactsList->hasAtLeastOneSticking())
-        numLMPN = 3;
-    else if (isThermo)
-        numLMPN = 2;
-    else
-        numLMPN = 1;
-
-    map->numDualDPN = numLMPN;
-
-    const size_t numTotalLagrangeMultipliers = numLMPN * numMechanicalLagrangeMultipliers;
-
-    int indexBase = 0;
-
-    // ---------------
-
-    {
-        Teuchos::ArrayView<const global_ordinal_type> myNodes = map->mapNodes->getNodeElementList();
-
-        std::vector<global_ordinal_type> myLagrangeDofs = {};
-
-        size_t numMyRows = D->NumMyRows();
-        for (auto i = 0; i < numMyRows; ++i)
-        {
-            size_t global_id = D->GRID(i);
-            if (global_id < numNodes)
-                continue;
-            size_t lagrange_id = global_id - numNodes;
-            for (auto j = 0; j < numLMPN; ++j)
-                myLagrangeDofs.push_back(lagrange_id * numLMPN + j);
-        }
-
-        map->mapLagrangeDofs = rcp(new Tpetra::Map<>(numTotalLagrangeMultipliers, myLagrangeDofs, indexBase, Tcomm));
-    }
-
-    // ---------------
-    for (auto i = lm_to_dof.begin(); i != lm_to_dof.end(); ++i)
-        map->lm_to_dof_global[i->first - numNodes] = i->second;
-
-    for (auto i = lm_to_dof.begin(); i != lm_to_dof.end(); ++i)
-        if (map->mapNodes->isNodeGlobalElement(i->second))
-        {
-            map->lm_to_dof[i->first - numNodes] = i->second;
-        }
-
-    for (auto i = map->lm_to_dof.begin(); i != map->lm_to_dof.end(); ++i)
-        map->lagrange_to_dof[i->first - numNodes] = (i->second) * map->numPrimalDPN;
-
-    // As lm_to_dof is one to one, we can create dof_to_lm as follows
-    for (auto i = map->lm_to_dof.begin(); i != map->lm_to_dof.end(); ++i)
-        map->dof_to_lm[i->second] = i->first;
-
-    // ---------------
-
-    // Compute the outward normal
-    typedef Tpetra::MultiVector<double, local_ordinal_type, global_ordinal_type> double_multivector_type;
-
-    Teuchos::RCP<double_multivector_type> normalWO = Teuchos::rcp(new double_multivector_type(map->mapNodesWO, 3 * numMyContacts, true));
-    Teuchos::RCP<double_multivector_type> normalSUM = Teuchos::rcp(new double_multivector_type(map->mapNodes, 3 * numMyContacts, true));
-
-    std::vector<global_ordinal_type> myNodes2 = {};
-
-    for (auto i = 0; i < numNodes; ++i)
-        myNodes2.push_back(i);
-
-    Teuchos::RCP<Tpetra::Map<>> fullNodeMap = rcp(new Tpetra::Map<>(numNodes, myNodes2, indexBase, Tcomm));
-    Teuchos::RCP<double_multivector_type> normal = Teuchos::rcp(new double_multivector_type(fullNodeMap, 3 * numMyContacts, true));
-
-    {
-        for (auto i = 0; i < numMyContacts; ++i)
-        {
-            const local_ordinal_type numMySlaveElems = contactsList->getSlaveElementsSize(i);
-
-            for (auto j = 0; j < numMySlaveElems; ++j)
-            {
-                auto elem_local_index = contactsList->getSlaveElement(i, j);
-
-                if (elementsList->getElementSize(elem_local_index) == 4)
-                {
-                    i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                    global_ordinal_type node_id[4];
-                    double coordinates[4 * 3];
-                    for (auto k = 0; k < 4; ++k)
-                    {
-                        node_id[k] = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            coordinates[k * 3 + l] = nodesList->nodes(local_nodeid, l);
-                    }
-
-                    double vec1[3];
-                    double vec2[3];
-                    double vec3[3];
-                    double current_normal[3];
-                    double current_normal2[3];
-                    double norm1;
-                    double norm2;
-                    double current_area;
-
-                    vec1[0] = coordinates[3] - coordinates[0];
-                    vec1[1] = coordinates[4] - coordinates[1];
-                    vec1[2] = coordinates[5] - coordinates[2];
-
-                    vec2[0] = coordinates[6] - coordinates[0];
-                    vec2[1] = coordinates[7] - coordinates[1];
-                    vec2[2] = coordinates[8] - coordinates[2];
-
-                    vec3[0] = coordinates[9] - coordinates[0];
-                    vec3[1] = coordinates[10] - coordinates[1];
-                    vec3[2] = coordinates[11] - coordinates[2];
-
-                    current_normal[0] = vec1[1] * vec2[2] - vec1[2] * vec2[1];
-                    current_normal[1] = vec1[2] * vec2[0] - vec1[0] * vec2[2];
-                    current_normal[2] = vec1[0] * vec2[1] - vec1[1] * vec2[0];
-
-                    current_normal2[0] = vec2[1] * vec3[2] - vec2[2] * vec3[1];
-                    current_normal2[1] = vec2[2] * vec3[0] - vec2[0] * vec3[2];
-                    current_normal2[2] = vec2[0] * vec3[1] - vec2[1] * vec3[0];
-
-                    norm1 = sqrt(pow(current_normal[0], 2) + pow(current_normal[1], 2) + pow(current_normal[2], 2));
-                    norm2 = sqrt(pow(current_normal2[0], 2) + pow(current_normal2[1], 2) + pow(current_normal2[2], 2));
-
-                    if (norm1 > 0.)
-                    {
-                        current_normal[0] = current_normal[0] / norm1;
-                        current_normal[1] = current_normal[1] / norm1;
-                        current_normal[2] = current_normal[2] / norm1;
-
-                        for (auto l = 0; l < 3; ++l)
-                            if (abs(current_normal[l]) <= 1e-10)
-                                current_normal[l] = 0.;
-                    }
-                    else
-                    {
-                        current_normal[0] = 0.;
-                        current_normal[1] = 0.;
-                        current_normal[2] = 0.;
-                    }
-
-                    current_area = (norm1 + norm2) / 2.;
-
-                    for (auto k = 0; k < 4; ++k)
-                    {
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            normalWO->sumIntoLocalValue(local_nodeid, i * 3 + l, current_area * current_normal[l]);
-                    }
-                }
-                else if (elementsList->getElementSize(elem_local_index) == 3)
-                {
-                    i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                    global_ordinal_type node_id[3];
-                    double coordinates[3 * 3];
-                    for (auto k = 0; k < 3; ++k)
-                    {
-                        node_id[k] = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            coordinates[k * 3 + l] = nodesList->nodes(local_nodeid, l);
-                    }
-
-                    double vec1[3];
-                    double vec2[3];
-                    double current_normal[3];
-                    double norm;
-                    double current_area;
-
-                    vec1[0] = coordinates[3] - coordinates[0];
-                    vec1[1] = coordinates[4] - coordinates[1];
-                    vec1[2] = coordinates[5] - coordinates[2];
-
-                    vec2[0] = coordinates[6] - coordinates[0];
-                    vec2[1] = coordinates[7] - coordinates[1];
-                    vec2[2] = coordinates[8] - coordinates[2];
-
-                    current_normal[0] = vec1[1] * vec2[2] - vec1[2] * vec2[1];
-                    current_normal[1] = vec1[2] * vec2[0] - vec1[0] * vec2[2];
-                    current_normal[2] = vec1[0] * vec2[1] - vec1[1] * vec2[0];
-
-                    norm = sqrt(pow(current_normal[0], 2) + pow(current_normal[1], 2) + pow(current_normal[2], 2));
-
-                    current_area = norm / 2.;
-
-                    if (norm > 0.)
-                    {
-                        current_normal[0] = current_normal[0] / norm;
-                        current_normal[1] = current_normal[1] / norm;
-                        current_normal[2] = current_normal[2] / norm;
-
-                        for (auto l = 0; l < 3; ++l)
-                            if (abs(current_normal[l]) <= 1e-10)
-                                current_normal[l] = 0.;
-                    }
-                    else
-                    {
-                        current_normal[0] = 0.;
-                        current_normal[1] = 0.;
-                        current_normal[2] = 0.;
-                    }
-
-                    for (auto k = 0; k < 3; ++k)
-                    {
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            normalWO->sumIntoLocalValue(local_nodeid, i * 3 + l, current_area * current_normal[l]);
-                    }
-                }
-            }
-
-            const local_ordinal_type numMyMasterElems = contactsList->getMasterElementsSize(i);
-
-            for (auto j = 0; j < numMyMasterElems; ++j)
-            {
-                auto elem_local_index = contactsList->getMasterElement(i, j);
-
-                if (elementsList->getElementSize(elem_local_index) == 4)
-                {
-                    i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                    global_ordinal_type node_id[4];
-                    double coordinates[4 * 3];
-                    for (auto k = 0; k < 4; ++k)
-                    {
-                        node_id[k] = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            coordinates[k * 3 + l] = nodesList->nodes(local_nodeid, l);
-                    }
-
-                    double vec1[3];
-                    double vec2[3];
-                    double vec3[3];
-                    double current_normal[3];
-                    double current_normal2[3];
-                    double norm1;
-                    double norm2;
-                    double current_area;
-
-                    vec1[0] = coordinates[3] - coordinates[0];
-                    vec1[1] = coordinates[4] - coordinates[1];
-                    vec1[2] = coordinates[5] - coordinates[2];
-
-                    vec2[0] = coordinates[6] - coordinates[0];
-                    vec2[1] = coordinates[7] - coordinates[1];
-                    vec2[2] = coordinates[8] - coordinates[2];
-
-                    vec3[0] = coordinates[9] - coordinates[0];
-                    vec3[1] = coordinates[10] - coordinates[1];
-                    vec3[2] = coordinates[11] - coordinates[2];
-
-                    current_normal[0] = vec1[1] * vec2[2] - vec1[2] * vec2[1];
-                    current_normal[1] = vec1[2] * vec2[0] - vec1[0] * vec2[2];
-                    current_normal[2] = vec1[0] * vec2[1] - vec1[1] * vec2[0];
-
-                    current_normal2[0] = vec2[1] * vec3[2] - vec2[2] * vec3[1];
-                    current_normal2[1] = vec2[2] * vec3[0] - vec2[0] * vec3[2];
-                    current_normal2[2] = vec2[0] * vec3[1] - vec2[1] * vec3[0];
-
-                    norm1 = sqrt(pow(current_normal[0], 2) + pow(current_normal[1], 2) + pow(current_normal[2], 2));
-                    norm2 = sqrt(pow(current_normal2[0], 2) + pow(current_normal2[1], 2) + pow(current_normal2[2], 2));
-
-                    if (norm1 > 0.)
-                    {
-                        current_normal[0] = current_normal[0] / norm1;
-                        current_normal[1] = current_normal[1] / norm1;
-                        current_normal[2] = current_normal[2] / norm1;
-
-                        for (auto l = 0; l < 3; ++l)
-                            if (abs(current_normal[l]) <= 1e-10)
-                                current_normal[l] = 0.;
-                    }
-                    else
-                    {
-                        current_normal[0] = 0.;
-                        current_normal[1] = 0.;
-                        current_normal[2] = 0.;
-                    }
-
-                    current_area = (norm1 + norm2) / 2.;
-
-                    for (auto k = 0; k < 4; ++k)
-                    {
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            normalWO->sumIntoLocalValue(local_nodeid, i * 3 + l, current_area * current_normal[l]);
-                    }
-                }
-                else if (elementsList->getElementSize(elem_local_index) == 3)
-                {
-                    i_index = map->mapElems->getGlobalElement(elem_local_index);
-
-                    global_ordinal_type node_id[3];
-                    double coordinates[3 * 3];
-                    for (auto k = 0; k < 3; ++k)
-                    {
-                        node_id[k] = map->mapNodesWO->getGlobalElement(elementsList->getElementNode(elem_local_index, k));
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            coordinates[k * 3 + l] = nodesList->nodes(local_nodeid, l);
-                    }
-
-                    double vec1[3];
-                    double vec2[3];
-                    double current_normal[3];
-                    double norm;
-                    double current_area;
-
-                    vec1[0] = coordinates[3] - coordinates[0];
-                    vec1[1] = coordinates[4] - coordinates[1];
-                    vec1[2] = coordinates[5] - coordinates[2];
-
-                    vec2[0] = coordinates[6] - coordinates[0];
-                    vec2[1] = coordinates[7] - coordinates[1];
-                    vec2[2] = coordinates[8] - coordinates[2];
-
-                    current_normal[0] = vec1[1] * vec2[2] - vec1[2] * vec2[1];
-                    current_normal[1] = vec1[2] * vec2[0] - vec1[0] * vec2[2];
-                    current_normal[2] = vec1[0] * vec2[1] - vec1[1] * vec2[0];
-
-                    norm = sqrt(pow(current_normal[0], 2) + pow(current_normal[1], 2) + pow(current_normal[2], 2));
-
-                    current_area = norm / 2.;
-
-                    if (norm > 0.)
-                    {
-                        current_normal[0] = current_normal[0] / norm;
-                        current_normal[1] = current_normal[1] / norm;
-                        current_normal[2] = current_normal[2] / norm;
-
-                        for (auto l = 0; l < 3; ++l)
-                            if (abs(current_normal[l]) <= 1e-10)
-                                current_normal[l] = 0.;
-                    }
-                    else
-                    {
-                        current_normal[0] = 0.;
-                        current_normal[1] = 0.;
-                        current_normal[2] = 0.;
-                    }
-
-                    for (auto k = 0; k < 3; ++k)
-                    {
-                        auto local_nodeid = map->mapNodesWO->getLocalElement(node_id[k]);
-
-                        for (auto l = 0; l < 3; ++l)
-                            normalWO->sumIntoLocalValue(local_nodeid, i * 3 + l, current_area * current_normal[l]);
-                    }
-                }
-            }
-        }
-    }
-    Tpetra::Export<> export1(map->mapNodesWO, map->mapNodes);
-    Tpetra::Export<> export2(map->mapNodes, normal->getMap());
-    Tpetra::Import<> import1(map->mapNodes, normal->getMap());
-
-    normalSUM->doExport(*normalWO, export1, Tpetra::ADD);
-    normal->doImport(*normalSUM, import1, Tpetra::INSERT);
-
-    normal->template sync<Kokkos::HostSpace>();
-    auto normal_2d = normal->template getLocalView<Kokkos::HostSpace>();
-
-    size_t maxNumEntPerRow = 3 * (D->MaxNumEntries() + M->MaxNumEntries());
-    Teuchos::RCP<crs_matrix_type> B(new crs_matrix_type(map->mapLagrangeDofs, maxNumEntPerRow));
-    {
-        int DNumMyRow = D->NumMyRows();
-        int DMaxNumIndices = D->MaxNumEntries();
-        double *values = new double[DMaxNumIndices];
-        int DNumIndices;
-        int *Indices_int = new int[DMaxNumIndices];
-
-        const Epetra_Map DrowMap = D->RowMap();
-        const Epetra_Map DcolMap = D->ColMap();
-
-        for (size_t i = 0; i < DNumMyRow; ++i)
-        {
-            size_t global_id = D->GRID(i);
-            if (global_id < numNodes)
-                continue;
-
-            D->ExtractGlobalRowCopy(global_id, DMaxNumIndices, DNumIndices, values, Indices_int);
-
-            // find which interface interface_j is related to the current Lagrange multiplier
-            size_t interface_j = 0; // 0 by default
-            if (contactsList->getContactNumber() > 1)
-            {
-                bool doIStop = false;
-                for (auto k = 0; k < DNumIndices; ++k)
-                {
-                    for (auto j = 0; j < numMyContacts; ++j)
-                    {
-                        const local_ordinal_type numMySlaveNodes = contactsList->getSlaveNodesSize(j);
-
-                        for (auto l = 0; l < numMySlaveNodes; ++l)
-                        {
-                            auto global_nodeid = contactsList->getSlaveNode(j, l);
-
-                            if (global_nodeid == Indices_int[k])
-                            {
-                                interface_j = j;
-                                doIStop = true;
-                            }
-                            if (doIStop)
-                                break;
-                        }
-                        if (doIStop)
-                            break;
-                    }
-                    if (doIStop)
-                        break;
-                }
-            }
-
-            global_ordinal_type row = (global_id - numNodes) * numLMPN;
-
-            for (auto k = 0; k < DNumIndices; ++k)
-            {
-                global_ordinal_type col1 = Indices_int[k] * numMDPN;
-                global_ordinal_type col2 = Indices_int[k] * numMDPN + 1;
-                global_ordinal_type col3 = Indices_int[k] * numMDPN + 2;
-
-                if (isThermo)
-                {
-                    col1 += numNodes;
-                    col2 += numNodes;
-                    col3 += numNodes;
-                }
-
-                global_ordinal_type global_node_id = Indices_int[k];
-                local_ordinal_type local_node_id = normal->getMap()->getLocalElement(global_node_id);
-
-                double current_normal[3];
-                current_normal[0] = normal_2d(local_node_id, interface_j * 3 + 0);
-                current_normal[1] = normal_2d(local_node_id, interface_j * 3 + 1);
-                current_normal[2] = normal_2d(local_node_id, interface_j * 3 + 2);
-
-                double norm = sqrt(pow(current_normal[0], 2) + pow(current_normal[1], 2) + pow(current_normal[2], 2));
-
-                if (norm > 0.)
-                {
-                    current_normal[0] = current_normal[0] / norm;
-                    current_normal[1] = current_normal[1] / norm;
-                    current_normal[2] = current_normal[2] / norm;
-                }
-                else
-                {
-                    current_normal[0] = 0.;
-                    current_normal[1] = 0.;
-                    current_normal[2] = 0.;
-                }
-
-                double current_tangential_1[3];
-                double current_tangential_2[3];
-
-                current_tangential_1[0] = 0.;
-                current_tangential_1[1] = 0.;
-                current_tangential_1[2] = 1.;
-
-                current_tangential_2[0] = 0.;
-                current_tangential_2[1] = 0.;
-                current_tangential_2[2] = 0.;
-
-                if (contactsList->hasAtLeastOneSticking())
-                {
-                    double dot_n_z = current_normal[0] * current_tangential_1[0] + current_normal[1] * current_tangential_1[1] + current_normal[2] * current_tangential_1[2];
-
-                    if (acos(abs(dot_n_z)) <= 1e-6 || contactsList->isTying(interface_j))
-                    {
-                        if (contactsList->isTying(interface_j))
-                        {
-                            current_normal[0] = 0.;
-                            current_normal[1] = 0.;
-                            current_normal[2] = 1.;
-                        }
-                        current_tangential_1[0] = 1.;
-                        current_tangential_1[1] = 0.;
-                        current_tangential_1[2] = 0.;
-
-                        current_tangential_2[0] = 0.;
-                        current_tangential_2[1] = 1.;
-                        current_tangential_2[2] = 0.;
-                    }
-                    else
-                    {
-                        current_tangential_1[0] = current_tangential_1[0] - dot_n_z * current_normal[0];
-                        current_tangential_1[1] = current_tangential_1[1] - dot_n_z * current_normal[1];
-                        current_tangential_1[2] = current_tangential_1[2] - dot_n_z * current_normal[2];
-
-                        double norm = sqrt(pow(current_tangential_1[0], 2) + pow(current_tangential_1[1], 2) + pow(current_tangential_1[2], 2));
-
-                        current_tangential_1[0] = current_tangential_1[0] / norm;
-                        current_tangential_1[1] = current_tangential_1[1] / norm;
-                        current_tangential_1[2] = current_tangential_1[2] / norm;
-
-                        current_tangential_2[0] = -(current_normal[1] * current_tangential_1[2] - current_normal[2] * current_tangential_1[1]);
-                        current_tangential_2[1] = -(current_normal[2] * current_tangential_1[0] - current_normal[0] * current_tangential_1[2]);
-                        current_tangential_2[2] = -(current_normal[0] * current_tangential_1[1] - current_normal[1] * current_tangential_1[0]);
-                    }
-                }
-
-                double value1 = values[k] * current_normal[0] * contactsList->getMortarScale(interface_j);
-                double value2 = values[k] * current_normal[1] * contactsList->getMortarScale(interface_j);
-                double value3 = values[k] * current_normal[2] * contactsList->getMortarScale(interface_j);
-
-                B->insertGlobalValues(row,
-                                      Teuchos::tuple<global_ordinal_type>(col1),
-                                      Teuchos::tuple<double>(value1));
-                B->insertGlobalValues(row,
-                                      Teuchos::tuple<global_ordinal_type>(col2),
-                                      Teuchos::tuple<double>(value2));
-                B->insertGlobalValues(row,
-                                      Teuchos::tuple<global_ordinal_type>(col3),
-                                      Teuchos::tuple<double>(value3));
-
-                if (contactsList->isSticking(interface_j))
-                {
-                    value1 = values[k] * current_tangential_1[0] * contactsList->getMortarScale(interface_j);
-                    value2 = values[k] * current_tangential_1[1] * contactsList->getMortarScale(interface_j);
-                    value3 = values[k] * current_tangential_1[2] * contactsList->getMortarScale(interface_j);
-
-                    B->insertGlobalValues(row + 1,
-                                          Teuchos::tuple<global_ordinal_type>(col1),
-                                          Teuchos::tuple<double>(value1));
-                    B->insertGlobalValues(row + 1,
-                                          Teuchos::tuple<global_ordinal_type>(col2),
-                                          Teuchos::tuple<double>(value2));
-                    B->insertGlobalValues(row + 1,
-                                          Teuchos::tuple<global_ordinal_type>(col3),
-                                          Teuchos::tuple<double>(value3));
-
-                    value1 = values[k] * current_tangential_2[0] * contactsList->getMortarScale(interface_j);
-                    value2 = values[k] * current_tangential_2[1] * contactsList->getMortarScale(interface_j);
-                    value3 = values[k] * current_tangential_2[2] * contactsList->getMortarScale(interface_j);
-
-                    B->insertGlobalValues(row + 2,
-                                          Teuchos::tuple<global_ordinal_type>(col1),
-                                          Teuchos::tuple<double>(value1));
-                    B->insertGlobalValues(row + 2,
-                                          Teuchos::tuple<global_ordinal_type>(col2),
-                                          Teuchos::tuple<double>(value2));
-                    B->insertGlobalValues(row + 2,
-                                          Teuchos::tuple<global_ordinal_type>(col3),
-                                          Teuchos::tuple<double>(value3));
-                }
-                if (numDPN == 4)
-                {
-                    global_ordinal_type row2 = row + numLMPN - 1;
-                    global_ordinal_type col4 = Indices_int[k];
-                    B->insertGlobalValues(row2,
-                                          Teuchos::tuple<global_ordinal_type>(col4),
-                                          Teuchos::tuple<double>(values[k]));
-                }
-            }
-
-            if (SignoriniCheck)
-                if (contactsList->isNotSignorini(interface_j) == false)
-                    continue;
-            {
-                int MMaxNumIndices = M->MaxNumEntries();
-                double *values = new double[MMaxNumIndices];
-                int MNumIndices;
-                int *Indices_int = new int[MMaxNumIndices];
-
-                M->ExtractGlobalRowCopy(global_id, MMaxNumIndices, MNumIndices, values, Indices_int);
-
-                for (auto k = 0; k < MNumIndices; ++k)
-                {
-                    global_ordinal_type col1 = Indices_int[k] * numMDPN;
-                    global_ordinal_type col2 = Indices_int[k] * numMDPN + 1;
-                    global_ordinal_type col3 = Indices_int[k] * numMDPN + 2;
-
-                    if (isThermo)
-                    {
-                        col1 += numNodes;
-                        col2 += numNodes;
-                        col3 += numNodes;
-                    }
-
-                    global_ordinal_type global_node_id = Indices_int[k];
-                    local_ordinal_type local_node_id = normal->getMap()->getLocalElement(global_node_id);
-
-                    double current_normal[3];
-                    current_normal[0] = normal_2d(local_node_id, interface_j * 3 + 0);
-                    current_normal[1] = normal_2d(local_node_id, interface_j * 3 + 1);
-                    current_normal[2] = normal_2d(local_node_id, interface_j * 3 + 2);
-
-                    double norm = sqrt(pow(current_normal[0], 2) + pow(current_normal[1], 2) + pow(current_normal[2], 2));
-
-                    if (norm > 0.)
-                    {
-                        current_normal[0] = current_normal[0] / norm;
-                        current_normal[1] = current_normal[1] / norm;
-                        current_normal[2] = current_normal[2] / norm;
-                    }
-                    else
-                    {
-                        current_normal[0] = 0.;
-                        current_normal[1] = 0.;
-                        current_normal[2] = 0.;
-                    }
-
-                    double current_tangential_1[3];
-                    double current_tangential_2[3];
-
-                    current_tangential_1[0] = 0.;
-                    current_tangential_1[1] = 0.;
-                    current_tangential_1[2] = 1.;
-
-                    current_tangential_2[0] = 0.;
-                    current_tangential_2[1] = 0.;
-                    current_tangential_2[2] = 0.;
-
-                    if (contactsList->hasAtLeastOneSticking())
-                    {
-                        current_tangential_1[0] = 0.;
-                        current_tangential_1[1] = 0.;
-                        current_tangential_1[2] = 1.;
-
-                        double dot_n_z = current_normal[0] * current_tangential_1[0] + current_normal[1] * current_tangential_1[1] + current_normal[2] * current_tangential_1[2];
-
-                        if (acos(abs(dot_n_z)) <= 1e-6 || contactsList->isTying(interface_j))
-                        {
-                            if (contactsList->isTying(interface_j))
-                            {
-                                current_normal[0] = 0.;
-                                current_normal[1] = 0.;
-                                current_normal[2] = -1.;
-                            }
-                            current_tangential_1[0] = 1.;
-                            current_tangential_1[1] = 0.;
-                            current_tangential_1[2] = 0.;
-
-                            current_tangential_2[0] = 0.;
-                            current_tangential_2[1] = 1.;
-                            current_tangential_2[2] = 0.;
-                        }
-                        else
-                        {
-                            current_tangential_1[0] = current_tangential_1[0] - dot_n_z * current_normal[0];
-                            current_tangential_1[1] = current_tangential_1[1] - dot_n_z * current_normal[1];
-                            current_tangential_1[2] = current_tangential_1[2] - dot_n_z * current_normal[2];
-
-                            double norm = sqrt(pow(current_tangential_1[0], 2) + pow(current_tangential_1[1], 2) + pow(current_tangential_1[2], 2));
-
-                            current_tangential_1[0] = current_tangential_1[0] / norm;
-                            current_tangential_1[1] = current_tangential_1[1] / norm;
-                            current_tangential_1[2] = current_tangential_1[2] / norm;
-
-                            current_tangential_2[0] = current_normal[1] * current_tangential_1[2] - current_normal[2] * current_tangential_1[1];
-                            current_tangential_2[1] = current_normal[2] * current_tangential_1[0] - current_normal[0] * current_tangential_1[2];
-                            current_tangential_2[2] = current_normal[0] * current_tangential_1[1] - current_normal[1] * current_tangential_1[0];
-                        }
-                    }
-
-                    double value1 = -values[k] * current_normal[0] * contactsList->getMortarScale(interface_j);
-                    double value2 = -values[k] * current_normal[1] * contactsList->getMortarScale(interface_j);
-                    double value3 = -values[k] * current_normal[2] * contactsList->getMortarScale(interface_j);
-
-                    B->insertGlobalValues(row,
-                                          Teuchos::tuple<global_ordinal_type>(col1),
-                                          Teuchos::tuple<double>(value1));
-                    B->insertGlobalValues(row,
-                                          Teuchos::tuple<global_ordinal_type>(col2),
-                                          Teuchos::tuple<double>(value2));
-                    B->insertGlobalValues(row,
-                                          Teuchos::tuple<global_ordinal_type>(col3),
-                                          Teuchos::tuple<double>(value3));
-
-                    if (contactsList->isSticking(interface_j))
-                    {
-                        value1 = values[k] * current_tangential_1[0] * contactsList->getMortarScale(interface_j);
-                        value2 = values[k] * current_tangential_1[1] * contactsList->getMortarScale(interface_j);
-                        value3 = values[k] * current_tangential_1[2] * contactsList->getMortarScale(interface_j);
-
-                        B->insertGlobalValues(row + 1,
-                                              Teuchos::tuple<global_ordinal_type>(col1),
-                                              Teuchos::tuple<double>(value1));
-                        B->insertGlobalValues(row + 1,
-                                              Teuchos::tuple<global_ordinal_type>(col2),
-                                              Teuchos::tuple<double>(value2));
-                        B->insertGlobalValues(row + 1,
-                                              Teuchos::tuple<global_ordinal_type>(col3),
-                                              Teuchos::tuple<double>(value3));
-
-                        value1 = values[k] * current_tangential_2[0] * contactsList->getMortarScale(interface_j);
-                        value2 = values[k] * current_tangential_2[1] * contactsList->getMortarScale(interface_j);
-                        value3 = values[k] * current_tangential_2[2] * contactsList->getMortarScale(interface_j);
-
-                        B->insertGlobalValues(row + 2,
-                                              Teuchos::tuple<global_ordinal_type>(col1),
-                                              Teuchos::tuple<double>(value1));
-                        B->insertGlobalValues(row + 2,
-                                              Teuchos::tuple<global_ordinal_type>(col2),
-                                              Teuchos::tuple<double>(value2));
-                        B->insertGlobalValues(row + 2,
-                                              Teuchos::tuple<global_ordinal_type>(col3),
-                                              Teuchos::tuple<double>(value3));
-                    }
-                    if (numDPN == 4)
-                    {
-                        global_ordinal_type row2 = row + numLMPN - 1;
-                        global_ordinal_type col4 = Indices_int[k];
-                        B->insertGlobalValues(row2,
-                                              Teuchos::tuple<global_ordinal_type>(col4),
-                                              Teuchos::tuple<double>(values[k]));
-                    }
-                }
-
-                delete values;
-                delete Indices_int;
-            }
-        }
-
-        delete values;
-        delete Indices_int;
-    }
-
-    B->fillComplete(map->mapDofs, map->mapLagrangeDofs);
-
-    return B;
-}
diff --git a/katoptron/src/Mortar.h b/katoptron/src/Mortar.h
deleted file mode 100644
index 80540be2..00000000
--- a/katoptron/src/Mortar.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#ifndef KATOPTRON_MORTAR_H
-#define KATOPTRON_MORTAR_H
-
-#include "Tpetra_Vector.hpp"
-#include "Kokkos_ViewFactory.hpp"
-#include "Tpetra_Map.hpp"
-#include <mpi.h>
-#include "Tpetra_CrsGraph.hpp"
-#include <Epetra_Map.h>
-
-#include "Tpetra_ConfigDefs.hpp"
-
-#include "Tpetra_Map.hpp"
-#include "Tpetra_MultiVector.hpp"
-#include "Tpetra_Vector.hpp"
-#include "Tpetra_CrsGraph.hpp"
-#include "Tpetra_CrsMatrix.hpp"
-
-#include "ElementsList.h"
-#include "NodesList.h"
-#include "ContactsList.h"
-#include "Map.h"
-#include "Matrices.h"
-
-Teuchos::RCP<Tpetra::CrsMatrix<>> compute_B(Teuchos::RCP<katoptron::ElementsList> elementsList,
-                                            Teuchos::RCP<katoptron::NodesList> nodesList,
-                                            Teuchos::RCP<katoptron::ContactsList> contactsList,
-                                            Teuchos::RCP<katoptron::Map> map, MPI_Comm comm, bool SignoriniCheck);
-
-template <typename scalar>
-void compute_B(Teuchos::RCP<katoptron::Matrices<scalar>> matrices,
-               Teuchos::RCP<katoptron::ElementsList> elementsList,
-               Teuchos::RCP<katoptron::NodesList> nodesList,
-               Teuchos::RCP<katoptron::ContactsList> contactsList,
-               Teuchos::RCP<katoptron::Map> map, MPI_Comm comm)
-{
-    Teuchos::RCP<Tpetra::CrsMatrix<>> B_double = compute_B(elementsList, nodesList, contactsList, map, comm, true);
-    Teuchos::RCP<Tpetra::CrsMatrix<>> B_G_double;
-    if (contactsList->isSignorini())
-        B_G_double = compute_B(elementsList, nodesList, contactsList, map, comm, false);
-    else
-        B_G_double = B_double;
-
-    typedef katoptron::Map::local_ordinal_type local_ordinal_type;
-    typedef katoptron::Map::global_ordinal_type global_ordinal_type;
-
-    size_t maxNumEntPerRow = B_G_double->getNodeMaxNumRowEntries();
-    size_t maxNumEntPerRowT = 200; // Temporary fix
-
-    matrices->B = rcp(new Tpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type>(map->mapLagrangeDofs, maxNumEntPerRow));
-    matrices->B_2 = rcp(new Tpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type>(map->mapLagrangeDofs, maxNumEntPerRow));
-    matrices->B_G = rcp(new Tpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type>(map->mapLagrangeDofs, maxNumEntPerRow));
-    matrices->B_T = rcp(new Tpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type>(map->mapDofs, maxNumEntPerRowT));
-    matrices->C = rcp(new Tpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type>(map->mapLagrangeDofs, 1));
-    matrices->Cb = rcp(new Tpetra::CrsMatrix<scalar, local_ordinal_type, global_ordinal_type>(map->mapLagrangeDofs, 1));
-
-    for (auto i = 0; i < map->mapLagrangeDofs->getNodeNumElements(); ++i)
-    {
-        if (map->mapLagrangeDofs->isNodeLocalElement(i))
-        {
-            local_ordinal_type local_index = i;
-            global_ordinal_type global_index = map->mapLagrangeDofs->getGlobalElement(local_index);
-
-            Teuchos::ArrayView<const local_ordinal_type> local_indices;
-            Teuchos::ArrayView<const double> values;
-
-            B_double->getLocalRowView(local_index, local_indices, values);
-
-            for (auto k = 0; k < local_indices.size(); ++k)
-            {
-                global_ordinal_type column_index = B_double->getColMap()->getGlobalElement(local_indices[k]);
-
-                matrices->B->insertGlobalValues(global_index,
-                                                Teuchos::tuple<global_ordinal_type>(column_index),
-                                                Teuchos::tuple<scalar>((scalar)values[k]));
-
-                matrices->B_2->insertGlobalValues(global_index,
-                                                  Teuchos::tuple<global_ordinal_type>(column_index),
-                                                  Teuchos::tuple<scalar>((scalar)values[k]));
-
-                matrices->B_T->insertGlobalValues(column_index,
-                                                  Teuchos::tuple<global_ordinal_type>(global_index),
-                                                  Teuchos::tuple<scalar>((scalar)values[k]));
-            }
-
-            B_G_double->getLocalRowView(local_index, local_indices, values);
-
-            for (auto k = 0; k < local_indices.size(); ++k)
-            {
-                global_ordinal_type column_index = B_G_double->getColMap()->getGlobalElement(local_indices[k]);
-
-                matrices->B_G->insertGlobalValues(global_index,
-                                                  Teuchos::tuple<global_ordinal_type>(column_index),
-                                                  Teuchos::tuple<scalar>((scalar)values[k]));
-            }
-
-            matrices->C->insertGlobalValues(global_index, Teuchos::tuple<global_ordinal_type>(global_index), Teuchos::tuple<scalar>((scalar)0.));
-            matrices->Cb->insertGlobalValues(global_index, Teuchos::tuple<global_ordinal_type>(global_index), Teuchos::tuple<scalar>((scalar)1.));
-        }
-    }
-
-    matrices->B->fillComplete(map->mapDofs, map->mapLagrangeDofs);
-    matrices->B_2->fillComplete(map->mapDofs, map->mapLagrangeDofs);
-    matrices->B_G->fillComplete(map->mapDofs, map->mapLagrangeDofs);
-    matrices->B_T->fillComplete(map->mapLagrangeDofs, map->mapDofs);
-    matrices->C->fillComplete();
-    matrices->Cb->fillComplete();
-};
-#endif //KATOPTRON_MORTAR_H
\ No newline at end of file
diff --git a/katoptron/src/NeumannList.h b/katoptron/src/NeumannList.h
deleted file mode 100644
index 08aaf001..00000000
--- a/katoptron/src/NeumannList.h
+++ /dev/null
@@ -1,196 +0,0 @@
-#ifndef KATOPTRON_NEUMANNLIST_H
-#define KATOPTRON_NEUMANNLIST_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "wNeumann.h"
-#include "wTag.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-#include "EnsembleTraits.h"
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store the list of the Neumann boundary conditions (BC).
- */
-template <typename scalar>
-class NeumannList
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-private:
-    Kokkos::View<int **, Kokkos::LayoutRight> neumann_elementsList;
-    Kokkos::View<scalar ***, Kokkos::LayoutRight> neumann_values_list;
-
-    local_ordinal_type neumann_number;
-    local_ordinal_type neumann_size;
-    local_ordinal_type neumann_elements;
-
-    local_ordinal_type neumann_time;
-    local_ordinal_type neumann_dofs;
-    local_ordinal_type neumann_values;
-
-public:
-    NeumannList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList);
-
-    /**
-     * @brief Return the number of Neumann BC.
-     */
-    inline local_ordinal_type getNeumannNumber() { return neumann_number; }
-
-    /**
-     * @brief Return the number of elements for a
-     * given Neumann BC.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the BC ID.
-     * </ul>
-     */
-    inline local_ordinal_type getNeumannSize(local_ordinal_type i)
-    {
-        return neumann_elementsList(i, neumann_size);
-    }
-
-    /**
-     * @brief Return the local ID of the element e1 of 
-     * a given BC.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the BC ID,
-     *  <li> e1: the ID of the element on the current BC.
-     * </ul>
-     */
-    inline local_ordinal_type getNeumannElement(local_ordinal_type i, local_ordinal_type e1)
-    {
-        return neumann_elementsList(i, neumann_elements + e1);
-    }
-
-    /**
-     * @brief Return whether there is a surface
-     * load for the given BC for a given DOF index.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the BC ID,
-     *  <li> j: the index of the DOF (0-3 if thermomechanical problems).
-     * </ul> 
-     */
-    inline scalar getNeumannDof(local_ordinal_type i, local_ordinal_type j)
-    {
-        return neumann_values_list(i, 0, neumann_dofs + j);
-    }
-
-    /**
-     * @brief Return the value of the surface
-     * load for the given BC for a given DOF index.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the BC ID,
-     *  <li> j: the index of the DOF (0-3 if thermomechanical problems).
-     * </ul> 
-     */
-    inline scalar getNeumannValue(local_ordinal_type i, local_ordinal_type j)
-    {
-        return neumann_values_list(i, 0, neumann_values + j);
-    }
-};
-
-/**
- * @brief NeumannList constructor
- * 
- * This constructor allocates 2 Kokkos::View which store all the required information related to each Neumann BC, including:
- * <ul>
- *  <li> all the Neumann elements,
- *  <li> all the values of the Neumann BC.
- * </ul>
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object,
- *  <li> elementsList: an RCP to an ElementList object.
- * </ul>
- */
-template <typename scalar>
-NeumannList<scalar>::NeumannList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList)
-{
-    typedef local_ordinal_type local_ordinal_type;
-    typedef global_ordinal_type global_ordinal_type;
-
-    typedef EnsembleTraits<scalar> ET;
-    const int ensemble_size = ET::size;
-
-    local_ordinal_type numDPN = map->numPrimalDPN;
-
-    neumann_number = pbl.nBCs.size();
-    local_ordinal_type maxNumElemsPernBC = 0;
-
-    std::vector<std::vector<global_ordinal_type>> nbcElems = {};
-
-    for (auto i = 0; i < neumann_number; ++i)
-    {
-        std::vector<global_ordinal_type> mynBcElems = {};
-        for (auto j = 0; j < pbl.nBCs[i]->tag->elems.size(); ++j)
-        {
-            local_ordinal_type e = map->mapElems->getLocalElement(pbl.nBCs[i]->tag->elems[j]->no - 1);
-
-            if (elementsList->getElementType(e) == static_cast<int>(tbox::ElType::QUAD4))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(tbox::ElType::TRI3))
-                ;
-            else
-                continue;
-
-            mynBcElems.push_back(e);
-        }
-        nbcElems.push_back(mynBcElems);
-        if (maxNumElemsPernBC < mynBcElems.size())
-            maxNumElemsPernBC = mynBcElems.size();
-    }
-
-    neumann_size = 0;
-    neumann_elements = 1;
-    neumann_elementsList = Kokkos::View<int **, Kokkos::LayoutRight>("R", neumann_number, neumann_elements + maxNumElemsPernBC);
-
-    for (auto i = 0; i < neumann_number; ++i)
-    {
-        neumann_elementsList(i, neumann_size) = nbcElems[i].size();
-
-        for (auto j = 0; j < nbcElems[i].size(); ++j)
-            neumann_elementsList(i, neumann_elements + j) = nbcElems[i][j];
-    }
-
-    neumann_time = 0;
-    neumann_dofs = 1;
-    neumann_values = 1 + numDPN;
-    neumann_values_list = Kokkos::View<scalar ***, Kokkos::LayoutRight>("R", neumann_number, 1, 1 + 2 * numDPN);
-    for (auto i = 0; i < neumann_number; ++i)
-    {
-        neumann_values_list(i, 0, neumann_time) = 0.; //to change latter
-        for (auto j = 0; j < numDPN; ++j)
-            if (pbl.nBCs[i]->which_dof[j])
-                neumann_values_list(i, 0, neumann_dofs + j) = 1;
-            else
-                neumann_values_list(i, 0, neumann_dofs + j) = 0;
-
-        for (auto j = 0; j < numDPN; ++j)
-            for (int s = 0; s < ensemble_size; ++s)
-            {
-                ET::coeff(neumann_values_list(i, 0, neumann_values + j), s) = pbl.nBCs[i]->values[j * ensemble_size + s];
-            }
-    }
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_NEUMANNLIST_H
diff --git a/katoptron/src/NodesList.cpp b/katoptron/src/NodesList.cpp
deleted file mode 100644
index 7bd363ba..00000000
--- a/katoptron/src/NodesList.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "NodesList.h"
-
-#include "wProblem.h"
-#include "wMshData.h"
-#include "wNode.h"
-
-using namespace katoptron;
-
-/**
- * @brief NodesList constructor
- * 
- * This constructor allocates 1 Kokkos::View which stores all the nodes positions.
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object.
- * </ul>
- */
-NodesList::NodesList(Problem &pbl, Teuchos::RCP<Map> map)
-{
-    nodes_number = map->mapNodesWO->getNodeNumElements();
-
-    nodes = Kokkos::View<double **, Kokkos::LayoutRight>("R", nodes_number, 3);
-    for (auto i = 0; i < nodes_number; ++i)
-        for (auto j = 0; j < 3; ++j)
-            nodes(i, j) = pbl.msh->nodes[map->mapNodesWO->getGlobalElement(i)]->pos(j);
-}
diff --git a/katoptron/src/NodesList.h b/katoptron/src/NodesList.h
deleted file mode 100644
index 9b2d2cae..00000000
--- a/katoptron/src/NodesList.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef KATOPTRON_NODESLIST_H
-#define KATOPTRON_NODESLIST_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to store the node information.
- */
-class NodesList
-{
-public:
-    Kokkos::View<double **, Kokkos::LayoutRight> nodes;
-
-    Map::local_ordinal_type nodes_number;
-
-    NodesList(Problem &pbl, Teuchos::RCP<Map> map);
-};
-
-}; // namespace katoptron
-
-#endif //KATOPTRON_NODESLIST_H
diff --git a/katoptron/src/PreloadList.h b/katoptron/src/PreloadList.h
deleted file mode 100644
index 6d86a279..00000000
--- a/katoptron/src/PreloadList.h
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef KATOPTRON_PRELOADLIST_H
-#define KATOPTRON_PRELOADLIST_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "wContact.h"
-#include "wTag.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-#include "EnsembleTraits.h"
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store the list of the preloads.
- */
-template <typename scalar>
-class PreloadList
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-private:
-    Kokkos::View<scalar *, Kokkos::LayoutRight> contacts_dg;
-
-public:
-    PreloadList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList);
-
-    /**
-     * @brief Return the value of the preload for
-     * a given contact interface.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the contact interface ID.
-     * </ul> 
-     */
-    inline scalar getPreloadValue(local_ordinal_type i)
-    {
-        return contacts_dg(i);
-    }
-};
-
-/**
- * @brief NeumannList constructor
- * 
- * This constructor allocates 1 Kokkos::View which stores all the preload related to each contact interface.
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object,
- *  <li> elementsList: an RCP to an ElementList object.
- * </ul>
- */
-template <typename scalar>
-PreloadList<scalar>::PreloadList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList)
-{
-    int contacts_number = pbl.Contacts.size();
-
-    typedef EnsembleTraits<scalar> ET;
-    const int ensemble_size = ET::size;
-
-    contacts_dg = Kokkos::View<scalar *, Kokkos::LayoutRight>("R", contacts_number);
-    for (auto i = 0; i < contacts_number; ++i)
-        for (int j = 0; j < ensemble_size; ++j)
-            ET::coeff(contacts_dg(i), j) = pbl.Contacts[i]->dg_vector[j];
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_PRELOADLIST_H
diff --git a/katoptron/src/ResultsDecl.hpp b/katoptron/src/ResultsDecl.hpp
deleted file mode 100644
index 9fac3532..00000000
--- a/katoptron/src/ResultsDecl.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef KATOPTRON_RESULTSDECL_HPP
-#define KATOPTRON_RESULTSDECL_HPP
-
-#include "katoptron.h"
-#include "wObject.h"
-#include "wTimer.h"
-#include "wTimers.h"
-#include "wTag.h"
-#include "wMedium.h"
-#include "wNode.h"
-
-#include "Teuchos_ParameterList.hpp"
-
-#include "wProblem.h"
-#include "wContact.h"
-#include "wMshData.h"
-#include "wDisplayHook.h"
-#include "wElement.h"
-
-// Tpetra
-#include "Stokhos_Tpetra_MP_Vector.hpp"
-#include "Stokhos_Tpetra_Utilities_MP_Vector.hpp"
-#include "Tpetra_ConfigDefs.hpp"
-
-#include "Tpetra_Map.hpp"
-#include "Tpetra_MultiVector.hpp"
-#include "Tpetra_Vector.hpp"
-#include "Tpetra_CrsGraph.hpp"
-#include "Tpetra_CrsMatrix.hpp"
-
-#include <Teuchos_Array.hpp>
-#include <Teuchos_GlobalMPISession.hpp>
-#include <Teuchos_oblackholestream.hpp>
-#include <Teuchos_ScalarTraits.hpp>
-#include <Teuchos_RCP.hpp>
-#include "Teuchos_ParameterList.hpp"
-
-#include "Kokkos_ViewFactory.hpp"
-#include "Kokkos_Vector.hpp"
-
-#include "wRandomField.h"
-#include "wResults.h"
-#include "wLazy.h"
-#include "Map.h"
-#include <map>
-#include "EnsembleTraits.h"
-
-/**
- * @brief Function to write results on disk using VTK formats.
- */
-template <class Scalar, class LocalOrdinal, class GlobalOrdinal>
-void writeResultsVTK(
-    const katoptron::Problem &pbl,
-    Teuchos::RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal>> xPost,
-    Teuchos::RCP<katoptron::Map> map,
-    Teuchos::RCP<RandomField<Scalar, Kokkos::DefaultExecutionSpace>> random_field,
-    std::string name,
-    size_t ast,
-    bool final_result,
-    bool write_txt);
-
-#endif //KATOPTRON_RESULTSDECL_HPP
diff --git a/katoptron/src/ResultsDef.hpp b/katoptron/src/ResultsDef.hpp
deleted file mode 100644
index 28b6389b..00000000
--- a/katoptron/src/ResultsDef.hpp
+++ /dev/null
@@ -1,366 +0,0 @@
-#ifndef KATOPTRON_RESULTSDEF_HPP
-#define KATOPTRON_RESULTSDEF_HPP
-
-#include "ResultsDecl.hpp"
-#include "StressComputation.h"
-
-/* @todo should be removed */
-#ifdef WAVES_USE_TBOXVTK
-#include "tboxVtk.h"
-#include "wVtkExport_KIM2CLEAN.h"
-#endif
-
-template <class Scalar, class LocalOrdinal, class GlobalOrdinal>
-void writeResultsVTK(
-    const katoptron::Problem &pbl,
-    Teuchos::RCP<Tpetra::Vector<Scalar, LocalOrdinal, GlobalOrdinal>> xPost,
-    Teuchos::RCP<katoptron::Map> map,
-    Teuchos::RCP<RandomField<Scalar, Kokkos::DefaultExecutionSpace>> random_field,
-    std::string name,
-    size_t ast,
-    bool final_result,
-    bool write_txt)
-{
-    /* @todo [AC] temporary fix for initializing Mem in katoptron */
-    for (auto e : pbl.msh->elems)
-    {
-        if (e->type() == tbox::ElType::HEX8 || e->type() == tbox::ElType::TETRA4) // 3D
-            e->initValues(true);
-        //else // 2D
-        //    e->initValues(false);
-    }
-    /* end temporary fix*/
-
-    // Extraction of types and ensemble format
-
-    xPost->template sync<Kokkos::HostSpace>();
-    auto x_2d = xPost->template getLocalView<Kokkos::HostSpace>();
-    auto X = Kokkos::subview(x_2d, Kokkos::ALL(), 0);
-
-    typedef EnsembleTraits<Scalar> ET;
-
-    const size_t ensemble_size = ET::size;
-
-    typedef decltype(X) X_View;
-    typename Kokkos::FlatArrayType<X_View>::type X_flat = X;
-
-    size_t numPrimalDPN = map->numPrimalDPN;
-
-    // Construction of the maps
-
-    std::map<LocalOrdinal, GlobalOrdinal> nodesWO_LO_to_GO;
-    std::map<GlobalOrdinal, LocalOrdinal> nodesWO_GO_to_LO;
-    std::map<GlobalOrdinal, LocalOrdinal> elements_GO_to_LO;
-    std::vector<GlobalOrdinal> contactElementID;
-    std::map<LocalOrdinal, GlobalOrdinal> lagrange_LO_to_nodes_GO;
-    std::map<GlobalOrdinal, LocalOrdinal> nodes_GO_to_lagrange_LO;
-
-    LocalOrdinal index = 0;
-
-    for (LocalOrdinal i = 0; i < map->mapElems->getNodeNumElements(); ++i)
-    {
-        if (pbl.msh->elems[i]->type() == tbox::ElType::HEX8 || pbl.msh->elems[i]->type() == tbox::ElType::TETRA4)
-        {
-            GlobalOrdinal global_i = map->mapElems->getGlobalElement(i);
-            elements_GO_to_LO[global_i] = index;
-            ++index;
-        }
-    }
-
-    for (LocalOrdinal i = 0; i < map->mapNodesWO->getNodeNumElements(); ++i)
-    {
-        GlobalOrdinal global_i = map->mapNodesWO->getGlobalElement(i);
-        nodesWO_LO_to_GO[i] = global_i;
-        nodesWO_GO_to_LO[global_i] = i;
-    }
-
-    LocalOrdinal numNodes = nodesWO_LO_to_GO.size();
-    LocalOrdinal numMechanicalDualDOFs = map->lagrange_to_dof.size();
-    LocalOrdinal numPrimalDOFs = numPrimalDPN * numNodes;
-
-    std::map<LocalOrdinal, GlobalOrdinal> elems_LO_to_GO;
-    std::map<GlobalOrdinal, LocalOrdinal> elems_GO_to_LO;
-
-    for (GlobalOrdinal i = 0; i < pbl.msh->elems.size(); ++i)
-    {
-        if (pbl.msh->elems[i]->type() == tbox::ElType::HEX8 || pbl.msh->elems[i]->type() == tbox::ElType::TETRA4)
-        {
-            LocalOrdinal local_i = pbl.msh->elems[i]->no - 1;
-            elems_LO_to_GO[local_i] = i;
-            elems_GO_to_LO[i] = local_i;
-        }
-    }
-
-    if (pbl.Contacts.size() >= 1)
-    {
-        std::vector<GlobalOrdinal> tmpcontactElementID;
-        for (size_t i = 0; i < pbl.Contacts.size(); ++i)
-            for (LocalOrdinal j = 0; j < pbl.Contacts[i]->slave_elems.size(); ++j)
-                tmpcontactElementID.push_back(pbl.Contacts[i]->slave_elems[j]->no - 1);
-
-        if (tmpcontactElementID.size() > 1)
-        {
-            std::sort(tmpcontactElementID.begin(), tmpcontactElementID.end());
-
-            if (tmpcontactElementID.size() >= 1)
-            {
-                contactElementID.push_back(tmpcontactElementID[0]);
-                if (tmpcontactElementID.size() > 1)
-                    for (LocalOrdinal i = 1; i < tmpcontactElementID.size(); ++i)
-                        if (tmpcontactElementID[i] != tmpcontactElementID[i - 1])
-                            contactElementID.push_back(tmpcontactElementID[i]);
-            }
-        }
-    }
-
-    // Values in which we are interested
-
-    std::vector<double> displacement_x(numNodes);
-    std::vector<double> displacement_y(numNodes);
-    std::vector<double> displacement_z(numNodes);
-    std::vector<double> shear_modulus_per_node(numNodes);
-
-    std::vector<double> sigma_vm_nodes(numNodes);
-    std::vector<size_t> adjacent_elems(numNodes);
-    std::vector<Eigen::MatrixXd> stress_at_nodes(numNodes);
-    std::vector<Eigen::MatrixXd> strain_at_nodes(numNodes);
-
-    std::vector<Eigen::MatrixXd> stress(pbl.msh->elems.size());
-    std::vector<Eigen::MatrixXd> strain(pbl.msh->elems.size());
-
-    std::vector<double> sigma_vm(pbl.msh->elems.size());
-
-    std::vector<double> G_vector(pbl.msh->elems.size());
-
-    std::vector<Eigen::Vector3d> displacement(numNodes);
-
-    std::vector<double> displacement_u(numNodes);
-    std::vector<double> T(numNodes);
-    std::vector<double> pressure(numMechanicalDualDOFs);
-
-    std::vector<double> h_fluxes(numMechanicalDualDOFs);
-    std::vector<double> t_x(numMechanicalDualDOFs);
-    std::vector<double> t_y(numMechanicalDualDOFs);
-
-    for (auto &k : stress)
-        k = Eigen::Matrix3d::Zero();
-
-    for (auto &k : strain)
-        k = Eigen::Matrix3d::Zero();
-
-    for (auto &k : stress_at_nodes)
-        k = Eigen::Matrix3d::Zero();
-
-    for (auto &k : strain_at_nodes)
-        k = Eigen::Matrix3d::Zero();
-
-    // Fill the result vectors
-
-    for (size_t ell = 0; ell < ensemble_size; ++ell)
-    {
-
-        tbox::Results *results = new tbox::Results();
-        tbox::Results *results_contact = new tbox::Results();
-
-        results->scalars_at_nodes["x"] = &displacement_x;
-        results->scalars_at_nodes["y"] = &displacement_y;
-        results->scalars_at_nodes["z"] = &displacement_z;
-        results->scalars_at_nodes["u"] = &displacement_u;
-        results->scalars_at_nodes["G"] = &shear_modulus_per_node;
-        results->scalars_at_nodes["von Mises"] = &sigma_vm_nodes;
-        results->tensors_at_nodes["sigma"] = &stress_at_nodes;
-        results->tensors_at_nodes["epsilon"] = &strain_at_nodes;
-
-        if (numPrimalDPN == 4)
-            results->scalars_at_nodes["T"] = &T;
-
-        results->tensors_at_elems["sigma"] = &stress;
-        results->tensors_at_elems["epsilon"] = &strain;
-
-        results->scalars_at_elems["von Mises"] = &sigma_vm;
-
-        results->scalars_at_elems["G"] = &G_vector;
-
-        results->vectors_at_nodes["displacement"] = &displacement;
-
-        if (pbl.Contacts.size() > 0)
-        {
-            results_contact->scalars_at_nodes["p"] = &pressure;
-            if (numPrimalDPN == 4)
-                results_contact->scalars_at_nodes["heat fluxes"] = &h_fluxes;
-            if (map->numDualDPN == 3 || map->numDualDPN == 4)
-            {
-                results_contact->scalars_at_nodes["tangential stress 1"] = &t_x;
-                results_contact->scalars_at_nodes["tangential stress 2"] = &t_y;
-            }
-        }
-
-        for (LocalOrdinal i = 0; i < numNodes; ++i)
-        {
-            double dx, dy, dz;
-            if (numPrimalDPN == 4)
-            {
-                dx = X_flat[ensemble_size * (numNodes + 3 * i) + ell];
-                dy = X_flat[ensemble_size * (numNodes + 3 * i + 1) + ell];
-                dz = X_flat[ensemble_size * (numNodes + 3 * i + 2) + ell];
-            }
-            else
-            {
-                dx = X_flat[ensemble_size * (3 * i) + ell];
-                dy = X_flat[ensemble_size * (3 * i + 1) + ell];
-                dz = X_flat[ensemble_size * (3 * i + 2) + ell];
-            }
-
-            displacement_x[i] = dx;
-            displacement_y[i] = dy;
-            displacement_z[i] = dz;
-            displacement_u[i] = sqrt(dx * dx + dy * dy + dz * dz);
-            strain_at_nodes[i].setZero();
-            stress_at_nodes[i].setZero();
-            shear_modulus_per_node[i] = ET::coeff(random_field->operator()(pbl.msh->nodes[nodesWO_LO_to_GO[i]]->pos(0), pbl.msh->nodes[nodesWO_LO_to_GO[i]]->pos(1), pbl.msh->nodes[nodesWO_LO_to_GO[i]]->pos(2)), ell);
-            displacement[i] = Eigen::Vector3d(dx, dy, dz);
-            if (numPrimalDPN == 4 || numPrimalDPN == 1)
-                T[i] = X_flat[ensemble_size * i + ell];
-        }
-        if (pbl.Contacts.size() > 0)
-        {
-            for (LocalOrdinal i = 0; i < numMechanicalDualDOFs; ++i)
-            {
-                int i_node = map->lm_to_dof_global[i];
-                lagrange_LO_to_nodes_GO[i] = i_node;
-                nodes_GO_to_lagrange_LO[i_node] = i;
-                pressure[i] = X_flat[ensemble_size * (i * map->numDualDPN + numPrimalDOFs) + ell];
-            }
-            if (map->numDualDPN == 2 || map->numDualDPN == 4)
-                for (LocalOrdinal i = 0; i < numMechanicalDualDOFs; ++i)
-                    h_fluxes[i] = X_flat[ensemble_size * (i * map->numDualDPN + map->numDualDPN - 1 + numPrimalDOFs) + ell];
-            if (map->numDualDPN == 3 || map->numDualDPN == 4)
-                for (LocalOrdinal i = 0; i < numMechanicalDualDOFs; ++i)
-                {
-                    t_x[i] = X_flat[ensemble_size * (i * map->numDualDPN + 1 + numPrimalDOFs) + ell];
-                    t_y[i] = X_flat[ensemble_size * (i * map->numDualDPN + 2 + numPrimalDOFs) + ell];
-                }
-        }
-
-        for (auto m : pbl.media)
-        {
-            tbox::Tag *current_tag = m->tag;
-
-            double E = ET::coeff(m->E, ell);
-            double nu = ET::coeff(m->nu, ell);
-
-            double lambda = (nu * E) / ((1 + nu) * (1 - 2 * nu));
-            double G = E / (2 * (1 + nu));
-
-            for (LocalOrdinal i_elem = 0; i_elem < current_tag->elems.size(); ++i_elem)
-            {
-                if (random_field->isRandom)
-                {
-                    double x = 0., y = 0., z = 0.;
-                    size_t element_size = current_tag->elems[i_elem]->nodes.size();
-                    for (size_t j = 0; j < element_size; ++j)
-                    {
-                        x += current_tag->elems[i_elem]->nodes[j]->pos(0) / element_size;
-                        y += current_tag->elems[i_elem]->nodes[j]->pos(1) / element_size;
-                        z += current_tag->elems[i_elem]->nodes[j]->pos(2) / element_size;
-                    }
-                    G = ET::coeff(random_field->operator()(x, y, z), ell);
-                }
-                Eigen::MatrixXd H = Eigen::MatrixXd::Zero(9, 9);
-                Eigen::MatrixXd D = Eigen::MatrixXd::Zero(3, 3);
-
-                for (auto i = 0; i < 3; ++i)
-                    for (auto j = 0; j < 3; ++j)
-                        for (auto k = 0; k < 3; ++k)
-                            for (auto l = 0; l < 3; ++l)
-                            {
-                                if (i == j && k == l)
-                                    H(i * 3 + j, k * 3 + l) = lambda;
-                                if (i == k && j == l)
-                                    H(i * 3 + j, k * 3 + l) = H(i * 3 + j, k * 3 + l) + G;
-                                if (i == l && j == k)
-                                    H(i * 3 + j, k * 3 + l) = H(i * 3 + j, k * 3 + l) + G;
-                            }
-                if (numPrimalDPN == 4)
-                {
-                    double kappa = lambda + (2. / 3.) * G;
-                    double beta = ET::coeff(m->beta, ell);
-
-                    for (auto i = 0; i < 3; ++i)
-                        D(i, i) = -3. * kappa * beta;
-                }
-                std::vector<double> x_tmp(8), y_tmp(8), z_tmp(8), T_tmp(8);
-                Eigen::MatrixXd Strain(3, 3);
-                Eigen::MatrixXd Sigma(3, 3);
-
-                auto e = current_tag->elems[i_elem];
-                std::vector<Eigen::MatrixXd> Strain_at_node(e->nodes.size());
-                std::vector<Eigen::MatrixXd> Sigma_at_node(e->nodes.size());
-
-                for (auto &k : Strain_at_node)
-                    k = Eigen::MatrixXd::Zero(3, 3);
-                for (auto &k : Sigma_at_node)
-                    k = Eigen::MatrixXd::Zero(3, 3);
-
-                if (e->type() == tbox::ElType::HEX8 || e->type() == tbox::ElType::TETRA4)
-                {
-                    for (size_t i = 0; i < e->nodes.size(); ++i)
-                    {
-                        int node_i = nodesWO_GO_to_LO[e->nodes[i]->row];
-                        x_tmp[i] = displacement_x[node_i];
-                        y_tmp[i] = displacement_y[node_i];
-                        z_tmp[i] = displacement_z[node_i];
-                        if (numPrimalDPN == 4)
-                            T_tmp[i] = T[node_i];
-                        else
-                            T_tmp[i] = 0.;
-                    }
-
-                    strain_stress_x_y_z(e, Strain, Sigma, H, D, x_tmp, y_tmp, z_tmp, T_tmp, numPrimalDPN == 4);
-
-                    strain[elems_LO_to_GO[e->no - 1]] = Strain;
-                    stress[elems_LO_to_GO[e->no - 1]] = Sigma;
-
-                    G_vector[elems_LO_to_GO[e->no - 1]] = G;
-
-                    sigma_vm[elems_LO_to_GO[e->no - 1]] = sqrt((pow(Sigma(0, 0) - Sigma(1, 1), 2.) + pow(Sigma(1, 1) - Sigma(2, 2), 2.) + pow(Sigma(2, 2) - Sigma(0, 0), 2.) + 6 * (pow(Sigma(0, 1), 2.) + pow(Sigma(1, 2), 2.) + pow(Sigma(2, 0), 2.))) / 2);
-
-                    strain_stress_x_y_z_at_node(e, Strain_at_node, Sigma_at_node, H, D, x_tmp, y_tmp, z_tmp, T_tmp, numPrimalDPN == 4);
-
-                    for (size_t i = 0; i < e->nodes.size(); ++i)
-                    {
-                        LocalOrdinal node_i = nodesWO_GO_to_LO[e->nodes[i]->row];
-                        if (ell == 0)
-                            ++adjacent_elems[node_i]; // Increases the number of adjacent elements by one only for the first sample
-
-                        strain_at_nodes[node_i] += Strain_at_node[i];
-                        stress_at_nodes[node_i] += Sigma_at_node[i];
-                    }
-                }
-            }
-        }
-        for (LocalOrdinal i = 0; i < numNodes; ++i)
-        {
-            strain_at_nodes[i] /= adjacent_elems[i];
-            stress_at_nodes[i] /= adjacent_elems[i];
-
-            Eigen::MatrixXd Sigma = stress_at_nodes[i];
-
-            sigma_vm_nodes[i] = sqrt((pow(Sigma(0, 0) - Sigma(1, 1), 2.) + pow(Sigma(1, 1) - Sigma(2, 2), 2.) + pow(Sigma(2, 2) - Sigma(0, 0), 2.) + 6 * (pow(Sigma(0, 1), 2.) + pow(Sigma(1, 2), 2.) + pow(Sigma(2, 0), 2.))) / 2);
-        }
-
-        /* @todo temporary fix to output Kim's data */
-        // All the post-processing related to katoptron should be done here,
-        // then tbox::MshExport should be used, either by passing tbox::GmshExport or tboxVtk::VtkExport
-
-        tboxVtk::VtkExport_KIM2CLEAN vtkWriter(pbl.msh);
-        vtkWriter.save_MPI(pbl.msh->name + "_ast" + std::to_string(ast) + "_s" + std::to_string(ell) + ".pvtu", *results, nodesWO_LO_to_GO, nodesWO_GO_to_LO, elements_GO_to_LO);
-        if (pbl.Contacts.size() >= 1)
-            vtkWriter.save_MPI(pbl.msh->name + "_ast" + std::to_string(ast) + "_s" + std::to_string(ell) + "_contact.vtu", *results_contact, contactElementID, lagrange_LO_to_nodes_GO, nodes_GO_to_lagrange_LO);
-
-        delete results;
-        delete results_contact;
-    }
-}
-
-#endif //KATOPTRON_RESULTSDEF_HPP
diff --git a/katoptron/src/ResultsETI.cpp b/katoptron/src/ResultsETI.cpp
deleted file mode 100644
index aa362ebf..00000000
--- a/katoptron/src/ResultsETI.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-#include "ResultsDecl.hpp"
-#include "ResultsDef.hpp"
-
-typedef katoptron::Map::local_ordinal_type local_ordinal_type;
-typedef katoptron::Map::global_ordinal_type global_ordinal_type;
-
-#define SCALAR double
-
-template void writeResultsVTK<SCALAR, local_ordinal_type, global_ordinal_type>(
-    const katoptron::Problem &,
-    Teuchos::RCP<Tpetra::Vector<SCALAR, local_ordinal_type, global_ordinal_type>>,
-    Teuchos::RCP<katoptron::Map>,
-    Teuchos::RCP<RandomField<SCALAR, Kokkos::DefaultExecutionSpace>>,
-    std::string,
-    size_t,
-    bool,
-    bool);
-
-#undef SCALAR
-
-#define SCALAR Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 8, Kokkos::OpenMP>>
-
-template void writeResultsVTK<SCALAR, local_ordinal_type, global_ordinal_type>(
-    const katoptron::Problem &,
-    Teuchos::RCP<Tpetra::Vector<SCALAR, local_ordinal_type, global_ordinal_type>>,
-    Teuchos::RCP<katoptron::Map>,
-    Teuchos::RCP<RandomField<SCALAR, Kokkos::DefaultExecutionSpace>>,
-    std::string,
-    size_t,
-    bool,
-    bool);
-
-#undef SCALAR
-
-#define SCALAR Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 16, Kokkos::OpenMP>>
-
-template void writeResultsVTK<SCALAR, local_ordinal_type, global_ordinal_type>(
-    const katoptron::Problem &,
-    Teuchos::RCP<Tpetra::Vector<SCALAR, local_ordinal_type, global_ordinal_type>>,
-    Teuchos::RCP<katoptron::Map>,
-    Teuchos::RCP<RandomField<SCALAR, Kokkos::DefaultExecutionSpace>>,
-    std::string,
-    size_t,
-    bool,
-    bool);
-
-#undef SCALAR
-
-#define SCALAR Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 24, Kokkos::OpenMP>>
-
-template void writeResultsVTK<SCALAR, local_ordinal_type, global_ordinal_type>(
-    const katoptron::Problem &,
-    Teuchos::RCP<Tpetra::Vector<SCALAR, local_ordinal_type, global_ordinal_type>>,
-    Teuchos::RCP<katoptron::Map>,
-    Teuchos::RCP<RandomField<SCALAR, Kokkos::DefaultExecutionSpace>>,
-    std::string,
-    size_t,
-    bool,
-    bool);
-
-#undef SCALAR
-
-#define SCALAR Sacado::MP::Vector<Stokhos::StaticFixedStorage<int, double, 32, Kokkos::OpenMP>>
-
-template void writeResultsVTK<SCALAR, local_ordinal_type, global_ordinal_type>(
-    const katoptron::Problem &,
-    Teuchos::RCP<Tpetra::Vector<SCALAR, local_ordinal_type, global_ordinal_type>>,
-    Teuchos::RCP<katoptron::Map>,
-    Teuchos::RCP<RandomField<SCALAR, Kokkos::DefaultExecutionSpace>>,
-    std::string,
-    size_t,
-    bool,
-    bool);
-
-#undef SCALAR
diff --git a/katoptron/src/SourcesList.h b/katoptron/src/SourcesList.h
deleted file mode 100644
index 2c262ff6..00000000
--- a/katoptron/src/SourcesList.h
+++ /dev/null
@@ -1,164 +0,0 @@
-#ifndef KATOPTRON_SOURCESLIST_H
-#define KATOPTRON_SOURCESLIST_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "wSource.h"
-#include "wTag.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store the list of the volumetric heat sources.
- */
-template <typename scalar>
-class SourcesList
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-private:
-    Kokkos::View<int **, Kokkos::LayoutRight> sources_elementsList;
-    Kokkos::View<scalar ***, Kokkos::LayoutRight> sources_values_list;
-
-    local_ordinal_type sources_number;
-    local_ordinal_type sources_size;
-    local_ordinal_type sources_elements;
-
-    local_ordinal_type sources_time;
-    local_ordinal_type sources_values;
-
-public:
-    SourcesList();
-    SourcesList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList);
-
-    /**
-     * @brief Return the number of sources.
-     */
-    inline local_ordinal_type getSourceNumber() { return sources_number; }
-
-    /**
-     * @brief Return the number of elements for a
-     * given source.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the source ID.
-     * </ul>
-     */
-    inline local_ordinal_type getSourceSize(local_ordinal_type i)
-    {
-        return sources_elementsList(i, sources_size);
-    }
-
-    /**
-     * @brief Return the local ID of the element e1 of 
-     * a source.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the source ID,
-     *  <li> e1: the ID of the element on the current BC.
-     * </ul>
-     */
-    inline local_ordinal_type getSourceElement(local_ordinal_type i, local_ordinal_type ea)
-    {
-        return sources_elementsList(i, sources_elements + ea);
-    }
-
-    /**
-     * @brief Return the value of the source.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the source ID.
-     * </ul> 
-     */
-    inline scalar getSourceValue(local_ordinal_type i)
-    {
-        return sources_values_list(i, 0, sources_values);
-    }
-};
-
-/**
- * @brief SourcesList constructor
- * 
- * This constructor allocates 2 Kokkos::View which store all the required information related to source, including:
- * <ul>
- *  <li> all the source elements,
- *  <li> all the values of the heat source.
- * </ul>
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object,
- *  <li> elementsList: an RCP to an ElementList object.
- * </ul>
- */
-template <typename scalar>
-SourcesList<scalar>::SourcesList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList)
-{
-    typedef local_ordinal_type local_ordinal_type;
-    typedef global_ordinal_type global_ordinal_type;
-
-    sources_number = pbl.Sources.size();
-    local_ordinal_type maxNumElemsPerSource = 0;
-
-    std::vector<std::vector<global_ordinal_type>> SourceElems = {};
-
-    for (auto i = 0; i < sources_number; ++i)
-    {
-        std::vector<global_ordinal_type> mySourceElems = {};
-
-        for (auto j = 0; j < pbl.Sources[i]->tag->elems.size(); ++j)
-        {
-            local_ordinal_type e = map->mapElems->getLocalElement(pbl.Sources[i]->tag->elems[j]->no - 1);
-
-            if (elementsList->getElementType(e) == static_cast<int>(tbox::ElType::TETRA4))
-                ;
-            else if (elementsList->getElementType(e) == static_cast<int>(tbox::ElType::HEX8))
-                ;
-            else
-                continue;
-
-            mySourceElems.push_back(e);
-        }
-
-        SourceElems.push_back(mySourceElems);
-        if (maxNumElemsPerSource < mySourceElems.size())
-            maxNumElemsPerSource = mySourceElems.size();
-    }
-
-    sources_size = 0;
-    sources_elements = 1;
-    sources_elementsList = Kokkos::View<int **, Kokkos::LayoutRight>("R", sources_number, sources_elements + maxNumElemsPerSource);
-
-    for (auto i = 0; i < sources_number; ++i)
-    {
-        sources_elementsList(i, sources_size) = SourceElems[i].size();
-
-        for (auto j = 0; j < SourceElems[i].size(); ++j)
-            sources_elementsList(i, sources_elements + j) = SourceElems[i][j];
-    }
-
-    sources_time = 0;
-    sources_values = 1;
-    sources_values_list = Kokkos::View<scalar ***, Kokkos::LayoutRight>("R", sources_number, 1, 2);
-    for (auto i = 0; i < sources_number; ++i)
-    {
-        sources_values_list(i, 0, sources_time) = 0.; //to change latter
-
-        sources_values_list(i, 0, sources_values) = pbl.Sources[i]->value;
-    }
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_SOURCESLIST_H
diff --git a/katoptron/src/StressComputation.h b/katoptron/src/StressComputation.h
deleted file mode 100644
index ec6c1e81..00000000
--- a/katoptron/src/StressComputation.h
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifndef KATOPTRON_STRESSCOMPUTATION_H
-#define KATOPTRON_STRESSCOMPUTATION_H
-
-#include "wHex8.h"
-#include "wSfHex8.h"
-#include "wGaussHex8.h"
-#include "wCacheHex8.h"
-
-#include "wTetra4.h"
-#include "wSfTetra4.h"
-#include "wGaussTetra4.h"
-#include "wCacheTetra4.h"
-
-/**
- * @brief Those functions compute the stress and strain at nodes and in average per element.
- * They are currently implemented using Eigen data structure but should be refactored using Kokkos:view
- * such that it will be possible to use parallel for in the future.
- */
-
-void strain_at_gp(size_t n_n, tbox::Element &el, tbox::Cache &cache, size_t a, const Eigen::MatrixXd &u_e, Eigen::MatrixXd &Strain)
-{
-    Eigen::MatrixXd const &J = el.getJinv(a);
-    Eigen::MatrixXd const &dffi = cache.getDsf(a);
-    Eigen::Matrix3d du_d_Phi = Eigen::Matrix3d::Zero();
-    for (size_t i = 0; i < n_n; ++i)
-    {
-        for (auto k = 0; k < 3; ++k)
-            for (auto j = 0; j < 3; ++j)
-                du_d_Phi(j, k) += dffi(j, i) * u_e(k, i);
-    }
-    Strain += (J * du_d_Phi).transpose() * (J * du_d_Phi) * 0.5;
-}
-
-void compute_stress(size_t n_n, const Eigen::MatrixXd &Strain, Eigen::MatrixXd &Stress, const Eigen::MatrixXd &H, const Eigen::MatrixXd &D, const std::vector<double> &T, bool thermal)
-{
-    Stress = Eigen::Matrix3d::Zero();
-    for (size_t i = 0; i < 3; ++i)
-        for (size_t j = 0; j < 3; ++j)
-            for (size_t k = 0; k < 3; ++k)
-                for (size_t l = 0; l < 3; ++l)
-                    Stress(i, j) += H(i * 3 + j, k * 3 + l) * Strain(k, l);
-
-    if (thermal)
-        for (size_t i = 0; i < 3; ++i)
-            for (size_t j = 0; j < 3; ++j)
-            {
-                double tmp = 0.;
-                for (size_t k = 0; k < n_n; ++k)
-                    tmp += D(i, j) * T[k];
-                tmp /= n_n;
-                Stress(i, j) += tmp;
-            }
-}
-
-void strain_stress_x_y_z(tbox::Element *elem, Eigen::MatrixXd &Strain, Eigen::MatrixXd &Stress, const Eigen::MatrixXd &H, const Eigen::MatrixXd &D, const std::vector<double> &x, const std::vector<double> &y, const std::vector<double> &z, const std::vector<double> &T, bool thermal = false)
-{
-    tbox::Cache &cache = elem->getVCache();
-
-    size_t n_gp = cache.getVGauss().getN();
-    size_t n_n = elem->nodes.size();
-
-    Eigen::MatrixXd u_e(3, n_n);
-
-    for (size_t i = 0; i < n_n; ++i)
-    {
-        u_e(0, i) = x[i];
-        u_e(1, i) = y[i];
-        u_e(2, i) = z[i];
-    }
-
-    Strain = Eigen::Matrix3d::Zero();
-    for (size_t a = 0; a < n_gp; ++a)
-    {
-        strain_at_gp(n_n, *elem, cache, a, u_e, Strain);
-    }
-    Strain /= n_n;
-
-    compute_stress(n_n, Strain, Stress, H, D, T, thermal);
-}
-
-void strain_stress_x_y_z_at_node(tbox::Element *elem, std::vector<Eigen::MatrixXd> &Strain_at_node, std::vector<Eigen::MatrixXd> &Stress_at_node, const Eigen::MatrixXd &H, const Eigen::MatrixXd &D, const std::vector<double> &x, const std::vector<double> &y, const std::vector<double> &z, const std::vector<double> &T, bool thermal = false)
-{
-    tbox::Cache &cache = elem->getVCache();
-
-    size_t n_gp = cache.getVGauss().getN();
-    size_t n_n = elem->nodes.size();
-
-    std::vector<Eigen::MatrixXd> Strain_at_gp(n_gp);
-    std::vector<Eigen::MatrixXd> Stress_at_gp(n_gp);
-    Eigen::MatrixXd u_e(3, n_n);
-    Eigen::MatrixXd Strain(3, 3);
-
-    for (auto &k : Strain_at_gp)
-        k.resize(3, 3);
-    for (auto &k : Stress_at_gp)
-        k.resize(3, 3);
-
-    for (size_t i = 0; i < n_n; ++i)
-    {
-        u_e(0, i) = x[i];
-        u_e(1, i) = y[i];
-        u_e(2, i) = z[i];
-    }
-
-    for (size_t a = 0; a < n_gp; ++a)
-    {
-        Strain = Eigen::Matrix3d::Zero();
-        strain_at_gp(n_n, *elem, cache, a, u_e, Strain);
-        Strain_at_gp[a] = Strain;
-        compute_stress(n_n, Strain, Stress_at_gp[a], H, D, T, thermal);
-    }
-
-    // Extrapolation at node points
-    Eigen::MatrixXd values_at_gp(n_gp, 18);
-    for (size_t i = 0; i < 3; ++i)
-        for (size_t j = 0; j < 3; ++j)
-            for (size_t a = 0; a < n_gp; ++a)
-            {
-                values_at_gp(a, i * 3 + j) = Strain_at_gp[a](i, j);
-                values_at_gp(a, 9 + i * 3 + j) = Stress_at_gp[a](i, j);
-            }
-
-    Eigen::MatrixXd values_at_node = elem->gp2node(values_at_gp);
-    for (size_t k = 0; k < n_n; ++k)
-        for (size_t i = 0; i < 3; ++i)
-            for (size_t j = 0; j < 3; ++j)
-            {
-                Strain_at_node[k](i, j) = values_at_node(k, i * 3 + j);
-                Stress_at_node[k](i, j) = values_at_node(k, 9 + i * 3 + j);
-            }
-}
-
-#endif //KATOPTRON_STRESSCOMPUTATION_H
\ No newline at end of file
diff --git a/katoptron/src/Vectors.h b/katoptron/src/Vectors.h
deleted file mode 100644
index 5a5069f1..00000000
--- a/katoptron/src/Vectors.h
+++ /dev/null
@@ -1,78 +0,0 @@
-#ifndef KATOPTRON_VECTORS_H
-#define KATOPTRON_VECTORS_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Xpetra_BlockedMultiVector.hpp>
-#include <Xpetra_MultiVector.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which includes all the Trilinos vectors (Tpetra vectors and Xpetra vectors) used
- * in the simulation.
- */
-template <typename scalar>
-class Vectors
-{
-public:
-    //
-    // Convenience typedefs
-    //
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-    typedef Map::node_type node_type;
-    typedef Map::tpetra_map_type tpetra_map_type;
-    typedef Map::xpetra_bmap_type xpetra_bmap_type;
-
-    typedef Tpetra::Vector<scalar, local_ordinal_type, global_ordinal_type, node_type> tpetra_vector_type;
-    typedef Tpetra::MultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> tpetra_mvector_type;
-
-    typedef Xpetra::BlockedMultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_bmvector_type;
-    typedef Xpetra::MultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_mvector_type;
-    typedef Xpetra::TpetraMultiVector<scalar, local_ordinal_type, global_ordinal_type, node_type> xpetra_tmvector_type;
-
-    Teuchos::RCP<tpetra_vector_type> bWO;
-    Teuchos::RCP<tpetra_vector_type> b;
-
-    Teuchos::RCP<tpetra_vector_type> weights;
-
-    Teuchos::RCP<tpetra_vector_type> x;
-    Teuchos::RCP<tpetra_vector_type> lagrange;
-
-    Teuchos::RCP<tpetra_vector_type> initialGap;
-
-    Teuchos::RCP<xpetra_bmvector_type> rhsBlockedMultiVector;
-    Teuchos::RCP<xpetra_bmvector_type> solutionBlockedMultiVector;
-
-    Teuchos::RCP<xpetra_mvector_type> rhsMultiVector;
-    Teuchos::RCP<xpetra_mvector_type> solutionMultiVector;
-
-    Vectors(Teuchos::RCP<Map> map);
-};
-
-/**
- * @brief Vectors constructor
- * 
- * Argument:
- * <ul>
- *  <li> graph: an RCP to a Map object.
- * </ul>
- */
-template <typename scalar>
-Vectors<scalar>::Vectors(Teuchos::RCP<Map> map)
-{
-    bWO = rcp(new tpetra_vector_type(map->mapDofsWO, true));
-    b = rcp(new tpetra_vector_type(map->mapDofs, true));
-    x = rcp(new tpetra_vector_type(map->mapDofs, true));
-    weights = rcp(new tpetra_vector_type(map->mapDofs, true));
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_VECTORS_H
diff --git a/katoptron/src/WeightsList.h b/katoptron/src/WeightsList.h
deleted file mode 100644
index bf1cbe4d..00000000
--- a/katoptron/src/WeightsList.h
+++ /dev/null
@@ -1,200 +0,0 @@
-#ifndef KATOPTRON_WEIGHTSLIST_H
-#define KATOPTRON_WEIGHTSLIST_H
-
-#include "katoptron.h"
-
-#include "Map.h"
-#include "wWeight.h"
-#include "wTag.h"
-
-#include <Tpetra_Map.hpp>
-#include <Tpetra_Vector.hpp>
-#include <Teuchos_RCP.hpp>
-#include <Kokkos_ViewFactory.hpp>
-
-#include "EnsembleTraits.h"
-
-using Teuchos::RCP;
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to store the list of the weights used
- * for the residual computation.
- */
-template <typename scalar>
-class WeightsList
-{
-    typedef Map::local_ordinal_type local_ordinal_type;
-    typedef Map::global_ordinal_type global_ordinal_type;
-
-private:
-    Kokkos::View<int **, Kokkos::LayoutRight> weights_nodesList;
-    Kokkos::View<scalar **, Kokkos::LayoutRight> weights_values_list;
-
-    local_ordinal_type weights_number;
-    local_ordinal_type weights_size;
-    local_ordinal_type weights_nodes;
-
-    local_ordinal_type weights_dofs;
-    local_ordinal_type weights_values;
-
-public:
-    WeightsList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList);
-
-    /**
-     * @brief Return the number of weighted regions.
-     */
-    inline local_ordinal_type getWeightRegionsNumber()
-    {
-        return weights_number;
-    }
-
-    /**
-     * @brief Return the number of nodes for a
-     * given weighted region.
-     * 
-     * Argument:
-     * <ul>
-     *  <li> i: the weighted region ID.
-     * </ul>
-     */
-    inline local_ordinal_type getWeightRegionSize(local_ordinal_type i)
-    {
-        return weights_nodesList(i, weights_size);
-    }
-
-    /**
-     * @brief Return the global ID of the node n1 of 
-     * a given weighted region.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the weighted region ID,
-     *  <li> n1: the ID of the node on the current BC.
-     * </ul>
-     */
-    inline local_ordinal_type getNode(local_ordinal_type i, local_ordinal_type n1)
-    {
-        return weights_nodesList(i, weights_nodes + n1);
-    }
-
-    /**
-     * @brief Return whether the DOF j is weighted for 
-     * a given weighted region.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the weighted region ID,
-     *  <li> j: the index of the DOF (0-3 if thermomechanical problems).
-     * </ul> 
-     */
-    inline bool getWeightDof(local_ordinal_type i, local_ordinal_type j)
-    {
-        return (weights_values_list(i, weights_dofs + j) == scalar(1.));
-    }
-
-    /**
-     * @brief Return the value of weight for the
-     * DOF for a given weighted region.
-     * 
-     * Arguments:
-     * <ul>
-     *  <li> i: the weighted region ID,
-     *  <li> j: the index of the DOF (0-3 if thermomechanical problems).
-     * </ul> 
-     */
-    inline scalar getWeightValue(local_ordinal_type i, local_ordinal_type j)
-    {
-        return weights_values_list(i, weights_values + j);
-    }
-};
-
-/**
- * @brief WeightsList constructor
- *
- * This constructor allocates 2 Kokkos::View which store all the required information related to each weighted region, including:
- * <ul>
- *  <li> all the weighted nodes,
- *  <li> all the values of the weights.
- * </ul>
- *
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> map: an RCP to a Map object,
- *  <li> elementsList: an RCP to an ElementList object.
- * </ul>
- */
-template <typename scalar>
-WeightsList<scalar>::WeightsList(Problem &pbl, Teuchos::RCP<Map> map, Teuchos::RCP<ElementsList> elementsList)
-{
-    typedef EnsembleTraits<scalar> ET;
-    const int ensemble_size = ET::size;
-
-    local_ordinal_type numDPN = map->numPrimalDPN;
-
-    weights_number = pbl.Weights.size();
-    local_ordinal_type maxNumNodesPerWeight = 0;
-
-    std::vector<std::vector<global_ordinal_type>> WeightNodes = {};
-
-    for (auto i = 0; i < weights_number; ++i)
-    {
-        std::vector<global_ordinal_type> tmpMyWeightNodes = {};
-        std::vector<global_ordinal_type> myWeightNodes = {};
-
-        for (auto j = 0; j < pbl.Weights[i]->nodes.size(); ++j)
-            tmpMyWeightNodes.push_back(pbl.Weights[i]->nodes[j]->row);
-
-        std::sort(tmpMyWeightNodes.begin(), tmpMyWeightNodes.end());
-
-        if (tmpMyWeightNodes.size() >= 1)
-            myWeightNodes.push_back(tmpMyWeightNodes[0]);
-
-        for (auto ii = 1; ii < tmpMyWeightNodes.size(); ++ii)
-            if (tmpMyWeightNodes[ii] != tmpMyWeightNodes[ii - 1])
-                myWeightNodes.push_back(tmpMyWeightNodes[ii]);
-
-        WeightNodes.push_back(myWeightNodes);
-        if (maxNumNodesPerWeight < myWeightNodes.size())
-            maxNumNodesPerWeight = myWeightNodes.size();
-    }
-
-    weights_size = 0;
-    weights_nodes = 1;
-    weights_nodesList = Kokkos::View<int **, Kokkos::LayoutRight>("R", weights_number, weights_nodes + maxNumNodesPerWeight);
-
-    for (auto i = 0; i < weights_number; ++i)
-    {
-        weights_nodesList(i, weights_size) = WeightNodes[i].size();
-
-        for (auto j = 0; j < WeightNodes[i].size(); ++j)
-            weights_nodesList(i, weights_nodes + j) = WeightNodes[i][j];
-    }
-
-    weights_dofs = 0;
-    weights_values = weights_dofs + numDPN;
-    weights_values_list = Kokkos::View<scalar **, Kokkos::LayoutRight>("R", weights_number, 2 * numDPN);
-    for (auto i = 0; i < weights_number; ++i)
-    {
-        for (auto j = 0; j < numDPN; ++j)
-            if (pbl.Weights[i]->which_dof[j])
-                weights_values_list(i, weights_dofs + j) = 1;
-            else
-                weights_values_list(i, weights_dofs + j) = 0;
-
-        for (int s = 0; s < ensemble_size; ++s)
-        {
-            ET::coeff(weights_values_list(i, weights_values + 0), s) = pbl.Weights[i]->x_values[s];
-            ET::coeff(weights_values_list(i, weights_values + 1), s) = pbl.Weights[i]->y_values[s];
-            ET::coeff(weights_values_list(i, weights_values + 2), s) = pbl.Weights[i]->z_values[s];
-            if (numDPN == 4)
-                ET::coeff(weights_values_list(i, weights_values + 3), s) = pbl.Weights[i]->T_values[s];
-        }
-    }
-}
-}; // namespace katoptron
-
-#endif //KATOPTRON_WEIGHTSLIST_H
\ No newline at end of file
diff --git a/katoptron/src/katoptron.h b/katoptron/src/katoptron.h
deleted file mode 100644
index b59bf330..00000000
--- a/katoptron/src/katoptron.h
+++ /dev/null
@@ -1,37 +0,0 @@
-// global header of the "katoptron" module
-
-#ifndef KATOPTRON_H
-#define KATOPTRON_H
-
-#if defined(WIN32)
-#ifdef tlnos_EXPORTS
-#define KATOPTRON_API __declspec(dllexport)
-#else
-#define KATOPTRON_API __declspec(dllimport)
-#endif
-#else
-#define KATOPTRON_API
-#endif
-
-#include "tbox.h"
-
-/**
- * @brief katoptron namespace
- */
-
-namespace katoptron
-{
-class Problem;
-class Solver;
-class Dirichlet;
-class Neumann;
-class Medium;
-class Contact;
-class Source;
-class RandomVariable;
-class Weight;
-}; // namespace katoptron
-
-class DisplayHook;
-
-#endif //KATOPTRON_H
diff --git a/katoptron/src/tMatrix.h b/katoptron/src/tMatrix.h
deleted file mode 100644
index 33365523..00000000
--- a/katoptron/src/tMatrix.h
+++ /dev/null
@@ -1,223 +0,0 @@
-#ifndef KATOPTRON_TMATRIX_H
-#define KATOPTRON_TMATRIX_H
-
-#include "Stokhos_Tpetra_MP_Vector.hpp"
-
-template <class T, int rows>
-class tVector;
-
-template <class T, int rows, int cols>
-class tMatrix
-{
-public:
-    tMatrix()
-    {
-        for (auto i = 0; i < rows; ++i)
-            for (auto j = 0; j < cols; ++j)
-                data[i * cols + j] = (T)0;
-    }
-    T &operator()(int row, int col);
-    tMatrix operator+(tMatrix rhs);
-    void operator+=(tMatrix rhs);
-    T det();       //only for 3x3
-    tMatrix inv(); //only for 3x3
-    tMatrix operator*(tMatrix rhs);
-    tVector<T, rows> operator*(tVector<T, cols> rhs);
-    template <class U>
-    tVector<typename Sacado::Promote<T, U>::type, rows> operator*(tVector<U, cols> rhs);
-    void print();
-    void clean()
-    {
-        for (auto i = 0; i < rows; ++i)
-            for (auto j = 0; j < cols; ++j)
-                data[i * cols + j] = (T)0;
-    }
-
-private:
-    T data[rows * cols];
-    int numRows = rows;
-    int numCols = cols;
-    int getRows() { return numRows; }
-    int getCols() { return numCols; }
-};
-
-template <class T, int rows, int cols>
-template <class U>
-tVector<typename Sacado::Promote<T, U>::type, rows> tMatrix<T, rows, cols>::operator*(tVector<U, cols> rhs)
-{
-    tVector<typename Sacado::Promote<T, U>::type, rows> results;
-    for (auto i = 0; i < rows; ++i)
-        for (auto j = 0; j < cols; ++j)
-            results(i) += data[i * cols + j] * rhs(j);
-    return results;
-}
-
-template <class T, int rows, int cols>
-tMatrix<T, rows, cols> tMatrix<T, rows, cols>::operator+(tMatrix<T, rows, cols> rhs)
-{
-    tMatrix<T, rows, cols> results;
-    for (auto i = 0; i < rows; ++i)
-        for (auto j = 0; j < cols; ++j)
-            results(i, j) = data[i * cols + j] + rhs(i, j);
-    return results;
-}
-
-template <class T, int rows, int cols>
-void tMatrix<T, rows, cols>::operator+=(tMatrix<T, rows, cols> rhs)
-{
-    for (auto i = 0; i < rows; ++i)
-        for (auto j = 0; j < cols; ++j)
-            data[i * cols + j] += rhs(i, j);
-}
-
-template <class T, int rows, int cols>
-tMatrix<T, rows, cols> tMatrix<T, rows, cols>::operator*(tMatrix<T, rows, cols> rhs)
-{
-    tMatrix<T, rows, cols> results;
-    for (auto i = 0; i < rows; ++i)
-        for (auto j = 0; j < rows; ++j)
-            for (auto k = 0; k < rows; ++k)
-                results(i, j) += data[i * cols + k] * rhs(k, j);
-    return results;
-}
-
-template <class T, int rows, int cols>
-T &tMatrix<T, rows, cols>::operator()(int row, int col)
-{
-    return data[row * cols + col];
-}
-
-template <class T, int rows, int cols>
-T tMatrix<T, rows, cols>::det()
-{
-    return data[0 * cols + 0] * (data[1 * cols + 1] * data[2 * cols + 2] - data[1 * cols + 2] * data[2 * cols + 1]) - data[0 * cols + 1] * (data[1 * cols + 0] * data[2 * cols + 2] - data[1 * cols + 2] * data[2 * cols + 0]) + data[0 * cols + 2] * (data[1 * cols + 0] * data[2 * cols + 1] - data[1 * cols + 1] * data[2 * cols + 0]);
-}
-
-template <class T, int rows, int cols>
-tMatrix<T, rows, cols> tMatrix<T, rows, cols>::inv()
-{
-    tMatrix<T, rows, cols> results;
-    T det = this->det();
-    results(0, 0) = (1. / det) * (data[1 * cols + 1] * data[2 * cols + 2] - data[1 * cols + 2] * data[2 * cols + 1]);
-    results(0, 1) = (1. / det) * (data[0 * cols + 2] * data[2 * cols + 1] - data[2 * cols + 2] * data[0 * cols + 1]);
-    results(0, 2) = (1. / det) * (data[0 * cols + 1] * data[1 * cols + 2] - data[1 * cols + 1] * data[0 * cols + 2]);
-
-    results(1, 0) = (1. / det) * (data[1 * cols + 2] * data[2 * cols + 0] - data[2 * cols + 2] * data[1 * cols + 0]);
-    results(1, 1) = (1. / det) * (data[0 * cols + 0] * data[2 * cols + 2] - data[2 * cols + 0] * data[0 * cols + 2]);
-    results(1, 2) = (1. / det) * (data[0 * cols + 2] * data[1 * cols + 0] - data[1 * cols + 2] * data[0 * cols + 0]);
-
-    results(2, 0) = (1. / det) * (data[1 * cols + 0] * data[2 * cols + 1] - data[2 * cols + 0] * data[1 * cols + 1]);
-    results(2, 1) = (1. / det) * (data[0 * cols + 1] * data[2 * cols + 0] - data[2 * cols + 1] * data[0 * cols + 0]);
-    results(2, 2) = (1. / det) * (data[0 * cols + 0] * data[1 * cols + 1] - data[1 * cols + 0] * data[0 * cols + 1]);
-    return results;
-}
-
-template <class T, int rows, int cols>
-tVector<T, rows> tMatrix<T, rows, cols>::operator*(tVector<T, cols> rhs)
-{
-    tVector<T, rows> results;
-    for (auto i = 0; i < rows; ++i)
-        for (auto j = 0; j < cols; ++j)
-            results(i) += data[i * cols + j] * rhs(j);
-    return results;
-}
-
-template <class T, int rows, int cols>
-void tMatrix<T, rows, cols>::print()
-{
-    for (auto i = 0; i < rows; ++i)
-    {
-        for (auto j = 0; j < cols; ++j)
-            std::cout << data[i * cols + j] << " ";
-        std::cout << std::endl;
-    }
-}
-
-template <class T, int rows>
-class tVector
-{
-public:
-    tVector()
-    {
-        for (auto i = 0; i < rows; ++i)
-            data[i] = (T)0;
-    }
-    T &operator()(int row);
-    tVector operator+(tVector rhs);
-    void operator+=(tVector rhs);
-    T dotproduct(tVector rhs);
-    template <class U>
-    typename Sacado::Promote<T, U>::type dotproduct(tVector<U, rows> rhs);
-    tMatrix<T, rows, rows> ddotproduct(tVector rhs);
-    void print();
-    void clean()
-    {
-        for (auto i = 0; i < rows; ++i)
-            data[i] = (T)0;
-    }
-
-private:
-    T data[rows];
-    int numRows = rows;
-    int getRows() { return numRows; }
-};
-
-template <class T, int rows>
-T &tVector<T, rows>::operator()(int row)
-{
-    return data[row];
-}
-
-template <class T, int rows>
-tVector<T, rows> tVector<T, rows>::operator+(tVector<T, rows> rhs)
-{
-    tVector<T, rows> results;
-    for (auto i = 0; i < rows; ++i)
-        results(i) = data[i] + rhs(i);
-    return results;
-}
-
-template <class T, int rows>
-void tVector<T, rows>::operator+=(tVector<T, rows> rhs)
-{
-    for (auto i = 0; i < rows; ++i)
-        data[i] += rhs(i);
-}
-
-template <class T, int rows>
-T tVector<T, rows>::dotproduct(tVector<T, rows> rhs)
-{
-    T result = (T)0;
-    for (auto i = 0; i < rows; ++i)
-        result += data[i] * rhs(i);
-    return result;
-}
-
-template <class T, int rows>
-template <class U>
-typename Sacado::Promote<T, U>::type tVector<T, rows>::dotproduct(tVector<U, rows> rhs)
-{
-    typename Sacado::Promote<T, U>::type result = 0;
-    for (auto i = 0; i < rows; ++i)
-        result += data[i] * rhs(i);
-    return result;
-}
-
-template <class T, int rows>
-tMatrix<T, rows, rows> tVector<T, rows>::ddotproduct(tVector<T, rows> rhs)
-{
-    tMatrix<T, rows, rows> results;
-    for (auto i = 0; i < rows; ++i)
-        for (auto j = 0; j < rows; ++j)
-            results(i, j) = data[i] * rhs(j);
-    return results;
-}
-
-template <class T, int rows>
-void tVector<T, rows>::print()
-{
-    for (auto i = 0; i < rows; ++i)
-        std::cout << data[i] << std::endl;
-}
-
-#endif //KATOPTRON_TMATRIX_H
diff --git a/katoptron/src/wContact.cpp b/katoptron/src/wContact.cpp
deleted file mode 100644
index b6b78817..00000000
--- a/katoptron/src/wContact.cpp
+++ /dev/null
@@ -1,443 +0,0 @@
-#include "wContact.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <algorithm>
-
-#include <fstream>
-#include <sstream>
-#include <string>
-
-using namespace katoptron;
-using namespace tbox;
-
-bool searchCode(char const *code, char const *line)
-{
-    return !(strncmp(code, line, strlen(code)));
-}
-
-bool searchCode(char const *code, std::string const line)
-{
-    return !(strncmp(code, line.c_str(), strlen(code)));
-}
-
-bool searchCode(std::string const code, std::string const line)
-{
-    return line.find(code) != std::string::npos;
-}
-
-void readGMSH(std::string const &file_name, std::string const &name, std::vector<int> &nodes)
-{
-    std::cout << file_name << ": start " << std::endl;
-    std::vector<int> nodes_tmp;
-    std::ifstream infile(file_name);
-    int tag = 0;
-    std::string line;
-    bool reading_physical_names = false;
-    while (std::getline(infile, line))
-    {
-        if (reading_physical_names)
-        {
-            if (searchCode("$EndPhysicalNames", line))
-                break;
-
-            if (searchCode(name, line))
-            {
-                std::istringstream line_stream(line);
-                int dim = 0, no = 0;
-                line_stream >> dim >> no;
-                tag = no;
-                std::cout << "tag: " << tag << std::endl;
-                reading_physical_names = false;
-            }
-        }
-        else if (searchCode("$Elements", line))
-        {
-            std::getline(infile, line);
-            std::istringstream line_stream(line);
-            // read number of elements
-            int nbelm = 0;
-
-            line_stream >> nbelm;
-
-            for (int i = 0; i < nbelm; ++i)
-            {
-                std::getline(infile, line);
-                std::istringstream line_stream(line);
-
-                // read number, type and nb of tags
-                int no = 0, type = 0, nbtags = 0;
-                int tmp;
-
-                line_stream >> no >> type >> nbtags;
-                // read/create/link tags
-
-                bool do_I_continue = true;
-                for (int j = 0; j < nbtags; ++j)
-                {
-                    line_stream >> tmp;
-                    if (tag == tmp)
-                        do_I_continue = false;
-                }
-                if (do_I_continue)
-                    continue;
-
-                int n = 0;
-                // read nodes
-                if (type == static_cast<int>(ElType::HEX8)) // 8-node hexa
-                    n = 8;
-                else if (type == static_cast<int>(ElType::QUAD4)) // 4-node quad
-                    n = 4;
-                else if (type == static_cast<int>(ElType::TETRA4)) // 4-node tetra
-                    n = 4;
-                else if (type == static_cast<int>(ElType::LINE2)) // 2-node line
-                    n = 2;
-                else if (type == static_cast<int>(ElType::POINT1)) // 1-node point
-                    n = 1;
-                else if (type == static_cast<int>(ElType::TRI3)) // 3-node triangle
-                    n = 3;
-                else
-                {
-                    continue;
-                }
-                int nn;
-                for (int j = 0; j < n; ++j)
-                {
-                    line_stream >> nn;
-                    nodes_tmp.push_back(nn - 1);
-                }
-            }
-        }
-        else if (searchCode("$EndElements", line))
-        {
-            std::cout << "nodes_tmp.size(): " << nodes_tmp.size() << std::endl;
-            if (nodes_tmp.size() > 0)
-            {
-                std::sort(nodes_tmp.begin(), nodes_tmp.end());
-
-                nodes.push_back(nodes_tmp[0]);
-
-                for (auto i = 1; i < nodes_tmp.size(); ++i)
-                    if (nodes_tmp[i] != nodes_tmp[i - 1])
-                        nodes.push_back(nodes_tmp[i]);
-            }
-            std::cout << "nodes.size(): " << nodes.size() << std::endl;
-            break;
-        }
-        else if (searchCode("$PhysicalNames", line))
-        {
-            reading_physical_names = true;
-        }
-    }
-}
-
-/**
- * @brief Contact constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> no: the ID of the slave surface of the msh,
- *  <li> _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
- *  <li> _slave_normal: the slave normal,
- *  <li> dg: the initial displacement along the slave normal.
- * </ul>
- */
-Contact::Contact(katoptron::Problem &pbl, int no, std::string _Contact_name, Eigen::Vector3d _slave_normal, double _dg) : Group(pbl.msh, no), Contact_name(_Contact_name), slave_normal(_slave_normal), dg(_dg)
-{
-    dg_vector = {dg};
-    for (auto e : tag->elems)
-        slave_elems.push_back(e);
-}
-
-/**
- * @brief Contact constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the slave surface of the msh,
- *  <li> _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
- *  <li> _slave_normal: the slave normal,
- *  <li> dg: the initial displacement along the slave normal.
- * </ul>
- */
-Contact::Contact(katoptron::Problem &pbl, std::string const &name, std::string _Contact_name, Eigen::Vector3d _slave_normal, double _dg) : Group(pbl.msh, name), Contact_name(_Contact_name), slave_normal(_slave_normal), dg(_dg)
-{
-    dg_vector = {dg};
-    for (auto e : tag->elems)
-        slave_elems.push_back(e);
-}
-
-/**
- * @brief Contact constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> no: the ID of the slave surface of the msh,
- *  <li> _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
- *  <li> _slave_normal: the slave normal,
- *  <li> _dg: the initial displacement along the slave normal (value can be different for the different samples).
- * </ul>
- */
-Contact::Contact(katoptron::Problem &pbl, int no, std::string _Contact_name, Eigen::Vector3d _slave_normal, std::vector<double> _dg) : Group(pbl.msh, no), Contact_name(_Contact_name), slave_normal(_slave_normal)
-{
-    dg = _dg[0];
-    dg_vector = _dg;
-
-    for (auto e : tag->elems)
-        slave_elems.push_back(e);
-}
-
-/**
- * @brief Contact constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the slave surface of the msh,
- *  <li> _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
- *  <li> _slave_normal: the slave normal,
- *  <li> _dg: the initial displacement along the slave normal (value can be different for the different samples).
- * </ul>
- */
-Contact::Contact(katoptron::Problem &pbl, std::string const &name, std::string _Contact_name, Eigen::Vector3d _slave_normal, std::vector<double> _dg) : Group(pbl.msh, name), Contact_name(_Contact_name), slave_normal(_slave_normal)
-{
-    dg = _dg[0];
-    dg_vector = _dg;
-
-    for (auto e : tag->elems)
-        slave_elems.push_back(e);
-}
-
-/**
- * @brief Set the master surface
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> no: the ID of the master surface of the msh,
- *  <li> _master_normal: the master normal.
- * </ul>
- */
-void Contact::setMaster(katoptron::Problem &pbl, int no, Eigen::Vector3d _master_normal)
-{
-    master_normal = _master_normal;
-    Group master_group(pbl.msh, no);
-    Tag *master_tag = master_group.tag;
-    for (auto e : master_tag->elems)
-        master_elems.push_back(e);
-
-    pbl.Contacts.push_back(this);
-}
-
-/**
- * @brief Set the master surface
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the master surface of the msh,
- *  <li> _master_normal: the master normal.
- * </ul>
- */
-void Contact::setMaster(katoptron::Problem &pbl, std::string const &name, Eigen::Vector3d _master_normal)
-{
-    master_normal = _master_normal;
-    Group master_group(pbl.msh, name);
-    Tag *master_tag = master_group.tag;
-    for (auto e : master_tag->elems)
-        master_elems.push_back(e);
-
-    pbl.Contacts.push_back(this);
-}
-
-/**
- * @brief Set slave boundary (optional)
- * 
- * Arguments:
- * <ul>
- *  <li> file_name: name of the msh file to use,
- *  <li> name: the name of the slave boundary of the msh.
- * </ul>
- */
-void Contact::setSlaveBoundary(std::string const &file_name, std::string const &name)
-{
-    readGMSH(file_name, name, slave_boundary_nodes);
-
-    std::cout << "slave_boundary_nodes.size(): " << slave_boundary_nodes.size() << std::endl;
-}
-
-/**
- * @brief Set master boundary (optional)
- * 
- * Arguments:
- * <ul>
- *  <li> file_name: name of the msh file to use,
- *  <li> name: the name of the master boundary of the msh.
- * </ul>
- */
-void Contact::setMasterBoundary(std::string const &file_name, std::string const &name)
-{
-    readGMSH(file_name, name, master_boundary_nodes);
-
-    std::cout << "master_boundary_nodes.size(): " << master_boundary_nodes.size() << std::endl;
-}
-
-/**
- * @brief Set slave Dirichlet boundary (optional)
- * 
- * Arguments:
- * <ul>
- *  <li> file_name: name of the msh file to use,
- *  <li> name: the name of the slave Dirichlet boundary of the msh.
- * </ul>
- */
-void Contact::setSlaveDirichlet(std::string const &file_name, std::string const &name)
-{
-    readGMSH(file_name, name, slave_dirichlet_nodes);
-
-    std::cout << "slave_dirichlet_nodes.size(): " << slave_dirichlet_nodes.size() << std::endl;
-    for (auto i = 0; i < slave_dirichlet_nodes.size(); ++i)
-        std::cout << slave_dirichlet_nodes[i] << std::endl;
-}
-
-/**
- * @brief Set master Dirichlet boundary (optional)
- * 
- * Arguments:
- * <ul>
- *  <li> file_name: name of the msh file to use,
- *  <li> name: the name of the master Dirichlet boundary of the msh.
- * </ul>
- */
-void Contact::setMasterDirichlet(std::string const &file_name, std::string const &name)
-{
-    readGMSH(file_name, name, master_dirichlet_nodes);
-
-    std::cout << "master_dirichlet_nodes.size(): " << master_dirichlet_nodes.size() << std::endl;
-}
-
-/**
- * @brief Activate all the Lagrange multipliers associated to 
- * the current contact interface.
- */
-void Contact::setInitialyClosed()
-{
-    initial_closed = true;
-}
-
-/**
- * @brief Inactivate all the Lagrange multipliers associated to 
- * the current contact interface.
- */
-void Contact::setInitialyOpen()
-{
-    initial_closed = false;
-}
-
-/**
- * @brief Specify to the active set strategy that this interface
- * should not be updated. 
- */
-void Contact::setNoUpdate()
-{
-    no_Update = true;
-}
-
-/**
- * @brief Specify to the active set strategy that this interface
- * should be updated if required.
- */
-void Contact::setUpdate()
-{
-    no_Update = false;
-}
-
-/**
- * @brief Replace this contact interface by a mesh tying interface. 
- */
-void Contact::setMeshTying()
-{
-    mesh_tying = true;
-    sticking = true;
-    no_Update = true;
-}
-
-/**
- * @brief Specify that this interface is sticking. 
- */
-void Contact::setSticking()
-{
-    sticking = true;
-}
-
-/**
- * @brief Specify that this interface is not sticking (default). 
- */
-void Contact::setNoSticking()
-{
-    sticking = false;
-}
-
-/**
- * @brief Specify that the discretization of the Lagrange multipliers 
- * use standard shape functions (default).
- */
-void Contact::setStandardShapeFunctions()
-{
-    standard_shape_functions = true;
-}
-
-/**
- * @brief Specify that the discretization of the Lagrange multipliers 
- * use dual shape functions.
- */
-void Contact::setDualShapeFunctions()
-{
-    standard_shape_functions = false;
-}
-
-/**
- * @brief Specify that this interface is a Signorini contact.
- */
-void Contact::setSignoriniContact()
-{
-    is_Signorini = true;
-}
-
-/**
- * @brief Specify that this interface is a not Signorini contact (default).
- */
-void Contact::setTwoBodyContact()
-{
-    is_Signorini = false;
-}
-
-/**
- * @brief Specify a list of slave nodes where the Lagrange multipliers should
- * be initially closed.
- */
-void Contact::setInitiallyClosedNodes(std::vector<double> _initially_closed_nodes)
-{
-    for (auto i = 0; i < _initially_closed_nodes.size(); ++i)
-        initially_closed_nodes.push_back(((int)_initially_closed_nodes[i]));
-}
-
-/**
- * @brief Specify the scale.
- */
-void Contact::setScale(double a)
-{
-    scale = a;
-}
-
-/**
- * @brief Display information.
- */
-void Contact::write(std::ostream &out) const
-{
-    out << "Contact interface named ''" << Contact_name << "'' on " << *tag << "\n";
-}
\ No newline at end of file
diff --git a/katoptron/src/wContact.h b/katoptron/src/wContact.h
deleted file mode 100644
index 97f2ee3e..00000000
--- a/katoptron/src/wContact.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef KATOPTRON_CONTACT_H
-#define KATOPTRON_CONTACT_H
-
-#include "katoptron.h"
-#include "wGroup.h"
-#include <vector>
-#include <string>
-#include <Eigen/Dense>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to specify in Python the different contact interfaces.
- */
-class KATOPTRON_API Contact : public tbox::Group
-{
-public:
-    std::string Contact_name;
-    std::vector<tbox::Element *> slave_elems;
-    std::vector<tbox::Element *> master_elems;
-
-    std::vector<int> slave_boundary_nodes;
-    std::vector<int> master_boundary_nodes;
-
-    std::vector<int> slave_dirichlet_nodes;
-    std::vector<int> master_dirichlet_nodes;
-
-    std::vector<int> initially_closed_nodes = {};
-
-    bool initial_closed = true;
-    bool standard_shape_functions = true;
-    bool is_Signorini = false;
-    bool no_Update = false;
-    bool sticking = false;
-    bool mesh_tying = false;
-
-    int nb_Lagrange_multipliers = 1;
-
-    Eigen::Vector3d slave_normal;
-    Eigen::Vector3d master_normal;
-
-    double dg;
-
-    double scale = 1.;
-
-    std::vector<double> dg_vector;
-
-    Contact(Problem &pbl, int no, std::string _Contact_name, Eigen::Vector3d _slave_normal, double dg = 0.);
-    Contact(Problem &pbl, std::string const &name, std::string _Contact_name, Eigen::Vector3d _slave_normal, double dg = 0.);
-    Contact(Problem &pbl, int no, std::string _Contact_name, Eigen::Vector3d _slave_normal, std::vector<double> _dg);
-    Contact(Problem &pbl, std::string const &name, std::string _Contact_name, Eigen::Vector3d _slave_normal, std::vector<double> _dg);
-
-    void setMaster(katoptron::Problem &pbl, int no, Eigen::Vector3d _master_normal);
-    void setMaster(katoptron::Problem &pbl, std::string const &name, Eigen::Vector3d _master_normal);
-
-    void setSlaveBoundary(std::string const &file_name, std::string const &name);
-    void setMasterBoundary(std::string const &file_name, std::string const &name);
-
-    void setSlaveDirichlet(std::string const &file_name, std::string const &name);
-    void setMasterDirichlet(std::string const &file_name, std::string const &name);
-
-    void setInitialyClosed();
-    void setInitialyOpen();
-    void setNoUpdate();
-    void setUpdate();
-    void setMeshTying();
-    void setSticking();
-    void setNoSticking();
-    void setStandardShapeFunctions();
-    void setDualShapeFunctions();
-    void setSignoriniContact();
-    void setTwoBodyContact();
-    void setInitiallyClosedNodes(std::vector<double> _initially_closed_nodes);
-    void setScale(double a);
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_CONTACT_H
diff --git a/katoptron/src/wDirichlet.cpp b/katoptron/src/wDirichlet.cpp
deleted file mode 100644
index a9d6c984..00000000
--- a/katoptron/src/wDirichlet.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-#include "wDirichlet.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <algorithm>
-using namespace katoptron;
-using namespace tbox;
-
-/**
- * @brief Dirichlet constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the constrained surface of the msh,
- *  <li> _BC_name: the name of new Dirichlet BC (does not have to be a nametag of the msh),
- *  <li> _which_dof: a vector that specify which degree(s) of freedom are constrained,
- *  <li> _values: a vector that specify the values of the constrained degree(s) of freedom 
- *  if they are constrained (the length of _which_dof and _values must be the same),
- *  <li> ensemble_size: the ensemble size.
- * </ul>
- */
-Dirichlet::Dirichlet(katoptron::Problem &pbl,
-                     std::string const &name,
-                     std::string const &_BC_name,
-                     std::vector<int> _which_dof,
-                     std::vector<double> _values,
-                     size_t ensemble_size) : Group(pbl.msh, name), BC_name(_BC_name), which_dof(_which_dof), values(_values)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    x_values = {};
-    y_values = {};
-    z_values = {};
-    T_values = {};
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        x_values.push_back(values[0]);
-        y_values.push_back(values[1]);
-        z_values.push_back(values[2]);
-        T_values.push_back(values[3]);
-    }
-    pbl.duBCs.push_back(this);
-}
-
-/**
- * @brief Dirichlet constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the constrained surface of the msh,
- *  <li> _BC_name: the name of new Dirichlet BC (does not have to be a nametag of the msh),
- *  <li> x: a int which specify whether the x displacement component is constrained,
- *  <li> v_x: value of the constrained degree of freedom,
- *  <li> y: a int which specify whether the y displacement component is constrained,
- *  <li> v_y: value of the constrained degree of freedom,
- *  <li> z: a int which specify whether the z displacement component is constrained,
- *  <li> v_z: value of the constrained degree of freedom,
- *  <li> T: a int which specify whether the temperature is constrained,
- *  <li> v_T: value of the constrained degree of freedom,
- *  <li> ensemble_size: the ensemble size.
- * </ul>
- */
-Dirichlet::Dirichlet(Problem &pbl,
-                     std::string const &name,
-                     std::string const &_BC_name,
-                     int x,
-                     double v_x,
-                     int y,
-                     double v_y,
-                     int z,
-                     double v_z,
-                     int T,
-                     double v_T,
-                     size_t ensemble_size) : Group(pbl.msh, name), BC_name(_BC_name)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    which_dof = {};
-    which_dof.push_back(x);
-    which_dof.push_back(y);
-    which_dof.push_back(z);
-    which_dof.push_back(T);
-
-    values = {};
-    values.push_back(v_x);
-    values.push_back(v_y);
-    values.push_back(v_z);
-    values.push_back(v_T);
-
-    x_values = {};
-    y_values = {};
-    z_values = {};
-    T_values = {};
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        x_values.push_back(v_x);
-        y_values.push_back(v_y);
-        z_values.push_back(v_z);
-        T_values.push_back(v_T);
-    }
-
-    pbl.duBCs.push_back(this);
-}
-
-/**
- * @brief Dirichlet constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the constrained surface of the msh,
- *  <li> _BC_name: the name of new Dirichlet BC (does not have to be a nametag of the msh),
- *  <li> x: a int which specify whether the x displacement component is constrained,
- *  <li> v_x: vector of values of the constrained degree of freedom (one per sample),
- *  <li> y: a int which specify whether the y displacement component is constrained,
- *  <li> v_y: vector of values of the constrained degree of freedom (one per sample),
- *  <li> z: a int which specify whether the z displacement component is constrained,
- *  <li> v_z: vector of values of the constrained degree of freedom (one per sample),
- *  <li> T: a int which specify whether the temperature is constrained,
- *  <li> v_T: vector of values of the constrained degree of freedom (one per sample).
- * </ul>
- */
-Dirichlet::Dirichlet(Problem &pbl,
-                     std::string const &name,
-                     std::string const &_BC_name,
-                     int x,
-                     std::vector<double> v_x,
-                     int y,
-                     std::vector<double> v_y,
-                     int z,
-                     std::vector<double> v_z,
-                     int T,
-                     std::vector<double> v_T) : Group(pbl.msh, name), BC_name(_BC_name)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    std::cout << v_x[0] << std::endl;
-
-    which_dof = {};
-    which_dof.push_back(x);
-    which_dof.push_back(y);
-    which_dof.push_back(z);
-    which_dof.push_back(T);
-
-    values = {};
-    values.push_back(v_x[0]);
-    values.push_back(v_y[0]);
-    values.push_back(v_z[0]);
-    values.push_back(v_T[0]);
-
-    x_values = {};
-    y_values = {};
-    z_values = {};
-    T_values = {};
-    for (auto i = 0; i < v_x.size(); ++i)
-        x_values.push_back(v_x[i]);
-
-    for (auto i = 0; i < v_y.size(); ++i)
-        y_values.push_back(v_y[i]);
-
-    for (auto i = 0; i < v_z.size(); ++i)
-        z_values.push_back(v_z[i]);
-
-    for (auto i = 0; i < v_T.size(); ++i)
-        T_values.push_back(v_T[i]);
-
-    pbl.duBCs.push_back(this);
-}
-
-/**
- * @brief Display information.
- */
-void Dirichlet::write(std::ostream &out) const
-{
-    out << "Dirichlet BC on " << *tag << "\n";
-    out << "With fixed values of (";
-    for (auto i = 0; i < (which_dof.size() - 1); ++i)
-    {
-        if (which_dof[i] == 1)
-            out << values[i] << ", ";
-        else
-            out << "-, ";
-    }
-
-    if (which_dof[which_dof.size() - 1] == 1)
-        out << values[which_dof.size() - 1] << ")\n";
-    else
-        out << "-)\n";
-
-    out << "a '-' represents an unconstrained dof.\n";
-}
diff --git a/katoptron/src/wDirichlet.h b/katoptron/src/wDirichlet.h
deleted file mode 100644
index bf20ad02..00000000
--- a/katoptron/src/wDirichlet.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef KATOPTRON_DIRICHLET_H
-#define KATOPTRON_DIRICHLET_H
-
-#include "katoptron.h"
-#include "wGroup.h"
-#include <vector>
-#include <string>
-
-#include <Teuchos_RCP.hpp>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to specify in Python the different Dirichlet boundary conditions 
- * (both mechanical and thermal).
- */
-class KATOPTRON_API Dirichlet : public tbox::Group
-{
-public:
-    std::string const &BC_name;
-    std::vector<tbox::Node *> nodes;
-    std::vector<int> which_dof;
-    std::vector<double> values;
-
-    std::vector<double> x_values;
-    std::vector<double> y_values;
-    std::vector<double> z_values;
-    std::vector<double> T_values;
-
-    Dirichlet(Problem &pbl,
-              std::string const &name,
-              std::string const &_BC_name,
-              std::vector<int> _which_dof,
-              std::vector<double> _values,
-              size_t ensemble_size = 1);
-
-    Dirichlet(Problem &pbl,
-              std::string const &name,
-              std::string const &_BC_name,
-              int x,
-              double v_x,
-              int y,
-              double v_y,
-              int z,
-              double v_z,
-              int T = 0,
-              double v_T = 0,
-              size_t ensemble_size = 1);
-
-    Dirichlet(Problem &pbl,
-              std::string const &name,
-              std::string const &_BC_name,
-              int x,
-              std::vector<double> v_x,
-              int y,
-              std::vector<double> v_y,
-              int z,
-              std::vector<double> v_z,
-              int T = 0,
-              std::vector<double> v_T = {});
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_DIRICHLET_H
diff --git a/katoptron/src/wDisplayHook.cpp b/katoptron/src/wDisplayHook.cpp
deleted file mode 100644
index 40ed5399..00000000
--- a/katoptron/src/wDisplayHook.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "wDisplayHook.h"
-
-DisplayHook::DisplayHook()
-{
-}
-
-void DisplayHook::display(int nt, double t, std::vector<double> &u)
-{
-    std::cout << "DisplayHook::display()\n";
-}
-
-void DisplayHook::display(int nt,
-                          double t,
-                          std::vector<double> &u_x,
-                          std::vector<double> &u_y,
-                          std::vector<double> &u_z,
-                          std::vector<double> &u_norm)
-{
-    std::cout << "DisplayHook::display()\n";
-}
-
-void DisplayHook::refresh()
-{
-    std::cout << "DisplayHook::refresh()\n";
-}
diff --git a/katoptron/src/wDisplayHook.h b/katoptron/src/wDisplayHook.h
deleted file mode 100644
index 623d746b..00000000
--- a/katoptron/src/wDisplayHook.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef KATOPTRON_DISPLAYHOOK_H
-#define KATOPTRON_DISPLAYHOOK_H
-
-#include "katoptron.h"
-#include "wObject.h"
-#include <vector>
-
-class KATOPTRON_API DisplayHook : public fwk::wObject
-{
-public:
-    DisplayHook();
-    virtual void display(int nt, double t, std::vector<double> &u);
-    virtual void display(int nt,
-                         double t,
-                         std::vector<double> &u_x,
-                         std::vector<double> &u_y,
-                         std::vector<double> &u_z,
-                         std::vector<double> &u_norm);
-    virtual void refresh();
-};
-
-#endif //KATOPTRON_DISPLAYHOOK_H
diff --git a/katoptron/src/wMedium.cpp b/katoptron/src/wMedium.cpp
deleted file mode 100644
index e39d8fd3..00000000
--- a/katoptron/src/wMedium.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-#include "wMedium.h"
-#include "wProblem.h"
-#include "wTag.h"
-using namespace katoptron;
-using namespace tbox;
-
-/**
- * @brief Medium constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> no: the ID of the body of the msh,
- *  <li> _medium_name: the name of new medium (does not have to be a nametag of the msh),
- *  <li> _E: a vector of values of the Young modulus \f$E\f$ (one per sample),
- *  <li> _nu: a vector of values of the Poisson coefficients \f$\nu\f$ (one per sample),
- *  <li> _k: the heat conductivity \f$k\f$ equal to zero by default,
- *  <li> _beta: the coefficient of thermal expansion \f$\beta\f$ equal to zero by default.
- * </ul>
- */
-Medium::Medium(Problem &pbl,
-               int no,
-               std::string _medium_name,
-               std::vector<double> _E,
-               std::vector<double> _nu,
-               std::vector<double> _k,
-               std::vector<double> _beta) : Group(pbl.msh, no), medium_name(_medium_name)
-{
-    E = _E[0];
-    nu = _nu[0];
-    k = _k[0];
-    beta = _beta[0];
-    E_vector = _E;
-    nu_vector = _nu;
-    k_vector = _k;
-    beta_vector = _beta;
-    pbl.media.push_back(this);
-}
-
-/**
- * @brief Medium constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the body of the msh,
- *  <li> _medium_name: the name of new medium (does not have to be a nametag of the msh),
- *  <li> _E: a vector of values of the Young modulus \f$E\f$ (one per sample),
- *  <li> _nu: a vector of values of the Poisson coefficients \f$\nu\f$ (one per sample),
- *  <li> _k: the heat conductivity \f$k\f$ equal to zero by default,
- *  <li> _beta: the coefficient of thermal expansion \f$\beta\f$ equal to zero by default.
- * </ul>
- */
-Medium::Medium(Problem &pbl,
-               std::string const &name,
-               std::string _medium_name,
-               std::vector<double> _E,
-               std::vector<double> _nu,
-               std::vector<double> _k,
-               std::vector<double> _beta) : Group(pbl.msh, name), medium_name(_medium_name)
-{
-    E = _E[0];
-    nu = _nu[0];
-    k = _k[0];
-    beta = _beta[0];
-    E_vector = _E;
-    nu_vector = _nu;
-    k_vector = _k;
-    beta_vector = _beta;
-    pbl.media.push_back(this);
-}
-
-/**
- * @brief Medium constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> no: the ID of the body of the msh,
- *  <li> _medium_name: the name of new medium (does not have to be a nametag of the msh),
- *  <li> _E: a vector of values of the Young modulus \f$E\f$ (one per sample),
- *  <li> _nu: a vector of values of the Poisson coefficients \f$\nu\f$ (one per sample),
- *  <li> _k: a vector of values of the heat conductivity \f$k\f$ (one per sample),
- *  <li> _beta: a vector of values of the coefficient of thermal expansion \f$\beta\f$ (one per sample).
- * </ul>
- */
-Medium::Medium(Problem &pbl,
-               int no,
-               std::string _medium_name,
-               std::vector<double> _E,
-               std::vector<double> _nu,
-               double _k,
-               double _beta) : Group(pbl.msh, no), medium_name(_medium_name)
-{
-    E = _E[0];
-    nu = _nu[0];
-    k = _k;
-    beta = _beta;
-    E_vector = _E;
-    nu_vector = _nu;
-    std::vector<double> vect_k(E_vector.size(), _k);
-    k_vector = vect_k;
-    std::vector<double> vect_beta(E_vector.size(), _beta);
-    beta_vector = vect_beta;
-    pbl.media.push_back(this);
-}
-
-/**
- * @brief Medium constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the body of the msh,
- *  <li> _medium_name: the name of new medium (does not have to be a nametag of the msh),
- *  <li> _E: a vector of values of the Young modulus \f$E\f$ (one per sample),
- *  <li> _nu: a vector of values of the Poisson coefficients \f$\nu\f$ (one per sample),
- *  <li> _k: a vector of values of the heat conductivity \f$k\f$ (one per sample),
- *  <li> _beta: a vector of values of the coefficient of thermal expansion \f$\beta\f$ (one per sample).
- * </ul>
- */
-Medium::Medium(Problem &pbl,
-               std::string const &name,
-               std::string _medium_name,
-               std::vector<double> _E,
-               std::vector<double> _nu,
-               double _k,
-               double _beta) : Group(pbl.msh, name), medium_name(_medium_name)
-{
-    E = _E[0];
-    nu = _nu[0];
-    k = _k;
-    beta = _beta;
-    E_vector = _E;
-    nu_vector = _nu;
-    std::vector<double> vect_k(E_vector.size(), _k);
-    k_vector = vect_k;
-    std::vector<double> vect_beta(E_vector.size(), _beta);
-    beta_vector = vect_beta;
-    pbl.media.push_back(this);
-}
-
-/**
- * @brief Display information.
- */
-void Medium::write(std::ostream &out) const
-{
-    out << "Medium " << medium_name << " on " << *tag << " with E=" << this->E
-        << ", nu=" << this->nu << ", k=" << this->k << " and beta=" << this->beta;
-}
diff --git a/katoptron/src/wMedium.h b/katoptron/src/wMedium.h
deleted file mode 100644
index ec41f8fa..00000000
--- a/katoptron/src/wMedium.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef KATOPTRON_MEDIUM_H
-#define KATOPTRON_MEDIUM_H
-
-#include "katoptron.h"
-#include "wGroup.h"
-#include <string>
-#include <vector>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to specify in Python the different media.
- */
-class KATOPTRON_API Medium : public tbox::Group
-{
-public:
-    std::string medium_name;
-    double E;
-    double nu;
-    double k;
-    double beta;
-    std::vector<double> E_vector;
-    std::vector<double> nu_vector;
-    std::vector<double> k_vector;
-    std::vector<double> beta_vector;
-
-    Medium(Problem &pbl,
-           int no,
-           std::string _medium_name,
-           std::vector<double> _E,
-           std::vector<double> _nu,
-           double _k = 0.,
-           double _beta = 0.);
-
-    Medium(Problem &pbl,
-           std::string const &name,
-           std::string _medium_name,
-           std::vector<double> _E,
-           std::vector<double> _nu,
-           double _k = 0.,
-           double _beta = 0.);
-
-    Medium(Problem &pbl,
-           int no,
-           std::string _medium_name,
-           std::vector<double> _E,
-           std::vector<double> _nu,
-           std::vector<double> _k,
-           std::vector<double> _beta);
-
-    Medium(Problem &pbl,
-           std::string const &name,
-           std::string _medium_name,
-           std::vector<double> _E,
-           std::vector<double> _nu,
-           std::vector<double> _k,
-           std::vector<double> _beta);
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_MEDIUM_H
diff --git a/katoptron/src/wNeumann.cpp b/katoptron/src/wNeumann.cpp
deleted file mode 100644
index 7673235a..00000000
--- a/katoptron/src/wNeumann.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-#include "wNeumann.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <algorithm>
-using namespace katoptron;
-using namespace tbox;
-
-/**
- * @brief Neumann constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the loaded surface of the msh,
- *  <li> _BC_name: the name of new Neumann BC (does not have to be a nametag of the msh),
- *  <li> _which_dof: a vector that specify which degree(s) of freedom are loaded,
- *  <li> _values: a vector that specify the values of the loads.
- * </ul>
- */
-Neumann::Neumann(katoptron::Problem &pbl,
-                 std::string const &name,
-                 std::string const &_BC_name,
-                 std::vector<int> _which_dof,
-                 std::vector<double> _values) : Group(pbl.msh, name), BC_name(_BC_name), which_dof(_which_dof), values(_values)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    pbl.nBCs.push_back(this);
-}
-
-/**
- * @brief Neumann constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the loaded surface of the msh,
- *  <li> _BC_name: the name of new Neumann BC (does not have to be a nametag of the msh),
- *  <li> x: a int which specify whether the x displacement component is loaded,
- *  <li> v_x: value of the load,
- *  <li> y: a int which specify whether the y displacement component is loaded,
- *  <li> v_y: value of the load,
- *  <li> z: a int which specify whether the z displacement component is loaded,
- *  <li> v_z: value of the load,
- *  <li> T: a int which specify whether the temperature is loaded,
- *  <li> v_T: value of the load,
- *  <li> ensemble_size: the ensemble size.
- * </ul>
- */
-Neumann::Neumann(Problem &pbl,
-                 std::string const &name,
-                 std::string const &_BC_name,
-                 int x,
-                 std::vector<double> v_x,
-                 int y,
-                 std::vector<double> v_y,
-                 int z,
-                 std::vector<double> v_z,
-                 int T,
-                 std::vector<double> v_T,
-                 size_t ensemble_size) : Group(pbl.msh, name), BC_name(_BC_name)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    which_dof = {};
-    which_dof.push_back(x);
-    which_dof.push_back(y);
-    which_dof.push_back(z);
-    which_dof.push_back(T);
-
-    values = {};
-    for (auto i = 0; i < ensemble_size; ++i)
-        values.push_back(v_x[i]);
-    for (auto i = 0; i < ensemble_size; ++i)
-        values.push_back(v_y[i]);
-    for (auto i = 0; i < ensemble_size; ++i)
-        values.push_back(v_z[i]);
-    for (auto i = 0; i < ensemble_size; ++i)
-        values.push_back(v_T[i]);
-
-    pbl.nBCs.push_back(this);
-}
-
-/**
- * @brief Display information.
- */
-void Neumann::write(std::ostream &out) const
-{
-    out << "Neumann BC on " << *tag << "\n";
-    out << "With applied load of (";
-    for (auto i = 0; i < (which_dof.size() - 1); ++i)
-    {
-        if (which_dof[i] == 1)
-            out << values[i] << ", ";
-        else
-            out << "0, ";
-    }
-
-    if (which_dof[which_dof.size() - 1] == 1)
-        out << values[which_dof.size() - 1] << ")\n";
-    else
-        out << "0)\n";
-}
diff --git a/katoptron/src/wNeumann.h b/katoptron/src/wNeumann.h
deleted file mode 100644
index 7b7af949..00000000
--- a/katoptron/src/wNeumann.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef KATOPTRON_NEUMANN_H
-#define KATOPTRON_NEUMANN_H
-
-#include "katoptron.h"
-#include "wGroup.h"
-#include <vector>
-#include <string>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to specify in Python the different Neumann boundary conditions 
- * (both mechanical and thermal).
- */
-class KATOPTRON_API Neumann : public tbox::Group
-{
-public:
-    std::string const &BC_name;
-    std::vector<tbox::Node *> nodes;
-    std::vector<int> which_dof;
-    std::vector<double> values;
-
-    Neumann(Problem &pbl,
-            std::string const &name,
-            std::string const &_BC_name,
-            std::vector<int> _which_dof,
-            std::vector<double> _values);
-
-    Neumann(Problem &pbl,
-            std::string const &name,
-            std::string const &_BC_name,
-            int x,
-            std::vector<double> v_x,
-            int y,
-            std::vector<double> v_y,
-            int z,
-            std::vector<double> v_z,
-            int T,
-            std::vector<double> v_T,
-            size_t ensemble_size);
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_NEUMANN_H
diff --git a/katoptron/src/wProblem.cpp b/katoptron/src/wProblem.cpp
deleted file mode 100644
index 420d7731..00000000
--- a/katoptron/src/wProblem.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "wProblem.h"
-#include "wMshData.h"
-
-#include "wDirichlet.h"
-#include "wNeumann.h"
-#include "wSource.h"
-using namespace katoptron;
-using namespace tbox;
-
-/**
- * @brief Problem constructor
- * 
- * Arguments:
- * <ul>
- *  <li> _msh: a shared pointer to the mesh,
- *  <li> _comm: the used MPI communicator.
- * </ul>
- */
-Problem::Problem(std::shared_ptr<MshData> _msh, MPI_Comm _comm) : msh(_msh), comm(_comm)
-{
-}
-
-/**
- * @brief Add a random variable.
- */
-void Problem::add(std::shared_ptr<RandomVariable> r)
-{
-    RandomVariables.push_back(r);
-}
-
-/**
- * @brief Display information.
- */
-void Problem::write(std::ostream &out) const
-{
-    out << "katoptron::Problem:\n";
-    out << " + mesh:\n";
-    out << *msh; //wMshData.h
-
-    out << " + dBC:\n";
-    for (auto b : duBCs)
-        out << *b << '\n';
-    out << " + nBC:\n";
-    for (auto b : nBCs)
-        out << *b << '\n';
-    out << " + Source:\n";
-    for (auto b : Sources)
-        out << *b << '\n';
-}
\ No newline at end of file
diff --git a/katoptron/src/wProblem.h b/katoptron/src/wProblem.h
deleted file mode 100644
index 9fd940b3..00000000
--- a/katoptron/src/wProblem.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef KATOPTRON_PROBLEM_H
-#define KATOPTRON_PROBLEM_H
-
-#include "katoptron.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#include <memory>
-
-#include <mpi.h>
-
-namespace katoptron
-{
-
-/**
- * @brief Class which is used to specify in Python the thermomechanical to solve.
- */
-class KATOPTRON_API Problem : public fwk::wSharedObject
-{
-public:
-    std::shared_ptr<tbox::MshData> msh; ///< Mesh structure
-
-    MPI_Comm comm;
-#ifndef SWIG
-    std::vector<Medium *> media = {};    ///< Materials
-    std::vector<Dirichlet *> duBCs = {}; ///< mechanical Dirichlet boundary conditions
-    std::vector<Neumann *> nBCs = {};
-    std::vector<Contact *> Contacts = {};
-    std::vector<Source *> Sources = {};
-    std::vector<std::shared_ptr<RandomVariable>> RandomVariables = {};
-    std::vector<Weight *> Weights = {};
-#endif
-    Problem(std::shared_ptr<tbox::MshData> _msh, MPI_Comm _comm);
-    ~Problem() { std::cout << "~Problem()\n"; }
-
-    void add(std::shared_ptr<RandomVariable> r);
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_PROBLEM_H
diff --git a/katoptron/src/wRandomField.h b/katoptron/src/wRandomField.h
deleted file mode 100644
index cfa85ee2..00000000
--- a/katoptron/src/wRandomField.h
+++ /dev/null
@@ -1,177 +0,0 @@
-#ifndef KATOPTRON_RANDOMFIELD_H
-#define KATOPTRON_RANDOMFIELD_H
-
-#include "Stokhos_Sacado_Kokkos_MP_Vector.hpp"
-#include "Stokhos_KL_ExponentialRandomField.hpp"
-#include "EnsembleTraits.h"
-#include "wSpectralApproach.h"
-
-template <typename Scalar, typename Device>
-class RandomField
-{
-public:
-    typedef Kokkos::View<Scalar *, Kokkos::LayoutLeft, Device> RandomVariableView;
-    typedef typename RandomVariableView::size_type size_type;
-
-    typedef typename Teuchos::ScalarTraits<Scalar>::coordinateType MeshScalar;
-    typedef Stokhos::KL::ExponentialRandomField<MeshScalar, Device> rf_type;
-    typedef Teuchos::ScalarTraits<MeshScalar> MST;
-    typedef typename EnsembleTraits<Scalar>::value_type mean_type;
-
-    bool isRandom = false;
-    bool isExpRandom = true;
-    rf_type m_rf;            // Exponential random field
-    RandomVariableView m_rv; // KL random variables
-    mean_type g;             // Mean
-    mean_type delta;         // Dispersion level
-    mean_type a, b;
-    int num_rv;
-    int ndim = 3; // Dimension of the physical domain
-    Teuchos::RCP<SpectralApproach<Scalar, Device>> sa;
-
-    RandomField(Teuchos::RCP<Teuchos::ParameterList> randomParams, Kokkos::View<Scalar *, Kokkos::LayoutLeft, Device> _m_rv)
-    {
-        isRandom = randomParams->get("Is random", false);
-        if (isRandom)
-        {
-            g = randomParams->get("Mean", MST::one());
-            delta = randomParams->get("Dispersion level", MST::zero());
-            a = log(g / (sqrt(1 + delta * delta)));
-            b = sqrt(log(1 + delta * delta));
-
-            isExpRandom = randomParams->get("Is exp", true);
-            if (isExpRandom)
-            {
-                const MeshScalar BeginX = randomParams->get("Begin X", MST::zero());
-                const MeshScalar BeginY = randomParams->get("Begin Y", MST::zero());
-                const MeshScalar BeginZ = randomParams->get("Begin Z", MST::zero());
-                const MeshScalar EndX = randomParams->get("End X", MST::one());
-                const MeshScalar EndY = randomParams->get("End Y", MST::one());
-                const MeshScalar EndZ = randomParams->get("End Z", MST::one());
-                num_rv = randomParams->get("Number random variables", 0);
-                const MeshScalar correlation_lengthX = randomParams->get("Correlation length X", MST::one());
-                const MeshScalar correlation_lengthY = randomParams->get("Correlation length Y", MST::one());
-                const MeshScalar correlation_lengthZ = randomParams->get("Correlation length Z", MST::one());
-
-                if (correlation_lengthZ == 0)
-                    ndim = 2;
-
-                const int num_KL_X = randomParams->get("Number of KL Terms X", 0);
-                const int num_KL_Y = randomParams->get("Number of KL Terms Y", 0);
-                const int num_KL_Z = randomParams->get("Number of KL Terms Z", 0);
-
-                mean_type eps = randomParams->get("Bound Perturbation Size", 1e-6);
-                mean_type tol = randomParams->get("Nonlinear Solver Tolerance", 1e-10);
-                int max_it = randomParams->get("Maximum Nonlinear Solver Iterations", 100);
-
-                Teuchos::ParameterList solverParams;
-                solverParams.set("Number of KL Terms", num_rv);
-                solverParams.set("Mean", MST::zero());
-                solverParams.set("Standard Deviation", MST::one());
-                solverParams.set("Bound Perturbation Size", eps);
-                solverParams.set("Nonlinear Solver Tolerance", tol);
-                solverParams.set("Maximum Nonlinear Solver Iterations", max_it);
-                Teuchos::Array<MeshScalar> domain_upper(ndim, 1.0),
-                    domain_lower(ndim, 0.0),
-                    correlation_lengths(ndim, correlation_lengthX);
-                Teuchos::Array<int> num_KL_per_dim(ndim, 1.0);
-
-                domain_upper[0] = EndX;
-                domain_upper[1] = EndY;
-                if (ndim == 3)
-                    domain_upper[2] = EndZ;
-
-                domain_lower[0] = BeginX;
-                domain_lower[1] = BeginY;
-                if (ndim == 3)
-                    domain_lower[2] = BeginZ;
-
-                correlation_lengths[0] = correlation_lengthX;
-                correlation_lengths[1] = correlation_lengthY;
-                if (ndim == 3)
-                    correlation_lengths[2] = correlation_lengthZ;
-
-                if (num_KL_X != 0 && num_KL_Y != 0 && num_KL_Z != 0)
-                {
-                    num_KL_per_dim[0] = num_KL_X;
-                    num_KL_per_dim[1] = num_KL_Y;
-                    if (ndim == 3)
-                        num_KL_per_dim[2] = num_KL_Z;
-                    solverParams.set("Number of KL Terms per dimension", num_KL_per_dim);
-                }
-
-                solverParams.set("Domain Upper Bounds", domain_upper);
-                solverParams.set("Domain Lower Bounds", domain_lower);
-                solverParams.set("Correlation Lengths", correlation_lengths);
-
-                m_rf = rf_type(solverParams);
-                m_rv = _m_rv;
-
-                std::ofstream outputfile_solverParams;
-                std::ofstream outputfile_m_rv;
-
-                outputfile_solverParams.open("RandomFieldParams.txt");
-                outputfile_m_rv.open("RandomVariables.txt");
-
-                outputfile_solverParams << solverParams << std::endl;
-
-                for (size_t i = 0; i < m_rv.extent(0); ++i)
-                    outputfile_m_rv << m_rv(i) << std::endl;
-
-                outputfile_solverParams.close();
-                outputfile_m_rv.close();
-            }
-            else
-            {
-                MeshScalar a = randomParams->get("Correlation length", MST::one());
-                MeshScalar r = randomParams->get("Wavenumber cutoff", MST::one());
-                size_t muw = randomParams->get("Wavenumber discretization points", 40);
-                bool gauss = randomParams->get("Gaussian field", true);
-
-                unsigned long seed_Z = randomParams->get("Z seed", 42);
-                unsigned long seed_Phi = randomParams->get("Phi seed", 186);
-
-                size_t wait_Z = randomParams->get("Number Z of previously drawn samples", 0);
-                size_t wait_Phi = randomParams->get("Number Phi of previously drawn samples", 0);
-
-                Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> Z;
-                Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> Phi;
-
-                Z = construct_Z<Scalar, Device>(muw, seed_Z, wait_Z);
-                Phi = construct_Phi<Scalar, Device>(muw, seed_Phi, wait_Phi);
-
-                sa = Teuchos::rcp(new SpectralApproach<Scalar, Device>(Z, Phi, a, r, muw, gauss));
-            }
-        }
-    }
-
-    KOKKOS_INLINE_FUNCTION
-    Scalar operator()(const MeshScalar x, const MeshScalar y, const MeshScalar z) const
-    {
-        if (isRandom)
-        {
-            Scalar Xi = 0.;
-            if (isExpRandom)
-            {
-                if (ndim == 3)
-                {
-                    const MeshScalar point[3] = {x, y, z};
-                    Xi = m_rf.evaluate(point, m_rv);
-                }
-                else
-                {
-                    const MeshScalar point[2] = {x, y};
-                    Xi = m_rf.evaluate(point, m_rv);
-                }
-            }
-            else
-                Xi = sa->operator()(x, y);
-
-            return exp(a + b * Xi);
-        }
-        else
-            return Teuchos::ScalarTraits<Scalar>::one();
-    }
-};
-
-#endif //KATOPTRON_RANDOMFIELD_H
diff --git a/katoptron/src/wRandomVariable.h b/katoptron/src/wRandomVariable.h
deleted file mode 100644
index 5c73febd..00000000
--- a/katoptron/src/wRandomVariable.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef KATOPTRON_RANDOMVARIABLE_H
-#define KATOPTRON_RANDOMVARIABLE_H
-
-#include "katoptron.h"
-#include <vector>
-
-namespace katoptron
-{
-
-/**
- * @brief Class containing the realisations of the random Gaussian variables.
-  */
-class KATOPTRON_API RandomVariable
-{
-public:
-    std::vector<double> values;
-    size_t sizex;
-    size_t sizey;
-    double *arr;
-
-    RandomVariable(std::vector<double> const &_values) : values(_values){};
-};
-} // namespace katoptron
-
-#endif //KATOPTRON_RANDOMVARIABLE_H
diff --git a/katoptron/src/wSource.cpp b/katoptron/src/wSource.cpp
deleted file mode 100644
index 7b2d35b9..00000000
--- a/katoptron/src/wSource.cpp
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "wSource.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <algorithm>
-using namespace katoptron;
-using namespace tbox;
-
-/**
- * @brief Source constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the constrained surface of the msh,
- *  <li> _Source_name: the name of new Source (does not have to be a nametag of the msh),
- *  <li> v_T: value of the volumetric heat source.
- * </ul>
- */
-Source::Source(Problem &pbl,
-               std::string const &name,
-               std::string const &_Source_name,
-               double v_T) : Group(pbl.msh, name), Source_name(_Source_name), value(v_T)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    pbl.Sources.push_back(this);
-}
-
-/**
- * @brief Display information.
- */
-void Source::write(std::ostream &out) const
-{
-    out << "Source on " << *tag << "\n";
-    out << "Value " << value << "\n";
-}
diff --git a/katoptron/src/wSource.h b/katoptron/src/wSource.h
deleted file mode 100644
index 11f74950..00000000
--- a/katoptron/src/wSource.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef KATOPTRON_SOURCE_H
-#define KATOPTRON_SOURCE_H
-
-#include "katoptron.h"
-#include "wGroup.h"
-#include <vector>
-#include <string>
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to specify in Python the different volumetric heat sources.
- */
-class KATOPTRON_API Source : public tbox::Group
-{
-public:
-    std::string const &Source_name;
-    std::vector<tbox::Node *> nodes;
-    double value;
-
-    Source(Problem &pbl,
-           std::string const &name,
-           std::string const &_Source_name,
-           double v_T);
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_SOURCE_H
diff --git a/katoptron/src/wSpectralApproach.h b/katoptron/src/wSpectralApproach.h
deleted file mode 100644
index d52e70be..00000000
--- a/katoptron/src/wSpectralApproach.h
+++ /dev/null
@@ -1,115 +0,0 @@
-#ifndef KATOPTRON_SPECTRALAPPROACH_H
-#define KATOPTRON_SPECTRALAPPROACH_H
-
-#include "EnsembleTraits.h"
-#include <cmath>
-#include <random>
-
-/**
- * @brief A function which computes a random matrix \f$\boldsymbol{Z}\f$ starting at a given seed.
- * 
- * This matrix is used to generate a random field based on the spectral approach
- */
-template <typename Scalar, typename Device>
-Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> construct_Z(size_t muw, unsigned long seed_Z, size_t wait = 0)
-{
-    Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> Z = Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device>("Z", muw, muw);
-
-    std::default_random_engine generator;
-    generator.seed(seed_Z);
-    std::uniform_real_distribution<double> distribution(0.0, 1.0);
-    // Redraw the data related to the previous samples to start at the good place
-    for (size_t i = 0; i < wait; ++i)
-        distribution(generator);
-
-    for (size_t ell = 0; ell < EnsembleTraits<Scalar>::size; ++ell)
-        for (size_t i = 0; i < muw; ++i)
-            for (size_t j = 0; j < muw; ++j)
-                EnsembleTraits<Scalar>::coeff(Z(i, j), ell) = sqrt(-log(distribution(generator)));
-
-    return Z;
-}
-
-/**
- * @brief A function which computes a random matrix \f$\boldsymbol{\Phi}\f$ starting at a given seed.
- * 
- * This matrix is used to generate a random field based on the spectral approach
- */
-template <typename Scalar, typename Device>
-Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> construct_Phi(size_t muw, unsigned long seed_Phi, size_t wait = 0)
-{
-    Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> Phi = Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device>("Phi", muw, muw);
-
-    std::default_random_engine generator;
-    generator.seed(seed_Phi);
-    std::uniform_real_distribution<double> distribution(0.0, 1.0);
-    // Redraw the data related to the previous samples to start at the good place
-    for (size_t i = 0; i < wait; ++i)
-        distribution(generator);
-
-    for (size_t ell = 0; ell < EnsembleTraits<Scalar>::size; ++ell)
-        for (size_t i = 0; i < muw; ++i)
-            for (size_t j = 0; j < muw; ++j)
-                EnsembleTraits<Scalar>::coeff(Phi(i, j), ell) = 2. * M_PI * distribution(generator);
-
-    return Phi;
-}
-
-/**
- * @brief A class that constructs realization(s) of Gaussian or exponential
- * scalar random field based on the spectral approach.
- */
-template <typename Scalar, typename Device>
-class SpectralApproach
-{
-public:
-    typedef typename Teuchos::ScalarTraits<Scalar>::coordinateType MeshScalar;
-
-    Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> Z;   // Z=sqrt(-log(rand(muw,muw)));
-    Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> Phi; // Phi=2*pi*rand(muw,muw);
-    Kokkos::View<MeshScalar *, Kokkos::LayoutLeft, Device> w;
-    Kokkos::View<MeshScalar *, Kokkos::LayoutLeft, Device> S;
-
-    MeshScalar a, r, Dw;
-    size_t muw;
-
-    SpectralApproach(Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> _Z,
-                     Kokkos::View<Scalar **, Kokkos::LayoutLeft, Device> _Phi,
-                     MeshScalar _a = 20, MeshScalar _r = 8, size_t _muw = 512,
-                     bool Gaussian = true) : Z(_Z), Phi(_Phi), a(_a), r(_r), muw(_muw)
-    {
-        MeshScalar wL = M_PI / a * r;
-        Dw = 2 * wL / muw;
-
-        w = Kokkos::View<MeshScalar *, Kokkos::LayoutLeft, Device>("w", muw);
-        S = Kokkos::View<MeshScalar *, Kokkos::LayoutLeft, Device>("w", muw);
-
-        for (size_t i = 0; i < muw; ++i)
-            w(i) = -wL + (i + 0.5) * Dw;
-
-        if (Gaussian)
-            for (size_t i = 0; i < muw; ++i)
-                S(i) = a / sqrt(2. * M_PI) * exp(-pow(a * w(i), 2) / 2.);
-        else
-            for (size_t i = 0; i < muw; ++i)
-                S(i) = a / (M_PI * (1 + pow(a, 2) * pow(w(i), 2)));
-    }
-
-    KOKKOS_INLINE_FUNCTION
-    Scalar operator()(const MeshScalar x, const MeshScalar y) const
-    {
-        //Teuchos::TimeMonitor LocalTimer (*Random_field_eval);
-
-        Scalar output = 0.;
-
-        for (size_t i = 0; i < muw; ++i)
-            for (size_t j = 0; j < muw; ++j)
-                output += sqrt(S(i) * S(j)) * Z(i, j) * cos(Phi(i, j) + w(i) * x + w(j) * y);
-
-        output *= sqrt(2) * Dw;
-
-        return output;
-    }
-};
-
-#endif //KATOPTRON_SPECTRALAPPROACH_H
diff --git a/katoptron/src/wVtkExport_KIM2CLEAN.cpp b/katoptron/src/wVtkExport_KIM2CLEAN.cpp
deleted file mode 100644
index dcba910b..00000000
--- a/katoptron/src/wVtkExport_KIM2CLEAN.cpp
+++ /dev/null
@@ -1,400 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wVtkExport_KIM2CLEAN.h"
-#include "wMshData.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include "wResults.h"
-
-#include <vtkVersion.h>
-#include <vtkSmartPointer.h>
-#include <vtkTetra.h>
-#include <vtkHexahedron.h>
-#include <vtkCellArray.h>
-#include <vtkXMLUnstructuredGridReader.h>
-
-#include <vtkXMLUnstructuredGridWriter.h>
-#include "vtkXMLPUnstructuredGridWriter.h"
-#include <vtkUnstructuredGrid.h>
-#include <vtkPointData.h>
-#include <vtkDoubleArray.h>
-#include "vtkCellArray.h"
-#include "vtkCellData.h"
-#include <vtkVertexGlyphFilter.h>
-
-#ifdef VTK_HAS_MPI
-#include <mpi.h>
-#include "vtkMPIController.h"
-#endif
-
-using namespace tbox;
-using namespace tboxVtk;
-
-VtkExport_KIM2CLEAN::VtkExport_KIM2CLEAN(std::shared_ptr<MshData> _msh) : msh(_msh)
-{
-}
-
-/**
- * @brief Save results defined at all the slave contact nodes ONLY.
- * Those datas are Lagrange multipliers and can only be scalar or vectors.
- */
-
-void VtkExport_KIM2CLEAN::save_MPI(std::string const &fname, Results const &r, std::vector<int> contactElementID, std::map<int, int> lagrange_LO_to_nodes_GO, std::map<int, int> nodes_GO_to_lagrange_LO) const
-{
-#ifdef VTK_HAS_MPI
-    vtkSmartPointer<vtkPoints> points =
-        vtkSmartPointer<vtkPoints>::New();
-
-    points->SetNumberOfPoints(lagrange_LO_to_nodes_GO.size());
-
-    for (int ii = 0; ii < lagrange_LO_to_nodes_GO.size(); ++ii)
-        points->InsertPoint(ii, msh->nodes[lagrange_LO_to_nodes_GO[ii]]->pos(0), msh->nodes[lagrange_LO_to_nodes_GO[ii]]->pos(1), msh->nodes[lagrange_LO_to_nodes_GO[ii]]->pos(2));
-
-    int CellArraySize = 0;
-    int numberOfCells = 0;
-    int numberOfElems = contactElementID.size();
-    bool isQuad = true;
-    for (int ii = 0; ii < numberOfElems; ++ii)
-    {
-        int elemID = contactElementID[ii];
-        if (msh->elems[elemID]->type() == ElType::QUAD4)
-        {
-            CellArraySize += ((msh->elems[elemID]->nodes.size()) + 1);
-            ++numberOfCells;
-        }
-        else if (msh->elems[elemID]->type() == ElType::TRI3)
-        {
-            CellArraySize += ((msh->elems[elemID]->nodes.size()) + 1);
-            ++numberOfCells;
-            isQuad = false;
-        }
-    }
-
-    vtkIdType *vtkCells = NULL;
-    vtkCells = new vtkIdType[CellArraySize];
-
-    int CellOffset = 0;
-    for (int ii = 0; ii < numberOfElems; ++ii)
-    {
-        int elemID = contactElementID[ii];
-        if (msh->elems[elemID]->type() == ElType::QUAD4)
-        {
-            vtkCells[CellOffset++] = msh->elems[elemID]->nodes.size();
-            for (int jj = 0; jj < msh->elems[elemID]->nodes.size(); ++jj)
-                vtkCells[CellOffset++] = nodes_GO_to_lagrange_LO[msh->elems[elemID]->nodes[jj]->row];
-        }
-        else if (msh->elems[elemID]->type() == ElType::TRI3)
-        {
-            vtkCells[CellOffset++] = msh->elems[elemID]->nodes.size();
-            for (int jj = 0; jj < msh->elems[elemID]->nodes.size(); ++jj)
-                vtkCells[CellOffset++] = nodes_GO_to_lagrange_LO[msh->elems[elemID]->nodes[jj]->row];
-        }
-    }
-    vtkSmartPointer<vtkIdTypeArray> Conn = vtkSmartPointer<vtkIdTypeArray>::New();
-    Conn->SetArray(vtkCells, CellArraySize, 1);
-
-    vtkSmartPointer<vtkCellArray> cellArray =
-        vtkSmartPointer<vtkCellArray>::New();
-    cellArray->SetCells(numberOfCells, Conn);
-
-    vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid =
-        vtkSmartPointer<vtkUnstructuredGrid>::New();
-    unstructuredGrid->SetPoints(points);
-    if (isQuad)
-        unstructuredGrid->SetCells(VTK_QUAD, cellArray);
-    else
-        unstructuredGrid->SetCells(VTK_TRIANGLE, cellArray);
-
-    for (auto &p : r.scalars_at_nodes)
-    {
-        vtkSmartPointer<vtkDoubleArray> scalar =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        scalar->SetNumberOfComponents(1);
-        scalar->SetNumberOfTuples(lagrange_LO_to_nodes_GO.size());
-        scalar->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < lagrange_LO_to_nodes_GO.size(); ++ii)
-        {
-            scalar->SetValue(ii, (*(p.second))[ii]);
-        }
-
-        unstructuredGrid->GetPointData()->AddArray(scalar);
-    }
-    for (auto &p : r.vectors_at_nodes)
-    {
-        vtkSmartPointer<vtkDoubleArray> vector =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        vector->SetNumberOfComponents(3);
-        vector->SetNumberOfTuples(lagrange_LO_to_nodes_GO.size());
-        vector->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < lagrange_LO_to_nodes_GO.size(); ++ii)
-        {
-            Eigen::Vector3d const &v = (*(p.second))[ii];
-            vector->SetTuple3(ii, v(0), v(1), v(2));
-        }
-
-        unstructuredGrid->GetPointData()->AddArray(vector);
-    }
-
-    vtkSmartPointer<vtkXMLUnstructuredGridWriter> writer =
-        vtkSmartPointer<vtkXMLUnstructuredGridWriter>::New();
-    writer->SetFileName(fname.c_str());
-    writer->SetInputData(unstructuredGrid);
-    writer->Write();
-
-    delete[] vtkCells;
-#endif
-}
-
-/**
- * @brief Save results defined at all nodes and 3D elements, those values can scalar, vector or tensors.
- */
-
-void VtkExport_KIM2CLEAN::save_MPI(std::string const &fname, Results const &r, std::map<int, int> nodesWO_LO_to_GO, std::map<int, int> nodesWO_GO_to_LO, std::map<int, int> elements_GO_to_LO) const
-{
-#ifdef VTK_HAS_MPI
-
-    int n_procs = 0, rank = 0;
-    MPI_Comm_size(MPI_COMM_WORLD, &n_procs);
-    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-    vtkMPIController *controller = vtkMPIController::New();
-    controller->Initialize(0, 0, 1);
-    controller->SetGlobalController(controller);
-
-    vtkSmartPointer<vtkPoints> points =
-        vtkSmartPointer<vtkPoints>::New();
-
-    points->SetNumberOfPoints(nodesWO_LO_to_GO.size());
-
-    for (int ii = 0; ii < nodesWO_LO_to_GO.size(); ++ii)
-        points->InsertPoint(ii, msh->nodes[nodesWO_LO_to_GO[ii]]->pos(0), msh->nodes[nodesWO_LO_to_GO[ii]]->pos(1), msh->nodes[nodesWO_LO_to_GO[ii]]->pos(2));
-
-    int CellArraySize = 0;
-    int numberOfCells = 0;
-    int numberOfElems = msh->elems.size();
-    bool isAHexahedron = true;
-
-    std::map<int, int> elems_GO_to_3D;
-    std::map<int, int> elems_3D_to_LO;
-
-    for (int ii = 0; ii < numberOfElems; ++ii)
-    {
-        if (msh->elems[ii]->type() == ElType::HEX8)
-        {
-            CellArraySize += ((msh->elems[ii]->nodes.size()) + 1);
-
-            elems_GO_to_3D[msh->elems[ii]->no - 1] = numberOfCells;
-            elems_3D_to_LO[numberOfCells] = ii;
-
-            ++numberOfCells;
-        }
-        else if (msh->elems[ii]->type() == ElType::TETRA4)
-        {
-            CellArraySize += ((msh->elems[ii]->nodes.size()) + 1);
-
-            elems_GO_to_3D[msh->elems[ii]->no - 1] = numberOfCells;
-            elems_3D_to_LO[numberOfCells] = ii;
-
-            ++numberOfCells;
-
-            isAHexahedron = false;
-        }
-    }
-
-    vtkIdType *vtkCells = NULL;
-    vtkCells = new vtkIdType[CellArraySize];
-
-    int CellOffset = 0;
-    for (int ii = 0; ii < numberOfElems; ++ii)
-    {
-        if (msh->elems[ii]->type() == ElType::HEX8)
-        {
-            vtkCells[CellOffset++] = msh->elems[ii]->nodes.size();
-            for (int jj = 0; jj < msh->elems[ii]->nodes.size(); ++jj)
-                vtkCells[CellOffset++] = nodesWO_GO_to_LO[msh->elems[ii]->nodes[jj]->row];
-        }
-        else if (msh->elems[ii]->type() == ElType::TETRA4)
-        {
-            vtkCells[CellOffset++] = msh->elems[ii]->nodes.size();
-            for (int jj = 0; jj < msh->elems[ii]->nodes.size(); ++jj)
-                vtkCells[CellOffset++] = nodesWO_GO_to_LO[msh->elems[ii]->nodes[jj]->row];
-        }
-    }
-    vtkSmartPointer<vtkIdTypeArray> Conn = vtkSmartPointer<vtkIdTypeArray>::New();
-    Conn->SetArray(vtkCells, CellArraySize, 1);
-
-    vtkSmartPointer<vtkCellArray> cellArray =
-        vtkSmartPointer<vtkCellArray>::New();
-
-    cellArray->SetCells(numberOfCells, Conn);
-
-    vtkSmartPointer<vtkUnstructuredGrid> unstructuredGrid =
-        vtkSmartPointer<vtkUnstructuredGrid>::New();
-    unstructuredGrid->SetPoints(points);
-    if (isAHexahedron)
-        unstructuredGrid->SetCells(VTK_HEXAHEDRON, cellArray);
-    else
-        unstructuredGrid->SetCells(VTK_TETRA, cellArray);
-
-    for (auto &p : r.scalars_at_nodes)
-    {
-        vtkSmartPointer<vtkDoubleArray> scalar =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        scalar->SetNumberOfComponents(1);
-        scalar->SetNumberOfTuples(nodesWO_LO_to_GO.size());
-        scalar->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < nodesWO_LO_to_GO.size(); ++ii)
-            scalar->SetValue(ii, (*(p.second))[ii]);
-
-        unstructuredGrid->GetPointData()->AddArray(scalar);
-    }
-    for (auto &p : r.vectors_at_nodes)
-    {
-        vtkSmartPointer<vtkDoubleArray> vector =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        vector->SetNumberOfComponents(3);
-        vector->SetNumberOfTuples(nodesWO_LO_to_GO.size());
-        vector->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < nodesWO_LO_to_GO.size(); ++ii)
-        {
-            Eigen::Vector3d const &v = (*(p.second))[ii];
-            vector->SetTuple3(ii, v(0), v(1), v(2));
-        }
-
-        unstructuredGrid->GetPointData()->AddArray(vector);
-    }
-    for (auto &p : r.tensors_at_nodes)
-    {
-        vtkSmartPointer<vtkDoubleArray> tensors =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        tensors->SetNumberOfComponents(9);
-        tensors->SetNumberOfTuples(nodesWO_LO_to_GO.size());
-        tensors->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < nodesWO_LO_to_GO.size(); ++ii)
-        {
-            Eigen::MatrixXd const &v = (*(p.second))[ii];
-            tensors->SetTuple9(ii, v(0, 0), v(0, 1), v(0, 2), v(1, 0), v(1, 1), v(1, 2), v(2, 0), v(2, 1), v(2, 2));
-        }
-
-        unstructuredGrid->GetPointData()->AddArray(tensors);
-    }
-
-    for (auto &p : r.scalars_at_elems)
-    {
-        vtkSmartPointer<vtkDoubleArray> scalar =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        scalar->SetNumberOfComponents(1);
-        scalar->SetNumberOfTuples(numberOfCells);
-        scalar->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < numberOfCells; ++ii)
-        {
-            scalar->SetValue(ii, (*(p.second))[elems_3D_to_LO[ii]]);
-        }
-
-        unstructuredGrid->GetCellData()->AddArray(scalar);
-    }
-    for (auto &p : r.vectors_at_elems)
-    {
-        vtkSmartPointer<vtkDoubleArray> vector =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        vector->SetNumberOfComponents(3);
-        vector->SetNumberOfTuples(numberOfCells);
-        vector->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < numberOfCells; ++ii)
-        {
-            Eigen::Vector3d const &v = (*(p.second))[ii];
-            vector->SetTuple3(ii, v(0), v(1), v(2));
-        }
-
-        unstructuredGrid->GetCellData()->AddArray(vector);
-    }
-    for (auto &p : r.tensors_at_elems)
-    {
-        vtkSmartPointer<vtkDoubleArray> tensors =
-            vtkSmartPointer<vtkDoubleArray>::New();
-
-        tensors->SetNumberOfComponents(9);
-        tensors->SetNumberOfTuples(numberOfCells);
-        tensors->SetName(p.first.c_str());
-
-        for (int ii = 0; ii < numberOfCells; ++ii)
-        {
-            Eigen::MatrixXd const &v = (*(p.second))[elems_3D_to_LO[ii]];
-            tensors->SetTuple9(ii, v(0, 0), v(0, 1), v(0, 2), v(1, 0), v(1, 1), v(1, 2), v(2, 0), v(2, 1), v(2, 2));
-        }
-
-        unstructuredGrid->GetCellData()->AddArray(tensors);
-    }
-
-    vtkSmartPointer<vtkIntArray> elem_proc_id = vtkSmartPointer<vtkIntArray>::New();
-    elem_proc_id->SetName("processor_id");
-    elem_proc_id->SetNumberOfComponents(1);
-    elem_proc_id->SetNumberOfTuples(numberOfCells);
-
-    for (int ii = 0; ii < numberOfCells; ++ii)
-        elem_proc_id->SetValue(ii, rank);
-
-    unstructuredGrid->GetCellData()->AddArray(elem_proc_id);
-
-    vtkSmartPointer<vtkIntArray> volume_id = vtkSmartPointer<vtkIntArray>::New();
-    volume_id->SetName("volume_id");
-    volume_id->SetNumberOfComponents(1);
-    volume_id->SetNumberOfTuples(numberOfElems);
-
-    for (auto &ptag : msh->ptags)
-    {
-        if (ptag.second->dim == 3)
-        {
-            for (int ii = 0; ii < ptag.second->elems.size(); ++ii)
-            {
-                volume_id->SetValue(elems_GO_to_3D[ptag.second->elems[ii]->no - 1], ptag.second->no);
-            }
-        }
-    }
-    unstructuredGrid->GetCellData()->AddArray(volume_id);
-
-    vtkSmartPointer<vtkXMLPUnstructuredGridWriter> writer =
-        vtkSmartPointer<vtkXMLPUnstructuredGridWriter>::New();
-
-    writer->SetGhostLevel(1);
-    writer->SetNumberOfPieces(n_procs);
-    writer->SetStartPiece(rank);
-    writer->SetEndPiece(rank);
-
-    writer->SetFileName(fname.c_str());
-    writer->SetInputData(unstructuredGrid);
-    writer->Write();
-
-    delete[] vtkCells;
-
-    controller->Finalize(1);
-#endif
-}
diff --git a/katoptron/src/wVtkExport_KIM2CLEAN.h b/katoptron/src/wVtkExport_KIM2CLEAN.h
deleted file mode 100644
index 8dbfcbe0..00000000
--- a/katoptron/src/wVtkExport_KIM2CLEAN.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WVTKEXPORT_KIM2CLEAN_H
-#define WVTKEXPORT_KIM2CLEAN_H
-
-#include "katoptron.h"
-#include <string>
-#include <memory>
-#include <vector>
-#include <map>
-
-#ifndef SWIG
-
-namespace tboxVtk
-{
-
-/**
- * @brief Save routines of Kim
- * @authors Kim Liegeois
- * @todo those functions have to be removed and wVtkExport has to be used instead.
- * However, there are currently two difficulties.
- *  - Each save_MPI function save on different meshes, a contact mesh has to be created and given to one of the
- *    VtkExport.
- *  - wVtkExport do not support MPI for now and some #ifdef VTK_HAS_MPI are currently unwanted in wVtkExport.
- *    At the end of the day, instead of using element[i]->no-1 it will be required to use a map to translate
- *    the global mesh id to local ones, those map will be trivial for one proc cases, and more complex when MPI
- *    is used. This will allow each proc to write only the data that it has computed. Moreover, Vtk MPI initialization
- *    and finalization will have to be used. Those can be done using some unwanted #ifdef VTK_HAS_MPI or using more
- *    elegant strategies or requiring VTK binaries that support MPI.
- */
-class KATOPTRON_API VtkExport_KIM2CLEAN
-{
-public:
-    std::shared_ptr<tbox::MshData> msh;
-
-    VtkExport_KIM2CLEAN(std::shared_ptr<tbox::MshData> _msh);
-    virtual ~VtkExport_KIM2CLEAN() {}
-
-    void save_MPI(std::string const &fname,
-                  tbox::Results const &r,
-                  std::map<int, int> nodeWO_LO_to_GO,
-                  std::map<int, int> nodeWO_GO_to_LO,
-                  std::map<int, int> elements_GO_to_LO) const;
-    void save_MPI(std::string const &fname,
-                  tbox::Results const &r,
-                  std::vector<int> contactElementID,
-                  std::map<int, int> nodeWO_LO_to_GO,
-                  std::map<int, int> nodeWO_GO_to_LO) const;
-};
-
-} // namespace tboxVtk
-
-#endif
-
-#endif //WVTKUTILS_KIMTOCLEAN_H
diff --git a/katoptron/src/wWeight.cpp b/katoptron/src/wWeight.cpp
deleted file mode 100644
index cd5ab844..00000000
--- a/katoptron/src/wWeight.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-#include "wWeight.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <algorithm>
-using namespace katoptron;
-
-/**
- * @brief Weight constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the weighted domain of the msh,
- *  <li> _which_dof: a vector that specify which degree(s) of freedom are weighted,
- *  <li> _values: a vector that specify the values of the weights
- *  (the length of _which_dof and _values must be the same),
- *  <li> ensemble_size: the ensemble size.
- * </ul>
- */
-Weight::Weight(katoptron::Problem &pbl,
-               std::string const &name,
-               std::vector<int> _which_dof,
-               std::vector<double> _values,
-               size_t ensemble_size) : Group(pbl.msh, name), which_dof(_which_dof), values(_values)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    x_values = {};
-    y_values = {};
-    z_values = {};
-    T_values = {};
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        x_values.push_back(values[0]);
-        y_values.push_back(values[1]);
-        z_values.push_back(values[2]);
-        T_values.push_back(values[3]);
-    }
-    pbl.Weights.push_back(this);
-}
-
-/**
- * @brief Weight constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the weighted domain of the msh,
- *  <li> x: a int which specify whether the x displacement component is weighted,
- *  <li> v_x: value of the weight,
- *  <li> y: a int which specify whether the y displacement component is weighted,
- *  <li> v_y: value of the weight,
- *  <li> z: a int which specify whether the z displacement component is weighted,
- *  <li> v_z: value of the weight,
- *  <li> T: a int which specify whether the temperature is constrained,
- *  <li> v_T: value of the weight,
- *  <li> ensemble_size: the ensemble size.
- * </ul>
- */
-Weight::Weight(Problem &pbl,
-               std::string const &name,
-               int x,
-               double v_x,
-               int y,
-               double v_y,
-               int z,
-               double v_z,
-               int T,
-               double v_T,
-               size_t ensemble_size) : Group(pbl.msh, name)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    which_dof = {};
-    which_dof.push_back(x);
-    which_dof.push_back(y);
-    which_dof.push_back(z);
-    which_dof.push_back(T);
-
-    values = {};
-    values.push_back(v_x);
-    values.push_back(v_y);
-    values.push_back(v_z);
-    values.push_back(v_T);
-
-    x_values = {};
-    y_values = {};
-    z_values = {};
-    T_values = {};
-    for (auto i = 0; i < ensemble_size; ++i)
-    {
-        x_values.push_back(v_x);
-        y_values.push_back(v_y);
-        z_values.push_back(v_z);
-        T_values.push_back(v_T);
-    }
-
-    pbl.Weights.push_back(this);
-}
-
-/**
- * @brief Weight constructor
- * 
- * Arguments:
- * <ul>
- *  <li> pbl: a Problem object,
- *  <li> name: the name of the weighted domain of the msh,
- *  <li> x: a int which specify whether the x displacement component is weighted,
- *  <li> v_x: vector of values of the weight (one per sample),
- *  <li> y: a int which specify whether the y displacement component is weighted,
- *  <li> v_y: vector of values of the weight (one per sample),
- *  <li> z: a int which specify whether the z displacement component is weighted,
- *  <li> v_z: vector of values of the weight (one per sample),
- *  <li> T: a int which specify whether the temperature is constrained,
- *  <li> v_T: vector of values of the weight (one per sample),
- *  <li> ensemble_size: the ensemble size.
- * </ul>
- */
-Weight::Weight(Problem &pbl,
-               std::string const &name,
-               int x,
-               std::vector<double> v_x,
-               int y,
-               std::vector<double> v_y,
-               int z,
-               std::vector<double> v_z,
-               int T,
-               std::vector<double> v_T) : Group(pbl.msh, name)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    which_dof = {};
-    which_dof.push_back(x);
-    which_dof.push_back(y);
-    which_dof.push_back(z);
-    which_dof.push_back(T);
-
-    values = {};
-    values.push_back(v_x[0]);
-    values.push_back(v_y[0]);
-    values.push_back(v_z[0]);
-    values.push_back(v_T[0]);
-
-    x_values = {};
-    y_values = {};
-    z_values = {};
-    T_values = {};
-    for (auto i = 0; i < v_x.size(); ++i)
-        x_values.push_back(v_x[i]);
-
-    for (auto i = 0; i < v_y.size(); ++i)
-        y_values.push_back(v_y[i]);
-
-    for (auto i = 0; i < v_z.size(); ++i)
-        z_values.push_back(v_z[i]);
-
-    for (auto i = 0; i < v_T.size(); ++i)
-        T_values.push_back(v_T[i]);
-
-    pbl.Weights.push_back(this);
-}
-
-/**
- * @brief Display information.
- */
-void Weight::write(std::ostream &out) const
-{
-    out << "Weights on " << *tag << "\n";
-}
diff --git a/katoptron/src/wWeight.h b/katoptron/src/wWeight.h
deleted file mode 100644
index b1009a84..00000000
--- a/katoptron/src/wWeight.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef KATOPTRON_WEIGHT_H
-#define KATOPTRON_WEIGHT_H
-
-#include "katoptron.h"
-#include "wGroup.h"
-#include <vector>
-#include <string>
-
-#include <Teuchos_RCP.hpp>
-using namespace tbox;
-
-namespace katoptron
-{
-
-/**
- * @brief Class used to specify in Python the different weights used for
- * the computation of the weighted residual of the GMRES.
- */
-class KATOPTRON_API Weight : public Group
-{
-public:
-    std::vector<Node *> nodes;
-    std::vector<int> which_dof;
-    std::vector<double> values;
-
-    std::vector<double> x_values;
-    std::vector<double> y_values;
-    std::vector<double> z_values;
-    std::vector<double> T_values;
-
-    Weight(Problem &pbl,
-           std::string const &name,
-           std::vector<int> _which_dof,
-           std::vector<double> _values,
-           size_t ensemble_size = 1);
-
-    Weight(Problem &pbl,
-           std::string const &name,
-           int x,
-           double v_x,
-           int y,
-           double v_y,
-           int z,
-           double v_z,
-           int T = 0,
-           double v_T = 0,
-           size_t ensemble_size = 1);
-
-    Weight(Problem &pbl,
-           std::string const &name,
-           int x,
-           std::vector<double> v_x,
-           int y,
-           std::vector<double> v_y,
-           int z,
-           std::vector<double> v_z,
-           int T = 0,
-           std::vector<double> v_T = {});
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-};
-
-} // namespace katoptron
-
-#endif //KATOPTRON_WEIGHT_H
diff --git a/katoptron/tests/1_cube.geo b/katoptron/tests/1_cube.geo
deleted file mode 100644
index 99d07474..00000000
--- a/katoptron/tests/1_cube.geo
+++ /dev/null
@@ -1,39 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-nC1 = 4;
-
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nC1}; Recombine;
-}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Point("Measure point 1") = {4};
-Physical Point("Measure point 2") = {1};
diff --git a/katoptron/tests/1_cube.py b/katoptron/tests/1_cube.py
deleted file mode 100644
index a5951ffb..00000000
--- a/katoptron/tests/1_cube.py
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '1_cube.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    hf = 1 * np.ones(ensemble_size)
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero,
-              0, zero, 0, zero, 1, hf, ensemble_size)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 1
-    mueluParams['smoother: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 1
-    mueluParamsSub2['relaxation: damping factor'] = 0.9
-
-    mueluParams['verbosity'] = "low"
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-
-    solverList['mueluParams'] = mueluParams
-    solverList['Write txt files'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 4, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    tag_name = "Measure point 1"
-    which_pos = 0
-    which_dof = 3
-    DOFperNode = 4
-    name_sol = "x_mm.txt"
-
-    pos_1, sol_1 = u.extract(msh, tag_name, DOFperNode,
-                             which_pos, which_dof, ensemble_size, name_sol)
-
-    tag_name = "Measure point 2"
-
-    pos_2, sol_2 = u.extract(msh, tag_name, DOFperNode,
-                             which_pos, which_dof, ensemble_size, name_sol)
-
-    tests = CTests()
-    measured_T_1 = sol_1[0]
-    tests.add(CTest('Temperature 1', measured_T_1, 97.7193, 5e-5))
-
-    measured_T_2 = sol_2[0]
-    tests.add(CTest('Temperature 2', measured_T_2, 10., 5e-5))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/1_cube_conv.py b/katoptron/tests/1_cube_conv.py
deleted file mode 100644
index f853b4f1..00000000
--- a/katoptron/tests/1_cube_conv.py
+++ /dev/null
@@ -1,123 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-from fwk.testing import *
-from katoptron.readers import read_Belos
-
-
-def model(msh,
-          E,
-          p,
-          ensemble_size):
-    comm, rank, size = m.utilities.import_MPI()
-
-    pbl = m.Problem(msh, comm)
-
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0., 1, 0., 1, 0., 1, 0.,
-                ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 100
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = False
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    solverList['Write matrix and vectors'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    slv.start()
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    useER = m.UseEnsembleReduction()
-
-    geo_name = '1_cube.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    E_mean = 1.
-    E_min = 0.75
-    E_max = 1.25
-
-    E_min_2 = 0.95
-    E_max_2 = 1.05
-
-    E_min_3 = 1.2
-    E_max_3 = 1.3
-
-    p_mean = 0.1
-    p_min = 0.075
-    p_max = 0.125
-
-    ensemble_size = 8
-    E = np.linspace(E_min, E_max, ensemble_size)
-    p = p_mean * np.ones(ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-    model(msh, E, p, ensemble_size)
-
-    u.Finalize_Kokkos()
-
-    if rank == 0:
-        if useER:
-            iter_indices, residuals = read_Belos(work_dir+'/belos_out.txt', 1)
-
-            tests = CTests()
-            nIterations = iter_indices[-1]
-            nExpectedIterations = 75
-            tests.add(CTest('Number of iterations with ensemble reduction',
-                            nIterations, nExpectedIterations, 0.))
-            tests.run()
-        else:
-            iter_indices, residuals = read_Belos(
-                work_dir+'/belos_out.txt', ensemble_size)
-
-            tests = CTests()
-            nIterations = iter_indices[-1]
-            nExpectedIterations = 35
-            tests.add(CTest('Number of iterations without ensemble reduction',
-                            nIterations, nExpectedIterations, 0.))
-            tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/1_cube_k.py b/katoptron/tests/1_cube_k.py
deleted file mode 100644
index 05105c35..00000000
--- a/katoptron/tests/1_cube_k.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '1_cube.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    hf = 1 * np.ones(ensemble_size)
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero,
-              0, zero, 0, zero, 1, hf, ensemble_size)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 2
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 1
-    mueluParams['coarse: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "MT Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 1
-    mueluParamsSub2['relaxation: damping factor'] = 0.9
-
-    mueluParams['verbosity'] = "low"
-
-    mueluParams['coarse: params'] = mueluParamsSub2
-
-    solverList['mueluParams'] = mueluParams
-    solverList['Write txt files'] = True
-
-    m.Kokkos_Initialize(2)
-    slv = m.IterativeSolver(
-        pbl, solverList, 4, ensemble_size)
-    slv.start()
-
-    m.Kokkos_Finalize()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/1_cube_rf.py b/katoptron/tests/1_cube_rf.py
deleted file mode 100644
index 310170c5..00000000
--- a/katoptron/tests/1_cube_rf.py
+++ /dev/null
@@ -1,140 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '1_cube.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    hf = 1 * np.ones(ensemble_size)
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    num_random_variables = 10
-
-    rand = np.random.normal(0, 1, 10*ensemble_size)
-
-    for i in range(0, num_random_variables):
-        pbl.add(m.RandomVariable(rand[i*ensemble_size:(i+1)*ensemble_size]))
-
-    randomParams = Teuchos.ParameterList()
-
-    randomParams['Is random'] = True
-    randomParams['Begin X'] = 0.
-    randomParams['Begin Y'] = 0.
-    randomParams['Begin Z'] = 0.
-    randomParams['End X'] = 10.
-    randomParams['End Y'] = 10.
-    randomParams['End Z'] = 10.
-    randomParams['Number random variables'] = num_random_variables
-    randomParams['Correlation length X'] = 1.
-    randomParams['Correlation length Y'] = 2.
-    randomParams['Correlation length Z'] = 1.
-
-    randomParams['Mean'] = (1. / (2.*(1.+0.2)))
-    randomParams['Dispersion level'] = 0.1
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero,
-              0, zero, 0, zero, 1, hf, ensemble_size)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['randomParams'] = randomParams
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 1
-    mueluParams['smoother: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 1
-    mueluParamsSub2['relaxation: damping factor'] = 0.9
-
-    mueluParams['verbosity'] = "low"
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-
-    solverList['mueluParams'] = mueluParams
-    solverList['Write txt files'] = True
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv = m.IterativeSolver(pbl, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    tag_name = "Measure point 1"
-    which_pos = 0
-    which_dof = 3
-    DOFperNode = 4
-    name_sol = "x_mm.txt"
-
-    pos_1, sol_1 = u.extract(msh, tag_name, DOFperNode,
-                             which_pos, which_dof, ensemble_size, name_sol)
-
-    tag_name = "Measure point 2"
-
-    pos_2, sol_2 = u.extract(msh, tag_name, DOFperNode,
-                             which_pos, which_dof, ensemble_size, name_sol)
-
-    tests = CTests()
-    measured_T_1 = sol_1[0]
-    measured_T_2 = sol_2[0]
-    tests.add(CTest('Temperature 1', measured_T_1, 97.7193, 5e-5))
-    tests.add(CTest('Temperature 2', measured_T_2, 10., 5e-5))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/1_cube_tet.geo b/katoptron/tests/1_cube_tet.geo
deleted file mode 100644
index 1b4fe8a1..00000000
--- a/katoptron/tests/1_cube_tet.geo
+++ /dev/null
@@ -1,38 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-nC1 = 4;
-
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nC1}; //Recombine;
-}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Point("Measure point 1") = {4};
-Physical Point("Measure point 2") = {1};
diff --git a/katoptron/tests/1_cube_tet.py b/katoptron/tests/1_cube_tet.py
deleted file mode 100644
index ec36a4ca..00000000
--- a/katoptron/tests/1_cube_tet.py
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '1_cube.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    hf = 1 * np.ones(ensemble_size)
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero,
-              0, zero, 0, zero, 1, hf, ensemble_size)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 1
-    mueluParams['smoother: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 1
-    mueluParamsSub2['relaxation: damping factor'] = 0.9
-
-    mueluParams['verbosity'] = "low"
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-
-    solverList['mueluParams'] = mueluParams
-    solverList['Write txt files'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 4, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    tag_name = "Measure point 1"
-    which_pos = 0
-    which_dof = 3
-    DOFperNode = 4
-    name_sol = "x_mm.txt"
-
-    pos_1, sol_1 = u.extract(msh, tag_name, DOFperNode,
-                             which_pos, which_dof, ensemble_size, name_sol)
-
-    tag_name = "Measure point 2"
-
-    pos_2, sol_2 = u.extract(msh, tag_name, DOFperNode,
-                             which_pos, which_dof, ensemble_size, name_sol)
-
-    tests = CTests()
-    measured_T_1 = sol_1[0]
-    measured_T_2 = sol_2[0]
-    tests.add(CTest('Temperature 1', measured_T_1, 97.7193, 5e-5))
-    tests.add(CTest('Temperature 2', measured_T_2, 10., 5e-5))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/1_cube_tet_block.py b/katoptron/tests/1_cube_tet_block.py
deleted file mode 100644
index 1275b43b..00000000
--- a/katoptron/tests/1_cube_tet_block.py
+++ /dev/null
@@ -1,127 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from fwk.testing import *
-import os
-
-
-def test(msh, xml_file_name, rank, nThreads):
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    hf = 1 * np.ones(ensemble_size)
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0., 1, 0., 1, 0., 1, 10.,
-                ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero, 0, zero, 0, zero, 1, hf,
-              ensemble_size)
-
-    m.Weight(pbl, "Surf 1 2", 1, 1., 1, 1., 1, 1., 1, 2.5, ensemble_size)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 10**(-4)
-
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Merge block matrix'] = False
-    solverList['Use blocked status test'] = True
-    solverList['Use blocked status test: x'] = True
-    solverList['Use blocked status test: T'] = True
-    solverList['Ensemble Convergence Tolerance: x'] = 10**(-7)
-    solverList['Ensemble Convergence Tolerance: T'] = 10**(-7)
-    solverList['Use weighted status test'] = True
-    solverList['Ensemble Convergence Tolerance: weights'] = 10**(-7)
-
-    solverList['Write txt files'] = True
-    solverList['Write matrix and vectors'] = True
-
-    solverList["use xml file"] = True
-    solverList[
-        "MueLu xml file name"] = file_dir + '/../preconditioners/' + xml_file_name
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 4, ensemble_size)
-
-    slv.start()
-
-    tag_name = "Measure point 1"
-    which_pos = 0
-    which_dof = 3
-    DOFperNode = 4
-    name_sol = "x_mm.txt"
-
-    pos_1, sol_1 = u.extract(msh, tag_name, DOFperNode, which_pos, which_dof,
-                             ensemble_size, name_sol)
-
-    tag_name = "Measure point 2"
-
-    pos_2, sol_2 = u.extract(msh, tag_name, DOFperNode, which_pos, which_dof,
-                             ensemble_size, name_sol)
-
-    tests = CTests()
-    measured_T_1 = sol_1[0]
-    measured_T_2 = sol_2[0]
-    tests.add(CTest('Temperature 1', measured_T_1, 97.7193, 5e-5))
-    tests.add(CTest('Temperature 2', measured_T_2, 10., 5e-5))
-    tests.run()
-
-
-if __name__ == "__main__":
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import numpy as np
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    geo_name = '1_cube_tet.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    nThreads = u.Initialize_Kokkos()
-    directory = '1'
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-    test(msh, 'AMG_BGS_gs_gs.xml', rank, nThreads)
-    os.chdir('..')
-
-    directory = '2'
-    u.mkdir_MPI(directory, comm, rank, size)
-    os.chdir(directory)
-    test(msh, 'blockdirect.xml', rank, nThreads)
-
-    u.Finalize_Kokkos()
diff --git a/katoptron/tests/2_cubes.geo b/katoptron/tests/2_cubes.geo
deleted file mode 100644
index 58dcf0b4..00000000
--- a/katoptron/tests/2_cubes.geo
+++ /dev/null
@@ -1,77 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-C2 = 9;
-nC1 = 4;
-nC2 = 5;
-
-theta = 0*Pi/4;
-dx = 0;
-dy = 0;
-dz = 0.1;
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Point(5) = { 0,   0, C1+dz, lc};
-Point(6) = { C2,   0, C1+dz, lc};
-Point(7) = { C2, 0, C1+C2+dz, lc};
-Point(8) = { 0, 0, C1+C2+dz, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line(5) = {5, 6};
-Line(6) = {6, 7};
-Line(7) = {7, 8};
-Line(8) = {8, 5};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-Transfinite Line {5,6,7,8} = nC2+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nC1}; Recombine;
-}
-
-Line Loop(13) = {5,6,7,8};
-Plane Surface(14) = {13};
-Transfinite Surface {14};
-Recombine Surface {14};
-
-Rotate {{0,0,1}, {0,0,0}, theta}{Surface{14};}
-
-Extrude {-C2*Sin(theta), C2*Cos(theta), 0}
-{
-  Surface{14}; Layers{nC2}; Recombine;
-}
-
-Translate  {dx,dy,0}  { Volume{2};}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-Physical Volume("Body 2") = {2};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Surface("Surf 2 1") = {-43};
-Physical Surface("Surf 2 2") = {-51};
-
-Physical Point("T measure") = {20};
-
-Mesh.Partitioner = 2;
-Mesh.MetisAlgorithm = 2;
-Mesh.MshFilePartitioned = 0;
diff --git a/katoptron/tests/2_cubes.py b/katoptron/tests/2_cubes.py
deleted file mode 100644
index 6a16393c..00000000
--- a/katoptron/tests/2_cubes.py
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Dirichlet(pbl, "Surf 2 2", "Clamped", 1, 0.,
-                1, 0., 1, 2., 1, 20., ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Surf 1 2", "contact", norm)
-    # cont.setInitialyOpen()
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Surf 2 1", norm)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/multigrid_2_lvls_3_1.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_fused.geo b/katoptron/tests/2_cubes_fused.geo
deleted file mode 100644
index bb37ea4b..00000000
--- a/katoptron/tests/2_cubes_fused.geo
+++ /dev/null
@@ -1,72 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-SetFactory("OpenCASCADE");
-
-C1 = 10;
-C2 = 10;
-nC1 = 4;
-nC2 = 4;
-
-theta = 0*Pi/4;
-dx = 0;
-dy = 0;
-dz = 0.;
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Point(5) = { 0,   0, C1+dz, lc};
-Point(6) = { C2,   0, C1+dz, lc};
-Point(7) = { C2, 0, C1+C2+dz, lc};
-Point(8) = { 0, 0, C1+C2+dz, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line(5) = {5, 6};
-Line(6) = {6, 7};
-Line(7) = {7, 8};
-Line(8) = {8, 5};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-Transfinite Line {5,6,7,8} = nC2+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-//Recombine Surface {12};
-
-Line Loop(13) = {5,6,7,8};
-Plane Surface(14) = {13};
-Transfinite Surface {14};
-//Recombine Surface {14};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nC1}; //Recombine;
-}
-
-Extrude {0, C2, 0}
-{
-  Surface{14}; Layers{nC2}; //Recombine;
-}
-
-BooleanFragments{ Volume{1,2}; Delete; }{}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-Physical Volume("Body 2") = {2};
-
-Physical Surface("Surf 1 1") = {1};
-
-Physical Surface("Surf 2 2") = {8};
-
-Physical Point("Pts 1 x") = {1,3};
-Physical Point("Pts 1 y") = {1,2};
diff --git a/katoptron/tests/2_cubes_heat.py b/katoptron/tests/2_cubes_heat.py
deleted file mode 100644
index 979fc56c..00000000
--- a/katoptron/tests/2_cubes_heat.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from fwk.testing import *
-from katoptron.readers import read_Belos
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0., 1, 0., 1, 0., 1, 10.,
-                ensemble_size)
-    m.Dirichlet(pbl, "Surf 2 2", "Clamped", 1, 0., 1, 0., 1, -2., 1, 20.,
-                ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Surf 1 2", "contact", norm)
-    cont.setInitialyOpen()
-    cont.setMaster(pbl, "Surf 2 1", norm)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/direct_solver.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 3
-
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 4, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    tests = CTests()
-    measured_total_CPU_cost = slv.getTimers()["total"].read().getReal().sec()
-
-    non_zero_CPU_cost = (measured_total_CPU_cost > 0.)
-    tests.add(CTest('non zero total CPU cost', non_zero_CPU_cost, True))
-
-    iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-    nIterations = iter_indices[-1]
-    has_converged = (solverList['Maximum Iterations'] > nIterations)
-    tests.add(CTest('Has converged', has_converged, True))
-
-    tag_name = "T measure"
-    which_pos = 0
-    which_dof = 3
-    DOFperNode = 4
-    name_sol = "x_mm.txt"
-
-    pos_1, sol_1 = u.extract(msh, tag_name, DOFperNode, which_pos, which_dof,
-                             ensemble_size, name_sol)
-
-    measured_T_1 = sol_1[0]
-    tests.add(CTest('Temperature 1', measured_T_1, 14.170731, 5e-5))
-
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_no_contact.py b/katoptron/tests/2_cubes_no_contact.py
deleted file mode 100644
index 1d121172..00000000
--- a/katoptron/tests/2_cubes_no_contact.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Dirichlet(pbl, "Surf 2 2", "Clamped", 1, 0.,
-                1, 0., 1, 2., 1, 20., ensemble_size)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-
-    mueluParams = Teuchos.ParameterList()
-    mueluParams['number of equations'] = 4
-    mueluParams['max levels'] = 1
-    mueluParams['smoother: type'] = "RELAXATION"
-
-    mueluParamsSub2 = Teuchos.ParameterList()
-    mueluParamsSub2['relaxation: type'] = "Symmetric Gauss-Seidel"
-    mueluParamsSub2['relaxation: sweeps'] = 1
-    mueluParamsSub2['relaxation: damping factor'] = 0.9
-
-    mueluParams['verbosity'] = "low"
-
-    mueluParams['smoother: params'] = mueluParamsSub2
-
-    solverList['mueluParams'] = mueluParams
-
-    slv = m.IterativeSolver(pbl, solverList, 4, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_patch.geo b/katoptron/tests/2_cubes_patch.geo
deleted file mode 100644
index 5e03a0f5..00000000
--- a/katoptron/tests/2_cubes_patch.geo
+++ /dev/null
@@ -1,149 +0,0 @@
-C = 10;
-dC = 2;
-nC1 = 4;
-nC2 = 5;
-
-dz = 0;
-
-lc = 1;
-
-Point(1) = { 0,  0, 0,     lc};
-Point(2) = { C,  0, 0,     lc};
-Point(3) = { C,  0, C,     lc};
-Point(4) = { 0,  0, C-dC,  lc};
-
-Point(5) = { 0,  C, 0,     lc};
-Point(6) = { C,  C, 0,     lc};
-Point(7) = { C,  C, C+dC,  lc};
-Point(8) = { 0,  C, C,     lc};
-
-Point(9)  = { 0,  0, 2*C+dz,     lc};
-Point(10) = { C,  0, 2*C+dz,     lc};
-Point(11) = { C,  0, C+dz,       lc};
-Point(12) = { 0,  0, C-dC+dz,    lc};
-
-Point(13) = { 0,  C, 2*C+dz,     lc};
-Point(14) = { C,  C, 2*C+dz,     lc};
-Point(15) = { C,  C, C+dC+dz,    lc};
-Point(16) = { 0,  C, C+dz,       lc};
-
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line(5) = {5, 6};
-Line(6) = {6, 7};
-Line(7) = {7, 8};
-Line(8) = {8, 5};
-
-Line(9) = {1, 5};
-Line(10) = {2, 6};
-
-Line(11) = {3, 7};
-Line(12) = {4, 8};
-
-Transfinite Line {1,2,3,4,5,6,7,8,9,10,11,12} = nC1+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Line Loop(13) = {-8,-7,-6,-5};
-Plane Surface(14) = {13};
-Transfinite Surface {14};
-Recombine Surface {14};
-
-Line Loop(15) = {-9,-4,12,8};
-Plane Surface(16) = {15};
-Transfinite Surface {16};
-Recombine Surface {16};
-
-Line Loop(17) = {10,6,-11,-2};
-Plane Surface(18) = {17};
-Transfinite Surface {18};
-Recombine Surface {18};
-
-Line Loop(19) = {9,5,-10,-1};
-Plane Surface(20) = {19};
-Transfinite Surface {20};
-Recombine Surface {20};
-
-Line Loop(21) = {-12,-3,11,7};
-Plane Surface(22) = {21};
-Transfinite Surface {22};
-Recombine Surface {22};
-
-Surface Loop(1) = {22, 16, 20, 14, 18, 12};
-Volume(1) = {1};
-
-Line(23) = {9, 10};
-Line(24) = {10, 11};
-Line(25) = {11, 12};
-Line(26) = {12, 9};
-
-Line(27) = {13, 14};
-Line(28) = {14, 15};
-Line(29) = {15, 16};
-Line(30) = {16, 13};
-
-Line(31) = {9, 13};
-Line(32) = {10, 14};
-
-Line(33) = {11, 15};
-Line(34) = {12, 16};
-
-Transfinite Line {23,24,25,26,27,28,29,30,31,32,33,34} = nC2+1 Using Progression 1;
-
-Line Loop(35) = {-26,-25,-24,-23};
-Plane Surface(36) = {35};
-Transfinite Surface {36};
-Recombine Surface {36};
-
-Line Loop(37) = {27,28,29,30};
-Plane Surface(38) = {37};
-Transfinite Surface {38};
-Recombine Surface {38};
-
-Line Loop(39) = {24,33,-28,-32};
-Plane Surface(40) = {39};
-Transfinite Surface {40};
-Recombine Surface {40};
-
-Line Loop(41) = {-33,25,34,-29};
-Plane Surface(42) = {41};
-Transfinite Surface {42};
-Recombine Surface {42};
-
-Line Loop(43) = {-34,26,31,-30};
-Plane Surface(44) = {43};
-Transfinite Surface {44};
-Recombine Surface {44};
-
-Line Loop(45) = {-31,-27,32,23};
-Plane Surface(46) = {45};
-Transfinite Surface {46};
-Recombine Surface {46};
-
-Surface Loop(2) = {36, 38, 40, 42, 44, 46};
-Volume(2) = {2};
-Recombine Volume {1};
-Recombine Volume {2};
-
-Transfinite Volume{1,2};
-//+
-Physical Volume("Body 1") = {1};
-//+
-Physical Volume("Body 2") = {2};
-//+
-Physical Surface("Clamped") = {20};
-//+
-Physical Surface("Contact 1") = {22};
-//+
-Physical Surface("Contact 2") = {42};
-//+
-Physical Surface("Load") = {46};
-//+
-Physical Point("Clamped xy") = {1};
diff --git a/katoptron/tests/2_cubes_patch.py b/katoptron/tests/2_cubes_patch.py
deleted file mode 100644
index 5d2a8e6b..00000000
--- a/katoptron/tests/2_cubes_patch.py
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-
-from katoptron.eigenvalues import *
-from katoptron.convergence import *
-from katoptron.readers import read_Belos
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_patch.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/direct_solver.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-    solverList['Create Preconditioned Matrix'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList, 3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-    tests = CTests()
-    nIterations = iter_indices[-1]
-    has_converged = (solverList['Maximum Iterations'] > nIterations)
-    tests.add(CTest('Has converged', has_converged, True))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_patch_2_lvls.py b/katoptron/tests/2_cubes_patch_2_lvls.py
deleted file mode 100644
index c1c9082d..00000000
--- a/katoptron/tests/2_cubes_patch_2_lvls.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_patch.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0.,
-                1, 0., 1, 0., 0, 0., ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0,
-              zero, 1, p, 0, zero, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/SIMPLE_direct_2_lvls.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList,
-                                3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList,
-                                3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_patch_BraessSarazin.py b/katoptron/tests/2_cubes_patch_BraessSarazin.py
deleted file mode 100644
index a1d6d206..00000000
--- a/katoptron/tests/2_cubes_patch_BraessSarazin.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-from katoptron.readers import read_Belos
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_patch.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 5000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/BraessSarazin_mtgs.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['gamma'] = 1.
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList, 3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-    tests = CTests()
-    nIterations = iter_indices[-1]
-    has_converged = (solverList['Maximum Iterations'] > nIterations)
-    tests.add(CTest('Has converged', has_converged, True))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_patch_IndefBlockDiagonal.py b/katoptron/tests/2_cubes_patch_IndefBlockDiagonal.py
deleted file mode 100644
index 925d9d81..00000000
--- a/katoptron/tests/2_cubes_patch_IndefBlockDiagonal.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-from katoptron.readers import read_Belos
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_patch.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 5000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/IndefiniteBlockDiagonal_mtgs.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['gamma'] = 1.
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList, 3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-    tests = CTests()
-    nIterations = iter_indices[-1]
-    has_converged = (solverList['Maximum Iterations'] > nIterations)
-    tests.add(CTest('Has converged', has_converged, True))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_patch_SIMPLE.py b/katoptron/tests/2_cubes_patch_SIMPLE.py
deleted file mode 100644
index 95b1aeaa..00000000
--- a/katoptron/tests/2_cubes_patch_SIMPLE.py
+++ /dev/null
@@ -1,106 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-from katoptron.readers import read_Belos
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_patch.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 5000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['gamma'] = 1.
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/SIMPLE_direct.xml'
-    solverList["Create Preconditioned Matrix"] = True
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['gamma'] = 1.
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList, 3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-    tests = CTests()
-    nIterations = iter_indices[-1]
-    has_converged = (solverList['Maximum Iterations'] > nIterations)
-    tests.add(CTest('Has converged', has_converged, True))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_patch_SIMPLEC.py b/katoptron/tests/2_cubes_patch_SIMPLEC.py
deleted file mode 100644
index b2e47b1b..00000000
--- a/katoptron/tests/2_cubes_patch_SIMPLEC.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-from katoptron.readers import read_Belos
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_patch.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 5000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/SIMPLEC_mtgs.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['gamma'] = 1.
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList, 3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-    tests = CTests()
-    nIterations = iter_indices[-1]
-    has_converged = (solverList['Maximum Iterations'] > nIterations)
-    tests.add(CTest('Has converged', has_converged, True))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_patch_Uzawa.py b/katoptron/tests/2_cubes_patch_Uzawa.py
deleted file mode 100644
index 1af73294..00000000
--- a/katoptron/tests/2_cubes_patch_Uzawa.py
+++ /dev/null
@@ -1,103 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-from katoptron.readers import read_Belos
-from fwk.testing import *
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_patch.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Clamped", "Clamped", 1, 0., 1, 0., 1, 0., 0, 0.,
-                ensemble_size)
-    #m.Dirichlet(pbl, "Clamped xy", "Clamped",1,0.,1,0.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Contact 2", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "Contact 1", norm)
-
-    zero = np.zeros(ensemble_size)
-    p = -0.2 * np.ones(ensemble_size)
-
-    m.Neumann(pbl, "Load", "Load 1", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 5000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + \
-        '/../preconditioners/Uzawa_mtgs.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['gamma'] = 1.
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList, 3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-    iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-    tests = CTests()
-    nIterations = iter_indices[-1]
-    has_converged = (solverList['Maximum Iterations'] > nIterations)
-    tests.add(CTest('Has converged', has_converged, True))
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_sticking.geo b/katoptron/tests/2_cubes_sticking.geo
deleted file mode 100644
index aa71ad54..00000000
--- a/katoptron/tests/2_cubes_sticking.geo
+++ /dev/null
@@ -1,72 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-SetFactory("OpenCASCADE");
-
-C1 = 10;
-C2 = 10;
-nC1 = 4;
-nC2 = 4;
-
-theta = 0*Pi/4;
-dx = 0;
-dy = 0;
-dz = 0.;
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Point(5) = { 0,   0, C1+dz, lc};
-Point(6) = { C2,   0, C1+dz, lc};
-Point(7) = { C2, 0, C1+C2+dz, lc};
-Point(8) = { 0, 0, C1+C2+dz, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line(5) = {5, 6};
-Line(6) = {6, 7};
-Line(7) = {7, 8};
-Line(8) = {8, 5};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-Transfinite Line {5,6,7,8} = nC2+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Line Loop(13) = {5,6,7,8};
-Plane Surface(14) = {13};
-Transfinite Surface {14};
-Recombine Surface {14};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nC1}; Recombine;
-}
-
-Extrude {0, C2, 0}
-{
-  Surface{14}; Layers{nC2}; Recombine;
-}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-Physical Volume("Body 2") = {2};
-
-Physical Surface("Surf 1 1") = {15};
-Physical Surface("Surf 1 2") = {17};
-
-Physical Surface("Surf 2 1") = {20};
-Physical Surface("Surf 2 2") = {22};
-
-Physical Point("Pts 1 x") = {1,3};
-Physical Point("Pts 1 y") = {1,2};
diff --git a/katoptron/tests/2_cubes_sticking.py b/katoptron/tests/2_cubes_sticking.py
deleted file mode 100644
index 93ed3fbf..00000000
--- a/katoptron/tests/2_cubes_sticking.py
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Dirichlet(pbl, "Surf 2 2", "Clamped", 1, 2.,
-                1, 2., 1, -2., 1, 20., ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Surf 1 2", "contact", norm)
-    # cont.setInitialyOpen()
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Surf 2 1", norm)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/direct_solver.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/2_cubes_tet.geo b/katoptron/tests/2_cubes_tet.geo
deleted file mode 100644
index 5bde791c..00000000
--- a/katoptron/tests/2_cubes_tet.geo
+++ /dev/null
@@ -1,75 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-C2 = 10;
-nC1 = 4;
-nC2 = 4;
-
-theta = 0.1*Pi/4;
-dx = 0;
-dy = 0;
-dz = 0.1;
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Point(5) = { 0,   0, C1+dz, lc};
-Point(6) = { C2,   0, C1+dz, lc};
-Point(7) = { C2, 0, C1+C2+dz, lc};
-Point(8) = { 0, 0, C1+C2+dz, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line(5) = {5, 6};
-Line(6) = {6, 7};
-Line(7) = {7, 8};
-Line(8) = {8, 5};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-Transfinite Line {5,6,7,8} = nC2+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-//Recombine Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nC1}; //Recombine;
-}
-
-Line Loop(13) = {5,6,7,8};
-Plane Surface(14) = {13};
-Transfinite Surface {14};
-//Recombine Surface {14};
-
-Rotate {{0,0,1}, {0,0,0}, theta}{Surface{14};}
-
-Extrude {-C2*Sin(theta), C2*Cos(theta), 0}
-{
-  Surface{14}; Layers{nC2}; //Recombine;
-}
-
-Translate  {dx,dy,0}  { Volume{2};}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-Physical Volume("Body 2") = {2};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Surface("Surf 2 1") = {-43};
-Physical Surface("Surf 2 2") = {-51};
-
-//Mesh.Partitioner = 2;
-//Mesh.MetisAlgorithm = 2;
-//Mesh.MshFilePartitioned = 0;
diff --git a/katoptron/tests/2_cubes_tet.py b/katoptron/tests/2_cubes_tet.py
deleted file mode 100644
index acb1c293..00000000
--- a/katoptron/tests/2_cubes_tet.py
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '2_cubes_tet.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Dirichlet(pbl, "Surf 2 2", "Clamped", 1, 0.,
-                1, 0., 1, 2., 1, 20., ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Surf 1 2", "contact", norm)
-    # cont.setInitialyOpen()
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Surf 2 1", norm)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/multigrid_2_lvls_3_1.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/3_cubes.geo b/katoptron/tests/3_cubes.geo
deleted file mode 100644
index 30d5eecd..00000000
--- a/katoptron/tests/3_cubes.geo
+++ /dev/null
@@ -1,107 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-C2 = 9;
-C3 = 10;
-nC1 = 4;
-nC2 = 5;
-nC3 = 6;
-
-theta1 = 0.1*Pi/4;
-theta2 = -0.1*Pi/4;
-
-dx1 = 0;
-dy1 = 0;
-dz1 = 0.1;
-dx2 = 0;
-dy2 = 0;
-dz2 = 0.1;
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Point(5) = { 0,   0, C1+dz1, lc};
-Point(6) = { C2,   0, C1+dz1, lc};
-Point(7) = { C2, 0, C1+C2+dz1, lc};
-Point(8) = { 0, 0, C1+C2+dz1, lc};
-
-Point(9) = { 0,   0, C1+C2+dz1+dz2, lc};
-Point(10) = { C3,   0, C1+C2+dz1+dz2, lc};
-Point(11) = { C3, 0, C1+C2+C3+dz1+dz2, lc};
-Point(12) = { 0, 0, C1+C2+C3+dz1+dz2, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line(5) = {5, 6};
-Line(6) = {6, 7};
-Line(7) = {7, 8};
-Line(8) = {8, 5};
-
-Line(9) = {9, 10};
-Line(10) = {10, 11};
-Line(11) = {11, 12};
-Line(12) = {12, 9};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-Transfinite Line {5,6,7,8} = nC2+1 Using Progression 1;
-Transfinite Line {9,10,11,12} = nC3+1 Using Progression 1;
-
-Line Loop(13) = {1,2,3,4};
-Plane Surface(14) = {13};
-Transfinite Surface {14};
-Recombine Surface {14};
-
-Extrude {0, C1, 0}
-{
-  Surface{14}; Layers{nC1}; Recombine;
-}
-
-Line Loop(15) = {5,6,7,8};
-Plane Surface(16) = {15};
-Transfinite Surface {16};
-Recombine Surface {16};
-
-Rotate {{0,0,1}, {0,0,0}, theta1}{Surface{16};}
-
-Extrude {-C2*Sin(theta1), C2*Cos(theta1), 0}
-{
-  Surface{16}; Layers{nC2}; Recombine;
-}
-
-Translate  {dx1,dy1,0}  { Volume{2};}
-
-Line Loop(17) = {9,10,11,12};
-Plane Surface(18) = {17};
-Transfinite Surface {18};
-Recombine Surface {18};
-
-Rotate {{0,0,1}, {0,0,0}, theta2}{Surface{18};}
-
-Extrude {-C3*Sin(theta2), C3*Cos(theta2), 0}
-{
-  Surface{18}; Layers{nC3}; Recombine;
-}
-
-Translate  {dx2,dy2,0}  { Volume{3};}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-Physical Volume("Body 2") = {2};
-Physical Volume("Body 3") = {3};
-
-Physical Surface("Surf 1 1") = {-23};
-Physical Surface("Surf 1 2") = {-31};
-
-Physical Surface("Surf 2 1") = {-45};
-Physical Surface("Surf 2 2") = {-53};
-
-Physical Surface("Surf 3 1") = {-67};
-Physical Surface("Surf 3 2") = {-75};
diff --git a/katoptron/tests/3_cubes_partial_sticking.py b/katoptron/tests/3_cubes_partial_sticking.py
deleted file mode 100644
index 7e05beac..00000000
--- a/katoptron/tests/3_cubes_partial_sticking.py
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib.pyplot as plt
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    nThreads = u.Initialize_Kokkos()
-
-    from PyTrilinos import Teuchos
-
-    import shlex
-    import subprocess
-    import os
-    import numpy as np
-
-    geo_name = '3_cubes.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    #E = np.linspace(0.5,1.5,ensemble_size)
-    E = 1. * np.ones(ensemble_size)
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 2", "test", E, nu, k, d)
-    m.Medium(pbl, "Body 3", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0.,
-                 1, 0., 1, 0., 1, 10., ensemble_size)
-    m.Dirichlet(pbl, "Surf 3 2", "Clamped", 1, 2.,
-                 1, 2., 1, -2., 1, 20., ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Surf 1 2", "contact", norm)
-    # cont.setInitialyOpen()
-    # cont.setNoUpdate()
-    # cont.setSticking()
-    cont.setMaster(pbl, "Surf 2 1", norm)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "Surf 2 2", "contact", norm)
-    # cont.setInitialyOpen()
-    cont.setNoUpdate()
-    cont.setSticking()
-    cont.setMaster(pbl, "Surf 3 1", norm)
-
-    dx = np.zeros(ensemble_size)
-    dy = 2. * np.ones(ensemble_size)
-    #dy = np.linspace(0.5,1.5,ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = 10. * np.ones(ensemble_size)
-    #m.Dirichlet(pbl, "Surf 2", "Moved",0,dx,1,dy,0,dz,1,dT)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 1000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/direct_solver.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 5
-
-    #solverList['Print Teuchos timers'] = True
-    solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    if ensemble_size > 1:
-        slv = m.IterativeSolver(pbl, solverList,
-                                3, True, ensemble_size)
-    else:
-        slv = m.IterativeSolver(pbl, solverList,
-                                3, ensemble_size)
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/L_shape.py b/katoptron/tests/L_shape.py
deleted file mode 100644
index 6a80366f..00000000
--- a/katoptron/tests/L_shape.py
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-#import matplotlib.pyplot as plt
-
-import katoptron.utilities as u
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import os
-    import numpy as np
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh = u.fuse_meshes('L_shape_1.geo', 'L_shape_1', 'L_shape_2.geo',
-                        'L_shape_2', 'L_shape_fused', file_dir, work_dir, comm, rank, size)
-
-    ensemble_size = 1
-
-    pbl = m.Problem(msh, comm)
-
-    E = 10. * np.ones(ensemble_size)
-    nu = 0.4 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-    m.Medium(pbl, "body", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "clamping", "Clamped", 1, 0.,
-                1, 0., 1, 0., 0, 0., ensemble_size)
-    #m.Dirichlet(pbl, "load", "Clamped",1,0.,1,2.,1,0.,0,0.,ensemble_size)
-
-    norm = tbox.Vector3d(0, 0, -1)
-    cont = m.Contact(pbl, "outer part boundary 1", "contact", norm)
-    cont.setMeshTying()
-    cont.setMaster(pbl, "inner edge boundary 1", norm)
-    cont1 = m.Contact(pbl, "inner edge boundary 2", "contact", norm)
-    cont1.setMeshTying()
-    cont1.setMaster(pbl, "outer part boundary 2", norm)
-    cont2 = m.Contact(pbl, "outer part boundary 3", "contact", norm)
-    cont2.setMeshTying()
-    cont2.setMaster(pbl, "inner edge boundary 3", norm)
-    cont3 = m.Contact(pbl, "inner edge boundary 4", "contact", norm)
-    cont3.setMeshTying()
-    cont3.setMaster(pbl, "outer part boundary 4", norm)
-    f = -0.002 * np.ones(ensemble_size)
-    zero = np.zeros(ensemble_size)
-
-    m.Neumann(pbl, "load", "load", 0, zero, 1,
-              f, 0, zero, 0, zero, ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 10
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/direct_solver.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    #solverList['Write matrix and vectors'] = True
-    solverList['Write txt files'] = True
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    slv.start()
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/L_shape_1.geo b/katoptron/tests/L_shape_1.geo
deleted file mode 100644
index faef02ea..00000000
--- a/katoptron/tests/L_shape_1.geo
+++ /dev/null
@@ -1,95 +0,0 @@
-SetFactory("OpenCASCADE");
-
-LX = 10;
-lx = 2;
-LY = 10;
-ly = 2;
-LZ = 2;
-lix = 1;
-liy = 1;
-
-nlix = 11;
-nliy = 11;
-
-nloiy = 4;
-nloix = 4;
-nloey = 4;
-nloex = 4;
-
-nLX = 8;
-nLY = 8;
-
-nZ1 = 8;
-nZ2 = 5;
-
-lc = 1;
-
-Point(1)  = { lx,    ly, 0.,     lc};
-Point(2)  = { lx+lix,    ly, 0.,     lc};
-Point(3)  = { lx+lix,    ly-liy, 0.,     lc};
-Point(4)  = { lx,    ly-liy, 0.,     lc};
-Point(5)  = { lx-lix,    ly-liy, 0.,     lc};
-Point(6)  = { lx-lix,    ly, 0.,     lc};
-Point(7)  = { lx-lix,    ly+liy, 0.,     lc};
-Point(8)  = { lx,    ly+liy, 0.,     lc};
-//+
-Line(1) = {1, 2};
-//+
-Line(2) = {2, 3};
-//+
-Line(3) = {3, 4};
-//+
-Line(4) = {4, 5};
-//+
-Line(5) = {5, 6};
-//+
-Line(6) = {6, 7};
-//+
-Line(7) = {7, 8};
-//+
-Line(8) = {8, 1};
-//+
-Line(9) = {1, 6};
-//+
-Line(10) = {1, 4};
-//+
-Line Loop(1) = {1, 2, 3, -10};
-//+
-Plane Surface(1) = {1};
-//+
-Line Loop(2) = {10, 4, 5, -9};
-//+
-Plane Surface(2) = {2};
-//+
-Line Loop(3) = {9, 6, 7, 8};
-//+
-Plane Surface(3) = {3};
-//+
-Transfinite Line {7, 9, 4, 3, 1} = nlix Using Progression 1;
-//+
-Transfinite Line {6, 5, 8, 10, 2} = nliy Using Progression 1;
-//+
-Transfinite Surface {2};
-Recombine Surface {2};
-//+
-Transfinite Surface {3};
-Recombine Surface {3};
-//+
-Transfinite Surface {1};
-Recombine Surface {1};
-
-
-Extrude {0, 0, LZ}
-{
-  Surface{1,2,3}; Layers{nZ1}; Recombine;
-}
-
-
-Physical Volume("body") = {1,2,3};
-//+
-Physical Surface("inner edge boundary 1") = {14};
-Physical Surface("inner edge boundary 2") = {13,10};
-Physical Surface("inner edge boundary 3") = {9,6};
-Physical Surface("inner edge boundary 4") = {5};
-//+
-Physical Line("slave Dirichlet") = {24, 19, 14};
diff --git a/katoptron/tests/L_shape_2.geo b/katoptron/tests/L_shape_2.geo
deleted file mode 100644
index 8edb92cd..00000000
--- a/katoptron/tests/L_shape_2.geo
+++ /dev/null
@@ -1,167 +0,0 @@
-SetFactory("OpenCASCADE");
-
-LX = 10;
-lx = 2;
-LY = 10;
-ly = 2;
-LZ = 2;
-lix = 1;
-liy = 1;
-
-nlix = 10;
-nliy = 10;
-
-nloiy = 4;
-nloix = 4;
-nloey = 4;
-nloex = 4;
-
-nLX = 16;
-nLY = 16;
-
-nZ1 = 8;
-nZ2 = 5;
-
-lc = 1;
-
-dx = 0.;
-
-Point(9)  = { lx+lix+dx,    ly, 0.,     lc};
-Point(10)  = { LX,    ly, 0.,     lc};
-Point(11)  = { LX,    0, 0.,     lc};
-Point(12)  = { lx+lix+dx,    0, 0.,     lc};
-Point(13)  = { 0,    0, 0.,     lc};
-Point(14)  = { 0,    ly-liy-dx, 0.,     lc};
-Point(15)  = { 0,    ly+liy+dx, 0.,     lc};
-Point(16)  = { 0,    LY, 0.,     lc};
-Point(17)  = { lx,   LY, 0.,     lc};
-Point(18)  = { lx,    ly+liy+dx, 0.,     lc};
-Point(19)  = { lx-lix-dx,    ly+liy+dx, 0.,     lc};
-Point(20)  = { lx-lix-dx,    ly-liy-dx, 0.,     lc};
-Point(21)  = { lx+lix+dx,    ly-liy-dx, 0.,     lc};
-
-Point(22)  = { LX,    ly-liy-dx, 0.,     lc};
-Point(23)  = { lx-lix-dx,    0, 0.,     lc};
-Point(24)  = { lx-lix-dx,    LY, 0.,     lc};
-//+
-Line(11) = {21, 9};
-//+
-Line(12) = {21, 12};
-//+
-Line(13) = {11, 22};
-//+
-Line(14) = {22, 10};
-//+
-Line(15) = {23, 20};
-//+
-Line(16) = {13, 14};
-//+
-Line(17) = {18, 17};
-//+
-Line(18) = {24, 19};
-//+
-Line(19) = {15, 16};
-//+
-Line(20) = {18, 19};
-//+
-Line(21) = {19, 15};
-//+
-Line(22) = {15, 14};
-//+
-Line(23) = {14, 20};
-//+
-Line(24) = {20, 19};
-//+
-Line(25) = {13, 23};
-//+
-Line(26) = {23, 12};
-//+
-Line(27) = {21, 20};
-//+
-Line(28) = {9, 10};
-//+
-Line(29) = {22, 21};
-//+
-Line(30) = {12, 11};
-//+
-Line(31) = {24, 17};
-//+
-Line(32) = {24, 16};
-//+
-Line Loop(4) = {19, -32, 18, 21};
-//+
-Plane Surface(4) = {4};
-//+
-Line Loop(5) = {17, -31, 18, -20};
-//+
-Plane Surface(5) = {5};
-//+
-Line Loop(6) = {24, 21, 22, 23};
-//+
-Plane Surface(6) = {6};
-//+
-Line Loop(7) = {16, 23, -15, -25};
-//+
-Plane Surface(7) = {7};
-//+
-Line Loop(8) = {26, -12, 27, -15};
-//+
-Plane Surface(8) = {8};
-//+
-Line Loop(9) = {12, 30, 13, 29};
-//+
-Plane Surface(9) = {9};
-//+
-Line Loop(10) = {11, 28, -14, 29};
-//+
-Plane Surface(10) = {10};
-//+
-Transfinite Line {19, 18, 17} = nLY Using Progression 1;
-//+
-Transfinite Line {28, 29, 30} = nLX Using Progression 1;
-//+
-Transfinite Line {11, 14} = nloiy Using Progression 1;
-//+
-Transfinite Line {13, 12, 15, 16} = nloey Using Progression 1;
-//+
-Transfinite Line {25, 23, 21, 32} = nloex Using Progression 1;
-//+
-Transfinite Line {20, 31} = nloix Using Progression 1;
-//+
-Transfinite Line {27, 26} = 2*nloix Using Progression 1;
-//+
-Transfinite Line {24, 22} = 2*nloiy Using Progression 1;
-
-
-Transfinite Surface {4};
-Transfinite Surface {5};
-Transfinite Surface {6};
-Transfinite Surface {7};
-Transfinite Surface {8};
-Transfinite Surface {9};
-Transfinite Surface {10};
-
-Recombine Surface {4};
-Recombine Surface {5};
-Recombine Surface {6};
-Recombine Surface {7};
-Recombine Surface {8};
-Recombine Surface {9};
-Recombine Surface {10};
-
-
-Extrude {0, 0, LZ}
-{
-  Surface{4,5,6,7,8,9,10}; Layers{nZ2}; Recombine;
-}
-
-Physical Volume("body") = {1,2,3,4,5,6,7};
-//+
-Physical Surface("outer part boundary 1") = {18};
-Physical Surface("outer part boundary 2") = {20};
-Physical Surface("outer part boundary 3") = {30};
-Physical Surface("outer part boundary 4") = {36};
-//+
-Physical Surface("clamping") = {12, 17};
-//+
-Physical Surface("load") = {38, 33};
diff --git a/katoptron/tests/L_shape_curv_1.geo b/katoptron/tests/L_shape_curv_1.geo
deleted file mode 100644
index 3d9aa49e..00000000
--- a/katoptron/tests/L_shape_curv_1.geo
+++ /dev/null
@@ -1,134 +0,0 @@
-SetFactory("OpenCASCADE");
-
-LX = 10;
-lx = 2;
-LY = 10;
-ly = 2;
-LZ = 2;
-
-nR1 = 5;
-
-R = 0.999;
-R2 = 1.;
-R_in_1 = 0.4;
-R_in_2 = 0.5;
-
-nR = 14;
-nT1 = 9;
-
-nZ1 = 5;
-
-nZ2 = 4;
-nl = 7;
-nLX=5;
-nLY=10;
-nR2=5;
-
-PI = Acos (-1.);
-
-dtheta = 0.001*PI;
-
-lc = 1;
-
-Point(1)  = { lx,    ly, 0.,     lc};
-Point(2)  = { lx+R*Cos(0*PI+dtheta),  ly+R*Sin(0*PI+dtheta), 0.,     lc};
-Point(3)  = { lx+R*Cos(-1*PI/4+dtheta),  ly+R*Sin(-1*PI/4+dtheta), 0.,     lc};
-Point(4)  = { lx+R*Cos(-2*PI/4+dtheta),  ly+R*Sin(-2*PI/4+dtheta), 0.,     lc};
-Point(5)  = { lx+R*Cos(-3*PI/4+dtheta),  ly+R*Sin(-3*PI/4+dtheta), 0.,     lc};
-Point(6)  = { lx+R*Cos(-4*PI/4+dtheta),  ly+R*Sin(-4*PI/4+dtheta), 0.,     lc};
-Point(7)  = { lx+R*Cos(-5*PI/4+dtheta),  ly+R*Sin(-5*PI/4+dtheta), 0.,     lc};
-Point(8)  = { lx+R*Cos(-6*PI/4+dtheta),  ly+R*Sin(-6*PI/4+dtheta), 0.,     lc};
-
-Point(9)   = { lx+R_in_1*Cos(0*PI+dtheta),  ly+R_in_1*Sin(0*PI+dtheta), 0.,     lc};
-Point(10)  = { lx+R_in_2*Cos(-1*PI/4+dtheta),  ly+R_in_2*Sin(-1*PI/4+dtheta), 0.,     lc};
-Point(11)  = { lx+R_in_1*Cos(-2*PI/4+dtheta),  ly+R_in_1*Sin(-2*PI/4+dtheta), 0.,     lc};
-Point(12)  = { lx+R_in_2*Cos(-3*PI/4+dtheta),  ly+R_in_2*Sin(-3*PI/4+dtheta), 0.,     lc};
-Point(13)  = { lx+R_in_1*Cos(-4*PI/4+dtheta),  ly+R_in_1*Sin(-4*PI/4+dtheta), 0.,     lc};
-Point(14)  = { lx+R_in_2*Cos(-5*PI/4+dtheta),  ly+R_in_2*Sin(-5*PI/4+dtheta), 0.,     lc};
-Point(15)  = { lx+R_in_1*Cos(-6*PI/4+dtheta),  ly+R_in_1*Sin(-6*PI/4+dtheta), 0.,     lc};
-
-Circle(101) = {2, 1, 3};
-Circle(102) = {3, 1, 4};
-Circle(103) = {4, 1, 5};
-Circle(104) = {5, 1, 6};
-Circle(105) = {6, 1, 7};
-Circle(106) = {7, 1, 8};
-
-Line(201) = {9, 10};
-Line(202) = {10,11};
-Line(203) = {11,12};
-Line(204) = {12,13};
-Line(205) = {13,14};
-Line(206) = {14,15};
-
-
-Line(151) = {2, 9};
-Line(152) = {3,10};
-Line(153) = {4,11};
-Line(154) = {5,12};
-Line(155) = {6,13};
-Line(156) = {7,14};
-Line(157) = {8,15};
-
-Line(251) = {9, 1};
-Line(252) = {11,1};
-Line(253) = {13,1};
-Line(254) = {15,1};
-
-Transfinite Line {204, 203, 253, 205, 206, 254, 252, 251, 202, 201, 101, 102, 103, 104, 105, 106} = nT1 Using Progression 1;
-Transfinite Line {157, 156, 155, 154, 153, 152, 151} = nR Using Progression 1;
-
-Line Loop(1) = {151, 201, -152, -101};
-Plane Surface(1) = {1};
-Transfinite Surface {1};
-Recombine Surface {1};
-
-Line Loop(2) = {152, 202, -153, -102};
-Plane Surface(2) = {2};
-Transfinite Surface {2};
-Recombine Surface {2};
-
-Line Loop(3) = {153, 203, -154, -103};
-Plane Surface(3) = {3};
-Transfinite Surface {3};
-Recombine Surface {3};
-
-Line Loop(4) = {154, 204, -155, -104};
-Plane Surface(4) = {4};
-Transfinite Surface {4};
-Recombine Surface {4};
-
-Line Loop(5) = {155, 205, -156, -105};
-Plane Surface(5) = {5};
-Transfinite Surface {5};
-Recombine Surface {5};
-
-Line Loop(6) = {156, 206, -157, -106};
-Plane Surface(6) = {6};
-Transfinite Surface {6};
-Recombine Surface {6};
-
-Line Loop(7) = {251, -252, -202, -201};
-Plane Surface(7) = {7};
-Transfinite Surface {7};
-Recombine Surface {7};
-
-Line Loop(8) = {252, -253, -204, -203};
-Plane Surface(8) = {8};
-Transfinite Surface {8};
-Recombine Surface {8};
-
-Line Loop(9) = {254, -253, 205, 206};
-Plane Surface(9) = {9};
-Transfinite Surface {9};
-Recombine Surface {9};
-
-Extrude {0, 0, LZ}
-{
-  Surface{1,2,3,4,5,6,7,8,9}; Layers{nZ1}; Recombine;
-}
-
-Physical Volume("body") = {1,2,3,4,5,6,7,8,9};
-//+
-Physical Surface("inner edge boundary") = {33, 29, 25, 21, 17, 13};
-//Physical Surface("inner edge boundary") = {33};
diff --git a/katoptron/tests/L_shape_curv_2.geo b/katoptron/tests/L_shape_curv_2.geo
deleted file mode 100644
index 68fa8cda..00000000
--- a/katoptron/tests/L_shape_curv_2.geo
+++ /dev/null
@@ -1,163 +0,0 @@
-SetFactory("OpenCASCADE");
-
-LX = 10;
-lx = 2;
-LY = 10;
-ly = 2;
-LZ = 2;
-
-nR1 = 5;
-
-R = 1.;
-R2 = 1.;
-R_in_1 = 0.4;
-R_in_2 = 0.5;
-
-nR = 14;
-nT1 = 7;
-
-nZ1 = 5;
-
-nZ2 = 4;
-nl = 5;
-nLX=5;
-nLY=10;
-nR2=5;
-
-PI = Acos (-1.);
-
-dtheta = 0.1*PI;
-
-lc = 1;
-Point(1)  = { lx,    ly, 0.,     lc};
-Point(16)  = { 0,      0, 0,     lc};
-Point(17)  = { lx,     0, 0,     lc};
-Point(18)  = { 2*lx,     0, 0,     lc};
-Point(19)  = { LX,     0, 0,     lc};
-Point(20)  = { LX,    ly, 0,     lc};
-Point(21)  = { 2*lx,  ly, 0,     lc};
-Point(22)  = { lx+R2*Cos(0*PI),  ly+R2*Sin(0*PI), 0,     lc};
-Point(23)  = { lx+R2*Cos(-1*PI/4+dtheta),  ly+R2*Sin(-1*PI/4+dtheta), 0,     lc};
-Point(24)  = { lx+R2*Cos(-2*PI/4+dtheta),  ly+R2*Sin(-2*PI/4+dtheta), 0,     lc};
-Point(25)  = { lx+R2*Cos(-3*PI/4+dtheta),  ly+R2*Sin(-3*PI/4+dtheta), 0,     lc};
-Point(26)  = { lx+R2*Cos(-4*PI/4-dtheta),  ly+R2*Sin(-4*PI/4-dtheta), 0,     lc};
-Point(27)  = { lx+R2*Cos(-5*PI/4-dtheta),  ly+R2*Sin(-5*PI/4-dtheta), 0,     lc};
-Point(28)  = { lx+R2*Cos(-6*PI/4),  ly+R2*Sin(-6*PI/4), 0,     lc};
-Point(29)  = { lx,    2*ly, 0,     lc};
-Point(30)  = { lx,    LY, 0,     lc};
-Point(31)  = { 0,    LY, 0,     lc};
-Point(32)  = { 0,    2*ly, 0,     lc};
-Point(33)  = { 0,    ly, 0,     lc};
-
-
-//+
-Line(255) = {16, 17};
-//+
-Line(256) = {17, 18};
-//+
-Line(257) = {18, 19};
-//+
-Line(258) = {19, 20};
-//+
-Line(259) = {20, 21};
-//+
-Line(260) = {16, 33};
-//+
-Line(261) = {33, 32};
-//+
-Line(262) = {32, 31};
-//+
-Line(263) = {31, 30};
-//+
-Line(264) = {30, 29};
-//+
-Line(265) = {17, 24};
-//+
-Line(266) = {16, 25};
-//+
-Line(267) = {18, 23};
-//+
-Line(268) = {22, 21};
-//+
-Line(269) = {26, 33};
-//+
-Line(270) = {27, 32};
-//+
-Line(271) = {28, 29};
-//+
-Circle(272) = {22, 1, 23};
-//+
-Circle(273) = {23, 1, 24};
-//+
-Circle(274) = {24, 1, 25};
-//+
-Circle(275) = {25, 1, 26};
-//+
-Circle(276) = {26, 1, 27};
-//+
-Circle(277) = {27, 1, 28};
-//+
-Line(278) = {18, 21};
-//+
-Line(279) = {29, 32};
-
-Transfinite Line {263, 279, 277, 258, 278, 272, 273, 256, 255, 274, 260, 275, 276, 261} = nl Using Progression 1;
-Transfinite Line {271, 270, 269, 266, 265, 267, 268} = nR2 Using Progression 1;
-Transfinite Line {257, 259} = nLX Using Progression 1;
-Transfinite Line {264, 262} = nLY Using Progression 1;
-
-
-Line Loop(10) = {277, 271, 279, -270};
-Plane Surface(10) = {10};
-
-Transfinite Surface {10};
-Recombine Surface {10};
-
-Line Loop(11) = {276, 270, -261, -269};
-Plane Surface(11) = {11};
-Transfinite Surface {11};
-Recombine Surface {11};
-
-Line Loop(12) = {266, 275, 269, -260};
-Plane Surface(12) = {12};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Line Loop(13) = {266, -274, -265, -255};
-Plane Surface(13) = {13};
-Transfinite Surface {13};
-Recombine Surface {13};
-
-Line Loop(14) = {265, -273, -267, -256};
-Plane Surface(14) = {14};
-Transfinite Surface {14};
-Recombine Surface {14};
-
-Line Loop(15) = {267, -272, 268, -278};
-Plane Surface(15) = {15};
-Transfinite Surface {15};
-Recombine Surface {15};
-
-Line Loop(16) = {278, -259, -258, -257};
-Plane Surface(16) = {16};
-Transfinite Surface {16};
-Recombine Surface {16};
-
-Line Loop(17) = {279, 262, 263, 264};
-Plane Surface(17) = {17};
-Transfinite Surface {17};
-Recombine Surface {17};
-
-Extrude {0, 0, LZ}
-{
-  Surface{10,11,12,13,14,15,16,17}; Layers{nZ2}; Recombine;
-}
-
-Physical Volume("body") = {1,2,3,4,5,6,7,8};
-//+
-Physical Surface("clamping") = {48};
-//+
-Physical Surface("load") = {44};
-//+
-Physical Surface("outer part boundary") = {18, 23, 28, 31, 39, 35};
-//Physical Surface("outer part boundary") = {18};
diff --git a/katoptron/tests/M1_optic_test.py b/katoptron/tests/M1_optic_test.py
deleted file mode 100644
index 156c5c0a..00000000
--- a/katoptron/tests/M1_optic_test.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron.utilities as u
-import numpy as np
-import os
-from fwk.testing import *
-
-
-def rigid_body_mode(dz, theta_x, theta_y, x, y, x_c, y_c):
-    dz_test = np.zeros(x.shape)
-    dz_test = -np.sin(theta_x)*(y-y_c)+np.cos(theta_x)*dz_test
-    dz_test = -np.sin(theta_y)*(x-x_c)+np.cos(theta_y)*dz_test
-    dz_test = dz_test + dz
-    return dz_test
-
-
-def main():
-    file_dir = os.path.dirname(__file__)
-
-    npzfile = np.load(file_dir+'/mirror_data.npz')
-    x = npzfile['x']
-    y = npzfile['y']
-    z = np.zeros(x.shape)
-    tri = npzfile['tri']
-    dz = npzfile['dz']
-
-    dz_1 = 0
-    dz_2 = (0.5 / 1000)
-    dz_3 = (0.87 / 1000)
-    dz_4 = (-2.1 / 1000)
-
-    theta_x_1 = 0
-    theta_x_2 = 0.0015
-    theta_x_3 = -0.0005
-    theta_x_4 = -0.0002
-
-    theta_y_1 = -0.2
-    theta_y_2 = -0.0005
-    theta_y_3 = 0.0015
-    theta_y_4 = 0.0008
-
-    passed_1 = 0
-    passed_2 = 1
-    passed_3 = 1
-    passed_4 = 0
-
-    dz_test_1 = rigid_body_mode(dz_1, theta_x_1, theta_y_1, x, y, 0.069, 0.04)
-    dz_test_2 = rigid_body_mode(dz_2, theta_x_2, theta_y_2, x, y, 0.069, 0.04)
-    dz_test_3 = rigid_body_mode(dz_3, theta_x_3, theta_y_3, x, y, 0.069, 0.04)
-    dz_test_4 = rigid_body_mode(dz_4, theta_x_4, theta_y_4, x, y, 0.069, 0.04)
-
-    optical_coefficients_1, dz_residual_1 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_1, "m", np.array([0.069, 0.04]))
-
-    optical_coefficients_2, dz_residual_2 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_2, "m", np.array([0.069, 0.04]))
-
-    optical_coefficients_3, dz_residual_3 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_3, "m", np.array([0.069, 0.04]))
-
-    optical_coefficients_4, dz_residual_4 = u.compute_RBM_Curvature_Irreg(
-        x, y, z, tri, dz_test_4, "m", np.array([0.069, 0.04]))
-
-    tests = CTests()
-    measured_dz_1 = optical_coefficients_1[0]
-    tests.add(CTest('piston mode test 1', measured_dz_1, dz_1*1000, 0.05))
-    measured_dz_2 = optical_coefficients_2[0]
-    tests.add(CTest('piston mode test 2', measured_dz_2, dz_2*1000, 0.05))
-    measured_dz_3 = optical_coefficients_3[0]
-    tests.add(CTest('piston mode test 3', measured_dz_3, dz_3*1000, 0.05))
-    measured_dz_4 = optical_coefficients_4[0]
-    tests.add(CTest('piston mode test 4', measured_dz_4, dz_4*1000, 0.05))
-
-    measured_ry_1 = optical_coefficients_1[1]
-    tests.add(CTest('y rotation test 1', measured_ry_1, theta_y_1, 0.05))
-    measured_ry_2 = optical_coefficients_2[1]
-    tests.add(CTest('y rotation test 2', measured_ry_2, theta_y_2, 0.05))
-    measured_ry_3 = optical_coefficients_3[1]
-    tests.add(CTest('y rotation test 3', measured_ry_3, theta_y_3, 0.05))
-    measured_ry_4 = optical_coefficients_4[1]
-    tests.add(CTest('y rotation test 4', measured_ry_4, theta_y_4, 0.05))
-
-    measured_rx_1 = optical_coefficients_1[2]
-    tests.add(CTest('x rotation test 1', measured_rx_1, theta_x_1, 0.05))
-    measured_rx_2 = optical_coefficients_2[2]
-    tests.add(CTest('x rotation test 2', measured_rx_2, theta_x_2, 0.05))
-    measured_rx_3 = optical_coefficients_3[2]
-    tests.add(CTest('x rotation test 3', measured_rx_3, theta_x_3, 0.05))
-    measured_rx_4 = optical_coefficients_4[2]
-    tests.add(CTest('x rotation test 4', measured_rx_4, theta_x_4, 0.05))
-
-    measured_cur_1 = optical_coefficients_1[3]
-    tests.add(CTest('curvature change test 1', measured_cur_1, 0., 1e-10))
-    measured_cur_2 = optical_coefficients_2[3]
-    tests.add(CTest('curvature change test 2', measured_cur_2, 0., 1e-10))
-    measured_cur_3 = optical_coefficients_3[3]
-    tests.add(CTest('curvature change test 3', measured_cur_3, 0., 1e-10))
-    measured_cur_4 = optical_coefficients_4[3]
-    tests.add(CTest('curvature change test 4', measured_cur_4, 0., 1e-10))
-
-    measured_irr_1 = optical_coefficients_1[4]
-    tests.add(CTest('irregularity change test 1', measured_irr_1, 0., 1e-10))
-    measured_irr_2 = optical_coefficients_2[4]
-    tests.add(CTest('irregularity change test 2', measured_irr_2, 0., 1e-10))
-    measured_irr_3 = optical_coefficients_3[4]
-    tests.add(CTest('irregularity change test 3', measured_irr_3, 0., 1e-10))
-    measured_irr_4 = optical_coefficients_4[4]
-    tests.add(CTest('irregularity change test 4', measured_irr_4, 0., 1e-10))
-
-    blurred_1 = u.check_optical_tolerance(optical_coefficients_1, 'mm')
-    blurred_2 = u.check_optical_tolerance(optical_coefficients_2, 'mm')
-    blurred_3 = u.check_optical_tolerance(optical_coefficients_3, 'mm')
-    blurred_4 = u.check_optical_tolerance(optical_coefficients_4, 'mm')
-    tests.add(CTest('checl optical tolerance test 1', blurred_1, passed_1))
-    tests.add(CTest('checl optical tolerance test 2', blurred_2, passed_2))
-    tests.add(CTest('checl optical tolerance test 3', blurred_3, passed_3))
-    tests.add(CTest('checl optical tolerance test 4', blurred_4, passed_4))
-
-    tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/beam.geo b/katoptron/tests/beam.geo
deleted file mode 100644
index 71c4c0a7..00000000
--- a/katoptron/tests/beam.geo
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-
-//L = 50.;
-//W = 1.;
-//H = 5.;
-//d = 1.;
-
-//L = 50.;
-//W = 5.;
-//H = 5.;
-H_rigid = 1.;
-//d = 1.;
-
-hW = W/2;
-hH = H/2;
-
-//n_L = 60;
-//n_hW = 3;
-//n_hH = 3;
-
-n_L_rigid = 1;
-n_W_rigid = 1;
-n_H_rigid = 1;
-
-
-lc = 1;
-
-delta_H = hH+d;
-
-Point(101) = { 0,  -hW,    d, lc};
-Point(102) = { 0,   0,    d, lc};
-Point(103) = { 0,   hW,    d, lc};
-Point(104) = { L,   hW,    d, lc};
-Point(105) = { L,   0,    d, lc};
-Point(106) = { L,  -hW,    d, lc};
-
-Point(205) = { 0,   -hW, 0, lc};
-Point(206) = { 0,    hW, 0, lc};
-Point(207) = { L,    hW, 0, lc};
-Point(208) = { L,   -hW, 0, lc};
-
-Line(101) = {101, 102};
-Line(102) = {102, 103};
-Line(103) = {103, 104};
-Line(104) = {104, 105};
-Line(105) = {105, 106};
-Line(106) = {106, 101};
-Line(107) = {105, 102};
-
-Line(205) = {205, 206};
-Line(206) = {206, 207};
-Line(207) = {207, 208};
-Line(208) = {208, 205};
-
-Transfinite Line {101,102,104,105} = n_hW+1 Using Progression 1;
-Transfinite Line {103,106,107} = n_L+1 Using Progression 1;
-
-Transfinite Line {205,207} = n_W_rigid+1 Using Progression 1;
-Transfinite Line {206,208} = n_L_rigid+1 Using Progression 1;
-
-Line Loop(101) = {101,-107,105,106};
-Plane Surface(101) = {101};
-Transfinite Surface {101};
-Recombine Surface {101};
-
-Line Loop(102) = {102,103,104,107};
-Plane Surface(102) = {102};
-Transfinite Surface {102};
-Recombine Surface {102};
-
-Line Loop(202) = {-208,-207,-206,-205};
-Plane Surface(202) = {202};
-Transfinite Surface {202};
-Recombine Surface {202};
-
-Extrude {0, 0, hH}
-{
-  Surface{101,102}; Layers{n_hH}; Recombine;
-}
-
-Extrude {0, 0, hH}
-{
-  Surface{230,252}; Layers{n_hH}; Recombine;
-}
-
-Extrude {0, 0, -H_rigid}
-{
-  Surface{202}; Layers{n_H_rigid}; Recombine;
-}
-
-
-
-Physical Volume("Rigid body") = {5};
-Physical Surface("Rigid surface") = {202};
-Physical Surface("Rigid clamped surface") = {309};
-Physical Line("Rigid surface boundary") = {205, 206, 207, 208};
-
-Physical Volume("Beam") = {1,2,3,4};
-Physical Surface("Clamped end") = {217,239,261,283,317};
-Physical Surface("Loaded surface") = {274,296};
-Physical Surface("Beam contact zone") = {101,102};
-Physical Surface("Free end") = {269,247,225,291};
-Physical Line("Beam contact boundary") = {104,105,106,101,102,103};
-Physical Line("Beam contact Dirichlet") = {101,102};
-
-Physical Line("Center of cross section") = {211};
-
-Physical Line("Center of contact surface") = {107};
-
-Mesh.Partitioner = 2;
-Mesh.MetisAlgorithm = 2;
-Mesh.MshFilePartitioned = 0;
diff --git a/katoptron/tests/beam.py b/katoptron/tests/beam.py
deleted file mode 100644
index e2086c7a..00000000
--- a/katoptron/tests/beam.py
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-#import matplotlib2tikz
-# import katoptron.viewer as katv # Error occurs after that
-
-
-def analytical(E, nu, L, W, H, d, p, x):
-
-    EI = ((E * W * H**3) / 12.)
-    q = p * W
-    q_1 = 24*EI*d/L**4
-    q_2 = 72*EI*d/L**4
-    a = (72*EI*d/q)**(0.25)
-
-    print(a)
-
-    print(E)
-    print(nu)
-    print(L)
-    print(W)
-    print(H)
-    print(d)
-    print(p)
-
-    if q < q_1:
-        case_id = 1
-        sol = -((q / (24.*EI)))*(x**4-4.*L*x**3+4.*L**2*x**2)
-    if q >= q_1:
-        case_id = 2
-        sol = -((q / (24.*EI)))*(x**4-2.*L*x**3+L**2*x**2) + \
-            2.*d*x**3/(L**3)-3.*d*x**2/(L**2)
-    if q >= q_2:
-        case_id = 3
-        sol = -((q / (24.*EI))) * \
-            (x**4-((8. / 3.))*a*x**3+2.*a**2*x**2)
-        for i in range(0, len(x)):
-            if x[i] >= a:
-                sol[i] = -d
-
-    print("q")
-    print(q)
-    print(q_1)
-    print(q_2)
-
-    return case_id, sol
-
-
-def analytical_ensemble(E, nu, L, W, H, d, p, x, ensemble_size):
-
-    import numpy as np
-
-    case_id = np.empty([ensemble_size, 1])
-    sol = np.empty([len(x), ensemble_size])
-
-    for i in range(0, ensemble_size):
-        case_id[i], sol[:, i] = analytical(E[i], nu[i], L, W, H, d, p[i], x)
-
-    return case_id, sol
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-    #import matplotlib.pyplot as plt
-
-    DOFperNode = 3
-
-    display = True
-
-    # Mesh
-
-    geo_name = 'beam.geo'
-    mesh_name = 'beam.msh'
-    partitioned_mesh_name = 'beam_k.msh'
-
-    par = {}
-    par['L'] = 50.
-    par['W'] = 5.
-    par['H'] = 5.
-    par['d'] = 1.
-    par['n_L'] = 20
-    par['n_hW'] = 2
-    par['n_hH'] = 2
-
-    ensemble_size = 8
-
-    import shlex
-    import subprocess
-    import os
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    pars = {'L': par['L'], 'W': par['W'], 'H': par['H'], 'd': par['d'],
-            'n_L': par['n_L'], 'n_hW': par['n_hW'], 'n_hH': par['n_hH']}
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size, pars)
-
-    for n1 in msh.nodes:
-        n1.row = n1.no-1
-
-    # Problem
-
-    #msh = gmsh.MeshLoader(mesh_name,work_dir).execute()
-
-    pbl = m.Problem(msh, comm)
-
-    E = 21000 * np.ones(ensemble_size)
-    nu = 0.29 * np.ones(ensemble_size)
-    k = 0
-    d = 0
-
-    # for i in range(0,ensemble_size):
-    #    E[i] = 21000+i*5000
-
-    m.Medium(pbl, "Beam", "Mat 1", E, nu, k, d)
-    m.Medium(pbl, "Rigid body", "Mat 1", E, nu, k, d)
-
-    dx = np.zeros(ensemble_size)
-    dy = np.zeros(ensemble_size)
-    dy2 = np.linspace(0, -2., ensemble_size)
-    dz = 0*np.linspace(0, -2., ensemble_size)
-    dz2 = np.zeros(ensemble_size)
-    dT = np.zeros(ensemble_size)
-    m.Dirichlet(pbl, "Rigid clamped surface",
-                "Clamped 1", 1, dx, 1, dy, 1, dz, 0, dT)
-    m.Dirichlet(pbl, "Clamped end", "Clamped 1", 1, dx, 1, dy, 1, dz2, 0, dT)
-    m.Dirichlet(pbl, "Free end", "Clamped 1", 1, 0.,
-                0, 0., 0, 0., 0, 0., ensemble_size)
-
-    #p = 0.82* np.ones(ensemble_size)
-
-    #p = np.linspace(0.1, 0.835, num=ensemble_size)
-    # np.linspace(1.2, 0., num=ensemble_size) # 3.6 * np.ones(ensemble_size) #np.linspace(1.5, 2., num=ensemble_size)
-    p = 0.9 * np.ones(ensemble_size)
-    for i in range(0, ensemble_size):
-        p[i] = 1.7+(7-i)*0.025
-
-    p[0] = 2.5
-
-    zero = np.zeros(ensemble_size)
-
-    m.Neumann(pbl, "Loaded surface", "Load 1", 0, zero,
-              0, zero, 1, -p, 0, zero, ensemble_size)
-
-    norm1 = tbox.Vector3d(0, 0, -1)
-    norm2 = tbox.Vector3d(0, 0, 1)
-    dg = 0*np.linspace(0., 1., num=ensemble_size)
-
-    dg[0] = 0.
-
-    a = 49.5
-    initiallyClosedNodesList = np.array([], dtype=np.float)
-    #tag_name = "Center of cross section"
-    for el in msh.ntags["Beam contact zone"].elems:
-        for n1 in el.nodes:
-            node_id = n1.no-1
-            if msh.nodes[node_id].pos[0] >= a:
-                initiallyClosedNodesList = np.append(
-                    initiallyClosedNodesList, node_id)
-
-    cont1 = m.Contact(pbl, "Beam contact zone", "contact", norm1, dg)
-    #cont1.setSlaveBoundary(work_dir+"/"+partitioned_mesh_name, "Beam contact boundary")
-    #cont1.setMasterBoundary(work_dir+"/"+partitioned_mesh_name, "Rigid surface boundary")
-    cont1.setInitialyOpen()
-    cont1.setInitiallyClosedNodes(initiallyClosedNodesList)
-    cont1.setDualShapeFunctions()
-    cont1.setSlaveDirichlet(
-        work_dir+"/"+partitioned_mesh_name, "Beam contact Dirichlet")
-    cont1.setSignoriniContact()
-    cont1.setMaster(pbl, "Rigid surface", norm2)
-
-    # Solver
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 100000
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList["MueLu xml file name"] = file_dir + '/multigrid_2_lvls_3_1.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 4
-    solverList['Write txt files'] = True
-    slv = m.IterativeSolver(pbl, solverList,
-                            DOFperNode, ensemble_size)
-
-    nThreads = u.Initialize_Kokkos()
-
-    slv.start()
-
-    active_set_iteration = slv.active_set_iteration
-
-    u.Finalize_Kokkos()
-
-    if rank == 0:
-        import fwk.testing as tst
-        tests = tst.CTests()
-        tests.add(tst.CTest('Number of active set iterations',
-                            active_set_iteration, 3))
-        tests.run()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/tests/direct_solver.xml b/katoptron/tests/direct_solver.xml
deleted file mode 100644
index 7375e732..00000000
--- a/katoptron/tests/direct_solver.xml
+++ /dev/null
@@ -1,116 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 4 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 4 }"/>
-    </ParameterList>
-
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-    </ParameterList>
-
-  
-    <!-- BLOCK SMOOTHERS -->
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="1"/>
-        <!--<Parameter name="relaxation: damping factor" type="double" value="0.9"/>-->
-      </ParameterList>
-    </ParameterList>
-
-
-    <!-- block smoother for block A_{00} -->
-
-    <ParameterList name="mySmooFact2">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <Parameter name="overlap" type="int" value="0"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="1"/>
-        <!--<Parameter name="relaxation: damping factor" type="double" value="0.9"/>-->
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use BGS -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="BlockedGaussSeidelSmoother"/>
-      <Parameter name="Sweeps" type="int" value="1"/>
-      <!--<Parameter name="Damping factor" type="double" value="1.0"/> -->
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact2"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-    <Parameter name="max levels" type="int" value="1"/>
-    <Parameter name="verbosity" type="string" value="Extreme"/>
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <!--<Parameter name="CoarseSolver"      type="string"   value="myBlockSmoother"/>-->
-      <Parameter name="A"                 type="string"   value="NoFactory"/>
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/tests/mirror_data.npz b/katoptron/tests/mirror_data.npz
deleted file mode 100644
index 73e77d11b405902a973af9e39464026fb9c34c9d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 327176
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
z%0A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

diff --git a/katoptron/tests/multigrid_2_lvls_3_1.xml b/katoptron/tests/multigrid_2_lvls_3_1.xml
deleted file mode 100644
index 2d82c0a1..00000000
--- a/katoptron/tests/multigrid_2_lvls_3_1.xml
+++ /dev/null
@@ -1,257 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-
-  <!-- Factory collection -->
-  <ParameterList name="Factories">
-
-    <!-- Note that ParameterLists must be defined prior to being used -->
-
-    <!-- sub block factories -->
-
-    
-    <!-- BLOCK 1 (for submatrix A_{00}) Navier Stokes 4 DOFs per node -->
-    <ParameterList name="mySubBlockAFactory1">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="0"/>
-      <Parameter name="block col"                 type="int"     value="0"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 3 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 3 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 4 DOFs per node on the coarse levels -->
-    <ParameterList name="myCoarseMap1">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myAggFact1">
-      <Parameter name="factory" type="string" value="UncoupledAggregationFactory"/>
-      <Parameter name="aggregation: min agg size" type="int" value="5"/>
-      <Parameter name="aggregation: max selected neighbors" type="int" value="1"/>
-    </ParameterList>
-    
-    <ParameterList name="myTentativePFact1">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <ParameterList name="myRFact1">
-      <Parameter name="factory" type="string" value="TransPFactory"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- We have to use Nullspace1 here. If "Nullspace1" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors -->
-    <ParameterList name="myNspFact1">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace1"/>
-      <Parameter name="Nullspace1" type="string" value="myTentativePFact1"/>
-    </ParameterList>
-    
-    <!-- BLOCK 2 (for submatrix A_{22}) MAXWELL PART-->
-    <ParameterList name="mySubBlockAFactory2">
-      <Parameter name="factory" type="string" value="SubBlockAFactory"/>
-      <Parameter name="block row"                 type="int"     value="1"/>
-      <Parameter name="block col"                 type="int"     value="1"/>
-      <Parameter name="Range map: Striding info"  type="string"  value="{ 1 }"/>
-      <Parameter name="Domain map: Striding info" type="string"  value="{ 1 }"/>
-    </ParameterList>
-
-    <!-- tell the tenative prolongator that we have 1 DOF per node on the coarse levels -->
-    <!-- We use the factory "CoarseMapFactory" which always creates a standard coarse
-         level map starting with GIDs at 0. This is ok as we use Thyra like numbering
-         for the block operators. To obtain unique GIDs one would use the
-         BlockedCoarseMapFactory (see below) -->
-    <ParameterList name="myCoarseMap2">
-      <Parameter name="factory" type="string" value="CoarseMapFactory"/>
-      <Parameter name="Striding info" type="string" value="{ 3 }"/>
-      <Parameter name="Strided block id" type="int" value="-1"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceMappingFact">
-      <Parameter name="factory"                             type="string" value="InterfaceMappingTransferFactory"/>
-    </ParameterList>
-
-    <ParameterList name="myInterfaceAggs2">
-      <Parameter name="factory" type="string" value="InterfaceAggregationFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/> <!-- use aggregates from velocity block! -->
-      <Parameter name="number of DOFs per dual node" type="int" value="1"/>
-      <Parameter name="DualNodeID2PrimalNodeID" type="string" value="myInterfaceMappingFact" />
-    </ParameterList>
-    
-    <ParameterList name="myInterfaceMappingFactDeps" >
-      <Parameter name="dependency for" type="string" value="myInterfaceMappingFact" />
-      <Parameter name="CoarseDualNodeID2PrimalNodeID" type="string" value="myInterfaceAggs2" />
-    </ParameterList>
-
-    <ParameterList name="myTentativePFact2">
-      <Parameter name="factory" type="string" value="TentativePFactory"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- We have to use Nullspace2 here. If "Nullspace2" is not set the 
-         Factory creates the default null space containing of constant 
-         vectors (here only one constant vector) -->
-    <ParameterList name="myNspFact2">
-      <Parameter name="factory" type="string" value="NullspaceFactory"/>
-      <Parameter name="Fine level nullspace" type="string" value="Nullspace2"/>
-      <Parameter name="Nullspace2" type="string" value="myTentativePFact2"/>
-    </ParameterList>
-
-    <!-- FACTORY MANAGERS -->
-
-    <!-- Multigrid setup for velocity block (A_{00}) -->
-    <ParameterList name="myFirstGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-      <Parameter name="P" type="string" value="myTentativePFact1"/>
-      <Parameter name="R" type="string" value="myRFact1"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>
-
-    <!-- Multigrid setup for pressure block (A_{11}) -->
-    <ParameterList name="mySecondGroup">
-      <Parameter name="group" type="string" value="FactoryManager"/>
-      <Parameter name="A" type="string" value="mySubBlockAFactory2"/>
-      <Parameter name="P" type="string" value="myTentativePFact2"/>
-      <Parameter name="Aggregates" type="string" value="myInterfaceAggs2"/>
-      <Parameter name="Nullspace" type="string" value="myNspFact2"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap2"/>
-    </ParameterList>
-
-    <!-- BLOCK TRANSFER operators -->
-
-    <!-- define block prolongation operator using above blocks -->
-    <ParameterList name="myBlockedPFact">
-      <Parameter name="factory" type="string" value="BlockedPFactory"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-         <Parameter name="group" type="string" value="myFirstGroup"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="group" type="string" value="mySecondGroup"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- define block restriction operator using above blocks -->
-    <!-- The block restriction operator is usually always of type
-         GenericRFactory since we want to be able to combine, e.g.,
-         SmoothedAggregation for block A_{00} with e.g. tentative
-         prolongation for block A_{11} (or any other kind of transfer
-         strategy for the subblocks -->
-    <ParameterList name="myBlockedRFact">
-      <Parameter name="factory" type="string" value="GenericRFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-    </ParameterList>
-
-    <!--<ParameterList name="myTransferCoordinatesFact">
-      <Parameter name="factory"                             type="string" value="CoordinatesTransferFactory"/>
-      <Parameter name="Aggregates" type="string" value="myAggFact1"/>
-      <Parameter name="CoarseMap" type="string" value="myCoarseMap1"/>
-    </ParameterList>-->
-
-    <ParameterList name="myBlockedRAPFact">
-      <Parameter name="factory" type="string" value="BlockedRAPFactory"/>
-      <Parameter name="P" type="string" value="myBlockedPFact"/>
-      <Parameter name="R" type="string" value="myBlockedRFact"/>
-      <ParameterList name="TransferFactories">
-        <!--<Parameter name="For Coordinates"                   type="string" value="myTransferCoordinatesFact"/>-->
-        <Parameter name="DoTransferSpecialMappingForAggregates"                   type="string" value="myInterfaceMappingFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- REBALANCING -->
-    
-    
-    <!-- BLOCK SMOOTHERS -->
-
-
-    <ParameterList name="mySmooFact1">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="1"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Build Schur Complement factory (for being used in SIMPLE type block smoother)-->
-    <ParameterList name="mySchurCompFact">
-      <Parameter name="factory" type="string" value="SchurComplementFactory"/>
-      <Parameter name="omega" type="double" value="1.0"/>
-      <Parameter name="lumping" type="bool" value="true"/>
-    </ParameterList>
-
-    <!-- block smoother for block A_{11} respective the Schur complement operator -->
-    <ParameterList name="mySchurSmooFact">
-      <Parameter name="factory" type="string" value="TrilinosSmoother"/>
-      <Parameter name="type" type="string" value="RELAXATION"/>
-      <ParameterList name="ParameterList">
-        <Parameter name="relaxation: type" type="string" value="Symmetric Gauss-Seidel"/>
-        <Parameter name="relaxation: sweeps" type="int"    value="1"/>
-        <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-      </ParameterList>
-    </ParameterList>
-
-    <!-- Use SIMPLE: -->
-    <!-- User has to define two blocks with each containing a smoother for
-         the corresponding sub-block matrix (see above) -->
-    <ParameterList name="myBlockSmoother">
-      <Parameter name="factory" type="string" value="SimpleSmoother"/>
-      <Parameter name="Sweeps" type="int" value="2"/>
-      <Parameter name="Damping factor" type="double" value="0.9"/>
-      <Parameter name="UseSIMPLEC" type="bool" value="false"/>
-      <!-- factory manager for block 1 -->
-      <ParameterList name="block1">
-        <Parameter name="A" type="string" value="mySubBlockAFactory1"/>
-        <Parameter name="Smoother" type="string" value="mySmooFact1"/>
-      </ParameterList>
-      <!-- factory manager for block 2 -->
-      <ParameterList name="block2">
-        <Parameter name="A" type="string" value="mySchurCompFact"/>
-        <Parameter name="Smoother" type="string" value="mySchurSmooFact"/>
-      </ParameterList>
-    </ParameterList>
-
-    <ParameterList name="myBlockDirectSolver">
-      <Parameter name="factory" type="string" value="BlockedDirectSolver"/>
-    </ParameterList>
-
-  </ParameterList>
-  <!-- end Factories -->
-
-  <!-- Definition of the multigrid preconditioner -->
-  <ParameterList name="Hierarchy">
-
-    <Parameter name="max levels"          type="int"      value="2"/>
-    <Parameter name="coarse: max size"    type="int"      value="2500"/>
-    <Parameter name="verbosity"           type="string"   value="High"/>
-    <Parameter name="aggregation: export visualization data"           type="bool"   value="true"/>
-
-    <ParameterList name="AllLevel">
-      <Parameter name="startLevel"        type="int"      value="0"/>
-      <Parameter name="Smoother"          type="string"   value="myBlockSmoother"/>
-      <Parameter name="CoarseSolver"      type="string"   value="myBlockDirectSolver"/>
-      <Parameter name="P"                 type="string"   value="myBlockedPFact"/>
-      <Parameter name="R"                 type="string"   value="myBlockedRFact"/>
-      <Parameter name="A"                 type="string"   value="myBlockedRAPFact"/>
-      <!--<Parameter name="Coordinates"       type="string"   value="myRebBlockedPFact"/>-->
-    </ParameterList>
-
-  </ParameterList>
-
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/tests/plate.py b/katoptron/tests/plate.py
deleted file mode 100644
index 8e5c971c..00000000
--- a/katoptron/tests/plate.py
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-from katoptron.CMAME import model
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-
-from fwk.wutils import parseargs
-
-from PyTrilinos import Teuchos
-
-import katoptron.utilities as u
-
-from katoptron.readers import read_Belos
-from fwk.testing import *
-
-
-def main():
-    """
-    This loads the mesh and define the case ids and ensemble sizes
-    """
-    comm, rank, size = m.utilities.import_MPI()
-
-    if size == 1:
-        args = parseargs()
-
-        file_dir = os.path.dirname(__file__)
-        work_dir = os.getcwd()
-
-        # Units in the meshes are in mm
-        msh = u.fuse_meshes('plate_1.geo', 'plate_1_tmp', 'plate_2.geo',
-                            'plate_2_tmp', 'plate_fused',
-                            file_dir + '/../CMAME/mesh', work_dir, comm, rank,
-                            size)
-
-        np.random.seed(42)
-        N = 1
-        num_random_variables = 20
-        randomVariable = np.zeros((N, num_random_variables))
-
-        p = model.get_parameters(0, 0)
-        p['Write txt files'] = True
-        p['MueLu xml template file name'] = '/../preconditioners/SIMPLE_gs_direct_lvl.xml.in'
-
-        ensemble_size = 1
-
-        pm = model.plate_model(ensemble_size, randomVariable, msh, comm,
-                               file_dir, work_dir, p)
-
-        nThreads = u.Initialize_Kokkos()
-        pm.run()
-        u.Finalize_Kokkos()
-
-        iter_indices, residuals = read_Belos(work_dir + '/belos_out.txt', 1)
-
-        tests = CTests()
-        nIterations = iter_indices[-1]
-        tests.add(CTest('Has converged', nIterations, 97, 1e-2))
-        tests.run()
-
-
-if __name__ == "__main__":
-    main()
\ No newline at end of file
diff --git a/katoptron/thesis/test_1/1_cube.geo b/katoptron/thesis/test_1/1_cube.geo
deleted file mode 100644
index 99d07474..00000000
--- a/katoptron/thesis/test_1/1_cube.geo
+++ /dev/null
@@ -1,39 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-nC1 = 4;
-
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Transfinite Line {1,2,3,4} = nC1+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nC1}; Recombine;
-}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Point("Measure point 1") = {4};
-Physical Point("Measure point 2") = {1};
diff --git a/katoptron/thesis/test_1/1_cube.py b/katoptron/thesis/test_1/1_cube.py
deleted file mode 100644
index 36106032..00000000
--- a/katoptron/thesis/test_1/1_cube.py
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-
-
-def tar_results(directory, filename, rank):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        for file in glob.glob('*'):
-            if file.endswith(".tar.gz"):
-                print(file + ' is not included')
-            else:
-                tf.add(file)
-        tf.close()
-
-
-def model(msh,
-          E,
-          p,
-          ensemble_size,
-          case_name,
-          zero_initial_guess=True,
-          prec=False):
-    comm, rank, size = m.utilities.import_MPI()
-
-    pbl = m.Problem(msh, comm)
-
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0., 1, 0., 1, 0., 1, 0.,
-                ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 100
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    if prec:
-        mueluParams = Teuchos.ParameterList()
-        mueluParams['number of equations'] = 3
-        mueluParams['max levels'] = 1
-        mueluParams['coarse: type'] = "RELAXATION"
-
-        mueluParamsSub2 = Teuchos.ParameterList()
-        mueluParamsSub2['relaxation: type'] = "Jacobi"
-        mueluParamsSub2['relaxation: sweeps'] = 1
-        mueluParamsSub2['relaxation: damping factor'] = 1.
-
-        mueluParams['verbosity'] = "low"
-
-        mueluParams['coarse: params'] = mueluParamsSub2
-
-        solverList['mueluParams'] = mueluParams
-        solverList['Use preconditioner'] = True
-    else:
-        solverList['Use preconditioner'] = False
-
-    if not zero_initial_guess:
-        file_dir = os.path.dirname(__file__)
-        solverList['Initial guess'] = file_dir + '/initial_guess.txt'
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write txt files'] = True
-    solverList['Write matrix and vectors'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    if not os.path.exists(case_name):
-        os.makedirs(case_name)
-    os.chdir(case_name)
-
-    if rank == 0:
-        np.savetxt('E.txt', E)
-        np.savetxt('p.txt', p)
-
-    slv.start()
-
-    os.chdir('..')
-
-
-def main():
-    comm, rank, size = u.import_MPI()
-
-    useER = m.UseEnsembleReduction()
-
-    geo_name = '1_cube.geo'
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size)
-
-    E_mean = 1.
-    E_min = 0.75
-    E_max = 1.25
-
-    E_min_2 = 0.95
-    E_max_2 = 1.05
-
-    E_min_3 = 1.2
-    E_max_3 = 1.3
-
-    p_mean = 0.1
-    p_min = 0.075
-    p_max = 0.125
-
-    ensemble_size = 1
-    E = E_mean * np.ones(ensemble_size)
-    p = p_mean * np.ones(ensemble_size)
-    directory_case_id = 'mean'
-
-    nThreads = u.Initialize_Kokkos()
-    model(msh, E, p, ensemble_size, directory_case_id)
-
-    ensemble_sizes = [8, 16, 32]
-
-    for ensemble_size in ensemble_sizes:
-        E = np.linspace(E_min, E_max, ensemble_size)
-        p = p_mean * np.ones(ensemble_size)
-        directory_case_id = 'test_1_s_' + str(ensemble_size)
-
-        model(msh, E, p, ensemble_size, directory_case_id)
-
-        E = np.linspace(E_min_2, E_max_2, ensemble_size)
-        p = p_mean * np.ones(ensemble_size)
-        directory_case_id = 'test_6_s_' + str(ensemble_size)
-
-        model(msh, E, p, ensemble_size, directory_case_id)
-
-        E = np.linspace(E_min_3, E_max_3, ensemble_size)
-        p = p_mean * np.ones(ensemble_size)
-        directory_case_id = 'test_7_s_' + str(ensemble_size)
-
-        model(msh, E, p, ensemble_size, directory_case_id)
-
-        E = E_mean * np.ones(ensemble_size)
-        p = np.linspace(p_min, p_max, ensemble_size)
-        directory_case_id = 'test_2_s_' + str(ensemble_size)
-
-        model(msh, E, p, ensemble_size, directory_case_id)
-
-        E = np.linspace(E_min, E_max, ensemble_size)
-        p = np.linspace(p_min, p_max, ensemble_size)
-        directory_case_id = 'test_3_s_' + str(ensemble_size)
-
-        model(msh, E, p, ensemble_size, directory_case_id)
-
-        E = np.linspace(E_min, E_max, ensemble_size)
-        p = np.linspace(p_min, p_max, ensemble_size)
-        directory_case_id = 'test_4_s_' + str(ensemble_size)
-
-        model(msh, E, p, ensemble_size, directory_case_id, True, True)
-
-        E = np.linspace(E_min, E_max, ensemble_size)
-        p = np.linspace(p_min, p_max, ensemble_size)
-        directory_case_id = 'test_5_s_' + str(ensemble_size)
-
-        model(msh, E, p, ensemble_size, directory_case_id, False, False)
-
-    u.Finalize_Kokkos()
-
-    if useER:
-        tar_results(work_dir, 'all_results_ER', rank)
-    else:
-        tar_results(work_dir, 'all_results_NER', rank)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_1/blake.slurm.sh b/katoptron/thesis/test_1/blake.slurm.sh
deleted file mode 100644
index 43508ca5..00000000
--- a/katoptron/thesis/test_1/blake.slurm.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_1
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_1.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_1/1_cube.py
diff --git a/katoptron/thesis/test_1/initial_guess.txt b/katoptron/thesis/test_1/initial_guess.txt
deleted file mode 100644
index a3d5bf4d..00000000
--- a/katoptron/thesis/test_1/initial_guess.txt
+++ /dev/null
@@ -1,375 +0,0 @@
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-1.03389366873617355e-01
-1.03389366873706354e-01
-9.88909850986351091e-01
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
-0.00000000000000000e+00
--1.03389366873873748e-01
-1.03389366873748376e-01
-9.88909850986497641e-01
--1.03389366873874095e-01
--1.03389366873748056e-01
-9.88909850986497196e-01
-1.03389366873616564e-01
--1.03389366873706368e-01
-9.88909850986350536e-01
--5.27296546408627456e-02
-1.03300075007310380e-01
-9.86005241933825549e-01
--1.72648546726014513e-13
-1.03165915332760733e-01
-9.83998313600647156e-01
-5.27296546407599667e-02
-1.03300075007326381e-01
-9.86005241933630372e-01
--5.27296546408623015e-02
--1.03300075007309727e-01
-9.86005241933826104e-01
--1.73766147860502091e-13
--1.03165915332760275e-01
-9.83998313600647267e-01
-5.27296546407599598e-02
--1.03300075007326450e-01
-9.86005241933629373e-01
--1.03300075007559222e-01
-5.27296546408203490e-02
-9.86005241933823440e-01
--1.03165915333046532e-01
-3.03730987743003057e-16
-9.83998313600758512e-01
--1.03300075007560152e-01
--5.27296546408204739e-02
-9.86005241933823551e-01
-1.03300075007261086e-01
-5.27296546408151864e-02
-9.86005241933572529e-01
-1.03165915332737959e-01
--1.50785363550943402e-16
-9.83998313600441432e-01
-1.03300075007260045e-01
--5.27296546408148326e-02
-9.86005241933572085e-01
--5.26878113525478114e-02
-5.26878113526379893e-02
-9.83361152577813646e-01
--5.26718377856561157e-02
-4.59250629122190593e-16
-9.81523476744442736e-01
--5.26878113525460490e-02
--5.26878113526386971e-02
-9.83361152577813757e-01
--5.79473484698294784e-13
-5.26718377860720885e-02
-9.81523476743921708e-01
--9.13420568557926768e-13
-1.73058135287993529e-16
-9.79652571577124376e-01
--5.81996096482450406e-13
--5.26718377860717554e-02
-9.81523476743922374e-01
-5.26878113528938263e-02
-5.26878113529958003e-02
-9.83361152577015840e-01
-5.26718377863194739e-02
--7.11399507950741881e-17
-9.81523476743163203e-01
-5.26878113528952974e-02
--5.26878113529944958e-02
-9.83361152577014952e-01
--8.25498591021375377e-02
-8.25498591021505412e-02
-2.71696757483461837e-01
--9.70753326394316052e-02
-9.70753326393827692e-02
-5.02410726903524729e-01
--1.01586615502965605e-01
-1.01586615502849836e-01
-7.41394325273555310e-01
-1.01586615502623739e-01
-1.01586615502625460e-01
-7.41394325273904697e-01
-9.70753326393432869e-02
-9.70753326392596871e-02
-5.02410726904001459e-01
-8.25498591023276773e-02
-8.25498591022339884e-02
-2.71696757483956830e-01
--8.25498591021385231e-02
--8.25498591021505551e-02
-2.71696757483462170e-01
--9.70753326394329930e-02
--9.70753326393827276e-02
-5.02410726903525173e-01
--1.01586615502966812e-01
--1.01586615502849628e-01
-7.41394325273555421e-01
-1.01586615502622532e-01
--1.01586615502625405e-01
-7.41394325273903809e-01
-9.70753326393420934e-02
--9.70753326392593680e-02
-5.02410726904001237e-01
-8.25498591023268447e-02
--8.25498591022338357e-02
-2.71696757483956663e-01
-3.30748424499299962e-02
-8.29264144897700478e-02
-2.48089635635204142e-01
-4.97277796449807838e-02
-9.85915368840958040e-02
-4.91357562219044863e-01
-5.15867656326637405e-02
-1.01848850896934545e-01
-7.36712754118903246e-01
-3.39915264163419894e-13
-8.41148355803972708e-02
-2.46660235067398870e-01
-3.44793504862767467e-13
-9.92705012130368630e-02
-4.85740960262001420e-01
--9.26442092970955842e-14
-1.02210065241999007e-01
-7.33706284948368648e-01
--3.30748424502770866e-02
-8.29264144900013628e-02
-2.48089635634937633e-01
--4.97277796452340604e-02
-9.85915368846882190e-02
-4.91357562219005006e-01
--5.15867656324931825e-02
-1.01848850897280407e-01
-7.36712754118272084e-01
--8.29264144898249206e-02
-3.30748424500673238e-02
-2.48089635634770489e-01
--8.41148355803735398e-02
-1.12038455825991370e-15
-2.46660235067105327e-01
--8.29264144898272382e-02
--3.30748424500678234e-02
-2.48089635634771016e-01
--9.85915368848912788e-02
-4.97277796452564799e-02
-4.91357562219088828e-01
--9.92705012138074966e-02
-1.77847510590181174e-15
-4.85740960262223742e-01
--9.85915368848947760e-02
--4.97277796452573403e-02
-4.91357562219089217e-01
--1.01848850897806736e-01
-5.15867656327469587e-02
-7.36712754118169610e-01
--1.02210065242970882e-01
-1.60844849378749812e-15
-7.33706284947798659e-01
--1.01848850897809526e-01
--5.15867656327476248e-02
-7.36712754118169388e-01
-1.01848850897163098e-01
-5.15867656327591156e-02
-7.36712754118855950e-01
-1.02210065242353931e-01
--1.26226634544528276e-15
-7.33706284948549947e-01
-1.01848850897160420e-01
--5.15867656327581858e-02
-7.36712754118856061e-01
-9.85915368847834067e-02
-4.97277796453790832e-02
-4.91357562219043253e-01
-9.92705012138538484e-02
--1.48995477504196741e-15
-4.85740960262005916e-01
-9.85915368847802009e-02
--4.97277796453780771e-02
-4.91357562219042754e-01
-8.29264144904164197e-02
-3.30748424502912627e-02
-2.48089635635469125e-01
-8.41148355811928566e-02
--8.52956823945958511e-16
-2.46660235067932360e-01
-8.29264144904144351e-02
--3.30748424502907284e-02
-2.48089635635468736e-01
-3.30748424499322097e-02
--8.29264144897712829e-02
-2.48089635635204614e-01
-4.97277796449838785e-02
--9.85915368840976081e-02
-4.91357562219044808e-01
-5.15867656326660096e-02
--1.01848850896935739e-01
-7.36712754118903246e-01
-3.36557671758980498e-13
--8.41148355803970488e-02
-2.46660235067398648e-01
-3.39868792045555024e-13
--9.92705012130363079e-02
-4.85740960262001420e-01
--9.64588056534605612e-14
--1.02210065241998813e-01
-7.33706284948368426e-01
--3.30748424502747482e-02
--8.29264144899998085e-02
-2.48089635634936967e-01
--4.97277796452307505e-02
--9.85915368846858459e-02
-4.91357562219005006e-01
--5.15867656324907956e-02
--1.01848850897278298e-01
-7.36712754118272195e-01
-3.30537858775551557e-02
-3.30537858791016825e-02
-2.24168574765167633e-01
-3.33577827719228476e-02
--2.71054088782021333e-16
-2.22720568574055949e-01
-3.30537858775624624e-02
--3.30537858790991221e-02
-2.24168574765168827e-01
-4.96925794685787528e-02
-4.96925794703856893e-02
-4.80358805864844085e-01
-5.01102262788138339e-02
--1.06469913134349292e-15
-4.74827900883885989e-01
-4.96925794685891473e-02
--4.96925794703812901e-02
-4.80358805864843086e-01
-5.16178568703299506e-02
-5.16178568710437061e-02
-7.32425308234624817e-01
-5.17653261816935217e-02
--1.30296575160951638e-15
-7.29481147248424056e-01
-5.16178568703381455e-02
--5.16178568710397509e-02
-7.32425308234624151e-01
-1.01269713738389127e-12
-3.33577827731780935e-02
-2.22720568573127664e-01
-7.44830245625321753e-13
--3.98111993231309839e-17
-2.21326420342750990e-01
-1.00285227461946099e-12
--3.33577827731781559e-02
-2.22720568573127276e-01
-8.90476060506571976e-13
-5.01102262798669984e-02
-4.74827900884014553e-01
-1.47109838361844396e-13
--3.26513381238924380e-16
-4.69212258129147353e-01
-8.76708436884517458e-13
--5.01102262798666584e-02
-4.74827900884014553e-01
--8.94808599265584483e-13
-5.17653261812182283e-02
-7.29481147247702411e-01
--2.06767959228923246e-12
-1.40470294138712692e-17
-7.26509893878956814e-01
--9.04715419262577115e-13
--5.17653261812177634e-02
-7.29481147247702966e-01
--3.30537858791589423e-02
-3.30537858785096769e-02
-2.24168574764613937e-01
--3.33577827736174296e-02
-6.96497542114492182e-16
-2.22720568572950001e-01
--3.30537858791508030e-02
--3.30537858785124108e-02
-2.24168574764612383e-01
--4.96925794692624490e-02
-4.96925794695352099e-02
-4.80358805865632010e-01
--5.01102262790585895e-02
-1.39022753198995386e-15
-4.74827900884764453e-01
--4.96925794692506945e-02
--4.96925794695394635e-02
-4.80358805865633343e-01
--5.16178568688406211e-02
-5.16178568698689305e-02
-7.32425308232371952e-01
--5.17653261791708452e-02
-1.80179954679740054e-15
-7.29481147245931938e-01
--5.16178568688317740e-02
--5.16178568698726012e-02
-7.32425308232372840e-01
diff --git a/katoptron/thesis/test_1/post_process.py b/katoptron/thesis/test_1/post_process.py
deleted file mode 100644
index 67ff5c3e..00000000
--- a/katoptron/thesis/test_1/post_process.py
+++ /dev/null
@@ -1,341 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import katoptron.eigenvalues as e
-import katoptron.readers as r
-import katoptron.convergence as c
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-import matplotlib.pyplot as plt
-
-
-def read_mm_vector(filename, ensemble_size):
-    with open(filename, 'r') as my_file:
-        text = my_file.read().splitlines(True)
-        if ensemble_size > 1:
-            for i in range(2, len(text)):
-                text[i] = text[i].replace("[", "")
-                text[i] = text[i].replace("]", "")
-
-    X = np.genfromtxt(text[2:])
-    return X
-
-
-def read_mm_sparse_matrix(filename, ensemble_size):
-    with open(filename, 'r') as my_file:
-        text = my_file.read().splitlines(True)
-        if ensemble_size > 1:
-            for i in range(2, len(text)):
-                text[i] = text[i].replace("[", "")
-                text[i] = text[i].replace("]", "")
-
-    sizes = [375, 375]  # np.genfromtxt(text[1])
-    data = np.genfromtxt(text[2:])
-    A = np.zeros((int(sizes[0]), int(sizes[1]), ensemble_size))
-    for i in range(0, data.shape[0]):
-        A[int(data[i, 0]) - 1, int(data[i, 1]) - 1, :] = data[i, 2:]
-    return A
-
-
-def extract_values(filename, node_id, which_dof, dof_per_node, ensemble_size):
-    output = np.zeros((ensemble_size, ))
-    X = read_mm_vector(filename, ensemble_size)
-    output = X[dof_per_node * node_id + which_dof, :]
-    return output
-
-
-def compare_QoI(base_dir_NER, base_dir_ER, case_ids, ensemble_sizes):
-    node_id = 46
-    which_dof = 2
-    dof_per_node = 3
-
-    for case_id in case_ids:
-        for ensemble_size in ensemble_sizes:
-            if case_id == 2:
-                param_min = 0.075
-                param_max = 0.125
-            elif case_id == 6:
-                param_min = 0.95
-                param_max = 1.05
-            elif case_id == 7:
-                param_min = 1.2
-                param_max = 1.3
-            else:
-                param_min = 0.75
-                param_max = 1.25
-
-            param = np.linspace(param_min, param_max, ensemble_size)
-            solution_file_name = base_dir_NER + 'test_' + str(
-                case_id) + '_s_' + str(ensemble_size) + '/x_mm.txt'
-            output_NER = extract_values(solution_file_name, node_id, which_dof,
-                                        dof_per_node, ensemble_size)
-            solution_file_name = base_dir_ER + 'test_' + str(
-                case_id) + '_s_' + str(ensemble_size) + '/x_mm.txt'
-            output_ER = extract_values(solution_file_name, node_id, which_dof,
-                                       dof_per_node, ensemble_size)
-            plt.figure()
-            plt.plot(output_NER, 'o-')
-            plt.plot(output_ER, 'o-')
-            plt.savefig('QoI_case_' + str(case_id) + '_s_' +
-                        str(ensemble_size) + '.pdf')
-
-            f = open(
-                'QoI_case_' + str(case_id) + '_s_' + str(ensemble_size) +
-                '.txt', 'w')
-            for l in range(0, ensemble_size):
-                print(str(param[l]) + ' ' + str(
-                    output_NER[l]) + ' ' + str(
-                        output_ER[l]) + ' ' + str(output_NER[l] - output_ER[l]), file=f)
-            f.closed
-
-
-def read_Belos(base_dir_NER, base_dir_ER, case_ids, ensemble_sizes):
-    for case_id in case_ids:
-        for ensemble_size in ensemble_sizes:
-            filename_NER = base_dir_NER + 'test_' + str(case_id) + '_s_' + str(
-                ensemble_size) + '/belos_out.txt'
-            iter_indices_NER, residuals_NER = r.read_Belos(
-                filename_NER, ensemble_size)
-
-            filename_ER = base_dir_ER + 'test_' + str(case_id) + '_s_' + str(
-                ensemble_size) + '/belos_out.txt'
-            iter_indices_ER, residuals_ER = r.read_Belos(filename_ER, 1)
-
-            f = open(
-                'Belos_NER_' + str(case_id) + '_s_' + str(ensemble_size) +
-                '.txt', 'w')
-            for i in range(0, len(iter_indices_NER)):
-                tmp = str(i) + ' '
-                for l in range(0, ensemble_size):
-                    tmp = tmp + str(residuals_NER[i, l]) + ' '
-                print(tmp, file=f)
-            f.closed
-
-            f = open(
-                'Belos_ER_' + str(case_id) + '_s_' + str(ensemble_size) +
-                '.txt', 'w')
-            for i in range(0, len(iter_indices_ER)):
-                print(str(i) + ' ' + str(residuals_ER[i]), file=f)
-            f.closed
-
-            plt.figure()
-            plt.semilogy(iter_indices_NER, residuals_NER[:, 0], 'o-')
-            plt.semilogy(iter_indices_ER, residuals_ER, 'o-')
-            plt.savefig('Belos_ER_' + str(case_id) + '_s_' +
-                        str(ensemble_size) + '.pdf')
-
-
-def compute_cum_delta_normal(lambdas,
-                             omegas,
-                             lambda_min=None,
-                             lambda_max=None,
-                             n=200):
-
-    indices = np.argsort(lambdas)
-    lambdas = lambdas[indices]
-    omegas = omegas[indices]
-
-    if lambda_min is None:
-        lambda_min = lambdas[0]
-    if lambda_max is None:
-        lambda_max = lambdas[-1]
-
-    lambda_discrete = np.linspace(lambda_min, lambda_max, n)
-    dlambda = ((lambda_max - lambda_min) / (n - 1))
-
-    cum_delta = np.zeros((n, ))
-    deriv_delta = np.zeros((n, ))
-    cum_delta_omega = np.zeros((n, ))
-    deriv_delta_omega = np.zeros((n, ))
-
-    n_lambdas = len(lambdas)
-
-    first_index = 0
-    second_index = 0
-    for i in range(1, n):
-        for j in range(second_index, n_lambdas):
-            if lambda_discrete[i] < lambdas[j]:
-                second_index = j
-                break
-        cum_delta[i] = cum_delta[i - 1] + second_index - first_index
-        cum_delta_omega[i] = cum_delta_omega[i - 1] + np.sum(
-            omegas[first_index:second_index])
-        deriv_delta[i] = ((second_index - first_index) / dlambda)
-        deriv_delta_omega[i] = (np.sum(
-            omegas[first_index:second_index]) / dlambda)
-        first_index = second_index
-
-    percent_delta = (cum_delta / cum_delta[n - 1])
-    percent_delta_omega = (cum_delta_omega / cum_delta_omega[n - 1])
-
-    return lambda_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega
-
-
-def compute_deltas_omegas(base_dir, case_ids, ensemble_sizes):
-    for case_id in case_ids:
-        for ensemble_size in ensemble_sizes:
-
-            filename_b = base_dir + 'test_' + str(case_id) + '_s_' + str(
-                ensemble_size) + '/b_mm_after_bc.txt'
-            filename_A = base_dir + 'test_' + str(case_id) + '_s_' + str(
-                ensemble_size) + '/A_mm_after_bc.txt'
-
-            b = read_mm_vector(filename_b, ensemble_size)
-            A = read_mm_sparse_matrix(filename_A, ensemble_size)
-
-            for l in range(0, ensemble_size):
-                b_l = b[:, l]
-                A_l = e.get_symmetrical_part(A[:, :, l])
-                deltas, omegas = e.compute_deltas_omegas_normal(A_l, b_l)
-                indices = np.argsort(np.real(deltas))
-                f = open(
-                    'deltas_omegas_' + str(case_id) + '_s_' +
-                    str(ensemble_size) + '_l_' + str(l) + '.txt', 'w')
-                for i in range(0, len(deltas)):
-                    print(str(np.real(deltas[indices[i]])) + ' ' + str(
-                        np.imag(deltas[indices[i]])) + ' ' + str(
-                            omegas[indices[i]]) + ' ' + str(i), file=f)
-                f.closed
-
-                lambda_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta_normal(
-                    np.real(deltas),
-                    omegas,
-                    lambda_min=0.,
-                    lambda_max=12.,
-                    n=300)
-
-                plt.figure()
-                plt.plot(lambda_discrete, cum_delta)
-                plt.savefig('cum_delta_' + str(case_id) + '_s_' +
-                            str(ensemble_size) + '_l_' + str(l) + '.pdf')
-                plt.close()
-                plt.figure()
-                plt.plot(lambda_discrete, deriv_delta)
-                plt.savefig('deriv_delta_' + str(case_id) + '_s_' +
-                            str(ensemble_size) + '_l_' + str(l) + '.pdf')
-                plt.close()
-                plt.figure()
-                plt.plot(lambda_discrete, cum_delta_omega)
-                plt.savefig('cum_delta_omega_' + str(case_id) + '_s_' +
-                            str(ensemble_size) + '_l_' + str(l) + '.pdf')
-                plt.close()
-                plt.figure()
-                plt.plot(lambda_discrete, deriv_delta_omega)
-                plt.savefig('deriv_delta_omega_' + str(case_id) + '_s_' +
-                            str(ensemble_size) + '_l_' + str(l) + '.pdf')
-                plt.close()
-
-                if l == 0:
-                    deltas_total = np.real(deltas)
-                    omegas_total = omegas
-                else:
-                    deltas_total = np.append(deltas_total, np.real(deltas))
-                    omegas_total = np.append(omegas_total, omegas)
-
-            lambda_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta_normal(
-                deltas_total,
-                omegas_total,
-                lambda_min=0.,
-                lambda_max=12.,
-                n=300)
-
-            plt.figure()
-            plt.plot(lambda_discrete, cum_delta)
-            plt.savefig('cum_delta_' + str(case_id) + '_s_' +
-                        str(ensemble_size) + '_all.pdf')
-            plt.close()
-            plt.figure()
-            plt.plot(lambda_discrete, deriv_delta)
-            plt.savefig('deriv_delta_' + str(case_id) + '_s_' +
-                        str(ensemble_size) + '_all.pdf')
-            plt.close()
-            plt.figure()
-            plt.plot(lambda_discrete, cum_delta_omega)
-            plt.savefig('cum_delta_omega_' + str(case_id) + '_s_' +
-                        str(ensemble_size) + '_all.pdf')
-            plt.close()
-            plt.figure()
-            plt.plot(lambda_discrete, deriv_delta_omega)
-            plt.savefig('deriv_delta_omega_' + str(case_id) + '_s_' +
-                        str(ensemble_size) + '_all.pdf')
-            plt.close()
-            '''
-            n_per_l = len(b_l)
-            n_total = n_per_l*ensemble_size
-            b_total = np.zeros((n_total,))
-            A_total = np.zeros((n_total,n_total))
-            for l in range(0,ensemble_size):
-                b_total[n_per_l*l:n_per_l*(l+1)] = b[:,l]
-                A_total[n_per_l*l:n_per_l*(l+1),n_per_l*l:n_per_l*(l+1)] = e.get_symmetrical_part(A[:,:,l])
-            deltas_total, omegas_total = e.compute_deltas_omegas_normal(A_total,b_total)
-
-            lambda_discrete, cum_delta, deriv_delta, cum_delta_omega, deriv_delta_omega, percent_delta, percent_delta_omega = compute_cum_delta_normal(deltas_total,omegas_total, lambda_min=0., lambda_max=12., n = 300  )            
-
-            plt.figure()
-            plt.plot(lambda_discrete, cum_delta)
-            plt.savefig('cum_delta_' + str(case_id) + '_s_' + str(ensemble_size) + '_all_2.pdf')
-            plt.close()
-            plt.figure()
-            plt.plot(lambda_discrete, deriv_delta)
-            plt.savefig('deriv_delta_' + str(case_id) + '_s_' + str(ensemble_size) + '_all_2.pdf')             
-            plt.close()
-            plt.figure()
-            plt.plot(lambda_discrete, cum_delta_omega)
-            plt.savefig('cum_delta_omega_' + str(case_id) + '_s_' + str(ensemble_size) + '_all_2.pdf')                                
-            plt.close()
-            plt.figure()
-            plt.plot(lambda_discrete, deriv_delta_omega)
-            plt.savefig('deriv_delta_omega_' + str(case_id) + '_s_' + str(ensemble_size) + '_all_2.pdf')             
-            plt.close() 
-            '''
-
-
-def compute_convergence(base_dir, case_ids, ensemble_sizes, k_max):
-    for case_id in case_ids:
-        for ensemble_size in ensemble_sizes:
-            for l in range(0, ensemble_size):
-                data = np.genfromtxt('deltas_omegas_' + str(case_id) + '_s_' +
-                                     str(ensemble_size) + '_l_' + str(l) +
-                                     '.txt')
-                deltas = data[:, 0]
-                omegas = data[:, 2]
-
-                n = len(deltas)
-
-                convergence = c.compute_convergence_serial_normal(k_max,
-                                                                  n,
-                                                                  omegas,
-                                                                  deltas,
-                                                                  verbose=True)
-
-
-def main():
-    base_dir_NER = '/Volumes/HD_SONY/Thesis/Test_1/all_results_NER_thesis1/'
-    base_dir_ER = '/Volumes/HD_SONY/Thesis/Test_1/all_results_ER_thesis1/'
-
-    case_ids = [1, 2, 3, 4, 5, 6, 7]
-    ensemble_sizes = [8, 16, 32]
-
-    compare_QoI(base_dir_NER, base_dir_ER, case_ids, ensemble_sizes)
-    read_Belos(base_dir_NER, base_dir_ER, case_ids, ensemble_sizes)
-    #compute_deltas_omegas(base_dir_NER, case_ids, ensemble_sizes)
-
-    k_max = 3
-    case_ids = [1]
-    ensemble_sizes = [8]
-
-    #compute_convergence(base_dir_NER, case_ids, ensemble_sizes, k_max)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_2/1_cube.geo b/katoptron/thesis/test_2/1_cube.geo
deleted file mode 100644
index f3bd653d..00000000
--- a/katoptron/thesis/test_2/1_cube.geo
+++ /dev/null
@@ -1,42 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-//nCx = 3;
-//nCy = 4;
-//nCz = 5;
-
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Transfinite Line {1,3} = nCx+1 Using Progression 1;
-Transfinite Line {2,4} = nCz+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nCy}; Recombine;
-}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Point("Measure point 1") = {4};
-Physical Point("Measure point 2") = {1};
diff --git a/katoptron/thesis/test_2/1_cube.py b/katoptron/thesis/test_2/1_cube.py
deleted file mode 100644
index a5fcf836..00000000
--- a/katoptron/thesis/test_2/1_cube.py
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-
-
-def tar_results(directory, filename, rank):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        for file in glob.glob('*'):
-            if file.endswith(".tar.gz"):
-                print(file + ' is not included')
-            else:
-                tf.add(file)
-        tf.close()
-
-
-def model(msh, E, p, ensemble_size, case_name, max_iter, use_Prec=False):
-    comm, rank, size = m.utilities.import_MPI()
-    file_dir = os.path.dirname(__file__)
-
-    pbl = m.Problem(msh, comm)
-
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0., 1, 0., 1, 0., 1, 0.,
-                ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 0.  # 10**(-8)
-    solverList['Maximum Iterations'] = int(max_iter)
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = use_Prec
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write vtk files'] = False
-
-    if use_Prec:
-        solverList['convert MueLu xml file'] = True
-        solverList["use xml file"] = True
-        solverList["MueLu xml file name"] = file_dir + '/prec.xml'
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    u.mkdir_MPI(case_name, comm, rank, size)
-    os.chdir(case_name)
-
-    if rank == 0:
-        f = open('msh_size.txt', 'w')
-        print(len(msh.nodes), file=f)
-        f.closed
-
-        np.savetxt('E.txt', E)
-        np.savetxt('p.txt', p)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    os.chdir('..')
-
-
-def read_msh(nCx, nCy, nCz, file_dir, work_dir, i=0, load=True):
-    comm, rank, size = m.utilities.import_MPI()
-
-    geo_name = '1_cube.geo'
-    mesh_name = '1_cube.msh'
-    mesh_2_name = str('1_cube_'+str(i)+'.msh')
-
-    pars = {'nCx': nCx, 'nCy': nCy, 'nCz': nCz}
-
-    if load:
-        msh = gmsh.MeshLoader(mesh_2_name, work_dir).execute()
-    else:
-        old_name = str(work_dir+'/'+mesh_name)
-        new_name = str(work_dir+'/'+mesh_2_name)
-        msh = gmsh.MeshLoader(geo_name, file_dir).execute(**pars)
-        os.rename(old_name, new_name)
-
-    return msh
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    E_mean = 1.
-    p_mean = 0.1
-
-    ensemble_sizes = [1, 8, 16, 24, 32]
-
-    nCx = 9
-    nCy = 9
-
-    N = 100
-    N_i = 10
-    tmp = np.logspace(1, 5, N, endpoint=True, dtype=int)
-    nCzs = tmp - 1
-    max_iter = 100
-
-    # Compute all the meshes BEFORE initialing Kokkos.
-
-    for i in range(0, N_i):
-        nCz = nCzs[i]
-        msh = read_msh(nCx, nCy, nCz, file_dir, work_dir, i, False)
-
-    # Now that all the meshes are computed, we can initialize Kokkos.
-    nThreads = u.Initialize_Kokkos()
-    for i in range(0, N_i):
-        nCz = nCzs[i]
-        msh = read_msh(nCx, nCy, nCz, file_dir, work_dir, i, True)
-        for ensemble_size in ensemble_sizes:
-            E = E_mean * np.ones(ensemble_size)
-            p = p_mean * np.ones(ensemble_size)
-
-            directory_case_id = str('test_' +
-                                           str(i) + '_s_' + str(ensemble_size) + '_no_prec_m_' + str(max_iter))
-            model(msh, E, p, ensemble_size, directory_case_id,
-                  max_iter, use_Prec=False)
-            directory_case_id = str('test_' +
-                                           str(i) + '_s_' + str(ensemble_size) + '_prec_m_' + str(max_iter))
-            model(msh, E, p, ensemble_size, directory_case_id,
-                  max_iter, use_Prec=True)
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_2/blake.slurm.sh b/katoptron/thesis/test_2/blake.slurm.sh
deleted file mode 100644
index 7f64a62e..00000000
--- a/katoptron/thesis/test_2/blake.slurm.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_2
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_2.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_2/1_cube.py
\ No newline at end of file
diff --git a/katoptron/thesis/test_2/post_process.py b/katoptron/thesis/test_2/post_process.py
deleted file mode 100644
index e6aa56bd..00000000
--- a/katoptron/thesis/test_2/post_process.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import katoptron.eigenvalues as e
-import katoptron.readers as r
-import katoptron.convergence as c
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-from katoptron.speedup import *
-
-
-def CPU_time_all_cases(base_dir, n_cases, ensemble_sizes,
-                       querylines, use_waves_timers, use_teuchos_timers, m,
-                       use_prec=False):
-
-    CPUs = np.zeros((n_cases, len(ensemble_sizes), len(querylines)))
-    msh_size = np.zeros((n_cases,))
-
-    for i in range(0, n_cases):
-        msh_size[i] = np.loadtxt(
-            base_dir + 'test_'+str(i)+'_s_1_no_prec_m_' + str(m) + '/msh_size.txt')
-        for j in range(0, len(ensemble_sizes)):
-            ensemble_size = ensemble_sizes[j]
-
-            input_MC_file_dir = base_dir + 'test_' + \
-                str(i)+'_s_'+str(ensemble_size)
-
-            if use_prec:
-                input_MC_file_dir = input_MC_file_dir + \
-                    '_prec_m_' + str(m) + '/'
-            else:
-                input_MC_file_dir = input_MC_file_dir + \
-                    '_no_prec_m_' + str(m) + '/'
-
-            for k in use_waves_timers:
-                CPUs[i, j, int(k)] = read_timers(
-                    input_MC_file_dir + 'timers.txt', [querylines[int(k)]])[0]
-            for k in use_teuchos_timers:
-                CPUs[i, j, int(k)] = read_teuchos_timers(
-                    input_MC_file_dir + 'teuchos_timers.txt',
-                    [querylines[int(k)]])[0]
-
-    return CPUs, msh_size
-
-
-def plot_CPU_and_speedup(CPUs, msh_size, ensemble_sizes, index, querylines):
-    plt.figure()
-    for i in range(0, len(ensemble_sizes)):
-        plt.loglog(3*msh_size, CPUs[:, i, index], '*-')
-
-    plt.ylabel('CPU time [sec]')
-    plt.xlabel('# dofs')
-    plt.title(querylines[index])
-    plt.grid(True, which="both")
-    tmp_name = querylines[index].replace(": ", "_")
-    tmp_name = tmp_name.replace(" ", "_")
-    plt.savefig(tmp_name+'_CPU.png')
-
-    np.savetxt(tmp_name+'_CPU.txt', CPUs[:, :, index])
-
-    mc_all = np.zeros((len(ensemble_sizes), 2))
-    for i in range(0, len(ensemble_sizes)):
-        logX = np.log(3*msh_size)
-        logY = np.log(CPUs[:, i, index])
-        m, c = np.polyfit(logX, logY, 1)
-        mc_all[i, 0] = m
-        mc_all[i, 1] = c
-
-    np.savetxt(tmp_name+'_CPU_mc.txt', mc_all)
-
-    plt.figure()
-    for i in range(1, len(ensemble_sizes)):
-        plt.loglog(
-            3*msh_size, (ensemble_sizes[i]*CPUs[:, 0, index] / CPUs[:, i, index]), '*-')
-
-    x = 3*np.array([msh_size[0], msh_size[-1]])
-    y = np.array([1., 1.])
-    plt.grid(True, which="both")
-
-    plt.ylabel('Speed-up')
-    plt.xlabel('# dofs')
-    plt.title(querylines[index])
-    plt.savefig(tmp_name+'_speedup.png')
-    for i in range(1, len(ensemble_sizes)):
-        np.savetxt(tmp_name+'_speedup_'+str(
-            ensemble_sizes[i])+'.txt', (ensemble_sizes[i]*CPUs[:, 0, index] / CPUs[:, i, index]))
-
-
-def main():
-    base_dir = '/Users/kimliegeois/Desktop/results/'
-    n_cases = 50
-
-    ensemble_sizes = [1, 8, 16, 24, 32]
-
-    querylines = [
-        'total', 'write results', 'computeMatrices',
-        'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'Belos: PseudoBlockGmresSolMgr total solve time'
-    ]
-    use_waves_timers = np.array([0, 1, 2], dtype=int)
-    use_teuchos_timers = np.array(
-        [3, 4, 5, 6, 7, 8, 9],
-        dtype=int)
-
-    m = 100
-
-    CPUs, msh_size = CPU_time_all_cases(base_dir, n_cases, ensemble_sizes,
-                                        querylines, use_waves_timers, use_teuchos_timers, m,
-                                        use_prec=False)
-
-    CPUs[:, :, 0] = CPUs[:, :, 0] - CPUs[:, :, 1]
-
-    np.savetxt('N_dofs.txt', 3*msh_size)
-    #print CPUs
-    #print msh_size
-
-    for i in range(0, 10):
-        plot_CPU_and_speedup(CPUs, msh_size, ensemble_sizes, i, querylines)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_2/prec.xml b/katoptron/thesis/test_2/prec.xml
deleted file mode 100644
index 7fcef90c..00000000
--- a/katoptron/thesis/test_2/prec.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="5"/>
-  <Parameter name="smoother: type" type="string" value="RELAXATION"/>
-  <ParameterList name="smoother: params">
-    <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="5"/>
-    <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-    <!-- <Parameter name="relaxation: backward mode" type="bool" value="true"/> -->
-  </ParameterList>
-  <Parameter name="coarse: type" type="string" value="Klu"/>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-  <Parameter name="tentative: calculate qr" type="bool" value="false"/>
-  <Parameter name="number of equations"   type="int"  value="3"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/thesis/test_2/prec_1.xml b/katoptron/thesis/test_2/prec_1.xml
deleted file mode 100644
index b2bd91f1..00000000
--- a/katoptron/thesis/test_2/prec_1.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="1"/>
-  <Parameter name="coarse: type" type="string" value="RELAXATION"/>
-  <ParameterList name="coarse: params">
-    <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="5"/>
-    <Parameter name="relaxation: damping factor" type="double" value="0.9"/>    
-  </ParameterList>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="number of equations"   type="int"  value="3"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/thesis/test_3/beam.geo b/katoptron/thesis/test_3/beam.geo
deleted file mode 100644
index 71c4c0a7..00000000
--- a/katoptron/thesis/test_3/beam.geo
+++ /dev/null
@@ -1,114 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-
-//L = 50.;
-//W = 1.;
-//H = 5.;
-//d = 1.;
-
-//L = 50.;
-//W = 5.;
-//H = 5.;
-H_rigid = 1.;
-//d = 1.;
-
-hW = W/2;
-hH = H/2;
-
-//n_L = 60;
-//n_hW = 3;
-//n_hH = 3;
-
-n_L_rigid = 1;
-n_W_rigid = 1;
-n_H_rigid = 1;
-
-
-lc = 1;
-
-delta_H = hH+d;
-
-Point(101) = { 0,  -hW,    d, lc};
-Point(102) = { 0,   0,    d, lc};
-Point(103) = { 0,   hW,    d, lc};
-Point(104) = { L,   hW,    d, lc};
-Point(105) = { L,   0,    d, lc};
-Point(106) = { L,  -hW,    d, lc};
-
-Point(205) = { 0,   -hW, 0, lc};
-Point(206) = { 0,    hW, 0, lc};
-Point(207) = { L,    hW, 0, lc};
-Point(208) = { L,   -hW, 0, lc};
-
-Line(101) = {101, 102};
-Line(102) = {102, 103};
-Line(103) = {103, 104};
-Line(104) = {104, 105};
-Line(105) = {105, 106};
-Line(106) = {106, 101};
-Line(107) = {105, 102};
-
-Line(205) = {205, 206};
-Line(206) = {206, 207};
-Line(207) = {207, 208};
-Line(208) = {208, 205};
-
-Transfinite Line {101,102,104,105} = n_hW+1 Using Progression 1;
-Transfinite Line {103,106,107} = n_L+1 Using Progression 1;
-
-Transfinite Line {205,207} = n_W_rigid+1 Using Progression 1;
-Transfinite Line {206,208} = n_L_rigid+1 Using Progression 1;
-
-Line Loop(101) = {101,-107,105,106};
-Plane Surface(101) = {101};
-Transfinite Surface {101};
-Recombine Surface {101};
-
-Line Loop(102) = {102,103,104,107};
-Plane Surface(102) = {102};
-Transfinite Surface {102};
-Recombine Surface {102};
-
-Line Loop(202) = {-208,-207,-206,-205};
-Plane Surface(202) = {202};
-Transfinite Surface {202};
-Recombine Surface {202};
-
-Extrude {0, 0, hH}
-{
-  Surface{101,102}; Layers{n_hH}; Recombine;
-}
-
-Extrude {0, 0, hH}
-{
-  Surface{230,252}; Layers{n_hH}; Recombine;
-}
-
-Extrude {0, 0, -H_rigid}
-{
-  Surface{202}; Layers{n_H_rigid}; Recombine;
-}
-
-
-
-Physical Volume("Rigid body") = {5};
-Physical Surface("Rigid surface") = {202};
-Physical Surface("Rigid clamped surface") = {309};
-Physical Line("Rigid surface boundary") = {205, 206, 207, 208};
-
-Physical Volume("Beam") = {1,2,3,4};
-Physical Surface("Clamped end") = {217,239,261,283,317};
-Physical Surface("Loaded surface") = {274,296};
-Physical Surface("Beam contact zone") = {101,102};
-Physical Surface("Free end") = {269,247,225,291};
-Physical Line("Beam contact boundary") = {104,105,106,101,102,103};
-Physical Line("Beam contact Dirichlet") = {101,102};
-
-Physical Line("Center of cross section") = {211};
-
-Physical Line("Center of contact surface") = {107};
-
-Mesh.Partitioner = 2;
-Mesh.MetisAlgorithm = 2;
-Mesh.MshFilePartitioned = 0;
diff --git a/katoptron/thesis/test_3/beam.py b/katoptron/thesis/test_3/beam.py
deleted file mode 100644
index cd5bb997..00000000
--- a/katoptron/thesis/test_3/beam.py
+++ /dev/null
@@ -1,238 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-from katoptron.Juelich.UQ.halton import *
-
-
-def tar_results(directory, filename, rank):
-    os.chdir(directory)
-    if rank == 0:
-        tf = tarfile.open(filename + ".tar.gz", mode="w:gz")
-        for file in glob.glob('*'):
-            if file.endswith(".tar.gz"):
-                print(file + ' is not included')
-            else:
-                tf.add(file)
-        tf.close()
-
-
-def model(msh, E, p, ensemble_size, work_dir):
-    comm, rank, size = m.utilities.import_MPI()
-
-    partitioned_mesh_name = 'beam_k.msh'
-    file_dir = os.path.dirname(__file__)
-    current_dir = os.getcwd()
-
-    pbl = m.Problem(msh, comm)
-
-    nu = 0.29 * np.ones(ensemble_size)
-    k = 0
-    d = 0
-
-    m.Medium(pbl, "Beam", "Mat 1", E, nu, k, d)
-    m.Medium(pbl, "Rigid body", "Mat 1", E, nu, k, d)
-
-    dx = np.zeros(ensemble_size)
-    dy = np.zeros(ensemble_size)
-    dz = np.zeros(ensemble_size)
-    dT = np.zeros(ensemble_size)
-    zero = np.zeros(ensemble_size)
-    m.Dirichlet(pbl, "Rigid clamped surface",
-                "Clamped 1", 1, dx, 1, dy, 1, dz, 0, dT)
-    m.Dirichlet(pbl, "Clamped end", "Clamped 1", 1, dx, 1, dy, 1, dz, 0, dT)
-    m.Dirichlet(pbl, "Free end", "Clamped 1", 1, 0.,
-                0, 0., 0, 0., 0, 0., ensemble_size)
-
-    m.Neumann(pbl, "Loaded surface", "Load 1", 0, zero,
-              0, zero, 1, -p, 0, zero, ensemble_size)
-
-    norm1 = tbox.Vector3d(0, 0, -1)
-    norm2 = tbox.Vector3d(0, 0, 1)
-    dg = np.zeros(ensemble_size)
-
-    a = 49.95
-    initiallyClosedNodesList = np.array([], dtype=np.float)
-    for el in msh.ntags["Beam contact zone"].elems:
-        for n1 in el.nodes:
-            node_id = n1.no-1
-            if msh.nodes[node_id].pos[0] >= a:
-                initiallyClosedNodesList = np.append(
-                    initiallyClosedNodesList, node_id)
-
-    cont1 = m.Contact(pbl, "Beam contact zone", "contact", norm1, dg)
-    cont1.setInitialyOpen()
-    cont1.setInitiallyClosedNodes(initiallyClosedNodesList)
-    cont1.setDualShapeFunctions()
-    cont1.setSlaveDirichlet(
-        work_dir+"/"+partitioned_mesh_name, "Beam contact Dirichlet")
-    cont1.setSignoriniContact()
-    cont1.setMaster(pbl, "Rigid surface", norm2)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Convergence Tolerance'] = 10**(-8)
-    solverList['Maximum Iterations'] = 500
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    muelu_xml_in = file_dir + '/../../preconditioners/SIMPLE_gs_direct_lvl_MT.xml.in'
-    old_strings = ['$BLOCK_00_STRIDING_INFO', '$BLOCK_11_STRIDING_INFO',
-                   '$BLOCK_00_GS_sweeps', '$BLOCK_00_GS_damping',
-                   '$SCHUR_omega', '$SimpleSmoother_damping', "$N_LVLS", "$N_SIZES", "$EXPORT_DATA", "$SimpleSmoother_sweeps"]
-    new_strings = ['3', '1', '3', '0.8', '0.8', '1', '2', '18', "true", '1']
-
-    u.replace_strings(muelu_xml_in, current_dir +
-                      '/SIMPLE_MG.xml', old_strings, new_strings)
-
-    solverList["MueLu xml file name"] = current_dir+'/SIMPLE_MG.xml'
-    solverList["convert MueLu xml file"] = True
-
-    solverList['Use preconditioner'] = True
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 10
-    solverList['Write txt files'] = True
-    solverList['Print Teuchos timers'] = True
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    if rank == 0:
-        np.savetxt('E.txt', E)
-        np.savetxt('p.txt', p)
-
-    slv.start()
-
-    f = open('timers.txt', 'w')
-    print(slv.getTimers(), file=f)
-    f.closed
-
-
-def evaluate_all_ensembles(ensemble_sizes, N, msh, comm, rank, size,
-                           file_dir, work_dir, E_vec, p_vec):
-    """
-    This function loop over the ensemble sizes,
-    and the ensembles
-    """
-    for ensemble_size in ensemble_sizes:
-        directory = str(ensemble_size)
-        u.mkdir_MPI(directory, comm, rank, size)
-        os.chdir(directory)
-
-        N_ensemble = N // ensemble_size
-
-        ensemble_index_min = 0
-        for ensemble_index in range(ensemble_index_min, N_ensemble):
-            directory = str(ensemble_index)
-            u.mkdir_MPI(directory, comm, rank, size)
-            os.chdir(directory)
-
-            ensemble_index_start = ensemble_index * ensemble_size
-            ensemble_index_end = ensemble_index_start + ensemble_size
-
-            E = E_vec[ensemble_index_start:ensemble_index_end]
-
-            p = p_vec[ensemble_index_start:ensemble_index_end]
-
-            model(msh, E, p, ensemble_size, work_dir)
-
-            os.chdir('..')
-        os.chdir('..')
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    geo_name = 'beam.geo'
-
-    larger_mesh = True
-
-    par = {}
-    par['L'] = 50.
-    par['W'] = 5.
-    par['H'] = 5.
-    par['d'] = 1.
-    if larger_mesh:
-        par['n_L'] = 200
-        par['n_hW'] = 5
-        par['n_hH'] = 5
-    else:
-        par['n_L'] = 60
-        par['n_hW'] = 3
-        par['n_hH'] = 3
-
-    import shlex
-    import subprocess
-    import os
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    pars = {'L': par['L'], 'W': par['W'], 'H': par['H'], 'd': par['d'],
-            'n_L': par['n_L'], 'n_hW': par['n_hW'], 'n_hH': par['n_hH']}
-
-    msh, mesh_name, partitioned_mesh_name = u.read_mesh_MPI(
-        geo_name, file_dir, work_dir, comm, rank, size, pars)
-
-    for n1 in msh.nodes:
-        n1.row = n1.no-1
-
-    N = 640
-    p_min = 0.5
-    p_max = 2.5
-    E_min = 20500
-    E_max = 21500
-
-    n_rand = 2
-    halton_points = np.zeros((n_rand, N))
-    E_vec = np.zeros((N, ))
-    p_vec = np.zeros((N, ))
-    for i in range(0, N):
-        halton_points[:, i] = halton(i, n_rand)
-
-    E_vec = E_min + halton_points[0, :] * (E_max-E_min)
-    p_vec = p_min + halton_points[1, :] * (p_max-p_min)
-
-    grouped = False
-
-    if grouped:
-        order = np.loadtxt(file_dir+'/ordering.txt', dtype=int)
-        E_vec = E_vec[order[0:N]]
-        p_vec = p_vec[order[0:N]]
-
-    if rank == 0:
-        np.savetxt('E_vec.txt', E_vec)
-        np.savetxt('p_vec.txt', p_vec)
-
-    ensemble_sizes = [1, 8, 16, 32]
-
-    nThreads = u.Initialize_Kokkos()
-    evaluate_all_ensembles(ensemble_sizes, N, msh, comm, rank, size,
-                           file_dir, work_dir, E_vec, p_vec)
-
-    u.Finalize_Kokkos()
-
-    tar_results(work_dir, 'all_results', rank)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_3/blake.slurm.sh b/katoptron/thesis/test_3/blake.slurm.sh
deleted file mode 100644
index bbc346f3..00000000
--- a/katoptron/thesis/test_3/blake.slurm.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_3
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_3.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_3/beam.py
diff --git a/katoptron/thesis/test_3/ordering.txt b/katoptron/thesis/test_3/ordering.txt
deleted file mode 100644
index 7680c699..00000000
--- a/katoptron/thesis/test_3/ordering.txt
+++ /dev/null
@@ -1,640 +0,0 @@
-318
-561
-453
-210
-588
-264
-129
-372
-615
-48
-426
-399
-534
-75
-108
-27
-486
-351
-405
-0
-81
-513
-567
-270
-243
-189
-162
-324
-339
-285
-222
-177
-123
-501
-384
-393
-609
-555
-204
-582
-42
-96
-258
-231
-420
-528
-366
-69
-447
-216
-345
-552
-228
-291
-183
-237
-102
-21
-390
-156
-249
-87
-411
-621
-573
-6
-252
-519
-255
-408
-219
-18
-387
-435
-504
-279
-84
-30
-480
-261
-543
-9
-381
-516
-273
-111
-90
-597
-570
-192
-297
-558
-327
-549
-354
-360
-612
-144
-153
-468
-441
-57
-207
-489
-432
-225
-594
-414
-288
-531
-540
-171
-99
-378
-165
-126
-1
-495
-135
-217
-63
-396
-45
-36
-198
-333
-379
-423
-622
-450
-492
-306
-639
-117
-91
-3
-522
-72
-330
-234
-315
-369
-342
-180
-603
-246
-352
-630
-477
-406
-253
-465
-415
-244
-55
-33
-60
-54
-459
-195
-585
-109
-568
-136
-576
-240
-595
-28
-433
-186
-82
-168
-298
-145
-357
-325
-510
-159
-114
-213
-600
-312
-163
-15
-469
-546
-564
-303
-271
-537
-636
-166
-348
-51
-429
-618
-19
-105
-343
-505
-375
-591
-321
-294
-474
-24
-280
-267
-559
-451
-181
-150
-64
-127
-139
-604
-226
-517
-442
-154
-388
-193
-31
-73
-550
-85
-478
-613
-328
-262
-274
-235
-100
-247
-46
-424
-586
-301
-490
-571
-397
-316
-4
-463
-355
-532
-289
-208
-370
-409
-502
-466
-444
-633
-471
-507
-309
-120
-525
-66
-138
-147
-201
-579
-462
-300
-336
-12
-627
-282
-417
-174
-498
-39
-363
-624
-93
-141
-190
-276
-514
-541
-438
-460
-487
-37
-456
-334
-483
-118
-172
-496
-631
-67
-10
-523
-78
-132
-577
-307
-121
-199
-361
-445
-229
-202
-220
-402
-94
-103
-607
-499
-337
-598
-391
-580
-526
-13
-175
-436
-40
-634
-22
-283
-553
-382
-544
-475
-196
-256
-58
-625
-148
-25
-373
-151
-340
-385
-178
-205
-346
-49
-589
-112
-304
-418
-295
-265
-508
-211
-412
-637
-130
-70
-124
-601
-349
-535
-16
-43
-367
-319
-421
-520
-400
-142
-628
-157
-472
-439
-493
-292
-187
-115
-511
-169
-7
-97
-529
-583
-610
-61
-394
-616
-574
-238
-547
-250
-259
-268
-286
-88
-313
-79
-331
-562
-556
-481
-430
-454
-133
-76
-184
-223
-173
-619
-605
-232
-92
-106
-164
-29
-448
-443
-623
-434
-38
-326
-380
-218
-277
-119
-461
-322
-335
-160
-542
-353
-2
-191
-515
-254
-551
-376
-484
-272
-65
-299
-488
-137
-110
-263
-497
-569
-11
-227
-281
-362
-572
-596
-389
-248
-221
-578
-518
-56
-606
-310
-427
-407
-358
-364
-34
-83
-524
-241
-457
-245
-52
-565
-214
-422
-470
-587
-592
-566
-538
-32
-479
-98
-403
-77
-512
-410
-305
-485
-317
-416
-395
-224
-236
-629
-179
-161
-320
-530
-278
-20
-260
-212
-548
-233
-206
-188
-113
-44
-50
-431
-155
-341
-458
-374
-68
-128
-602
-134
-8
-182
-392
-125
-503
-71
-89
-116
-332
-329
-449
-74
-557
-17
-59
-107
-170
-560
-563
-365
-452
-359
-428
-62
-371
-143
-131
-239
-266
-302
-269
-167
-47
-611
-95
-467
-308
-608
-455
-200
-533
-86
-536
-287
-494
-632
-209
-590
-626
-5
-575
-614
-581
-617
-176
-185
-401
-41
-293
-290
-506
-491
-527
-437
-311
-35
-104
-545
-419
-635
-344
-338
-413
-14
-23
-158
-425
-398
-140
-251
-257
-356
-203
-230
-554
-599
-194
-101
-275
-383
-593
-404
-539
-377
-368
-476
-314
-482
-584
-26
-80
-53
-323
-296
-350
-521
-440
-242
-500
-620
-152
-215
-638
-122
-197
-386
-509
-446
-347
-473
-284
-149
-146
-464
diff --git a/katoptron/thesis/test_3/post_process.py b/katoptron/thesis/test_3/post_process.py
deleted file mode 100644
index f8a356fa..00000000
--- a/katoptron/thesis/test_3/post_process.py
+++ /dev/null
@@ -1,485 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-import katoptron.eigenvalues as e
-import katoptron.readers as r
-import katoptron.convergence as c
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-import matplotlib.pyplot as plt
-from mpl_toolkits.mplot3d import axes3d
-from katoptron.speedup import *
-
-
-def read_mm_vector(filename, ensemble_size):
-    with open(filename, 'r') as my_file:
-        text = my_file.read().splitlines(True)
-        if ensemble_size > 1:
-            for i in range(2, len(text)):
-                text[i] = text[i].replace("[", "")
-                text[i] = text[i].replace("]", "")
-
-    X = np.genfromtxt(text[2:])
-    return X
-
-
-def extract_values(filename, node_id, which_dof, dof_per_node, ensemble_size):
-    output = np.zeros((ensemble_size, ))
-    X = read_mm_vector(filename, ensemble_size)
-    output = X[dof_per_node * node_id + which_dof, :]
-    return output
-
-
-def write_tex(n_samples, iter, filename):
-    f = open(filename, 'w')
-    print('\\addplot [c1, mark=*, mark size=2pt, mark options={solid}, only marks]', file=f)
-    print('table [row sep=crcr] {%', file=f)
-    for i in range(0, n_samples):
-        print(str(i) + ' ' + str(iter[0][i]) + '\\\\', file=f)
-    print('};', file=f)
-    print('\\label{pgfplots:noEP}', file=f)
-    ensemble_size = 8
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        print('\\addplot [line width=2pt, c2]', file=f)
-        print('table [row sep=crcr] {%', file=f)
-        print(str(ensemble_size * i) + ' ' + str(
-            iter[1][ensemble_size * i]) + '\\\\', file=f)
-        print(str(ensemble_size *
-                  (i + 1)) + ' ' + str(iter[1][ensemble_size *
-                                               (i + 1) - 1]) + '\\\\', file=f)
-        print('};', file=f)
-    print('\\label{pgfplots:s8}', file=f)
-    ensemble_size = 16
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        print('\\addplot [line width=1.5pt, c3]', file=f)
-        print('table [row sep=crcr] {%', file=f)
-        print(str(ensemble_size * i) + ' ' + str(
-            iter[2][ensemble_size * i]) + '\\\\', file=f)
-        print(str(ensemble_size *
-                  (i + 1)) + ' ' + str(iter[2][ensemble_size *
-                                               (i + 1) - 1]) + '\\\\', file=f)
-        print('};', file=f)
-    print('\\label{pgfplots:s16}', file=f)
-    ensemble_size = 32
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        print('\\addplot [line width=1.pt, c4]', file=f)
-        print('table [row sep=crcr] {%', file=f)
-        print(str(ensemble_size * i) + ' ' + str(
-            iter[3][ensemble_size * i]) + '\\\\', file=f)
-        print(str(ensemble_size *
-                  (i + 1)) + ' ' + str(iter[3][ensemble_size *
-                                               (i + 1) - 1]) + '\\\\', file=f)
-        print('};', file=f)
-    print('\\label{pgfplots:s32}', file=f)
-    f.closed
-
-
-def CPU_time_per_one_case(base_dir,
-                          n_samples,
-                          ensemble_sizes,
-                          quantiles,
-                          querylines,
-                          use_waves_timers,
-                          use_teuchos_timers,
-                          per_iteration,
-                          filename_CPU,
-                          filename_speed_up,
-                          per_ensemble=True):
-
-    timers = read_timers_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                            base_dir, querylines,
-                                            use_waves_timers,
-                                            use_teuchos_timers)
-
-    f = open(filename_CPU, 'w')
-    print(timers.shape, file=f)
-
-    for i in range(0, timers.shape[2]):
-        print(querylines[i], file=f)
-        string = ''
-        for e in range(0, timers.shape[0]):
-            if per_ensemble:
-                current_timer = (np.sum(timers[e, :, i]) / n_samples)
-            else:
-                current_timer = (np.sum(
-                    timers[e, :, i]) / (n_samples * ensemble_sizes[e]))
-            string = string + str(round(current_timer, 3)) + ' & '
-        print(string, file=f)
-        print(' ', file=f)
-    f.closed
-
-    f = open(filename_speed_up, 'w')
-    print(timers.shape, file=f)
-
-    for i in range(0, timers.shape[2]):
-        print(querylines[i], file=f)
-        string = ''
-        for e in range(0, timers.shape[0]):
-            if e == 0:
-                current_timer_s1 = np.sum(timers[0, :, i])
-            current_timer = (np.sum(timers[e, :, i]) / ensemble_sizes[e])
-            string = string + str(round((current_timer_s1 / current_timer),
-                                        3)) + ' & '
-        print(string, file=f)
-        print(' ', file=f)
-    f.closed
-
-
-def load_qoi(base_dir, N, ensemble_size):
-    node_id = 68
-    #node_id = 227
-    which_dof = 2
-    dof_per_node = 3
-
-    qoi = np.zeros((N, ))
-    N_ensemble = N // ensemble_size
-
-    ensemble_index_min = 0
-    for ensemble_index in range(ensemble_index_min, N_ensemble):
-        solution_file_name = base_dir + '/' + str(ensemble_size) + '/' + str(
-            ensemble_index) + '/x_mm.txt'
-        output = extract_values(solution_file_name, node_id, which_dof,
-                                dof_per_node, ensemble_size)
-
-        ensemble_index_start = ensemble_index * ensemble_size
-        ensemble_index_end = ensemble_index_start + ensemble_size
-
-        qoi[ensemble_index_start:ensemble_index_end] = output
-
-    return qoi
-
-
-def speedup(base_dir,
-            n_samples,
-            ensemble_sizes,
-            quantiles,
-            querylines,
-            use_waves_timers,
-            use_teuchos_timers,
-            per_iteration,
-            ensemble_reduction=False):
-    import matplotlib.pyplot as plt
-
-    if ensemble_reduction:
-        case_id = 'ER'
-    else:
-        case_id = 'NER'
-
-    speedup = compute_speedup(n_samples,
-                              ensemble_sizes,
-                              base_dir,
-                              querylines,
-                              per_iteration,
-                              quantiles,
-                              use_waves_timers,
-                              use_teuchos_timers,
-                              reduction=ensemble_reduction,
-                              remove_write=True)
-
-    plot_speedup(speedup, ensemble_sizes, np.arange(0, len(querylines)),
-                 'beam_' + case_id, querylines, per_iteration)
-    plt.savefig('beam_' + case_id + '.png', dpi=400)
-
-    save_speedup(speedup, ensemble_sizes, querylines, 'beam_' + case_id)
-
-    R = compute_R(n_samples, ensemble_sizes, base_dir, quantiles,
-                  ensemble_reduction)
-    save_R(R, 'beam_R_' + case_id)
-
-
-def speedup_ensemble_reduction(base_dir_ER, base_dir_NER, n_samples):
-    ensemble_sizes = [1, 8, 16, 32]
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: DGKS[2]: Ortho (Inner Product)',
-        'Belos: DGKS[2]: Ortho (Norm)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0'
-    ]
-    use_waves_timers = np.array([0, 7, 8], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, True
-    ]
-
-    speedup(base_dir_NER, n_samples, ensemble_sizes, quantiles, querylines,
-            use_waves_timers, use_teuchos_timers, per_iteration, False)
-    speedup(base_dir_ER, n_samples, ensemble_sizes, quantiles, querylines,
-            use_waves_timers, use_teuchos_timers, per_iteration, True)
-
-    querylines = [
-        'domain', 'Belos: Operation Op*x', 'Belos: Operation Prec*x',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: PseudoBlockGmresSolMgr total solve time',
-        'MueLu: Hierarchy: Setup (total)', 'Belos: DGKS[2]: Ortho (Update)',
-        'total', 'write results', 'MueLu: Hierarchy: Solve (level=0)',
-        'MueLu: Hierarchy: Solve (level=1)',
-        'MueLu: Hierarchy: Solve : smoothing (level=0)',
-        'MueLu: Hierarchy: Solve : prolongation (level=0)',
-        'MueLu: Hierarchy: Solve : residual calculation (level=0)',
-        'MueLu: Hierarchy: Solve : restriction (level=0)',
-        'MueLu: SIMPLE: Apply: Update step - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Solve block 00 - level 0',
-        'MueLu: SIMPLE: Apply: Prediction step: Compute RHS - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Solve block 11 - level 0',
-        'MueLu: SIMPLE: Apply: Correction step: Compute RHS - level 0',
-        'compute contact matrices', 'compute block 00 matrix', 'dp',
-        'computeMatrices'
-    ]
-    use_waves_timers = np.array([0, 7, 8, 20, 21, 22, 23], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
-        dtype=int)
-    per_iteration = [
-        False, True, True, False, False, False, False, False, False, True,
-        True, True, True, True, True, True, True, True, True, True, False
-    ]
-
-    CPU_time_per_one_case(base_dir_NER, n_samples, ensemble_sizes, quantiles,
-                          querylines, use_waves_timers, use_teuchos_timers,
-                          per_iteration, 'average_CPU_NER.txt',
-                          'average_speed_up_NER.txt')
-
-    CPU_time_per_one_case(base_dir_ER, n_samples, ensemble_sizes, quantiles,
-                          querylines, use_waves_timers, use_teuchos_timers,
-                          per_iteration, 'average_CPU_ER.txt',
-                          'average_speed_up_ER.txt')
-
-
-def plot_iter_all_ensemble_sizes(n_samples, iter, print_all=True):
-    import matplotlib.pyplot as plt
-    plt.figure()
-    plt.plot(list(range(0, n_samples)),
-             iter[0][:], 'bo', markersize=8, zorder=1)
-    ensemble_size = 8
-    for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-        plt.plot(list(range(ensemble_size * i, ensemble_size * (i + 1))),
-                 iter[1][ensemble_size * i:ensemble_size * (i + 1)],
-                 '-ro',
-                 linewidth=3,
-                 markersize=6,
-                 zorder=2)
-    if print_all:
-        ensemble_size = 16
-        for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-            plt.plot(list(range(ensemble_size * i, ensemble_size * (i + 1))),
-                     iter[2][ensemble_size * i:ensemble_size * (i + 1)],
-                     '-go',
-                     linewidth=2,
-                     markersize=4,
-                     zorder=2)
-        ensemble_size = 32
-        for i in range(0, int(np.ceil(n_samples * 1. / ensemble_size))):
-            plt.plot(list(range(ensemble_size * i, ensemble_size * (i + 1))),
-                     iter[3][ensemble_size * i:ensemble_size * (i + 1)],
-                     '-ko',
-                     linewidth=1,
-                     markersize=2,
-                     zorder=3)
-    plt.xlabel('sample')
-    plt.ylabel('Number of iterations to converge')
-
-
-def plot_iter_all(base_dir_ER, base_dir_NER, ensemble_sizes, n_samples):
-
-    iter_NER = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                            base_dir_NER, False)
-    iter_ER = read_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                           base_dir_ER, True)
-    plot_iter_all_ensemble_sizes(n_samples, iter_NER)
-    write_tex(n_samples, iter_NER, 'NER_conv.tex')
-    np.savetxt('NER_conv.txt', iter_NER)
-    np.savetxt('ordering_1.txt',
-               np.argsort(iter_NER[0, :]).astype(int),
-               fmt='%i')
-    np.savetxt('ordering_2.txt',
-               np.argsort(iter_NER[0][:]).astype(int),
-               fmt='%i')
-    plot_iter_all_ensemble_sizes(n_samples, iter_ER)
-    write_tex(n_samples, iter_ER, 'ER_conv.tex')
-    np.savetxt('ER_conv.txt', iter_ER)
-
-    order = np.argsort(iter_NER[0, :])
-
-    tmp = iter_NER[0][order]
-
-    plt.figure()
-    plt.plot(iter_NER[0][:])
-    plt.savefig('no_order_1.png', dpi=400)
-
-    iter_NER[0][:] = tmp
-
-    plt.figure()
-    plt.plot(tmp)
-    plt.savefig('order_1.png', dpi=400)
-
-    tmp = iter_ER[0][order]
-
-    plt.figure()
-    plt.plot(iter_ER[0][:])
-    plt.savefig('no_order_2.png', dpi=400)
-
-    iter_ER[0][:] = tmp
-
-    write_tex(n_samples, iter_NER, 'NER_conv_2.tex')
-    write_tex(n_samples, iter_ER, 'ER_conv_2.tex')
-
-    plt.figure()
-    plt.plot(tmp)
-    plt.savefig('order_2.png', dpi=400)
-
-
-def plot_AS_iter_all(base_dir_ER, base_dir_NER, ensemble_sizes, n_samples):
-
-    iter_NER = read_AS_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                               base_dir_NER, False)
-    iter_ER = read_AS_iter_all_ensemble_sizes(n_samples, ensemble_sizes,
-                                              base_dir_ER, True)
-    plot_iter_all_ensemble_sizes(n_samples, iter_NER)
-    write_tex(n_samples, iter_NER, 'AS_NER_conv.tex')
-    np.savetxt('AS_NER_conv.txt', iter_NER)
-    np.savetxt('AS_ordering_1.txt',
-               np.argsort(iter_NER[0, :]).astype(int),
-               fmt='%i')
-    np.savetxt('AS_ordering_2.txt',
-               np.argsort(iter_NER[0][:]).astype(int),
-               fmt='%i')
-    plot_iter_all_ensemble_sizes(n_samples, iter_ER)
-    write_tex(n_samples, iter_ER, 'AS_ER_conv.tex')
-    np.savetxt('AS_ER_conv.txt', iter_ER)
-
-    order = np.argsort(iter_NER[0, :])
-
-    tmp = iter_NER[0][order]
-
-    plt.figure()
-    plt.plot(iter_NER[0][:])
-    plt.savefig('AS_no_order_1.png', dpi=400)
-
-    iter_NER[0][:] = tmp
-
-    plt.figure()
-    plt.plot(tmp)
-    plt.savefig('AS_order_1.png', dpi=400)
-
-    tmp = iter_ER[0][order]
-
-    plt.figure()
-    plt.plot(iter_ER[0][:])
-    plt.savefig('AS_no_order_2.png', dpi=400)
-
-    iter_ER[0][:] = tmp
-
-    write_tex(n_samples, iter_NER, 'AS_NER_conv_2.tex')
-    write_tex(n_samples, iter_ER, 'AS_ER_conv_2.tex')
-
-    plt.figure()
-    plt.plot(tmp)
-    plt.savefig('AS_order_2.png', dpi=400)
-
-
-def all_post_process(grouped):
-    if grouped:
-        base_dir_NER = '/Volumes/HD_SONY/Thesis/Test_3/all_results_NER_grouped_2'
-        base_dir_ER = '/Volumes/HD_SONY/Thesis/Test_3/all_results_ER_grouped_2'
-        directory = 'grouped'
-    else:
-        base_dir_NER = '/Volumes/HD_SONY/Thesis/Test_3/all_results_NER_beam'
-        base_dir_ER = '/Volumes/HD_SONY/Thesis/Test_3/all_results_ER_beam'
-        directory = 'not_grouped'
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    N = 640
-    ensemble_sizes = [1, 8, 16, 32]
-
-    #compare_QoI(base_dir_NER, base_dir_ER, N, ensemble_sizes)
-    speedup_ensemble_reduction(base_dir_ER, base_dir_NER, N)
-
-    E = np.loadtxt(base_dir_NER + '/E_vec.txt')
-    p = np.loadtxt(base_dir_NER + '/p_vec.txt')
-
-    qoi_NER_8 = load_qoi(base_dir_NER, N, 8)
-    qoi_NER_16 = load_qoi(base_dir_NER, N, 16)
-    qoi_NER_32 = load_qoi(base_dir_NER, N, 32)
-
-    qoi_ER_8 = load_qoi(base_dir_ER, N, 8)
-    qoi_ER_16 = load_qoi(base_dir_ER, N, 16)
-    qoi_ER_32 = load_qoi(base_dir_ER, N, 32)
-
-    np.savetxt('qoi_NER_8.tex', qoi_NER_8)
-    '''
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')    
-    ax.scatter(E,p,qoi_ER_8)
-
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')    
-    ax.scatter(E,p,qoi_ER_16)   
-
-    fig = plt.figure()
-    ax = fig.gca(projection='3d')    
-    ax.scatter(E,p,qoi_ER_32)        
-    '''
-
-    plot_iter_all(base_dir_ER, base_dir_NER, ensemble_sizes, N)
-    plot_AS_iter_all(base_dir_ER, base_dir_NER, ensemble_sizes, N)
-
-    plt.figure()
-    for i in range(0, 8):
-        iter_indices, residuals = read_Belos(
-            base_dir_NER + '/1/' + str(i) + '/belos_out.txt', 1)
-        plt.semilogy(residuals)
-
-    x = np.array([0, 180])
-    y = np.array([1e-6, 1e-6])
-    plt.semilogy(x, y, 'k--')
-
-    plt.figure()
-    iter_indices, residuals = read_Belos(base_dir_NER + '/8/0/belos_out.txt',
-                                         8)
-    for i in range(0, 8):
-        plt.semilogy(residuals[:, i])
-
-    plt.semilogy(x, y, 'k--')
-
-    plt.figure()
-    iter_indices, residuals = read_Belos(base_dir_ER + '/8/0/belos_out.txt', 1)
-    plt.semilogy(residuals)
-    plt.semilogy(x, y, 'k--')
-    os.chdir('..')
-
-
-def main():
-    all_post_process(False)
-    all_post_process(True)
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_4/1_cube.geo b/katoptron/thesis/test_4/1_cube.geo
deleted file mode 100644
index f3bd653d..00000000
--- a/katoptron/thesis/test_4/1_cube.geo
+++ /dev/null
@@ -1,42 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-//nCx = 3;
-//nCy = 4;
-//nCz = 5;
-
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Transfinite Line {1,3} = nCx+1 Using Progression 1;
-Transfinite Line {2,4} = nCz+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nCy}; Recombine;
-}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Point("Measure point 1") = {4};
-Physical Point("Measure point 2") = {1};
diff --git a/katoptron/thesis/test_4/1_cube.py b/katoptron/thesis/test_4/1_cube.py
deleted file mode 100644
index f3a7b39a..00000000
--- a/katoptron/thesis/test_4/1_cube.py
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-
-
-def model(msh, E, p, ensemble_size, case_name, max_iter, use_Prec=False):
-    comm, rank, size = m.utilities.import_MPI()
-    file_dir = os.path.dirname(__file__)
-
-    pbl = m.Problem(msh, comm)
-
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0., 1, 0., 1, 0., 1, 0.,
-                ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 0.  # 10**(-8)
-    solverList['Maximum Iterations'] = int(max_iter)
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = use_Prec
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write vtk files'] = False
-
-    if use_Prec:
-        solverList['convert MueLu xml file'] = True
-        solverList["use xml file"] = True
-        solverList["MueLu xml file name"] = file_dir + '/prec_1.xml'
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    u.mkdir_MPI(case_name, comm, rank, size)
-    os.chdir(case_name)
-
-    if rank == 0:
-        f = open('msh_size.txt', 'w')
-        print(len(msh.nodes), file=f)
-        f.closed
-
-        np.savetxt('E.txt', E)
-        np.savetxt('p.txt', p)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    os.chdir('..')
-
-
-def read_msh(i=1):
-    comm, rank, size = m.utilities.import_MPI()
-
-    mesh_name = str('1_cube_' + str(i) + '.msh')
-
-    file_dir = os.path.dirname(__file__)
-    work_dir = os.getcwd()
-
-    if size != 1:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute(myrank=rank)
-    else:
-        msh = gmsh.MeshLoader(mesh_name, work_dir).execute()
-
-    return msh
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    args = parseargs()
-
-    os.chdir('MPI_' + str(size))
-    work_dir = os.getcwd()
-
-    E_mean = 1.
-    p_mean = 0.1
-
-    ensemble_sizes = [1, 8, 16, 32]
-
-    nCx = 9
-    nCy = 9
-
-    N = 100
-    tmp = np.logspace(1, 5, N, endpoint=True, dtype=int)
-    nCzs = tmp - 1
-
-    i = np.loadtxt(work_dir + '/i.txt', dtype=int)
-    max_iter = np.loadtxt(work_dir + '/m.txt', dtype=int)
-    nCz = nCzs[i]
-    msh = read_msh(i)
-    nThreads = u.Initialize_Kokkos()
-    for ensemble_size in ensemble_sizes:
-        E = E_mean * np.ones(ensemble_size)
-        p = p_mean * np.ones(ensemble_size)
-
-        directory_case_id = 'test_' + str(i) + '_s_' + str(
-            ensemble_size) + '_no_prec_m_' + str(max_iter)
-        model(msh,
-              E,
-              p,
-              ensemble_size,
-              directory_case_id,
-              max_iter,
-              use_Prec=False)
-        directory_case_id = 'test_' + str(i) + '_s_' + str(
-            ensemble_size) + '_prec_m_' + str(max_iter)
-        model(msh,
-              E,
-              p,
-              ensemble_size,
-              directory_case_id,
-              max_iter,
-              use_Prec=True)
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_4/blake.slurm.sh b/katoptron/thesis/test_4/blake.slurm.sh
deleted file mode 100644
index 0a9ac5cf..00000000
--- a/katoptron/thesis/test_4/blake.slurm.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_4
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_4.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-n_MPI=1
-
-i_min=1
-i_max=201
-
-m_1=10
-m_2=100
-m_3=200
-
-nCx=100
-nCy=100
-
-base_dir=$(pwd)
-geo_file=${base_dir}/katoptron/thesis/test_4/1_cube.geo
-workspace_dir_0=${base_dir}/workspace/katoptron_thesis_test_4_1_cube
-workspace_dir=${workspace_dir_0}/MPI_${n_MPI}
-
-if [ ! -d ${workspace_dir_0} ] 
-then
-    mkdir ${workspace_dir_0}
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -d ${workspace_dir} ] 
-then    
-    mkdir ${workspace_dir}
-fi
-
-for (( i = $i_min; i < $i_max; ++i )); do
-  nCz=$(( 5*i ))
-  msh_file=${workspace_dir}/1_cube_${i}.msh
-  gmsh -3 ${geo_file} -setnumber nCx ${nCx} -setnumber nCy ${nCy} -setnumber nCz ${nCz} -o ${msh_file} -part ${n_MPI} -format msh22
-  echo $i &> ${workspace_dir}/i.txt
-  echo $m_1 &> ${workspace_dir}/m.txt
-  mpirun -np ${n_MPI} python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_2 &> ${workspace_dir}/m.txt
-  mpirun -np ${n_MPI} python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_3 &> ${workspace_dir}/m.txt
-  mpirun -np ${n_MPI} python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py    
-done
\ No newline at end of file
diff --git a/katoptron/thesis/test_4/blake_N_1.slurm.sh b/katoptron/thesis/test_4/blake_N_1.slurm.sh
deleted file mode 100644
index 337bfeeb..00000000
--- a/katoptron/thesis/test_4/blake_N_1.slurm.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_4
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_4.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-n_MPI=2
-
-i_min=1
-i_max=201
-
-m_1=10
-m_2=100
-m_3=200
-
-nCx=100
-nCy=100
-
-base_dir=$(pwd)
-geo_file=${base_dir}/katoptron/thesis/test_4/1_cube.geo
-workspace_dir_0=${base_dir}/workspace/katoptron_thesis_test_4_1_cube
-workspace_dir=${workspace_dir_0}/MPI_${n_MPI}
-
-if [ ! -d ${workspace_dir_0} ] 
-then
-    mkdir ${workspace_dir_0}
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -d ${workspace_dir} ] 
-then    
-    mkdir ${workspace_dir}
-fi
-
-for (( i = $i_min; i < $i_max; ++i )); do
-  nCz=$(( 5*i ))
-  msh_file=${workspace_dir}/1_cube_${i}.msh
-  gmsh -3 ${geo_file} -setnumber nCx ${nCx} -setnumber nCy ${nCy} -setnumber nCz ${nCz} -o ${msh_file} -part ${n_MPI} -format msh22
-  echo $i &> ${workspace_dir}/i.txt
-  echo $m_1 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_2 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_3 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-done
diff --git a/katoptron/thesis/test_4/blake_N_2.slurm.sh b/katoptron/thesis/test_4/blake_N_2.slurm.sh
deleted file mode 100644
index 96d5b765..00000000
--- a/katoptron/thesis/test_4/blake_N_2.slurm.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_4
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 2
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_4.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-n_MPI=4
-
-i_min=1
-i_max=201
-
-m_1=10
-m_2=100
-m_3=200
-
-nCx=100
-nCy=100
-
-base_dir=$(pwd)
-geo_file=${base_dir}/katoptron/thesis/test_4/1_cube.geo
-workspace_dir_0=${base_dir}/workspace/katoptron_thesis_test_4_1_cube
-workspace_dir=${workspace_dir_0}/MPI_${n_MPI}
-
-if [ ! -d ${workspace_dir_0} ] 
-then
-    mkdir ${workspace_dir_0}
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -d ${workspace_dir} ] 
-then    
-    mkdir ${workspace_dir}
-fi
-
-for (( i = $i_min; i < $i_max; ++i )); do
-  nCz=$(( 5*i ))
-  msh_file=${workspace_dir}/1_cube_${i}.msh
-  gmsh -3 ${geo_file} -setnumber nCx ${nCx} -setnumber nCy ${nCy} -setnumber nCz ${nCz} -o ${msh_file} -part ${n_MPI} -format msh22
-  echo $i &> ${workspace_dir}/i.txt
-  echo $m_1 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_2 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_3 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py  
-done
diff --git a/katoptron/thesis/test_4/blake_N_4.slurm.sh b/katoptron/thesis/test_4/blake_N_4.slurm.sh
deleted file mode 100644
index ae301ecc..00000000
--- a/katoptron/thesis/test_4/blake_N_4.slurm.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_4
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 4
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_4.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-n_MPI=8
-
-i_min=1
-i_max=201
-
-m_1=10
-m_2=100
-m_3=200
-
-nCx=100
-nCy=100
-
-base_dir=$(pwd)
-geo_file=${base_dir}/katoptron/thesis/test_4/1_cube.geo
-workspace_dir_0=${base_dir}/workspace/katoptron_thesis_test_4_1_cube
-workspace_dir=${workspace_dir_0}/MPI_${n_MPI}
-
-if [ ! -d ${workspace_dir_0} ] 
-then
-    mkdir ${workspace_dir_0}
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -d ${workspace_dir} ] 
-then    
-    mkdir ${workspace_dir}
-fi
-
-for (( i = $i_min; i < $i_max; ++i )); do
-  nCz=$(( 5*i ))
-  msh_file=${workspace_dir}/1_cube_${i}.msh
-  gmsh -3 ${geo_file} -setnumber nCx ${nCx} -setnumber nCy ${nCy} -setnumber nCz ${nCz} -o ${msh_file} -part ${n_MPI} -format msh22
-  echo $i &> ${workspace_dir}/i.txt
-  echo $m_1 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_2 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_3 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-done
diff --git a/katoptron/thesis/test_4/blake_N_8.slurm.sh b/katoptron/thesis/test_4/blake_N_8.slurm.sh
deleted file mode 100644
index c361eec1..00000000
--- a/katoptron/thesis/test_4/blake_N_8.slurm.sh
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_4
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 8
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_4.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-export MKL_NUM_THREADS=${OMP_NUM_THREADS}
-
-n_MPI=16
-
-i_min=1
-i_max=201
-
-m_1=10
-m_2=100
-m_3=200
-
-nCx=100
-nCy=100
-
-base_dir=$(pwd)
-geo_file=${base_dir}/katoptron/thesis/test_4/1_cube.geo
-workspace_dir_0=${base_dir}/workspace/katoptron_thesis_test_4_1_cube
-workspace_dir=${workspace_dir_0}/MPI_${n_MPI}
-
-if [ ! -d ${workspace_dir_0} ] 
-then
-    mkdir ${workspace_dir_0}
-    mkdir ${workspace_dir}
-fi
-
-if [ ! -d ${workspace_dir} ] 
-then    
-    mkdir ${workspace_dir}
-fi
-
-for (( i = $i_min; i < $i_max; ++i )); do
-  nCz=$(( 5*i ))
-  msh_file=${workspace_dir}/1_cube_${i}.msh
-  gmsh -3 ${geo_file} -setnumber nCx ${nCx} -setnumber nCy ${nCy} -setnumber nCz ${nCz} -o ${msh_file} -part ${n_MPI} -format msh22
-  echo $i &> ${workspace_dir}/i.txt
-  echo $m_1 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_2 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-  echo $m_3 &> ${workspace_dir}/m.txt
-  mpirun -npersocket 1 python run.py -k ${OMP_NUM_THREADS} katoptron/thesis/test_4/1_cube.py
-done
diff --git a/katoptron/thesis/test_4/prec.xml b/katoptron/thesis/test_4/prec.xml
deleted file mode 100644
index 7fcef90c..00000000
--- a/katoptron/thesis/test_4/prec.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="5"/>
-  <Parameter name="smoother: type" type="string" value="RELAXATION"/>
-  <ParameterList name="smoother: params">
-    <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="5"/>
-    <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-    <!-- <Parameter name="relaxation: backward mode" type="bool" value="true"/> -->
-  </ParameterList>
-  <Parameter name="coarse: type" type="string" value="Klu"/>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-  <Parameter name="tentative: calculate qr" type="bool" value="false"/>
-  <Parameter name="number of equations"   type="int"  value="3"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/thesis/test_4/prec_1.xml b/katoptron/thesis/test_4/prec_1.xml
deleted file mode 100644
index b2bd91f1..00000000
--- a/katoptron/thesis/test_4/prec_1.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="1"/>
-  <Parameter name="coarse: type" type="string" value="RELAXATION"/>
-  <ParameterList name="coarse: params">
-    <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="5"/>
-    <Parameter name="relaxation: damping factor" type="double" value="0.9"/>    
-  </ParameterList>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="number of equations"   type="int"  value="3"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/thesis/test_5/1_bar.py b/katoptron/thesis/test_5/1_bar.py
deleted file mode 100644
index f33abe96..00000000
--- a/katoptron/thesis/test_5/1_bar.py
+++ /dev/null
@@ -1,220 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from scipy.sparse.linalg import spsolve
-from scipy.sparse.linalg import eigs
-from scipy.linalg import eig
-from scipy.sparse import spdiags
-import numpy as np
-import matplotlib.pyplot as plt
-import katoptron.convergence as c
-
-
-def build_K(n, L, E, A, sym=True):
-    h = (L / (n - 1))
-    diag_data = A * E * ((1 / h**2)) * 2. * np.ones((n, ))
-    diag_data[0] = 1.
-    diag_data[-1] = A * E * ((1 / h**2)) * 1.
-    off_data_1 = A * E * ((1 / h**2)) * (-1) * np.ones((n, ))
-    if sym:
-        off_data_1[0:1] = 0.
-    off_data_2 = A * E * ((1 / h**2)) * (-1) * np.ones((n, ))
-    off_data_2[0:2] = 0.
-
-    data = np.array([diag_data, off_data_1, off_data_2])
-    diags = np.array([0, -1, 1])
-    K = spdiags(data, diags, n, n).tocsr()
-    return K
-
-
-def analytical_eigenfunctions(n, L, E, A, n_eigenfunctions=5):
-    if n < n_eigenfunctions + 1:
-        n_eigenfunctions = n - 1
-    values = np.zeros((n, ))
-    vecs = np.zeros((n, n_eigenfunctions))
-
-    h = (L / (n - 1))
-    x = np.linspace(0, L, n)
-
-    c = np.arange(0, n_eigenfunctions, 1) + 0.5
-    values = A * E * (c * 3.14 / L)**2
-
-    for i in range(0, n_eigenfunctions):
-        vecs[:, i] = np.sin((c[i] * np.pi * x / L))
-        norm = np.linalg.norm(vecs[:, i])
-        vecs[:, i] /= norm
-    return values, vecs
-
-
-def numerical_eigenfunctions(n, L, E, A, n_eigenfunctions=5):
-    if n < n_eigenfunctions + 1:
-        n_eigenfunctions = n - 1
-    K = build_K(n, L, E, A)
-
-    vals, vecs = eig(K.toarray())
-    return np.real(vals[0:n_eigenfunctions]), vecs[:, 0:n_eigenfunctions]
-
-
-def omegas_lambdas_nf(n, L, nE, A, nf):
-    N = len(nE)
-    norm = 0.
-    for i in range(0, N):
-        norm += np.linalg.norm(nf[i])**2
-    norm = np.sqrt(norm)
-    lambdas_all = np.array([])
-    omegas_all = np.array([])
-    for i in range(0, N):
-        nf_tmp = (nf[i] / norm)
-        lambdas, vecs = analytical_eigenfunctions(n, L, nE[i], A, n - 1)
-        print(vecs)
-        c = np.dot(vecs.T, nf_tmp)
-
-        omegas = np.zeros((len(c), ))
-        for i in range(0, len(omegas)):
-            omegas[i] = np.linalg.norm(c[i])**2
-
-        lambdas_all = np.append(lambdas_all, lambdas)
-        omegas_all = np.append(omegas_all, omegas)
-
-    indices = np.argsort(lambdas_all)
-    lambdas = lambdas_all[indices]
-    omegas = omegas_all[indices]
-
-    return lambdas, omegas
-
-
-def omegas_lambdas_f(n, L, E, A, f):
-    lambdas, vecs = analytical_eigenfunctions(n, L, E, A, n - 1)
-    norm = np.linalg.norm(f)
-    f_tmp = (f / norm)
-    c = np.dot(vecs.T, f_tmp)
-
-    omegas = np.zeros((len(c), ))
-    for i in range(0, len(omegas)):
-        omegas[i] = np.linalg.norm(c[i])**2
-
-    return lambdas, omegas
-
-
-def build_f(n, L, lF, F):
-    h = (L / (n - 1))
-    iF = int(np.round((lF / h)) + 1)
-    f = np.zeros((n, ))
-    f[iF] = (F / h)
-    return f
-
-
-def solve_Kf(n, L, lF, F, E, A):
-    sym = True
-
-    K = build_K(n, L, E, A, sym)
-    f = build_f(n, L, lF, F)
-
-    u = spsolve(K, f)
-    return u
-
-
-def write_on_disk(name, res):
-    i_max = len(res)
-    for i in range(0, i_max):
-        if res[i] == 0.:
-            i_max = i + 1
-            break
-    tmp = np.zeros((i_max, 2))
-    tmp[:, 1] = res[0:i_max]
-    tmp[:, 0] = np.arange(0, i_max)
-    np.savetxt(name, tmp)
-
-
-def main():
-    n = 7
-    L = 1.
-    E_1 = 1.
-    E_2 = 1.5
-    A = 1.
-    F = 1.
-
-    x = np.linspace(0, L, n)
-
-    f_1 = build_f(n, L, 0.5, F)
-    f_2 = build_f(n, L, 0.8, F)
-
-    print(f_1)
-    print(f_2)
-
-    lambdas_11, omegas_11 = omegas_lambdas_f(n, L, E_1, A, f_1)
-    lambdas_12, omegas_12 = omegas_lambdas_f(n, L, E_1, A, f_2)
-
-    lambdas_21, omegas_21 = omegas_lambdas_f(n, L, E_2, A, f_1)
-    lambdas_22, omegas_22 = omegas_lambdas_f(n, L, E_2, A, f_2)
-
-    residual_11 = c.compute_convergence_serial_normal(20, n - 1, omegas_11,
-                                                      lambdas_11)
-    residual_12 = c.compute_convergence_serial_normal(20, n - 1, omegas_12,
-                                                      lambdas_12)
-    residual_21 = c.compute_convergence_serial_normal(20, n - 1, omegas_21,
-                                                      lambdas_21)
-    residual_22 = c.compute_convergence_serial_normal(20, n - 1, omegas_22,
-                                                      lambdas_22)
-
-    lambdas_1, omegas_1 = omegas_lambdas_nf(n, L, [E_1, E_1], A, [f_1, f_2])
-    lambdas_2, omegas_2 = omegas_lambdas_nf(n, L, [E_2, E_2], A, [f_1, f_2])
-    lambdas_3, omegas_3 = omegas_lambdas_nf(n, L, [E_1, E_2], A, [f_1, f_1])
-    lambdas_4, omegas_4 = omegas_lambdas_nf(n, L, [E_1, E_2], A, [f_2, f_2])
-    lambdas_5, omegas_5 = omegas_lambdas_nf(n, L, [E_1, E_2], A, [f_1, f_2])
-
-    residual_1 = c.compute_convergence_serial_normal(20, 2 * (n - 1), omegas_1,
-                                                     lambdas_1)
-    residual_2 = c.compute_convergence_serial_normal(20, 2 * (n - 1), omegas_2,
-                                                     lambdas_2)
-    residual_3 = c.compute_convergence_serial_normal(20, 2 * (n - 1), omegas_3,
-                                                     lambdas_3)
-    residual_4 = c.compute_convergence_serial_normal(20, 2 * (n - 1), omegas_4,
-                                                     lambdas_4)
-    residual_5 = c.compute_convergence_serial_normal(20, 2 * (n - 1), omegas_5,
-                                                     lambdas_5)
-
-    write_on_disk('res_11.txt', residual_11)
-    write_on_disk('res_12.txt', residual_12)
-    write_on_disk('res_21.txt', residual_21)
-    write_on_disk('res_22.txt', residual_22)
-    write_on_disk('res_1.txt', residual_1)
-    write_on_disk('res_2.txt', residual_2)
-    write_on_disk('res_3.txt', residual_3)
-    write_on_disk('res_4.txt', residual_4)
-    write_on_disk('res_5.txt', residual_5)
-
-    plt.figure()
-    plt.semilogy(residual_11)
-    plt.semilogy(residual_22)
-    plt.semilogy(residual_1)
-    '''
-    plt.figure()
-    plt.subplot(221)
-    plt.plot(lambdas_11, '-*')
-    plt.subplot(222)
-    plt.plot(lambdas_12, '-*')
-    plt.subplot(223)
-    plt.plot(lambdas_21, '-*')
-    plt.subplot(224)
-    plt.plot(lambdas_22, '-*')
-    plt.figure()
-    plt.subplot(221)
-    plt.plot(omegas_11, '-*')
-    plt.subplot(222)
-    plt.plot(omegas_12, '-*')
-    plt.subplot(223)
-    plt.plot(omegas_21, '-*')
-    plt.subplot(224)
-    plt.plot(omegas_22, '-*')
-
-    plt.figure()
-    plt.plot(lambdas_44, '-*')
-    plt.figure()
-    plt.plot(omegas_44, '-*')
-    '''
-    plt.show()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_5/laplacian.py b/katoptron/thesis/test_5/laplacian.py
deleted file mode 100644
index d64a9e21..00000000
--- a/katoptron/thesis/test_5/laplacian.py
+++ /dev/null
@@ -1,164 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-from scipy.sparse.linalg import spsolve
-from scipy.sparse.linalg import eigs
-from scipy.linalg import eig
-from scipy.sparse import spdiags
-import numpy as np
-import matplotlib.pyplot as plt
-import katoptron.convergence as c
-
-
-def analytical_eigenvectors(n, kappa):
-    values = np.zeros((n, ))
-    vecs = np.zeros((n, n))
-
-    h = 1. / (n + 1)
-
-    k = np.arange(1, n + 1, 1)
-    values = 2 * kappa * (1 - np.cos(k * h * np.pi))
-
-    for i in range(0, n):
-        vecs[i, :] = np.sin((i + 1) * k * h * np.pi)
-
-    for i in range(0, n):
-        norm = np.linalg.norm(vecs[:, i])
-        vecs[:, i] /= norm
-    return values, vecs
-
-
-def omegas_lambdas_nf(n, nkappa, nf):
-    N = len(nkappa)
-    norm = 0.
-    for i in range(0, N):
-        norm += np.linalg.norm(nf[i])**2
-    norm = np.sqrt(norm)
-    lambdas_all = np.array([])
-    omegas_all = np.array([])
-    for i in range(0, N):
-        nf_tmp = (nf[i] / norm)
-        lambdas, vecs = analytical_eigenvectors(n, nkappa[i])
-        c = np.dot(vecs.T, nf_tmp)
-
-        omegas = np.zeros((len(c), ))
-        for i in range(0, len(omegas)):
-            omegas[i] = np.linalg.norm(c[i])**2
-
-        lambdas_all = np.append(lambdas_all, lambdas)
-        omegas_all = np.append(omegas_all, omegas)
-
-    indices = np.argsort(lambdas_all)
-    lambdas = lambdas_all[indices]
-    omegas = omegas_all[indices]
-
-    return lambdas, omegas
-
-
-def omegas_lambdas_f(n, kappa, f):
-    lambdas, vecs = analytical_eigenvectors(n, kappa)
-    norm = np.linalg.norm(f)
-    f_tmp = (f / norm)
-    c = np.dot(vecs.T, f_tmp)
-
-    omegas = np.zeros((len(c), ))
-    for i in range(0, len(omegas)):
-        omegas[i] = np.linalg.norm(c[i])**2
-
-    return lambdas, omegas
-
-
-def write_on_disk(name, res):
-    i_max = len(res)
-    for i in range(0, i_max):
-        if res[i] == 0.:
-            i_max = i + 1
-            break
-    tmp = np.zeros((i_max, 2))
-    tmp[:, 1] = res[0:i_max]
-    tmp[:, 0] = np.arange(0, i_max)
-    np.savetxt(name, tmp)
-
-
-def main():
-    n = 6
-    kappa_1 = 1.
-    kappa_2 = 1.5
-
-    f_1 = np.zeros((n, ))
-    f_2 = np.zeros((n, ))
-
-    f_1[3] = 1.
-    f_2[-1] = 1.
-
-    print(f_1)
-    print(f_2)
-
-    lambdas_11, omegas_11 = omegas_lambdas_f(n, kappa_1, f_1)
-    lambdas_12, omegas_12 = omegas_lambdas_f(n, kappa_1, f_2)
-
-    lambdas_21, omegas_21 = omegas_lambdas_f(n, kappa_2, f_1)
-    lambdas_22, omegas_22 = omegas_lambdas_f(n, kappa_2, f_2)
-
-    print(np.round(lambdas_11, 3))
-    print(np.round(omegas_11, 3))
-
-    print(np.round(lambdas_12, 3))
-    print(np.round(omegas_12, 3))
-
-    print(np.round(lambdas_21, 3))
-    print(np.round(omegas_21, 3))
-
-    print(np.round(lambdas_22, 3))
-    print(np.round(omegas_22, 3))
-
-    residual_11 = c.compute_convergence_serial_normal(20, n, omegas_11,
-                                                      lambdas_11)
-    residual_12 = c.compute_convergence_serial_normal(20, n, omegas_12,
-                                                      lambdas_12)
-    residual_21 = c.compute_convergence_serial_normal(20, n, omegas_21,
-                                                      lambdas_21)
-    residual_22 = c.compute_convergence_serial_normal(20, n, omegas_22,
-                                                      lambdas_22)
-
-    lambdas_1, omegas_1 = omegas_lambdas_nf(n, [kappa_1, kappa_1], [f_1, f_2])
-    lambdas_2, omegas_2 = omegas_lambdas_nf(n, [kappa_2, kappa_2], [f_1, f_2])
-    lambdas_3, omegas_3 = omegas_lambdas_nf(n, [kappa_1, kappa_2], [f_1, f_1])
-    lambdas_4, omegas_4 = omegas_lambdas_nf(n, [kappa_1, kappa_2], [f_2, f_2])
-    lambdas_5, omegas_5 = omegas_lambdas_nf(n, [kappa_1, kappa_2], [f_1, f_2])
-
-    residual_1 = c.compute_convergence_serial_normal(20, 2 * n, omegas_1,
-                                                     lambdas_1)
-    residual_2 = c.compute_convergence_serial_normal(20, 2 * n, omegas_2,
-                                                     lambdas_2)
-    residual_3 = c.compute_convergence_serial_normal(20, 2 * n, omegas_3,
-                                                     lambdas_3)
-    residual_4 = c.compute_convergence_serial_normal(20, 2 * n, omegas_4,
-                                                     lambdas_4)
-    residual_5 = c.compute_convergence_serial_normal(20, 2 * n, omegas_5,
-                                                     lambdas_5)
-
-    write_on_disk('res_11.txt', residual_11)
-    write_on_disk('res_12.txt', residual_12)
-    write_on_disk('res_21.txt', residual_21)
-    write_on_disk('res_22.txt', residual_22)
-    write_on_disk('res_1.txt', residual_1)
-    write_on_disk('res_2.txt', residual_2)
-    write_on_disk('res_3.txt', residual_3)
-    write_on_disk('res_4.txt', residual_4)
-    write_on_disk('res_5.txt', residual_5)
-
-    print(np.round(lambdas_1, 3))
-    print(np.round(omegas_1, 3))
-    print(np.round(lambdas_2, 3))
-    print(np.round(omegas_2, 3))
-    print(np.round(lambdas_3, 3))
-    print(np.round(omegas_3, 3))
-    print(np.round(lambdas_4, 3))
-    print(np.round(omegas_4, 3))
-    print(np.round(lambdas_5, 3))
-    print(np.round(omegas_5, 3))
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_6/1_cube.geo b/katoptron/thesis/test_6/1_cube.geo
deleted file mode 100644
index f3bd653d..00000000
--- a/katoptron/thesis/test_6/1_cube.geo
+++ /dev/null
@@ -1,42 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-C1 = 10;
-//nCx = 3;
-//nCy = 4;
-//nCz = 5;
-
-lc = 1;
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { C1,   0, 0, lc};
-Point(3) = { C1, 0, C1, lc};
-Point(4) = { 0, 0, C1, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Transfinite Line {1,3} = nCx+1 Using Progression 1;
-Transfinite Line {2,4} = nCz+1 Using Progression 1;
-
-Line Loop(11) = {1,2,3,4};
-Plane Surface(12) = {11};
-Transfinite Surface {12};
-Recombine Surface {12};
-
-Extrude {0, C1, 0}
-{
-  Surface{12}; Layers{nCy}; Recombine;
-}
-
-// physical entities
-
-Physical Volume("Body 1") = {1};
-
-Physical Surface("Surf 1 1") = {-21};
-Physical Surface("Surf 1 2") = {-29};
-
-Physical Point("Measure point 1") = {4};
-Physical Point("Measure point 2") = {1};
diff --git a/katoptron/thesis/test_6/1_cube.py b/katoptron/thesis/test_6/1_cube.py
deleted file mode 100644
index 32062406..00000000
--- a/katoptron/thesis/test_6/1_cube.py
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import threading
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import katoptron.utilities as u
-from PyTrilinos import Teuchos
-import shlex
-import subprocess
-import os
-import numpy as np
-import tarfile
-import glob
-from fwk.wutils import parseargs
-
-
-def model(msh,
-          E,
-          p,
-          ensemble_size,
-          case_name,
-          work_dir,
-          max_iter,
-          comm,
-          use_Prec=False):
-    rank = comm.rank
-    siz = comm.size
-    file_dir = os.path.dirname(__file__)
-
-    pbl = m.Problem(msh, comm)
-
-    nu = 0.2 * np.ones(ensemble_size)
-    k = 0.114
-    d = 0.
-
-    zero = np.zeros(ensemble_size)
-    m.Medium(pbl, "Body 1", "test", E, nu, k, d)
-
-    m.Dirichlet(pbl, "Surf 1 1", "Clamped", 1, 0., 1, 0., 1, 0., 1, 0.,
-                ensemble_size)
-    m.Neumann(pbl, "Surf 1 2", "heat fluxes", 0, zero, 0, zero, 1, p, 0, zero,
-              ensemble_size)
-
-    solverList = Teuchos.ParameterList()
-    solverList['Ensemble Convergence Tolerance'] = 0.  # 10**(-8)
-    solverList['Maximum Iterations'] = max_iter
-    solverList['Verbosity'] = 33
-    solverList['Flexible Gmres'] = False
-    solverList['Output Style'] = 1
-    solverList['Output Frequency'] = 1
-
-    solverList['Use preconditioner'] = use_Prec
-
-    solverList['type'] = "BlockGmres"
-    solverList['Maximum active set iteration'] = 1
-
-    solverList['Print Teuchos timers'] = True
-    solverList['Write vtk files'] = False
-
-    if use_Prec:
-        solverList['convert MueLu xml file'] = True
-        solverList["use xml file"] = True
-        solverList["MueLu xml file name"] = file_dir + '/prec.xml'
-
-    slv = m.IterativeSolver(pbl, solverList, 3, ensemble_size)
-
-    if not os.path.exists(case_name):
-        os.makedirs(case_name)
-    os.chdir(case_name)
-
-    if rank == 0:
-        f = open('msh_size.txt', 'w')
-        print(len(msh.nodes), file=f)
-        f.closed
-
-        np.savetxt('E.txt', E)
-        np.savetxt('p.txt', p)
-
-    slv.start()
-
-    if rank == 0:
-        f = open('timers.txt', 'w')
-        print(slv.getTimers(), file=f)
-        f.closed
-
-    os.chdir(work_dir)
-
-
-def one_model(test_id, ensemble_size, rank, work_dir, msh, E, p, k, max_iter,
-              comm):
-    directory_case_id = work_dir + '/test_' + str(test_id) + '_s_' + str(
-        ensemble_size) + '_rank_' + str(rank)
-    model(msh,
-          E,
-          p,
-          ensemble_size,
-          directory_case_id,
-          work_dir,
-          k,
-          max_iter,
-          comm,
-          use_Prec=True)
-
-
-def main():
-    comm, rank, size = m.utilities.import_MPI()
-
-    group_size = 1
-    color = int(np.floor((rank / group_size)))
-    key = rank
-
-    newcomm = comm.Split(color, key)
-
-    args = parseargs()
-    work_dir = os.getcwd()
-
-    msh_name = '1_cube.msh'
-
-    E_mean = 1.
-    p_mean = 0.1
-
-    ensemble_size = int(os.getenv('ensemble_size', 1))
-    test_id = int(os.getenv('test_id', 1))
-    max_iter = int(os.getenv('max_iter', 100))
-
-    msh = gmsh.MeshLoader(msh_name, work_dir).execute()
-
-    E = E_mean * np.ones(ensemble_size)
-    p = p_mean * np.ones(ensemble_size)
-
-    directory_case_id = 'test_' + str(test_id) + '_s_' + str(
-        ensemble_size) + '_rank_' + str(rank)
-
-    nThreads = u.Initialize_Kokkos()
-    model(msh,
-          E,
-          p,
-          ensemble_size,
-          directory_case_id,
-          work_dir,
-          max_iter,
-          newcomm,
-          use_Prec=True)
-
-    u.Finalize_Kokkos()
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/thesis/test_6/blake.slurm.sh b/katoptron/thesis/test_6/blake.slurm.sh
deleted file mode 100644
index 803f3cf1..00000000
--- a/katoptron/thesis/test_6/blake.slurm.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash
-# Submission script for Blake
-#SBATCH --job-name=test_6
-#SBATCH --time=41:00:00 # hh:mm:ss
-#
-#SBATCH -N 1
-#SBATCH -p blake
-#
-#SBATCH --comment=test
-#SBATCH --output=workspace/test_6.%j.out
-
-. ~/.bash_profile $SLURM_SUBMIT_HOST
-
-export MKL_DYNAMIC=TRUE
-export OMP_DYNAMIC=FALSE
-export OMP_NUM_THREADS=24
-export KMP_HW_SUBSET=24c,1t
-export KMP_AFFINITY=compact
-
-base_dir=$(pwd)
-geo_file=${base_dir}/katoptron/thesis/test_6/1_cube.geo
-msh_file=${base_dir}/workspace/katoptron_thesis_test_6_1_cube/1_cube.msh
-
-if [ ! -d ${base_dir}/workspace/katoptron_thesis_test_6_1_cube ] 
-then
-    mkdir ${base_dir}/workspace/katoptron_thesis_test_6_1_cube
-fi
-
-workspace/thesis_tests_test_6_1_cube
-
-gmsh -3 -format msh2 -setnumber nCx 49 -setnumber nCy 49 -setnumber nCz 49 -o ${msh_file} ${geo_file} -format msh22
-
-export max_iter=200
-
-export test_id=1
-export ensemble_size=1
-export MKL_NUM_THREADS=1
-export OMP_NUM_THREADS=1
-python run.py -k 1 katoptron/thesis/test_6/1_cube.py
-
-export test_id=2
-export ensemble_size=1
-export MKL_NUM_THREADS=24
-export OMP_NUM_THREADS=24
-python run.py -k 24 katoptron/thesis/test_6/1_cube.py
-
-export test_id=3
-export ensemble_size=8
-export MKL_NUM_THREADS=24
-export OMP_NUM_THREADS=24
-python run.py -k 24 katoptron/thesis/test_6/1_cube.py
-
-export test_id=4
-export ensemble_size=1
-export MKL_NUM_THREADS=1
-export OMP_NUM_THREADS=1
-#mpirun -npersocket 1 python run.py -k 1 katoptron/thesis/test_6/1_cube.py
-#mpirun --report-bindings --bind-to core --map-by ppr:24:socket:pe=1 python run.py -k 1 katoptron/thesis/test_6/1_cube.py &> log.txt
-mpirun --bind-to core --map-by ppr:24:socket:pe=1 python run.py -k 1 katoptron/thesis/test_6/1_cube.py
diff --git a/katoptron/thesis/test_6/prec.xml b/katoptron/thesis/test_6/prec.xml
deleted file mode 100644
index 7fcef90c..00000000
--- a/katoptron/thesis/test_6/prec.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="5"/>
-  <Parameter name="smoother: type" type="string" value="RELAXATION"/>
-  <ParameterList name="smoother: params">
-    <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="5"/>
-    <Parameter name="relaxation: damping factor" type="double" value="0.9"/>
-    <!-- <Parameter name="relaxation: backward mode" type="bool" value="true"/> -->
-  </ParameterList>
-  <Parameter name="coarse: type" type="string" value="Klu"/>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="multigrid algorithm" type="string" value="unsmoothed"/>
-  <Parameter name="tentative: calculate qr" type="bool" value="false"/>
-  <Parameter name="number of equations"   type="int"  value="3"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/thesis/test_6/prec_1.xml b/katoptron/thesis/test_6/prec_1.xml
deleted file mode 100644
index b2bd91f1..00000000
--- a/katoptron/thesis/test_6/prec_1.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- Define MueLu preconditioner -->
-<!-- Note: if you use Tpetra you may have to change it to MueLu-Tpetra -->
-<!--       here and above where you set the preconditioner -->
-<ParameterList name="MueLu">
-  <Parameter name="max levels"   type="int"  value="1"/>
-  <Parameter name="coarse: type" type="string" value="RELAXATION"/>
-  <ParameterList name="coarse: params">
-    <Parameter name="relaxation: type" type="string" value="MT Gauss-Seidel"/>
-    <Parameter name="relaxation: sweeps" type="int" value="5"/>
-    <Parameter name="relaxation: damping factor" type="double" value="0.9"/>    
-  </ParameterList>
-  <Parameter name="verbosity" type="string" value="extreme"/>
-  <Parameter name="number of equations"   type="int"  value="3"/>
-</ParameterList>
-<!-- end "MueLu" -->
-	      
diff --git a/katoptron/thesis/test_6/speedup.py b/katoptron/thesis/test_6/speedup.py
deleted file mode 100644
index 6e1bbaf1..00000000
--- a/katoptron/thesis/test_6/speedup.py
+++ /dev/null
@@ -1,170 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-
-
-
-from katoptron.speedup import *
-import matplotlib.pyplot as plt
-import os
-
-
-def read_timers_all(file_base_dir, querylines, use_waves_timers,
-                    use_teuchos_timers):
-
-    timers = np.zeros((len(querylines), ))
-
-    for k in use_waves_timers:
-        timers[int(k)] = read_timers(file_base_dir + 'timers.txt',
-                                     [querylines[int(k)]])[0]
-    for k in use_teuchos_timers:
-        timers[int(k)] = read_teuchos_timers(
-            file_base_dir + 'teuchos_timers.txt', [querylines[int(k)]])[0]
-
-    return timers
-
-
-def CPU_time_per_one_case(base_dir,
-                          quantiles,
-                          querylines,
-                          use_waves_timers,
-                          use_teuchos_timers,
-                          filename_CPU,
-                          filename_speed_up,
-                          total_id,
-                          write_id,
-                          block_id,
-                          mult=1.):
-
-    timers = read_timers_all(base_dir, querylines, use_waves_timers,
-                             use_teuchos_timers)
-
-    current_timer = timers*mult
-
-    f = open(filename_CPU, 'w')
-    print(timers.shape, file=f)
-
-    for i in range(0, len(timers)):
-        print(querylines[i], file=f)
-        string = ''
-        if i == total_id:
-            current_timer[i] -= timers[write_id]
-            current_timer[i] -= timers[block_id]
-
-        string = string + str(round(current_timer[i], 3)) + ' & '
-        print(string, file=f)
-        print(' ', file=f)
-    f.closed
-
-    return current_timer
-
-
-def analysis_one_case(directory,
-                      base_dir,
-                      quantiles,
-                      querylines,
-                      use_waves_timers,
-                      use_teuchos_timers,
-                      mult=1.):
-    if not os.path.exists(directory):
-        os.makedirs(directory)
-    os.chdir(directory)
-
-    current_timer = CPU_time_per_one_case(base_dir,
-                                          quantiles,
-                                          querylines,
-                                          use_waves_timers,
-                                          use_teuchos_timers,
-                                          'average_CPU.txt',
-                                          'average_speed_up.txt',
-                                          7,
-                                          8,
-                                          9,
-                                          mult=mult)
-
-    os.chdir('..')
-    return current_timer
-
-
-def main():
-    import matplotlib.pyplot as plt
-
-    file_dir = os.path.dirname(__file__)
-
-    quantiles = [0, 0.33, 0.5, 0.66, 1.]
-
-    querylines = [
-        'computeMatrices',
-        'MueLu: Hierarchy: Setup (total)',
-        'Belos: DGKS[2]: Orthogonalization',
-        'Belos: Operation Op*x',
-        'Belos: Operation Prec*x',
-        'MueLu: Hierarchy: Solve : coarse (level=0)',
-        'Belos: PseudoBlockGmresSolMgr total solve time',
-        'total',
-        'write results',
-        'create the block matrix'
-    ]
-    use_waves_timers = np.array([0, 7, 8, 9], dtype=int)
-    use_teuchos_timers = np.array(
-        [1, 2, 3, 4, 5, 6],
-        dtype=int)
-
-    base_dir = file_dir + \
-        '/../../../workspace/katoptron_thesis_test_6_1_cube/test_1_s_1_rank_0/'
-    mult = 24
-
-    directory = 'option_1'
-    current_timer_1 = analysis_one_case(directory, base_dir,
-                                        quantiles, querylines, use_waves_timers,
-                                        use_teuchos_timers, mult=mult)
-
-    base_dir = file_dir + \
-        '/../../../workspace/katoptron_thesis_test_6_1_cube/test_2_s_1_rank_0/'
-    mult = 24
-
-    directory = 'option_2'
-    current_timer_2 = analysis_one_case(directory, base_dir,
-                                        quantiles, querylines, use_waves_timers,
-                                        use_teuchos_timers, mult=mult)
-
-    base_dir = file_dir + \
-        '/../../../workspace/katoptron_thesis_test_6_1_cube/test_4_s_1_rank_0/'
-    mult = 1
-
-    directory = 'option_3'
-    current_timer_3 = analysis_one_case(directory, base_dir,
-                                        quantiles, querylines, use_waves_timers,
-                                        use_teuchos_timers, mult=mult)
-
-    base_dir = file_dir + \
-        '/../../../workspace/katoptron_thesis_test_6_1_cube/test_3_s_8_rank_0/'
-    mult = 3
-
-    directory = 'option_4'
-    current_timer_4 = analysis_one_case(directory, base_dir,
-                                        quantiles, querylines, use_waves_timers,
-                                        use_teuchos_timers, mult=mult)
-
-    tmp = np.zeros((len(current_timer_1), 4))
-    tmp[:, 0] = current_timer_1
-    tmp[:, 1] = current_timer_2
-    tmp[:, 2] = current_timer_3
-    tmp[:, 3] = current_timer_4
-
-    np.savetxt('all.txt', tmp, fmt='%1.3f')
-
-    tmp_2 = np.copy(tmp)
-
-    tmp_2[:, 0] /= tmp_2[:, 1]
-    tmp_2[:, 2] /= tmp_2[:, 1]
-    tmp_2[:, 3] /= tmp_2[:, 1]
-    tmp_2[:, 1] /= tmp_2[:, 1]
-
-    speed_up = 1./tmp_2
-
-    np.savetxt('speed_up.txt', speed_up, fmt='%1.3f')
-
-
-if __name__ == "__main__":
-    main()
diff --git a/katoptron/utilities.py b/katoptron/utilities.py
deleted file mode 100644
index fce0a04b..00000000
--- a/katoptron/utilities.py
+++ /dev/null
@@ -1,786 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-
-import katoptron as m
-import tbox
-import tbox.gmsh as gmsh
-import shlex
-import subprocess
-import os
-import numpy as np
-from katoptron.eigenvalues import *
-
-
-def get_gmsh_version():
-    tmp = subprocess.check_output(["gmsh", "--version"],
-                                  stderr=subprocess.STDOUT)
-    tmp2 = tmp.decode().split('.')
-    return int(tmp2[0]), int(tmp2[1]), int(tmp2[2])
-
-
-def import_MPI():
-    try:
-        import mpi4py.MPI as mpi
-        comm = mpi.COMM_WORLD
-        rank = comm.rank
-        size = comm.size
-        name = mpi.Get_processor_name()
-        status = mpi.Status()
-        print('info: MPI found')
-    except:
-        comm = None
-        rank = 0
-        size = 1
-        name = "noname"
-        print('info: MPI not found => MPI disabled')
-    return comm, rank, size
-
-
-def Initialize_Kokkos():
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    m.Kokkos_Initialize(args.k)
-    return args.k
-
-
-def Finalize_Kokkos():
-    m.Kokkos_Finalize()
-
-
-def mkdir_MPI(directory, comm, rank, size):
-    # Create a new directory if rank == 0
-    if rank == 0:
-        if not os.path.exists(directory):
-            os.makedirs(directory)
-
-    comm.Barrier()
-
-
-def read_mesh_MPI(geo_name, file_dir, work_dir, comm, rank, size, params=None):
-    base_name = geo_name.partition(".")[0]
-    geo_type = geo_name.partition(".")[2]
-
-    mesh_name = base_name + '.msh'
-    partitioned_mesh_name = str(base_name + '_' + str(size) + '.msh')
-
-    if geo_type == "geo" and rank == 0:
-        if params is not None:
-            gmsh.MeshLoader(geo_name, file_dir).execute(**params)
-        else:
-            gmsh.MeshLoader(geo_name, file_dir).execute()
-
-    if size > 1:
-        comm.Barrier()
-
-    msh_dir = work_dir
-    if geo_type == "msh":
-        msh_dir = file_dir
-
-    if size == 1:
-        msh = gmsh.MeshLoader(mesh_name, msh_dir).execute()
-    else:
-        if rank == 0:
-            # Get gmsh version:
-            gmsh_major_version, gmsh_minor_version, gmsh_patch_version = get_gmsh_version()
-
-            command_line = 'gmsh -3 ' + msh_dir + '/' + mesh_name + ' -o ' + \
-                work_dir + '/' + partitioned_mesh_name + \
-                ' -part ' + str(size) + ' -format msh22'
-
-            # If gmsh is newer than gmsh 4, we have to specify that we want the ghost elements.
-            if gmsh_major_version >= 4:
-                command_line += ' -part_ghosts'
-            print(command_line)
-            tmp = shlex.split(command_line)
-            fileout = open('gmsh.log', 'w')
-            p = subprocess.Popen(tmp,
-                                 stdin=subprocess.PIPE,
-                                 stdout=fileout,
-                                 stderr=fileout,
-                                 env=os.environ,
-                                 shell=False,
-                                 close_fds=True)
-            retcode = p.wait()
-
-        comm.Barrier()
-
-        msh = gmsh.MeshLoader(partitioned_mesh_name,
-                              work_dir).execute(myrank=rank)
-
-    return msh, mesh_name, partitioned_mesh_name
-
-
-def read_mesh_to_fuse(filename,
-                      filename_output,
-                      file_dir,
-                      work_dir,
-                      comm,
-                      rank,
-                      size,
-                      index_nodes=0,
-                      index_elements=0,
-                      index_tags=0):
-    msh, mesh_name, partitioned_mesh_name = read_mesh_MPI(
-        filename, file_dir, work_dir, comm, rank, size)
-
-    gmshWriter = tbox.GmshExport(msh)
-    n_nodes = index_nodes + len(msh.nodes)
-    if index_nodes != 0:
-        for n in msh.nodes:
-            n.no = n.no + index_nodes
-    n_elems = index_elements + len(msh.elems)
-    if index_elements != 0:
-        for e in msh.elems:
-            e.no = e.no + index_elements
-    n_ptags = index_tags + len(msh.ptags)
-    if index_tags != 0:
-        for p in msh.ptags:
-            if msh.ptags[p].no > 1:
-                msh.ptags[p].no = msh.ptags[p].no + index_tags
-    gmshWriter.save(filename_output)
-
-    return n_nodes, n_elems, n_ptags
-
-
-def fuse_meshes(filename1, filename12, filename2, filename22, filename_output,
-                file_dir, work_dir, comm, rank, size):
-
-    if rank == 0:
-        n_nodes, n_elems, n_ptags = read_mesh_to_fuse(filename1, filename12,
-                                                      file_dir, work_dir, None,
-                                                      0, 1)
-        n_nodes, n_elems, n_ptags = read_mesh_to_fuse(filename2, filename22,
-                                                      file_dir, work_dir, None,
-                                                      0, 1, n_nodes, n_elems,
-                                                      n_ptags)
-
-        command_line = 'gmsh -3 ' + work_dir + '/' + filename12 + '.msh' + ' ' + work_dir + \
-            '/' + filename22 + '.msh' + ' -o ' + work_dir + '/' + \
-            filename_output + '.msh' + ' -format msh22'
-        tmp = shlex.split(command_line)
-        fileout = open('gmsh.log', 'w')
-        p = subprocess.Popen(tmp,
-                             stdin=subprocess.PIPE,
-                             stdout=fileout,
-                             stderr=fileout,
-                             env=os.environ,
-                             shell=False,
-                             close_fds=True)
-        retcode = p.wait()
-
-    if size > 1:
-        partitioned_mesh_name = str(filename_output + '_' + str(size) +
-                                           '.msh')
-        if rank == 0:
-            command_line = 'gmsh -3 ' + work_dir + '/' + filename_output + '.msh' + ' -o ' + work_dir + '/' + \
-                partitioned_mesh_name + ' -part ' + \
-                str(size) + ' -format msh22'
-            tmp = shlex.split(command_line)
-            fileout = open('gmsh.log', 'w')
-            p = subprocess.Popen(tmp,
-                                 stdin=subprocess.PIPE,
-                                 stdout=fileout,
-                                 stderr=fileout,
-                                 env=os.environ,
-                                 shell=False,
-                                 close_fds=True)
-            retcode = p.wait()
-        comm.Barrier()
-        msh = gmsh.MeshLoader(partitioned_mesh_name,
-                              work_dir).execute(myrank=rank)
-    else:
-        msh = gmsh.MeshLoader(filename_output + '.msh', work_dir).execute()
-
-    return msh
-
-
-def replace_strings(file_in, file_out, old_strings, new_strings):
-    with open(file_in, 'r') as file:
-        filedata = file.read()
-
-    for i in range(0, len(old_strings)):
-        filedata = filedata.replace(old_strings[i], new_strings[i])
-
-    with open(file_out, 'w') as file:
-        file.write(filedata)
-
-
-def print_nodes(msh, tag_names, rank):
-
-    for tag_name in tag_names:
-        print('Rank ' + str(rank) + ' Name tag: ' + tag_name + ' Elements: ' +
-              str(len(msh.ntags[tag_name].elems)))
-        for el in msh.ntags[tag_name].elems:
-            print(el)
-        print('Nodes: ')
-        print('{0:2s}   {1:3s}'.format('no', 'row'))
-        for el in msh.ntags[tag_name].elems:
-            for n1 in el.nodes:
-                print('{0:2d}   {1:3d}'.format(n1.no, n1.row))
-
-
-def extract(msh,
-            tag_name,
-            DOFperNode,
-            which_pos,
-            which_dof,
-            ensemble_size,
-            name_sol="x_mm.txt",
-            lot_of_data=False):
-    import numpy as np
-
-    nodeslist = []
-    #tag_name = "Center of cross section"
-    for el in msh.ntags[tag_name].elems:
-        for n1 in el.nodes:
-            nodeslist.append(n1.no)
-
-    nodes = list(set(nodeslist))
-
-    x = np.empty(np.shape(nodes))
-    x_sorted = np.empty(np.shape(nodes))
-    nodes_sorted = np.empty(np.shape(nodes), dtype=int)
-    sol = np.empty([len(nodes), ensemble_size])
-    for i in range(0, len(x)):
-        pos = msh.nodes[int(nodes[i])-1].pos
-        x[i] = pos[which_pos]
-
-    indices = np.argsort(x)
-    for i in range(0, len(x)):
-        x_sorted[i] = x[indices[i]]
-        nodes_sorted[i] = nodes[indices[i]]
-
-    with open(name_sol) as fp:
-        for i, line in enumerate(fp):
-            if i == 1:
-                tmp = np.array(line.split())
-                break
-    ndofs = tmp[0]
-
-    x = x_sorted
-    nodes = nodes_sorted
-
-    if which_dof == 3:
-        indices = nodes - 1
-    elif DOFperNode == 4:
-        indices = (ndofs / 4) + 3 * (nodes - 1) + int(which_dof)
-    else:
-        indices = 3 * (nodes - 1) + int(which_dof)
-
-    if lot_of_data:
-        sol_all = m.eigenvalues.read_mm(name_sol, is_sparse=False)
-        if ensemble_size == 1:
-            sol = sol_all[indices]
-        else:
-            sol = sol_all[indices, :]
-
-    else:
-        with open(name_sol) as fp:
-            for i, line in enumerate(fp):
-                for j in range(0, len(indices)):
-                    if i - 2 == indices[j]:
-                        sol[j, :] = np.array(line.split())
-
-    return x, sol
-
-
-def extract_2D(msh, tag_name, DOFperNode, which_dof, ensemble_size, name_sol):
-    # work only with triangel 2D now
-    comm, rank, size = import_MPI()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    nodeslist = []
-    #tag_name = "Center of cross section"
-    for el in msh.ntags[tag_name].elems:
-        for n1 in el.nodes:
-            nodeslist.append(n1.no - 1)
-    nodes = np.array(nodeslist)
-    nodes = np.sort(nodes)
-
-    i = 1
-    while i < len(nodes):
-        if nodes[i] == nodes[i - 1]:
-            nodes = np.delete(nodes, i)
-        else:
-            i = i + 1
-
-    nnodes = len(msh.nodes)
-    global_to_local = -1 * np.ones((nnodes, ), dtype='int32')
-
-    for i in range(0, len(nodes)):
-        global_to_local[nodes[i]] = i
-
-    ntri = len(msh.ntags[tag_name].elems)
-    tri = np.zeros((ntri, 3), dtype='uint32')
-
-    for i in range(0, ntri):
-        tri[i, 0] = global_to_local[msh.ntags[tag_name].elems[i].nodes[0].no -
-                                    1]
-        tri[i, 1] = global_to_local[msh.ntags[tag_name].elems[i].nodes[1].no -
-                                    1]
-        tri[i, 2] = global_to_local[msh.ntags[tag_name].elems[i].nodes[2].no -
-                                    1]
-
-    x = np.empty(np.shape(nodes))
-    y = np.empty(np.shape(nodes))
-    z = np.empty(np.shape(nodes))
-
-    sol = np.empty(np.shape(nodes))
-
-    x_sorted = np.empty(np.shape(nodes))
-    nodes_sorted = np.empty(np.shape(nodes))
-
-    #sol = np.empty([len(nodes), ensemble_size])
-
-    for i in range(0, len(x)):
-        pos = msh.nodes[nodes[i]].pos
-        x[i] = pos[0]
-        y[i] = pos[1]
-        z[i] = pos[2]
-
-    from scipy import io
-
-    #sol = x
-    if ensemble_size == 1:
-        sol_full = io.mmread(name_sol)
-    for j in range(0, len(x)):
-        sol[j] = sol_full[DOFperNode * (nodes[j]) + which_dof]
-
-    return x, y, z, tri, sol
-
-
-def extract_2D_all(msh, tag_name, DOFperNode, ensemble_size, name_sol):
-    # work only with triangel 2D now
-    comm, rank, size = import_MPI()
-
-    from PyTrilinos import Teuchos
-    import numpy as np
-
-    nodeslist = []
-    for el in msh.ntags[tag_name].elems:
-        for n1 in el.nodes:
-            nodeslist.append(n1.no - 1)
-    nodes = np.array(nodeslist)
-    nodes = np.sort(nodes)
-
-    ntri = len(msh.ntags[tag_name].elems)
-    tri = np.zeros((ntri, 3), dtype='uint32')
-
-    for i in range(0, ntri):
-        tri[i, 0] = msh.ntags[tag_name].elems[i].nodes[0].no - 1
-        tri[i, 1] = msh.ntags[tag_name].elems[i].nodes[1].no - 1
-        tri[i, 2] = msh.ntags[tag_name].elems[i].nodes[2].no - 1
-
-    i = 0
-    while i < len(nodes):
-        if nodes[i] == nodes[i - 1]:
-            nodes = np.delete(nodes, i)
-        else:
-            i = i + 1
-
-    x = np.empty(np.shape(nodes))
-    y = np.empty(np.shape(nodes))
-    z = np.empty(np.shape(nodes))
-
-    x_sorted = np.empty(np.shape(nodes))
-    nodes_sorted = np.empty(np.shape(nodes))
-
-    sol = np.empty([len(nodes), DOFperNode])
-
-    for i in range(0, len(x)):
-        pos = msh.nodes[nodes[i]].pos
-        x[i] = pos[0]
-        y[i] = pos[1]
-        z[i] = pos[2]
-
-    from scipy import io
-
-    if ensemble_size == 1:
-        sol_full = io.mmread(name_sol)
-    for j in range(0, len(x)):
-        for k in range(0, DOFperNode):
-            sol[j, k] = sol_full[DOFperNode * (nodes[j]) + k]
-
-    return x, y, z, tri, sol
-
-
-def compute_cross_and_theta(vec1, vec2):
-    from numpy import linalg as LA
-
-    norm1 = LA.norm(vec1)
-    norm2 = LA.norm(vec2)
-    cross = np.cross(vec1, vec2)
-    dot = np.dot(vec1, vec2)
-    theta = np.arccos((dot / (norm1 * norm2)))
-
-    return cross, theta
-
-
-def rotation_matrix(axis, theta):
-    """
-    Return the rotation matrix associated with counterclockwise rotation about
-    the given axis by theta radians.
-    """
-    axis = np.asarray(axis)
-    axis = (axis / np.sqrt(np.dot(axis, axis)))
-    a = np.cos((theta / 2.0))
-    b, c, d = -axis * np.sin((theta / 2.0))
-    aa, bb, cc, dd = a * a, b * b, c * c, d * d
-    bc, ad, ac, ab, bd, cd = b * c, a * d, a * c, a * b, b * d, c * d
-    return np.array([[aa + bb - cc - dd, 2 * (bc + ad), 2 * (bd - ac)],
-                     [2 * (bc - ad), aa + cc - bb - dd, 2 * (cd + ab)],
-                     [2 * (bd + ac), 2 * (cd - ab), aa + dd - bb - cc]])
-
-
-def extract_2D_all_rotated(msh, tag_name, DOFperNode, ensemble_size, name_sol,
-                           axis_nodes_id):
-
-    x, y, z, tri, sol = extract_2D_all(msh, tag_name, DOFperNode,
-                                       ensemble_size, name_sol)
-
-    x_r = np.empty(np.shape(x))
-    y_r = np.empty(np.shape(x))
-    z_r = np.empty(np.shape(x))
-    sol_r = np.empty(np.shape(sol))
-
-    pos_OX_1 = msh.nodes[axis_nodes_id[0]].pos
-    pos_OX_2 = msh.nodes[axis_nodes_id[1]].pos
-
-    vec_OX = np.array([pos_OX_2[0]-pos_OX_1[0], pos_OX_2[1] -
-                       pos_OX_1[1], pos_OX_2[2]-pos_OX_1[2]])
-
-    OX_ref = np.array([1, 0, 0])
-    OY_ref = np.array([0, 1, 0])
-
-    cross_prod_OX, theta_X = compute_cross_and_theta(vec_OX, OX_ref)
-    rot_X = rotation_matrix(cross_prod_OX, theta_X)
-
-    for i in range(0, len(x)):
-        tmp = np.dot(rot_X, [x[i], y[i], z[i]])
-        x_r[i] = tmp[0]
-        y_r[i] = tmp[1]
-        z_r[i] = tmp[2]
-
-        tmp = np.dot(rot_X, [sol[i, 0], sol[i, 1], sol[i, 2]])
-
-        sol_r[i, 0] = tmp[0]
-        sol_r[i, 1] = tmp[1]
-        sol_r[i, 2] = tmp[2]
-
-    sol_r[:, 3] = sol[:, 3]
-
-    if cross_prod_OX[1] != 0:
-        '''
-        vec_OY = np.dot(rot_X, vec_OY)
-        print vec_OY
-        vec_OY[0] = 0
-        print vec_OY
-        cross_prod_OY, theta_Y = compute_cross_and_theta(vec_OY, OY_ref)
-        '''
-        cross_prod_OY = np.array([1, 0, 0])
-        max_i_z = np.argmax(z_r)
-        min_i_z = np.argmin(z_r)
-
-        dz = z_r[max_i_z] - z_r[min_i_z]
-        dy = y_r[max_i_z] - y_r[min_i_z]
-
-        theta_Y = np.arctan((-dz / dy))
-
-        rot_Y = rotation_matrix(cross_prod_OY, theta_Y)
-
-        for i in range(0, len(x)):
-            tmp = np.dot(rot_Y, [x_r[i], y_r[i], z_r[i]])
-            x_r[i] = tmp[0]
-            y_r[i] = tmp[1]
-            z_r[i] = tmp[2]
-
-            tmp = np.dot(rot_Y, [sol_r[i, 0], sol_r[i, 1], sol_r[i, 2]])
-
-            sol_r[i, 0] = tmp[0]
-            sol_r[i, 1] = tmp[1]
-            sol_r[i, 2] = tmp[2]
-
-    return x_r, y_r, z_r, tri, sol_r
-
-
-def compute_Zernike(x, y, z, tri, dz, n_Zernike, center_pos):
-    from numpy import linalg as LA
-
-    n_nodes = len(x)
-    n_tri = np.size(tri, 0)
-
-    Zernike_coeff = np.zeros((n_Zernike, ))
-
-    Zernike_functions = np.zeros((n_nodes, n_Zernike))
-
-    rho = np.empty(np.shape(x))
-    theta = np.empty(np.shape(x))
-
-    for i in range(0, len(x)):
-        rho[i] = LA.norm(np.array([x[i], y[i]]) - center_pos)
-        if x[i] >= center_pos[0] and y[i] >= center_pos[1]:
-            theta[i] = np.arctan(
-                ((y[i] - center_pos[1]) / (x[i] - center_pos[0])))
-        elif y[i] >= center_pos[1] or x[i] < center_pos[0]:
-            theta[i] = np.arctan(
-                ((y[i] - center_pos[1]) /
-                        (x[i] - center_pos[0]))) + np.pi
-        else:
-            theta[i] = np.arctan(
-                ((y[i] - center_pos[1]) /
-                        (x[i] - center_pos[0]))) + 2 * np.pi
-
-    max_rho = max(rho)
-    rho = (rho / max_rho)
-
-    if n_Zernike >= 1:
-        Zernike_functions[:, 0] = 1.
-    if n_Zernike >= 2:
-        v_max = np.amax(2 * rho * np.cos(theta))
-        Zernike_functions[:, 1] = 2 * rho * np.cos(theta) / v_max
-    if n_Zernike >= 3:
-        v_max = np.amax(2 * rho * np.sin(theta))
-        Zernike_functions[:, 2] = 2 * rho * np.sin(theta) / v_max
-    if n_Zernike >= 4:
-        v_max = np.amax(np.sqrt(3) * (2 * np.power(rho, 2) - 1))
-        Zernike_functions[:, 3] = np.sqrt(3) * (2 * np.power(rho, 2) -
-                                                1) / v_max
-    if n_Zernike >= 5:
-        Zernike_functions[:, 4] = np.sqrt(6) * np.power(rho, 2) * np.sin(
-            2 * theta)
-    if n_Zernike >= 6:
-        Zernike_functions[:, 5] = np.sqrt(6) * np.power(rho, 2) * np.cos(
-            2 * theta)
-    if n_Zernike >= 7:
-        Zernike_functions[:, 6] = np.sqrt(8) * (3 * np.power(rho, 3) -
-                                                2 * rho) * np.sin(theta)
-    if n_Zernike >= 8:
-        Zernike_functions[:, 7] = np.sqrt(8) * (3 * np.power(rho, 3) -
-                                                2 * rho) * np.cos(theta)
-    if n_Zernike >= 9:
-        Zernike_functions[:, 8] = np.sqrt(8) * np.power(rho, 3) * np.sin(
-            3 * theta)
-    if n_Zernike >= 10:
-        Zernike_functions[:, 9] = np.sqrt(8) * np.power(rho, 3) * np.cos(
-            3 * theta)
-
-    W = np.zeros((n_nodes, n_nodes))
-
-    for i in range(0, n_tri):
-        cross = np.cross(
-            np.array([
-                x[tri[i, 1]] - x[tri[i, 0]], y[tri[i, 1]] - y[tri[i, 0]],
-                z[tri[i, 1]] - z[tri[i, 0]]
-            ]),
-            np.array([
-                x[tri[i, 2]] - x[tri[i, 0]], y[tri[i, 2]] - y[tri[i, 0]],
-                z[tri[i, 2]] - z[tri[i, 0]]
-            ]))
-        area = (LA.norm(cross) / 6)  # area per node of the triangle
-
-        for j in range(0, 3):
-            W[tri[i, j], tri[i, j]] = W[tri[i, j], tri[i, j]] + area
-
-    TMP_Z = np.dot(np.transpose(Zernike_functions), W)
-    rhs_Z = np.dot(TMP_Z, dz)
-
-    A_Z = np.dot(TMP_Z, Zernike_functions)
-
-    Zernike_coeff = np.linalg.solve(A_Z, rhs_Z)
-
-    return Zernike_coeff, Zernike_functions, theta, rho
-
-
-def compute_RBM_Curvature_Irreg(x, y, z, tri, dz, unit, center_pos):
-    from numpy import linalg as LA
-
-    n_nodes = len(x)
-    n_tri = np.size(tri, 0)
-
-    RBM_Curvature_Irreg_coeff = np.zeros((4, ))
-
-    RBM_Curvature_Irreg_functions = np.zeros((n_nodes, 4))
-
-    if unit == "m":
-        x = x * 1000
-        y = y * 1000
-        z = z * 1000
-        dz = dz * 1000
-        center_pos = center_pos * 1000
-
-    Zernike_coeff, Zernike_functions, theta, rho = compute_Zernike(
-        x, y, z, tri, dz, 4, center_pos)
-    dz_residual = dz - Zernike_coeff[
-        0] * Zernike_functions[:, 0] - Zernike_coeff[
-            1] * Zernike_functions[:, 1] - Zernike_coeff[
-                2] * Zernike_functions[:, 2] - Zernike_coeff[
-                    3] * Zernike_functions[:, 3]
-
-    optical_coefficients = np.zeros((5, 1)).flatten()
-    # piston  [mm]
-    optical_coefficients[0] = Zernike_coeff[0]
-    index = np.argmax(Zernike_functions[:, 1])
-    optical_coefficients[1] = np.arctan(
-        -Zernike_coeff[1] *
-        ((Zernike_functions[index, 1] /
-                 (x[index] - center_pos[0]))))  # rot y   [rad]
-    index = np.argmax(Zernike_functions[:, 2])
-    optical_coefficients[2] = np.arctan(
-        -Zernike_coeff[2] *
-        ((Zernike_functions[index, 2] /
-                 (y[index] - center_pos[1]))))  # rot x   [rad]
-    optical_coefficients[3] = Zernike_coeff[3] * \
-        (np.amax(Zernike_functions[:, 3])-np.amin(Zernike_functions[:, 3]))
-    optical_coefficients[4] = np.amax(dz_residual) - np.amin(dz_residual)
-
-    return optical_coefficients, dz_residual
-
-
-def compute_RBM_Curvature_Irreg_Sequential(x, y, z, tri, dz, unit, center_pos):
-    from numpy import linalg as LA
-
-    n_nodes = len(x)
-    n_tri = np.size(tri, 0)
-
-    RBM_Curvature_Irreg_coeff = np.zeros((4, ))
-
-    RBM_Curvature_Irreg_functions = np.zeros((n_nodes, 4))
-
-    if unit == "m":
-        x = x * 1000
-        y = y * 1000
-        z = z * 1000
-        dz = dz * 1000
-        center_pos = center_pos * 1000
-
-    rho = np.empty(np.shape(x))
-
-    for i in range(0, len(x)):
-        rho[i] = LA.norm(np.array([x[i], y[i]]) - center_pos)
-
-    RBM_Curvature_Irreg_functions[:, 0] = 1.
-    RBM_Curvature_Irreg_functions[:, 1] = y - center_pos[1]
-    RBM_Curvature_Irreg_functions[:, 2] = x - center_pos[0]
-    RBM_Curvature_Irreg_functions[:, 3] = np.power(rho, 2)
-
-    W = np.zeros((n_nodes, n_nodes))
-
-    print("mean dz")
-    print(np.mean(dz))
-
-    for i in range(0, n_tri):
-        cross = np.cross(
-            np.array([
-                x[tri[i, 1]] - x[tri[i, 0]], y[tri[i, 1]] - y[tri[i, 0]],
-                z[tri[i, 1]] - z[tri[i, 0]]
-            ]),
-            np.array([
-                x[tri[i, 2]] - x[tri[i, 0]], y[tri[i, 2]] - y[tri[i, 0]],
-                z[tri[i, 2]] - z[tri[i, 0]]
-            ]))
-        area = (LA.norm(cross) / 6)  # area per node of the triangle
-
-        for j in range(0, 3):
-            W[tri[i, j], tri[i, j]] = W[tri[i, j], tri[i, j]] + area
-
-    for i in range(0, 4):
-        TMP_Z = np.dot(np.transpose(RBM_Curvature_Irreg_functions[:, i]), W)
-        rhs_Z = np.dot(TMP_Z, dz)
-
-        A_Z = np.dot(TMP_Z, RBM_Curvature_Irreg_functions[:, i])
-
-        RBM_Curvature_Irreg_coeff[i] = (rhs_Z / A_Z)
-        dz = dz - RBM_Curvature_Irreg_coeff[i] * \
-            RBM_Curvature_Irreg_functions[:, i]
-
-    optical_coefficients = np.zeros((5, ))
-    optical_coefficients[0] = RBM_Curvature_Irreg_coeff[0]  # piston
-    optical_coefficients[1] = np.arctan(RBM_Curvature_Irreg_coeff[1])
-    optical_coefficients[2] = np.arctan(RBM_Curvature_Irreg_coeff[2])
-    optical_coefficients[3] = RBM_Curvature_Irreg_coeff[3] * \
-        np.amax(RBM_Curvature_Irreg_functions[:, 3])
-    optical_coefficients[4] = np.amax(dz) - np.amin(dz)
-
-    print("optical_coefficients")
-    print(optical_coefficients)
-
-    return RBM_Curvature_Irreg_coeff, RBM_Curvature_Irreg_functions, dz
-
-
-def check_optical_tolerance(optical_tolerance, unit):
-    passed = 1
-    max_angle = 0.00175
-    if unit == "mm":
-        max_fringe = 0.0316
-        max_translation = 2
-    elif unit == "m":
-        max_fringe = 0.0000316
-        max_translation = 0.002
-
-    if np.absolute(optical_tolerance[0]) >= max_translation:
-        print("translation")
-        passed = 0
-
-    if np.absolute(optical_tolerance[1]) >= max_angle:
-        print("rotation x")
-        passed = 0
-
-    if np.absolute(optical_tolerance[2]) >= max_angle:
-        print("rotation y")
-        passed = 0
-
-    if optical_tolerance[3] >= max_fringe:
-        print("curvature")
-        passed = 0
-
-    if optical_tolerance[4] >= max_fringe:
-        print("irregularity")
-        passed = 0
-
-    return passed
-
-
-def check_optical_tolerance_Zernike(Zernike_coeff, Zernike_functions, dz,
-                                    unit):
-
-    passed = 1
-    max_angle = 0.00175
-    if unit == "mm":
-        max_fringe = 0.0316
-        max_translation = 2
-    elif unit == "m":
-        max_fringe = 0.0000316
-        max_translation = 0.002
-
-    if np.absolute(Zernike_coeff[0]) >= max_translation:
-        print("translation")
-        passed = 0
-
-    if np.absolute(Zernike_coeff[1]) >= max_angle:
-        print("rotation x")
-        passed = 0
-
-    if np.absolute(Zernike_coeff[2]) >= max_angle:
-        print("rotation y")
-        passed = 0
-
-    tmp = np.dot(Zernike_coeff[3], Zernike_functions[:, 3])
-
-    if np.absolute(max(tmp) - min(tmp)) >= max_fringe:
-        print("curvature")
-        passed = 0
-
-    tmp = dz - np.dot(Zernike_coeff[0], Zernike_functions[:, 0]) - np.dot(Zernike_coeff[1], Zernike_functions[:, 1]) - \
-        np.dot(Zernike_coeff[2], Zernike_functions[:, 2]) - \
-        np.dot(Zernike_coeff[3], Zernike_functions[:, 3])
-
-    if np.absolute(max(tmp) - min(tmp)) >= max_fringe:
-        print(max(tmp))
-        print(min(tmp))
-        print("irregularity")
-        passed = 0
-
-    return passed
diff --git a/katoptron/viewer.py b/katoptron/viewer.py
deleted file mode 100644
index 13211f6e..00000000
--- a/katoptron/viewer.py
+++ /dev/null
@@ -1,689 +0,0 @@
-# -*- coding: utf-8; -*-
-
-import sys
-import katoptron as m
-import tbox as tb
-import vtk
-from PyQt4 import QtCore, QtGui
-from vtk.qt4.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
-
-
-class MeshViewer(QtGui.QWidget, m.DisplayHook):
-
-    app = QtGui.QApplication(sys.argv)
-
-    """
-    Qt GUI for visu. the output
-    """
-
-    def __init__(self, pbl, slv, msh, elev=-90., azim=0.):
-        # super(MeshViewer, self).__init__() # a eclaircir... marche p�
-        m.DisplayHook.__init__(self)
-        QtGui.QWidget.__init__(self)
-
-        slv.setGUI(self)
-
-        self.ensemble_size = slv.minimum_ensemble_size
-
-        self.msh = msh
-        self.solver = slv
-
-        self.running = 'init'
-        self.vmin = 0.0
-        self.vmax = 0.0
-
-        self.elev = elev
-        self.azim = azim
-
-        print(" ")
-        print("starting MeshViewer init...")
-
-        self.__setupGUI()
-        self.__setupVTK()
-
-        self.app.connect(self.app, QtCore.SIGNAL(
-            "lastWindowClosed()"), self.app, QtCore.SLOT("quit()"))
-        self.show()
-        # [Linux] faire ca le plus tard possible (apres self.show!!)
-        self.vtkwidget.Initialize()
-        print("MeshViewer ready.")
-
-    def closeEvent(self, event):
-        # self.scheme.stopit=True
-        self.running = 'running'  # sort de "while self.running=='pause'"
-        print("GUI killed!")
-        QtGui.QWidget.closeEvent(self, event)
-
-    def start(self):
-        self.app.exec_()
-
-    def __setupGUI(self):
-
-        self.setWindowTitle("MeshViewer")
-        self.resize(800, 600)
-
-        # vtk window
-
-        self.vtkwidget = QVTKRenderWindowInteractor(
-            self)  # "self" sinon, rien ne s'affiche
-
-        self.vtkwidget.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
-                                                       QtGui.QSizePolicy.Expanding))
-        self.vtkwidget.setMinimumSize(QtCore.QSize(300, 300))
-        self.vtkwidget.setSizePolicy(
-            QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
-
-        # self.vtkwidget.Initialize() # plante sous Linux!!
-
-        self.renderer = vtk.vtkRenderer()
-        self.renderer.SetBackground(1.0, 1.0, 1.0)
-        self.vtkwidget.GetRenderWindow().AddRenderer(self.renderer)
-
-        style = vtk.vtkInteractorStyleTrackballCamera()
-        self.vtkwidget.SetInteractorStyle(style)
-
-        hbox = QtGui.QHBoxLayout()
-        self.setLayout(hbox)
-        hbox.addWidget(self.vtkwidget)
-
-        pan = QtGui.QFrame()
-        pan.setMaximumSize(QtCore.QSize(200, 999999))
-        hbox.addWidget(pan)
-        # hbox.setMargin(0)    # sinon vtkwidget degouline en bas
-        # hbox.setSpacing(0)   # sinon vtkwidget clignote sur le c�t�
-
-        vbox = QtGui.QVBoxLayout()
-        pan.setLayout(vbox)
-
-        self.startBut = QtGui.QPushButton(self.tr("Start"))
-        #self.connect(self.startBut, QtCore.SIGNAL("clicked()"), self.disableStart)
-        self.connect(self.startBut, QtCore.SIGNAL("clicked()"), self.startSlot)
-        vbox.addWidget(self.startBut)
-
-        groupBox = QtGui.QGroupBox("Range")
-        gbox = QtGui.QGridLayout()
-        label = QtGui.QLabel("min")
-        gbox.addWidget(label, 0, 0)
-        self.vminlinedt = QtGui.QLineEdit('%f' % self.vmin)
-        self.connect(self.vminlinedt, QtCore.SIGNAL(
-            "editingFinished()"), self.updateTCoords)
-
-        gbox.addWidget(self.vminlinedt, 0, 1)
-        label = QtGui.QLabel("max")
-        gbox.addWidget(label, 1, 0)
-        self.vmaxlinedt = QtGui.QLineEdit('%f' % self.vmax)
-        self.connect(self.vmaxlinedt, QtCore.SIGNAL(
-            "editingFinished()"), self.updateTCoords)
-        gbox.addWidget(self.vmaxlinedt, 1, 1)
-        groupBox.setLayout(gbox)
-        vbox.addWidget(groupBox)
-
-        groupBox = QtGui.QGroupBox("Samples")
-        self.samplesList = QtGui.QListWidget()
-        for i in range(self.ensemble_size):
-            item = QtGui.QListWidgetItem("Sample %i" % i)
-            self.samplesList.addItem(item)
-        gbox = QtGui.QVBoxLayout()
-        groupBox.setLayout(gbox)
-        gbox.addWidget(self.samplesList)
-        self.samplesList.currentItemChanged.connect(self.on_item_changed)
-        self.samplesList.itemClicked.connect(self.Clicked)
-        vbox.addWidget(groupBox)
-
-        groupBox = QtGui.QGroupBox("Infos")
-        self.steplabel = QtGui.QLabel("Active set iteration #")
-        #self.timelabel = QtGui.QLabel("Time step = 0")
-        gbox = QtGui.QVBoxLayout()
-        groupBox.setLayout(gbox)
-        gbox.addWidget(self.steplabel)
-        # gbox.addWidget(self.timelabel)
-        vbox.addWidget(groupBox)
-
-        verbchk = QtGui.QCheckBox("verbose")
-        self.connect(verbchk, QtCore.SIGNAL(
-            "stateChanged(int)"), self.verboseSlot)
-        vbox.addWidget(verbchk)
-
-        vbox.addStretch(1)
-
-    def verboseSlot(self, state):
-        self.scheme.verbose = state
-        if not state:
-            print("<verbose=OFF>")
-
-    def startSlot(self):
-        if self.running == 'init':
-            self.startBut.setText("Pause")  # on demarre et on affiche "pause"
-            self.running = 'running'
-            self.solver.start()
-            # for j in range(0,101):
-            #    self.updatePos2(j)
-            self.startBut.setText("Quit")
-            self.running = 'quit'
-        elif self.running == 'running':  # on stoppe et on affiche 'continue"
-            self.running = 'pause'
-            self.startBut.setText("Continue")
-            while self.running == 'pause':
-                self.app.processEvents(QtCore.QEventLoop.WaitForMoreEvents)
-        elif self.running == 'pause':
-            self.running = 'running'
-            self.startBut.setText("Pause")
-        elif self.running == 'quit':
-            self.app.quit()
-    """
-    def disableStart(self):
-        self.startBut.setDisabled(True)
-    """
-
-    def __setupVTK(self):
-
-        self.__createUgrid()
-
-        # mesh
-        self.mesh = Mesh(self.ugrid)
-        self.renderer.AddActor(self.mesh.actor)
-
-        # grid
-        self.grid = Grid(self.ugrid)
-        self.renderer.AddViewProp(self.grid.actor)
-
-        # scalarbar
-        self.scalarbar = ScalarBar(self.mesh.lut)
-        self.renderer.AddViewProp(self.scalarbar.actor)
-
-        self.resetCamera()
-
-    def resetCamera(self):
-        self.renderer.ResetCamera()
-        cam1 = self.renderer.GetActiveCamera()
-        # 3D
-        if 1:
-            elev = self.elev
-            cam1.Elevation(elev)
-            if elev > 90:
-                cam1.SetViewUp(0, -1, 0)
-            else:
-                cam1.SetViewUp(0, 1, 0)
-            cam1.Azimuth(self.azim)
-        # 2D
-        else:
-            cam1.Elevation(0)
-            cam1.SetViewUp(0, 1, 0)
-            cam1.Azimuth(0)
-        self.renderer.ResetCameraClippingRange()
-
-    def display(self, nt, t, u):
-        """ C++ => python callback
-        """
-        print("[GUI] nt=", nt, "t=", t)
-
-        # update data at points
-        for i in range(self.msh.nodes.size()):
-            self.scalars.SetValue(i, u[i])
-        self.scalars.Modified()
-
-        # update texture coords
-        #vmin, vmax = self.scalars.GetValueRange()
-        # vmin=-0.01
-        # vmax=0.01
-
-        self.updateTCoords()
-
-    def on_item_changed(self, curr, prev):
-        str_list = str(curr.text())
-        for s in str_list.split():
-            if s.isdigit():
-                nt = int(s)
-                self.display_sample(nt, 0)
-
-    def Clicked(self, item):
-        str_list = str(item.text())
-        for s in str_list.split():
-            if s.isdigit():
-                nt = int(s)
-                self.display_sample(nt, 0)
-
-    def display_sample(self, nt, t):
-        if None == self.polydata.GetPointData().GetArray("Values "+str(nt)):
-            print("Please, before selecting solution to display, run the simulation.")
-        else:
-            pos_x = self.polydata.GetPointData().GetArray("Positions x "+str(nt))
-            pos_y = self.polydata.GetPointData().GetArray("Positions y "+str(nt))
-            pos_z = self.polydata.GetPointData().GetArray("Positions z "+str(nt))
-
-            values = self.polydata.GetPointData().GetArray("Values "+str(nt))
-
-            current_min = self.vmin
-            current_max = self.vmax
-            for i in range(self.msh.nodes.size()):
-                self.points.SetPoint(i, pos_x.GetValue(
-                    i), pos_y.GetValue(i), pos_z.GetValue(i))
-                value = values.GetValue(i)
-                self.scalars.SetValue(i, value)
-                if value < current_min:
-                    current_min = value
-                elif value > current_max:
-                    current_max = value
-
-            # mesh
-            self.renderer.RemoveViewProp(self.mesh.actor)
-            self.mesh = Mesh(self.ugrid)
-            self.renderer.AddActor(self.mesh.actor)
-
-            # grid
-            self.renderer.RemoveViewProp(self.grid.actor)
-            self.grid = Grid(self.ugrid)
-            self.renderer.AddViewProp(self.grid.actor)
-
-            self.vmin = current_min
-            self.vmax = current_max
-            current_max = self.scalars.GetRange()
-
-            self.mesh.updateTcoords(self.vmin, self.vmax)
-
-            # scalarbar
-            self.renderer.RemoveViewProp(self.scalarbar.actor)
-            self.scalarbar = ScalarBar(self.mesh.lut)
-            self.renderer.AddViewProp(self.scalarbar.actor)
-
-            self.render()
-
-    def display(self, nt, ast, u_x, u_y, u_z, u_norm):
-        """ C++ => python callback
-        """
-        self.steplabel.setText("Active set iteration # "+str(int(ast)))
-
-        if True:  # None == self.polydata.GetPointData().GetArray("Values "+str(nt)):
-
-            pos_x = vtk.vtkDoubleArray()
-            pos_y = vtk.vtkDoubleArray()
-            pos_z = vtk.vtkDoubleArray()
-
-            values = vtk.vtkDoubleArray()
-
-            pos_x.SetName("Positions x "+str(nt))
-            pos_y.SetName("Positions y "+str(nt))
-            pos_z.SetName("Positions z "+str(nt))
-
-            values.SetName("Values "+str(nt))
-
-            current_min = self.vmin
-            current_max = self.vmax
-            for i in range(self.msh.nodes.size()):
-                p = self.msh.nodes[i].pos
-                self.points.SetPoint(
-                    i, p[0]+u_x[i], p[1]+u_y[i], p[2]+u_z[i])
-
-                pos_x.InsertNextValue(p[0]+u_x[i])
-                pos_y.InsertNextValue(p[1]+u_y[i])
-                pos_z.InsertNextValue(p[2]+u_z[i])
-                values.InsertNextValue(u_norm[i])
-
-                self.polydata.GetPointData().AddArray(pos_x)
-                self.polydata.GetPointData().AddArray(pos_y)
-                self.polydata.GetPointData().AddArray(pos_z)
-
-                self.polydata.GetPointData().AddArray(values)
-
-                value = u_norm[i]
-                self.scalars.SetValue(i, value)
-                if value < current_min:
-                    current_min = value
-                elif value > current_max:
-                    current_max = value
-
-        else:
-            pos_x = self.polydata.GetPointData().GetArray("Positions x "+str(nt))
-            pos_y = self.polydata.GetPointData().GetArray("Positions y "+str(nt))
-            pos_z = self.polydata.GetPointData().GetArray("Positions z "+str(nt))
-
-            values = self.polydata.GetPointData().GetArray("Values "+str(nt))
-
-            current_min = self.vmin
-            current_max = self.vmax
-            for i in range(self.msh.nodes.size()):
-                self.points.SetPoint(i, pos_x.GetValue(
-                    i), pos_y.GetValue(i), pos_z.GetValue(i))
-                value = values.GetValue(i)
-                self.scalars.SetValue(i, value)
-                if value < current_min:
-                    current_min = value
-                elif value > current_max:
-                    current_max = value
-
-        # mesh
-        self.renderer.RemoveViewProp(self.mesh.actor)
-        self.mesh = Mesh(self.ugrid)
-        self.renderer.AddActor(self.mesh.actor)
-
-        # grid
-        self.renderer.RemoveViewProp(self.grid.actor)
-        self.grid = Grid(self.ugrid)
-        self.renderer.AddViewProp(self.grid.actor)
-
-        self.vmin = current_min
-        self.vmax = current_max
-        current_max = self.scalars.GetRange()
-
-        self.mesh.updateTcoords(self.vmin, self.vmax)
-
-        # scalarbar
-        self.renderer.RemoveViewProp(self.scalarbar.actor)
-        self.scalarbar = ScalarBar(self.mesh.lut)
-        self.renderer.AddViewProp(self.scalarbar.actor)
-
-        self.render()
-
-    def updateTCoords(self):
-        try:
-            self.vmin = float(self.vminlinedt.text())
-            self.vmax = float(self.vmaxlinedt.text())
-        except:
-            pass
-
-        self.mesh.updateTcoords(self.vmin, self.vmax)
-        self.render()
-
-    def ragequit(self):
-        print("rage quit!")
-        self.scheme.stopit = True
-        self.app.quit()
-
-        #raise Exception('GUI killed!')
-
-    def render(self):
-        # draw the scene
-        self.vtkwidget.Render()
-        self.app.processEvents()
-
-    def refresh(self):
-        #print "[GUI] refresh"
-        self.app.processEvents()
-
-    def __createUgrid(self):
-        print('creating vtkUnstructuredGrid...')
-        self.ugrid = vtk.vtkUnstructuredGrid()
-        self.points = vtk.vtkPoints()
-        self.ugrid.SetPoints(self.points)
-
-        self.polydata = vtk.vtkPolyData()
-
-        self.scalars = vtk.vtkFloatArray()
-        self.scalars.SetNumberOfComponents(1)
-        self.ugrid.GetPointData().SetScalars(self.scalars)
-
-        # points / data
-        for i in range(self.msh.nodes.size()):
-            p = self.msh.nodes[i].pos
-            self.points.InsertPoint(i, p[0], p[1], p[2])
-            #val = p.x()*p.x()+p.y()*p.y()+p.z()*p.z()
-            val = 0.0
-            self.scalars.InsertNextValue(val)
-
-        for i in range(self.msh.elems.size()):
-            e = self.msh.elems[i]
-            n = e.nodes
-            # hexa
-            if e.type() == tb.EL_HEX8:
-                hexa = vtk.vtkHexahedron()
-                ids = hexa.GetPointIds()
-                for j in range(8):
-                    ids.SetId(j, n[j].no-1)
-                self.ugrid.InsertNextCell(hexa.GetCellType(), ids)
-            # tetra
-            elif e.type() == tb.EL_TETRA4:
-                tetra = vtk.vtkTetra()
-                ids = tetra.GetPointIds()
-                for j in range(4):
-                    ids.SetId(j, n[j].no-1)
-                self.ugrid.InsertNextCell(tetra.GetCellType(), ids)
-        print(self.ugrid.GetNumberOfPoints(), 'points and',
-              self.ugrid.GetNumberOfCells(), 'cells converted')
-
-    def writeXML(self, name='mesh.vtu'):
-        writer = vtk.vtkXMLUnstructuredGridWriter()
-        compressor = vtk.vtkZLibDataCompressor()
-        writer.SetCompressor(compressor)
-        writer.SetDataModeToAscii()
-        # writer.SetInputConnection(self.producer.GetOutputPort())
-        # if vtk.VTK_MAJOR_VERSION <= 5:
-        #    writer.SetInput(self.ugrid)
-        # else:
-        writer.SetInputData(self.ugrid)
-        writer.SetFileName(name)
-        writer.Write()
-
-    def write(self, name='mesh.vtk'):
-        writer = vtk.vtkUnstructuredGridWriter()
-        writer.SetFileName(name)
-        writer.SetFileTypeToASCII()
-        if vtk.VTK_MAJOR_VERSION <= 5:
-            writer.SetInput(self.ugrid)
-        else:
-            writer.SetInputData(self.ugrid)
-        writer.Write()
-
-    def updatePos(self):
-        #print self.points.GetPoint(1)
-        #print self.scalars.GetValue(1)
-
-        current_min = 1000
-        current_max = -1000
-        for i in range(self.msh.nodes.size()):
-            p = self.msh.nodes[i].pos
-            self.points.SetPoint(i, p[0]+p[2], p[1], p[2])
-            value = p[0]
-            self.scalars.SetValue(i, value)
-            if value < current_min:
-                current_min = value
-            elif value > current_max:
-                current_max = value
-        #print self.points.GetPoint(1)
-        #print self.scalars.GetValue(1)
-        #print self.ugrid.GetPoint(1)
-
-        # mesh
-        self.mesh = Mesh(self.ugrid)
-        self.renderer.AddActor(self.mesh.actor)
-
-        # grid
-        self.grid = Grid(self.ugrid)
-        self.renderer.AddViewProp(self.grid.actor)
-
-        self.vmin = current_min
-        self.vmax = current_max
-        current_max = self.scalars.GetRange()
-
-        print(self.vmin)
-        print(self.vmax)
-
-        self.mesh.updateTcoords(self.vmin, self.vmax)
-
-        # scalarbar
-        self.renderer.RemoveViewProp(self.scalarbar.actor)
-        self.scalarbar = ScalarBar(self.mesh.lut)
-        self.renderer.AddViewProp(self.scalarbar.actor)
-
-        self.render()
-
-    def updatePos2(self, j):
-        import numpy as np
-
-        current_min = self.vmin
-        current_max = self.vmax
-        for i in range(self.msh.nodes.size()):
-            p = self.msh.nodes[i].pos
-            value = 100*np.sin(2*np.pi*j/25)*np.sin(0.5*np.pi*p[0]/500)
-            self.points.SetPoint(i, p[0], p[1], p[2]+value)
-            self.scalars.SetValue(i, value)
-            if value < current_min:
-                current_min = value
-            elif value > current_max:
-                current_max = value
-
-        # mesh
-        self.renderer.RemoveViewProp(self.mesh.actor)
-        self.mesh = Mesh(self.ugrid)
-        self.renderer.AddActor(self.mesh.actor)
-
-        # grid
-        self.renderer.RemoveViewProp(self.grid.actor)
-        self.grid = Grid(self.ugrid)
-        self.renderer.AddViewProp(self.grid.actor)
-
-        self.vmin = current_min
-        self.vmax = current_max
-        current_max = self.scalars.GetRange()
-
-        self.mesh.updateTcoords(self.vmin, self.vmax)
-
-        # scalarbar
-        self.renderer.RemoveViewProp(self.scalarbar.actor)
-        self.scalarbar = ScalarBar(self.mesh.lut)
-        self.renderer.AddViewProp(self.scalarbar.actor)
-
-        self.render()
-
-
-class Mesh:
-    def __init__(self, ugrid):
-
-        self.ugrid = ugrid
-
-        # compatibility vtk 5/6 => use a trivial producer
-        #self.producer = vtk.vtkTrivialProducer()
-        # self.producer.SetOutput(self.ugrid) # le double producer (dans Mesh/Grid) ne marche pas sous Qt 4 => faire un objet dataset
-
-        self.__createTexture()
-        self.__createTcoords()
-        vmin, vmax = self.ugrid.GetPointData().GetScalars().GetValueRange()
-        self.updateTcoords(vmin, vmax)
-
-        self.mapper = vtk.vtkDataSetMapper()
-        # self.mapper.SetInputConnection(self.producer.GetOutputPort())
-        if vtk.VTK_MAJOR_VERSION <= 5:
-            self.mapper.SetInput(ugrid)
-        else:
-            self.mapper.SetInputData(ugrid)
-        if vtk.VTK_MAJOR_VERSION <= 7:
-            self.mapper.ImmediateModeRenderingOff()
-        self.mapper.SetResolveCoincidentTopologyToPolygonOffset()
-        self.mapper.ScalarVisibilityOff()
-
-        self.actor = vtk.vtkActor()
-        self.actor.SetMapper(self.mapper)
-        self.actor.SetTexture(self.texture)
-
-    def __createTcoords(self):
-        self.tcoords = vtk.vtkFloatArray()
-        self.tcoords.SetNumberOfComponents(2)
-        self.tcoords.Resize(
-            self.ugrid.GetPointData().GetScalars().GetNumberOfTuples())
-        self.ugrid.GetPointData().SetTCoords(self.tcoords)
-
-    def updateTcoords(self, vmin, vmax):
-        #print 'vmin=',vmin,' vmax=',vmax
-        if vmin == vmax:
-            dist = 1.0
-        else:
-            dist = vmax-vmin
-        thr = 1. / 256.
-        scalars = self.ugrid.GetPointData().GetScalars()
-        for i in range(scalars.GetNumberOfTuples()):
-            val = scalars.GetTuple1(i)
-            tc = (val-vmin) / dist
-            if(tc < thr):
-                tc = thr
-            if(tc > 1.0-thr):
-                tc = 1.0-thr
-            self.tcoords.InsertTuple2(i, tc, tc)
-
-        self.lut.SetTableRange(vmin, vmax)  # utile pour la scalarbar seulement
-        self.lut.Build()
-
-    def __createTexture(self):
-        # lookup table
-        # (utilisée 1x au demarrage pour la texture)
-        # (puis pour la scalarbar)
-        self.lut = vtk.vtkLookupTable()
-        self.lut.SetNumberOfColors(16)
-        self.lut.SetHueRange(0.667, 0.)
-        # valeurs bidons -> pas d'infl sur la texture
-        self.lut.SetTableRange(0.0, 1.0)
-        self.lut.Build()
-
-        self.texture = vtk.vtkTexture()
-        dim = self.lut.GetNumberOfTableValues()
-        img = vtk.vtkImageData()
-        img.SetDimensions(dim, dim, 1)
-
-        if vtk.VTK_MAJOR_VERSION <= 5:
-            img.SetScalarTypeToUnsignedChar()
-            img.SetNumberOfScalarComponents(3)
-            img.AllocateScalars()
-        else:
-            img.AllocateScalars(vtk.VTK_UNSIGNED_CHAR, 3)
-
-        for i in range(dim):
-            ci = self.lut.GetTableValue(i)
-            for k in range(3):
-                img.SetScalarComponentFromDouble(i, i, 0, k, ci[k]*255)
-        if vtk.VTK_MAJOR_VERSION <= 5:
-            self.texture.SetInput(img)
-        else:
-            self.texture.SetInputData(img)
-
-        if 0:  # --display texture using vtkImageViewer2 (DEBUG)
-            imageViewer = vtk.vtkImageViewer2()
-            if vtk.VTK_MAJOR_VERSION <= 5:
-                imageViewer.SetInput(img)
-            else:
-                imageViewer.SetInputData(img)
-            renderWindowInteractor = vtk.vtkRenderWindowInteractor()
-            imageViewer.SetupInteractor(renderWindowInteractor)
-            imageViewer.Render()
-            imageViewer.GetRenderer().ResetCamera()
-            imageViewer.Render()
-            renderWindowInteractor.Start()
-
-
-class ScalarBar:
-    def __init__(self, lut):
-        tprop = vtk.vtkTextProperty()
-        tprop.SetColor(0, 0, 0)
-        tprop.SetFontFamilyToTimes()
-
-        self.actor = vtk.vtkScalarBarActor()
-        self.actor.SetLookupTable(lut)
-        self.actor.GetPositionCoordinate().SetCoordinateSystemToNormalizedViewport()
-        self.actor.GetPositionCoordinate().SetValue(0.1, 0.05)
-        self.actor.SetOrientationToHorizontal()
-        self.actor.SetWidth(0.8)
-        self.actor.SetHeight(0.1)
-        self.actor.SetLabelTextProperty(tprop)
-
-
-class Grid:
-    def __init__(self, ugrid):
-        # compatibility vtk 5/6 => use a trivial producer
-        #self.producer = vtk.vtkTrivialProducer()
-        # self.producer.SetOutput(ugrid)   # le double producer (dans Mesh/Grid) ne marche pas sous Qt 4 => faire un objet dataset
-
-        self.mapper = vtk.vtkDataSetMapper()
-        if vtk.VTK_MAJOR_VERSION <= 7:
-            self.mapper.ImmediateModeRenderingOff()
-        self.mapper.SetResolveCoincidentTopologyToPolygonOffset()
-        self.mapper.ScalarVisibilityOff()
-        # self.mapper.SetInputConnection(self.producer.GetOutputPort())
-        if vtk.VTK_MAJOR_VERSION <= 5:
-            self.mapper.SetInput(ugrid)
-        else:
-            self.mapper.SetInputData(ugrid)
-        self.actor = vtk.vtkActor()
-
-        self.actor.GetProperty().SetRepresentationToWireframe()
-        self.actor.GetProperty().SetColor(0., 0., 0.)
-        self.actor.GetProperty().SetAmbient(1.0)
-        self.actor.GetProperty().SetDiffuse(0.0)
-        self.actor.GetProperty().SetSpecular(0.0)
-        self.actor.SetMapper(self.mapper)
diff --git a/run.py b/run.py
deleted file mode 100755
index e2ca260b..00000000
--- a/run.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf8 -*-
-# test encoding: à-é-è-ô-ï-€
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Calls fwk.wutils.run to execute a script as if waves was installed
-
-def main():
-    import os.path, sys
-    # adds fwk/tbox to the python path
-    thisdir = os.path.split(os.path.abspath(__file__))[0]
-    fwkdir = os.path.abspath(os.path.join(thisdir, 'ext', 'amfe'))
-    if not os.path.isdir(fwkdir):
-        raise Exception('waves/ext/amfe not found!\n')
-    sys.path.append(fwkdir)
-    # adds "." to the pythonpath
-    sys.path.append(thisdir)
-
-    import fwk.wutils as wu
-    wu.run()
-
-if __name__ == "__main__":
-    main()
diff --git a/scripts/devenv-mingw.bat b/scripts/devenv-mingw.bat
deleted file mode 100644
index cb5b9e6e..00000000
--- a/scripts/devenv-mingw.bat
+++ /dev/null
@@ -1,29 +0,0 @@
-@echo off
-
-echo setting MinGW environment
-
-set INCLUDE=c:\local\include
-set INCLUDE=%INCLUDE%;C:\local\OpenBLAS-v0.2.14-Win32\include
-set INCLUDE=%INCLUDE%;C:\local\zlib-1.2.8\include
-set INCLUDE=%INCLUDE%;C:\local\MUMPS\include
-
-::set LIB=c:\local\lib
-
-
-set PATH=c:\MinGW\bin
-set PATH=%PATH%;C:\MinGW\msys\1.0\bin
-set PATH=%PATH%;C:\local\tbb43_20150424oss\build\windows_ia32_gcc_mingw4.8.1_debug
-set PATH=%PATH%;C:\local\tbb43_20150424oss\build\windows_ia32_gcc_mingw4.8.1_release
-set PATH=%PATH%;C:\local\gmsh-2.9.3-Windows
-set PATH=%PATH%;C:\local\swigwin-2.0.12
-set PATH=%PATH%;C:\local\OpenBLAS-v0.2.14-Win32\bin
-set PATH=%PATH%;C:\local\qt-4.8.7\bin
-set PATH=%PATH%;C:\Python27
-set PATH=%PATH%;C:\local\vtk-5.10.1\bin
-set PATH=%PATH%;C:\local\zlib-1.2.8\bin
-set PATH=%PATH%;c:\local\bin
-set PATH=%PATH%;c:\local\MUMPS\bin
-set PATH=%PATH%;C:\Program Files\CMake\bin
-set PATH=%PATH%;C:\Program Files\TortoiseSVN\bin
-
-%comspec%
diff --git a/scripts/devenv-vs2019.bat b/scripts/devenv-vs2019.bat
deleted file mode 100644
index c4088178..00000000
--- a/scripts/devenv-vs2019.bat
+++ /dev/null
@@ -1,10 +0,0 @@
-@echo off
-:: command line for MSVC build (Visual Studio 2019)
-
-set PATH=%PATH%;%MYLOCAL%\swig
-set INCLUDE=%MYLOCAL%\include;%MYLOCAL%\MUMPS\include;%MYLOCAL%\eigen
-set LIB=%MYLOCAL%\MUMPS\lib
-
-call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\mkl\bin\mklvars.bat" intel64 vs2019
-call "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\bin\tbbvars.bat" intel64 vs2019
-%comspec% /K ""C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" amd64"
diff --git a/tlnos/CMakeLists.txt b/tlnos/CMakeLists.txt
deleted file mode 100644
index 0ba56aca..00000000
--- a/tlnos/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-ADD_SUBDIRECTORY( src )
-ADD_SUBDIRECTORY( _src )
-
-MACRO_AddTest(${CMAKE_CURRENT_SOURCE_DIR}/tests)
-
-
diff --git a/tlnos/__init__.py b/tlnos/__init__.py
deleted file mode 100644
index 099551fb..00000000
--- a/tlnos/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# -*- coding: utf-8 -*-
-# tlnos MODULE initialization file
-
-import fwk
-import tbox
-from tlnosw import *
diff --git a/tlnos/_src/CMakeLists.txt b/tlnos/_src/CMakeLists.txt
deleted file mode 100644
index 32cc0790..00000000
--- a/tlnos/_src/CMakeLists.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-# CMake input file of the SWIG wrapper around "tlnosw.so"
-
-INCLUDE(${SWIG_USE_FILE})
-
-INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
-FILE(GLOB ISRCS *.i)
-
-SET(CMAKE_SWIG_FLAGS "")
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
-
-SET(SWINCFLAGS 
--I${PROJECT_SOURCE_DIR}/tlnos/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
-)
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
-
-if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
-    SWIG_ADD_MODULE(tlnosw python ${ISRCS} ${SRCS})
-else()
-    SWIG_ADD_LIBRARY(tlnosw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
-endif()
-MACRO_DebugPostfix(_tlnosw)
-
-# -- Search for Trilinos
-FIND_PACKAGE(Trilinos REQUIRED)
-
-INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/tlnos/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src 
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
-                     ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src 
-                     ${Trilinos_INCLUDE_DIRS} 
-                     ${Trilinos_TPL_INCLUDE_DIRS}
-                     ${MPI_INCLUDE_PATH})
-
-SWIG_LINK_LIBRARIES(tlnosw 
-                    tlnos tbox fwk ${Trilinos_LIBRARIES} ${Trilinos_TPL_LIBRARIES} ${PYTHON_LIBRARIES}
-)
-
-INSTALL(FILES ${CMAKE_SWIG_OUTDIR}/tlnosw.py DESTINATION ${CMAKE_INSTALL_PREFIX})
-INSTALL(TARGETS _tlnosw DESTINATION ${CMAKE_INSTALL_PREFIX})
diff --git a/tlnos/_src/tlnosw.i b/tlnos/_src/tlnosw.i
deleted file mode 100644
index abba5b89..00000000
--- a/tlnos/_src/tlnosw.i
+++ /dev/null
@@ -1,53 +0,0 @@
-// SWIG input file of the 'tlnos' module
-
-%feature("autodoc","1");
-
-%module(docstring=
-"'tlnosw' module: tests of Trilinos library
-(c) ULg - A&M",
-directors="1",
-threads="1"
-) tlnosw
-%{
-
-#include <string>
-#include <sstream>
-#include <typeinfo>
-#include "tlnos.h"
-
-#include "wExample1.h"
-#include "wExample2.h"
-//#include "wExample3.h"
-#include "wExample4.h"
-#include "wExample5.h"
-#include "wExample6.h"
-//#include "wExample7.h"
-#include "wExample8.h"
-#include "wExample9.h"
-#include "wExample10.h"
-
-#include "fwkw.h"
-#include "tboxw.h"
-
-%}
-
-%include "fwkw.swg"
-
-// ----------- MODULES UTILISES ------------
-%import "fwkw.i"
-%import "tboxw.i"
-
-// ----------- TLNOS CLASSES ----------------
-%include "tlnos.h"
-
-
-%include "wExample1.h"
-%include "wExample2.h"
-//%include "wExample3.h"
-%include "wExample4.h"
-%include "wExample5.h"
-%include "wExample6.h"
-//%include "wExample7.h"
-%include "wExample8.h"
-%include "wExample9.h"
-%include "wExample10.h"
diff --git a/tlnos/broken/example3.py b/tlnos/broken/example3.py
deleted file mode 100755
index d887609b..00000000
--- a/tlnos/broken/example3.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example3()   
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/broken/example5.py b/tlnos/broken/example5.py
deleted file mode 100755
index 69d6d7cb..00000000
--- a/tlnos/broken/example5.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example5()   # [RB] missing file "TwoSquares.grid"
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/broken/example6.py b/tlnos/broken/example6.py
deleted file mode 100755
index 8816b0ce..00000000
--- a/tlnos/broken/example6.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example6()     # [RB] missing file "TwoSquares.grid" 
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/broken/example7.py b/tlnos/broken/example7.py
deleted file mode 100755
index c011606a..00000000
--- a/tlnos/broken/example7.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example7()   
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/broken/example8.py b/tlnos/broken/example8.py
deleted file mode 100755
index f1f175e0..00000000
--- a/tlnos/broken/example8.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example8()    # [RB] missing file "TwoSquaresDirichlet.grid" 
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/broken/example9.py b/tlnos/broken/example9.py
deleted file mode 100755
index dbb9b08e..00000000
--- a/tlnos/broken/example9.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example9()     # [RB] missing file "TwoSquaresDirichlet.grid" 
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/src/CMakeLists.txt b/tlnos/src/CMakeLists.txt
deleted file mode 100644
index ca02962e..00000000
--- a/tlnos/src/CMakeLists.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-# CMake input file of tlnos.so
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.hpp)
-ADD_LIBRARY(tlnos SHARED ${SRCS})
-MACRO_DebugPostfix(tlnos)
-
-# -- Search for Trilinos
-FIND_PACKAGE(Trilinos REQUIRED)
-
-set (_VERB 1)  # set to 1 for debugging
-IF(_VERB)
-    MESSAGE("\nFound Trilinos!  Here are the details: ")
-    MESSAGE("   Trilinos_DIR = ${Trilinos_DIR}")
-    MESSAGE("   Trilinos_VERSION = ${Trilinos_VERSION}")
-    MESSAGE("   Trilinos_PACKAGE_LIST = ${Trilinos_PACKAGE_LIST}")
-    MESSAGE("   Trilinos_LIBRARIES = ${Trilinos_LIBRARIES}")
-    MESSAGE("   Trilinos_INCLUDE_DIRS = ${Trilinos_INCLUDE_DIRS}")
-    MESSAGE("   Trilinos_LIBRARY_DIRS = ${Trilinos_LIBRARY_DIRS}")
-    MESSAGE("   Trilinos_TPL_LIST = ${Trilinos_TPL_LIST}")
-    MESSAGE("   Trilinos_TPL_INCLUDE_DIRS = ${Trilinos_TPL_INCLUDE_DIRS}")
-    MESSAGE("   Trilinos_TPL_LIBRARIES = ${Trilinos_TPL_LIBRARIES}")
-    MESSAGE("   Trilinos_TPL_LIBRARY_DIRS = ${Trilinos_TPL_LIBRARY_DIRS}")
-    MESSAGE("   Trilinos_BUILD_SHARED_LIBS = ${Trilinos_BUILD_SHARED_LIBS}")
-    MESSAGE("End of Trilinos details\n")
-ENDIF()
-
-# MPI check 
-LIST(FIND Trilinos_TPL_LIST MPI MPI_List_ID)
-IF (MPI_List_ID GREATER -1)
-  MESSAGE("-- Checking if MPI is enabled in Trilinos: MPI ENABLED")
-  SET(MYAPP_MPI TRUE)
-  ADD_DEFINITIONS(-DMYAPP_MPI)
-ELSE()
-  MESSAGE("-- Checking if MPI is enabled in Trilinos: MPI NOT ENABLED")
-  SET(MYAPP_MPI FALSE)
-ENDIF()
-
-# Set optional dependency in MyApp on Epetra package: 
-#   this toggles code within  #ifdef MYAPP_EPETRA 
-LIST(FIND Trilinos_PACKAGE_LIST Epetra Epetra_List_ID)
-IF (Epetra_List_ID GREATER -1)
-  ADD_DEFINITIONS(-DMYAPP_EPETRA)
-  MESSAGE("-- Looking for Epetra: -- found, compiling with -DMYAPP_EPETRA")
-  SET(MYAPP_EPETRA TRUE)
-ELSE()
-  MESSAGE("-- Looking for Epetra: -- not found.")
-  SET(MYAPP_EPETRA FALSE)
-ENDIF()
-
-# --------------------------------------------------------------
-# Finds MPI (including MSMPI)
-# --------------------------------------------------------------
-if(WIN32)  
-    FIND_PATH(MPI_INCLUDE_PATH NAMES  mpi.h HINTS "$ENV{MSMPI_INC}")
-    if("${CMAKE_SIZEOF_VOID_P}" EQUAL 8)
-        set(MS_MPI_ARCH_DIR x64)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB64}")
-    else()
-        set(MS_MPI_ARCH_DIR x86)
-        find_library(MPI_LIBRARIES msmpi PATHS "$ENV{MSMPI_LIB32}")
-    endif()
-else()
-    find_package(MPI REQUIRED)
-    # intel mpi (mpi.h doit etre inclus avant stdio.h)
-    # ou definir ces 2 macros
-    ADD_DEFINITIONS(-DMPICH_IGNORE_CXX_SEEK -DMPICH_SKIP_MPICXX)
-endif()
-# --------------------------------------------------------------
-
-INCLUDE_DIRECTORIES (  ${PROJECT_SOURCE_DIR}/tbox/src  
-                       ${PROJECT_SOURCE_DIR}/fwk/src
-                       ${Trilinos_INCLUDE_DIRS} 
-                       ${Trilinos_TPL_INCLUDE_DIRS}
-                       ${MPI_INCLUDE_PATH})
-
-LINK_DIRECTORIES (${Trilinos_LIBRARY_DIRS} ${Trilinos_TPL_LIBRARY_DIRS})
-        
-TARGET_LINK_LIBRARIES(tlnos tbox fwk ${Trilinos_LIBRARIES} ${Trilinos_TPL_LIBRARIES} ${MPI_LIBRARIES})
-
-INSTALL(TARGETS tlnos DESTINATION ${CMAKE_INSTALL_PREFIX})
diff --git a/tlnos/src/Example_BCStrategy_Dirichlet_Constant.hpp b/tlnos/src/Example_BCStrategy_Dirichlet_Constant.hpp
deleted file mode 100644
index dded2612..00000000
--- a/tlnos/src/Example_BCStrategy_Dirichlet_Constant.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef __Example_BC_Dirichlet_Constant_hpp__
-#define __Example_BC_Dirichlet_Constant_hpp__
-
-#include <vector>
-#include <string>
-
-#include "Teuchos_RCP.hpp"
-#include "Panzer_BCStrategy_Dirichlet_DefaultImpl.hpp"
-#include "Panzer_Traits.hpp"
-#include "Panzer_PureBasis.hpp"
-#include "Phalanx_FieldManager.hpp"
-
-namespace Example
-{
-
-template <typename EvalT>
-class BCStrategy_Dirichlet_Constant : public panzer::BCStrategy_Dirichlet_DefaultImpl<EvalT>
-{
-public:
-    BCStrategy_Dirichlet_Constant(const panzer::BC &bc, const Teuchos::RCP<panzer::GlobalData> &global_data);
-
-    void setup(const panzer::PhysicsBlock &side_pb,
-               const Teuchos::ParameterList &user_data);
-
-    void buildAndRegisterEvaluators(PHX::FieldManager<panzer::Traits> &fm,
-                                    const panzer::PhysicsBlock &pb,
-                                    const panzer::ClosureModelFactory_TemplateManager<panzer::Traits> &factory,
-                                    const Teuchos::ParameterList &models,
-                                    const Teuchos::ParameterList &user_data) const;
-
-    std::string residual_name;
-    Teuchos::RCP<panzer::PureBasis> basis;
-};
-
-} // namespace Example
-
-#include "Example_BCStrategy_Dirichlet_Constant_impl.hpp"
-
-#endif
diff --git a/tlnos/src/Example_BCStrategy_Dirichlet_Constant_impl.hpp b/tlnos/src/Example_BCStrategy_Dirichlet_Constant_impl.hpp
deleted file mode 100644
index 7a8207e3..00000000
--- a/tlnos/src/Example_BCStrategy_Dirichlet_Constant_impl.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#include "Teuchos_ParameterList.hpp"
-#include "Teuchos_RCP.hpp"
-#include "Teuchos_Assert.hpp"
-#include "Phalanx_DataLayout_MDALayout.hpp"
-#include "Phalanx_FieldManager.hpp"
-#include "Panzer_PhysicsBlock.hpp"
-
-#include "Panzer_PureBasis.hpp"
-
-// Evaluators
-#include "Panzer_Constant.hpp"
-
-#include "Phalanx_MDField.hpp"
-#include "Phalanx_DataLayout.hpp"
-#include "Phalanx_DataLayout_MDALayout.hpp"
-
-// ***********************************************************************
-template <typename EvalT>
-Example::BCStrategy_Dirichlet_Constant<EvalT>::
-    BCStrategy_Dirichlet_Constant(const panzer::BC &bc, const Teuchos::RCP<panzer::GlobalData> &global_data) : panzer::BCStrategy_Dirichlet_DefaultImpl<EvalT>(bc, global_data)
-{
-    TEUCHOS_ASSERT(this->m_bc.strategy() == "Constant");
-}
-
-// ***********************************************************************
-template <typename EvalT>
-void Example::BCStrategy_Dirichlet_Constant<EvalT>::
-    setup(const panzer::PhysicsBlock &side_pb,
-          const Teuchos::ParameterList &user_data)
-{
-    using std::pair;
-    using std::string;
-    using std::vector;
-    using Teuchos::RCP;
-
-    // need the dof value to form the residual
-    this->required_dof_names.push_back(this->m_bc.equationSetName());
-
-    // unique residual name
-    this->residual_name = "Residual_" + this->m_bc.identifier();
-
-    // map residual to dof
-    this->residual_to_dof_names_map[residual_name] = this->m_bc.equationSetName();
-
-    // map residual to target field
-    this->residual_to_target_field_map[residual_name] = "Constant_" + this->m_bc.equationSetName();
-
-    // find the basis for this dof
-    const vector<pair<string, RCP<panzer::PureBasis>>> &dofs = side_pb.getProvidedDOFs();
-
-    for (vector<pair<string, RCP<panzer::PureBasis>>>::const_iterator dof_it =
-             dofs.begin();
-         dof_it != dofs.end(); ++dof_it)
-    {
-        if (dof_it->first == this->m_bc.equationSetName())
-            this->basis = dof_it->second;
-    }
-
-    TEUCHOS_TEST_FOR_EXCEPTION(Teuchos::is_null(this->basis), std::runtime_error,
-                               "Error the name \"" << this->m_bc.equationSetName()
-                                                   << "\" is not a valid DOF for the boundary condition:\n"
-                                                   << this->m_bc << "\n");
-}
-
-// ***********************************************************************
-template <typename EvalT>
-void Example::BCStrategy_Dirichlet_Constant<EvalT>::
-    buildAndRegisterEvaluators(PHX::FieldManager<panzer::Traits> &fm,
-                               const panzer::PhysicsBlock &pb,
-                               const panzer::ClosureModelFactory_TemplateManager<panzer::Traits> &factory,
-                               const Teuchos::ParameterList &models,
-                               const Teuchos::ParameterList &user_data) const
-{
-    using Teuchos::ParameterList;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    // provide a constant target value to map into residual
-    {
-        ParameterList p("BC Constant Dirichlet");
-        p.set("Name", "Constant_" + this->m_bc.equationSetName());
-        p.set("Data Layout", basis->functional);
-        p.set("Value", this->m_bc.params()->template get<double>("Value"));
-
-        RCP<PHX::Evaluator<panzer::Traits>> op =
-            rcp(new panzer::Constant<EvalT, panzer::Traits>(p));
-
-        this->template registerEvaluator<EvalT>(fm, op);
-    }
-}
diff --git a/tlnos/src/Example_BCStrategy_Factory.hpp b/tlnos/src/Example_BCStrategy_Factory.hpp
deleted file mode 100644
index 3cf912be..00000000
--- a/tlnos/src/Example_BCStrategy_Factory.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef __Example_BCStrategyFactory_hpp__
-#define __Example_BCStrategyFactory_hpp__
-
-#include "Teuchos_RCP.hpp"
-#include "Panzer_Traits.hpp"
-#include "Panzer_BCStrategy_TemplateManager.hpp"
-#include "Panzer_BCStrategy_Factory.hpp"
-#include "Panzer_BCStrategy_Factory_Defines.hpp"
-
-// Add my bcstrategies here
-#include "Example_BCStrategy_Dirichlet_Constant.hpp"
-
-namespace Example
-{
-
-PANZER_DECLARE_BCSTRATEGY_TEMPLATE_BUILDER("Constant",
-                                           BCStrategy_Dirichlet_Constant,
-                                           BCStrategy_Dirichlet_Constant)
-
-struct BCStrategyFactory : public panzer::BCStrategyFactory
-{
-
-    Teuchos::RCP<panzer::BCStrategy_TemplateManager<panzer::Traits>>
-    buildBCStrategy(const panzer::BC &bc, const Teuchos::RCP<panzer::GlobalData> &global_data) const
-    {
-
-        Teuchos::RCP<panzer::BCStrategy_TemplateManager<panzer::Traits>> bcs_tm =
-            Teuchos::rcp(new panzer::BCStrategy_TemplateManager<panzer::Traits>);
-
-        bool found = false;
-
-        PANZER_BUILD_BCSTRATEGY_OBJECTS("Constant",
-                                        Example::BCStrategy_Dirichlet_Constant,
-                                        BCStrategy_Dirichlet_Constant)
-
-        TEUCHOS_TEST_FOR_EXCEPTION(!found, std::logic_error,
-                                   "Error - the BC Strategy called \"" << bc.strategy() << "\" is not a valid identifier in the BCStrategyFactory.  Either add a "
-                                                                                           "valid implementation to your factory or fix your input file.  The "
-                                                                                           "relevant boundary condition is:\n\n"
-                                                                       << bc << std::endl);
-
-        return bcs_tm;
-    }
-};
-
-} // namespace Example
-
-#endif
diff --git a/tlnos/src/Example_ClosureModel_Factory.hpp b/tlnos/src/Example_ClosureModel_Factory.hpp
deleted file mode 100644
index 9a8d7e51..00000000
--- a/tlnos/src/Example_ClosureModel_Factory.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef __Example_ClosureModelFactory_hpp__
-#define __Example_ClosureModelFactory_hpp__
-
-#include "Panzer_ClosureModel_Factory.hpp"
-
-namespace panzer
-{
-class InputEquationSet;
-}
-
-namespace Example
-{
-
-template <typename EvalT>
-class ModelFactory : public panzer::ClosureModelFactory<EvalT>
-{
-
-public:
-    Teuchos::RCP<std::vector<Teuchos::RCP<PHX::Evaluator<panzer::Traits>>>>
-    buildClosureModels(const std::string &model_id,
-                       const Teuchos::ParameterList &models,
-                       const panzer::FieldLayoutLibrary &fl,
-                       const Teuchos::RCP<panzer::IntegrationRule> &ir,
-                       const Teuchos::ParameterList &default_params,
-                       const Teuchos::ParameterList &user_data,
-                       const Teuchos::RCP<panzer::GlobalData> &global_data,
-                       PHX::FieldManager<panzer::Traits> &fm) const;
-};
-
-} // namespace Example
-
-#include "Example_ClosureModel_Factory_impl.hpp"
-
-#endif
diff --git a/tlnos/src/Example_ClosureModel_Factory_TemplateBuilder.hpp b/tlnos/src/Example_ClosureModel_Factory_TemplateBuilder.hpp
deleted file mode 100644
index 8b039db5..00000000
--- a/tlnos/src/Example_ClosureModel_Factory_TemplateBuilder.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef __Example_ClosureModel_Factory_TemplateBuilder_hpp__
-#define __Example_ClosureModel_Factory_TemplateBuilder_hpp__
-
-#include <string>
-#include "Sacado_mpl_apply.hpp"
-#include "Teuchos_RCP.hpp"
-#include "Example_ClosureModel_Factory.hpp"
-
-namespace Example
-{
-
-class ClosureModelFactory_TemplateBuilder
-{
-public:
-    template <typename EvalT>
-    Teuchos::RCP<panzer::ClosureModelFactoryBase> build() const
-    {
-        return Teuchos::rcp(static_cast<panzer::ClosureModelFactoryBase *>(new Example::ModelFactory<EvalT>));
-    }
-};
-
-} // namespace Example
-
-#endif
diff --git a/tlnos/src/Example_ClosureModel_Factory_impl.hpp b/tlnos/src/Example_ClosureModel_Factory_impl.hpp
deleted file mode 100644
index 8965ef16..00000000
--- a/tlnos/src/Example_ClosureModel_Factory_impl.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef __Example_ClosureModelFactoryT_hpp__
-#define __Example_ClosureModelFactoryT_hpp__
-
-#include <iostream>
-#include <sstream>
-#include <typeinfo>
-#include "Panzer_IntegrationRule.hpp"
-#include "Panzer_BasisIRLayout.hpp"
-#include "Panzer_Integrator_Scalar.hpp"
-#include "Phalanx_FieldTag_Tag.hpp"
-#include "Teuchos_ParameterEntry.hpp"
-#include "Teuchos_TypeNameTraits.hpp"
-
-// ********************************************************************
-// ********************************************************************
-template <typename EvalT>
-Teuchos::RCP<std::vector<Teuchos::RCP<PHX::Evaluator<panzer::Traits>>>>
-Example::ModelFactory<EvalT>::
-    buildClosureModels(const std::string &model_id,
-                       const Teuchos::ParameterList &models,
-                       const panzer::FieldLayoutLibrary &fl,
-                       const Teuchos::RCP<panzer::IntegrationRule> &ir,
-                       const Teuchos::ParameterList &default_params,
-                       const Teuchos::ParameterList &user_data,
-                       const Teuchos::RCP<panzer::GlobalData> &global_data,
-                       PHX::FieldManager<panzer::Traits> &fm) const
-{
-    using PHX::Evaluator;
-    using std::string;
-    using std::vector;
-    using Teuchos::ParameterList;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    RCP<vector<RCP<Evaluator<panzer::Traits>>>> evaluators =
-        rcp(new vector<RCP<Evaluator<panzer::Traits>>>);
-
-    if (!models.isSublist(model_id))
-    {
-        models.print(std::cout);
-        std::stringstream msg;
-        msg << "Falied to find requested model, \"" << model_id
-            << "\", for equation set:\n"
-            << std::endl;
-        TEUCHOS_TEST_FOR_EXCEPTION(!models.isSublist(model_id), std::logic_error, msg.str());
-    }
-
-    std::vector<Teuchos::RCP<const panzer::PureBasis>> bases;
-    fl.uniqueBases(bases);
-
-    const ParameterList &my_models = models.sublist(model_id);
-
-    for (ParameterList::ConstIterator model_it = my_models.begin();
-         model_it != my_models.end(); ++model_it)
-    {
-
-        bool found = false;
-
-        const std::string key = model_it->first;
-        ParameterList input;
-        const Teuchos::ParameterEntry &entry = model_it->second;
-        const ParameterList &plist = Teuchos::getValue<Teuchos::ParameterList>(entry);
-
-        if (plist.isType<double>("Value"))
-        {
-            { // at IP
-                input.set("Name", key);
-                input.set("Value", plist.get<double>("Value"));
-                input.set("Data Layout", ir->dl_scalar);
-                RCP<Evaluator<panzer::Traits>> e =
-                    rcp(new panzer::Constant<EvalT, panzer::Traits>(input));
-                evaluators->push_back(e);
-            }
-
-            for (std::vector<Teuchos::RCP<const panzer::PureBasis>>::const_iterator basis_itr = bases.begin();
-                 basis_itr != bases.end(); ++basis_itr)
-            { // at BASIS
-                input.set("Name", key);
-                input.set("Value", plist.get<double>("Value"));
-                Teuchos::RCP<const panzer::BasisIRLayout> basis = basisIRLayout(*basis_itr, *ir);
-                input.set("Data Layout", basis->functional);
-                RCP<Evaluator<panzer::Traits>> e =
-                    rcp(new panzer::Constant<EvalT, panzer::Traits>(input));
-                evaluators->push_back(e);
-            }
-            found = true;
-        }
-
-        if (!found)
-        {
-            std::stringstream msg;
-            msg << "ClosureModelFactory failed to build evaluator for key \"" << key
-                << "\"\nin model \"" << model_id
-                << "\".  Please correct the type or add support to the \nfactory." << std::endl;
-            TEUCHOS_TEST_FOR_EXCEPTION(!found, std::logic_error, msg.str());
-        }
-    }
-
-    return evaluators;
-}
-
-#endif
diff --git a/tlnos/src/Example_EquationSetFactory.hpp b/tlnos/src/Example_EquationSetFactory.hpp
deleted file mode 100644
index f06c01d1..00000000
--- a/tlnos/src/Example_EquationSetFactory.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef __PoissonExample_EquationSetFactory_hpp__
-#define __PoissonExample_EquationSetFactory_hpp__
-
-#include "Panzer_EquationSet_Factory.hpp"
-#include "Panzer_EquationSet_Factory_Defines.hpp"
-#include "Panzer_CellData.hpp"
-
-// Add my equation sets here
-#include "Example_PoissonEquationSet.hpp"
-
-namespace Example
-{
-
-// A macro that defines a class to make construction of the equation sets easier
-//   - The equation set is constructed over a list of automatic differention types
-PANZER_DECLARE_EQSET_TEMPLATE_BUILDER("Poisson", PoissonEquationSet, PoissonEquationSet)
-
-// A user written factory that creates each equation set.  The key member here
-// is buildEquationSet
-class EquationSetFactory : public panzer::EquationSetFactory
-{
-public:
-    Teuchos::RCP<panzer::EquationSet_TemplateManager<panzer::Traits>>
-    buildEquationSet(const Teuchos::RCP<Teuchos::ParameterList> &params,
-                     const int &default_integration_order,
-                     const panzer::CellData &cell_data,
-                     const Teuchos::RCP<panzer::GlobalData> &global_data,
-                     const bool build_transient_support) const
-    {
-        Teuchos::RCP<panzer::EquationSet_TemplateManager<panzer::Traits>> eq_set =
-            Teuchos::rcp(new panzer::EquationSet_TemplateManager<panzer::Traits>);
-
-        bool found = false; // this is used by PANZER_BUILD_EQSET_OBJECTS
-
-        // macro checks if(ies.name=="Poisson") then an EquationSet_Energy object is constructed
-        PANZER_BUILD_EQSET_OBJECTS("Poisson", PoissonEquationSet, PoissonEquationSet)
-
-        // make sure your equation set has been found
-        if (!found)
-        {
-            std::string msg = "Error - the \"Equation Set\" called \"" + params->get<std::string>("Type") +
-                              "\" is not a valid equation set identifier. Please supply the correct factory.\n";
-            TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, msg);
-        }
-
-        return eq_set;
-    }
-};
-
-} // namespace Example
-
-#endif
diff --git a/tlnos/src/Example_PoissonEquationSet.hpp b/tlnos/src/Example_PoissonEquationSet.hpp
deleted file mode 100644
index f3cfbe59..00000000
--- a/tlnos/src/Example_PoissonEquationSet.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef __PoissonExample_EquationSet_Energy_hpp__
-#define __PoissonExample_EquationSet_Energy_hpp__
-
-#include <vector>
-#include <string>
-
-#include "Teuchos_RCP.hpp"
-#include "Panzer_EquationSet_DefaultImpl.hpp"
-#include "Panzer_Traits.hpp"
-#include "Phalanx_FieldManager.hpp"
-
-namespace Example
-{
-
-/** The equation set serves two roles. The first is to let the panzer library
-  * know which fields this equation set defines and their names. It registers
-  * the evaluators required for a particular equation set. The level of the
-  * granularity is largely up to a user. For instance this could be the momentum
-  * or continuity equation in Navier-Stokes, or it could simply be the Navier-Stokes
-  * equations. 
-  *
-  * Generally, this inherits from the panzer::EquationSet_DefaultImpl which takes
-  * care of adding the gather (extract basis coefficients from solution vector) and 
-  * scatter (using element matrices and vectors distribute and sum their values
-  * to a global linear system) evaluators. These use data members that must be set by
-  * the user.
-  */
-template <typename EvalT>
-class PoissonEquationSet : public panzer::EquationSet_DefaultImpl<EvalT>
-{
-public:
-    /** In the constructor you set all the fields provided by this
-     * equation set. 
-     */
-    PoissonEquationSet(const Teuchos::RCP<Teuchos::ParameterList> &params,
-                       const int &default_integration_order,
-                       const panzer::CellData &cell_data,
-                       const Teuchos::RCP<panzer::GlobalData> &global_data,
-                       const bool build_transient_support);
-
-    /** The specific evaluators are registered with the field manager argument.
-     */
-    void buildAndRegisterEquationSetEvaluators(PHX::FieldManager<panzer::Traits> &fm,
-                                               const panzer::FieldLibrary &field_library,
-                                               const Teuchos::ParameterList &user_data) const;
-};
-
-} // namespace Example
-
-#include "Example_PoissonEquationSet_impl.hpp"
-
-#endif
diff --git a/tlnos/src/Example_PoissonEquationSet_impl.hpp b/tlnos/src/Example_PoissonEquationSet_impl.hpp
deleted file mode 100644
index 8990248e..00000000
--- a/tlnos/src/Example_PoissonEquationSet_impl.hpp
+++ /dev/null
@@ -1,213 +0,0 @@
-// @HEADER
-// ***********************************************************************
-//
-//           Panzer: A partial differential equation assembly
-//       engine for strongly coupled complex multiphysics systems
-//                 Copyright (2011) Sandia Corporation
-//
-// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
-// the U.S. Government retains certain rights in this software.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact Roger P. Pawlowski (rppawlo@sandia.gov) and
-// Eric C. Cyr (eccyr@sandia.gov)
-// ***********************************************************************
-// @HEADER
-
-#ifndef USER_APP_EQUATIONSET_ENERGY_T_HPP
-#define USER_APP_EQUATIONSET_ENERGY_T_HPP
-
-#include "Teuchos_ParameterList.hpp"
-#include "Teuchos_StandardParameterEntryValidators.hpp"
-#include "Teuchos_RCP.hpp"
-#include "Teuchos_Assert.hpp"
-#include "Phalanx_DataLayout_MDALayout.hpp"
-#include "Phalanx_FieldManager.hpp"
-
-#include "Panzer_IntegrationRule.hpp"
-#include "Panzer_BasisIRLayout.hpp"
-
-// include evaluators here
-#include "Panzer_Integrator_BasisTimesScalar.hpp"
-#include "Panzer_Integrator_GradBasisDotVector.hpp"
-#include "Panzer_ScalarToVector.hpp"
-#include "Panzer_Sum.hpp"
-#include "Panzer_Constant.hpp"
-
-// ***********************************************************************
-template <typename EvalT>
-Example::PoissonEquationSet<EvalT>::
-    PoissonEquationSet(const Teuchos::RCP<Teuchos::ParameterList> &params,
-                       const int &default_integration_order,
-                       const panzer::CellData &cell_data,
-                       const Teuchos::RCP<panzer::GlobalData> &global_data,
-                       const bool build_transient_support) : panzer::EquationSet_DefaultImpl<EvalT>(params, default_integration_order, cell_data, global_data, build_transient_support)
-{
-    // ********************
-    // Validate and parse parameter list
-    // ********************
-    {
-        Teuchos::ParameterList valid_parameters;
-        this->setDefaultValidParameters(valid_parameters);
-
-        valid_parameters.set("Model ID", "", "Closure model id associated with this equaiton set");
-        valid_parameters.set("Basis Type", "HGrad", "Type of Basis to use");
-        valid_parameters.set("Basis Order", 1, "Order of the basis");
-        valid_parameters.set("Integration Order", -1, "Order of the integration rule");
-
-        params->validateParametersAndSetDefaults(valid_parameters);
-    }
-
-    std::string basis_type = params->get<std::string>("Basis Type");
-    int basis_order = params->get<int>("Basis Order");
-    int integration_order = params->get<int>("Integration Order");
-    std::string model_id = params->get<std::string>("Model ID");
-
-    // ********************
-    // Panzer uses strings to match fields. In this section we define the
-    // name of the fields provided by this equation set. This is a bit strange
-    // in that this is not the fields necessarily required by this equation set.
-    // For instance for the momentum equations in Navier-Stokes only the velocity
-    // fields are added, the pressure field is added by continuity.
-    //
-    // In this case "TEMPERATURE" is the lone field.  We also name the gradient
-    // for this field. These names automatically generate evaluators for "TEMPERATURE"
-    // and "GRAD_TEMPERATURE" gathering the basis coefficients of "TEMPERATURE" and
-    // the values of the TEMPERATURE and GRAD_TEMPERATURE fields at quadrature points.
-    //
-    // After all the equation set evaluators are added to a given field manager, the
-    // panzer code adds in appropriate scatter evaluators to distribute the
-    // entries into the residual and the Jacobian operator. These operators will be
-    // "required" by the field manager and will serve as roots of evaluation tree.
-    // The leaves of this tree will include the gather evaluators whose job it is to
-    // gather the solution from a vector.
-    // ********************
-
-    // ********************
-    // Assemble DOF names and Residual names
-    // ********************
-
-    this->addDOF("TEMPERATURE", basis_type, basis_order, integration_order);
-    this->addDOFGrad("TEMPERATURE");
-    if (this->buildTransientSupport())
-        this->addDOFTimeDerivative("TEMPERATURE");
-
-    // ********************
-    // Build Basis Functions and Integration Rules
-    // ********************
-
-    this->addClosureModel(model_id);
-
-    this->setupDOFs();
-}
-
-// ***********************************************************************
-template <typename EvalT>
-void Example::PoissonEquationSet<EvalT>::
-    buildAndRegisterEquationSetEvaluators(PHX::FieldManager<panzer::Traits> &fm,
-                                          const panzer::FieldLibrary &fl,
-                                          const Teuchos::ParameterList &user_data) const
-{
-    using Teuchos::ParameterList;
-    using Teuchos::RCP;
-    using Teuchos::rcp;
-
-    Teuchos::RCP<panzer::IntegrationRule> ir = this->getIntRuleForDOF("TEMPERATURE");
-    Teuchos::RCP<panzer::BasisIRLayout> basis = this->getBasisIRLayoutForDOF("TEMPERATURE");
-
-    // ********************
-    // Energy Equation
-    // ********************
-
-    // Transient Operator: Assembles \int \dot{T} v
-    if (this->buildTransientSupport())
-    {
-        ParameterList p("Transient Residual");
-        p.set("Residual Name", "RESIDUAL_TEMPERATURE_TRANSIENT_OP"); // we are defining the name of this operator
-        p.set("Value Name", "DXDT_TEMPERATURE");                     // this field is constructed by the panzer library
-        p.set("Basis", basis);
-        p.set("IR", ir);
-        p.set("Multiplier", 1.0);
-
-        RCP<PHX::Evaluator<panzer::Traits>> op =
-            rcp(new panzer::Integrator_BasisTimesScalar<EvalT, panzer::Traits>(p));
-
-        this->template registerEvaluator<EvalT>(fm, op);
-    }
-
-    // Diffusion Operator: Assembles \int \nabla T \cdot \nabla v
-    {
-        double thermal_conductivity = 1.0;
-
-        ParameterList p("Diffusion Residual");
-        p.set("Residual Name", "RESIDUAL_TEMPERATURE_DIFFUSION_OP");
-        p.set("Flux Name", "GRAD_TEMPERATURE"); // this field is constructed by the panzer library
-        p.set("Basis", basis);
-        p.set("IR", ir);
-        p.set("Multiplier", thermal_conductivity);
-
-        RCP<PHX::Evaluator<panzer::Traits>> op =
-            rcp(new panzer::Integrator_GradBasisDotVector<EvalT, panzer::Traits>(p));
-
-        this->template registerEvaluator<EvalT>(fm, op);
-    }
-
-    // Source Operator
-    {
-        ParameterList p("Source Residual");
-        p.set("Residual Name", "RESIDUAL_TEMPERATURE_SOURCE_OP");
-        p.set("Value Name", "SOURCE_TEMPERATURE"); // this field must be provided by the closure model factory
-                                                   // and specified by the user
-        p.set("Basis", basis);
-        p.set("IR", ir);
-        p.set("Multiplier", -1.0);
-
-        RCP<PHX::Evaluator<panzer::Traits>> op =
-            rcp(new panzer::Integrator_BasisTimesScalar<EvalT, panzer::Traits>(p));
-
-        this->template registerEvaluator<EvalT>(fm, op);
-    }
-
-    // Use a sum operator to form the overall residual for the equation
-    {
-        std::vector<std::string> sum_names;
-
-        // these are the names of the residual values to sum together
-        sum_names.push_back("RESIDUAL_TEMPERATURE_DIFFUSION_OP");
-        sum_names.push_back("RESIDUAL_TEMPERATURE_SOURCE_OP");
-        if (this->buildTransientSupport())
-            sum_names.push_back("RESIDUAL_TEMPERATURE_TRANSIENT_OP");
-
-        this->buildAndRegisterResidualSummationEvalautor(fm, "TEMPERATURE", sum_names);
-    }
-}
-
-// ***********************************************************************
-
-#endif
diff --git a/tlnos/src/ExodusInterface.h b/tlnos/src/ExodusInterface.h
deleted file mode 100644
index e0847ac7..00000000
--- a/tlnos/src/ExodusInterface.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
-#@HEADER
-# ************************************************************************
-#
-#                          Moertel FE Package
-#                 Copyright (2006) Sandia Corporation
-#
-# Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-# license for use of this work by or on behalf of the U.S. Government.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the Corporation nor the names of the
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Questions? Contact Glen Hansen (gahanse@sandia.gov)
-#
-# ************************************************************************
-#@HEADER
-*/
-
-#ifndef MOERTEL_EXODUS_H
-#define MOERTEL_EXODUS_H
-
-#include <iostream>
-#include <iomanip>
-#include "Epetra_Map.h"
-#include "Epetra_MultiVector.h"
-#include "Epetra_Import.h"
-#include "Galeri_AbstractGrid.h"
-
-// Exodus stuff
-
-#include "exodusII.h"
-
-using namespace std;
-
-class ExodusInterface
-{
-
-public:
-    ExodusInterface(Epetra_Comm &Comm) : Comm_(Comm) {}
-
-    ~ExodusInterface() {}
-
-    const Epetra_Comm &Comm() const
-    {
-        return (Comm_);
-    }
-
-    void Write(const Galeri::FiniteElements::AbstractGrid &data, const string &BaseName,
-               const Epetra_MultiVector &Field)
-    {
-
-        int comp_ws = sizeof(double); // = 8
-        int io_ws = sizeof(double);   // = 8
-
-        string FileName = BaseName + ".exo";
-        int ex_id = ex_create(FileName.c_str(), EX_CLOBBER, &comp_ws, &io_ws);
-
-        int num_dim = data.NumDimensions();
-        int num_nodes = data.NumGlobalVertices();
-        int num_elem = data.NumGlobalElements();
-        int num_elem_blk = 1;
-        int num_node_sets = 0;
-        int num_side_sets = 0;
-
-        int ex_err = ex_put_init(ex_id, FileName.c_str(), num_dim,
-                                 num_nodes, num_elem, num_elem_blk,
-                                 num_node_sets, num_side_sets);
-
-        vector<double> coord(3);
-        vector<int> vertices(data.NumVerticesPerElement());
-
-        const Epetra_Map &RowMap = data.RowMap();
-        //    const Epetra_Map& VertexMap = data.VertexMap();
-
-        std::vector<double> x(data.NumMyVertices());
-        std::vector<double> y(data.NumMyVertices());
-        std::vector<double> z(data.NumMyVertices());
-
-        for (int i = 0; i < data.NumMyVertices(); ++i)
-        {
-            data.VertexCoord(i, &coord[0]);
-            x[i] = coord[0];
-            y[i] = coord[1];
-            z[i] = coord[2];
-        }
-
-        int n = 0;
-        if (Field.Comm().MyPID() == 0)
-            n = RowMap.NumGlobalElements();
-
-        Epetra_Map SingleProcMap(-1, n, 0, Field.Comm());
-        Epetra_MultiVector SingleProcField(SingleProcMap, 1);
-
-        Epetra_Import FieldImporter(SingleProcMap, RowMap);
-        SingleProcField.Import(Field, FieldImporter, Insert);
-
-        if (Comm().MyPID() == 0)
-        {
-            switch (data.NumDimensions())
-            {
-            case 2:
-            {
-                const char *coord_names[] = {"x", "y"};
-                ex_err = ex_put_coord_names(ex_id, (char **)coord_names);
-                ex_err = ex_put_coord(ex_id, &x[0], &y[0], NULL);
-            }
-            break;
-            case 3:
-            {
-                const char *coord_names[] = {"x", "y", "z"};
-                ex_err = ex_put_coord_names(ex_id, (char **)coord_names);
-                ex_err = ex_put_coord(ex_id, &x[0], &y[0], &z[0]);
-            }
-            break;
-            default:
-                throw(-1);
-            }
-        }
-        Comm().Barrier();
-
-        for (int ProcID = 0; ProcID < Comm().NumProc(); ++ProcID)
-        {
-
-            if (Comm().MyPID() == ProcID)
-            {
-
-                if (ProcID == 0)
-                {
-                    string type = data.ElementType();
-
-                    if (type == "GALERI_TRIANGLE")
-                    {
-                        const char *elem_type = "TRIANGLE";
-                        ex_err = ex_put_elem_block(ex_id, 1, (char *)elem_type, data.NumGlobalElements(), 3, 0);
-                    }
-                    else if (type == "GALERI_QUAD")
-                    {
-                        const char *elem_type = "QUAD4";
-                        ex_err = ex_put_elem_block(ex_id, 1, (char *)elem_type, data.NumGlobalElements(), 4, 0);
-                    }
-                    else if (type == "GALERI_TET")
-                    {
-                        const char *elem_type = "TETRA";
-                        ex_err = ex_put_elem_block(ex_id, 1, (char *)elem_type, data.NumGlobalElements(), 4, 0);
-                    }
-                    else if (type == "GALERI_HEX")
-                    {
-                        const char *elem_type = "HEX";
-                        ex_err = ex_put_elem_block(ex_id, 1, (char *)elem_type, data.NumGlobalElements(), 8, 0);
-                    }
-                    else
-                    {
-                        cerr << "Incorrect element type (" << type << ")" << endl;
-                        throw(-1);
-                    }
-                }
-
-                std::vector<int> connect_tmp(data.NumMyElements() * data.NumVerticesPerElement());
-                int cnt = 0;
-
-                for (int i = 0; i < data.NumMyElements(); ++i)
-                {
-                    data.ElementVertices(i, &vertices[0]);
-                    for (int j = 0; j < data.NumVerticesPerElement(); ++j)
-                        connect_tmp[cnt++] = data.VertexMap().GID(vertices[j]) + 1;
-                }
-
-                ex_err = ex_put_elem_conn(ex_id, 1, &connect_tmp[0]);
-            }
-
-            /* Write the field data out
-	
-		ex_err = ex_put_nodal_var(int exodus_file_id, int time_step, 
-		 int nodal_var_index, // which field set is being written
-		 int num_nodes, // number of nodes worth of data
-		 void *nodal_var_vals  // the data
-		);
-	*/
-
-            int num_nodal_fields = 1;
-            std::vector<double> field(data.NumMyVertices());
-
-            ex_err = ex_put_var_param(ex_id, "N", num_nodal_fields);
-
-            const char *var_names[] = {"u"};
-            ex_err = ex_put_var_names(ex_id, "N", num_nodal_fields, (char **)var_names);
-
-            //	  for(int i = 0; i < data.NumMyVertices(); i++)
-            //			  field[i] = SingleProcField[0][i];
-            for (int i = 0; i < data.NumMyVertices(); i++)
-                field[i] = Field[0][i];
-
-            ex_err = ex_put_nodal_var(ex_id, 1, 1, data.NumMyVertices(), &field[0]);
-
-            ex_err = ex_close(ex_id);
-
-            Comm().Barrier();
-
-        } // for Procs, write elements
-    }
-
-private:
-    const Epetra_Comm &Comm_;
-};
-
-#endif
diff --git a/tlnos/src/TOOLS/PDE_FEM.hpp b/tlnos/src/TOOLS/PDE_FEM.hpp
deleted file mode 100644
index 362d5338..00000000
--- a/tlnos/src/TOOLS/PDE_FEM.hpp
+++ /dev/null
@@ -1,1055 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  data.hpp
-    \brief Generates and manages data for the Poisson example, including
-           all mesh and discretization data, matrices, etc.
-*/
-
-#ifndef ROL_PDEOPT_PDE_FEM_H
-#define ROL_PDEOPT_PDE_FEM_H
-
-#include "Teuchos_GlobalMPISession.hpp"
-#include "Teuchos_TimeMonitor.hpp"
-
-#include "Tpetra_DefaultPlatform.hpp"
-#include "Tpetra_MultiVector.hpp"
-#include "Tpetra_Vector.hpp"
-#include "Tpetra_CrsGraph.hpp"
-#include "Tpetra_CrsMatrix.hpp"
-#include "Tpetra_Version.hpp"
-#include "Tpetra_RowMatrixTransposer.hpp"
-#include "MatrixMarket_Tpetra.hpp"
-
-#include "Intrepid_HGRAD_QUAD_C2_FEM.hpp"
-#include "Intrepid_HGRAD_QUAD_C1_FEM.hpp"
-#include "Intrepid_DefaultCubatureFactory.hpp"
-#include "Intrepid_FunctionSpaceTools.hpp"
-#include "Intrepid_CellTools.hpp"
-
-#include "Amesos2.hpp"
-#include "./dofmanager.hpp"
-
-template <class Real>
-class PDE_FEM
-{
-
-protected:
-    Teuchos::RCP<MeshManager<Real>> meshMgr_;
-    Teuchos::RCP<DofManager<Real>> dofMgr_;
-    std::vector<Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>>> basisPtrs_;
-    Teuchos::RCP<Intrepid::DofCoordsInterface<Intrepid::FieldContainer<Real>>> coord_iface_;
-    Intrepid::FieldContainer<int> cellDofs_;
-
-    Teuchos::RCP<Teuchos::ParameterList> parlist_;
-    Teuchos::RCP<const Teuchos::Comm<int>> commPtr_;
-    Teuchos::RCP<std::ostream> outStream_;
-
-    int numLocalDofs_;
-    Intrepid::FieldContainer<int> ctn_;
-    Intrepid::FieldContainer<int> cte_;
-
-    int myRank_;
-    int numProcs_;
-
-    Real alpha_;
-    int basisOrder_;
-
-    Teuchos::RCP<const Tpetra::Map<>> myCellMap_;
-    Teuchos::RCP<const Tpetra::Map<>> myOverlapMap_;
-    Teuchos::RCP<const Tpetra::Map<>> myUniqueMap_;
-    Teuchos::RCP<Tpetra::CrsGraph<>> matGraph_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matA_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matA_dirichlet_;
-    //  Teuchos::RCP<Tpetra::CrsMatrix<> >    matA_dirichlet_trans_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matM_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matM_dirichlet_;
-    //  Teuchos::RCP<Tpetra::CrsMatrix<> >    matM_dirichlet_trans_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecUd_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecF_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecF_overlap_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecF_dirichlet_;
-
-    Teuchos::Array<Real> myCellMeasure_;
-    Teuchos::Array<int> myCellIds_;
-    // Elements on Boundary
-    std::vector<Teuchos::Array<int>> myBoundaryCellIds_;
-    // DBC
-    Teuchos::Array<int> myDirichletDofs_;
-    // BC Sides
-    std::vector<int> my_dbc_;
-    std::vector<int> my_nbc_;
-
-    //Point load on Bundary!
-    std::vector<int> myPointLoadDofs_;
-    std::vector<Real> myPointLoadVals_;
-
-    Teuchos::RCP<Amesos2::Solver<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>> solverA_;
-    //  Teuchos::RCP<Amesos2::Solver< Tpetra::CrsMatrix<>, Tpetra::MultiVector<> > > solverA_trans_;
-
-    shards::CellTopology cellType_;
-
-    int sideDim_;
-    int spaceDim_;
-    int numNodesPerCell_;
-    int numCubPoints_;
-    int lfs_;
-
-    int totalNumCells_;
-    int totalNumDofs_;
-    int numCells_;
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cubPoints_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cubWeights_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellNodes_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellJac_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellJacInv_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellJacDet_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellWeightedMeasure_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valReference_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradReference_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valPhysicalWeighted_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradPhysicalWeighted_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradgradMats_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valvalMats_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cubPointsPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dataF_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> datavalVecF_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dofPoints_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dofPointsPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dataUd_;
-
-    bool verbose_;
-
-protected:
-public:
-    // constructor
-    PDE_FEM() {}
-    // destructor
-    virtual ~PDE_FEM() {}
-
-    virtual void Initialize(const Teuchos::RCP<const Teuchos::Comm<int>> &comm,
-                            const Teuchos::RCP<Teuchos::ParameterList> &parlist,
-                            const Teuchos::RCP<std::ostream> &outStream)
-    {
-        commPtr_ = comm;
-        parlist_ = parlist;
-        outStream_ = outStream;
-        myRank_ = comm->getRank();
-        numProcs_ = comm->getSize();
-
-        verbose_ = parlist->sublist("PDE FEM").get("Verbose Output", false);
-        if (verbose_)
-        {
-            *outStream_ << "Total number of processors: " << numProcs_ << std::endl;
-        }
-
-        basisOrder_ = parlist->sublist("PDE FEM").get<int>("Order of FE Discretization");
-    }
-
-    void SetDiscretization(const Teuchos::RCP<MeshManager<Real>> &meshMgr,
-                           const std::vector<Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>>> &basisPtrs)
-    {
-        meshMgr_ = meshMgr;
-        totalNumCells_ = meshMgr_->getNumCells();
-
-        basisPtrs_ = basisPtrs;
-
-        // Retrieve some basic cell information.
-        cellType_ = (basisPtrs_[0])->getBaseCellTopology(); // get the cell type from any basis
-        spaceDim_ = cellType_.getDimension();               // retrieve spatial dimension
-        numNodesPerCell_ = cellType_.getNodeCount();        // retrieve number of nodes per cell
-
-        sideDim_ = spaceDim_ - 1;
-
-        coord_iface_ = Teuchos::rcp_dynamic_cast<Intrepid::DofCoordsInterface<Intrepid::FieldContainer<Real>>>(basisPtrs_[0]);
-        dofMgr_ = Teuchos::rcp(new DofManager<Real>(meshMgr_, basisPtrs_));
-    }
-
-    virtual void SetParallelStructure(void)
-    {
-        int cellSplit = parlist_->sublist("Geometry").get<int>("Partition type");
-        /****************************************************/
-        /*** Build parallel communication infrastructure. ***/
-        /****************************************************/
-        // Partition the cells in the mesh.  We use a basic quasi-equinumerous partitioning,
-        // where the remainder, if any, is assigned to the last processor.
-        Teuchos::Array<int> myGlobIds_;
-        Teuchos::Array<int> cellOffsets_(numProcs_, 0);
-        int cellsPerProc = totalNumCells_ / numProcs_;
-        numCells_ = cellsPerProc;
-        switch (cellSplit)
-        {
-        case 0:
-            if (myRank_ == 0)
-            { // remainder in the first
-                numCells_ += totalNumCells_ % numProcs_;
-            }
-            for (int i = 1; i < numProcs_; ++i)
-            {
-                cellOffsets_[i] = cellOffsets_[i - 1] + cellsPerProc + (static_cast<int>(i == 1)) * (totalNumCells_ % numProcs_);
-            }
-            break;
-        case 1:
-            if (myRank_ == numProcs_ - 1)
-            { // remainder in the last
-                numCells_ += totalNumCells_ % numProcs_;
-            }
-            for (int i = 1; i < numProcs_; ++i)
-            {
-                cellOffsets_[i] = cellOffsets_[i - 1] + cellsPerProc;
-            }
-            break;
-        case 2:
-            if (myRank_ < (totalNumCells_ % numProcs_))
-            { // spread remainder, starting from the first
-                numCells_++;
-            }
-            for (int i = 1; i < numProcs_; ++i)
-            {
-                cellOffsets_[i] = cellOffsets_[i - 1] + cellsPerProc + (static_cast<int>(i - 1 < (totalNumCells_ % numProcs_)));
-            }
-            break;
-        }
-
-        cellDofs_ = *(dofMgr_->getCellDofs());
-        numLocalDofs_ = cellDofs_.dimension(1);
-        if (verbose_)
-        {
-            *outStream_ << "Cell offsets across processors: " << cellOffsets_
-                        << std::endl;
-        }
-        for (int i = 0; i < numCells_; ++i)
-        {
-            myCellIds_.push_back(cellOffsets_[myRank_] + i);
-            for (int j = 0; j < numLocalDofs_; ++j)
-            {
-                myGlobIds_.push_back(cellDofs_(cellOffsets_[myRank_] + i, j));
-            }
-        }
-        std::sort(myGlobIds_.begin(), myGlobIds_.end());
-        myGlobIds_.erase(std::unique(myGlobIds_.begin(), myGlobIds_.end()), myGlobIds_.end());
-
-        // Build maps.
-        myOverlapMap_ = Teuchos::rcp(new Tpetra::Map<>(Teuchos::OrdinalTraits<Tpetra::global_size_t>::invalid(),
-                                                       myGlobIds_, 0, commPtr_));
-        //std::cout << std::endl << myOverlapMap_->getNodeElementList()<<std::endl;
-        /** One can also use the non-member function:
-        myOverlapMap_ = Tpetra::createNonContigMap<int,int>(myGlobIds_, commPtr_);
-        to build the overlap map.
-    **/
-        myUniqueMap_ = Tpetra::createOneToOne<int, int>(myOverlapMap_);
-        //std::cout << std::endl << myUniqueMap_->getNodeElementList() << std::endl;
-        myCellMap_ = Teuchos::rcp(new Tpetra::Map<>(Teuchos::OrdinalTraits<Tpetra::global_size_t>::invalid(),
-                                                    this->myCellIds_, 0, this->commPtr_));
-    }
-
-    virtual void SetUpLocalIntrepidArrays(void)
-    {
-        /****************************************************/
-        /*** Set up local discretization data and arrays. ***/
-        /****************************************************/
-        // Cubature data.
-        Intrepid::DefaultCubatureFactory<Real> cubFactory;                                        // create cubature factory
-        int cubDegree = 4;                                                                        // set cubature degree, e.g., 2
-        Teuchos::RCP<Intrepid::Cubature<Real>> cellCub = cubFactory.create(cellType_, cubDegree); // create default cubature
-        numCubPoints_ = cellCub->getNumPoints();                                                  // retrieve number of cubature points
-
-        lfs_ = dofMgr_->getLocalFieldSize(0);
-        // Discretization data.
-        cubPoints_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCubPoints_, spaceDim_));
-        cubWeights_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCubPoints_));
-        cubPointsPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_, spaceDim_));
-        dofPoints_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(lfs_, spaceDim_));
-        dofPointsPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs_, spaceDim_));
-        cellNodes_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numNodesPerCell_, spaceDim_));
-        cellJac_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_, spaceDim_, spaceDim_));
-        cellJacInv_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_, spaceDim_, spaceDim_));
-        cellJacDet_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_));
-        cellWeightedMeasure_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_));
-        valReference_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(lfs_, numCubPoints_));
-        gradReference_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(lfs_, numCubPoints_, spaceDim_));
-        valPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs_, numCubPoints_));
-        gradPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs_, numCubPoints_, spaceDim_));
-        valPhysicalWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs_, numCubPoints_));
-        gradPhysicalWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs_, numCubPoints_, spaceDim_));
-
-        // Geometric definition of the cells in the mesh, based on the cell-to-node map and the domain partition.
-        Intrepid::FieldContainer<Real> &nodes = *meshMgr_->getNodes();
-        ctn_ = *meshMgr_->getCellToNodeMap();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numNodesPerCell_; ++j)
-            {
-                for (int k = 0; k < spaceDim_; ++k)
-                {
-                    (*cellNodes_)(i, j, k) = nodes(ctn_(myCellIds_[i], j), k);
-                }
-            }
-        }
-
-        //Compute Intrepid Arrays
-        cellCub->getCubature(*cubPoints_, *cubWeights_);                                   // retrieve cubature points and weights
-        (*basisPtrs_[0]).getValues(*gradReference_, *cubPoints_, Intrepid::OPERATOR_GRAD); // evaluate grad operator at cubature points
-        (*basisPtrs_[0]).getValues(*valReference_, *cubPoints_, Intrepid::OPERATOR_VALUE); // evaluate value operator at cubature points
-
-        Intrepid::CellTools<Real>::setJacobian(*cellJac_, *cubPoints_, *cellNodes_, cellType_); // compute cell Jacobians
-        Intrepid::CellTools<Real>::setJacobianInv(*cellJacInv_, *cellJac_);                     // compute inverses of cell Jacobians
-        Intrepid::CellTools<Real>::setJacobianDet(*cellJacDet_, *cellJac_);                     // compute determinants of cell Jacobians
-
-        Intrepid::FunctionSpaceTools::computeCellMeasure<Real>(*cellWeightedMeasure_, // compute weighted cell measure
-                                                               *cellJacDet_,
-                                                               *cubWeights_);
-
-        Intrepid::FunctionSpaceTools::HGRADtransformGRAD<Real>(*gradPhysical_, // transform reference gradients into physical space
-                                                               *cellJacInv_,
-                                                               *gradReference_);
-        Intrepid::FunctionSpaceTools::multiplyMeasure<Real>(*gradPhysicalWeighted_, // multiply with weighted measure
-                                                            *cellWeightedMeasure_,
-                                                            *gradPhysical_);
-
-        Intrepid::FunctionSpaceTools::HGRADtransformVALUE<Real>(*valPhysical_, // transform reference values into physical space
-                                                                *valReference_);
-        Intrepid::FunctionSpaceTools::multiplyMeasure<Real>(*valPhysicalWeighted_, // multiply with weighted measure
-                                                            *cellWeightedMeasure_,
-                                                            *valPhysical_);
-        Intrepid::CellTools<Real>::mapToPhysicalFrame(*cubPointsPhysical_, // map reference cubature points to physical space
-                                                      *cubPoints_,
-                                                      *cellNodes_,
-                                                      cellType_);
-
-        ComputeCellTotalMeasures();
-    }
-
-    virtual void ComputeCellTotalMeasures(void)
-    {
-        for (int i = 0; i < numCells_; ++i)
-        {
-            Real temp = 0.0;
-            for (int j = 0; j < numCubPoints_; ++j)
-            {
-                temp += (*cellWeightedMeasure_)(i, j);
-            }
-            myCellMeasure_.push_back(temp);
-        }
-        std::cout << "First cell total measure: " << myCellMeasure_[0] << std::endl;
-    }
-
-    virtual void ComputeLocalSystemMats(void) {}
-
-    virtual void ComputeLocalForceVec(void) {}
-
-    virtual void SetUpTrueDataOnNodes(void) {}
-
-    virtual void AssembleSystemMats(void)
-    {
-        /****************************************/
-        /*** Assemble global data structures. ***/
-        /****************************************/
-        // Assemble graph.
-        matGraph_ = Teuchos::rcp(new Tpetra::CrsGraph<>(myUniqueMap_, 0));
-        Teuchos::ArrayRCP<const int> cellDofsArrayRCP = cellDofs_.getData();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs_; ++j)
-            {
-                matGraph_->insertGlobalIndices(cellDofs_(myCellIds_[i], j), cellDofsArrayRCP(myCellIds_[i] * numLocalDofs_, numLocalDofs_));
-            }
-        }
-        matGraph_->fillComplete();
-        // Assemble matrices.
-        // Stiffness matrix A.
-        matA_ = Teuchos::rcp(new Tpetra::CrsMatrix<>(matGraph_));
-        int numLocalMatEntries = numLocalDofs_ * numLocalDofs_;
-        Teuchos::ArrayRCP<const Real> gradgradArrayRCP = gradgradMats_->getData();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs_; ++j)
-            {
-                matA_->sumIntoGlobalValues(cellDofs_(myCellIds_[i], j),
-                                           cellDofsArrayRCP(myCellIds_[i] * numLocalDofs_, numLocalDofs_),
-                                           gradgradArrayRCP(i * numLocalMatEntries + j * numLocalDofs_, numLocalDofs_));
-            }
-        }
-        matA_->fillComplete();
-        // Mass matrix M.
-        matM_ = Teuchos::rcp(new Tpetra::CrsMatrix<>(matGraph_));
-        Teuchos::ArrayRCP<const Real> valvalArrayRCP = valvalMats_->getData();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs_; ++j)
-            {
-                matM_->sumIntoGlobalValues(cellDofs_(myCellIds_[i], j),
-                                           cellDofsArrayRCP(myCellIds_[i] * numLocalDofs_, numLocalDofs_),
-                                           valvalArrayRCP(i * numLocalMatEntries + j * numLocalDofs_, numLocalDofs_));
-            }
-        }
-        matM_->fillComplete();
-    }
-
-    virtual void AssembleRHSVector(void)
-    {
-        // Assemble vectors.
-        // vecF_ requires assembly using vecF_overlap_ and redistribution
-        vecF_ = Teuchos::rcp(new Tpetra::MultiVector<>(matA_->getRangeMap(), 1, true));
-        vecF_overlap_ = Teuchos::rcp(new Tpetra::MultiVector<>(myOverlapMap_, 1, true));
-        // assembly on the overlap map
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs_; ++j)
-            {
-                vecF_overlap_->sumIntoGlobalValue(cellDofs_(myCellIds_[i], j),
-                                                  0,
-                                                  (*datavalVecF_)[i * numLocalDofs_ + j]);
-            }
-        }
-
-        //Assemble the point loads!
-        for (unsigned i = 0; i < myPointLoadDofs_.size(); ++i)
-        {
-            vecF_overlap_->sumIntoGlobalValue(myPointLoadDofs_[i],
-                                              0,
-                                              myPointLoadVals_[i]);
-        }
-
-        // change map
-        Tpetra::Export<> exporter(vecF_overlap_->getMap(), vecF_->getMap()); // redistribution
-        vecF_->doExport(*vecF_overlap_, exporter, Tpetra::ADD);              // from the overlap map to the unique map
-    }
-
-    virtual void AssembleDataVector(void)
-    {
-        // vecUd_ does not require assembly
-        vecUd_ = Teuchos::rcp(new Tpetra::MultiVector<>(matA_->getDomainMap(), 1, true));
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs_; ++j)
-            {
-                if (vecUd_->getMap()->isNodeGlobalElement(cellDofs_(myCellIds_[i], j)))
-                {
-                    vecUd_->replaceGlobalValue(cellDofs_(myCellIds_[i], j),
-                                               0,
-                                               (*dataUd_)[i * numLocalDofs_ + j]);
-                }
-            }
-        }
-    }
-
-    // find the local index of a global cell
-    virtual int find_local_index(int globalCell)
-    {
-        return myCellMap_->getLocalElement(globalCell);
-        /*
-	for(int i=0; i<numCells_; i++)
-	{
-		if(myCellIds_[i] == globalCell)
-			return i;
-	}
-	return -1;
-*/
-    }
-
-    // check to see if a globaldof is on dirichlet boundary
-    virtual bool check_myGlobalDof_on_boundary(int globalDof)
-    {
-        if (std::binary_search(myDirichletDofs_.begin(), myDirichletDofs_.end(), globalDof))
-        {
-            return true;
-        }
-        return false;
-    }
-
-    //create myBoundaryCellIds_ and myDirichletDofs_
-    virtual void SetUpMyDBCInfo(bool ifUseCoordsToSpecifyBC, std::vector<int> dbc_side)
-    {
-        if (ifUseCoordsToSpecifyBC)
-        {
-            my_dbc_.resize(4);
-            my_dbc_ = {0, 1, 2, 3};
-        }
-        else
-        {
-            my_dbc_ = dbc_side;
-        }
-        //Print to check my BC info
-        if (verbose_)
-        {
-            *outStream_ << "My dbc numbers: ";
-            for (unsigned i = 0; i < my_dbc_.size(); ++i)
-            {
-                *outStream_ << my_dbc_[i];
-            }
-            *outStream_ << std::endl;
-        }
-        //
-        Teuchos::RCP<std::vector<std::vector<Intrepid::FieldContainer<int>>>> dirichletSideSets = meshMgr_->getSideSets();
-        std::vector<std::vector<Intrepid::FieldContainer<int>>> &dss = *dirichletSideSets;
-        Teuchos::Array<int> mySortedCellIds_(myCellIds_);
-        std::sort(mySortedCellIds_.begin(), mySortedCellIds_.end());
-        mySortedCellIds_.erase(std::unique(mySortedCellIds_.begin(), mySortedCellIds_.end()), mySortedCellIds_.end());
-
-        myBoundaryCellIds_.resize(dss[0].size());
-        for (int i = 0; i < static_cast<int>(dss[0].size()); ++i)
-        {
-            for (int j = 0; j < dss[0][i].dimension(0); ++j)
-            {
-                if (std::binary_search(mySortedCellIds_.begin(), mySortedCellIds_.end(), dss[0][i](j)))
-                {
-                    myBoundaryCellIds_[i].push_back(dss[0][i](j));
-                }
-            }
-        }
-
-        cte_ = *(meshMgr_->getCellToEdgeMap());
-        Intrepid::FieldContainer<int> &nodeDofs = *(dofMgr_->getNodeDofs());
-        //Intrepid::FieldContainer<int>  &edgeDofs = *(dofMgr_->getEdgeDofs());
-        std::vector<std::vector<int>> dofTags = (basisPtrs_[0])->getAllDofTags();
-        int numDofsPerNode = 0;
-        int numDofsPerEdge = 0;
-        for (int j = 0; j < (basisPtrs_[0])->getCardinality(); ++j)
-        {
-            if (dofTags[j][0] == 0)
-            {
-                numDofsPerNode = dofTags[j][3];
-            }
-            if (dofTags[j][0] == 1)
-            {
-                numDofsPerEdge = dofTags[j][3];
-            }
-        }
-        // vector field
-        int nfields = basisPtrs_.size();
-        numDofsPerNode = numDofsPerNode * nfields;
-        numDofsPerEdge = numDofsPerEdge * nfields;
-
-        Intrepid::FieldContainer<Real> &nodes = *meshMgr_->getNodes();
-        int n_dbc = my_dbc_.size();
-        for (int i = 0; i < static_cast<int>(myBoundaryCellIds_.size()); ++i)
-        {
-            bool isdbc = false;
-            for (int i_dbc = 0; i_dbc < n_dbc; i_dbc++)
-            {
-                if (i == my_dbc_[i_dbc])
-                {
-                    isdbc = true;
-                    break;
-                }
-            }
-            if (!isdbc)
-                continue;
-
-            for (int j = 0; j < myBoundaryCellIds_[i].size(); ++j)
-            {
-                /*	
-	int ifDBCCell = check_DBC_By_Coords(myBoundaryCellIds_[i][j], i);
-	if(ifDBCCell < 1)
-		continue;
-*/
-                std::vector<Real> x(spaceDim_);
-                const CellTopologyData *ctd = cellType_.getCellTopologyData();
-                Teuchos::ArrayView<unsigned> locNodes(const_cast<unsigned *>(ctd->subcell[spaceDim_ - 1][i].node), cellType_.getVertexCount(spaceDim_ - 1, i));
-                for (int l = 0; l < static_cast<int>(cellType_.getVertexCount(spaceDim_ - 1, i)); ++l)
-                {
-                    x[0] = nodes(ctn_(myBoundaryCellIds_[i][j], locNodes[l]), 0);
-                    x[1] = nodes(ctn_(myBoundaryCellIds_[i][j], locNodes[l]), 1);
-                    // use coordinates to check if a DOF is DBC DOF
-                    int ifDBCNode = check_DBC_Coords_Range(x);
-                    if (ifDBCNode < 0)
-                    {
-                        continue;
-                    }
-                    else if (ifDBCNode == 0)
-                    {
-                        if (verbose_)
-                        {
-                            *outStream_ << "DBC node: "
-                                        << ctn_(myBoundaryCellIds_[i][j], locNodes[l])
-                                        << ", fixing X direction" << std::endl;
-                        }
-                        myDirichletDofs_.push_back(nodeDofs(ctn_(myBoundaryCellIds_[i][j], locNodes[l]), 0));
-                    }
-                    else if (ifDBCNode == 1 && numDofsPerNode >= 2)
-                    {
-                        if (verbose_)
-                        {
-                            *outStream_ << "DBC node: "
-                                        << ctn_(myBoundaryCellIds_[i][j], locNodes[l])
-                                        << ", fixing Y direction" << std::endl;
-                        }
-                        myDirichletDofs_.push_back(nodeDofs(ctn_(myBoundaryCellIds_[i][j], locNodes[l]), 1));
-                    }
-                    else
-                    {
-                        if (verbose_)
-                        {
-                            *outStream_ << "DBC node: "
-                                        << ctn_(myBoundaryCellIds_[i][j], locNodes[l])
-                                        << ", fixing ALL direction" << std::endl;
-                        }
-                        for (int k = 0; k < numDofsPerNode; ++k)
-                        {
-                            myDirichletDofs_.push_back(nodeDofs(ctn_(myBoundaryCellIds_[i][j], locNodes[l]), k));
-                        }
-                    }
-                }
-                // edge dofs are NOT in use
-                /*
-        for (int k=0; k<numDofsPerEdge; ++k) {
-           myDirichletDofs_.push_back(edgeDofs(cte_(myBoundaryCellIds_[i][j], i), k));
-        }
-	*/
-            }
-        }
-        std::sort(myDirichletDofs_.begin(), myDirichletDofs_.end());
-        myDirichletDofs_.erase(std::unique(myDirichletDofs_.begin(), myDirichletDofs_.end()), myDirichletDofs_.end());
-    }
-
-    virtual int check_DBC_Coords_Range(const std::vector<Real> &x) const
-    {
-        // return value :
-        // -1: not a DBC node
-        //  0: x direction fixed
-        //  1: y direction fixed
-        //  5: both x, y direction are fixed
-        return 5;
-    }
-    //
-    //
-    //
-    virtual void process_loading_information(const Teuchos::RCP<Teuchos::ParameterList> &parlist) {}
-    //
-    //note that the point load is only allowed to applied on the boundary, not inside the body! 2D only
-    virtual void check_and_Apply_PointLoad_By_Coords(int globalCellNum, int pointload_bc)
-    {
-        Intrepid::FieldContainer<Real> &nodes = *meshMgr_->getNodes();
-        const CellTopologyData *ctd = cellType_.getCellTopologyData();
-        Teuchos::ArrayView<unsigned> locNodes(const_cast<unsigned *>(ctd->subcell[spaceDim_ - 1][pointload_bc].node), cellType_.getVertexCount(spaceDim_ - 1, pointload_bc));
-        std::vector<Real> x1(spaceDim_);
-        std::vector<Real> x2(spaceDim_);
-        std::vector<int> localNodeNum(2);
-        x1[0] = nodes(ctn_(globalCellNum, locNodes[0]), 0);
-        x1[1] = nodes(ctn_(globalCellNum, locNodes[0]), 1);
-        x2[0] = nodes(ctn_(globalCellNum, locNodes[1]), 0);
-        x2[1] = nodes(ctn_(globalCellNum, locNodes[1]), 1);
-        ApplyPointLoad(pointload_bc, globalCellNum, localNodeNum, x1, x2);
-    }
-
-    virtual void ApplyPointLoad(const int pointload_bc,
-                                const int globalCellNum,
-                                const std::vector<int> &localNodeNum,
-                                const std::vector<Real> &coord1,
-                                const std::vector<Real> &coord2)
-    {
-        //Intrepid::FieldContainer<int>  &nodeDofs = *(dofMgr_->getNodeDofs());
-        //bool isLoadPosContainedInCurrentSegment = false;
-        //int whichNodeIsCloserToPos = -1;
-        return;
-    }
-    //
-    //
-    //
-    virtual void EnforceDBC(void)
-    {
-        // Apply Dirichlet conditions.
-        // zero out row and column, make matrix symmetric
-        Teuchos::RCP<Tpetra::Details::DefaultTypes::node_type> node = matA_->getNode();
-        matA_dirichlet_ = matA_->clone(node);
-        matM_dirichlet_ = matM_->clone(node);
-        vecF_dirichlet_ = Teuchos::rcp(new Tpetra::MultiVector<>(matA_->getRangeMap(), 1, true));
-        Tpetra::deep_copy(*vecF_dirichlet_, *vecF_);
-
-        matA_dirichlet_->resumeFill();
-        matM_dirichlet_->resumeFill();
-
-        int gDof;
-        for (int i = 0; i < numCells_; i++)
-        {
-            for (int j = 0; j < numLocalDofs_; j++)
-            {
-                gDof = cellDofs_(myCellIds_[i], j);
-                if (myUniqueMap_->isNodeGlobalElement(gDof) && check_myGlobalDof_on_boundary(gDof))
-                {
-                    size_t numRowEntries = matA_dirichlet_->getNumEntriesInGlobalRow(gDof);
-                    Teuchos::Array<int> indices(numRowEntries, 0);
-                    Teuchos::Array<Real> values(numRowEntries, 0);
-                    Teuchos::Array<Real> canonicalValues(numRowEntries, 0);
-                    Teuchos::Array<Real> zeroValues(numRowEntries, 0);
-                    matA_dirichlet_->getGlobalRowCopy(gDof, indices, values, numRowEntries);
-                    matM_dirichlet_->getGlobalRowCopy(gDof, indices, values, numRowEntries);
-                    for (int k = 0; k < indices.size(); k++)
-                    {
-                        if (indices[k] == gDof)
-                        {
-                            canonicalValues[k] = 1.0;
-                        }
-                    }
-                    matA_dirichlet_->replaceGlobalValues(gDof, indices, canonicalValues);
-                    matM_dirichlet_->replaceGlobalValues(gDof, indices, zeroValues);
-                    vecF_dirichlet_->replaceGlobalValue(gDof, 0, 0);
-                }
-
-                if (!check_myGlobalDof_on_boundary(gDof))
-                {
-                    size_t numDBCDofs = myDirichletDofs_.size();
-                    Teuchos::Array<int> indices(numDBCDofs, 0);
-                    Teuchos::Array<Real> zeroValues(numDBCDofs, 0);
-                    for (int k = 0; k < indices.size(); k++)
-                    {
-                        indices[k] = myDirichletDofs_[k];
-                    }
-                    matA_dirichlet_->replaceGlobalValues(gDof, indices, zeroValues);
-                    matM_dirichlet_->replaceGlobalValues(gDof, indices, zeroValues);
-                }
-            }
-        }
-        matA_dirichlet_->fillComplete();
-        matM_dirichlet_->fillComplete();
-    }
-
-    virtual void MatrixRemoveDBC(void)
-    {
-        // Apply Dirichlet conditions.
-        // zero out row and column, make matrix symmetric
-        Teuchos::RCP<Tpetra::Details::DefaultTypes::node_type> node = matA_->getNode();
-        matA_dirichlet_ = matA_->clone(node);
-        matM_dirichlet_ = matM_->clone(node);
-
-        matA_dirichlet_->resumeFill();
-        matM_dirichlet_->resumeFill();
-
-        int gDof;
-        for (int i = 0; i < numCells_; i++)
-        {
-            for (int j = 0; j < numLocalDofs_; j++)
-            {
-                gDof = cellDofs_(myCellIds_[i], j);
-                if (myUniqueMap_->isNodeGlobalElement(gDof) && check_myGlobalDof_on_boundary(gDof))
-                {
-                    size_t numRowEntries = matA_dirichlet_->getNumEntriesInGlobalRow(gDof);
-                    Teuchos::Array<int> indices(numRowEntries, 0);
-                    Teuchos::Array<Real> values(numRowEntries, 0);
-                    Teuchos::Array<Real> canonicalValues(numRowEntries, 0);
-                    Teuchos::Array<Real> zeroValues(numRowEntries, 0);
-                    matA_dirichlet_->getGlobalRowCopy(gDof, indices, values, numRowEntries);
-                    matM_dirichlet_->getGlobalRowCopy(gDof, indices, values, numRowEntries);
-                    for (int k = 0; k < indices.size(); k++)
-                    {
-                        if (indices[k] == gDof)
-                        {
-                            canonicalValues[k] = 1.0;
-                        }
-                    }
-                    matA_dirichlet_->replaceGlobalValues(gDof, indices, canonicalValues);
-                    matM_dirichlet_->replaceGlobalValues(gDof, indices, zeroValues);
-                }
-
-                if (!check_myGlobalDof_on_boundary(gDof))
-                {
-                    size_t numDBCDofs = myDirichletDofs_.size();
-                    Teuchos::Array<int> indices(numDBCDofs, 0);
-                    Teuchos::Array<Real> zeroValues(numDBCDofs, 0);
-                    for (int k = 0; k < indices.size(); k++)
-                    {
-                        indices[k] = myDirichletDofs_[k];
-                    }
-                    matA_dirichlet_->replaceGlobalValues(gDof, indices, zeroValues);
-                    matM_dirichlet_->replaceGlobalValues(gDof, indices, zeroValues);
-                }
-            }
-        }
-        matA_dirichlet_->fillComplete();
-        matM_dirichlet_->fillComplete();
-    }
-
-    virtual void VectorRemoveDBC(void)
-    {
-        // Apply Dirichlet conditions.
-        vecF_dirichlet_ = Teuchos::rcp(new Tpetra::MultiVector<>(matA_->getRangeMap(), 1, true));
-        Tpetra::deep_copy(*vecF_dirichlet_, *vecF_);
-
-        int gDof(0);
-        for (int i = 0; i < numCells_; i++)
-        {
-            for (int j = 0; j < numLocalDofs_; j++)
-            {
-                gDof = cellDofs_(myCellIds_[i], j);
-                if (myUniqueMap_->isNodeGlobalElement(gDof) && check_myGlobalDof_on_boundary(gDof))
-                {
-                    vecF_dirichlet_->replaceGlobalValue(gDof, 0, 0);
-                }
-            }
-        }
-    }
-    /*
-  virtual void GenerateTransposedMats() {
-    // Create matrix transposes.
-    Tpetra::RowMatrixTransposer<> transposerA(matA_dirichlet_);
-    Tpetra::RowMatrixTransposer<> transposerM(matM_dirichlet_);
-    matA_dirichlet_trans_ = transposerA.createTranspose();
-    matM_dirichlet_trans_ = transposerM.createTranspose();
-  }
-*/
-
-    virtual void ConstructSolvers(void)
-    {
-        // Construct solver using Amesos2 factory.
-        try
-        {
-            solverA_ = Amesos2::create<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>("KLU2", matA_dirichlet_);
-        }
-        catch (std::invalid_argument e)
-        {
-            std::cout << e.what() << std::endl;
-        }
-        solverA_->numericFactorization();
-    }
-
-    /*
-  virtual void ConstructAdjointSolvers() {
-    // Construct solver using Amesos2 factory.
-    try{
-      solverA_trans_ = Amesos2::create< Tpetra::CrsMatrix<>,Tpetra::MultiVector<> >("KLU2", matA_dirichlet_trans_);
-    } catch (std::invalid_argument e) {
-      std::cout << e.what() << std::endl;
-    }
-    solverA_trans_->numericFactorization();
-  }
-*/
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatA(const bool &transpose = false) const
-    {
-        if (transpose)
-        {
-            //return matA_dirichlet_trans_;
-            return matA_dirichlet_;
-        }
-        else
-        {
-            return matA_dirichlet_;
-        }
-    }
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatB(const bool &transpose = false) const
-    {
-        if (transpose)
-        {
-            //return matM_dirichlet_trans_;
-            return matM_dirichlet_;
-        }
-        else
-        {
-            return matM_dirichlet_;
-        }
-    }
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatM() const
-    {
-        return matM_;
-    }
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatR() const
-    {
-        return matM_;
-    }
-
-    Teuchos::RCP<Tpetra::MultiVector<>> getVecUd() const
-    {
-        return vecUd_;
-    }
-
-    Teuchos::RCP<Tpetra::MultiVector<>> getVecF() const
-    {
-        return vecF_dirichlet_;
-    }
-
-    Teuchos::RCP<Amesos2::Solver<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>> getSolver(const bool &transpose = false) const
-    {
-        if (transpose)
-        {
-            //return solverA_trans_;
-            return solverA_;
-        }
-        else
-        {
-            return solverA_;
-        }
-    }
-
-    virtual Real funcTarget(const Real &x1, const Real &x2) const { return 0.0; }
-
-    void printMeshData(std::ostream &outStream) const
-    {
-
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> nodesPtr = meshMgr_->getNodes();
-        Teuchos::RCP<Intrepid::FieldContainer<int>> cellToNodeMapPtr = meshMgr_->getCellToNodeMap();
-        Intrepid::FieldContainer<Real> &nodes = *nodesPtr;
-        Intrepid::FieldContainer<int> &cellToNodeMap = *cellToNodeMapPtr;
-        outStream << "Number of nodes = " << meshMgr_->getNumNodes() << std::endl;
-        outStream << "Number of cells = " << meshMgr_->getNumCells() << std::endl;
-        outStream << "Number of edges = " << meshMgr_->getNumEdges() << std::endl;
-        // Print mesh to file.
-        if ((myRank_ == 0))
-        {
-            std::ofstream meshfile;
-            meshfile.open("cell_to_node_quad.txt");
-            for (int i = 0; i < cellToNodeMap.dimension(0); ++i)
-            {
-                for (int j = 0; j < cellToNodeMap.dimension(1); ++j)
-                {
-                    meshfile << cellToNodeMap(i, j) << "  ";
-                }
-                meshfile << std::endl;
-            }
-            meshfile.close();
-
-            meshfile.open("cell_to_node_tri.txt");
-            for (int i = 0; i < cellToNodeMap.dimension(0); ++i)
-            {
-                for (int j = 0; j < 3; ++j)
-                {
-                    meshfile << cellToNodeMap(i, j) << "  ";
-                }
-                meshfile << std::endl;
-                for (int j = 2; j < 5; ++j)
-                {
-                    meshfile << cellToNodeMap(i, j % 4) << "  ";
-                }
-                meshfile << std::endl;
-            }
-            meshfile.close();
-
-            meshfile.open("nodes.txt");
-            meshfile.precision(16);
-            for (int i = 0; i < nodes.dimension(0); ++i)
-            {
-                for (int j = 0; j < nodes.dimension(1); ++j)
-                {
-                    meshfile << std::scientific << nodes(i, j) << "  ";
-                }
-                meshfile << std::endl;
-            }
-            meshfile.close();
-            /* This somewhat clunky output is for gnuplot.
-      meshfile.open("mesh.txt");
-      for (int i=0; i<cellToNodeMap.dimension(0); ++i) {
-        meshfile << nodes(cellToNodeMap(i,0), 0) << "  " << nodes(cellToNodeMap(i,0), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,1), 0) << "  " << nodes(cellToNodeMap(i,1), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,2), 0) << "  " << nodes(cellToNodeMap(i,2), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,3), 0) << "  " << nodes(cellToNodeMap(i,3), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,0), 0) << "  " << nodes(cellToNodeMap(i,0), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,1), 0) << "  " << nodes(cellToNodeMap(i,1), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,2), 0) << "  " << nodes(cellToNodeMap(i,2), 1) << std::endl;
-      }
-      meshfile.close();
-      */
-        } //myRank 0 print
-    }     // prinf function end
-
-    void outputTpetraData() const
-    {
-        Tpetra::MatrixMarket::Writer<Tpetra::CrsMatrix<>> matWriter;
-        matWriter.writeSparseFile("stiffness_mat", matA_);
-        matWriter.writeSparseFile("dirichlet_mat", matA_dirichlet_);
-        matWriter.writeSparseFile("mass_mat", matM_);
-        matWriter.writeDenseFile("Ud_vec", vecUd_);
-    }
-
-    void outputTpetraVector(const Teuchos::RCP<const Tpetra::MultiVector<>> &vec,
-                            const std::string &filename) const
-    {
-        Tpetra::MatrixMarket::Writer<Tpetra::CrsMatrix<>> vecWriter;
-        vecWriter.writeDenseFile(filename, vec);
-    }
-
-    // ACCESSOR FUNCTIONS
-    Teuchos::RCP<MeshManager<Real>> &GetMeshManager(void)
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(meshMgr_ == Teuchos::null, std::logic_error,
-                                   ">>> (PDE_FEM::GetMeshManager): MeshManager not initialized!");
-        return meshMgr_;
-    }
-
-    Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>> &GetBasisPtr(const int ind)
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(ind > spaceDim_ - 1 || ind < 0, std::logic_error,
-                                   ">>> (PDE_FEM::GetBasisPtr): ind out of bounds!");
-        TEUCHOS_TEST_FOR_EXCEPTION(basisPtrs_.size() == 0, std::logic_error,
-                                   ">>> (PDE_FEM::GetBasisPtr): BasisPntrs not initialized!");
-        return basisPtrs_[ind];
-    }
-
-    int GetBasisOrder(void) const
-    {
-        return basisOrder_;
-    }
-
-    int GetSpaceDim(void) const
-    {
-        return spaceDim_;
-    }
-
-    int GetNumCells(void) const
-    {
-        return numCells_;
-    }
-
-    int GetNumLocalDofs(void) const
-    {
-        return numLocalDofs_;
-    }
-
-    int GetNumCubPoints(void) const
-    {
-        return numCubPoints_;
-    }
-
-    int GetLocalFieldSize(void) const
-    {
-        return lfs_;
-    }
-
-}; // class PDE_FEM
-
-#endif
diff --git a/tlnos/src/TOOLS/bfsc_dof_mesh.hpp b/tlnos/src/TOOLS/bfsc_dof_mesh.hpp
deleted file mode 100644
index 29089d28..00000000
--- a/tlnos/src/TOOLS/bfsc_dof_mesh.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  DofManager.hpp
-    \brief Sets up data structures for the indexing of the global degrees
-           of freedom (Dof's).
-*/
-
-#include "Teuchos_ParameterList.hpp"
-#include "Intrepid_FieldContainer.hpp"
-
-template <class Real>
-class DofManager
-{
-
-    typedef Intrepid::FieldContainer<Real> FCR;
-    typedef Intrepid::FieldContainer<int> FCI;
-
-    enum FieldType
-    {
-        VELX,
-        VELY,
-        PRES
-    };
-
-    /* Backward-facing step geometry.
- 
-  ***************************************************
-  *        *           *                            *
-  *   3    *     4     *             5              *
-  *        *           *                            *
-  ********** * * * * * * * * * * * * * * * * * * * **
-           *     1     *             2              *
-           *           *                            *
-           ******************************************
-*/
-
-private:
-    Real channelH_; // channel height (height of regions 1+4)
-    Real channelW_; // channel width (width of regions 3+4+5)
-    Real stepH_;    // step height (height of region 1)
-    Real stepW_;    // step width (width of region 3)
-    Real observeW_; // width of observation region (width of region 1)
-
-    int nx1_;
-    int nx2_;
-    int nx3_;
-    int nx4_;
-    int nx5_;
-    int ny1_;
-    int ny2_;
-    int ny3_;
-    int ny4_;
-    int ny5_;
-
-    int ref_;
-
-    int numCells_;
-    int numNodes_;
-    int numEdges_;
-    int numMeshEntities_;
-
-    FCR meshNodes_;
-    FCI meshCellToNodeMap_;
-    FCI meshCellToEdgeMap_;
-
-    int numDofs_;
-    int numPres_;
-    int numVelX_;
-    int numVelY_;
-    int numLocalDofs_;
-    int numLocalPres_;
-    int numLocalVelX_;
-    int numLocalVelY_;
-
-    FCI dofArray_;
-    FCI cellDofs_;
-    FCI cellPres_;
-    FCI cellVelX_;
-    FCI cellVelY_;
-
-public:
-    DofManager(Teuchos::ParameterList &parlist)
-    {
-        // Geometry data.
-        channelH_ = parlist.sublist("Navier Stokes").get("Channel height", 1.0);
-        channelW_ = parlist.sublist("Navier Stokes").get("Channel width", 8.0);
-        stepH_ = parlist.sublist("Navier Stokes").get("Step height", 0.5);
-        stepW_ = parlist.sublist("Navier Stokes").get("Step width", 1.0);
-        observeW_ = parlist.sublist("Navier Stokes").get("Observation width", 3.0);
-        // Mesh data.
-        ref_ = parlist.sublist("Navier Stokes").get("Refinement level", 1);
-        nx1_ = parlist.sublist("Navier Stokes").get("Observation region NX", 4 * ref_);
-        ny1_ = parlist.sublist("Navier Stokes").get("Observation region NY", 5 * ref_);
-        nx2_ = parlist.sublist("Navier Stokes").get("Laminar flow region NX", 2 * ref_);
-        ny2_ = ny1_;
-        nx3_ = parlist.sublist("Navier Stokes").get("Inflow region NX", 1 * ref_);
-        ny3_ = parlist.sublist("Navier Stokes").get("Inflow region NY", 2 * ref_);
-        nx4_ = nx1_;
-        ny4_ = ny3_;
-        nx5_ = nx2_;
-        ny5_ = ny3_;
-        numCells_ = (nx1_ + nx2_) * ny1_ + (nx3_ + nx1_ + nx2_) * ny3_;
-        numNodes_ = (nx1_ + nx2_ + 1) * ny1_ + (nx3_ + nx1_ + nx2_ + 1) * (ny3_ + 1);
-        numEdges_ = (2 * (nx1_ + nx2_) + 1) * ny1_ + (2 * (nx3_ + nx1_ + nx2_) + 1) * ny3_ + (nx3_ + nx1_ + nx2_);
-        numMeshEntities_ = numCells_ + numNodes_ + numEdges_;
-        // Mesh and Dof data structures.
-        numLocalPres_ = 4;
-        numLocalVelX_ = 9;
-        numLocalVelY_ = 9;
-        numLocalDofs_ = numLocalPres_ + numLocalVelX_ + numLocalVelY_;
-        computeMeshNodes(meshNodes_);
-        computeMeshCellToNodeMap(meshCellToNodeMap_);
-        computeMeshCellToEdgeMap(meshCellToEdgeMap_);
-        computeDofArray(dofArray_, numDofs_);
-        computeCellDofs(cellDofs_, dofArray_, meshCellToNodeMap_, meshCellToEdgeMap_);
-        computeCellPres(cellPres_, cellDofs_);
-        computeCellVelX(cellVelX_, cellDofs_);
-        computeCellVelY(cellVelY_, cellDofs_);
-    }
-
-    void computeMeshNodes(FCR &nodes) const
-    {
-
-        Real dy1 = stepH_ / ny1_;
-        Real dy3 = (channelH_ - stepH_) / ny3_;
-        Real dx1 = observeW_ / nx1_;
-        Real dx2 = (channelW_ - stepW_ - observeW_) / nx2_;
-        Real dx3 = stepW_ / nx3_;
-        int nodeCt = 0;
-        nodes.resize(numNodes_, 2);
-
-        // bottom region
-        for (int j = 0; j < ny1_; ++j)
-        {
-            for (int i = 0; i <= nx1_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + i * dx1;
-                nodes(nodeCt, 1) = j * dy1;
-                ++nodeCt;
-            }
-            for (int i = 0; i < nx2_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + observeW_ + (i + 1) * dx2;
-                nodes(nodeCt, 1) = j * dy1;
-                ++nodeCt;
-            }
-        }
-
-        // top region
-        for (int j = 0; j <= ny3_; ++j)
-        {
-            for (int i = 0; i <= nx3_; ++i)
-            {
-                nodes(nodeCt, 0) = i * dx3;
-                nodes(nodeCt, 1) = stepH_ + j * dy3;
-                ++nodeCt;
-            }
-            for (int i = 0; i < nx1_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + (i + 1) * dx1;
-                nodes(nodeCt, 1) = stepH_ + j * dy3;
-                ++nodeCt;
-            }
-            for (int i = 0; i < nx2_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + observeW_ + (i + 1) * dx2;
-                nodes(nodeCt, 1) = stepH_ + j * dy3;
-                ++nodeCt;
-            }
-        }
-
-    } // computeMeshNodes
-
-    void computeMeshCellToNodeMap(FCI &ctn)
-    {
-
-        int cellCt = 0;
-        ctn.resize(numCells_, 4);
-
-        // bottom region
-        for (int j = 0; j < ny1_ - 1; ++j)
-        {
-            for (int i = 0; i < nx1_ + nx2_; ++i)
-            {
-                ctn(cellCt, 0) = j * (nx1_ + nx2_ + 1) + i;
-                ctn(cellCt, 1) = j * (nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 2) = (j + 1) * (nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 3) = (j + 1) * (nx1_ + nx2_ + 1) + i;
-                ++cellCt;
-            }
-        }
-
-        // transition region
-        for (int i = 0; i < nx1_ + nx2_; ++i)
-        {
-            ctn(cellCt, 0) = (ny1_ - 1) * (nx1_ + nx2_ + 1) + i;
-            ctn(cellCt, 1) = (ny1_ - 1) * (nx1_ + nx2_ + 1) + (i + 1);
-            ctn(cellCt, 2) = ny1_ * (nx1_ + nx2_ + 1) + nx3_ + (i + 1);
-            ctn(cellCt, 3) = ny1_ * (nx1_ + nx2_ + 1) + nx3_ + i;
-            ++cellCt;
-        }
-
-        // top region
-        for (int j = 0; j < ny3_; ++j)
-        {
-            for (int i = 0; i < nx3_ + nx1_ + nx2_; ++i)
-            {
-                ctn(cellCt, 0) = ny1_ * (nx1_ + nx2_ + 1) + j * (nx3_ + nx1_ + nx2_ + 1) + i;
-                ctn(cellCt, 1) = ny1_ * (nx1_ + nx2_ + 1) + j * (nx3_ + nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 2) = ny1_ * (nx1_ + nx2_ + 1) + (j + 1) * (nx3_ + nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 3) = ny1_ * (nx1_ + nx2_ + 1) + (j + 1) * (nx3_ + nx1_ + nx2_ + 1) + i;
-                ++cellCt;
-            }
-        }
-
-    } // computeMeshCellToNodeMap
-
-    void computeMeshCellToEdgeMap(FCI &cte)
-    {
-
-        int cellCt = 0;
-        cte.resize(numCells_, 4);
-
-        // bottom region
-        for (int j = 0; j < ny1_ - 1; ++j)
-        {
-            for (int i = 0; i < nx1_ + nx2_; ++i)
-            {
-                cte(cellCt, 0) = j * (2 * (nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 1) = j * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + (i + 1);
-                cte(cellCt, 2) = (j + 1) * (2 * (nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 3) = j * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + i;
-                ++cellCt;
-            }
-        }
-
-        // transition region
-        for (int i = 0; i < nx1_ + nx2_; ++i)
-        {
-            cte(cellCt, 0) = (ny1_ - 1) * (2 * (nx1_ + nx2_) + 1) + i;
-            cte(cellCt, 1) = (ny1_ - 1) * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + (i + 1);
-            cte(cellCt, 2) = ny1_ * (2 * (nx1_ + nx2_) + 1) + nx3_ + i;
-            cte(cellCt, 3) = (ny1_ - 1) * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + i;
-            ++cellCt;
-        }
-
-        // top region
-        for (int j = 0; j < ny3_; ++j)
-        {
-            for (int i = 0; i < nx3_ + nx1_ + nx2_; ++i)
-            {
-                cte(cellCt, 0) = ny1_ * (2 * (nx1_ + nx2_) + 1) + j * (2 * (nx3_ + nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 1) = ny1_ * (2 * (nx1_ + nx2_) + 1) + j * (2 * (nx3_ + nx1_ + nx2_) + 1) + (nx3_ + nx1_ + nx2_) + (i + 1);
-                cte(cellCt, 2) = ny1_ * (2 * (nx1_ + nx2_) + 1) + (j + 1) * (2 * (nx3_ + nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 3) = ny1_ * (2 * (nx1_ + nx2_) + 1) + j * (2 * (nx3_ + nx1_ + nx2_) + 1) + (nx3_ + nx1_ + nx2_) + i;
-                ++cellCt;
-            }
-        }
-
-    } // computeMeshCellToEdgeMap
-
-    void computeDofArray(FCI &dof, int &numDofs, const int &globOrder = 1)
-    {
-
-        dof.resize(numMeshEntities_, 3);
-        int dofCt = -1;
-
-        if (globOrder == 1)
-        {
-            //
-            // This is the independent node id --> edge id --> cell id ordering:
-            //
-            //     VelX VelY Pres
-            //     --------------
-            // n1  1    1    1
-            // n2  1    1    1
-            // ...
-            // e1  1    1    0
-            // e2  1    1    0
-            // ...
-            // c1  1    1    0
-            // c2  1    1    0
-            // ...
-            //
-            for (int i = 0; i < numNodes_; ++i)
-            {
-                // dof(i, 1) --> 1 Velocity X
-                // dof(i, 1) --> 1 Velocity Y
-                // dof(i, 2) --> 1 Pressure
-                dof(i, 0) = ++dofCt; // VelX
-                dof(i, 1) = ++dofCt; // VelY
-                dof(i, 2) = ++dofCt; // Pres
-            }
-            for (int i = numNodes_; i < numNodes_ + numEdges_; ++i)
-            {
-                // dof(i, 1) --> 1 Velocity X
-                // dof(i, 1) --> 1 Velocity Y
-                // dof(i, 2) --> 0 Pressure
-                dof(i, 0) = ++dofCt; // VelX
-                dof(i, 1) = ++dofCt; // VelY
-                dof(i, 2) = -1;
-            }
-            for (int i = numNodes_ + numEdges_; i < numMeshEntities_; ++i)
-            {
-                // dof(i, 1) --> 1 Velocity X
-                // dof(i, 1) --> 1 Velocity Y
-                // dof(i, 2) --> 0 Pressure
-                dof(i, 0) = ++dofCt; // VelX
-                dof(i, 1) = ++dofCt; // VelY
-                dof(i, 2) = -1;
-            }
-        }
-        else if (globOrder == 2)
-        {
-            //
-            // This is the cell-driven cell node id --> cell edge id --> cell id ordering:
-            //
-            //         VelX VelY Pres
-            //         --------------
-            // cell 1
-            // n1      1    1    1
-            // n2      1    1    1
-            // ...
-            // e1      1    1    0
-            // e2      1    1    0
-            // ...
-            // c1      1    1    0
-            // c2      1    1    0
-            // ...
-            // cell 2
-            // ...
-            // (unique ids only, of course)
-            //
-            // TO BE IMPLEMENTED!!!
-        }
-        numDofs = dofCt + 1;
-    } // computeDofArray
-
-    void computeCellDofs(FCI &cdofs, const FCI &dofs, const FCI &ctn, const FCI &cte)
-    {
-
-        cdofs.resize(numCells_, numLocalDofs_);
-
-        for (int i = 0; i < numCells_; ++i)
-        {
-            int ct = -1;
-            int gid0 = ctn(i, 0);
-            int gid1 = ctn(i, 1);
-            int gid2 = ctn(i, 2);
-            int gid3 = ctn(i, 3);
-            int gid4 = numNodes_ + cte(i, 0);
-            int gid5 = numNodes_ + cte(i, 1);
-            int gid6 = numNodes_ + cte(i, 2);
-            int gid7 = numNodes_ + cte(i, 3);
-            int gid8 = numNodes_ + numEdges_ + i;
-            cdofs(i, ++ct) = dofs(gid0, 0);
-            cdofs(i, ++ct) = dofs(gid0, 1);
-            cdofs(i, ++ct) = dofs(gid0, 2);
-            cdofs(i, ++ct) = dofs(gid1, 0);
-            cdofs(i, ++ct) = dofs(gid1, 1);
-            cdofs(i, ++ct) = dofs(gid1, 2);
-            cdofs(i, ++ct) = dofs(gid2, 0);
-            cdofs(i, ++ct) = dofs(gid2, 1);
-            cdofs(i, ++ct) = dofs(gid2, 2);
-            cdofs(i, ++ct) = dofs(gid3, 0);
-            cdofs(i, ++ct) = dofs(gid3, 1);
-            cdofs(i, ++ct) = dofs(gid3, 2);
-            cdofs(i, ++ct) = dofs(gid4, 0);
-            cdofs(i, ++ct) = dofs(gid4, 1);
-            cdofs(i, ++ct) = dofs(gid5, 0);
-            cdofs(i, ++ct) = dofs(gid5, 1);
-            cdofs(i, ++ct) = dofs(gid6, 0);
-            cdofs(i, ++ct) = dofs(gid6, 1);
-            cdofs(i, ++ct) = dofs(gid7, 0);
-            cdofs(i, ++ct) = dofs(gid7, 1);
-            cdofs(i, ++ct) = dofs(gid8, 0);
-            cdofs(i, ++ct) = dofs(gid8, 1);
-        }
-    } // computeCellDofs
-
-    void computeCellPres(FCI &cpres, const FCI &cdofs)
-    {
-        cpres.resize(numCells_, numLocalPres_);
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalPres_; ++j)
-            {
-                cpres(i, j) = cdofs(i, j * 3 + 2);
-            }
-        }
-    } // computeCellPres
-
-    void computeCellVelX(FCI &cvelx, const FCI &cdofs)
-    {
-        cvelx.resize(numCells_, numLocalVelX_);
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalPres_; ++j)
-            {
-                cvelx(i, j) = cdofs(i, j * 3);
-            }
-            for (int k = 0; k < numLocalVelX_ - numLocalPres_; ++k)
-            {
-                cvelx(i, k + numLocalPres_) = cdofs(i, 4 * 3 + k * 2);
-            }
-        }
-    } // computeCellVelX
-
-    void computeCellVelY(FCI &cvely, const FCI &cdofs)
-    {
-        cvely.resize(numCells_, numLocalVelY_);
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalPres_; ++j)
-            {
-                cvely(i, j) = cdofs(i, j * 3 + 1);
-            }
-            for (int k = 0; k < numLocalVelY_ - numLocalPres_; ++k)
-            {
-                cvely(i, k + numLocalPres_) = cdofs(i, 4 * 3 + k * 2 + 1);
-            }
-        }
-    } // computeCellVelY
-
-    std::vector<int> &getCellDofs(const int &cid, const FieldType &ft) const
-    {
-        std::vector<int> dofVec;
-        int nPres = 4;
-        int nVelX = 9;
-        int nVelY = 9;
-        switch (ft)
-        {
-        case VELX:
-            break;
-
-        case VELY:
-            break;
-
-        case PRES:
-            for (int i = 0; i < nPres; ++i)
-            {
-                dofVec.push_back(cellDofs_(cid));
-            }
-            break;
-        }
-        return dofVec;
-    } // getDofArray
-
-    void setRefinementLevel(const int &refLevel)
-    {
-        ref_ = refLevel;
-    } // setRefinementLevel
-
-    int getNumCells() const
-    {
-        return numCells_;
-    } // getNumCells
-
-    int getNumNodes() const
-    {
-        return numNodes_;
-    } // getNumNodes
-
-    int getNumEdges() const
-    {
-        return numEdges_;
-    } // getNumEdges
-
-    const FCR &getMeshNodes() const
-    {
-        return meshNodes_;
-    } // getMeshNodes
-
-    const FCI &getMeshCellToNodeMap() const
-    {
-        return meshCellToNodeMap_;
-    } // getMeshCellToNodeMap
-
-    const FCI &getMeshCellToEdgeMap() const
-    {
-        return meshCellToEdgeMap_;
-    } // getMeshCellToEdgeMap
-
-    int getNumDofs() const
-    {
-        return numDofs_;
-    } // getNumDofs
-
-    const FCI &getDofArray() const
-    {
-        return dofArray_;
-    } // getDofArray
-
-    const FCI &getCellDofs() const
-    {
-        return cellDofs_;
-    } // getCellDofs
-
-    const FCI &getCellPres() const
-    {
-        return cellPres_;
-    } // getCellPres
-
-    const FCI &getCellVelX() const
-    {
-        return cellVelX_;
-    } // getCellVelX
-
-    const FCI &getCellVelY() const
-    {
-        return cellVelY_;
-    } // getCellVelY
-};
diff --git a/tlnos/src/TOOLS/dofmanager.hpp b/tlnos/src/TOOLS/dofmanager.hpp
deleted file mode 100644
index 6fb62a89..00000000
--- a/tlnos/src/TOOLS/dofmanager.hpp
+++ /dev/null
@@ -1,419 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  dofmanager.hpp
-    \brief Given a mesh with connectivity information, sets up data
-           structures for the indexing of the global degrees of
-           freedom (Dofs).
-*/
-
-#ifndef DOFMANAGER_HPP
-#define DOFMANAGER_HPP
-
-#include "Teuchos_ParameterList.hpp"
-#include "Intrepid_FieldContainer.hpp"
-#include "Intrepid_Basis.hpp"
-#include "meshmanager.hpp"
-
-template <class Real>
-class DofManager
-{
-
-private:
-    Teuchos::RCP<MeshManager<Real>> meshManager_;
-    std::vector<Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>>> intrepidBasis_;
-
-    int numCells_; // number of mesh cells
-    int numNodes_; // number of mesh nodes
-    int numEdges_; // number of mesh edges
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToNodeMap_;
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToEdgeMap_;
-
-    // Local dof information.
-    int numBases_;                               // number of bases (fields)
-    int numLocalNodes_;                          // number of nodes in the basic cell topology
-    int numLocalEdges_;                          // number of edges in the basic cell topology
-    int numLocalFaces_;                          // number of faces in the basic cell topology
-    int numLocalNodeDofs_;                       // number of local (single-cell) node dofs for all bases
-    int numLocalEdgeDofs_;                       // number of local (single-cell) edge dofs for all bases
-    int numLocalFaceDofs_;                       // number of local (single-cell) face dofs for all bases
-    int numLocalDofs_;                           // total number of local (single-cell) face dofs for all bases
-    std::vector<int> numDofsPerNode_;            // number of dofs per node in a cell (assumed constant), per basis
-    std::vector<int> numDofsPerEdge_;            // number of dofs per edge in a cell (assumed constant), per basis
-    std::vector<int> numDofsPerFace_;            // number of dofs per face in a cell (assumed constant), per basis
-    std::vector<std::vector<int>> fieldPattern_; // local indexing of fields into the array [0,1,...,numLocalDofs-1];
-                                                 // contains [number of bases] index vectors, where each index vector
-                                                 // is of size [basis cardinality]
-    // Global dof information.
-    int numNodeDofs_; // number of global node dofs
-    int numEdgeDofs_; // number of global edge dofs
-    int numFaceDofs_; // number of global face dofs
-    int numDofs_;     // total number of global dofs
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> nodeDofs_; // global node dofs, of size [numNodes_ x numLocalNodeDofs_]
-    Teuchos::RCP<Intrepid::FieldContainer<int>> edgeDofs_; // global edge dofs, of size [numEdges_ x numLocalEdgeDofs_]
-    Teuchos::RCP<Intrepid::FieldContainer<int>> faceDofs_; // global face dofs, of size [numFaces_ x numLocalFaceDofs_]
-    Teuchos::RCP<Intrepid::FieldContainer<int>> cellDofs_; // global cell dofs, of size [numCells_ x numLocalDofs_];
-                                                           // ordered by subcell (node, then edge, then face) and basis index
-
-    std::vector<Teuchos::RCP<Intrepid::FieldContainer<int>>> fieldDofs_; // global cell dofs, indexed by field/basis, of size [numCells_ x basis cardinality];
-                                                                         // ordered by subcell (node, then edge, then face)
-
-public:
-    DofManager(Teuchos::RCP<MeshManager<Real>> &meshManager,
-               std::vector<Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>>> &intrepidBasis)
-    {
-
-        meshManager_ = meshManager;
-        intrepidBasis_ = intrepidBasis;
-        numCells_ = meshManager_->getNumCells();
-        numNodes_ = meshManager_->getNumNodes();
-        numEdges_ = meshManager_->getNumEdges();
-
-        // Mesh data structures.
-        meshCellToNodeMap_ = meshManager_->getCellToNodeMap();
-        meshCellToEdgeMap_ = meshManager_->getCellToEdgeMap();
-
-        // Local degree-of-freedom footprint.
-        numBases_ = static_cast<int>(intrepidBasis_.size());
-        numDofsPerNode_.resize(numBases_, 0);
-        numDofsPerEdge_.resize(numBases_, 0);
-        numDofsPerFace_.resize(numBases_, 0);
-        numLocalDofs_ = 0;
-        for (int i = 0; i < numBases_; ++i)
-        {
-            std::vector<std::vector<int>> dofTags = (intrepidBasis_[i])->getAllDofTags();
-            for (int j = 0; j < (intrepidBasis_[i])->getCardinality(); j++)
-            {
-                if (dofTags[j][0] == 0)
-                {
-                    numDofsPerNode_[i] = dofTags[j][3];
-                }
-                else if (dofTags[j][0] == 1)
-                {
-                    numDofsPerEdge_[i] = dofTags[j][3];
-                }
-                else if (dofTags[j][0] == 2)
-                {
-                    numDofsPerFace_[i] = dofTags[j][3];
-                }
-            }
-            numLocalDofs_ += (intrepidBasis_[i])->getCardinality();
-        }
-        numLocalNodeDofs_ = 0;
-        numLocalEdgeDofs_ = 0;
-        numLocalFaceDofs_ = 0;
-        for (int i = 0; i < numBases_; ++i)
-        {
-            numLocalNodeDofs_ += numDofsPerNode_[i];
-            numLocalEdgeDofs_ += numDofsPerEdge_[i];
-            numLocalFaceDofs_ += numDofsPerFace_[i];
-        }
-        numLocalNodes_ = static_cast<int>((intrepidBasis_[0])->getBaseCellTopology().getVertexCount());
-        numLocalEdges_ = static_cast<int>((intrepidBasis_[0])->getBaseCellTopology().getEdgeCount());
-        numLocalFaces_ = 1;
-        computeFieldPattern();
-
-        // Global data structures.
-        computeDofArrays();
-        computeCellDofs();
-        computeFieldDofs();
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getNodeDofs() const
-    {
-        return nodeDofs_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getEdgeDofs() const
-    {
-        return edgeDofs_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getFaceDofs() const
-    {
-        return faceDofs_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getCellDofs() const
-    {
-        return cellDofs_;
-    }
-
-    std::vector<Teuchos::RCP<Intrepid::FieldContainer<int>>> getFieldDofs() const
-    {
-        return fieldDofs_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getFieldDofs(const int &fieldNumber) const
-    {
-        return fieldDofs_[fieldNumber];
-    }
-
-    int getNumNodeDofs() const
-    {
-        return numNodeDofs_;
-    }
-
-    int getNumEdgeDofs() const
-    {
-        return numEdgeDofs_;
-    }
-
-    int getNumFaceDofs() const
-    {
-        return numFaceDofs_;
-    }
-
-    int getNumDofs() const
-    {
-        return numDofs_;
-    }
-
-    int getNumFields() const
-    {
-        return numBases_;
-    }
-
-    int getLocalFieldSize(const int &fieldNumber) const
-    {
-        return (intrepidBasis_[fieldNumber])->getCardinality();
-    }
-
-    std::vector<std::vector<int>> getFieldPattern() const
-    {
-        return fieldPattern_;
-    }
-
-    std::vector<int> getFieldPattern(const int &fieldNumber) const
-    {
-        return fieldPattern_[fieldNumber];
-    }
-
-private:
-    void computeDofArrays()
-    {
-
-        nodeDofs_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numNodes_, numLocalNodeDofs_));
-        edgeDofs_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numEdges_, numLocalEdgeDofs_));
-        faceDofs_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, numLocalFaceDofs_));
-
-        Intrepid::FieldContainer<int> &nodeDofs = *nodeDofs_;
-        Intrepid::FieldContainer<int> &edgeDofs = *edgeDofs_;
-        Intrepid::FieldContainer<int> &faceDofs = *faceDofs_;
-
-        int dofCt = -1;
-
-        //
-        // This is the independent node id --> edge id --> cell id ordering.
-        // For example, for a Q2-Q2-Q1 basis (Taylor-Hood), we would have:
-        //
-        //     Q2   Q2   Q1
-        //     --------------
-        // n1  1    1    1
-        // n2  1    1    1
-        // ...
-        // e1  1    1    0
-        // e2  1    1    0
-        // ...
-        // c1  1    1    0
-        // c2  1    1    0
-        // ...
-        //
-
-        // count node dofs
-        for (int i = 0; i < numNodes_; ++i)
-        {
-            int locNodeCt = -1;
-            for (int j = 0; j < numBases_; ++j)
-            {
-                for (int k = 0; k < numDofsPerNode_[j]; ++k)
-                {
-                    nodeDofs(i, ++locNodeCt) = ++dofCt;
-                }
-            }
-        }
-        numNodeDofs_ = dofCt + 1;
-
-        // count edge dofs
-        for (int i = 0; i < numEdges_; ++i)
-        {
-            int locEdgeCt = -1;
-            for (int j = 0; j < numBases_; ++j)
-            {
-                for (int k = 0; k < numDofsPerEdge_[j]; ++k)
-                {
-                    edgeDofs(i, ++locEdgeCt) = ++dofCt;
-                }
-            }
-        }
-        numEdgeDofs_ = dofCt + 1 - numNodeDofs_;
-
-        // count face dofs
-        for (int i = 0; i < numCells_; ++i)
-        {
-            int locFaceCt = -1;
-            for (int j = 0; j < numBases_; ++j)
-            {
-                for (int k = 0; k < numDofsPerFace_[j]; ++k)
-                {
-                    faceDofs(i, ++locFaceCt) = ++dofCt;
-                }
-            }
-        }
-        numFaceDofs_ = dofCt + 1 - numNodeDofs_ - numEdgeDofs_;
-
-        numDofs_ = numNodeDofs_ + numEdgeDofs_ + numFaceDofs_;
-
-    } // computeDofArrays
-
-    void computeCellDofs()
-    {
-
-        cellDofs_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, numLocalDofs_));
-
-        // Grab object references, for easier indexing.
-        Intrepid::FieldContainer<int> &cdofs = *cellDofs_;
-        Intrepid::FieldContainer<int> &nodeDofs = *nodeDofs_;
-        Intrepid::FieldContainer<int> &edgeDofs = *edgeDofs_;
-        Intrepid::FieldContainer<int> &faceDofs = *faceDofs_;
-        Intrepid::FieldContainer<int> &ctn = *meshCellToNodeMap_;
-        Intrepid::FieldContainer<int> &cte = *meshCellToEdgeMap_;
-
-        for (int i = 0; i < numCells_; ++i)
-        {
-            int ct = -1;
-            for (int j = 0; j < numLocalNodes_; ++j)
-            {
-                for (int k = 0; k < numLocalNodeDofs_; ++k)
-                {
-                    cdofs(i, ++ct) = nodeDofs(ctn(i, j), k);
-                }
-            }
-            for (int j = 0; j < numLocalEdges_; ++j)
-            {
-                for (int k = 0; k < numLocalEdgeDofs_; ++k)
-                {
-                    cdofs(i, ++ct) = edgeDofs(cte(i, j), k);
-                }
-            }
-            for (int j = 0; j < numLocalFaces_; ++j)
-            {
-                for (int k = 0; k < numLocalFaceDofs_; ++k)
-                {
-                    cdofs(i, ++ct) = faceDofs(i, k);
-                }
-            }
-        }
-    } // computeCellDofs
-
-    void computeFieldPattern()
-    {
-
-        fieldPattern_.resize(numBases_);
-
-        int dofCt = -1;
-
-        // count node dofs
-        for (int i = 0; i < numLocalNodes_; ++i)
-        {
-            for (int j = 0; j < numBases_; ++j)
-            {
-                for (int k = 0; k < numDofsPerNode_[j]; ++k)
-                {
-                    fieldPattern_[j].push_back(++dofCt);
-                }
-            }
-        }
-
-        // count edge dofs
-        for (int i = 0; i < numLocalEdges_; ++i)
-        {
-            for (int j = 0; j < numBases_; ++j)
-            {
-                for (int k = 0; k < numDofsPerEdge_[j]; ++k)
-                {
-                    fieldPattern_[j].push_back(++dofCt);
-                }
-            }
-        }
-
-        // count face dofs
-        for (int i = 0; i < numLocalFaces_; ++i)
-        {
-            for (int j = 0; j < numBases_; ++j)
-            {
-                for (int k = 0; k < numDofsPerFace_[j]; ++k)
-                {
-                    fieldPattern_[j].push_back(++dofCt);
-                }
-            }
-        }
-
-    } // computeFieldPattern
-
-    void computeFieldDofs()
-    {
-
-        fieldDofs_.resize(numBases_);
-
-        Intrepid::FieldContainer<int> &cdofs = *cellDofs_;
-
-        for (int fieldNum = 0; fieldNum < numBases_; ++fieldNum)
-        {
-            int basisCard = intrepidBasis_[fieldNum]->getCardinality();
-            fieldDofs_[fieldNum] = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, basisCard));
-            Intrepid::FieldContainer<int> &fdofs = *(fieldDofs_[fieldNum]);
-            for (int i = 0; i < numCells_; ++i)
-            {
-                for (int j = 0; j < basisCard; ++j)
-                {
-                    fdofs(i, j) = cdofs(i, fieldPattern_[fieldNum][j]);
-                }
-            }
-        }
-    } // computeFieldDofs
-};
-
-#endif
diff --git a/tlnos/src/TOOLS/elasticity.hpp b/tlnos/src/TOOLS/elasticity.hpp
deleted file mode 100644
index 47c7c4f4..00000000
--- a/tlnos/src/TOOLS/elasticity.hpp
+++ /dev/null
@@ -1,947 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-#ifndef ROL_PDEOPT_ELASTICITY_H
-#define ROL_PDEOPT_ELASTICITY_H
-
-#include "Intrepid_DefaultCubatureFactory.hpp"
-#include "Intrepid_HGRAD_QUAD_C2_FEM.hpp"
-#include "Intrepid_HGRAD_QUAD_C1_FEM.hpp"
-#include "../TOOLS/PDE_FEM.hpp"
-#include "../TOOLS/materials.hpp"
-
-#include "ROL_Types.hpp"
-
-template <class Real>
-class Elasticity : public PDE_FEM<Real>
-{
-protected:
-    Real E_;
-    Real poissonR_;
-    bool planeStrain_;
-
-    // dbc cases
-    int DBC_Case_;
-    // parametrized loads
-    std::vector<Real> param_;
-    // geometry and loads information
-    Real xmin_;
-    Real ymin_;
-    Real xmax_;
-    Real ymax_;
-    // body force
-    Real bodyforce_Magnitude_;
-    Real bodyforce_Angle_;
-    // traction
-    int traction_Side_;
-    Real traction_Magnitude_;
-    Real traction_Angle_;
-    // point load
-    Real pointload_loc_x_;
-    Real pointload_loc_y_;
-    Real pointload_Magnitude_;
-    Real pointload_Angle_;
-    std::vector<int> my_pointload_bc_;
-    //
-
-    std::vector<Teuchos::RCP<Material<Real>>> material_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> BMat_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> BMatWeighted_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> CBMat_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> NMat_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> NMatWeighted_;
-    int materialTensorDim_;
-
-    // for boundary integration of traction force
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> NMatWeighted_Side;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cub_points_side;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cub_weights_side;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cub_points_side_refcell;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cub_points_side_physical;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> jacobian_side_refcell;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> jacobian_det_side_refcell;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> weighted_measure_side_refcell;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> value_of_basis_at_cub_points_side_refcell;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> transformed_value_of_basis_at_cub_points_side_refcell;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> weighted_transformed_value_of_basis_at_cub_points_side_refcell;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> tractions;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> tractions_on_dofs;
-
-    bool verbose_;
-
-    Real DegreesToRadians(const Real deg) const
-    {
-        return deg * static_cast<Real>(M_PI) / static_cast<Real>(180);
-    }
-
-    void PrintLoadingInformation(void)
-    {
-        if (verbose_)
-        {
-            *this->outStream_ << std::endl
-                              << std::string(80, '-') << std::endl;
-            *this->outStream_ << std::string(20, ' ') << "LOADING INFORMATION" << std::endl;
-            *this->outStream_ << std::string(80, '-') << std::endl;
-            *this->outStream_ << "  Volumetric Force Magnitude: " << param_[0] << std::endl;
-            *this->outStream_ << "  Volumetric Force Angle:     " << param_[1] << std::endl;
-            *this->outStream_ << "  Traction Side:              " << traction_Side_ << std::endl;
-            *this->outStream_ << "  Traction Force Magnitude:   " << param_[2] << std::endl;
-            *this->outStream_ << "  Traction Force Angle:       " << param_[3] << std::endl;
-            *this->outStream_ << "  Point Force Location:       "
-                              << "(" << pointload_loc_x_
-                              << ", " << pointload_loc_y_ << ")" << std::endl;
-            *this->outStream_ << "  Point Force Magnitude:      " << param_[4] << std::endl;
-            *this->outStream_ << "  Point Force Angle:          " << param_[5] << std::endl;
-            *this->outStream_ << std::string(80, '-') << std::endl
-                              << std::endl;
-        }
-    }
-    //
-public:
-    Elasticity() {}
-    virtual ~Elasticity() {}
-
-    virtual void Initialize(const Teuchos::RCP<const Teuchos::Comm<int>> &comm,
-                            const Teuchos::RCP<Teuchos::ParameterList> &parlist,
-                            const Teuchos::RCP<std::ostream> &outStream)
-    {
-        /****************************************************************************/
-        /*** Initialize the base PDE_FEM class. *************************************/
-        /****************************************************************************/
-        PDE_FEM<Real>::Initialize(comm, parlist, outStream);
-
-        /****************************************************************************/
-        /*** Grab the elasticity information. ***************************************/
-        /****************************************************************************/
-        Teuchos::ParameterList &Elist = parlist->sublist("Elasticity");
-        planeStrain_ = Elist.get<bool>("Plane Strain");
-        E_ = Elist.get<Real>("Young's Modulus");
-        poissonR_ = Elist.get<Real>("Poisson Ratio");
-        Teuchos::ParameterList &Glist = parlist->sublist("Geometry");
-        xmin_ = Glist.get<Real>("X0");
-        ymin_ = Glist.get<Real>("Y0");
-        xmax_ = Glist.get<Real>("Width");
-        ymax_ = Glist.get<Real>("Height");
-        // DBC cases
-        DBC_Case_ = Elist.get<int>("DBC Case");
-
-        /****************************************************************************/
-        /*** Initialize mesh / finite element fields / degree-of-freedom manager. ***/
-        /****************************************************************************/
-        Teuchos::ParameterList &Plist = parlist->sublist("PDE FEM");
-        verbose_ = Plist.get("Verbose Output", false);
-        int basisOrder = Plist.get<int>("Order of FE Discretization");
-        Teuchos::RCP<MeshManager<Real>> meshMgr = Teuchos::rcp(new MeshManager_Rectangle<Real>(*parlist));
-        int spaceDim = 2;
-        std::vector<Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>>> basisPtrs(spaceDim, Teuchos::null);
-        for (int k = 0; k < spaceDim; ++k)
-        {
-            if (basisOrder == 1)
-            {
-                basisPtrs[k] = Teuchos::rcp(new Intrepid::Basis_HGRAD_QUAD_C1_FEM<Real, Intrepid::FieldContainer<Real>>);
-            }
-            else if (basisOrder == 2)
-            {
-                basisPtrs[k] = Teuchos::rcp(new Intrepid::Basis_HGRAD_QUAD_C2_FEM<Real, Intrepid::FieldContainer<Real>>);
-            }
-            else
-            {
-                TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error,
-                                           ">>> (Elasticity::Initialize): Basis Order is out of bounds!");
-            }
-        }
-        PDE_FEM<Real>::SetDiscretization(meshMgr, basisPtrs);
-        PDE_FEM<Real>::printMeshData(*outStream);
-    }
-
-    // for rectangular domain
-    virtual void process_loading_information(const Teuchos::RCP<Teuchos::ParameterList> &parlist)
-    {
-        Teuchos::ParameterList &Elist = parlist->sublist("Elasticity");
-        bodyforce_Magnitude_ = Elist.get<Real>("Bodyforce Magnitude");
-        bodyforce_Angle_ = Elist.get<Real>("Bodyforce Angle");
-        traction_Side_ = Elist.get<int>("Traction Side");
-        traction_Magnitude_ = Elist.get<Real>("Traction Magnitude");
-        traction_Angle_ = Elist.get<Real>("Traction Angle");
-        pointload_loc_x_ = Elist.get<Real>("Pointload Location X");
-        pointload_loc_y_ = Elist.get<Real>("Pointload Location Y");
-        pointload_Magnitude_ = Elist.get<Real>("Pointload Magnitude");
-        pointload_Angle_ = Elist.get<Real>("Pointload Angle");
-
-        param_.clear();
-        param_.resize(6);
-        param_[0] = bodyforce_Magnitude_;
-        param_[1] = bodyforce_Angle_;
-        param_[2] = traction_Magnitude_;
-        param_[3] = traction_Angle_;
-        param_[4] = pointload_Magnitude_;
-        param_[5] = pointload_Angle_;
-
-        PrintLoadingInformation();
-
-        this->my_nbc_.push_back(traction_Side_);
-
-        // calculate the distance of the point load to the boundary
-        // and move it to the closesd boundary point only works for
-        // rectangular domain first make sure the point load is in
-        // the domain
-        TEUCHOS_TEST_FOR_EXCEPTION(pointload_loc_x_ < xmin_, std::invalid_argument,
-                                   ">>> (elasticity::process_loading_information): x location of point load is less than xmin!");
-        TEUCHOS_TEST_FOR_EXCEPTION(pointload_loc_x_ > xmax_, std::invalid_argument,
-                                   ">>> (elasticity::process_loading_information): x location of point load is greater than xmax!");
-        TEUCHOS_TEST_FOR_EXCEPTION(pointload_loc_y_ < ymin_, std::invalid_argument,
-                                   ">>> (elasticity::process_loading_information): y location of point load is less than ymin!");
-        TEUCHOS_TEST_FOR_EXCEPTION(pointload_loc_y_ > ymax_, std::invalid_argument,
-                                   ">>> (elasticity::process_loading_information): y location of point load is greater than ymax!");
-        //
-        Real distx1 = std::abs(pointload_loc_x_ - xmin_);
-        Real distx2 = std::abs(pointload_loc_x_ - xmax_);
-        Real movx = std::min(distx1, distx2);
-        Real disty1 = std::abs(pointload_loc_y_ - ymin_);
-        Real disty2 = std::abs(pointload_loc_y_ - ymax_);
-        Real movy = std::min(disty1, disty2);
-        // slight perturbation
-        // pointload will be moved to the closest boundary node eventually
-        // perturbation trick to avoid parrallel issues
-        Real eps = 1e-8 * (std::min((xmax_ - xmin_), (ymax_ - ymin_)));
-        if (movx <= movy && distx1 <= distx2)
-        {
-            // mov load to the left boundary
-            pointload_loc_x_ = xmin_ + eps;
-            my_pointload_bc_.push_back(3);
-            // perturb y
-            if (disty1 <= disty2)
-            {
-                pointload_loc_y_ = pointload_loc_y_ + eps;
-            }
-            else
-            {
-                pointload_loc_y_ = pointload_loc_y_ - eps;
-            }
-        }
-        else if (movx <= movy && distx1 > distx2)
-        {
-            // mov load to the right boundary
-            pointload_loc_x_ = xmax_ - eps;
-            my_pointload_bc_.push_back(1);
-            //perturb y
-            if (disty1 <= disty2)
-            {
-                pointload_loc_y_ = pointload_loc_y_ + eps;
-            }
-            else
-            {
-                pointload_loc_y_ = pointload_loc_y_ - eps;
-            }
-        }
-        else if (movx > movy && disty1 <= disty2)
-        {
-            // mov load to the bottom boundary
-            pointload_loc_y_ = ymin_ + eps;
-            my_pointload_bc_.push_back(0);
-            // perturb x
-            if (distx1 <= distx2)
-            {
-                pointload_loc_x_ = pointload_loc_x_ + eps;
-            }
-            else
-            {
-                pointload_loc_x_ = pointload_loc_x_ - eps;
-            }
-        }
-        else
-        {
-            // mov load to the top boundary
-            pointload_loc_y_ = ymax_ - eps;
-            my_pointload_bc_.push_back(2);
-            // perturb x
-            if (distx1 <= distx2)
-            {
-                pointload_loc_x_ = pointload_loc_x_ + eps;
-            }
-            else
-            {
-                pointload_loc_x_ = pointload_loc_x_ - eps;
-            }
-        }
-
-        // print to check
-        if (verbose_)
-        {
-            *this->outStream_ << "Load processing finished." << std::endl;
-            *this->outStream_ << "My nbc numbers: ";
-            for (unsigned i = 0; i < this->my_nbc_.size(); i++)
-            {
-                *this->outStream_ << this->my_nbc_[i];
-            }
-            *this->outStream_ << std::endl;
-            *this->outStream_ << "My pbc numbers: ";
-            for (unsigned i = 0; i < my_pointload_bc_.size(); i++)
-            {
-                *this->outStream_ << my_pointload_bc_[i];
-            }
-            *this->outStream_ << std::endl;
-            *this->outStream_ << "My pointload location: " << pointload_loc_x_
-                              << ", " << pointload_loc_y_ << std::endl;
-        }
-    }
-
-    virtual void CreateMaterial(void)
-    {
-        int numCells = PDE_FEM<Real>::GetNumCells();
-        int spaceDim = PDE_FEM<Real>::GetSpaceDim();
-        for (int i = 0; i < numCells; ++i)
-        {
-            Teuchos::RCP<Material<Real>> CellMaterial = Teuchos::rcp(new Material<Real>());
-            CellMaterial->InitializeMaterial(spaceDim, planeStrain_, E_, poissonR_);
-            materialTensorDim_ = CellMaterial->GetMaterialTensorDim();
-            material_.push_back(CellMaterial);
-        }
-    }
-
-    virtual void ComputeLocalSystemMats(void)
-    {
-        int spaceDim = PDE_FEM<Real>::GetSpaceDim();
-        int numCells = PDE_FEM<Real>::GetNumCells();
-        int numCubPoints = PDE_FEM<Real>::GetNumCubPoints();
-        int lfs = PDE_FEM<Real>::GetLocalFieldSize();
-        int full_lfs = lfs * spaceDim;
-
-        this->gradgradMats_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs, full_lfs));
-        this->valvalMats_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs, full_lfs));
-
-        // construct mats
-        CreateMaterial();
-
-        BMat_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs, numCubPoints, materialTensorDim_));
-        BMatWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs, numCubPoints, materialTensorDim_));
-        CBMat_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs, numCubPoints, materialTensorDim_));
-        NMat_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs, numCubPoints, spaceDim));
-        NMatWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs, numCubPoints, spaceDim));
-        Construct_N_B_mats();
-        Construct_CBmats();
-
-        // compute local grad.grad (stiffness) matrices
-        Intrepid::FunctionSpaceTools::integrate<Real>(*this->gradgradMats_,
-                                                      *CBMat_,
-                                                      *BMatWeighted_,
-                                                      Intrepid::COMP_CPP);
-        // compute local val.val (mass) matrices
-        Intrepid::FunctionSpaceTools::integrate<Real>(*this->valvalMats_,
-                                                      *NMat_,
-                                                      *NMatWeighted_,
-                                                      Intrepid::COMP_CPP);
-    }
-
-    // new
-    // constructing Nmat on side
-    void Construct_Nmat_on_Side(int numCub)
-    {
-        int spaceDim = PDE_FEM<Real>::GetSpaceDim();
-        int lfs = PDE_FEM<Real>::GetLocalFieldSize();
-        int full_lfs = lfs * spaceDim;
-        NMatWeighted_Side = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, full_lfs, numCub, spaceDim));
-        NMatWeighted_Side->initialize(0.0);
-
-        if (spaceDim == 2)
-        {
-            for (int j = 0; j < numCub; ++j)
-            {
-                for (int k = 0; k < lfs; ++k)
-                {
-                    (*NMatWeighted_Side)(0, k * spaceDim + 0, j, 0) = (*weighted_transformed_value_of_basis_at_cub_points_side_refcell)(0, k, j);
-                    (*NMatWeighted_Side)(0, k * spaceDim + 1, j, 1) = (*weighted_transformed_value_of_basis_at_cub_points_side_refcell)(0, k, j);
-                }
-            }
-        }
-
-        if (spaceDim == 3)
-        {
-            for (int j = 0; j < numCub; ++j)
-            {
-                for (int k = 0; k < lfs; ++k)
-                {
-                    (*NMatWeighted_Side)(0, k * spaceDim + 0, j, 0) = (*weighted_transformed_value_of_basis_at_cub_points_side_refcell)(0, k, j);
-                    (*NMatWeighted_Side)(0, k * spaceDim + 1, j, 1) = (*weighted_transformed_value_of_basis_at_cub_points_side_refcell)(0, k, j);
-                    (*NMatWeighted_Side)(0, k * spaceDim + 2, j, 2) = (*weighted_transformed_value_of_basis_at_cub_points_side_refcell)(0, k, j);
-                }
-            }
-        }
-    }
-
-    // adding point load to right hand side vector
-    virtual void AddPointLoadToRHS(void)
-    {
-        int n_pbc = my_pointload_bc_.size();
-        for (int i = 0; i < n_pbc; ++i)
-        {
-            int pbc_num = my_pointload_bc_[i];
-            for (int j = 0; j < this->myBoundaryCellIds_[pbc_num].size(); ++j)
-            {
-                int myGlobalCellId = this->myBoundaryCellIds_[pbc_num][j];
-                // apply possible point loads
-                this->check_and_Apply_PointLoad_By_Coords(myGlobalCellId, pbc_num);
-            }
-        }
-    }
-
-    // adding traction boundary data into right hand side vector
-    virtual void ModifyLocalForceVecWithSideTractions(void)
-    {
-
-        int cellDim = PDE_FEM<Real>::GetSpaceDim();
-        int lfs = PDE_FEM<Real>::GetLocalFieldSize(); //number of dof each dimension
-        int full_lfs = lfs * cellDim;
-        int numNodesPerCell = this->numNodesPerCell_;
-
-        shards::CellTopology sideType(shards::getCellTopologyData<shards::Line<>>());
-        int cubDegree = 10;
-        Intrepid::DefaultCubatureFactory<Real> cubFactory; // create cubature factory
-        Teuchos::RCP<Intrepid::Cubature<Real>> sideCub = cubFactory.create(sideType, cubDegree);
-        int numCubPointsSide = sideCub->getNumPoints();
-        if (verbose_)
-        {
-            *this->outStream_ << "numCubPointsSide: " << numCubPointsSide << std::endl;
-        }
-
-        int sideDim = this->sideDim_;
-        int n_nbc = this->my_nbc_.size();
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> thiscellNodes;
-        thiscellNodes = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, numNodesPerCell, cellDim));
-        Intrepid::FieldContainer<Real> &nodes = *(this->meshMgr_)->getNodes();
-
-        if (verbose_)
-        {
-            *this->outStream_ << "n_nbc: " << n_nbc << std::endl;
-        }
-        for (int i = 0; i < n_nbc; i++)
-        {
-            int nbc_num = this->my_nbc_[i];
-            //std::cout << "nbc_num: " << nbc_num << std::endl;
-            for (int j = 0; j < this->myBoundaryCellIds_[nbc_num].size(); ++j)
-            {
-                int myGlobalCellId = this->myBoundaryCellIds_[nbc_num][j];
-                //*this->outStream_ << "myGlobalCellId: " << myGlobalCellId << std::endl;
-
-                // apply traction
-                for (int m = 0; m < numNodesPerCell; ++m)
-                {
-                    for (int n = 0; n < cellDim; ++n)
-                    {
-                        (*thiscellNodes)(0, m, n) = nodes(this->ctn_(myGlobalCellId, m), n);
-                    }
-                }
-                //std::cout << "first node coords: " << (*thiscellNodes)(0, 0, 0)
-                //          << ", " << (*thiscellNodes)(0, 0, 1) << std::endl;
-                cub_points_side = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCubPointsSide, sideDim));
-                cub_weights_side = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCubPointsSide));
-                cub_points_side_refcell = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCubPointsSide, cellDim));
-                cub_points_side_physical = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, numCubPointsSide, cellDim));
-                jacobian_side_refcell = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, numCubPointsSide, cellDim, cellDim));
-                jacobian_det_side_refcell = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, numCubPointsSide));
-                weighted_measure_side_refcell = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, numCubPointsSide));
-                value_of_basis_at_cub_points_side_refcell = Teuchos::rcp(new Intrepid::FieldContainer<Real>(lfs, numCubPointsSide));
-                transformed_value_of_basis_at_cub_points_side_refcell = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, lfs, numCubPointsSide));
-                weighted_transformed_value_of_basis_at_cub_points_side_refcell = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, lfs, numCubPointsSide));
-                tractions = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, numCubPointsSide, cellDim));
-                tractions_on_dofs = Teuchos::rcp(new Intrepid::FieldContainer<Real>(1, full_lfs));
-
-                // compute traction b.c. contributions and adjust rhs
-                sideCub->getCubature(*cub_points_side, *cub_weights_side);
-
-                // compute geometric cell information
-                Intrepid::CellTools<Real>::mapToReferenceSubcell(*cub_points_side_refcell,
-                                                                 *cub_points_side,
-                                                                 sideDim,
-                                                                 nbc_num,
-                                                                 this->cellType_);
-
-                Intrepid::CellTools<Real>::setJacobian(*jacobian_side_refcell,
-                                                       *cub_points_side_refcell,
-                                                       *thiscellNodes,
-                                                       this->cellType_);
-
-                Intrepid::CellTools<Real>::setJacobianDet(*jacobian_det_side_refcell,
-                                                          *jacobian_side_refcell);
-
-                // compute weighted edge measure
-                Intrepid::FunctionSpaceTools::computeEdgeMeasure<Real>(*weighted_measure_side_refcell,
-                                                                       *jacobian_side_refcell,
-                                                                       *cub_weights_side,
-                                                                       nbc_num,
-                                                                       this->cellType_);
-
-                // tabulate values of basis functions at side cubature points, in the reference parent cell domain
-                (*this->basisPtrs_[0]).getValues(*value_of_basis_at_cub_points_side_refcell, *cub_points_side_refcell, Intrepid::OPERATOR_VALUE);
-                // transform
-                Intrepid::FunctionSpaceTools::HGRADtransformVALUE<Real>(
-                    *transformed_value_of_basis_at_cub_points_side_refcell,
-                    *value_of_basis_at_cub_points_side_refcell);
-
-                // multiply with weighted measure
-                Intrepid::FunctionSpaceTools::multiplyMeasure<Real>(
-                    *weighted_transformed_value_of_basis_at_cub_points_side_refcell,
-                    *weighted_measure_side_refcell,
-                    *transformed_value_of_basis_at_cub_points_side_refcell);
-
-                Construct_Nmat_on_Side(numCubPointsSide);
-
-                // compute Neumann data
-                // map side cubature points in reference parent cell domain to physical space
-                Intrepid::CellTools<Real>::mapToPhysicalFrame(*cub_points_side_physical,
-                                                              *cub_points_side_refcell,
-                                                              *thiscellNodes,
-                                                              this->cellType_);
-                //std::cout << "cub_points_side_physical:" << (*cub_points_side_physical)(0,0,0)
-                //          << ", " << (*cub_points_side_physical)(0,0,1) << std::endl;
-                // now compute data
-                std::vector<Real> x(cellDim), F(cellDim);
-                for (int m = 0; m < numCubPointsSide; ++m)
-                {
-                    for (int n = 0; n < cellDim; ++n)
-                    {
-                        x[n] = (*cub_points_side_physical)(0, m, n);
-                    }
-                    funcRHS_NBC(F, x);
-                    for (int n = 0; n < cellDim; ++n)
-                    {
-                        (*tractions)(0, m, n) = F[n];
-                    }
-                }
-                Intrepid::FunctionSpaceTools::integrate<Real>(*tractions_on_dofs,
-                                                              *tractions,
-                                                              *NMatWeighted_Side,
-                                                              Intrepid::COMP_CPP);
-
-                // adjust RHS
-                for (int m = 0; m < full_lfs; ++m)
-                {
-                    (*this->datavalVecF_)(this->find_local_index(myGlobalCellId), m) += (*tractions_on_dofs)(0, m);
-                }
-
-                //check tractions on dofs
-                //*this->outStream_<<"tractions_on_dofs: ";
-                //for(int m=0; m<full_lfs; ++m)
-                //  *this->outStream_<<(*tractions_on_dofs)(0, m)<<", ";
-                //*this->outStream_<<std::endl;
-            }
-        }
-    }
-
-    virtual void ComputeLocalForceVec(void)
-    {
-        int spaceDim = PDE_FEM<Real>::GetSpaceDim();
-        int numCells = PDE_FEM<Real>::GetNumCells();
-        int numCubPoints = PDE_FEM<Real>::GetNumCubPoints();
-        int lfs = PDE_FEM<Real>::GetLocalFieldSize();
-        int full_lfs = lfs * spaceDim;
-        this->dataF_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, numCubPoints, spaceDim));
-        this->datavalVecF_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells, full_lfs));
-
-        std::vector<Real> x(spaceDim), F(spaceDim);
-        for (int i = 0; i < numCells; ++i)
-        { // evaluate functions at these points
-            for (int j = 0; j < numCubPoints; ++j)
-            {
-                for (int k = 0; k < spaceDim; ++k)
-                {
-                    x[k] = (*this->cubPointsPhysical_)(i, j, k);
-                }
-                funcRHS_BodyForce(F, x);
-                for (int k = 0; k < spaceDim; ++k)
-                {
-                    (*this->dataF_)(i, j, k) = F[k];
-                }
-            }
-        }
-        Intrepid::FunctionSpaceTools::integrate<Real>(*this->datavalVecF_, // compute local data.val vectors for RHS F
-                                                      *this->dataF_,
-                                                      *NMatWeighted_,
-                                                      Intrepid::COMP_CPP);
-
-        // new
-        if (verbose_)
-        {
-            *this->outStream_ << "Modifying local force vectors using boundary tractions" << std::endl;
-        }
-        ModifyLocalForceVecWithSideTractions();
-        AddPointLoadToRHS();
-        if (verbose_)
-        {
-            *this->outStream_ << "Modifying Done!" << std::endl;
-        }
-    }
-
-    virtual void updateF(const std::vector<Real> &param)
-    {
-        //Real diff = std::sqrt(std::pow(param_[0]-param[0],2)
-        //                    + std::pow(param_[1]-param[1],2)
-        //                    + std::pow(param_[2]-param[2],2)
-        //                    + std::pow(param_[3]-param[3],2)
-        //                    + std::pow(param_[4]-param[4],2)
-        //                    + std::pow(param_[5]-param[5],2));
-        //if (diff > ROL::ROL_EPSILON<Real>()) {
-        param_ = param;
-
-        ComputeLocalForceVec();
-        PDE_FEM<Real>::AssembleRHSVector();
-        PDE_FEM<Real>::VectorRemoveDBC();
-
-        PrintLoadingInformation();
-        //}
-    }
-
-    void Construct_N_B_mats(void)
-    {
-        //std::cout<<"Computing N and B mats."<<std::endl;
-        BMat_->initialize(0.0);
-        NMat_->initialize(0.0);
-        BMatWeighted_->initialize(0.0);
-        NMatWeighted_->initialize(0.0);
-
-        if (this->spaceDim_ == 2)
-        {
-            for (int i = 0; i < this->numCells_; ++i)
-            { // evaluate functions at these points
-                for (int j = 0; j < this->numCubPoints_; ++j)
-                {
-                    for (int k = 0; k < this->lfs_; ++k)
-                    {
-                        (*NMat_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->valPhysical_)(i, k, j);
-                        (*NMat_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->valPhysical_)(i, k, j);
-                        (*NMatWeighted_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->valPhysicalWeighted_)(i, k, j);
-                        (*NMatWeighted_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->valPhysicalWeighted_)(i, k, j);
-
-                        (*BMat_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->gradPhysical_)(i, k, j, 0);
-                        (*BMat_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->gradPhysical_)(i, k, j, 1);
-                        (*BMat_)(i, k * this->spaceDim_ + 0, j, 2) = (*this->gradPhysical_)(i, k, j, 1);
-                        (*BMat_)(i, k * this->spaceDim_ + 1, j, 2) = (*this->gradPhysical_)(i, k, j, 0);
-
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->gradPhysicalWeighted_)(i, k, j, 0);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->gradPhysicalWeighted_)(i, k, j, 1);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 0, j, 2) = (*this->gradPhysicalWeighted_)(i, k, j, 1);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 1, j, 2) = (*this->gradPhysicalWeighted_)(i, k, j, 0);
-                    }
-                }
-            }
-        }
-
-        if (this->spaceDim_ == 3)
-        {
-            for (int i = 0; i < this->numCells_; ++i)
-            { // evaluate functions at these points
-                for (int j = 0; j < this->numCubPoints_; ++j)
-                {
-                    for (int k = 0; k < this->lfs_; ++k)
-                    {
-                        (*NMat_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->valPhysical_)(i, k, j);
-                        (*NMat_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->valPhysical_)(i, k, j);
-                        (*NMat_)(i, k * this->spaceDim_ + 2, j, 2) = (*this->valPhysical_)(i, k, j);
-                        (*NMatWeighted_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->valPhysicalWeighted_)(i, k, j);
-                        (*NMatWeighted_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->valPhysicalWeighted_)(i, k, j);
-                        (*NMatWeighted_)(i, k * this->spaceDim_ + 2, j, 2) = (*this->valPhysicalWeighted_)(i, k, j);
-
-                        (*BMat_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->gradPhysical_)(i, k, j, 0);
-                        (*BMat_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->gradPhysical_)(i, k, j, 1);
-                        (*BMat_)(i, k * this->spaceDim_ + 2, j, 2) = (*this->gradPhysical_)(i, k, j, 2);
-                        (*BMat_)(i, k * this->spaceDim_ + 1, j, 3) = (*this->gradPhysical_)(i, k, j, 2);
-                        (*BMat_)(i, k * this->spaceDim_ + 2, j, 3) = (*this->gradPhysical_)(i, k, j, 1);
-                        (*BMat_)(i, k * this->spaceDim_ + 0, j, 4) = (*this->gradPhysical_)(i, k, j, 2);
-                        (*BMat_)(i, k * this->spaceDim_ + 2, j, 4) = (*this->gradPhysical_)(i, k, j, 0);
-                        (*BMat_)(i, k * this->spaceDim_ + 0, j, 5) = (*this->gradPhysical_)(i, k, j, 1);
-                        (*BMat_)(i, k * this->spaceDim_ + 1, j, 5) = (*this->gradPhysical_)(i, k, j, 0);
-
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 0, j, 0) = (*this->gradPhysicalWeighted_)(i, k, j, 0);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 1, j, 1) = (*this->gradPhysicalWeighted_)(i, k, j, 1);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 2, j, 2) = (*this->gradPhysicalWeighted_)(i, k, j, 2);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 1, j, 3) = (*this->gradPhysicalWeighted_)(i, k, j, 2);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 2, j, 3) = (*this->gradPhysicalWeighted_)(i, k, j, 1);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 0, j, 4) = (*this->gradPhysicalWeighted_)(i, k, j, 2);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 2, j, 4) = (*this->gradPhysicalWeighted_)(i, k, j, 0);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 0, j, 5) = (*this->gradPhysicalWeighted_)(i, k, j, 1);
-                        (*BMatWeighted_)(i, k * this->spaceDim_ + 1, j, 5) = (*this->gradPhysicalWeighted_)(i, k, j, 0);
-                    }
-                }
-            }
-        }
-    }
-
-    // test matrices
-    virtual void test_mats(void)
-    {
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_Jaco_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_Grad_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_N_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_B_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_K_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_M_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_F_Vec;
-
-        test_Jaco_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->spaceDim_, this->spaceDim_));
-        test_Grad_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->lfs_, this->spaceDim_));
-        test_N_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->spaceDim_));
-        test_B_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, materialTensorDim_));
-        test_K_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->numLocalDofs_));
-        test_M_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->numLocalDofs_));
-        test_F_Vec = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, 1));
-
-        for (int i = 0; i < this->spaceDim_; i++)
-        {
-            for (int j = 0; j < this->spaceDim_; j++)
-            {
-                (*test_Jaco_Mat)(i, j) = (*this->cellJac_)(0, 0, i, j);
-            }
-        }
-        for (int i = 0; i < this->numLocalDofs_; i++)
-        {
-            for (int j = 0; j < this->spaceDim_; j++)
-            {
-                if (i < this->lfs_)
-                {
-                    (*test_Grad_Mat)(i, j) = (*this->gradReference_)(i, 0, j);
-                }
-                (*test_N_Mat)(i, j) = (*NMat_)(0, i, 0, j);
-            }
-            for (int j = 0; j < materialTensorDim_; j++)
-            {
-                (*test_B_Mat)(i, j) = (*BMat_)(0, i, 0, j);
-            }
-            for (int j = 0; j < this->numLocalDofs_; j++)
-            {
-                (*test_K_Mat)(i, j) = (*this->gradgradMats_)(0, i, j);
-                (*test_M_Mat)(i, j) = (*this->valvalMats_)(0, i, j);
-            }
-            (*test_F_Vec)(i, 0) = (*this->datavalVecF_)(0, i);
-        }
-        std::cout << *test_Jaco_Mat << std::endl;
-        std::cout << *test_Grad_Mat << std::endl;
-        std::cout << *test_N_Mat << std::endl;
-        std::cout << *test_B_Mat << std::endl;
-        std::cout << *test_K_Mat << std::endl;
-        std::cout << *test_M_Mat << std::endl;
-        std::cout << *test_F_Vec << std::endl;
-    }
-
-    virtual void Construct_CBmats(void)
-    {
-        //std::cout<<"Computing CB mats."<<std::endl;
-        CBMat_->initialize(0.0);
-        for (int i = 0; i < this->numCells_; ++i)
-        {
-            Teuchos::RCP<Intrepid::FieldContainer<Real>> materialMat = material_[i]->GetMaterialTensor();
-            for (int j = 0; j < this->numCubPoints_; ++j)
-            {
-                for (int m = 0; m < this->lfs_ * this->spaceDim_; m++)
-                {
-                    for (int n = 0; n < materialTensorDim_; n++)
-                    {
-                        for (int k = 0; k < materialTensorDim_; k++)
-                        {
-                            (*CBMat_)(i, m, j, n) += (*BMat_)(i, m, j, k) * (*materialMat)(k, n);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    // load functions, can be parametrized
-    // modification for stochastic loads should be made here
-    virtual void funcRHS_BodyForce(std::vector<Real> &F,
-                                   const std::vector<Real> &x) const
-    {
-        Real theta = DegreesToRadians(param_[1]);
-        F.clear();
-        F.resize(this->spaceDim_);
-        F[0] = param_[0] * std::cos(theta);
-        F[1] = param_[0] * std::sin(theta);
-    }
-
-    virtual void funcRHS_NBC(std::vector<Real> &F,
-                             const std::vector<Real> &x) const
-    {
-        Real theta = DegreesToRadians(param_[3]);
-        F.clear();
-        F.resize(this->spaceDim_);
-        F[0] = param_[2] * std::cos(theta);
-        F[1] = param_[2] * std::sin(theta);
-    }
-
-    virtual void funcRHS_PtLoad(std::vector<Real> &F) const
-    {
-        Real theta = DegreesToRadians(param_[5]);
-        F.clear();
-        F.resize(this->spaceDim_);
-        F[0] = param_[4] * std::cos(theta);
-        F[1] = param_[4] * std::sin(theta);
-    }
-    //
-    //
-
-    virtual void ApplyPointLoad(const int pointload_bc,
-                                const int globalCellNum,
-                                const std::vector<int> &localNodeNum,
-                                const std::vector<Real> &coord1,
-                                const std::vector<Real> &coord2)
-    {
-        Teuchos::RCP<Intrepid::FieldContainer<int>> nodeDofs = this->dofMgr_->getNodeDofs();
-        bool isLoadPosContainedInCurrentSegment = false;
-        int whichNodeIsCloser = -1;
-        // if update F, provides parametrized computation of F[0] and F[1]
-        std::vector<Real> F;
-        funcRHS_PtLoad(F);
-        //
-        Real x11 = coord1[0], x12 = coord1[1];
-        Real x21 = coord2[0], x22 = coord2[1];
-        Real fx = pointload_loc_x_;
-        Real fy = pointload_loc_y_;
-        int pbc_num = pointload_bc;
-
-        if (pbc_num == 0 || pbc_num == 2)
-        {
-            if (((x11 - fx) * (x21 - fx) < 0) && ((x12 - fy) * (x22 - fy) > 0))
-            {
-                isLoadPosContainedInCurrentSegment = true;
-                if (std::abs(x11 - fx) <= std::abs(x21 - fx))
-                {
-                    whichNodeIsCloser = 1;
-                }
-                else
-                {
-                    whichNodeIsCloser = 2;
-                }
-            }
-        }
-        if (pbc_num == 1 || pbc_num == 3)
-        {
-            if (((x11 - fx) * (x21 - fx) > 0) && ((x12 - fy) * (x22 - fy) < 0))
-            {
-                isLoadPosContainedInCurrentSegment = true;
-                if (std::abs(x12 - fy) <= std::abs(x22 - fy))
-                {
-                    whichNodeIsCloser = 1;
-                }
-                else
-                {
-                    whichNodeIsCloser = 2;
-                }
-            }
-        }
-        if (isLoadPosContainedInCurrentSegment)
-        {
-            int ctn = this->ctn_(globalCellNum, localNodeNum[whichNodeIsCloser - 1]);
-            this->myPointLoadDofs_.resize(2);
-            this->myPointLoadVals_.resize(2);
-            this->myPointLoadDofs_[0] = (*nodeDofs)(ctn, 0);
-            this->myPointLoadDofs_[1] = (*nodeDofs)(ctn, 1);
-            this->myPointLoadVals_[0] = F[0];
-            this->myPointLoadVals_[1] = F[1];
-            // print to check
-            if (verbose_)
-            {
-                *this->outStream_ << "Point load applied, at cell: " << globalCellNum << std::endl;
-                *this->outStream_ << "Point load values: " << F[0] << ", " << F[1] << std::endl;
-                if (whichNodeIsCloser == 1)
-                {
-                    *this->outStream_ << "Point load position: " << x11 << ", " << x12 << std::endl;
-                }
-                else
-                {
-                    *this->outStream_ << "Point load position: " << x21 << ", " << x22 << std::endl;
-                }
-            }
-        }
-    }
-    // ApplyPointLoad
-
-    // DBC cases, add more to extend
-    virtual int check_DBC_Coords_Range(const std::vector<Real> &x) const
-    {
-        // return value :
-        // -1: not a DBC node
-        //  0: x direction fixed
-        //  1: y direction fixed
-        //  5: both x, y direction are fixed
-        //
-        Real x1 = x[0], x2 = x[1], eps(1e-6);
-        switch (DBC_Case_)
-        {
-        case 0:
-        { // Fix bottom two corners, left corner x, y, right corner only y
-            if ((x2 < ymin_ + eps) && (x1 < xmin_ + eps))
-                return 5;
-            if ((x2 < ymin_ + eps) && (x1 > xmax_ - eps))
-                return 1;
-            break;
-        }
-        case 1:
-        { // Fix bottom two corners, both x, y
-            if ((x2 < ymin_ + eps) &&
-                ((x1 < xmin_ + eps) || (x1 > xmax_ - eps)))
-                return 5;
-            break;
-        }
-        case 2:
-        { // Fix left boundary, both x, y
-            if (x1 < xmin_ + eps)
-                return 5;
-            break;
-        }
-        case 3:
-        { // Fix bottom boundary, both x, y
-            if (x2 < ymin_ + eps)
-                return 5;
-            break;
-        }
-        case 4:
-        { // Fix ALL boundary, both x, y
-            return 5;
-            break;
-        }
-        }
-        return -1;
-    }
-
-}; // class Elasticity
-
-#endif
diff --git a/tlnos/src/TOOLS/elasticitySIMP.hpp b/tlnos/src/TOOLS/elasticitySIMP.hpp
deleted file mode 100644
index dd3f5f1d..00000000
--- a/tlnos/src/TOOLS/elasticitySIMP.hpp
+++ /dev/null
@@ -1,296 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-#ifndef ROL_PDEOPT_ELASTICITYSIMP_H
-#define ROL_PDEOPT_ELASTICITYSIMP_H
-
-#include "Intrepid_HGRAD_QUAD_C2_FEM.hpp"
-#include "Intrepid_HGRAD_QUAD_C1_FEM.hpp"
-#include "../TOOLS/elasticity.hpp"
-#include "../TOOLS/materials.hpp"
-
-template <class Real>
-class ElasticitySIMP : public Elasticity<Real>
-{
-protected:
-    Real initDensity_;
-    Real minDensity_;
-    int powerP_;
-
-    std::vector<Teuchos::RCP<Material_SIMP<Real>>> SIMPmaterial_;
-    Teuchos::RCP<Tpetra::MultiVector<>> myDensity_;
-    Teuchos::RCP<Tpetra::MultiVector<>> myCellArea_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> CBMat0_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradgradMats0_;
-
-public:
-    ElasticitySIMP() {}
-    ~ElasticitySIMP() {}
-
-    virtual void ElasticitySIMP_Initialize(const Teuchos::RCP<const Teuchos::Comm<int>> &comm,
-                                           const Teuchos::RCP<Teuchos::ParameterList> &parlist,
-                                           const Teuchos::RCP<std::ostream> &outStream)
-    {
-        this->Initialize(comm, parlist, outStream);
-        // new material parameters
-        Teuchos::ParameterList &list = this->parlist_->sublist("ElasticitySIMP");
-        powerP_ = list.get<int>("SIMP Power");
-        initDensity_ = list.get<Real>("Initial Density");
-        minDensity_ = list.get<Real>("Minimum Density");
-    }
-
-    virtual void SetSIMPParallelStructure()
-    {
-        PDE_FEM<Real>::SetParallelStructure();
-        this->myCellMap_ = Teuchos::rcp(new Tpetra::Map<>(Teuchos::OrdinalTraits<Tpetra::global_size_t>::invalid(),
-                                                          this->myCellIds_, 0, this->commPtr_));
-    }
-
-    Teuchos::RCP<const Tpetra::Map<>> getDomainMapA() const
-    {
-        return this->matA_->getDomainMap();
-    }
-
-    Teuchos::RCP<const Tpetra::Map<>> getCellMap() const
-    {
-        return this->myCellMap_;
-    }
-
-    Teuchos::RCP<Tpetra::MultiVector<>> getMaterialDensity() const
-    {
-        return myDensity_;
-    }
-
-    // return cell measures
-    Teuchos::RCP<Tpetra::MultiVector<>> getCellAreas()
-    {
-        myCellArea_ = Teuchos::rcp(new Tpetra::MultiVector<>(this->myCellMap_, 1, true));
-        for (int i = 0; i < this->numCells_; i++)
-        {
-            myCellArea_->replaceGlobalValue(this->myCellIds_[i], 0, this->myCellMeasure_[i]);
-        }
-        return myCellArea_;
-    }
-    //
-    void ApplyBCToVec(const Teuchos::RCP<Tpetra::MultiVector<>> &u)
-    {
-        Real zero(0.0);
-        // u is myOverlapMap_
-        for (int i = 0; i < this->myDirichletDofs_.size(); ++i)
-        {
-            if (this->myOverlapMap_->isNodeGlobalElement(this->myDirichletDofs_[i]))
-                u->replaceGlobalValue(this->myDirichletDofs_[i], 0, zero);
-        }
-    }
-
-    void resetMaterialDensity(const Real val)
-    {
-        myDensity_ = Teuchos::rcp(new Tpetra::MultiVector<>(this->myCellMap_, 1, true));
-        myDensity_->putScalar(val);
-        renewMaterialVector();
-    }
-
-    void updateMaterialDensity(const Teuchos::RCP<const Tpetra::MultiVector<>> &newDensity)
-    {
-        myDensity_ = Teuchos::rcp(new Tpetra::MultiVector<>(this->myCellMap_, 1, true));
-        Tpetra::deep_copy(*myDensity_, *newDensity);
-        renewMaterialVector();
-    }
-
-    void renewMaterialVector()
-    {
-        Teuchos::ArrayRCP<const Real> densData = myDensity_->get1dView();
-        for (int i = 0; i < this->numCells_; i++)
-        {
-            Real dens = densData[myDensity_->getMap()->getLocalElement(this->myCellIds_[i])];
-            SIMPmaterial_[i]->setDensity(dens);
-        }
-    }
-
-    virtual void CreateMaterial()
-    {
-        for (int i = 0; i < this->numCells_; i++)
-        {
-            Teuchos::RCP<Material_SIMP<Real>> CellMaterial = Teuchos::rcp(new Material_SIMP<Real>());
-            CellMaterial->InitializeSIMP(this->spaceDim_, this->planeStrain_, this->E_,
-                                         this->poissonR_, initDensity_, powerP_, minDensity_);
-            this->materialTensorDim_ = CellMaterial->GetMaterialTensorDim();
-            SIMPmaterial_.push_back(CellMaterial);
-        }
-        resetMaterialDensity(initDensity_);
-    }
-
-    virtual void ComputeLocalSystemMats(bool ifInitial)
-    {
-        int full_lfs = this->lfs_ * this->spaceDim_;
-        if (!ifInitial)
-        {
-            renewMaterialVector();
-            this->gradgradMats_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, full_lfs));
-            Construct_CBmats(ifInitial);
-            Intrepid::FunctionSpaceTools::integrate<Real>(*this->gradgradMats_, // compute local grad.grad (stiffness) matrices
-                                                          *this->CBMat_,
-                                                          *this->BMatWeighted_,
-                                                          Intrepid::COMP_CPP);
-            return;
-        }
-        CreateMaterial();
-        this->gradgradMats0_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, full_lfs));
-        this->gradgradMats_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, full_lfs));
-        this->valvalMats_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, full_lfs));
-
-        this->BMat_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, this->numCubPoints_, this->materialTensorDim_));
-        this->BMatWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, this->numCubPoints_, this->materialTensorDim_));
-        CBMat0_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, this->numCubPoints_, this->materialTensorDim_));
-        this->CBMat_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, this->numCubPoints_, this->materialTensorDim_));
-        this->NMat_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, this->numCubPoints_, this->spaceDim_));
-        this->NMatWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numCells_, full_lfs, this->numCubPoints_, this->spaceDim_));
-        this->Construct_N_B_mats();
-        Construct_CBmats(ifInitial);
-        Intrepid::FunctionSpaceTools::integrate<Real>(*this->gradgradMats0_, // compute local grad.grad (stiffness) matrices
-                                                      *CBMat0_,
-                                                      *this->BMatWeighted_,
-                                                      Intrepid::COMP_CPP);
-        Intrepid::FunctionSpaceTools::integrate<Real>(*this->gradgradMats_, // compute local grad.grad (stiffness) matrices
-                                                      *this->CBMat_,
-                                                      *this->BMatWeighted_,
-                                                      Intrepid::COMP_CPP);
-        Intrepid::FunctionSpaceTools::integrate<Real>(*this->valvalMats_, // compute local val.val (mass) matrices
-                                                      *this->NMat_,
-                                                      *this->NMatWeighted_,
-                                                      Intrepid::COMP_CPP);
-    }
-
-    // test matrices
-    virtual void test_mats()
-    {
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_Jaco_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_Grad_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_N_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_B_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_K0_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_K_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_M_Mat;
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> test_F_Vec;
-
-        test_Jaco_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->spaceDim_, this->spaceDim_));
-        test_Grad_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->lfs_, this->spaceDim_));
-        test_N_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->spaceDim_));
-        test_B_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->materialTensorDim_));
-        test_K0_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->numLocalDofs_));
-        test_K_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->numLocalDofs_));
-        test_M_Mat = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, this->numLocalDofs_));
-        test_F_Vec = Teuchos::rcp(new Intrepid::FieldContainer<Real>(this->numLocalDofs_, 1));
-
-        for (int i = 0; i < this->spaceDim_; i++)
-        {
-            for (int j = 0; j < this->spaceDim_; j++)
-            {
-                (*test_Jaco_Mat)(i, j) = (*this->cellJac_)(0, 0, i, j);
-            }
-        }
-        for (int i = 0; i < this->numLocalDofs_; i++)
-        {
-            for (int j = 0; j < this->spaceDim_; j++)
-            {
-                if (i < this->lfs_)
-                    (*test_Grad_Mat)(i, j) = (*this->gradReference_)(i, 0, j);
-
-                (*test_N_Mat)(i, j) = (*this->NMat_)(0, i, 0, j);
-            }
-            for (int j = 0; j < this->materialTensorDim_; j++)
-            {
-                (*test_B_Mat)(i, j) = (*this->BMat_)(0, i, 0, j);
-            }
-            for (int j = 0; j < this->numLocalDofs_; j++)
-            {
-                (*test_K0_Mat)(i, j) = (*this->gradgradMats0_)(0, i, j);
-                (*test_K_Mat)(i, j) = (*this->gradgradMats_)(0, i, j);
-                (*test_M_Mat)(i, j) = (*this->valvalMats_)(0, i, j);
-            }
-            (*test_F_Vec)(i, 0) = (*this->datavalVecF_)(0, i);
-        }
-        std::cout << *(SIMPmaterial_[0]->GetMaterialTensor()) << std::endl;
-        std::cout << *test_Jaco_Mat << std::endl;
-        std::cout << *test_Grad_Mat << std::endl;
-        std::cout << *test_N_Mat << std::endl;
-        std::cout << *test_B_Mat << std::endl;
-        std::cout << *test_M_Mat << std::endl;
-        std::cout << *test_F_Vec << std::endl;
-        std::cout << *test_K0_Mat << std::endl;
-        std::cout << *test_K_Mat << std::endl;
-    }
-
-    void Construct_CBmats(const bool ifInitial)
-    {
-        if (ifInitial)
-            CBMat0_->initialize(0.0);
-
-        this->CBMat_->initialize(0.0);
-        Real SIMPScale;
-        for (int i = 0; i < this->numCells_; ++i)
-        {
-
-            SIMPScale = SIMPmaterial_[i]->getSIMPScaleFactor();
-            Teuchos::RCP<Intrepid::FieldContainer<Real>> materialMat = SIMPmaterial_[i]->GetMaterialTensor();
-            for (int j = 0; j < this->numCubPoints_; ++j)
-            {
-                for (int m = 0; m < this->lfs_ * this->spaceDim_; m++)
-                {
-                    for (int n = 0; n < this->materialTensorDim_; n++)
-                    {
-                        for (int k = 0; k < this->materialTensorDim_; k++)
-                        {
-                            if (ifInitial)
-                                (*CBMat0_)(i, m, j, n) += (*this->BMat_)(i, m, j, k) * (*materialMat)(k, n);
-                            (*this->CBMat_)(i, m, j, n) += SIMPScale * (*this->BMat_)(i, m, j, k) * (*materialMat)(k, n);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-}; // class ElasticitySIMPData
-
-#endif
diff --git a/tlnos/src/TOOLS/materials.hpp b/tlnos/src/TOOLS/materials.hpp
deleted file mode 100644
index 2b8aeba7..00000000
--- a/tlnos/src/TOOLS/materials.hpp
+++ /dev/null
@@ -1,252 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  materials.hpp
-*/
-
-#ifndef MATERIALS_HPP
-#define MATERIALS_HPP
-
-#include "Intrepid_FieldContainer.hpp"
-
-/** \class  Materials
-*/
-
-template <class Real>
-class Material
-{
-private:
-    int dim_;
-    int tensorMatSize_;
-
-    bool planeStrain_;
-    Real modulus_;
-    Real poissonRatio_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> materialTensor_;
-
-public:
-    Material() {}
-    virtual ~Material() {}
-
-    virtual void InitializeMaterial(const int dim, const bool planeStrain,
-                                    const Real modulus, const Real poissonRatio)
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(dim > 3 || dim < 1, std::invalid_argument,
-                                   ">>> ERROR (InitializeMaterial): dim less than one or greater than three!");
-        dim_ = dim;
-        planeStrain_ = planeStrain;
-        modulus_ = modulus;
-        poissonRatio_ = poissonRatio;
-        if (dim_ == 1)
-        {
-            tensorMatSize_ = 1;
-        }
-        else if (dim_ == 2)
-        {
-            tensorMatSize_ = 3;
-        }
-        else
-        {
-            tensorMatSize_ = 6;
-        }
-
-        ComputeMaterialTensor();
-    }
-
-    void ComputeMaterialTensor(void)
-    {
-        materialTensor_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(tensorMatSize_, tensorMatSize_));
-        materialTensor_->initialize(0.0);
-        if (dim_ == 1)
-        {
-            (*materialTensor_)(0, 0) = modulus_;
-        }
-        else if (dim_ == 2 && !planeStrain_)
-        {
-            Real one(1), half(0.5);
-            Real factor1 = modulus_ / (one - poissonRatio_ * poissonRatio_);
-            (*materialTensor_)(0, 0) = factor1;
-            (*materialTensor_)(0, 1) = factor1 * poissonRatio_;
-            (*materialTensor_)(1, 0) = factor1 * poissonRatio_;
-            (*materialTensor_)(1, 1) = factor1;
-            (*materialTensor_)(2, 2) = factor1 * half * (one - poissonRatio_);
-        }
-        else if (dim_ == 2 && planeStrain_)
-        {
-            Real one(1), two(2), half(0.5);
-            Real factor2 = modulus_ / (one + poissonRatio_) / (one - two * poissonRatio_);
-            (*materialTensor_)(0, 0) = factor2 * (one - poissonRatio_);
-            (*materialTensor_)(0, 1) = factor2 * poissonRatio_;
-            (*materialTensor_)(1, 0) = factor2 * poissonRatio_;
-            (*materialTensor_)(1, 1) = factor2 * (one - poissonRatio_);
-            (*materialTensor_)(2, 2) = factor2 * half * (one - two * poissonRatio_);
-        }
-        else
-        {
-            Real one(1), two(2), half(0.5);
-            Real lam = modulus_ * poissonRatio_ / (one + poissonRatio_) / (one - two * poissonRatio_);
-            Real mu = half * modulus_ / (one + poissonRatio_);
-            (*materialTensor_)(0, 0) = lam + two * mu;
-            (*materialTensor_)(0, 1) = lam;
-            (*materialTensor_)(0, 2) = lam;
-            (*materialTensor_)(1, 0) = lam;
-            (*materialTensor_)(1, 1) = lam + two * mu;
-            (*materialTensor_)(1, 2) = lam;
-            (*materialTensor_)(2, 0) = lam;
-            (*materialTensor_)(2, 1) = lam;
-            (*materialTensor_)(2, 2) = lam + two * mu;
-            (*materialTensor_)(3, 3) = mu;
-            (*materialTensor_)(4, 4) = mu;
-            (*materialTensor_)(5, 5) = mu;
-        }
-    }
-
-    const Teuchos::RCP<Intrepid::FieldContainer<Real>> GetMaterialTensor(void) const
-    {
-        return materialTensor_;
-    }
-
-    int GetMaterialTensorDim(void) const
-    {
-        return tensorMatSize_;
-    }
-
-    Real GetYoungsModulus(void) const
-    {
-        return modulus_;
-    }
-
-    Real GetPoissonRatio(void) const
-    {
-        return poissonRatio_;
-    }
-
-    Real GetBulkModulus(void) const {}
-
-    Real GetShearModulus(void) const
-    {
-        Real half(0.5), one(1);
-        return half * modulus_ / (one + poissonRatio_);
-    }
-
-    void CheckMaterialTensor(void)
-    {
-        std::cout << *materialTensor_ << std::endl;
-    }
-};
-
-// new class for topology optimization
-template <class Real>
-class Material_SIMP : public Material<Real>
-{
-private:
-    Real density_;
-    int powerP_;
-    Real minDensity_;
-
-public:
-    virtual void InitializeSIMP(const int dim, const bool planeStrain,
-                                const Real modulus, const Real poissonRatio,
-                                const Real density, const int powerP, const Real minDensity)
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(powerP < 1, std::invalid_argument,
-                                   ">>> ERROR (InitializeSIMP): SIMP power is less than one!");
-        Material<Real>::InitializeMaterial(dim, planeStrain, modulus, poissonRatio);
-        density_ = density;
-        powerP_ = powerP;
-        minDensity_ = minDensity;
-    }
-
-    Real getSIMPScaleFactor(void) const
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(powerP_ < 1, std::invalid_argument,
-                                   ">>> ERROR (getSIMPScaleFactor): SIMP power is less than one!");
-        Real one(1);
-        return minDensity_ + (one - minDensity_) * std::pow(density_, powerP_);
-    }
-
-    Real getSIMPFirstDerivativeScaleFactor(void) const
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(powerP_ < 1, std::invalid_argument,
-                                   ">>> ERROR (getSIMPFirstDerivativeScaleFactor): SIMP power is less than one!");
-        Real one(1);
-        return (one - minDensity_) * powerP_ * (std::pow(density_, powerP_ - 1));
-    }
-
-    Real getSIMPSecondDerivativeScaleFactor(void) const
-    {
-        TEUCHOS_TEST_FOR_EXCEPTION(powerP_ < 1, std::invalid_argument,
-                                   ">>> ERROR (getSIMPSecondDerivativeScaleFactor): SIMP power is less than one!");
-        Real one(1), scale(0);
-        if (powerP_ > 1)
-        {
-            scale = (one - minDensity_) * powerP_ * (powerP_ - 1) * (std::pow(density_, powerP_ - 2));
-        }
-        return scale;
-    }
-
-    void setDensity(const Real dens)
-    {
-        density_ = dens;
-    }
-
-    // the following function is not in use
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> computeScaledMaterialTensor(const Real scale) const
-    {
-        Real zero(0);
-        int TMS = Material<Real>::getMaterialTensorDim();
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> scaledMaterialTensor = Teuchos::rcp(new Intrepid::FieldContainer<Real>(TMS, TMS));
-        scaledMaterialTensor->initialize(zero);
-
-        for (int i = 0; i < TMS; i++)
-        {
-            for (int j = 0; j < TMS; j++)
-            {
-                (*scaledMaterialTensor)(i, j) = scale * (*Material<Real>::gerMaterialTensor())(i, j);
-            }
-        }
-        return scaledMaterialTensor;
-    }
-};
-
-#endif
diff --git a/tlnos/src/TOOLS/meshmanager.hpp b/tlnos/src/TOOLS/meshmanager.hpp
deleted file mode 100644
index 1ce27a78..00000000
--- a/tlnos/src/TOOLS/meshmanager.hpp
+++ /dev/null
@@ -1,711 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  meshmanager.hpp
-    \brief Defines the MeshManger classes.
-*/
-
-#ifndef MESHMANAGER_HPP
-#define MESHMANAGER_HPP
-
-#include "Teuchos_ParameterList.hpp"
-#include "Intrepid_FieldContainer.hpp"
-
-/** \class  MeshManager
-    \brief  This is the pure virtual parent class for mesh construction
-            and management; it enables the generation of a few select
-            meshes and the setup of data structures for computing
-            cell/subcell adjacencies, for example, the cell-to-node
-            adjacency map and the cell-to-edge adjacency map.
-*/
-template <class Real>
-class MeshManager
-{
-
-public:
-    /** \brief  Destructor
-   */
-    virtual ~MeshManager() {}
-
-    /** \brief Returns node coordinates.
-             Format: number_of_nodes x 2 (Real)
-                     (node_index)  x, y coordinates
-  */
-    virtual Teuchos::RCP<Intrepid::FieldContainer<Real>> getNodes() const = 0;
-
-    /** \brief Returns cell to node adjacencies.
-             Format: number_of_cells x number_of_nodes_per_cell (int)
-                     (cell_index)  node_index1  node_index2  ...
-  */
-    virtual Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToNodeMap() const = 0;
-
-    /** \brief Returns cell to edge adjacencies.
-             Format: number_of_cells x number_of_edges_per_cell (int)
-                     (cell_index)  edge_index1  edge_index2  ...
-  */
-    virtual Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToEdgeMap() const = 0;
-
-    /** \brief Returns sideset information.
-             Format: The std::vector components are indexed by the local side number (0, 1, 2, ...);
-                     the FieldConTainer is a 1D array of cell indices.
-             Input:  Sideset number.  Its meaning is context-dependent.
-  */
-    virtual Teuchos::RCP<std::vector<std::vector<Intrepid::FieldContainer<int>>>> getSideSets() const = 0;
-
-    /** \brief Returns number of cells.
-  */
-    virtual int getNumCells() const = 0;
-
-    /** \brief Returns number of nodes.
-  */
-    virtual int getNumNodes() const = 0;
-
-    /** \brief Returns number of edges.
-  */
-    virtual int getNumEdges() const = 0;
-
-}; // MeshManager
-
-/** \class  MeshManager_BackwardFacingStepChannel
-    \brief  Mesh construction and mesh management for the
-            backward-facing step channel geometry, on
-            quadrilateral grids.
-*/
-template <class Real>
-class MeshManager_BackwardFacingStepChannel : public MeshManager<Real>
-{
-
-    /* Backward-facing step geometry.
- 
-  ***************************************************
-  *        *           *                            *
-  *   3    *     4     *             5              *
-  *        *           *                            *
-  ********** * * * * * * * * * * * * * * * * * * * **
-           *     1     *             2              *
-           *           *                            *
-           ******************************************
-
-*/
-
-private:
-    Real channelH_; // channel height (height of regions 1+4)
-    Real channelW_; // channel width (width of regions 3+4+5)
-    Real stepH_;    // step height (height of region 1)
-    Real stepW_;    // step width (width of region 3)
-    Real observeW_; // width of observation region (width of region 1)
-
-    int ref_; // mesh refinement level
-
-    int nx1_;
-    int nx2_;
-    int nx3_;
-    int nx4_;
-    int nx5_;
-    int ny1_;
-    int ny2_;
-    int ny3_;
-    int ny4_;
-    int ny5_;
-
-    int numCells_;
-    int numNodes_;
-    int numEdges_;
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> meshNodes_;
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToNodeMap_;
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToEdgeMap_;
-
-public:
-    MeshManager_BackwardFacingStepChannel(Teuchos::ParameterList &parlist)
-    {
-        // Geometry data.
-        channelH_ = parlist.sublist("Geometry").get("Channel height", 1.0);
-        channelW_ = parlist.sublist("Geometry").get("Channel width", 8.0);
-        stepH_ = parlist.sublist("Geometry").get("Step height", 0.5);
-        stepW_ = parlist.sublist("Geometry").get("Step width", 1.0);
-        observeW_ = parlist.sublist("Geometry").get("Observation width", 3.0);
-        // Mesh data.
-        ref_ = parlist.sublist("Geometry").get("Refinement level", 1);
-        nx1_ = parlist.sublist("Geometry").get("Observation region NX", 4 * ref_);
-        ny1_ = parlist.sublist("Geometry").get("Observation region NY", 5 * ref_);
-        nx2_ = parlist.sublist("Geometry").get("Laminar flow region NX", 2 * ref_);
-        ny2_ = ny1_;
-        nx3_ = parlist.sublist("Geometry").get("Inflow region NX", 1 * ref_);
-        ny3_ = parlist.sublist("Geometry").get("Inflow region NY", 2 * ref_);
-        nx4_ = nx1_;
-        ny4_ = ny3_;
-        nx5_ = nx2_;
-        ny5_ = ny3_;
-        numCells_ = (nx1_ + nx2_) * ny1_ + (nx3_ + nx1_ + nx2_) * ny3_;
-        numNodes_ = (nx1_ + nx2_ + 1) * ny1_ + (nx3_ + nx1_ + nx2_ + 1) * (ny3_ + 1);
-        numEdges_ = (2 * (nx1_ + nx2_) + 1) * ny1_ + (2 * (nx3_ + nx1_ + nx2_) + 1) * ny3_ + (nx3_ + nx1_ + nx2_);
-        // Compute mesh data structures.
-        computeNodes();
-        computeCellToNodeMap();
-        computeCellToEdgeMap();
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> getNodes() const
-    {
-        return meshNodes_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToNodeMap() const
-    {
-        return meshCellToNodeMap_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToEdgeMap() const
-    {
-        return meshCellToEdgeMap_;
-    }
-
-    int getNumCells() const
-    {
-        return numCells_;
-    } // getNumCells
-
-    int getNumNodes() const
-    {
-        return numNodes_;
-    } // getNumNodes
-
-    int getNumEdges() const
-    {
-        return numEdges_;
-    } // getNumEdges
-
-private:
-    void computeNodes()
-    {
-
-        meshNodes_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numNodes_, 2));
-        Intrepid::FieldContainer<Real> &nodes = *meshNodes_;
-
-        Real dy1 = stepH_ / ny1_;
-        Real dy3 = (channelH_ - stepH_) / ny3_;
-        Real dx1 = observeW_ / nx1_;
-        Real dx2 = (channelW_ - stepW_ - observeW_) / nx2_;
-        Real dx3 = stepW_ / nx3_;
-        int nodeCt = 0;
-
-        // bottom region
-        for (int j = 0; j < ny1_; ++j)
-        {
-            for (int i = 0; i <= nx1_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + i * dx1;
-                nodes(nodeCt, 1) = j * dy1;
-                ++nodeCt;
-            }
-            for (int i = 0; i < nx2_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + observeW_ + (i + 1) * dx2;
-                nodes(nodeCt, 1) = j * dy1;
-                ++nodeCt;
-            }
-        }
-
-        // top region
-        for (int j = 0; j <= ny3_; ++j)
-        {
-            for (int i = 0; i <= nx3_; ++i)
-            {
-                nodes(nodeCt, 0) = i * dx3;
-                nodes(nodeCt, 1) = stepH_ + j * dy3;
-                ++nodeCt;
-            }
-            for (int i = 0; i < nx1_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + (i + 1) * dx1;
-                nodes(nodeCt, 1) = stepH_ + j * dy3;
-                ++nodeCt;
-            }
-            for (int i = 0; i < nx2_; ++i)
-            {
-                nodes(nodeCt, 0) = stepW_ + observeW_ + (i + 1) * dx2;
-                nodes(nodeCt, 1) = stepH_ + j * dy3;
-                ++nodeCt;
-            }
-        }
-
-    } // computeNodes
-
-    void computeCellToNodeMap()
-    {
-
-        meshCellToNodeMap_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, 4));
-        Intrepid::FieldContainer<int> &ctn = *meshCellToNodeMap_;
-
-        int cellCt = 0;
-
-        // bottom region
-        for (int j = 0; j < ny1_ - 1; ++j)
-        {
-            for (int i = 0; i < nx1_ + nx2_; ++i)
-            {
-                ctn(cellCt, 0) = j * (nx1_ + nx2_ + 1) + i;
-                ctn(cellCt, 1) = j * (nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 2) = (j + 1) * (nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 3) = (j + 1) * (nx1_ + nx2_ + 1) + i;
-                ++cellCt;
-            }
-        }
-
-        // transition region
-        for (int i = 0; i < nx1_ + nx2_; ++i)
-        {
-            ctn(cellCt, 0) = (ny1_ - 1) * (nx1_ + nx2_ + 1) + i;
-            ctn(cellCt, 1) = (ny1_ - 1) * (nx1_ + nx2_ + 1) + (i + 1);
-            ctn(cellCt, 2) = ny1_ * (nx1_ + nx2_ + 1) + nx3_ + (i + 1);
-            ctn(cellCt, 3) = ny1_ * (nx1_ + nx2_ + 1) + nx3_ + i;
-            ++cellCt;
-        }
-
-        // top region
-        for (int j = 0; j < ny3_; ++j)
-        {
-            for (int i = 0; i < nx3_ + nx1_ + nx2_; ++i)
-            {
-                ctn(cellCt, 0) = ny1_ * (nx1_ + nx2_ + 1) + j * (nx3_ + nx1_ + nx2_ + 1) + i;
-                ctn(cellCt, 1) = ny1_ * (nx1_ + nx2_ + 1) + j * (nx3_ + nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 2) = ny1_ * (nx1_ + nx2_ + 1) + (j + 1) * (nx3_ + nx1_ + nx2_ + 1) + (i + 1);
-                ctn(cellCt, 3) = ny1_ * (nx1_ + nx2_ + 1) + (j + 1) * (nx3_ + nx1_ + nx2_ + 1) + i;
-                ++cellCt;
-            }
-        }
-
-    } // computeCellToNodeMap
-
-    void computeCellToEdgeMap()
-    {
-
-        meshCellToEdgeMap_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, 4));
-        Intrepid::FieldContainer<int> &cte = *meshCellToEdgeMap_;
-
-        int cellCt = 0;
-
-        // bottom region
-        for (int j = 0; j < ny1_ - 1; ++j)
-        {
-            for (int i = 0; i < nx1_ + nx2_; ++i)
-            {
-                cte(cellCt, 0) = j * (2 * (nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 1) = j * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + (i + 1);
-                cte(cellCt, 2) = (j + 1) * (2 * (nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 3) = j * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + i;
-                ++cellCt;
-            }
-        }
-
-        // transition region
-        for (int i = 0; i < nx1_ + nx2_; ++i)
-        {
-            cte(cellCt, 0) = (ny1_ - 1) * (2 * (nx1_ + nx2_) + 1) + i;
-            cte(cellCt, 1) = (ny1_ - 1) * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + (i + 1);
-            cte(cellCt, 2) = ny1_ * (2 * (nx1_ + nx2_) + 1) + nx3_ + i;
-            cte(cellCt, 3) = (ny1_ - 1) * (2 * (nx1_ + nx2_) + 1) + (nx1_ + nx2_) + i;
-            ++cellCt;
-        }
-
-        // top region
-        for (int j = 0; j < ny3_; ++j)
-        {
-            for (int i = 0; i < nx3_ + nx1_ + nx2_; ++i)
-            {
-                cte(cellCt, 0) = ny1_ * (2 * (nx1_ + nx2_) + 1) + j * (2 * (nx3_ + nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 1) = ny1_ * (2 * (nx1_ + nx2_) + 1) + j * (2 * (nx3_ + nx1_ + nx2_) + 1) + (nx3_ + nx1_ + nx2_) + (i + 1);
-                cte(cellCt, 2) = ny1_ * (2 * (nx1_ + nx2_) + 1) + (j + 1) * (2 * (nx3_ + nx1_ + nx2_) + 1) + i;
-                cte(cellCt, 3) = ny1_ * (2 * (nx1_ + nx2_) + 1) + j * (2 * (nx3_ + nx1_ + nx2_) + 1) + (nx3_ + nx1_ + nx2_) + i;
-                ++cellCt;
-            }
-        }
-
-    } // computeCellToEdgeMap
-
-    void setRefinementLevel(const int &refLevel)
-    {
-        ref_ = refLevel;
-        computeNodes();
-        computeCellToNodeMap();
-        computeCellToEdgeMap();
-    } // setRefinementLevel
-
-}; // MeshManager_BackwardFacingStepChannel
-
-/** \class  MeshManager_Rectangle
-    \brief  Mesh construction and mesh management for the
-            backward-facing step channel geometry, on
-            quadrilateral grids.
-*/
-template <class Real>
-class MeshManager_Rectangle : public MeshManager<Real>
-{
-
-    /* Rectangle geometry.
- 
-      ***********************
-      *                     *   :
-      *                     *   |
-      *                     * height
-      *                     *   |
-      *                     *   :
-      *                     *
-      ***********************
-  (X0,Y0)   :--width--:
-
-*/
-
-private:
-    Real width_;  // rectangle height
-    Real height_; // rectangle width
-    Real X0_;     // x coordinate of bottom left corner
-    Real Y0_;     // y coordinate of bottom left corner
-
-    int nx_;
-    int ny_;
-
-    int numCells_;
-    int numNodes_;
-    int numEdges_;
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> meshNodes_;
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToNodeMap_;
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToEdgeMap_;
-
-    Teuchos::RCP<std::vector<std::vector<Intrepid::FieldContainer<int>>>> meshSideSets_;
-
-public:
-    MeshManager_Rectangle(Teuchos::ParameterList &parlist)
-    {
-        // Geometry data.
-        width_ = parlist.sublist("Geometry").get("Width", 3.0);
-        height_ = parlist.sublist("Geometry").get("Height", 1.0);
-        X0_ = parlist.sublist("Geometry").get("X0", 0.0);
-        Y0_ = parlist.sublist("Geometry").get("Y0", 0.0);
-        // Mesh data.
-        nx_ = parlist.sublist("Geometry").get("NX", 3);
-        ny_ = parlist.sublist("Geometry").get("NY", 1);
-        numCells_ = nx_ * ny_;
-        numNodes_ = (nx_ + 1) * (ny_ + 1);
-        numEdges_ = (nx_ + 1) * ny_ + (ny_ + 1) * nx_;
-        // Compute and store mesh data structures.
-        computeNodes();
-        computeCellToNodeMap();
-        computeCellToEdgeMap();
-        computeSideSets();
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> getNodes() const
-    {
-        return meshNodes_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToNodeMap() const
-    {
-        return meshCellToNodeMap_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToEdgeMap() const
-    {
-        return meshCellToEdgeMap_;
-    }
-
-    Teuchos::RCP<std::vector<std::vector<Intrepid::FieldContainer<int>>>> getSideSets() const
-    {
-        return meshSideSets_;
-    }
-
-    int getNumCells() const
-    {
-        return numCells_;
-    } // getNumCells
-
-    int getNumNodes() const
-    {
-        return numNodes_;
-    } // getNumNodes
-
-    int getNumEdges() const
-    {
-        return numEdges_;
-    } // getNumEdges
-
-private:
-    void computeNodes()
-    {
-
-        meshNodes_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numNodes_, 2));
-        Intrepid::FieldContainer<Real> &nodes = *meshNodes_;
-
-        Real dx = width_ / nx_;
-        Real dy = height_ / ny_;
-        int nodeCt = 0;
-
-        for (int j = 0; j <= ny_; ++j)
-        {
-            Real ycoord = Y0_ + j * dy;
-            for (int i = 0; i <= nx_; ++i)
-            {
-                nodes(nodeCt, 0) = X0_ + i * dx;
-                nodes(nodeCt, 1) = ycoord;
-                ++nodeCt;
-            }
-        }
-
-    } // computeNodes
-
-    void computeCellToNodeMap()
-    {
-
-        meshCellToNodeMap_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, 4));
-        Intrepid::FieldContainer<int> &ctn = *meshCellToNodeMap_;
-
-        int cellCt = 0;
-
-        for (int j = 0; j < ny_; ++j)
-        {
-            for (int i = 0; i < nx_; ++i)
-            {
-                ctn(cellCt, 0) = j * (nx_ + 1) + i;
-                ctn(cellCt, 1) = j * (nx_ + 1) + (i + 1);
-                ctn(cellCt, 2) = (j + 1) * (nx_ + 1) + (i + 1);
-                ctn(cellCt, 3) = (j + 1) * (nx_ + 1) + i;
-                ++cellCt;
-            }
-        }
-
-    } // computeCellToNodeMap
-
-    void computeCellToEdgeMap()
-    {
-
-        meshCellToEdgeMap_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, 4));
-        Intrepid::FieldContainer<int> &cte = *meshCellToEdgeMap_;
-
-        int cellCt = 0;
-
-        for (int j = 0; j < ny_; ++j)
-        {
-            for (int i = 0; i < nx_; ++i)
-            {
-                cte(cellCt, 0) = j * (2 * nx_ + 1) + i;
-                cte(cellCt, 1) = j * (2 * nx_ + 1) + nx_ + (i + 1);
-                cte(cellCt, 2) = (j + 1) * (2 * nx_ + 1) + i;
-                cte(cellCt, 3) = j * (2 * nx_ + 1) + nx_ + i;
-                ++cellCt;
-            }
-        }
-
-    } // computeCellToEdgeMap
-
-    void computeSideSets()
-    {
-
-        meshSideSets_ = Teuchos::rcp(new std::vector<std::vector<Intrepid::FieldContainer<int>>>(1));
-        int numSides = 4;
-        (*meshSideSets_)[0].resize(numSides);
-        (*meshSideSets_)[0][0].resize(nx_);
-        (*meshSideSets_)[0][1].resize(ny_);
-        (*meshSideSets_)[0][2].resize(nx_);
-        (*meshSideSets_)[0][3].resize(ny_);
-
-        for (int i = 0; i < nx_; ++i)
-        {
-            (*meshSideSets_)[0][0](i) = i;
-        }
-        for (int i = 0; i < ny_; ++i)
-        {
-            (*meshSideSets_)[0][1](i) = (i + 1) * nx_ - 1;
-        }
-        for (int i = 0; i < nx_; ++i)
-        {
-            (*meshSideSets_)[0][2](i) = i + nx_ * (ny_ - 1);
-        }
-        for (int i = 0; i < ny_; ++i)
-        {
-            (*meshSideSets_)[0][3](i) = i * nx_;
-        }
-
-    } // computeSideSets
-
-}; // MeshManager_Rectangle
-
-template <class Real>
-class MeshManager_Interval : public MeshManager<Real>
-{
-
-    /* Interval geometry [X0,X0+width] */
-
-private:
-    Real width_; // Interval width
-    Real X0_;    // x coordinate left corner
-
-    int nx_;
-
-    int numCells_;
-    int numNodes_;
-    int numEdges_;
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> meshNodes_;
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToNodeMap_;
-    Teuchos::RCP<Intrepid::FieldContainer<int>> meshCellToEdgeMap_;
-
-    Teuchos::RCP<std::vector<std::vector<Intrepid::FieldContainer<int>>>> meshSideSets_;
-
-public:
-    MeshManager_Interval(Teuchos::ParameterList &parlist)
-    {
-
-        // Geometry data
-        width_ = parlist.sublist("Geometry").get("Width", 1.0);
-        X0_ = parlist.sublist("Geometry").get("X0", 0.0);
-
-        // Mesh data
-        nx_ = parlist.sublist("Geometry").get("NX", 10);
-
-        numCells_ = nx_;
-        numNodes_ = nx_ + 1;
-        numEdges_ = 2;
-
-        // Compute and store mesh data structures
-        computeNodes();
-        computeCellToNodeMap();
-        computeCellToEdgeMap();
-        computeSideSets();
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> getNodes() const
-    {
-        return meshNodes_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToNodeMap() const
-    {
-        return meshCellToNodeMap_;
-    }
-
-    Teuchos::RCP<Intrepid::FieldContainer<int>> getCellToEdgeMap() const
-    {
-        return meshCellToEdgeMap_;
-    }
-
-    Teuchos::RCP<std::vector<std::vector<Intrepid::FieldContainer<int>>>> getSideSets() const
-    {
-        return meshSideSets_;
-    }
-
-    int getNumCells() const
-    {
-        return numCells_;
-    }
-
-    int getNumNodes() const
-    {
-        return numNodes_;
-    } // getNumNodes
-
-    int getNumEdges() const
-    {
-        return numEdges_;
-    } // getNumEdges
-
-private:
-    void computeNodes()
-    {
-
-        meshNodes_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numNodes_, 1));
-        Intrepid::FieldContainer<Real> &nodes = *meshNodes_;
-
-        Real dx = width_ / nx_;
-
-        for (int i = 0; i < nx_; ++i)
-        {
-            nodes(i, 0) = X0_ + i * dx;
-        }
-    } // computeNodes
-
-    void computeCellToNodeMap()
-    {
-
-        meshCellToNodeMap_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, 2));
-        Intrepid::FieldContainer<int> &ctn = *meshCellToNodeMap_;
-
-        for (int i = 0; i < nx_; ++i)
-        {
-            ctn(i, 0) = i;
-            ctn(i, 1) = i + 1;
-        }
-    } // computeCellToNodeMap
-
-    void computeCellToEdgeMap()
-    {
-
-        meshCellToEdgeMap_ = Teuchos::rcp(new Intrepid::FieldContainer<int>(numCells_, 1));
-        Intrepid::FieldContainer<int> &cte = *meshCellToEdgeMap_;
-
-        for (int i = 0; i < nx_; ++i)
-        {
-            cte(i, 0) = i;
-        }
-    }
-
-    void computeSideSets()
-    {
-
-        using Intrepid::FieldContainer;
-        using std::vector;
-
-        meshSideSets_ = Teuchos::rcp(new vector<vector<FieldContainer<int>>>(1));
-        int numSides = 2;
-
-        (*meshSideSets_)[0].resize(numSides);
-        (*meshSideSets_)[0][0](0) = 0;
-        (*meshSideSets_)[0][1](0) = numCells_ + 1;
-
-    } // computeSideSets
-
-}; // MeshManager_Interval
-
-#endif
diff --git a/tlnos/src/constraint.hpp b/tlnos/src/constraint.hpp
deleted file mode 100644
index 538c89fb..00000000
--- a/tlnos/src/constraint.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  constraint.hpp
-    \brief Defines the SimOpt constraint for the 'poisson' example.
-*/
-
-#ifndef ROL_PDEOPT_POISSON_CONSTRAINT_H
-#define ROL_PDEOPT_POISSON_CONSTRAINT_H
-
-#include "ROL_EqualityConstraint_SimOpt.hpp"
-#include "ROL_TpetraMultiVector.hpp"
-#include "Amesos2.hpp"
-#include "data.hpp"
-
-template <class Real>
-class EqualityConstraint_PDEOPT_Poisson : public ROL::EqualityConstraint_SimOpt<Real>
-{
-private:
-    Teuchos::RCP<PoissonData<Real>> data_;
-
-public:
-    EqualityConstraint_PDEOPT_Poisson(const Teuchos::RCP<PoissonData<Real>> &data,
-                                      const Teuchos::RCP<Teuchos::ParameterList> &parlist)
-    {
-        data_ = data;
-    }
-
-    using ROL::EqualityConstraint_SimOpt<Real>::value;
-    void value(ROL::Vector<Real> &c, const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> cp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(c)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> up =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(u)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> zp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(z)).getVector();
-
-        Real one(1);
-
-        // A*u
-        data_->getMatA()->apply(*up, *cp);
-
-        // B*z + A*u
-        data_->getMatB()->apply(*zp, *cp, Teuchos::NO_TRANS, one, one);
-
-        // A*u + B*z - f
-        cp->update(-one, *(data_->getVecF()), one);
-    }
-
-    void applyJacobian_1(ROL::Vector<Real> &jv, const ROL::Vector<Real> &v, const ROL::Vector<Real> &u,
-                         const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> jvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(jv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        // A*v
-        data_->getMatA()->apply(*vp, *jvp);
-    }
-
-    void applyJacobian_2(ROL::Vector<Real> &jv, const ROL::Vector<Real> &v, const ROL::Vector<Real> &u,
-                         const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> jvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(jv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        // B*v
-        data_->getMatB()->apply(*vp, *jvp);
-    }
-
-    void applyAdjointJacobian_1(ROL::Vector<Real> &ajv, const ROL::Vector<Real> &v, const ROL::Vector<Real> &u,
-                                const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> ajvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(ajv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        // A'*v
-        bool transpose = true;
-        data_->getMatA(transpose)->apply(*vp, *ajvp);
-    }
-
-    void applyAdjointJacobian_2(ROL::Vector<Real> &ajv, const ROL::Vector<Real> &v, const ROL::Vector<Real> &u,
-                                const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> ajvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(ajv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        // B'*v
-        bool transpose = true;
-        data_->getMatB(transpose)->apply(*vp, *ajvp);
-    }
-
-    void applyAdjointHessian_11(ROL::Vector<Real> &ahwv, const ROL::Vector<Real> &w, const ROL::Vector<Real> &v,
-                                const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        ahwv.zero();
-    }
-
-    void applyAdjointHessian_12(ROL::Vector<Real> &ahwv, const ROL::Vector<Real> &w, const ROL::Vector<Real> &v,
-                                const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        ahwv.zero();
-    }
-
-    void applyAdjointHessian_21(ROL::Vector<Real> &ahwv, const ROL::Vector<Real> &w, const ROL::Vector<Real> &v,
-                                const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        ahwv.zero();
-    }
-
-    void applyAdjointHessian_22(ROL::Vector<Real> &ahwv, const ROL::Vector<Real> &w, const ROL::Vector<Real> &v,
-                                const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        ahwv.zero();
-    }
-
-    void applyInverseJacobian_1(ROL::Vector<Real> &ijv, const ROL::Vector<Real> &v, const ROL::Vector<Real> &u,
-                                const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> ijvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(ijv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        data_->getSolver()->setX(ijvp);
-        data_->getSolver()->setB(vp);
-        data_->getSolver()->solve();
-
-        /*    
-    // Construct solver using Amesos2 factory.
-    Teuchos::RCP<Amesos2::Solver< Tpetra::CrsMatrix<>, Tpetra::MultiVector<> > > solver;
-    try{
-      solver = Amesos2::create< Tpetra::CrsMatrix<>,Tpetra::MultiVector<> >("KLU2", data_->getMatA(), ijvp, vp);
-    } catch (std::invalid_argument e) {
-      std::cout << e.what() << std::endl;
-    }
-    solver->numericFactorization();
-    solver->solve();
-    */
-    }
-
-    void applyInverseAdjointJacobian_1(ROL::Vector<Real> &iajv, const ROL::Vector<Real> &v, const ROL::Vector<Real> &u,
-                                       const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> iajvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(iajv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        bool transpose = true;
-        data_->getSolver(transpose)->setX(iajvp);
-        data_->getSolver(transpose)->setB(vp);
-        data_->getSolver(transpose)->solve();
-
-        /*
-    bool transpose = true;
-    // Construct solver using Amesos2 factory.
-    Teuchos::RCP<Amesos2::Solver< Tpetra::CrsMatrix<>, Tpetra::MultiVector<> > > solver;
-    try{
-      solver = Amesos2::create< Tpetra::CrsMatrix<>,Tpetra::MultiVector<> >("KLU2", data_->getMatA(transpose), iajvp, vp);
-    } catch (std::invalid_argument e) {
-      std::cout << e.what() << std::endl;
-    }
-    solver->numericFactorization();
-    solver->solve();
-    */
-    }
-};
-
-#endif
diff --git a/tlnos/src/data.hpp b/tlnos/src/data.hpp
deleted file mode 100644
index b1c080a0..00000000
--- a/tlnos/src/data.hpp
+++ /dev/null
@@ -1,843 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  data.hpp
-    \brief Generates and manages data for the Poisson example, including
-           all mesh and discretization data, matrices, etc.
-*/
-
-#ifndef ROL_PDEOPT_POISSON_DATA_H
-#define ROL_PDEOPT_POISSON_DATA_H
-
-#include "Teuchos_GlobalMPISession.hpp"
-#include "Teuchos_TimeMonitor.hpp"
-
-#include "Tpetra_DefaultPlatform.hpp"
-#include "Tpetra_MultiVector.hpp"
-#include "Tpetra_Vector.hpp"
-#include "Tpetra_CrsGraph.hpp"
-#include "Tpetra_CrsMatrix.hpp"
-#include "Tpetra_Version.hpp"
-#include "Tpetra_RowMatrixTransposer.hpp"
-#include "MatrixMarket_Tpetra.hpp"
-
-#include "Intrepid_HGRAD_QUAD_C2_FEM.hpp"
-#include "Intrepid_HGRAD_QUAD_C1_FEM.hpp"
-#include "Intrepid_DefaultCubatureFactory.hpp"
-#include "Intrepid_FunctionSpaceTools.hpp"
-#include "Intrepid_CellTools.hpp"
-
-#include "Amesos2.hpp"
-
-#include "TOOLS/dofmanager.hpp"
-
-template <class Real>
-class PoissonData
-{
-
-private:
-    Teuchos::RCP<MeshManager<Real>> meshMgr_;
-    Teuchos::RCP<DofManager<Real>> dofMgr_;
-    std::vector<Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>>> basisPtrs_;
-
-    Teuchos::RCP<const Teuchos::Comm<int>> commPtr_;
-    int myRank_;
-    int numProcs_;
-
-    Real alpha_;
-    int basisOrder_;
-
-    Teuchos::RCP<const Tpetra::Map<>> myOverlapMap_;
-    Teuchos::RCP<const Tpetra::Map<>> myUniqueMap_;
-    Teuchos::RCP<Tpetra::CrsGraph<>> matGraph_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matA_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matA_dirichlet_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matA_dirichlet_trans_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matM_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matM_dirichlet_;
-    Teuchos::RCP<Tpetra::CrsMatrix<>> matM_dirichlet_trans_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecUd_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecF_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecF_overlap_;
-    Teuchos::RCP<Tpetra::MultiVector<>> vecF_dirichlet_;
-
-    Teuchos::Array<int> myCellIds_;
-
-    Teuchos::RCP<Amesos2::Solver<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>> solverA_;
-    Teuchos::RCP<Amesos2::Solver<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>> solverA_trans_;
-
-    shards::CellTopology cellType_;
-    int spaceDim_;
-    int numNodesPerCell_;
-    int numCubPoints_;
-
-    int totalNumCells_;
-    int totalNumDofs_;
-    int numCells_;
-
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cubPoints_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cubWeights_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellNodes_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellJac_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellJacInv_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellJacDet_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cellWeightedMeasure_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valReference_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradReference_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valPhysicalWeighted_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradPhysicalWeighted_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> gradgradMats_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> valvalMats_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> cubPointsPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dataF_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> datavalVecF_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dofPoints_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dofPointsPhysical_;
-    Teuchos::RCP<Intrepid::FieldContainer<Real>> dataUd_;
-
-public:
-    PoissonData(const Teuchos::RCP<const Teuchos::Comm<int>> &comm,
-                const Teuchos::RCP<Teuchos::ParameterList> &parlist,
-                const Teuchos::RCP<std::ostream> &outStream)
-    {
-
-        /************************************/
-        /*** Retrieve communication data. ***/
-        /************************************/
-        commPtr_ = comm;
-        myRank_ = commPtr_->getRank();
-        numProcs_ = commPtr_->getSize();
-        *outStream << "Total number of processors: " << numProcs_ << std::endl;
-        /************************************/
-        /************************************/
-
-        /*************************************/
-        /*** Retrieve parameter list data. ***/
-        /*************************************/
-        alpha_ = parlist->sublist("Problem").get("Penalty", 1e-2);
-        basisOrder_ = parlist->sublist("Problem").get("Order of FE discretization", 1);
-        int cellSplit = parlist->sublist("Geometry").get("Partition type", 1);
-        /*************************************/
-        /*************************************/
-
-        /****************************************************************************/
-        /*** Initialize mesh / finite element fields / degree-of-freedom manager. ***/
-        /****************************************************************************/
-
-        // Mesh manager.
-        meshMgr_ = Teuchos::rcp(new MeshManager_Rectangle<Real>(*parlist));
-        printMeshData(*outStream);
-        // Finite element fields.
-        Teuchos::RCP<Intrepid::Basis<Real, Intrepid::FieldContainer<Real>>> basisPtr;
-        if (basisOrder_ == 1)
-        {
-            basisPtr = Teuchos::rcp(new Intrepid::Basis_HGRAD_QUAD_C1_FEM<Real, Intrepid::FieldContainer<Real>>);
-        }
-        else if (basisOrder_ == 2)
-        {
-            basisPtr = Teuchos::rcp(new Intrepid::Basis_HGRAD_QUAD_C2_FEM<Real, Intrepid::FieldContainer<Real>>);
-        }
-        basisPtrs_.resize(1, Teuchos::null);
-        basisPtrs_[0] = basisPtr;
-        // DOF coordinate interface.
-        Teuchos::RCP<Intrepid::DofCoordsInterface<Intrepid::FieldContainer<Real>>> coord_iface =
-            Teuchos::rcp_dynamic_cast<Intrepid::DofCoordsInterface<Intrepid::FieldContainer<Real>>>(basisPtrs_[0]);
-        // Degree-of-freedom manager.
-        dofMgr_ = Teuchos::rcp(new DofManager<Real>(meshMgr_, basisPtrs_));
-        // Retrieve total number of cells in the mesh.
-        totalNumCells_ = meshMgr_->getNumCells();
-        // Retrieve total number of degrees of freedom in the mesh.
-        totalNumDofs_ = dofMgr_->getNumDofs();
-
-        /****************************************************************************/
-        /****************************************************************************/
-
-        /****************************************************/
-        /*** Build parallel communication infrastructure. ***/
-        /****************************************************/
-
-        // Partition the cells in the mesh.  We use a basic quasi-equinumerous partitioning,
-        // where the remainder, if any, is assigned to the last processor.
-        Teuchos::Array<int> myGlobIds_;
-        Teuchos::Array<int> cellOffsets_(numProcs_, 0);
-        int cellsPerProc = totalNumCells_ / numProcs_;
-        numCells_ = cellsPerProc;
-        switch (cellSplit)
-        {
-        case 0:
-            if (myRank_ == 0)
-            { // remainder in the first
-                numCells_ += totalNumCells_ % numProcs_;
-            }
-            for (int i = 1; i < numProcs_; ++i)
-            {
-                cellOffsets_[i] = cellOffsets_[i - 1] + cellsPerProc + (static_cast<int>(i == 1)) * (totalNumCells_ % numProcs_);
-            }
-            break;
-        case 1:
-            if (myRank_ == numProcs_ - 1)
-            { // remainder in the last
-                numCells_ += totalNumCells_ % numProcs_;
-            }
-            for (int i = 1; i < numProcs_; ++i)
-            {
-                cellOffsets_[i] = cellOffsets_[i - 1] + cellsPerProc;
-            }
-            break;
-        case 2:
-            if (myRank_ < (totalNumCells_ % numProcs_))
-            { // spread remainder, starting from the first
-                numCells_++;
-            }
-            for (int i = 1; i < numProcs_; ++i)
-            {
-                cellOffsets_[i] = cellOffsets_[i - 1] + cellsPerProc + (static_cast<int>(i - 1 < (totalNumCells_ % numProcs_)));
-            }
-            break;
-        }
-        Intrepid::FieldContainer<int> &cellDofs = *(dofMgr_->getCellDofs());
-        int numLocalDofs = cellDofs.dimension(1);
-        *outStream << "Cell offsets across processors: " << cellOffsets_ << std::endl;
-        for (int i = 0; i < numCells_; ++i)
-        {
-            myCellIds_.push_back(cellOffsets_[myRank_] + i);
-            for (int j = 0; j < numLocalDofs; ++j)
-            {
-                myGlobIds_.push_back(cellDofs(cellOffsets_[myRank_] + i, j));
-            }
-        }
-        std::sort(myGlobIds_.begin(), myGlobIds_.end());
-        myGlobIds_.erase(std::unique(myGlobIds_.begin(), myGlobIds_.end()), myGlobIds_.end());
-
-        // Build maps.
-        myOverlapMap_ = Teuchos::rcp(new Tpetra::Map<>(Teuchos::OrdinalTraits<Tpetra::global_size_t>::invalid(),
-                                                       myGlobIds_, 0, comm));
-        //std::cout << std::endl << myOverlapMap_->getNodeElementList();
-        /** One can also use the non-member function:
-          myOverlapMap_ = Tpetra::createNonContigMap<int,int>(myGlobIds_, comm);
-        to build the overlap map.
-    **/
-        myUniqueMap_ = Tpetra::createOneToOne<int, int>(myOverlapMap_);
-        //std::cout << std::endl << myUniqueMap_->getNodeElementList() << std::endl;
-
-        /****************************************************/
-        /****************************************************/
-
-        /****************************************************/
-        /*** Set up local discretization data and arrays. ***/
-        /****************************************************/
-
-        // Retrieve some basic cell information.
-        cellType_ = (basisPtrs_[0])->getBaseCellTopology(); // get the cell type from any basis
-        spaceDim_ = cellType_.getDimension();               // retrieve spatial dimension
-        numNodesPerCell_ = cellType_.getNodeCount();        // retrieve number of nodes per cell
-
-        // Cubature data.
-        Intrepid::DefaultCubatureFactory<Real> cubFactory;                                        // create cubature factory
-        int cubDegree = 4;                                                                        // set cubature degree, e.g., 2
-        Teuchos::RCP<Intrepid::Cubature<Real>> cellCub = cubFactory.create(cellType_, cubDegree); // create default cubature
-        numCubPoints_ = cellCub->getNumPoints();                                                  // retrieve number of cubature points
-
-        int lfs = dofMgr_->getLocalFieldSize(0);
-
-        // Discretization data.
-        cubPoints_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCubPoints_, spaceDim_));
-        cubWeights_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCubPoints_));
-        cubPointsPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_, spaceDim_));
-        dofPoints_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(lfs, spaceDim_));
-        dofPointsPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs, spaceDim_));
-        cellNodes_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numNodesPerCell_, spaceDim_));
-        cellJac_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_, spaceDim_, spaceDim_));
-        cellJacInv_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_, spaceDim_, spaceDim_));
-        cellJacDet_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_));
-        cellWeightedMeasure_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_));
-        valReference_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(lfs, numCubPoints_));
-        gradReference_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(lfs, numCubPoints_, spaceDim_));
-        valPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs, numCubPoints_));
-        gradPhysical_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs, numCubPoints_, spaceDim_));
-        valPhysicalWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs, numCubPoints_));
-        gradPhysicalWeighted_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs, numCubPoints_, spaceDim_));
-        gradgradMats_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs, lfs));
-        valvalMats_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs, lfs));
-        dataF_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, numCubPoints_));
-        datavalVecF_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs));
-        dataUd_ = Teuchos::rcp(new Intrepid::FieldContainer<Real>(numCells_, lfs));
-
-        // Geometric definition of the cells in the mesh, based on the cell-to-node map and the domain partition.
-        Intrepid::FieldContainer<Real> &nodes = *meshMgr_->getNodes();
-        Intrepid::FieldContainer<int> &ctn = *meshMgr_->getCellToNodeMap();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numNodesPerCell_; ++j)
-            {
-                for (int k = 0; k < spaceDim_; ++k)
-                {
-                    (*cellNodes_)(i, j, k) = nodes(ctn(myCellIds_[i], j), k);
-                }
-            }
-        }
-
-        /****************************************************/
-        /****************************************************/
-
-        /****************************************************************/
-        /*** Assemble cellwise contributions to vectors and matrices. ***/
-        /****************************************************************/
-
-        cellCub->getCubature(*cubPoints_, *cubWeights_);                                   // retrieve cubature points and weights
-        (*basisPtrs_[0]).getValues(*gradReference_, *cubPoints_, Intrepid::OPERATOR_GRAD); // evaluate grad operator at cubature points
-        (*basisPtrs_[0]).getValues(*valReference_, *cubPoints_, Intrepid::OPERATOR_VALUE); // evaluate value operator at cubature points
-
-        Intrepid::CellTools<Real>::setJacobian(*cellJac_, *cubPoints_, *cellNodes_, cellType_); // compute cell Jacobians
-        Intrepid::CellTools<Real>::setJacobianInv(*cellJacInv_, *cellJac_);                     // compute inverses of cell Jacobians
-        Intrepid::CellTools<Real>::setJacobianDet(*cellJacDet_, *cellJac_);                     // compute determinants of cell Jacobians
-
-        Intrepid::FunctionSpaceTools::computeCellMeasure<Real>(*cellWeightedMeasure_, // compute weighted cell measure
-                                                               *cellJacDet_,
-                                                               *cubWeights_);
-
-        Intrepid::FunctionSpaceTools::HGRADtransformGRAD<Real>(*gradPhysical_, // transform reference gradients into physical space
-                                                               *cellJacInv_,
-                                                               *gradReference_);
-        Intrepid::FunctionSpaceTools::multiplyMeasure<Real>(*gradPhysicalWeighted_, // multiply with weighted measure
-                                                            *cellWeightedMeasure_,
-                                                            *gradPhysical_);
-        Intrepid::FunctionSpaceTools::integrate<Real>(*gradgradMats_, // compute local grad.grad (stiffness) matrices
-                                                      *gradPhysical_,
-                                                      *gradPhysicalWeighted_,
-                                                      Intrepid::COMP_CPP);
-
-        Intrepid::FunctionSpaceTools::HGRADtransformVALUE<Real>(*valPhysical_, // transform reference values into physical space
-                                                                *valReference_);
-        Intrepid::FunctionSpaceTools::multiplyMeasure<Real>(*valPhysicalWeighted_, // multiply with weighted measure
-                                                            *cellWeightedMeasure_,
-                                                            *valPhysical_);
-        Intrepid::FunctionSpaceTools::integrate<Real>(*valvalMats_, // compute local val.val (mass) matrices
-                                                      *valPhysical_,
-                                                      *valPhysicalWeighted_,
-                                                      Intrepid::COMP_CPP);
-
-        Intrepid::CellTools<Real>::mapToPhysicalFrame(*cubPointsPhysical_, // map reference cubature points to physical space
-                                                      *cubPoints_,
-                                                      *cellNodes_,
-                                                      cellType_);
-        for (int i = 0; i < numCells_; ++i)
-        { // evaluate functions at these points
-            for (int j = 0; j < numCubPoints_; ++j)
-            {
-                (*dataF_)(i, j) = funcRHS((*cubPointsPhysical_)(i, j, 0), (*cubPointsPhysical_)(i, j, 1));
-            }
-        }
-        Intrepid::FunctionSpaceTools::integrate<Real>(*datavalVecF_, // compute local data.val vectors for RHS F
-                                                      *dataF_,
-                                                      *valPhysicalWeighted_,
-                                                      Intrepid::COMP_CPP);
-
-        coord_iface->getDofCoords(*dofPoints_);                            // get coordinates of DOFs in reference cell
-        Intrepid::CellTools<Real>::mapToPhysicalFrame(*dofPointsPhysical_, // map reference DOF locations to physical space
-                                                      *dofPoints_,
-                                                      *cellNodes_,
-                                                      cellType_);
-        for (int i = 0; i < numCells_; ++i)
-        { // evaluate functions at these points
-            for (int j = 0; j < lfs; ++j)
-            {
-                (*dataUd_)(i, j) = funcTarget((*dofPointsPhysical_)(i, j, 0), (*dofPointsPhysical_)(i, j, 1));
-            }
-        }
-
-        /****************************************************************/
-        /****************************************************************/
-
-        /****************************************/
-        /*** Assemble global data structures. ***/
-        /****************************************/
-
-        // Assemble graph.
-        matGraph_ = Teuchos::rcp(new Tpetra::CrsGraph<>(myUniqueMap_, 0));
-        Teuchos::ArrayRCP<const int> cellDofsArrayRCP = cellDofs.getData();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs; ++j)
-            {
-                matGraph_->insertGlobalIndices(cellDofs(myCellIds_[i], j), cellDofsArrayRCP(myCellIds_[i] * numLocalDofs, numLocalDofs));
-            }
-        }
-        matGraph_->fillComplete();
-
-        // Assemble matrices.
-        // Stiffness matrix A.
-        matA_ = Tpetra::rcp(new Tpetra::CrsMatrix<>(matGraph_));
-        int numLocalMatEntries = numLocalDofs * numLocalDofs;
-        Teuchos::ArrayRCP<const Real> gradgradArrayRCP = gradgradMats_->getData();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs; ++j)
-            {
-                matA_->sumIntoGlobalValues(cellDofs(myCellIds_[i], j),
-                                           cellDofsArrayRCP(myCellIds_[i] * numLocalDofs, numLocalDofs),
-                                           gradgradArrayRCP(i * numLocalMatEntries + j * numLocalDofs, numLocalDofs));
-            }
-        }
-        matA_->fillComplete();
-
-        // Mass matrix M.
-        matM_ = Tpetra::rcp(new Tpetra::CrsMatrix<>(matGraph_));
-        Teuchos::ArrayRCP<const Real> valvalArrayRCP = valvalMats_->getData();
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs; ++j)
-            {
-                matM_->sumIntoGlobalValues(cellDofs(myCellIds_[i], j),
-                                           cellDofsArrayRCP(myCellIds_[i] * numLocalDofs, numLocalDofs),
-                                           valvalArrayRCP(i * numLocalMatEntries + j * numLocalDofs, numLocalDofs));
-            }
-        }
-        matM_->fillComplete();
-
-        // Assemble vectors.
-        // vecF_ requires assembly using vecF_overlap_ and redistribution
-        vecF_ = Tpetra::rcp(new Tpetra::MultiVector<>(matA_->getRangeMap(), 1, true));
-        vecF_overlap_ = Tpetra::rcp(new Tpetra::MultiVector<>(myOverlapMap_, 1, true));
-        for (int i = 0; i < numCells_; ++i)
-        { // assembly on the overlap map
-            for (int j = 0; j < numLocalDofs; ++j)
-            {
-                vecF_overlap_->sumIntoGlobalValue(cellDofs(myCellIds_[i], j),
-                                                  0,
-                                                  (*datavalVecF_)[i * numLocalDofs + j]);
-            }
-        }
-        Tpetra::Export<> exporter(vecF_overlap_->getMap(), vecF_->getMap()); // redistribution:
-        vecF_->doExport(*vecF_overlap_, exporter, Tpetra::ADD);              // from the overlap map to the unique map
-        // vecUd_ does not require assembly
-        vecUd_ = Tpetra::rcp(new Tpetra::MultiVector<>(matA_->getDomainMap(), 1, true));
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < numLocalDofs; ++j)
-            {
-                if (vecUd_->getMap()->isNodeGlobalElement(cellDofs(myCellIds_[i], j)))
-                {
-                    vecUd_->replaceGlobalValue(cellDofs(myCellIds_[i], j),
-                                               0,
-                                               (*dataUd_)[i * numLocalDofs + j]);
-                }
-            }
-        }
-
-        // Apply Dirichlet conditions.
-        // Stiffness matrix with Dirichlet conditions:
-        //  AD = [ A11  A12 ]  where A = [ A11 A12 ]
-        //       [  0    I  ]            [ A21 A22 ]
-        // Mass matrix with Dirichlet conditions:
-        //  MD = [ M11  M12 ]  where M = [ M11 M12 ]
-        //       [  0    0  ]            [ M21 M22 ]
-        // Vector F with Dirichlet conditions G:
-        //  FD = [ F1 ]  where F = [ F1 ]
-        //       [ G  ]            [ F2 ]
-        Teuchos::RCP<Tpetra::Details::DefaultTypes::node_type> node = matA_->getNode();
-        matA_dirichlet_ = matA_->clone(node);
-        matM_dirichlet_ = matM_->clone(node);
-        vecF_dirichlet_ = Tpetra::rcp(new Tpetra::MultiVector<>(matA_->getRangeMap(), 1, true));
-        Tpetra::deep_copy(*vecF_dirichlet_, *vecF_);
-        Teuchos::RCP<std::vector<std::vector<Intrepid::FieldContainer<int>>>> dirichletSideSets = meshMgr_->getSideSets();
-        std::vector<std::vector<Intrepid::FieldContainer<int>>> &dss = *dirichletSideSets;
-        Teuchos::Array<int> mySortedCellIds_(myCellIds_);
-        std::sort(mySortedCellIds_.begin(), mySortedCellIds_.end());
-        mySortedCellIds_.erase(std::unique(mySortedCellIds_.begin(), mySortedCellIds_.end()), mySortedCellIds_.end());
-        std::vector<Teuchos::Array<int>> myDirichletCellIds_(dss[0].size());
-        for (int i = 0; i < static_cast<int>(dss[0].size()); ++i)
-        {
-            for (int j = 0; j < dss[0][i].dimension(0); ++j)
-            {
-                if (std::binary_search(mySortedCellIds_.begin(), mySortedCellIds_.end(), dss[0][i](j)))
-                {
-                    myDirichletCellIds_[i].push_back(dss[0][i](j));
-                }
-            }
-        }
-        Intrepid::FieldContainer<int> &cte = *(meshMgr_->getCellToEdgeMap());
-        Intrepid::FieldContainer<int> &nodeDofs = *(dofMgr_->getNodeDofs());
-        Intrepid::FieldContainer<int> &edgeDofs = *(dofMgr_->getEdgeDofs());
-        std::vector<std::vector<int>> dofTags = (basisPtrs_[0])->getAllDofTags();
-        int numDofsPerNode = 0;
-        int numDofsPerEdge = 0;
-        for (int j = 0; j < (basisPtrs_[0])->getCardinality(); ++j)
-        {
-            if (dofTags[j][0] == 0)
-            {
-                numDofsPerNode = dofTags[j][3];
-            }
-            if (dofTags[j][0] == 1)
-            {
-                numDofsPerEdge = dofTags[j][3];
-            }
-        }
-        Teuchos::Array<int> myDirichletDofs_;
-        for (int i = 0; i < static_cast<int>(myDirichletCellIds_.size()); ++i)
-        {
-            for (int j = 0; j < myDirichletCellIds_[i].size(); ++j)
-            {
-                for (int k = 0; k < numDofsPerNode; ++k)
-                {
-                    const CellTopologyData *ctd = cellType_.getCellTopologyData();
-                    Teuchos::ArrayView<unsigned> locNodes(const_cast<unsigned *>(ctd->subcell[spaceDim_ - 1][i].node), cellType_.getVertexCount(spaceDim_ - 1, i));
-                    for (int l = 0; l < static_cast<int>(cellType_.getVertexCount(spaceDim_ - 1, i)); ++l)
-                    {
-                        myDirichletDofs_.push_back(nodeDofs(ctn(myDirichletCellIds_[i][j], locNodes[l]), k));
-                    }
-                }
-                for (int k = 0; k < numDofsPerEdge; ++k)
-                {
-                    myDirichletDofs_.push_back(edgeDofs(cte(myDirichletCellIds_[i][j], i), k));
-                }
-            }
-        }
-        std::sort(myDirichletDofs_.begin(), myDirichletDofs_.end());
-        myDirichletDofs_.erase(std::unique(myDirichletDofs_.begin(), myDirichletDofs_.end()), myDirichletDofs_.end());
-        matA_dirichlet_->resumeFill();
-        matM_dirichlet_->resumeFill();
-        for (int i = 0; i < myDirichletDofs_.size(); ++i)
-        {
-            if (myUniqueMap_->isNodeGlobalElement(myDirichletDofs_[i]))
-            {
-                size_t numRowEntries = matA_dirichlet_->getNumEntriesInGlobalRow(myDirichletDofs_[i]);
-                Teuchos::Array<int> indices(numRowEntries, 0);
-                Teuchos::Array<Real> values(numRowEntries, 0);
-                Teuchos::Array<Real> canonicalValues(numRowEntries, 0);
-                Teuchos::Array<Real> zeroValues(numRowEntries, 0);
-                matA_dirichlet_->getGlobalRowCopy(myDirichletDofs_[i], indices, values, numRowEntries);
-                matM_dirichlet_->getGlobalRowCopy(myDirichletDofs_[i], indices, values, numRowEntries);
-                for (int j = 0; j < indices.size(); ++j)
-                {
-                    if (myDirichletDofs_[i] == indices[j])
-                    {
-                        canonicalValues[j] = 1.0;
-                    }
-                }
-                matA_dirichlet_->replaceGlobalValues(myDirichletDofs_[i], indices, canonicalValues);
-                matM_dirichlet_->replaceGlobalValues(myDirichletDofs_[i], indices, zeroValues);
-                vecF_dirichlet_->replaceGlobalValue(myDirichletDofs_[i], 0, 0);
-            }
-        }
-        matA_dirichlet_->fillComplete();
-        matM_dirichlet_->fillComplete();
-
-        // Create matrix transposes.
-        Tpetra::RowMatrixTransposer<> transposerA(matA_dirichlet_);
-        Tpetra::RowMatrixTransposer<> transposerM(matM_dirichlet_);
-        matA_dirichlet_trans_ = transposerA.createTranspose();
-        matM_dirichlet_trans_ = transposerM.createTranspose();
-
-        /*********************************/
-        /*** Construct solver objects. ***/
-        /*********************************/
-
-        // Construct solver using Amesos2 factory.
-        try
-        {
-            solverA_ = Amesos2::create<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>("KLU2", matA_dirichlet_);
-        }
-        catch (std::invalid_argument e)
-        {
-            std::cout << e.what() << std::endl;
-        }
-        try
-        {
-            solverA_trans_ = Amesos2::create<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>("KLU2", matA_dirichlet_trans_);
-        }
-        catch (std::invalid_argument e)
-        {
-            std::cout << e.what() << std::endl;
-        }
-        solverA_->numericFactorization();
-        solverA_trans_->numericFactorization();
-
-        /****************************************/
-        /****************************************/
-
-        //outputTpetraData();
-    }
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatA(const bool &transpose = false) const
-    {
-        if (transpose)
-        {
-            return matA_dirichlet_trans_;
-        }
-        else
-        {
-            return matA_dirichlet_;
-        }
-    }
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatB(const bool &transpose = false) const
-    {
-        if (transpose)
-        {
-            return matM_dirichlet_trans_;
-        }
-        else
-        {
-            return matM_dirichlet_;
-        }
-    }
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatM() const
-    {
-        return matM_;
-    }
-
-    Teuchos::RCP<Tpetra::CrsMatrix<>> getMatR() const
-    {
-        return matM_;
-    }
-
-    Teuchos::RCP<Tpetra::MultiVector<>> getVecUd() const
-    {
-        return vecUd_;
-    }
-
-    Teuchos::RCP<Tpetra::MultiVector<>> getVecF() const
-    {
-        return vecF_dirichlet_;
-    }
-
-    Teuchos::RCP<Amesos2::Solver<Tpetra::CrsMatrix<>, Tpetra::MultiVector<>>> getSolver(const bool &transpose = false) const
-    {
-        if (transpose)
-        {
-            return solverA_trans_;
-        }
-        else
-        {
-            return solverA_;
-        }
-    }
-
-    Real funcRHS(const Real &x1, const Real &x2) const
-    {
-        return 2.0 * M_PI * M_PI * std::sin(M_PI * x1) * std::sin(M_PI * x2) + (1.0 / (alpha_ * 128.0 * M_PI * M_PI)) * std::sin(8.0 * M_PI * x1) * std::sin(8.0 * M_PI * x2);
-    }
-
-    Real funcTarget(const Real &x1, const Real &x2) const
-    {
-        return std::sin(M_PI * x1) * std::sin(M_PI * x2) - std::sin(8.0 * M_PI * x1) * std::sin(8.0 * M_PI * x2);
-    }
-
-    Real funcStateSolution(const Real &x1, const Real &x2) const
-    {
-        return std::sin(M_PI * x1) * std::sin(M_PI * x2);
-    }
-
-    Real computeStateError(const Teuchos::RCP<const Tpetra::MultiVector<>> &soln) const
-    {
-
-        Teuchos::RCP<Tpetra::MultiVector<>> soln_overlap =
-            Tpetra::rcp(new Tpetra::MultiVector<>(vecF_overlap_->getMap(), 1, true));
-        Tpetra::Import<> importer(vecUd_->getMap(), soln_overlap->getMap()); // redistribution:
-        soln_overlap->doImport(*soln, importer, Tpetra::REPLACE);            // from the unique map to the overlap map
-
-        Intrepid::DefaultCubatureFactory<Real> cubFactory;                                     // create cubature factory
-        int cubDeg = 6;                                                                        // set cubature degree, e.g., 6
-        Teuchos::RCP<Intrepid::Cubature<Real>> cellCub = cubFactory.create(cellType_, cubDeg); // create cubature for error computation
-        int numCubPts = cellCub->getNumPoints();                                               // retrieve number of cubature points
-        int lfs = dofMgr_->getLocalFieldSize(0);
-        Intrepid::FieldContainer<Real> cubPts(numCubPts, spaceDim_);
-        Intrepid::FieldContainer<Real> cubWts(numCubPts);
-        Intrepid::FieldContainer<Real> cubPtsPhys(numCells_, numCubPts, spaceDim_);
-        Intrepid::FieldContainer<Real> jac(numCells_, numCubPts, spaceDim_, spaceDim_);
-        Intrepid::FieldContainer<Real> jacDet(numCells_, numCubPts);
-        Intrepid::FieldContainer<Real> valRef(lfs, numCubPts);
-        Intrepid::FieldContainer<Real> valPhys(numCells_, lfs, numCubPts);
-        Intrepid::FieldContainer<Real> wtMeas(numCells_, numCubPts);
-        Intrepid::FieldContainer<Real> inCoeffs(numCells_, lfs);
-        Intrepid::FieldContainer<Real> funcVals(numCells_, numCubPts);
-        Intrepid::FieldContainer<Real> funcValsWt(numCells_, numCubPts);
-        Intrepid::FieldContainer<Real> normSquaredError(numCells_);
-
-        cellCub->getCubature(cubPts, cubWts);                                 // retrieve cubature points and weights
-        (*basisPtrs_[0]).getValues(valRef, cubPts, Intrepid::OPERATOR_VALUE); // evaluate value operator at cubature points
-
-        Intrepid::CellTools<Real>::setJacobian(jac, cubPts, *cellNodes_, cellType_); // compute cell Jacobians
-        Intrepid::CellTools<Real>::setJacobianDet(jacDet, jac);                      // compute determinants of cell Jacobians
-
-        Intrepid::FunctionSpaceTools::HGRADtransformVALUE<Real>(valPhys, // transform reference values into physical space
-                                                                valRef);
-
-        Intrepid::FunctionSpaceTools::computeCellMeasure<Real>(wtMeas, // compute weighted cell measure
-                                                               jacDet,
-                                                               cubWts);
-
-        Intrepid::CellTools<Real>::mapToPhysicalFrame(cubPtsPhys, // map reference cubature points to physical space
-                                                      cubPts,
-                                                      *cellNodes_,
-                                                      cellType_);
-
-        Intrepid::FieldContainer<int> &cellDofs = *(dofMgr_->getCellDofs());
-        Teuchos::ArrayRCP<const Real> soln_data = soln_overlap->get1dView(); // populate inCoeffs
-        for (int i = 0; i < numCells_; ++i)
-        {
-            for (int j = 0; j < lfs; ++j)
-            {
-                inCoeffs(i, j) = soln_data[soln_overlap->getMap()->getLocalElement(cellDofs(myCellIds_[i], j))];
-            }
-        }
-
-        Intrepid::FunctionSpaceTools::evaluate<Real>(funcVals, inCoeffs, valPhys);
-
-        for (int i = 0; i < numCells_; ++i)
-        { // compute error
-            for (int j = 0; j < numCubPts; ++j)
-            {
-                funcVals(i, j) -= funcStateSolution(cubPtsPhys(i, j, 0), cubPtsPhys(i, j, 1));
-            }
-        }
-
-        Intrepid::FunctionSpaceTools::scalarMultiplyDataData<Real>(funcValsWt, // multiply with weighted measure
-                                                                   wtMeas,
-                                                                   funcVals);
-
-        Intrepid::FunctionSpaceTools::integrate<Real>(normSquaredError, // compute norm squared of local error
-                                                      funcVals,
-                                                      funcValsWt,
-                                                      Intrepid::COMP_CPP);
-
-        Real localErrorSum(0);
-        Real globalErrorSum(0);
-        for (int i = 0; i < numCells_; ++i)
-        {
-            localErrorSum += normSquaredError(i);
-        }
-        Teuchos::RCP<const Teuchos::Comm<int>> comm = soln_overlap->getMap()->getComm();
-        Teuchos::reduceAll<int, Real>(*comm, Teuchos::REDUCE_SUM, 1, &localErrorSum, &globalErrorSum);
-
-        return globalErrorSum;
-    }
-
-    void printMeshData(std::ostream &outStream) const
-    {
-        Teuchos::RCP<Intrepid::FieldContainer<Real>> nodesPtr = meshMgr_->getNodes();
-        Teuchos::RCP<Intrepid::FieldContainer<int>> cellToNodeMapPtr = meshMgr_->getCellToNodeMap();
-        Intrepid::FieldContainer<Real> &nodes = *nodesPtr;
-        Intrepid::FieldContainer<int> &cellToNodeMap = *cellToNodeMapPtr;
-        outStream << "Number of nodes = " << meshMgr_->getNumNodes() << std::endl;
-        outStream << "Number of cells = " << meshMgr_->getNumCells() << std::endl;
-        outStream << "Number of edges = " << meshMgr_->getNumEdges() << std::endl;
-        // Print mesh to file.
-        if ((myRank_ == 0))
-        {
-            std::ofstream meshfile;
-            meshfile.open("cell_to_node_quad.txt");
-            for (int i = 0; i < cellToNodeMap.dimension(0); ++i)
-            {
-                for (int j = 0; j < cellToNodeMap.dimension(1); ++j)
-                {
-                    meshfile << cellToNodeMap(i, j) << "  ";
-                }
-                meshfile << std::endl;
-            }
-            meshfile.close();
-            meshfile.open("cell_to_node_tri.txt");
-            for (int i = 0; i < cellToNodeMap.dimension(0); ++i)
-            {
-                for (int j = 0; j < 3; ++j)
-                {
-                    meshfile << cellToNodeMap(i, j) << "  ";
-                }
-                meshfile << std::endl;
-                for (int j = 2; j < 5; ++j)
-                {
-                    meshfile << cellToNodeMap(i, j % 4) << "  ";
-                }
-                meshfile << std::endl;
-            }
-            meshfile.close();
-            meshfile.open("nodes.txt");
-            meshfile.precision(16);
-            for (int i = 0; i < nodes.dimension(0); ++i)
-            {
-                for (int j = 0; j < nodes.dimension(1); ++j)
-                {
-                    meshfile << std::scientific << nodes(i, j) << "  ";
-                }
-                meshfile << std::endl;
-            }
-            meshfile.close();
-            /* This somewhat clunky output is for gnuplot.
-      meshfile.open("mesh.txt");
-      for (int i=0; i<cellToNodeMap.dimension(0); ++i) {
-        meshfile << nodes(cellToNodeMap(i,0), 0) << "  " << nodes(cellToNodeMap(i,0), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,1), 0) << "  " << nodes(cellToNodeMap(i,1), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,2), 0) << "  " << nodes(cellToNodeMap(i,2), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,3), 0) << "  " << nodes(cellToNodeMap(i,3), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,0), 0) << "  " << nodes(cellToNodeMap(i,0), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,1), 0) << "  " << nodes(cellToNodeMap(i,1), 1) << std::endl;
-        meshfile << nodes(cellToNodeMap(i,2), 0) << "  " << nodes(cellToNodeMap(i,2), 1) << std::endl;
-      }
-      meshfile.close();
-      */
-        }
-    }
-
-    void outputTpetraData() const
-    {
-        Tpetra::MatrixMarket::Writer<Tpetra::CrsMatrix<>> matWriter;
-        matWriter.writeSparseFile("stiffness_mat", matA_);
-        matWriter.writeSparseFile("dirichlet_mat", matA_dirichlet_);
-        matWriter.writeSparseFile("mass_mat", matM_);
-        matWriter.writeDenseFile("Ud_vec", vecUd_);
-    }
-
-    void outputTpetraVector(const Teuchos::RCP<const Tpetra::MultiVector<>> &vec,
-                            const std::string &filename) const
-    {
-        Tpetra::MatrixMarket::Writer<Tpetra::CrsMatrix<>> vecWriter;
-        vecWriter.writeDenseFile(filename, vec);
-    }
-
-}; // class PoissonData
-
-#endif
diff --git a/tlnos/src/objective.hpp b/tlnos/src/objective.hpp
deleted file mode 100644
index 42c4e5b5..00000000
--- a/tlnos/src/objective.hpp
+++ /dev/null
@@ -1,177 +0,0 @@
-// @HEADER
-// ************************************************************************
-//
-//               Rapid Optimization Library (ROL) Package
-//                 Copyright (2014) Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions? Contact lead developers:
-//              Drew Kouri   (dpkouri@sandia.gov) and
-//              Denis Ridzal (dridzal@sandia.gov)
-//
-// ************************************************************************
-// @HEADER
-
-/*! \file  objective.hpp
-    \brief Defines the SimOpt objective function for the 'poisson' example.
-*/
-
-#ifndef ROL_PDEOPT_POISSON_OBJECTIVE_H
-#define ROL_PDEOPT_POISSON_OBJECTIVE_H
-
-#include "ROL_Objective_SimOpt.hpp"
-#include "ROL_TpetraMultiVector.hpp"
-#include "data.hpp"
-
-template <class Real>
-class Objective_PDEOPT_Poisson : public ROL::Objective_SimOpt<Real>
-{
-private:
-    Teuchos::RCP<PoissonData<Real>> data_;
-    Real alpha_;
-
-public:
-    Objective_PDEOPT_Poisson(const Teuchos::RCP<PoissonData<Real>> &data,
-                             const Teuchos::RCP<Teuchos::ParameterList> &parlist)
-    {
-        data_ = data;
-        alpha_ = parlist->sublist("Problem").get("Penalty parameter", 1e-2);
-    }
-
-    Real value(const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<const Tpetra::MultiVector<>> up =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(u)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> zp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(z)).getVector();
-
-        Teuchos::Array<Real> dotvalU(1, 0);
-        Teuchos::Array<Real> dotvalZ(1, 0);
-
-        // Set difference vector diffp to up.
-        Teuchos::RCP<Tpetra::MultiVector<>> diffp =
-            Teuchos::rcp(new Tpetra::MultiVector<>(*up, Teuchos::Copy));
-        // Temporary matvec vector.
-        Teuchos::RCP<Tpetra::MultiVector<>> matvecp =
-            Teuchos::rcp(new Tpetra::MultiVector<>(*up, Teuchos::Copy));
-
-        // (u-ud)
-        diffp->update(-1.0, *(data_->getVecUd()), 1.0);
-        // M*(u-ud)
-        data_->getMatM()->apply(*diffp, *matvecp);
-        // (u-ud)'*M*(u-ud)
-        diffp->dot(*matvecp, dotvalU);
-
-        // R*z
-        data_->getMatR()->apply(*zp, *matvecp);
-        // z'*R*z
-        zp->dot(*matvecp, dotvalZ);
-
-        // 1/2 * (u-ud)'*M*(u-ud) + alpha/2 * z'*R*z
-        return (0.5 * dotvalU[0] + 0.5 * alpha_ * dotvalZ[0]);
-    }
-
-    void gradient_1(ROL::Vector<Real> &g, const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> gp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(g)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> up =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(u)).getVector();
-
-        // Set difference vector diffp to up.
-        Teuchos::RCP<Tpetra::MultiVector<>> diffp =
-            Teuchos::rcp(new Tpetra::MultiVector<>(*up, Teuchos::Copy));
-        // (u-ud)
-        diffp->update(-1.0, *(data_->getVecUd()), 1.0);
-        // M*(u-ud)
-        data_->getMatM()->apply(*diffp, *gp);
-    }
-
-    void gradient_2(ROL::Vector<Real> &g, const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> gp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(g)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> zp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(z)).getVector();
-
-        // alpha * R*z
-        data_->getMatR()->apply(*zp, *gp);
-        gp->scale(alpha_);
-    }
-
-    void hessVec_11(ROL::Vector<Real> &hv, const ROL::Vector<Real> &v,
-                    const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> hvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(hv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        // M*v
-        data_->getMatM()->apply(*vp, *hvp);
-    }
-
-    void hessVec_12(ROL::Vector<Real> &hv, const ROL::Vector<Real> &v,
-                    const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> hvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(hv)).getVector();
-
-        // zero
-        hvp->scale(0);
-    }
-
-    void hessVec_21(ROL::Vector<Real> &hv, const ROL::Vector<Real> &v,
-                    const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> hvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(hv)).getVector();
-
-        // zero
-        hvp->scale(0);
-    }
-
-    void hessVec_22(ROL::Vector<Real> &hv, const ROL::Vector<Real> &v,
-                    const ROL::Vector<Real> &u, const ROL::Vector<Real> &z, Real &tol)
-    {
-        Teuchos::RCP<Tpetra::MultiVector<>> hvp =
-            (Teuchos::dyn_cast<ROL::TpetraMultiVector<Real>>(hv)).getVector();
-        Teuchos::RCP<const Tpetra::MultiVector<>> vp =
-            (Teuchos::dyn_cast<const ROL::TpetraMultiVector<Real>>(v)).getVector();
-
-        // alpha * R*v
-        data_->getMatR()->apply(*vp, *hvp);
-        hvp->scale(alpha_);
-    }
-};
-
-#endif
diff --git a/tlnos/src/tlnos.h b/tlnos/src/tlnos.h
deleted file mode 100644
index 208f1e93..00000000
--- a/tlnos/src/tlnos.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// global header of the "tlnos" module
-
-#ifndef TLNOS_H
-#define TLNOS_H
-
-#if defined(WIN32)
-#ifdef tlnos_EXPORTS
-#define TLNOS_API __declspec(dllexport)
-#else
-#define TLNOS_API __declspec(dllimport)
-#endif
-#else
-#define TLNOS_API
-#endif
-
-#include "tbox.h"
-
-/**
- * @brief this namespace avoids conflicts with similar names in other modules
- */
-
-namespace tlnos
-{
-class Example1;
-class Example2;
-class Example3;
-class Example4;
-class Example5;
-class Example6;
-class Example7;
-class Example8;
-class Example9;
-class Example10;
-}; // namespace tlnos
-
-#endif //TLNOS_H
diff --git a/tlnos/src/wExample1.cpp b/tlnos/src/wExample1.cpp
deleted file mode 100644
index 34bae2df..00000000
--- a/tlnos/src/wExample1.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "wExample1.h"
-
-#ifdef MYAPP_MPI
-#include "Teuchos_DefaultMpiComm.hpp"
-#else
-#include "Teuchos_DefaultSerialComm.hpp"
-#endif
-
-#ifdef MYAPP_EPETRA
-#include "Epetra_SerialDenseVector.h"
-#endif
-
-using namespace tlnos;
-
-Example1::Example1()
-{
-}
-
-int Example1::src_file(std::string const &infile, Teuchos::Comm<int> &comm)
-{
-    Teuchos::ParameterList p;
-    Teuchos::Ptr<Teuchos::ParameterList> pref(&p);
-    Teuchos::updateParametersFromXmlFileAndBroadcast(infile, pref, comm);
-
-    std::cout << "\nProcessor " << comm.getRank()
-              << "  has param list : \n"
-              << p << std::endl;
-
-    return 0;
-}
-
-void Example1::write(std::ostream &out) const
-{
-    out << "tlnos::Example1:\n";
-}
-
-int Example1::execute(std::string const &infile)
-{
-    /*
-    int *argc = new int(1);// mem leak volontaire
-    // ATTENTION: argv doit rester alloué pdt toute la durée de vie d'appli!
-    char **argv = new char*[2];// mem leak volontaire
-    argv[0] = new char[6]; strcpy(argv[0], "MyApp"); // mem leak volontaire
-    argv[1] = new char[1]; strcpy(argv[1], ""); // mem leak volontaire
-    */
-    int status = 0;
-
-    // Initialize MPI and timer
-    //Teuchos::GlobalMPISession mpiSession(argc,&argv); // [RB] does not work anymore... (MPI already initialised?)
-    Teuchos::GlobalMPISession mpiSession(); // [RB] from https://trilinos.org/pipermail/trilinos-users/2016-July/005597.html
-
-    // Use of flag set in CMakeLists.txt by how Trilinos was configured
-#ifdef MYAPP_MPI
-    Teuchos::MpiComm<int> comm =
-        Teuchos::MpiComm<int>(Teuchos::opaqueWrapper((MPI_Comm)MPI_COMM_WORLD));
-#else
-    Teuchos::SerialComm<int> comm = Teuchos::SerialComm<int>();
-#endif
-
-    try
-    {
-        // Function from another file
-        status = src_file(infile, comm);
-
-        // Flag set in CMakeLists.txt that detects if Epetra was enabled in Trilinos
-#ifdef MYAPP_EPETRA
-        const int len = 10;
-        Epetra_SerialDenseVector vec(len);
-        if (vec.Length() != len)
-            status += 1000;
-        std::cout << "\nEpetra called for vec of length " << len << std::endl;
-#endif
-    }
-
-    catch (std::exception &e)
-    {
-        std::cout << e.what() << std::endl;
-        status = 10;
-    }
-    catch (std::string &s)
-    {
-        std::cout << s << std::endl;
-        status = 20;
-    }
-    catch (char *s)
-    {
-        std::cout << s << std::endl;
-        status = 30;
-    }
-    catch (...)
-    {
-        std::cout << "Caught unknown exception!" << std::endl;
-        status = 40;
-    }
-
-    // Status=0 signals to ctest that the test passed.
-    return status;
-}
diff --git a/tlnos/src/wExample1.h b/tlnos/src/wExample1.h
deleted file mode 100644
index 8d066618..00000000
--- a/tlnos/src/wExample1.h
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef WEXAMPLE1_H
-#define WEXAMPLE1_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example1 : public fwk::wObject
-{
-public:
-    Example1();
-    int execute(std::string const &infile);
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const;
-#endif
-
-private:
-    int src_file(std::string const &infile, Teuchos::Comm<int> &comm);
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPLE1_H
diff --git a/tlnos/src/wExample10.cpp b/tlnos/src/wExample10.cpp
deleted file mode 100644
index 92aaf7e9..00000000
--- a/tlnos/src/wExample10.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "wExample10.h"
-
-#include "Epetra_SerialDenseVector.h"
-#include "Epetra_SerialDenseMatrix.h"
-
-#include "Tpetra_Vector.hpp"
-
-using namespace tlnos;
-
-Example10::Example10()
-{
-}
-
-int Example10::execute()
-{
-
-    int NumRowsA = 2, NumColsA = 2;
-    int NumRowsB = 2, NumColsB = 1;
-    Epetra_SerialDenseMatrix A, B;
-    A.Shape(NumRowsA, NumColsA);
-    B.Shape(NumRowsB, NumColsB);
-    A(0, 0) = 1.;
-    A(1, 1) = 2.;
-
-    B(0, 0) = 2.5;
-    B(1, 0) = 2.;
-    Epetra_SerialDenseMatrix AtimesB;
-
-    AtimesB.Shape(NumRowsA, NumColsB);
-    double alpha = 1.0, beta = 1.0;
-    AtimesB.Multiply('N', 'N', alpha, A, B, beta);
-    std::cout << A;
-    std::cout << B;
-    std::cout << AtimesB;
-    return 0;
-}
diff --git a/tlnos/src/wExample10.h b/tlnos/src/wExample10.h
deleted file mode 100644
index 0f8a7c18..00000000
--- a/tlnos/src/wExample10.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE10_H
-#define WEXAMPLE10_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example10 : public fwk::wObject
-{
-public:
-    Example10();
-    int execute();
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPLE10_H
diff --git a/tlnos/src/wExample2.cpp b/tlnos/src/wExample2.cpp
deleted file mode 100644
index eb028704..00000000
--- a/tlnos/src/wExample2.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "wExample2.h"
-
-#include "Epetra_SerialDenseVector.h"
-#include "Epetra_SerialDenseMatrix.h"
-
-#include "Tpetra_Vector.hpp"
-
-using namespace tlnos;
-
-Example2::Example2()
-{
-}
-
-int Example2::execute()
-{
-
-    int NumRowsA = 2, NumColsA = 2;
-    int NumRowsB = 2, NumColsB = 1;
-    Epetra_SerialDenseMatrix A, B;
-    A.Shape(NumRowsA, NumColsA);
-    B.Shape(NumRowsB, NumColsB);
-    A(0, 0) = 1.;
-    A(1, 1) = 2.;
-
-    B(0, 0) = 2.5;
-    B(1, 0) = 2.;
-    Epetra_SerialDenseMatrix AtimesB;
-
-    AtimesB.Shape(NumRowsA, NumColsB);
-    double alpha = 1.0, beta = 1.0;
-    AtimesB.Multiply('N', 'N', alpha, A, B, beta);
-    std::cout << A;
-    std::cout << B;
-    std::cout << AtimesB;
-    return 0;
-}
diff --git a/tlnos/src/wExample2.h b/tlnos/src/wExample2.h
deleted file mode 100644
index e12584ca..00000000
--- a/tlnos/src/wExample2.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE2_H
-#define WEXAMPLE2_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example2 : public fwk::wObject
-{
-public:
-    Example2();
-    int execute();
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPLE2_H
diff --git a/tlnos/src/wExample3.cpp.disabled b/tlnos/src/wExample3.cpp.disabled
deleted file mode 100644
index 344f9a92..00000000
--- a/tlnos/src/wExample3.cpp.disabled
+++ /dev/null
@@ -1,373 +0,0 @@
-#include "wExample3.h"
-
-//
-// Simple example of solving the following nonlinear system of
-// equations
-//
-// x(0)^2 + x(1)^2 -1 = 0 
-//      x(1) - x(0)^2 = 0
-//
-// using NOX (Trilinos' Nonlinear Object-Oriented Solutions package).
-// For more details and documentation, see the NOX web site:
-//
-// http://trilinos.sandia.gov/packages/nox/
-//
-// NOTE: Due to the very small dimension of the problem, it should be
-// run with only one MPI process.  We enforce this below by creating a
-// subcommunicator containing only MPI Proc 0, and running the problem
-// on that communicator, quieting all the others.
-//
-#include <iostream>
-
-#include "Epetra_ConfigDefs.h"
-#ifdef HAVE_MPI
-#  include "mpi.h"
-#  include "Epetra_MpiComm.h"
-#else
-#  include "Epetra_SerialComm.h"
-#endif 
-
-
-
-#include "Epetra_Map.h"
-#include "Epetra_Vector.h"
-#include "Epetra_RowMatrix.h"
-#include "Epetra_CrsMatrix.h"
-
-
-#include "NOX.H"
-#include "NOX_Epetra_Interface_Required.H"
-#include "NOX_Epetra_Interface_Jacobian.H"
-#include "NOX_Epetra_LinearSystem_AztecOO.H"
-#include "NOX_Epetra_Group.H"
-
-// ==========================================================================
-// SimpleProblemInterface, the problem interface in this example,
-// defines the interface between NOX and our nonlinear problem to
-// solve.
-// ==========================================================================
-class SimpleProblemInterface : 
-  public NOX::Epetra::Interface::Required,
-  public NOX::Epetra::Interface::Jacobian
-{
-public:
-
-  // The constructor accepts an initial guess and the exact solution
-  // vector (which we know because we created the example).  We make
-  // deep copies of each.
-  SimpleProblemInterface (Epetra_Vector& InitialGuess, 
-                          Epetra_Vector& ExactSolution) :
-    InitialGuess_ (new Epetra_Vector (InitialGuess)),
-    ExactSolution_ (new Epetra_Vector (ExactSolution))
-  {}
-
-  // Destructor.
-  ~SimpleProblemInterface() {}
-
-  // Compute f := F(x), where x is the input vector and f the output
-  // vector.
-  bool 
-  computeF (const Epetra_Vector & x, 
-        Epetra_Vector & f,
-        NOX::Epetra::Interface::Required::FillType F)
-  {
-    f[0] = x[0]*x[0] + x[1]*x[1] - 1.0;
-    f[1] = x[1] - x[0]*x[0];
-
-    return true;
-  };
-
-  bool 
-  computeJacobian(const Epetra_Vector & x, Epetra_Operator & Jac)
-  {
-    Epetra_CrsMatrix* J = dynamic_cast<Epetra_CrsMatrix*>(&Jac);
-
-    if (J == NULL) {
-      std::ostringstream os;
-      os << "*** Problem_Interface::computeJacobian() - The supplied "
-     << "Epetra_Operator object is NOT an Epetra_CrsMatrix! ***";
-      throw std::runtime_error (os.str());
-    }
-
-    std::vector<int> indices(2);
-    std::vector<double> values(2);
-
-    indices[0] = 0; 
-    indices[1] = 1;
-
-    // Row 0
-    values[0] = 2.0 * x[0];
-    values[1] = 2.0 * x[1];
-    J->ReplaceGlobalValues (0, 2, &values[0], &indices[0]);
-
-    // Row 1
-    values[0] = - 2.0 * x[0];
-    values[1] = 1.0;
-    J->ReplaceGlobalValues (1, 2, &values[0], &indices[0]);
-
-    return true;
-  }
-
-  bool 
-  computePrecMatrix (const Epetra_Vector & x, 
-             Epetra_RowMatrix & M) 
-  {
-    throw std::runtime_error ("*** SimpleProblemInterface does not implement "
-                  "computing an explicit preconditioner from an "
-                  "Epetra_RowMatrix ***");
-  }  
-
-  bool 
-  computePreconditioner (const Epetra_Vector & x, 
-             Epetra_Operator & O)
-  {
-    throw std::runtime_error ("*** SimpleProblemInterface does not implement "
-                  "computing an explicit preconditioner from an "
-                  "Epetra_Operator ***");
-  }  
-
-private:
-  Teuchos::RCP<Epetra_Vector> InitialGuess_;
-  Teuchos::RCP<Epetra_Vector> ExactSolution_;
-};
-
-// =========== //
-// main driver //
-// =========== //
-
-using namespace tlnos;
-
-Example3::Example3()
-{
-}
-
-
-int
-Example3::execute() 
-{
-  using Teuchos::ParameterList;
-  using Teuchos::parameterList;
-  using Teuchos::RCP;
-  using Teuchos::rcp;
-  using std::cout;
-  using std::endl;
-
-
-#ifdef HAVE_MPI
-  int  argc = 1;
-  MPI_Init(&argc, NULL);
-  Epetra_MpiComm CommWorld (MPI_COMM_WORLD);
-#else
-  Epetra_SerialComm CommWorld;
-#endif
-
-
-  // The example problem is so small that we must run it on only one
-  // process.  However, people might run this example code in MPI with
-  // any number of processes.  We handle this by using a communicator
-  // containing only one MPI process, and quieting all processes but
-  // Proc 0 (with respect to MPI_COMM_WORLD).
-  if (CommWorld.MyPID() == 0)
-    {
-#ifdef HAVE_MPI
-      Epetra_MpiComm Comm (MPI_COMM_SELF);
-#else
-      Epetra_SerialComm Comm;
-#endif
-
-      // Linear map for the 2 global elements.
-      Epetra_Map Map (2, 0, Comm);
-
-      // Build up initial guess and exact solution vectors.
-      Epetra_Vector ExactSolution (Map);
-      ExactSolution[0] = sqrt (0.5 * (sqrt (5.0) - 1));
-      ExactSolution[1] = 0.5 * (sqrt (5.0) - 1);
-
-      Epetra_Vector InitialGuess (Map);
-      InitialGuess[0] = 0.5;
-      InitialGuess[1] = 0.5;
-
-      // Set up the problem interface.  Your application will define
-      // its own problem interface.  SimpleProblemInterface is our
-      // example interface, which you can use as a model.
-      // 
-      // Our SimpleProblemInterface makes a deep copy of the initial
-      // guess and exact solution vectors.
-      RCP<SimpleProblemInterface> interface = 
-    rcp (new SimpleProblemInterface (InitialGuess, ExactSolution));
-
-      // Create the top-level parameter list to control NOX.
-      //
-      // "parameterList" (lowercase initial "p") is a "nonmember
-      // constructor" that returns an RCP<ParameterList> with the
-      // given name.
-      RCP<ParameterList> params = parameterList ("NOX");
-
-      // Tell the nonlinear solver to use line search.
-      params->set ("Nonlinear Solver", "Line Search Based");
-
-      //
-      // Set the printing parameters in the "Printing" sublist.
-      //
-      ParameterList& printParams = params->sublist ("Printing");
-      printParams.set ("MyPID", Comm.MyPID ()); 
-      printParams.set ("Output Precision", 3);
-      printParams.set ("Output Processor", 0);
-
-      // Set verbose=true to see a whole lot of intermediate status
-      // output, during both linear and nonlinear iterations.
-      const bool verbose = false;
-      if (verbose) {
-        printParams.set ("Output Information", 
-                 NOX::Utils::OuterIteration + 
-                 NOX::Utils::OuterIterationStatusTest + 
-                 NOX::Utils::InnerIteration +
-                 NOX::Utils::Parameters + 
-                 NOX::Utils::Details + 
-                 NOX::Utils::Warning);
-          } else {
-        printParams.set ("Output Information", NOX::Utils::Warning);
-      }
-
-      //
-      // Set the nonlinear solver parameters.
-      //
-
-      // Line search parameters.
-      ParameterList& searchParams = params->sublist ("Line Search");
-      searchParams.set ("Method", "Full Step");
-
-      // Parameters for picking the search direction.
-      ParameterList& dirParams = params->sublist ("Direction");
-      // Use Newton's method to pick the search direction.
-      dirParams.set ("Method", "Newton");
-
-      // Parameters for Newton's method.
-      ParameterList& newtonParams = dirParams.sublist ("Newton");
-      newtonParams.set ("Forcing Term Method", "Constant");
-
-      //
-      // Newton's method invokes a linear solver repeatedly.
-      // Set the parameters for the linear solver.
-      //
-      ParameterList& lsParams = newtonParams.sublist ("Linear Solver");
-
-      // Use Aztec's implementation of GMRES, with at most 800
-      // iterations, a residual tolerance of 1.0e-4, with output every
-      // 50 iterations, and Aztec's native ILU preconditioner.
-      lsParams.set ("Aztec Solver", "GMRES");  
-      lsParams.set ("Max Iterations", 800);  
-      lsParams.set ("Tolerance", 1e-4);
-      lsParams.set ("Output Frequency", 50);    
-      lsParams.set ("Aztec Preconditioner", "ilu"); 
-
-      //
-      // Build the Jacobian matrix.
-      //
-      RCP<Epetra_CrsMatrix> A = rcp (new Epetra_CrsMatrix (Copy, Map, 2));
-      {
-    std::vector<int> indices(2);
-    std::vector<double> values(2);
-
-    indices[0]=0; 
-    indices[1]=1;
-
-    values[0] = 2.0 * InitialGuess[0];
-    values[1] = 2.0 * InitialGuess[1];
-    A.get()->InsertGlobalValues (0, 2, &values[0], &indices[0]);
-
-    values[0] = -2.0 * InitialGuess[0];
-    values[1] = 1.0;
-    A.get()->InsertGlobalValues (1, 2, &values[0], &indices[0]);
-
-    A.get()->FillComplete();
-      }  
-
-      // Our SimpleProblemInterface implements both Required and
-      // Jacobian, so we can use the same object for each.
-      RCP<NOX::Epetra::Interface::Required> iReq = interface;
-      RCP<NOX::Epetra::Interface::Jacobian> iJac = interface;
-
-      RCP<NOX::Epetra::LinearSystemAztecOO> linSys = 
-    rcp (new NOX::Epetra::LinearSystemAztecOO (printParams, lsParams,
-                           iReq, iJac, A, InitialGuess));
-
-      // Need a NOX::Epetra::Vector for constructor.
-      NOX::Epetra::Vector noxInitGuess (InitialGuess, NOX::DeepCopy);
-      RCP<NOX::Epetra::Group> group = 
-    rcp (new NOX::Epetra::Group (printParams, iReq, noxInitGuess, linSys));
-
-      //
-      // Set up NOX's iteration stopping criteria ("status tests").
-      //
-
-      // ||F(X)||_2 / N < 1.0e-4, where N is the length of F(X).
-      //
-      // NormF has many options for setting up absolute vs. relative
-      // (scaled by the norm of the initial guess) tolerances, scaling
-      // or not scaling by the length of F(X), and choosing a
-      // different norm (we use the 2-norm here).
-      RCP<NOX::StatusTest::NormF> testNormF = 
-    rcp (new NOX::StatusTest::NormF (1.0e-4));
-
-      // At most 20 (nonlinear) iterations.
-      RCP<NOX::StatusTest::MaxIters> testMaxIters = 
-    rcp (new NOX::StatusTest::MaxIters (20));
-
-      // Combine the above two stopping criteria (normwise
-      // convergence, and maximum number of nonlinear iterations).
-      // The result tells NOX to stop if at least one of them is
-      // satisfied.
-      RCP<NOX::StatusTest::Combo> combo = 
-    rcp (new NOX::StatusTest::Combo (NOX::StatusTest::Combo::OR, 
-                     testNormF, testMaxIters));
-
-      // Create the NOX nonlinear solver.
-      RCP<NOX::Solver::Generic> solver = 
-    NOX::Solver::buildSolver (group, combo, params);
-
-      // Solve the nonlinear system.
-      NOX::StatusTest::StatusType status = solver->solve();
-
-      // Print the result.
-      //
-      // For this particular example, Comm contains only one MPI
-      // process.  However, we check for Comm.MyPID() == 0 here just
-      // so that the example is fully general.  (If you're solving a
-      // larger nonlinear problem, you could safely use the code
-      // below.)
-      if (Comm.MyPID() == 0) {
-    cout << endl << "-- Parameter List From Solver --" << endl;
-    solver->getList ().print (cout);
-      }
-
-      // Get the Epetra_Vector with the final solution from the solver.
-      const NOX::Epetra::Group& finalGroup = 
-    dynamic_cast<const NOX::Epetra::Group&>(solver->getSolutionGroup());
-
-      const Epetra_Vector& finalSolution = 
-    dynamic_cast<const NOX::Epetra::Vector&> (finalGroup.getX ()).getEpetraVector ();
-
-      if (Comm.MyPID() == 0) {
-    cout << "Computed solution: " << endl;
-      }
-      // Epetra objects know how to print themselves politely when
-      // their operator<<(std::ostream&) is invoked on all MPI
-      // process(es) in the communicator to which they are associated.
-      cout << finalSolution;
-
-      if (Comm.MyPID() == 0) {
-    cout << "Exact solution: " << endl;
-      }
-      cout << ExactSolution;
-    }
-
-  // Remember how we quieted all MPI processes but Proc 0 above?
-  // Now we're back in MPI_COMM_WORLD again.
-#ifdef HAVE_MPI
-  // Make sure that everybody is done before calling MPI_Finalize().
-  MPI_Barrier (MPI_COMM_WORLD);
-  MPI_Finalize();
-#endif
-  return EXIT_SUCCESS;
-}
diff --git a/tlnos/src/wExample3.h.disabled b/tlnos/src/wExample3.h.disabled
deleted file mode 100644
index 8129728d..00000000
--- a/tlnos/src/wExample3.h.disabled
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE3_H
-#define WEXAMPLE3_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos {
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example3 : public fwk::wObject
-{
-public:
-    Example3();
-    int execute(); 
-    
-};
-
-}
-
-#endif //WEXAMPLE3_H
diff --git a/tlnos/src/wExample4.cpp b/tlnos/src/wExample4.cpp
deleted file mode 100644
index b5daac2a..00000000
--- a/tlnos/src/wExample4.cpp
+++ /dev/null
@@ -1,266 +0,0 @@
-#include "wExample4.h"
-
-// @HEADER
-// ************************************************************************
-//
-//           Galeri: Finite Element and Matrix Generation Package
-//                 Copyright (2006) ETHZ/Sandia Corporation
-//
-// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-// license for use of this work by or on behalf of the U.S. Government.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-//
-// 3. Neither the name of the Corporation nor the names of the
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Questions about Galeri? Contact Marzio Sala (marzio.sala _AT_ gmail.com)
-//
-// ************************************************************************
-// @HEADER
-
-#include "Galeri_ConfigDefs.h"
-#include "Galeri_Utils.h"
-#include "Galeri_FiniteElements.h"
-#ifdef HAVE_MPI
-#include "mpi.h"
-#include "Epetra_MpiComm.h"
-#else
-#include "Epetra_SerialComm.h"
-#endif
-
-#ifdef MOERTEL_HAVE_EXODUS
-#include "ExodusInterface.h" // NOT COMPILED BY KIM!
-#endif
-
-// ==========================================================
-// This file solves the scalar elliptic problem
-//
-//   - \mu \nabla u + \sigma u = f    on \Omega
-//                           u = g    on \partial \Omega
-//
-// where \Omega is a 3D cube, divided into hexahedra.
-// `f' is specified by function `Force()', the Dirichlet boundary condition
-// by function `BoundaryValue()', and the value of \mu and
-// \sigma can be changed in the functions Diffusion() and
-// Source(). The code solves the corresponding linear system
-// using AztecOO with ML preconditioner, and writes the
-// solution into a MEDIT-compatible format. Then, it computes
-// the L2 and H1 norms of the solution and the error.
-//
-// \author Marzio Sala, ETHZ/COLAB
-//
-// \date Last updated on 15-Sep-05
-// ==========================================================
-
-double Diffusion4(const double &x, const double &y, const double &z)
-{
-    return (1.0);
-}
-
-double Source4(const double &x, const double &y, const double &z)
-{
-    return (0.0);
-}
-
-double Force4(const double &x, const double &y, const double &z)
-{
-    return (-6.0);
-}
-
-// Specifies the boundary condition.
-double BoundaryValue4(const double &x, const double &y,
-                      const double &z, const int &PatchID)
-{
-    return (x * x + y * y + z * z);
-}
-
-// Specifies the boundary condition.
-int BoundaryType4(const int &PatchID)
-{
-    return (Galeri::FiniteElements::GALERI_DIRICHLET);
-}
-
-// Returns the value of the exact solution and its first
-// derivatives with respect to x, y and z.
-int ExactSolution(double x, double y, double z, double *res)
-{
-    res[0] = x * x + y * y + z * z;
-    res[1] = 2 * x;
-    res[2] = 2 * y;
-    res[3] = 2 * z;
-
-    return (0);
-}
-
-using namespace Galeri;
-using namespace Galeri::FiniteElements;
-
-// =========== //
-// main driver //
-// =========== //
-
-using namespace std;
-using namespace tlnos;
-
-Example4::Example4()
-{
-}
-
-int Example4::execute()
-{
-#ifdef HAVE_MPI
-    //int  argc = 1;
-    //MPI_Init(&argc, NULL); // [RB] already initialised
-    Epetra_MpiComm Comm(MPI_COMM_WORLD);
-#else
-    Epetra_SerialComm Comm;
-#endif
-
-    try
-    {
-
-        // ============================================================ //
-        // Prepares the computational domain. For simplicity,           //
-        // the computation domain has (nx * NumProcs, ny, nz) elements, //
-        // and it is partitioned into (NumProcs, 1, 1) subdomains.      //
-        // If you want to change the grid element, remember to modify   //
-        // the quadrature in GalerkinVariational<T>. Now T is set to    //
-        // HexQuadrature.                                               //
-        // ============================================================ //
-
-        int nx = 4 * Comm.NumProc();
-        int ny = 4;
-        int nz = 4;
-        int mx = Comm.NumProc(), my = 1, mz = 1;
-
-        HexCubeGrid Grid(Comm, nx, ny, nz, mx, my, mz);
-
-        cout << "------------------------" << endl;
-        // Extracts the information from the Grid using AbstractGrid
-        // methods. First, some general information.
-
-        cout << "Number of dimensions = " << Grid.NumDimensions() << endl;
-        cout << "Number of vertices per element = " << Grid.NumVerticesPerElement() << endl;
-        cout << "Number of faces per element = " << Grid.NumFacesPerElement() << endl;
-        cout << "Number of vertices per face = " << Grid.NumVerticesPerFace() << endl;
-        cout << "Element type = " << Grid.ElementType() << endl;
-
-        cout << "Number of elements: global = " << Grid.NumGlobalElements();
-        cout << ", on proc 0 = " << Grid.NumMyElements() << endl;
-        cout << "Number of vertices: global = " << Grid.NumGlobalVertices();
-        cout << ", on proc 0 = " << Grid.NumMyVertices() << endl;
-        cout << "Number of boundary faces: "
-                "on proc 0 = "
-             << Grid.NumMyBoundaryFaces() << endl;
-
-        cout << "------------------------" << endl;
-
-        // ======================================================== //
-        // Prepares the linear system. This requires the definition //
-        // of a quadrature formula compatible with the grid, a      //
-        // variational formulation, and a problem object which take //
-        // care of filling matrix and right-hand side.              //
-        // ======================================================== //
-
-        Epetra_CrsMatrix A(Copy, Grid.RowMap(), 0);
-        Epetra_Vector LHS(Grid.RowMap());
-        Epetra_Vector RHS(Grid.RowMap());
-
-        int NumQuadratureNodes = 1;
-
-        GalerkinVariational<HexQuadrature>
-            Laplacian(NumQuadratureNodes, Diffusion4, Source4, Force4,
-                      BoundaryValue4, BoundaryType4);
-
-        LinearProblem FiniteElementProblem(Grid, Laplacian, A, LHS, RHS);
-        FiniteElementProblem.Compute();
-
-        // =================================================== //
-        // The solution must be computed here by solving the   //
-        // linear system A * LHS = RHS.                        //
-        //
-        // NOTE: Solve() IS A SIMPLE FUNCTION BASED ON LAPACK, //
-        // THEREFORE THE MATRIX IS CONVERTED TO DENSE FORMAT.  //
-        // IT WORKS IN SERIAL ONLY.                            //
-        // EVEN MEDIUM-SIZED MATRICES MAY REQUIRE A LOT OF     //
-        // MEMORY AND CPU-TIME! USERS SHOULD CONSIDER INSTEAD  //
-        // AZTECOO, ML, IFPACK OR OTHER SOLVERS.               //
-        // =================================================== //
-
-        Solve(&A, &LHS, &RHS);
-
-        cout << "----------------------" << endl;
-        cout << A << endl;
-        cout << "----------------------" << endl;
-        cout << LHS << endl;
-        cout << "----------------------" << endl;
-        cout << RHS << endl;
-        cout << "----------------------" << endl;
-
-        // ========================= //
-        // After the solution:       //
-        // - computation of the norm //
-        // - output using MEDIT      //
-        // ========================= //
-
-        FiniteElementProblem.ComputeNorms(LHS, ExactSolution);
-
-//MEDITInterface MEDIT(Comm);
-//MEDIT.Write(Grid, "Laplacian3D", LHS);
-
-// ==================    //
-// Output using ExodusII //
-// ==================    //
-#ifdef MOERTEL_HAVE_EXODUS
-        // NOT COMPILED BY KIM
-        ExodusInterface exodus(Comm);
-        exodus.Write(Grid, "Laplacian3D", LHS);
-#endif
-
-        // We need to define a vector to plot, in this case constant
-        //Epetra_Vector Vector(Grid.RowMap());
-        //MEDIT.Write(Grid, "grid", Vector);
-    }
-    catch (Exception &rhs)
-    {
-        if (Comm.MyPID() == 0)
-            rhs.Print();
-    }
-    catch (int e)
-    {
-        cerr << "Caught exception, value = " << e << endl;
-    }
-    catch (...)
-    {
-        cerr << "Caught generic exception" << endl;
-    }
-
-#ifdef HAVE_MPI
-    MPI_Finalize();
-#endif
-
-    return (0);
-}
diff --git a/tlnos/src/wExample4.h b/tlnos/src/wExample4.h
deleted file mode 100644
index 53110794..00000000
--- a/tlnos/src/wExample4.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE4_H
-#define WEXAMPLE4_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example4 : public fwk::wObject
-{
-public:
-    Example4();
-    int execute();
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPLE4_H
diff --git a/tlnos/src/wExample5.cpp b/tlnos/src/wExample5.cpp
deleted file mode 100644
index 22eebbf3..00000000
--- a/tlnos/src/wExample5.cpp
+++ /dev/null
@@ -1,535 +0,0 @@
-#include "wExample5.h"
-/*
- #@HEADER
- # ************************************************************************
- #
- #                          Moertel FE Package
- #                 Copyright (2006) Sandia Corporation
- #
- # Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
- # license for use of this work by or on behalf of the U.S. Government.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions are
- # met:
- #
- # 1. Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- #
- # 2. Redistributions in binary form must reproduce the above copyright
- # notice, this list of conditions and the following disclaimer in the
- # documentation and/or other materials provided with the distribution.
- #
- # 3. Neither the name of the Corporation nor the names of the
- # contributors may be used to endorse or promote products derived from
- # this software without specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
- # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
- # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- #
- # Questions? Contact Glen Hansen (gahanse@sandia.gov)
- #
- # ************************************************************************
- #@HEADER
- */
-/*!
- * \file TwoSquares.cpp
- *
- * \brief Simple serial example showing Moertel usage and solver interfaces
- *
- * \date Last update do Doxygen: 20-March-06
- *
- */
-#ifdef HAVE_MPI
-#include "mpi.h"
-#include "Epetra_MpiComm.h"
-#else
-#include "Epetra_SerialComm.h"
-#endif
-
-// MOERTEL headers
-#include "mrtr_manager.H"
-#include "mrtr_segment_linear1D.H"
-
-// Galeri headers
-#include "Galeri_Utils.h"
-#include "Galeri_FiniteElements.h"
-
-#ifdef MOERTEL_HAVE_EXODUS
-#include "ExodusInterface.h"
-#endif
-using namespace Galeri;
-using namespace Galeri::FiniteElements;
-
-// ==========================================================
-// This file solves the scalar problem
-//
-//   - \mu \nabla u + \sigma u = f    on \Omega
-//                           u = g    on \partial \Omega
-//
-// where \Omega is a 2D rectangle, divided into triangles.
-// The input grid should be generated using similar
-// conventions of file galeri/data/TwoSquares.m:
-// - the bc ID of 10 and 20 are for the mortar interface
-// - the bc ID of 0 is for the external domain.
-// ==========================================================
-
-double Diffusion5(const double &x, const double &y, const double &z)
-{
-    return (1.0);
-}
-
-double Source5(const double &x, const double &y, const double &z)
-{
-    return (0.0);
-}
-
-double Force5(const double &x, const double &y, const double &z)
-{
-    if (y < 0.8)
-        return (1.0);
-    else
-        return (0.0);
-}
-
-// Specifies the boundary condition.
-int BoundaryType5(const int &Patch)
-{
-    if (Patch == 10 || Patch == 20)
-        return (GALERI_DO_NOTHING);
-    else
-        return (GALERI_DIRICHLET);
-}
-
-// Specifies the boundary condition.
-double BoundaryValue5(const double &x, const double &y,
-                      const double &z, const int &Patch)
-{
-    if (x == -1.0 || x == 1.0)
-        return (0.0);
-    else if (Patch == 10 || Patch == 20)
-        return (1.0);
-    else
-        return (0.0);
-}
-
-// =========== //
-// main driver //
-// =========== //
-
-using namespace tlnos;
-
-Example5::Example5()
-{
-}
-
-int Example5::execute()
-{
-#ifdef HAVE_MPI
-    /* 
-    static int  argc = 1;
-    char **argv = new char*[2];// mem leak volontaire
-    argv[0] = new char[8]; strcpy(argv[0], "myprog"); // mem leak volontaire
-    argv[1] = new char[1]; strcpy(argv[1], ""); // mem leak volontaire
-    
-    MPI_Init(&argc,&argv);
-    */
-    Epetra_MpiComm Comm(MPI_COMM_WORLD);
-#else
-    Epetra_SerialComm Comm;
-#endif
-
-    int status = 0; // return status
-
-    try
-    {
-
-        // this example is in serial only
-        if (Comm.NumProc() > 1)
-            exit(0);
-
-        // read grid from file, see also TwoSquares.m used to generate the grids
-        /*
-         %  +------+
-         %  |  S2  |
-         %  +------+ <- edge has tag 20 and 9 elements
-         %  +------+ <- edge has tag 10 and 10 elements
-         %  |  S1  |
-         %  +------+
-         %
-         % where S1 = (-1,1) x (-1,1) and S2 = (-1, 1) x (1, 3).
-         */
-
-        FileGrid Grid(Comm, "TwoSquares.grid"); // [RB] missing file!!
-
-        // create a list of all nodes that are linked to a face
-        // with tag 10 and tag 20
-        map<int, int> nodes10;
-        map<int, int> nodes20;
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag == 10)
-            {
-                nodes10[nodeids[0]] = nodeids[0];
-                nodes10[nodeids[1]] = nodeids[1];
-            }
-            else if (tag == 20)
-            {
-                nodes20[nodeids[0]] = nodeids[0];
-                nodes20[nodeids[1]] = nodeids[1];
-            }
-            else
-                continue;
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Interface, in this example just one
-        // ------------------------------------------------------------- //
-        int printlevel = 0; // ( moertel takes values 0 - 10 )
-        //int printlevel = 9; // ( moertel takes values 0 - 10 )
-        MOERTEL::Interface interface(0, true, Comm, printlevel);
-
-        // ------------------------------------------------------------- //
-        // Add nodes on both sides of interface to interface
-        // loop all nodes in the maps nodes10 and nodes20 and add them
-        // to the interface with unique ids
-        // tag 10 will become interface side 0
-        // tag 20 will become interface side 1
-        // ------------------------------------------------------------- //
-        map<int, int>::iterator curr;
-        // do tag==10 or interface side 0
-        for (curr = nodes10.begin(); curr != nodes10.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue5(coord[0], coord[1], coord[2], 10);
-            bool dboundary = false;
-            if (bou == 0.0)
-                dboundary = true;
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 0
-            interface.AddNode(node, 0);
-        }
-        nodes10.clear();
-
-        // do tag==20 or interface side 1
-        for (curr = nodes20.begin(); curr != nodes20.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue5(coord[0], coord[1], coord[2], 20);
-            bool dboundary = false;
-            if (bou == 0.0)
-                dboundary = true;
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 1
-            interface.AddNode(node, 1);
-        }
-        nodes20.clear();
-
-        // ------------------------------------------------------------- //
-        // add segments on both sides of the interface to the interface
-        // ------------------------------------------------------------- //
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag != 10 && tag != 20)
-                continue;
-            // create a segment (galeri calls it a face)
-            MOERTEL::Segment_Linear1D segment(i, 2, nodeids, printlevel);
-
-            // add it to the interface on side 0
-            if (tag == 10)
-                interface.AddSegment(segment, 0);
-            // add it to the interface on side 1
-            else if (tag == 20)
-                interface.AddSegment(segment, 1);
-        }
-
-        // ------------------------------------------------------------- //
-        // choose the mortar side of the interface (0 or 1)
-        // here: let the package choose it (-2)
-        // ------------------------------------------------------------- //
-        interface.SetMortarSide(-2);
-
-        // ------------------------------------------------------------- //
-        // As we do not know the mortar side yet (we decided to le the
-        // package choose it), we can not set a dual trace function (mortar space)
-        // as we don't know the side to set it to
-        // so we just give orders for the function type
-        // ------------------------------------------------------------- //
-        interface.SetFunctionTypes(MOERTEL::Function::func_Linear1D,      // primal trace space
-                                   MOERTEL::Function::func_DualLinear1D); // dual mortar space (recommended)
-        //MOERTEL::Function::func_Linear1D);    // mortar space (not recommended)
-
-        // ------------------------------------------------------------- //
-        // complete the interface
-        // ------------------------------------------------------------- //
-        if (!interface.Complete())
-        {
-            cout << "Interface completion returned false\n";
-            exit(EXIT_FAILURE);
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Manager for 2D problems
-        // It organizes everything from integration to solution
-        // ------------------------------------------------------------- //
-        MOERTEL::Manager manager(Comm, printlevel);
-        manager.SetDimension(MOERTEL::Manager::manager_2D);
-
-        // ------------------------------------------------------------- //
-        // Add the interface to the manager
-        // ------------------------------------------------------------- //
-        manager.AddInterface(interface);
-
-        // ------------------------------------------------------------- //
-        // for mortar integration, the mortar manager needs to know about
-        // the rowmap of the original (uncoupled) problem because it will
-        // create coupling matrices D and M matching that rowmap
-        // ------------------------------------------------------------- //
-        manager.SetProblemMap(&Grid.RowMap());
-
-        // ============================================================= //
-        // choose integration parameters
-        // ============================================================= //
-        Teuchos::ParameterList &moertelparams = manager.Default_Parameters();
-        // this does not affect this 2D case
-        moertelparams.set("exact values at gauss points", true);
-        // 1D interface possible values are 1,2,3,4,5,6,7,8,10 (2 recommended with linear shape functions)
-        moertelparams.set("number gaussian points 1D", 2);
-        // 2D interface possible values are 3,6,12,13,16,19,27
-        moertelparams.set("number gaussian points 2D", 27);
-
-        // ============================================================= //
-        // Here we are done with the construction phase of the interface
-        // so we can integrate the mortar integrals
-        // (Note we have not yet evaluated the PDE at all!)
-        // ============================================================= //
-        manager.Mortar_Integrate();
-
-        // print interface information
-        // (Manager, Interface, Segment, Node implement the << operator)
-        if (printlevel)
-            cout << manager;
-
-        // ======================================================== //
-        // Prepares the linear system. This requires the definition //
-        // of a quadrature formula compatible with the grid, a      //
-        // variational formulation, and a problem object which take //
-        // care of filling matrix and right-hand side.              //
-        // NOTE:
-        // we are doing this AFTER we did all the mortar stuff to
-        // show that the mortar integration is actually PDE-independent
-        // ======================================================== //
-        Epetra_CrsMatrix A(Copy, Grid.RowMap(), 0);
-        Epetra_Vector LHS(Grid.RowMap(), true);
-        Epetra_Vector RHS(Grid.RowMap());
-
-        int NumQuadratureNodes = 3;
-
-        GalerkinVariational<TriangleQuadrature>
-            Laplace2D(NumQuadratureNodes, Diffusion5, Source5, Force5,
-                      BoundaryValue5, BoundaryType5);
-
-        LinearProblem FiniteElementProblem(Grid, Laplace2D, A, LHS, RHS);
-        FiniteElementProblem.Compute();
-
-        // ============================================================= //
-        // this is Galeri's dense solve method if you'd like to see how
-        // the uncoupled solution looks like
-        // ============================================================= //
-        Solve(&A, &LHS, &RHS);
-
-        // ============================================================= //
-        // Since we now have all the pieces together, let's use the
-        // MOERTEL interface to other Trilinos packages to solve the
-        // problem
-        // ============================================================= //
-
-        // ------------------------------------------------------------- //
-        // Create a Teuchos::ParameterList to hold solver arguments and also
-        // to hold arguments for connected packages AztecOO, ML and Amesos
-        // ------------------------------------------------------------- //
-        Teuchos::ParameterList list;
-
-        // ------------------------------------------------------------- //
-        // Choose which type of system of equations to generate
-        // Note that only when using DUAL mortar spaces an spd system
-        // can be generated
-        // ------------------------------------------------------------- //
-        //list.set("System","SaddleSystem");
-        list.set("System", "SPDSystem");
-
-        // ------------------------------------------------------------- //
-        // choose solver, currently there is a choice of Amesos and ML/AztecOO
-        // Note that if "SaddleSystem" was chosen as system of equations
-        // ML/AztecOO doesn't work
-        // ------------------------------------------------------------- //
-        list.set("Solver", "Amesos");
-        //list.set("Solver","ML/Aztec");
-
-        // ------------------------------------------------------------- //
-        // create sublists for packages Amesos, ML, AztecOO. they will be
-        // passed on to the individual package that is used
-        // ------------------------------------------------------------- //
-
-        // Amesos parameters:
-        Teuchos::ParameterList &amesosparams = list.sublist("Amesos");
-        amesosparams.set("Solver", "Amesos_Klu");
-        amesosparams.set("PrintTiming", true);
-        amesosparams.set("PrintStatus", true);
-        amesosparams.set("UseTranspose", true);
-
-        // AztecOO parameters
-        Teuchos::ParameterList &aztecparams = list.sublist("Aztec");
-        aztecparams.set("AZ_solver", "AZ_cg");
-        // This will involve ML as preconditioner
-        // See the AztecOO manual for other options
-        aztecparams.set("AZ_precond", "AZ_user_precond");
-        aztecparams.set("AZ_max_iter", 1200);
-        aztecparams.set("AZ_output", 100);
-        aztecparams.set("AZ_tol", 1.0e-7);
-        aztecparams.set("AZ_scaling", "AZ_none");
-
-        // ML parameters
-        // As Moertel comes with his own special mortar multigrid hierachy
-        // based on ML's smoothed aggregation, not all ML parameters are recognized
-        // It basically recognizes everything that recognized by ML's MLAPI
-        // (ML Application Programming Interface), see MLAPI documentation
-        Teuchos::ParameterList &mlparams = list.sublist("ML");
-        ML_Epetra::SetDefaults("SA", mlparams);
-        mlparams.set("output", 10);
-        mlparams.set("print unused", 1 - 2);
-        mlparams.set("increasing or decreasing", "increasing");
-        mlparams.set("PDE equations", 1);
-        mlparams.set("max levels", 10);
-        mlparams.set("coarse: max size", 80);
-        mlparams.set("aggregation: type", "Uncoupled");
-        mlparams.set("aggregation: damping factor", 1.33);
-
-        // original   : The unmodified ML (smoothed) aggregation prolongator
-        // mod_simple : ( R * (I-B*W^T) )^T
-        // mod_middle : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T
-        // mod_full   : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T + ( R B*W^T*P * R * B*W^T )^T
-        mlparams.set("prolongator: type", "mod_middle");
-
-        // solvers/smoothers currently recognized by the MLAPI_InverseOperator are
-        // Ifpack:
-        //         "Jacobi" "Gauss-Seidel" "symmetric Gauss-Seidel"
-        //         "ILU" "ILUT" "IC" "ICT" "LU" "Amesos" "Amesos-KLU"
-        //         and accompanying parameters
-        // ML:
-        //         "MLS" "ML MLS" "ML symmetric Gauss-Seidel"
-        //         "ML Gauss-Seidel"
-        //         and accompanying parameters
-        mlparams.set("coarse: type", "Amesos-KLU");
-        mlparams.set("smoother: type", "symmetric Gauss-Seidel");
-        mlparams.set("smoother: MLS polynomial order", 3);
-        mlparams.set("relaxation: min diagonal value", 0.1);
-        mlparams.set("smoother: damping factor", 0.67);
-        mlparams.set("smoother: sweeps", 1);
-        mlparams.set("smoother: pre or post", "both");
-        // the ns for Laplace is the constant
-        int dimnullspace = 1;
-        int nummyrows = manager.ProblemMap()->NumMyElements();
-        int dimnsp = dimnullspace * nummyrows;
-        double *nsp = new double[dimnsp];
-        for (int i = 0; i < dimnsp; ++i)
-            nsp[i] = 1.;
-        mlparams.set("null space: type", "pre-computed");
-        mlparams.set("null space: add default vectors", false);
-        mlparams.set("null space: dimension", dimnullspace);
-        mlparams.set("null space: vectors", nsp);
-
-        // ------------------------------------------------------------- //
-        // Pass input matrix to Moertel,
-        // Moertel does NOT take ownership of A!
-        // ------------------------------------------------------------- //
-        manager.SetInputMatrix(&A, false);
-
-        std::cout << list;
-
-        // ============================================================= //
-        // Solve
-        // ============================================================= //
-        //manager.Solve(list,LHS,RHS);
-
-        // ------------------------------------------------------------- //
-        // One can reset the solver, change parameters and/or matrix (with the
-        // same rowmap) and solve again if needed.
-        // If no ResetSolver() is called, the same matrix and preconditioner
-        // will be used to solve for multiple rhs
-        // ------------------------------------------------------------- //
-        //manager.ResetSolver();
-        //LHS.PutScalar(0.0);
-        //manager.SetInputMatrix(&A,false);
-        //manager.Solve(list,LHS,RHS);
-
-#ifdef MOERTEL_HAVE_EXODUS
-
-        // ==================    //
-        // Output using ExodusII //
-        // ==================    //
-        ExodusInterface exodus(Comm);
-        exodus.Write(Grid, "output", LHS);
-
-        std::cout << "Exodus is used for output" << std::endl;
-
-#endif
-    }
-    catch (int e)
-    {
-        cerr << "Caught exception, value = " << e << endl;
-        status = 1;
-    }
-    catch (Galeri::Exception &rhs)
-    {
-
-        cerr << "Caught Galeri exception: ";
-        rhs.Print();
-        status = 1;
-    }
-    catch (...)
-    {
-        cerr << "Caught generic exception" << endl;
-        status = 1;
-    }
-
-#ifdef HAVE_MPI
-    MPI_Finalize();
-#endif
-
-    if (status == 0)
-        std::cout << "\nTest passed!" << endl;
-    else
-        std::cout << "\nTest Failed!" << endl;
-
-    // Final return value (0 = successfull, non-zero = failure)
-
-    return status;
-}
diff --git a/tlnos/src/wExample5.h b/tlnos/src/wExample5.h
deleted file mode 100644
index 7c53b738..00000000
--- a/tlnos/src/wExample5.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE5_H
-#define WEXAMPLE5_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example5 : public fwk::wObject
-{
-public:
-    Example5();
-    int execute();
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPLE5_H
diff --git a/tlnos/src/wExample6.cpp b/tlnos/src/wExample6.cpp
deleted file mode 100644
index 1788410e..00000000
--- a/tlnos/src/wExample6.cpp
+++ /dev/null
@@ -1,533 +0,0 @@
-#include "wExample6.h"
-/*
-#@HEADER
-# ************************************************************************
-#
-#                          Moertel FE Package
-#                 Copyright (2006) Sandia Corporation
-#
-# Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-# license for use of this work by or on behalf of the U.S. Government.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the Corporation nor the names of the
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Questions? Contact Glen Hansen (gahanse@sandia.gov)
-#
-# ************************************************************************
-#@HEADER
-*/
-/*!
- * \file TwoSquares.cpp
- *
- * \brief Simple serial example showing Moertel usage and solver interfaces
- *
- * \date Last update do Doxygen: 20-March-06
- *
- */
-#ifdef HAVE_MPI
-#include "mpi.h"
-#include "Epetra_MpiComm.h"
-#else
-#include "Epetra_SerialComm.h"
-#endif
-
-// MOERTEL headers
-#include "mrtr_manager.H"
-#include "mrtr_segment_linear1D.H"
-
-// Galeri headers
-#include "Galeri_Utils.h"
-#include "Galeri_FiniteElements.h"
-
-#ifdef MOERTEL_HAVE_EXODUS
-#include "ExodusInterface.h"
-#endif
-
-using namespace Galeri;
-using namespace Galeri::FiniteElements;
-
-// ==========================================================
-// This file solves the scalar problem
-//
-//   - \mu \nabla u + \sigma u = f    on \Omega
-//                           u = g    on \partial \Omega
-//
-// where \Omega is a 2D rectangle, divided into triangles.
-// The input grid should be generated using similar
-// conventions of file galeri/data/TwoSquares.m:
-// - the bc ID of 10 and 20 are for the mortar interface
-// - the bc ID of 0 is for the external domain.
-// ==========================================================
-
-double Diffusion(const double &x, const double &y, const double &z)
-{
-    return (1.0);
-}
-
-double Source(const double &x, const double &y, const double &z)
-{
-    return (0.0);
-}
-
-double Force(const double &x, const double &y, const double &z)
-{
-    if (y < 0.8)
-        return (1.0);
-    else
-        return (0.0);
-}
-
-// Specifies the boundary condition.
-int BoundaryType(const int &Patch)
-{
-    if (Patch == 10 || Patch == 20)
-        return (GALERI_DO_NOTHING);
-    else
-        return (GALERI_DIRICHLET);
-}
-
-// Specifies the boundary condition.
-double BoundaryValue(const double &x, const double &y,
-                     const double &z, const int &Patch)
-{
-    if (x == -1.0 || x == 1.0)
-        return (0.0);
-    else if (Patch == 10 || Patch == 20)
-        return (1.0);
-    else
-        return (0.0);
-}
-
-// =========== //
-// main driver //
-// =========== //
-
-using namespace tlnos;
-
-Example6::Example6()
-{
-}
-
-int Example6::execute()
-{
-#ifdef HAVE_MPI
-    /*
-   static int  argc = 1;
-   char **argv = new char*[2];// mem leak volontaire
-   argv[0] = new char[8]; strcpy(argv[0], "myprog"); // mem leak volontaire
-   argv[1] = new char[1]; strcpy(argv[1], ""); // mem leak volontaire
-
-  MPI_Init(&argc,&argv);
-  */
-    Epetra_MpiComm Comm(MPI_COMM_WORLD);
-#else
-    Epetra_SerialComm Comm;
-#endif
-
-    int status = 0; // return status
-
-    try
-    {
-
-        // this example is in serial only
-        if (Comm.NumProc() > 1)
-            exit(0);
-
-        // read grid from file, see also TwoSquares.m used to generate the grids
-        /*
-    %  +------+
-    %  |  S2  |
-    %  +------+ <- edge has tag 20 and 9 elements
-    %  +------+ <- edge has tag 10 and 10 elements
-    %  |  S1  |
-    %  +------+
-    %
-    % where S1 = (-1,1) x (-1,1) and S2 = (-1, 1) x (1, 3).
-    */
-
-        FileGrid Grid(Comm, "TwoSquares.grid");
-
-        // create a list of all nodes that are linked to a face
-        // with tag 10 and tag 20
-        map<int, int> nodes10;
-        map<int, int> nodes20;
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag == 10)
-            {
-                nodes10[nodeids[0]] = nodeids[0];
-                nodes10[nodeids[1]] = nodeids[1];
-            }
-            else if (tag == 20)
-            {
-                nodes20[nodeids[0]] = nodeids[0];
-                nodes20[nodeids[1]] = nodeids[1];
-            }
-            else
-                continue;
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Interface, in this example just one
-        // ------------------------------------------------------------- //
-        int printlevel = 0; // ( moertel takes values 0 - 10 )
-        //int printlevel = 9; // ( moertel takes values 0 - 10 )
-        MOERTEL::Interface interface(0, true, Comm, printlevel);
-
-        // ------------------------------------------------------------- //
-        // Add nodes on both sides of interface to interface
-        // loop all nodes in the maps nodes10 and nodes20 and add them
-        // to the interface with unique ids
-        // tag 10 will become interface side 0
-        // tag 20 will become interface side 1
-        // ------------------------------------------------------------- //
-        map<int, int>::iterator curr;
-        // do tag==10 or interface side 0
-        for (curr = nodes10.begin(); curr != nodes10.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue(coord[0], coord[1], coord[2], 10);
-            bool dboundary = false;
-            if (bou == 0.0)
-                dboundary = true;
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 0
-            interface.AddNode(node, 0);
-        }
-        nodes10.clear();
-
-        // do tag==20 or interface side 1
-        for (curr = nodes20.begin(); curr != nodes20.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue(coord[0], coord[1], coord[2], 20);
-            bool dboundary = false;
-            if (bou == 0.0)
-                dboundary = true;
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 1
-            interface.AddNode(node, 1);
-        }
-        nodes20.clear();
-
-        // ------------------------------------------------------------- //
-        // add segments on both sides of the interface to the interface
-        // ------------------------------------------------------------- //
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag != 10 && tag != 20)
-                continue;
-            // create a segment (galeri calls it a face)
-            MOERTEL::Segment_Linear1D segment(i, 2, nodeids, printlevel);
-
-            // add it to the interface on side 0
-            if (tag == 10)
-                interface.AddSegment(segment, 0);
-            // add it to the interface on side 1
-            else if (tag == 20)
-                interface.AddSegment(segment, 1);
-        }
-
-        // ------------------------------------------------------------- //
-        // choose the mortar side of the interface (0 or 1)
-        // here: let the package choose it (-2)
-        // ------------------------------------------------------------- //
-        interface.SetMortarSide(-2);
-
-        // ------------------------------------------------------------- //
-        // As we do not know the mortar side yet (we decided to le the
-        // package choose it), we can not set a dual trace function (mortar space)
-        // as we don't know the side to set it to
-        // so we just give orders for the function type
-        // ------------------------------------------------------------- //
-        interface.SetFunctionTypes(MOERTEL::Function::func_Linear1D,      // primal trace space
-                                   MOERTEL::Function::func_DualLinear1D); // dual mortar space (recommended)
-                                                                          //MOERTEL::Function::func_Linear1D);    // mortar space (not recommended)
-
-        // ------------------------------------------------------------- //
-        // complete the interface
-        // ------------------------------------------------------------- //
-        if (!interface.Complete())
-        {
-            cout << "Interface completion returned false\n";
-            exit(EXIT_FAILURE);
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Manager for 2D problems
-        // It organizes everything from integration to solution
-        // ------------------------------------------------------------- //
-        MOERTEL::Manager manager(Comm, printlevel);
-        manager.SetDimension(MOERTEL::Manager::manager_2D);
-
-        // ------------------------------------------------------------- //
-        // Add the interface to the manager
-        // ------------------------------------------------------------- //
-        manager.AddInterface(interface);
-
-        // ------------------------------------------------------------- //
-        // for mortar integration, the mortar manager needs to know about
-        // the rowmap of the original (uncoupled) problem because it will
-        // create coupling matrices D and M matching that rowmap
-        // ------------------------------------------------------------- //
-        manager.SetProblemMap(&Grid.RowMap());
-
-        // ============================================================= //
-        // choose integration parameters
-        // ============================================================= //
-        Teuchos::ParameterList &moertelparams = manager.Default_Parameters();
-        // this does not affect this 2D case
-        moertelparams.set("exact values at gauss points", true);
-        // 1D interface possible values are 1,2,3,4,5,6,7,8,10 (2 recommended with linear shape functions)
-        moertelparams.set("number gaussian points 1D", 2);
-        // 2D interface possible values are 3,6,12,13,16,19,27
-        moertelparams.set("number gaussian points 2D", 27);
-
-        // ============================================================= //
-        // Here we are done with the construction phase of the interface
-        // so we can integrate the mortar integrals
-        // (Note we have not yet evaluated the PDE at all!)
-        // ============================================================= //
-        manager.Mortar_Integrate();
-
-        // print interface information
-        // (Manager, Interface, Segment, Node implement the << operator)
-        if (printlevel)
-            cout << manager;
-
-        // ======================================================== //
-        // Prepares the linear system. This requires the definition //
-        // of a quadrature formula compatible with the grid, a      //
-        // variational formulation, and a problem object which take //
-        // care of filling matrix and right-hand side.              //
-        // NOTE:
-        // we are doing this AFTER we did all the mortar stuff to
-        // show that the mortar integration is actually PDE-independent
-        // ======================================================== //
-        Epetra_CrsMatrix A(Copy, Grid.RowMap(), 0);
-        Epetra_Vector LHS(Grid.RowMap(), true);
-        Epetra_Vector RHS(Grid.RowMap());
-
-        int NumQuadratureNodes = 3;
-
-        GalerkinVariational<TriangleQuadrature>
-            Laplace2D(NumQuadratureNodes, Diffusion, Source, Force,
-                      BoundaryValue, BoundaryType);
-
-        LinearProblem FiniteElementProblem(Grid, Laplace2D, A, LHS, RHS);
-        FiniteElementProblem.Compute();
-
-        // ============================================================= //
-        // this is Galeri's dense solve method if you'd like to see how
-        // the uncoupled solution looks like
-        // ============================================================= //
-        //Solve(&A, &LHS, &RHS);
-
-        // ============================================================= //
-        // Since we now have all the pieces together, let's use the
-        // MOERTEL interface to other Trilinos packages to solve the
-        // problem
-        // ============================================================= //
-
-        // ------------------------------------------------------------- //
-        // Create a Teuchos::ParameterList to hold solver arguments and also
-        // to hold arguments for connected packages AztecOO, ML and Amesos
-        // ------------------------------------------------------------- //
-        Teuchos::ParameterList list;
-
-        // ------------------------------------------------------------- //
-        // Choose which type of system of equations to generate
-        // Note that only when using DUAL mortar spaces an spd system
-        // can be generated
-        // ------------------------------------------------------------- //
-        //list.set("System","SaddleSystem");
-        list.set("System", "SPDSystem");
-
-        // ------------------------------------------------------------- //
-        // choose solver, currently there is a choice of Amesos and ML/AztecOO
-        // Note that if "SaddleSystem" was chosen as system of equations
-        // ML/AztecOO doesn't work
-        // ------------------------------------------------------------- //
-        list.set("Solver", "Amesos");
-        //list.set("Solver","ML/Aztec");
-
-        // ------------------------------------------------------------- //
-        // create sublists for packages Amesos, ML, AztecOO. they will be
-        // passed on to the individual package that is used
-        // ------------------------------------------------------------- //
-
-        // Amesos parameters:
-        Teuchos::ParameterList &amesosparams = list.sublist("Amesos");
-        amesosparams.set("Solver", "Amesos_Klu");
-        amesosparams.set("PrintTiming", true);
-        amesosparams.set("PrintStatus", true);
-        amesosparams.set("UseTranspose", true);
-
-        // AztecOO parameters
-        Teuchos::ParameterList &aztecparams = list.sublist("Aztec");
-        aztecparams.set("AZ_solver", "AZ_cg");
-        // This will involve ML as preconditioner
-        // See the AztecOO manual for other options
-        aztecparams.set("AZ_precond", "AZ_user_precond");
-        aztecparams.set("AZ_max_iter", 1200);
-        aztecparams.set("AZ_output", 100);
-        aztecparams.set("AZ_tol", 1.0e-7);
-        aztecparams.set("AZ_scaling", "AZ_none");
-
-        // ML parameters
-        // As Moertel comes with his own special mortar multigrid hierachy
-        // based on ML's smoothed aggregation, not all ML parameters are recognized
-        // It basically recognizes everything that recognized by ML's MLAPI
-        // (ML Application Programming Interface), see MLAPI documentation
-        Teuchos::ParameterList &mlparams = list.sublist("ML");
-        ML_Epetra::SetDefaults("SA", mlparams);
-        mlparams.set("output", 10);
-        mlparams.set("print unused", 1 /*-2*/);
-        mlparams.set("increasing or decreasing", "increasing");
-        mlparams.set("PDE equations", 1);
-        mlparams.set("max levels", 10);
-        mlparams.set("coarse: max size", 80);
-        mlparams.set("aggregation: type", "Uncoupled");
-        mlparams.set("aggregation: damping factor", 1.33);
-
-        // original   : The unmodified ML (smoothed) aggregation prolongator
-        // mod_simple : ( R * (I-B*W^T) )^T
-        // mod_middle : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T
-        // mod_full   : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T + ( R B*W^T*P * R * B*W^T )^T
-        mlparams.set("prolongator: type", "mod_middle");
-
-        // solvers/smoothers currently recognized by the MLAPI_InverseOperator are
-        // Ifpack:
-        //         "Jacobi" "Gauss-Seidel" "symmetric Gauss-Seidel"
-        //         "ILU" "ILUT" "IC" "ICT" "LU" "Amesos" "Amesos-KLU"
-        //         and accompanying parameters
-        // ML:
-        //         "MLS" "ML MLS" "ML symmetric Gauss-Seidel"
-        //         "ML Gauss-Seidel"
-        //         and accompanying parameters
-        mlparams.set("coarse: type", "Amesos-KLU");
-        mlparams.set("smoother: type", "symmetric Gauss-Seidel");
-        mlparams.set("smoother: MLS polynomial order", 3);
-        mlparams.set("relaxation: min diagonal value", 0.1);
-        mlparams.set("smoother: damping factor", 0.67);
-        mlparams.set("smoother: sweeps", 1);
-        mlparams.set("smoother: pre or post", "both");
-        // the ns for Laplace is the constant
-        int dimnullspace = 1;
-        int nummyrows = manager.ProblemMap()->NumMyElements();
-        int dimnsp = dimnullspace * nummyrows;
-        double *nsp = new double[dimnsp];
-        for (int i = 0; i < dimnsp; ++i)
-            nsp[i] = 1.;
-        mlparams.set("null space: type", "pre-computed");
-        mlparams.set("null space: add default vectors", false);
-        mlparams.set("null space: dimension", dimnullspace);
-        mlparams.set("null space: vectors", nsp);
-
-        // ------------------------------------------------------------- //
-        // Pass input matrix to Moertel,
-        // Moertel does NOT take ownership of A!
-        // ------------------------------------------------------------- //
-        manager.SetInputMatrix(&A, false);
-
-        // ============================================================= //
-        // Solve
-        // ============================================================= //
-        manager.Solve(list, LHS, RHS);
-
-        // ------------------------------------------------------------- //
-        // One can reset the solver, change parameters and/or matrix (with the
-        // same rowmap) and solve again if needed.
-        // If no ResetSolver() is called, the same matrix and preconditioner
-        // will be used to solve for multiple rhs
-        // ------------------------------------------------------------- //
-        //manager.ResetSolver();
-        //LHS.PutScalar(0.0);
-        //manager.SetInputMatrix(&A,false);
-        //manager.Solve(list,LHS,RHS);
-
-#ifdef MOERTEL_HAVE_EXODUS
-
-        // ==================    //
-        // Output using ExodusII //
-        // ==================    //
-        ExodusInterface exodus(Comm);
-        exodus.Write(Grid, "output", LHS);
-
-        std::cout << "Exodus is used for output" << std::endl;
-#endif
-    }
-    catch (int e)
-    {
-        cerr << "Caught exception, value = " << e << endl;
-        status = 1;
-    }
-    catch (Galeri::Exception &rhs)
-    {
-
-        cerr << "Caught Galeri exception: ";
-        rhs.Print();
-        status = 1;
-    }
-    catch (...)
-    {
-        cerr << "Caught generic exception" << endl;
-        status = 1;
-    }
-
-#ifdef HAVE_MPI
-    MPI_Finalize();
-#endif
-
-    if (status == 0)
-        std::cout << "\nTest passed!" << endl;
-    else
-        std::cout << "\nTest Failed!" << endl;
-
-    // Final return value (0 = successfull, non-zero = failure)
-
-    return status;
-}
diff --git a/tlnos/src/wExample6.h b/tlnos/src/wExample6.h
deleted file mode 100644
index 827b49fe..00000000
--- a/tlnos/src/wExample6.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE6_H
-#define WEXAMPLE6_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example6 : public fwk::wObject
-{
-public:
-    Example6();
-    int execute();
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPLE6_H
diff --git a/tlnos/src/wExample7.cpp.disabled b/tlnos/src/wExample7.cpp.disabled
deleted file mode 100644
index 2f0af0ba..00000000
--- a/tlnos/src/wExample7.cpp.disabled
+++ /dev/null
@@ -1,509 +0,0 @@
-#include "wExample7.h"
-
-/*
-#@HEADER
-# ************************************************************************
-#
-#                          Moertel FE Package
-#                 Copyright (2006) Sandia Corporation
-#
-# Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-# license for use of this work by or on behalf of the U.S. Government.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the Corporation nor the names of the
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Questions? Contact Glen Hansen (gahanse@sandia.gov)
-#
-# ************************************************************************
-#@HEADER
-*/
-/*!
- * \file TwoSquares.cpp
- *
- * \brief Simple serial example showing Moertel usage and solver interfaces
- *
- * \date Last update do Doxygen: 20-March-06
- *
- */
-#ifdef HAVE_MPI
-#include "mpi.h"
-#include "Epetra_MpiComm.h"
-#else
-#include "Epetra_SerialComm.h"
-#endif
-
-// MOERTEL headers
-#include "mrtr_manager.H"
-#include "mrtr_segment_bilinearquad.H"
-
-// Galeri headers
-#include "Galeri_Utils.h"
-#include "Galeri_FiniteElements.h"
-#ifdef MOERTEL_HAVE_EXODUS
-#include "ExodusInterface.h"
-#endif
-
-using namespace Galeri;
-using namespace Galeri::FiniteElements;
-
-// ==========================================================
-// This file solves the scalar problem
-//
-//   - \mu \nabla u + \sigma u = f    on \Omega
-//                           u = g    on \partial \Omega
-// 
-// where \Omega is a 2D rectangle, divided into triangles.
-// The input grid should be generated using similar 
-// conventions of file galeri/data/TwoSquares.m:
-// - the bc ID of 10 and 20 are for the mortar interface
-// - the bc ID of 0 is for the external domain.
-// ==========================================================
-
-double Diffusion7(const double& x, const double& y, const double& z)
-{
-  return (3.0);
-}
-
-double Source7(const double& x, const double& y, const double& z)
-{
-  return (0.0);
-}
-
-double Force7(const double& x, const double& y, const double& z)
-{
-  if (x <-6. || x > 1.)
-    return(5.0);
-  else
-    return(0.0);
-}
-
-// Specifies the boundary condition.
-int BoundaryType7(const int& Patch)
-{
-  if (Patch != 0)
-    return(GALERI_DO_NOTHING);
-  else
-    return(GALERI_DIRICHLET);
-}
-
-// Specifies the boundary condition.
-double BoundaryValue7(const double& x, const double& y, 
-                     const double& z, const int& Patch)
-{
-  return 0.0; 
-}
-
-// =========== //
-// main driver //
-// =========== //
-
-using namespace tlnos;
-
-Example7::Example7()
-{
-}
-
-
-int
-Example7::execute() 
-{
-#ifdef HAVE_MPI
-   static int  argc = 1;
-   char **argv = new char*[2];// mem leak volontaire
-   argv[0] = new char[8]; strcpy(argv[0], "myprog"); // mem leak volontaire
-   argv[1] = new char[1]; strcpy(argv[1], ""); // mem leak volontaire
-
-  MPI_Init(&argc,&argv);
-  Epetra_MpiComm Comm(MPI_COMM_WORLD);
-#else
-  Epetra_SerialComm Comm;
-#endif
-
-    // this example is in serial only
-    if (Comm.NumProc()>1) exit(0);
-
-    FileGrid Grid(Comm, "Hex_3D.grid");
-    
-    // create a list of all nodes that are linked to a face
-    // we have 4 interfaces here with each 2 sides:
-    // with tags 1/2, 11/12, 21/22, 31/32
-    const int ninter = 4;
-    vector<map<int,int> > nodes(ninter*2);
-    for (int i=0; i<Grid.NumMyBoundaryFaces(); ++i)
-    {
-      int tag;
-      int nodeids[4];
-      Grid.FaceVertices(i,tag,nodeids);
-      if (tag==1)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[0][nodeids[j]] = nodeids[j];
-      }
-      else if (tag==2)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[1][nodeids[j]] = nodeids[j];
-      }
-      else if (tag==11)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[2][nodeids[j]] = nodeids[j];
-      }
-      else if (tag==12)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[3][nodeids[j]] = nodeids[j];
-      }
-      else if (tag==21)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[4][nodeids[j]] = nodeids[j];
-      }
-      else if (tag==22)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[5][nodeids[j]] = nodeids[j];
-      }
-      else if (tag==31)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[6][nodeids[j]] = nodeids[j];
-      }
-      else if (tag==32)
-      {
-        for (int j=0; j<4; ++j)
-          nodes[7][nodeids[j]] = nodeids[j];
-      }
-      else 
-        continue;
-    }
-
-    // ------------------------------------------------------------- //
-    // create 4 empty MOERTEL::Interface instances
-    // ------------------------------------------------------------- //
-    int printlevel = 3; // ( moertel takes values 0 - 10 )
-    //int printlevel = 8; // ( moertel takes values 0 - 10 ) // GAH gives info about intersection root finding
-    vector<RefCountPtr<MOERTEL::Interface> > interfaces(ninter);
-    for (int i=0; i<ninter; ++i) 
-      interfaces[i] = rcp(new MOERTEL::Interface(i,false,Comm,printlevel));
-
-    // ------------------------------------------------------------- //
-    // Add nodes on both sides of interface to interfaces
-    // loop all nodes in the maps add them
-    // to the interface with unique ids
-    // ------------------------------------------------------------- //
-    for (int i=0; i<ninter; ++i)
-    {
-      map<int,int>::iterator curr;
-      for (int j=0; j<2; ++j)
-        for (curr = nodes[i*2+j].begin(); curr != nodes[i*2+j].end(); ++curr)
-        {
-          // get unique node id
-          int nodeid = curr->second;
-          // get node coordinates
-          double coord[3];
-          Grid.VertexCoord(nodeid,coord);
-          // create a moertel node
-          MOERTEL::Node node(nodeid,coord,1,&nodeid,false,printlevel);
-          // add node to interface i on side j
-          interfaces[i]->AddNode(node,j);
-        }
-    } 
-
-    // ------------------------------------------------------------- //
-    // add segments on both sides of the interface to the interface
-    // ------------------------------------------------------------- //
-    for (int i=0; i<Grid.NumMyBoundaryFaces(); ++i)
-    {
-      int tag;
-      int nodeids[4];
-      Grid.FaceVertices(i,tag,nodeids);
-      if (tag == 0)
-        continue;
-      // create a segment (galeri calls it a face)
-      MOERTEL::Segment_BiLinearQuad segment(i,4,nodeids,printlevel);
-      
-      if (tag==1)
-        interfaces[0]->AddSegment(segment,0);
-      else if (tag==2)
-        interfaces[0]->AddSegment(segment,1);
-      else if (tag==11)
-        interfaces[1]->AddSegment(segment,0);
-      else if (tag==12)
-        interfaces[1]->AddSegment(segment,1);
-      else if (tag==21)
-        interfaces[2]->AddSegment(segment,0);
-      else if (tag==22)
-        interfaces[2]->AddSegment(segment,1);
-      else if (tag==31)
-        interfaces[3]->AddSegment(segment,0);
-      else if (tag==32)
-        interfaces[3]->AddSegment(segment,1);
-      else
-      {
-        cout << "Face with unknown tag " << tag << endl;
-        exit(EXIT_FAILURE);
-      }
-    }
-
-    // ------------------------------------------------------------- //
-    // choose the mortar side of the interface (0 or 1)
-    // choose the finer side here, which is 0
-    // ------------------------------------------------------------- //
-    for (int i=0; i<ninter; ++i)
-      interfaces[i]->SetMortarSide(0);
-
-    // ------------------------------------------------------------- //
-    // As we do not know the mortar side yet (we decided to le the
-    // package choose it), we can not set a dual trace function (mortar space)
-    // as we don't know the side to set it to
-    // so we just give orders for the function type
-    // ------------------------------------------------------------- //
-    for (int i=0; i<ninter; ++i)
-      interfaces[i]->SetFunctionTypes(MOERTEL::Function::func_BiLinearQuad,       // primal trace space
-                                      MOERTEL::Function::func_DualBiLinearQuad);  // dual mortar space (recommended)
-                                      //MOERTEL::Function::func_BiLinearQuad);    // mortar space (not recommended)
-
-    // ------------------------------------------------------------- //
-    // complete the interfaces
-    // ------------------------------------------------------------- //
-    for (int i=0; i<ninter; ++i)
-      if (!interfaces[i]->Complete())
-      {
-         cout << "Interface " << i << " completion returned false\n";
-         exit(EXIT_FAILURE);
-      }
-
-    // ------------------------------------------------------------- //
-    // create an empty MOERTEL::Manager for 3D problems
-    // It organizes everything from integration to solution
-    // ------------------------------------------------------------- //
-    MOERTEL::Manager manager(Comm,MOERTEL::Manager::manager_3D,printlevel);
-    
-    // ------------------------------------------------------------- //
-    // Add the interfaces to the manager
-    // ------------------------------------------------------------- //
-    for (int i=0; i<ninter; ++i)
-      manager.AddInterface(*(interfaces[i]));
-
-    // ------------------------------------------------------------- //
-    // for mortar integration, the mortar manager needs to know about
-    // the rowmap of the original (uncoupled) problem because it will
-    // create coupling matrices D and M matching that rowmap
-    // ------------------------------------------------------------- //
-    manager.SetProblemMap(&Grid.RowMap());
-
-    // ============================================================= //
-    // choose integration parameters
-    // ============================================================= //
-    Teuchos::ParameterList& moertelparams = manager.Default_Parameters();
-    // this does affect this 3D case only
-    moertelparams.set("exact values at gauss points",true);
-    // 1D interface possible values are 1,2,3,4,5,6,7,8,10 (2 recommended with linear shape functions)
-    moertelparams.set("number gaussian points 1D",2);
-    // 2D interface possible values are 3,6,12,13,16,19,27 (12 recommended with linear functions)
-    moertelparams.set("number gaussian points 2D",12);
-
-    // ============================================================= //
-    // Here we are done with the construction phase of the interface
-    // so we can integrate the mortar integrals
-    // (Note we have not yet evaluated the PDE at all!)
-    // ============================================================= //
-    manager.Mortar_Integrate();
-    
-    // print interface information
-    // (Manager, Interface, Segment, Node implement the << operator)
-    if (printlevel) cout << manager;
-    
-    cout << "A" << endl;
-        
-    // ======================================================== //
-    // Prepares the linear system. This requires the definition //
-    // of a quadrature formula compatible with the grid, a      //
-    // variational formulation, and a problem object which take //
-    // care of filling matrix and right-hand side.              //
-    // NOTE:
-    // we are doing this AFTER we did all the mortar stuff to
-    // show that the mortar integration is actually PDE-independent
-    // ======================================================== //
-    Epetra_CrsMatrix A(Copy, Grid.RowMap(), 0);
-    Epetra_Vector    LHS(Grid.RowMap(),true);
-    Epetra_Vector    RHS(Grid.RowMap());
-
-    int NumQuadratureNodes = 8;
-
-    GalerkinVariational<HexQuadrature>
-      Laplace3D(NumQuadratureNodes, Diffusion7, Source7, Force7, 
-                BoundaryValue7, BoundaryType7);
-
-    LinearProblem FiniteElementProblem(Grid, Laplace3D, A, LHS, RHS); 
-    FiniteElementProblem.Compute();
-
-    // ============================================================= //
-    // this is Galeri's dense solve method if you'd like to see how
-    // the uncoupled solution looks like
-    // ============================================================= //
-    //Solve(&A, &LHS, &RHS);
-
-    // ============================================================= //
-    // Since we now have all the pieces together, let's use the 
-    // MOERTEL interface to other Trilinos packages to solve the
-    // problem
-    // ============================================================= //
-    
-    // ------------------------------------------------------------- //
-    // Create a Teuchos::ParameterList to hold solver arguments and also
-    // to hold arguments for connected packages AztecOO, ML and Amesos
-    // ------------------------------------------------------------- //
-    Teuchos::ParameterList list;
-    
-    // ------------------------------------------------------------- //
-    // Choose which type of system of equations to generate
-    // Note that only when using DUAL mortar spaces an spd system 
-    // can be generated
-    // ------------------------------------------------------------- //
-    //list.set("System","SaddleSystem");
-    list.set("System","SPDSystem");
-    
-    // ------------------------------------------------------------- //
-    // choose solver, currently there is a choice of Amesos and ML/AztecOO
-    // Note that if "SaddleSystem" was chosen as system of equations
-    // ML/AztecOO doesn't work
-    // ------------------------------------------------------------- //
-    list.set("Solver","Amesos");
-    //list.set("Solver","ML/Aztec"); // GAH Aztec not working FIX
-    
-    // ------------------------------------------------------------- //
-    // create sublists for packages Amesos, ML, AztecOO. they will be
-    // passed on to the individual package that is used
-    // ------------------------------------------------------------- //
-
-    // Amesos parameters:
-    Teuchos::ParameterList& amesosparams = list.sublist("Amesos");
-    amesosparams.set("Solver","Amesos_Klu");
-    amesosparams.set("PrintTiming",true);
-    amesosparams.set("PrintStatus",true);
-    amesosparams.set("UseTranspose",true);
-    
-    // AztecOO parameters
-    Teuchos::ParameterList& aztecparams = list.sublist("Aztec");
-    aztecparams.set("AZ_solver","AZ_cg");
-    // This will involve ML as preconditioner
-    // See the AztecOO manual for other options
-    aztecparams.set("AZ_precond","AZ_user_precond");
-    aztecparams.set("AZ_max_iter",1200);
-    aztecparams.set("AZ_output",100);
-    aztecparams.set("AZ_tol",1.0e-7);
-    aztecparams.set("AZ_scaling","AZ_none");
-
-        cout << "A" << endl;
-    // ML parameters
-    // As Moertel comes with his own special mortar multigrid hierachy
-    // based on ML's smoothed aggregation, not all ML parameters are recognized
-    // It basically recognizes everything that recognized by ML's MLAPI
-    // (ML Application Programming Interface), see MLAPI documentation
-    Teuchos::ParameterList& mlparams = list.sublist("ML");
-    ML_Epetra::SetDefaults("SA",mlparams);
-    mlparams.set("output",10);
-    mlparams.set("print unused",1/*-2*/);
-    mlparams.set("PDE equations",1);
-    mlparams.set("max levels",10);
-    mlparams.set("coarse: max size",500);
-    mlparams.set("aggregation: type","Uncoupled");
-    mlparams.set("aggregation: damping factor",1.33);
-
-    // original   : The unmodified ML (smoothed) aggregation prolongator
-    // mod_simple : ( R * (I-B*W^T) )^T
-    // mod_middle : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T
-    // mod_full   : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T + ( R B*W^T*P * R * B*W^T )^T
-    mlparams.set("prolongator: type","mod_full"); 
-
-    // solvers/smoothers currently recognized by the MLAPI_InverseOperator are
-    // Ifpack:
-    //         "Jacobi" "Gauss-Seidel" "symmetric Gauss-Seidel"
-    //         "ILU" "ILUT" "IC" "ICT" "LU" "Amesos" "Amesos-KLU"
-    //         and accompanying parameters as listed
-    // ML:
-    //         "MLS" "ML MLS" "ML symmetric Gauss-Seidel"
-    //         "ML Gauss-Seidel" "ML Jacobi"
-    //         and accompanying parameters as listed
-    mlparams.set("coarse: type","Amesos-KLU"); 
-    mlparams.set("smoother: type","symmetric Gauss-Seidel"); 
-    mlparams.set("smoother: MLS polynomial order",3);
-    mlparams.set("smoother: damping factor",0.67);
-    mlparams.set("smoother: sweeps",1);
-    mlparams.set("smoother: pre or post","both");
-    // the ns for Laplace is the constant
-    int dimnullspace = 1;
-    int nummyrows = manager.ProblemMap()->NumMyElements();
-    int dimnsp    = dimnullspace*nummyrows;
-    double* nsp   = new double[dimnsp];
-    for (int i=0; i<dimnsp; ++i) nsp[i] = 1.;
-    mlparams.set("null space: type","pre-computed");
-    mlparams.set("null space: add default vectors",false);
-    mlparams.set("null space: dimension",dimnullspace);
-    mlparams.set("null space: vectors",nsp);
-        
-    // ------------------------------------------------------------- //
-    // Pass input matrix to Moertel, 
-    // Moertel does NOT take ownership of A!
-    // ------------------------------------------------------------- //
-    manager.SetInputMatrix(&A,false);
-    
-    // ============================================================= //
-    // Solve
-    // ============================================================= //
-    manager.Solve(list,LHS,RHS);
-
-    // ------------------------------------------------------------- //
-    // One can reset the solver, change parameters and/or matrix (with the
-    // same rowmap) and solve again if needed.
-    // If no ResetSolver() is called, the same matrix and preconditioner
-    // will be used to solve for multiple rhs
-    // ------------------------------------------------------------- //
-    //manager.ResetSolver();
-    //LHS.PutScalar(0.0);
-    //manager.SetInputMatrix(&A,false);
-    //manager.Solve(list,LHS,RHS);
-	
-
-    // ==================    //
-    // Output using ExodusII //
-    // ==================    //
-#ifdef MOERTEL_HAVE_EXODUS
-    ExodusInterface exodus(Comm);
-    exodus.Write(Grid, "hex_output", LHS);
-#endif
-	
-
-#ifdef HAVE_MPI
-  MPI_Finalize();
-#endif
-
-  return(0);
-}
diff --git a/tlnos/src/wExample7.h.disabled b/tlnos/src/wExample7.h.disabled
deleted file mode 100644
index a15a1198..00000000
--- a/tlnos/src/wExample7.h.disabled
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE7_H
-#define WEXAMPLE7_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos {
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example7 : public fwk::wObject
-{
-public:
-    Example7();
-    int execute(); 
-    
-};
-
-}
-
-#endif //WEXAMPLE7_H
diff --git a/tlnos/src/wExample8.cpp b/tlnos/src/wExample8.cpp
deleted file mode 100644
index 00dec2fe..00000000
--- a/tlnos/src/wExample8.cpp
+++ /dev/null
@@ -1,570 +0,0 @@
-#include "wExample8.h"
-/*
-#@HEADER
-# ************************************************************************
-#
-#                          Moertel FE Package
-#                 Copyright (2006) Sandia Corporation
-#
-# Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-# license for use of this work by or on behalf of the U.S. Government.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the Corporation nor the names of the
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Questions? Contact Glen Hansen (gahanse@sandia.gov)
-#
-# ************************************************************************
-#@HEADER
-*/
-/*!
- * \file TwoSquares.cpp
- *
- * \brief Simple serial example showing Moertel usage and solver interfaces
- *
- * \date Last update do Doxygen: 20-March-06
- *
- */
-#ifdef HAVE_MPI
-#include "mpi.h"
-#include "Epetra_MpiComm.h"
-#else
-#include "Epetra_SerialComm.h"
-#endif
-
-// MOERTEL headers
-#include "mrtr_manager.H"
-#include "mrtr_segment_linear1D.H"
-
-// Galeri headers
-#include "Galeri_Utils.h"
-#include "Galeri_FiniteElements.h"
-
-#ifdef MOERTEL_HAVE_EXODUS
-#include "ExodusInterface.h"
-#endif
-
-using namespace Galeri;
-using namespace Galeri::FiniteElements;
-
-// ==========================================================
-// This file solves the scalar problem
-//
-//   - \mu \nabla u + \sigma u = f    on \Omega
-//                           u = g    on \partial \Omega
-//
-// where \Omega is a 2D rectangle, divided into triangles.
-// The input grid should be generated using similar
-// conventions of file galeri/data/TwoSquares.m:
-// - the bc ID of 10 and 20 are for the mortar interface
-// - the bc ID of 0 is for the external domain.
-// ==========================================================
-
-double Diffusion8(const double &x, const double &y, const double &z)
-{
-    return (1.0);
-}
-
-double Source8(const double &x, const double &y, const double &z)
-{
-    return (0.0);
-}
-
-double Force8(const double &x, const double &y, const double &z)
-{
-    return (0.0);
-}
-
-// Specifies the boundary condition.
-int BoundaryType8(const int &Patch)
-{
-    if (Patch == 11 || Patch == 12)
-        return (GALERI_DIRICHLET);
-    else
-        return (GALERI_DO_NOTHING);
-}
-
-// Specifies the boundary condition.
-double BoundaryValue8(const double &x, const double &y,
-                      const double &z, const int &Patch)
-{
-    if (Patch == 11 || Patch == 12)
-        return (-y / 4.0 + 0.75);
-    else
-        return (1.0);
-}
-
-// =========== //
-// main driver //
-// =========== //
-
-using namespace tlnos;
-
-Example8::Example8()
-{
-}
-
-int Example8::execute()
-{
-#ifdef HAVE_MPI
-    /*
-   static int  argc = 1;
-   char **argv = new char*[2];// mem leak volontaire
-   argv[0] = new char[8]; strcpy(argv[0], "myprog"); // mem leak volontaire
-   argv[1] = new char[1]; strcpy(argv[1], ""); // mem leak volontaire
-
-  MPI_Init(&argc,&argv);
-  */
-    Epetra_MpiComm Comm(MPI_COMM_WORLD);
-#else
-    Epetra_SerialComm Comm;
-#endif
-
-    int status = 0; // return status
-
-    try
-    {
-
-        // this example is in serial only
-        if (Comm.NumProc() > 1)
-            exit(0);
-
-        // read grid from file, see also TwoSquares.m used to generate the grids
-        /*
-    %  +------+
-    %  |  S2  |
-    %  +------+ <- edge has tag 20 and 9 elements
-    %  +------+ <- edge has tag 10 and 10 elements
-    %  |  S1  |
-    %  +------+
-    %
-    % where S1 = (-1,1) x (-1,1) and S2 = (-1, 1) x (1, 3).
-    */
-
-        FileGrid Grid(Comm, "TwoSquaresDirichlet.grid");
-
-        // create a list of all nodes that are linked to a face
-        // with tag 10 and tag 20
-        map<int, int> nodes10;
-        map<int, int> nodes20;
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag == 10)
-            {
-                nodes10[nodeids[0]] = nodeids[0];
-                nodes10[nodeids[1]] = nodeids[1];
-            }
-            else if (tag == 20)
-            {
-                nodes20[nodeids[0]] = nodeids[0];
-                nodes20[nodeids[1]] = nodeids[1];
-            }
-            else
-                continue;
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Interface, in this example just one
-        // ------------------------------------------------------------- //
-        int printlevel = 0; // ( moertel takes values 0 - 10 )
-        //int printlevel = 9; // ( moertel takes values 0 - 10 )
-        MOERTEL::Interface interface(0, true, Comm, printlevel);
-
-        // ------------------------------------------------------------- //
-        // Add nodes on both sides of interface to interface
-        // loop all nodes in the maps nodes10 and nodes20 and add them
-        // to the interface with unique ids
-        // tag 10 will become interface side 0
-        // tag 20 will become interface side 1
-        // ------------------------------------------------------------- //
-        map<int, int>::iterator curr;
-        // do tag==10 or interface side 0
-        for (curr = nodes10.begin(); curr != nodes10.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue8(coord[0], coord[1], coord[2], 10);
-            bool dboundary = false;
-            if (bou == 0.0)
-            {
-                dboundary = true;
-                std::cout << "hi" << std::endl;
-            }
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 0
-            interface.AddNode(node, 0);
-        }
-        nodes10.clear();
-
-        // do tag==20 or interface side 1
-        for (curr = nodes20.begin(); curr != nodes20.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue8(coord[0], coord[1], coord[2], 20);
-            bool dboundary = false;
-            if (bou == 0.0)
-            {
-                dboundary = true;
-                std::cout << "hi" << std::endl;
-            }
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 1
-            interface.AddNode(node, 1);
-        }
-        nodes20.clear();
-
-        // ------------------------------------------------------------- //
-        // add segments on both sides of the interface to the interface
-        // ------------------------------------------------------------- //
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag != 10 && tag != 20)
-                continue;
-            // create a segment (galeri calls it a face)
-            MOERTEL::Segment_Linear1D segment(i, 2, nodeids, printlevel);
-
-            // add it to the interface on side 0
-            if (tag == 10)
-                interface.AddSegment(segment, 0);
-            // add it to the interface on side 1
-            else if (tag == 20)
-                interface.AddSegment(segment, 1);
-        }
-
-        // ------------------------------------------------------------- //
-        // choose the mortar side of the interface (0 or 1)
-        // here: let the package choose it (-2)
-        // ------------------------------------------------------------- //
-        interface.SetMortarSide(-2);
-
-        // ------------------------------------------------------------- //
-        // As we do not know the mortar side yet (we decided to le the
-        // package choose it), we can not set a dual trace function (mortar space)
-        // as we don't know the side to set it to
-        // so we just give orders for the function type
-        // ------------------------------------------------------------- //
-        interface.SetFunctionTypes(MOERTEL::Function::func_Linear1D,      // primal trace space
-                                   MOERTEL::Function::func_DualLinear1D); // dual mortar space (recommended)
-                                                                          //MOERTEL::Function::func_Linear1D);    // mortar space (not recommended)
-
-        // ------------------------------------------------------------- //
-        // complete the interface
-        // ------------------------------------------------------------- //
-        if (!interface.Complete())
-        {
-            cout << "Interface completion returned false\n";
-            exit(EXIT_FAILURE);
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Manager for 2D problems
-        // It organizes everything from integration to solution
-        // ------------------------------------------------------------- //
-        MOERTEL::Manager manager(Comm, printlevel);
-        manager.SetDimension(MOERTEL::Manager::manager_2D);
-
-        // ------------------------------------------------------------- //
-        // Add the interface to the manager
-        // ------------------------------------------------------------- //
-        manager.AddInterface(interface);
-
-        // ------------------------------------------------------------- //
-        // for mortar integration, the mortar manager needs to know about
-        // the rowmap of the original (uncoupled) problem because it will
-        // create coupling matrices D and M matching that rowmap
-        // ------------------------------------------------------------- //
-        manager.SetProblemMap(&Grid.RowMap());
-
-        // ============================================================= //
-        // choose integration parameters
-        // ============================================================= //
-        Teuchos::ParameterList &moertelparams = manager.Default_Parameters();
-        // this does not affect this 2D case
-        moertelparams.set("exact values at gauss points", true);
-        // 1D interface possible values are 1,2,3,4,5,6,7,8,10 (2 recommended with linear shape functions)
-        moertelparams.set("number gaussian points 1D", 2);
-        // 2D interface possible values are 3,6,12,13,16,19,27
-        moertelparams.set("number gaussian points 2D", 27);
-
-        // ============================================================= //
-        // Here we are done with the construction phase of the interface
-        // so we can integrate the mortar integrals
-        // (Note we have not yet evaluated the PDE at all!)
-        // ============================================================= //
-        manager.Mortar_Integrate();
-
-        // print interface information
-        // (Manager, Interface, Segment, Node implement the << operator)
-        if (printlevel)
-            cout << manager;
-
-        // ======================================================== //
-        // Prepares the linear system. This requires the definition //
-        // of a quadrature formula compatible with the grid, a      //
-        // variational formulation, and a problem object which take //
-        // care of filling matrix and right-hand side.              //
-        // NOTE:
-        // we are doing this AFTER we did all the mortar stuff to
-        // show that the mortar integration is actually PDE-independent
-        // ======================================================== //
-        Epetra_CrsMatrix A(Copy, Grid.RowMap(), 0);
-        Epetra_Vector LHS(Grid.RowMap(), true);
-        Epetra_Vector RHS(Grid.RowMap());
-
-        int NumQuadratureNodes = 3;
-
-        GalerkinVariational<TriangleQuadrature>
-            Laplace2D(NumQuadratureNodes, Diffusion8, Source8, Force8,
-                      BoundaryValue8, BoundaryType8);
-
-        LinearProblem FiniteElementProblem(Grid, Laplace2D, A, LHS, RHS);
-        FiniteElementProblem.Compute();
-
-        // ============================================================= //
-        // this is Galeri's dense solve method if you'd like to see how
-        // the uncoupled solution looks like
-        // ============================================================= //
-        Solve(&A, &LHS, &RHS);
-#ifdef MOERTEL_HAVE_EXODUS
-        ExodusInterface exodus(Comm);
-        exodus.Write(Grid, "output", LHS);
-#endif
-        std::cout << "Exodus is used for output" << std::endl;
-
-        std::cout << A << std::endl;
-        std::cout << RHS << std::endl;
-        std::cout << LHS << std::endl;
-        // ============================================================= //
-        // Since we now have all the pieces together, let's use the
-        // MOERTEL interface to other Trilinos packages to solve the
-        // problem
-        // ============================================================= //
-
-        // ------------------------------------------------------------- //
-        // Create a Teuchos::ParameterList to hold solver arguments and also
-        // to hold arguments for connected packages AztecOO, ML and Amesos
-        // ------------------------------------------------------------- //
-        Teuchos::ParameterList list;
-
-        // ------------------------------------------------------------- //
-        // Choose which type of system of equations to generate
-        // Note that only when using DUAL mortar spaces an spd system
-        // can be generated
-        // ------------------------------------------------------------- //
-        //list.set("System","SaddleSystem");
-        list.set("System", "SPDSystem");
-
-        // ------------------------------------------------------------- //
-        // choose solver, currently there is a choice of Amesos and ML/AztecOO
-        // Note that if "SaddleSystem" was chosen as system of equations
-        // ML/AztecOO doesn't work
-        // ------------------------------------------------------------- //
-        list.set("Solver", "Amesos");
-        //list.set("Solver","ML/Aztec");
-
-        // ------------------------------------------------------------- //
-        // create sublists for packages Amesos, ML, AztecOO. they will be
-        // passed on to the individual package that is used
-        // ------------------------------------------------------------- //
-
-        // Amesos parameters:
-        Teuchos::ParameterList &amesosparams = list.sublist("Amesos");
-        amesosparams.set("Solver", "Amesos_Klu");
-        amesosparams.set("PrintTiming", true);
-        amesosparams.set("PrintStatus", true);
-        amesosparams.set("UseTranspose", true);
-
-        // AztecOO parameters
-        Teuchos::ParameterList &aztecparams = list.sublist("Aztec");
-        aztecparams.set("AZ_solver", "AZ_cg");
-        // This will involve ML as preconditioner
-        // See the AztecOO manual for other options
-        aztecparams.set("AZ_precond", "AZ_user_precond");
-        aztecparams.set("AZ_max_iter", 1200);
-        aztecparams.set("AZ_output", 100);
-        aztecparams.set("AZ_tol", 1.0e-7);
-        aztecparams.set("AZ_scaling", "AZ_none");
-
-        // ML parameters
-        // As Moertel comes with his own special mortar multigrid hierachy
-        // based on ML's smoothed aggregation, not all ML parameters are recognized
-        // It basically recognizes everything that recognized by ML's MLAPI
-        // (ML Application Programming Interface), see MLAPI documentation
-        Teuchos::ParameterList &mlparams = list.sublist("ML");
-        ML_Epetra::SetDefaults("SA", mlparams);
-        mlparams.set("output", 10);
-        mlparams.set("print unused", 1 /*-2*/);
-        mlparams.set("increasing or decreasing", "increasing");
-        mlparams.set("PDE equations", 1);
-        mlparams.set("max levels", 10);
-        mlparams.set("coarse: max size", 80);
-        mlparams.set("aggregation: type", "Uncoupled");
-        mlparams.set("aggregation: damping factor", 1.33);
-
-        // original   : The unmodified ML (smoothed) aggregation prolongator
-        // mod_simple : ( R * (I-B*W^T) )^T
-        // mod_middle : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T
-        // mod_full   : ( (I - R B*W^T*P) * R * (I-B*W^T) )^T + ( R B*W^T*P * R * B*W^T )^T
-        mlparams.set("prolongator: type", "mod_middle");
-
-        // solvers/smoothers currently recognized by the MLAPI_InverseOperator are
-        // Ifpack:
-        //         "Jacobi" "Gauss-Seidel" "symmetric Gauss-Seidel"
-        //         "ILU" "ILUT" "IC" "ICT" "LU" "Amesos" "Amesos-KLU"
-        //         and accompanying parameters
-        // ML:
-        //         "MLS" "ML MLS" "ML symmetric Gauss-Seidel"
-        //         "ML Gauss-Seidel"
-        //         and accompanying parameters
-        mlparams.set("coarse: type", "Amesos-KLU");
-        mlparams.set("smoother: type", "symmetric Gauss-Seidel");
-        mlparams.set("smoother: MLS polynomial order", 3);
-        mlparams.set("relaxation: min diagonal value", 0.1);
-        mlparams.set("smoother: damping factor", 0.67);
-        mlparams.set("smoother: sweeps", 1);
-        mlparams.set("smoother: pre or post", "both");
-        // the ns for Laplace is the constant
-        int dimnullspace = 1;
-        int nummyrows = manager.ProblemMap()->NumMyElements();
-        int dimnsp = dimnullspace * nummyrows;
-        double *nsp = new double[dimnsp];
-        for (int i = 0; i < dimnsp; ++i)
-            nsp[i] = 1.;
-        mlparams.set("null space: type", "pre-computed");
-        mlparams.set("null space: add default vectors", false);
-        mlparams.set("null space: dimension", dimnullspace);
-        mlparams.set("null space: vectors", nsp);
-
-        // ------------------------------------------------------------- //
-        // Pass input matrix to Moertel,
-        // Moertel does NOT take ownership of A!
-        // ------------------------------------------------------------- //
-        manager.SetInputMatrix(&A, false);
-
-        // ============================================================= //
-        // Solve
-        // ============================================================= //
-        manager.Solve(list, LHS, RHS);
-
-        std::cout << A << std::endl;
-        std::cout << RHS << std::endl;
-        std::cout << LHS << std::endl;
-
-        std::cout << manager << std::endl;
-
-        Epetra_CrsMatrix *B = manager.MakeSaddleProblem();
-
-        std::cout << A << std::endl;
-        std::cout << *B << std::endl;
-
-        std::cout << B->NumGlobalRows() << std::endl;
-        std::cout << B->NumGlobalCols() << std::endl;
-
-        Epetra_Vector LHS2(B->RowMap(), true);
-        Epetra_Vector LHS3(A.RowMap(), true);
-        Epetra_Vector RHS2(B->RowMap());
-
-        for (size_t i = 0; i < A.NumGlobalRows(); ++i)
-            RHS2[i] = RHS[i];
-
-        Solve(B, &LHS2, &RHS2);
-        for (size_t i = 0; i < A.NumGlobalRows(); ++i)
-            LHS3[i] = LHS2[i];
-#ifdef MOERTEL_HAVE_EXODUS
-        exodus.Write(Grid, "output3", LHS3);
-#endif
-        // ------------------------------------------------------------- //
-        // One can reset the solver, change parameters and/or matrix (with the
-        // same rowmap) and solve again if needed.
-        // If no ResetSolver() is called, the same matrix and preconditioner
-        // will be used to solve for multiple rhs
-        // ------------------------------------------------------------- //
-        //manager.ResetSolver();
-        //LHS.PutScalar(0.0);
-        //manager.SetInputMatrix(&A,false);
-        //manager.Solve(list,LHS,RHS);
-
-#ifdef MOERTEL_HAVE_EXODUS
-
-        // ==================    //
-        // Output using ExodusII //
-        // ==================    //
-        //ExodusInterface exodus(Comm);
-        exodus.Write(Grid, "output2", LHS);
-
-        std::cout << "Exodus is used for output" << std::endl;
-
-#endif
-    }
-    catch (int e)
-    {
-        cerr << "Caught exception, value = " << e << endl;
-        status = 1;
-    }
-    catch (Galeri::Exception &rhs)
-    {
-
-        cerr << "Caught Galeri exception: ";
-        rhs.Print();
-        status = 1;
-    }
-    catch (...)
-    {
-        cerr << "Caught generic exception" << endl;
-        status = 1;
-    }
-
-#ifdef HAVE_MPI
-    MPI_Finalize();
-#endif
-
-    if (status == 0)
-        std::cout << "\nTest passed!" << endl;
-    else
-        std::cout << "\nTest Failed!" << endl;
-
-    // Final return value (0 = successfull, non-zero = failure)
-
-    return status;
-}
diff --git a/tlnos/src/wExample8.h b/tlnos/src/wExample8.h
deleted file mode 100644
index 2bae4e6f..00000000
--- a/tlnos/src/wExample8.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE8_H
-#define WEXAMPLE8_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example8 : public fwk::wObject
-{
-public:
-    Example8();
-    int execute();
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPLE8_H
diff --git a/tlnos/src/wExample9.cpp b/tlnos/src/wExample9.cpp
deleted file mode 100644
index 378d809a..00000000
--- a/tlnos/src/wExample9.cpp
+++ /dev/null
@@ -1,466 +0,0 @@
-#include "wExample9.h"
-/*
-#@HEADER
-# ************************************************************************
-#
-#                          Moertel FE Package
-#                 Copyright (2006) Sandia Corporation
-#
-# Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
-# license for use of this work by or on behalf of the U.S. Government.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the Corporation nor the names of the
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
-# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Questions? Contact Glen Hansen (gahanse@sandia.gov)
-#
-# ************************************************************************
-#@HEADER
-*/
-/*!
- * \file TwoSquares.cpp
- *
- * \brief Simple serial example showing Moertel usage and solver interfaces
- *
- * \date Last update do Doxygen: 20-March-06
- *
- */
-#ifdef HAVE_MPI
-#include "mpi.h"
-#include "Epetra_MpiComm.h"
-#else
-#include "Epetra_SerialComm.h"
-#endif
-
-// MOERTEL headers
-#include "mrtr_manager.H"
-#include "mrtr_segment_linear1D.H"
-
-// Galeri headers
-#include "Galeri_Utils.h"
-#include "Galeri_FiniteElements.h"
-#ifdef MOERTEL_HAVE_EXODUS
-#include "ExodusInterface.h"
-#endif
-using namespace Galeri;
-using namespace Galeri::FiniteElements;
-
-// ==========================================================
-// This file solves the scalar problem
-//
-//   - \mu \nabla u + \sigma u = f    on \Omega
-//                           u = g    on \partial \Omega
-//
-// where \Omega is a 2D rectangle, divided into triangles.
-// The input grid should be generated using similar
-// conventions of file galeri/data/TwoSquares.m:
-// - the bc ID of 10 and 20 are for the mortar interface
-// - the bc ID of 0 is for the external domain.
-// ==========================================================
-
-double Diffusion9(const double &x, const double &y, const double &z)
-{
-    return (1.0);
-}
-
-double Source9(const double &x, const double &y, const double &z)
-{
-    return (0.0);
-}
-
-double Force9(const double &x, const double &y, const double &z)
-{
-    return (0.0);
-}
-
-// Specifies the boundary condition.
-int BoundaryType9(const int &Patch)
-{
-    if (Patch == 11 || Patch == 12)
-        return (GALERI_DIRICHLET);
-    else
-        return (GALERI_DO_NOTHING);
-}
-
-// Specifies the boundary condition.
-double BoundaryValue9(const double &x, const double &y,
-                      const double &z, const int &Patch)
-{
-    if (Patch == 11 || Patch == 12)
-        return (-y / 4.0 + 0.75);
-    else
-        return (1.0);
-}
-
-// =========== //
-// main driver //
-// =========== //
-
-using namespace tlnos;
-
-Example9::Example9()
-{
-}
-
-int Example9::execute()
-{
-#ifdef HAVE_MPI
-    /*
-   static int  argc = 1;
-   char **argv = new char*[2];// mem leak volontaire
-   argv[0] = new char[8]; strcpy(argv[0], "myprog"); // mem leak volontaire
-   argv[1] = new char[1]; strcpy(argv[1], ""); // mem leak volontaire
-  MPI_Init(&argc,&argv);
-*/
-
-    Epetra_MpiComm Comm(MPI_COMM_WORLD);
-#else
-    Epetra_SerialComm Comm;
-#endif
-
-    int status = 0; // return status
-
-    try
-    {
-
-        // this example is in serial only
-        if (Comm.NumProc() > 1)
-            exit(0);
-
-        // read grid from file, see also TwoSquares.m used to generate the grids
-        /*
-    %  +------+
-    %  |  S2  |
-    %  +------+ <- edge has tag 20 and 9 elements
-    %  +------+ <- edge has tag 10 and 10 elements
-    %  |  S1  |
-    %  +------+
-    %
-    % where S1 = (-1,1) x (-1,1) and S2 = (-1, 1) x (1, 3).
-    */
-
-        FileGrid Grid(Comm, "TwoSquaresDirichlet.grid");
-
-        // create a list of all nodes that are linked to a face
-        // with tag 10 and tag 20
-        map<int, int> nodes10;
-        map<int, int> nodes20;
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag == 10)
-            {
-                nodes10[nodeids[0]] = nodeids[0];
-                nodes10[nodeids[1]] = nodeids[1];
-            }
-            else if (tag == 20)
-            {
-                nodes20[nodeids[0]] = nodeids[0];
-                nodes20[nodeids[1]] = nodeids[1];
-            }
-            else
-                continue;
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Interface, in this example just one
-        // ------------------------------------------------------------- //
-        int printlevel = 0; // ( moertel takes values 0 - 10 )
-        //int printlevel = 9; // ( moertel takes values 0 - 10 )
-        MOERTEL::Interface interface(0, true, Comm, printlevel);
-
-        // ------------------------------------------------------------- //
-        // Add nodes on both sides of interface to interface
-        // loop all nodes in the maps nodes10 and nodes20 and add them
-        // to the interface with unique ids
-        // tag 10 will become interface side 0
-        // tag 20 will become interface side 1
-        // ------------------------------------------------------------- //
-        map<int, int>::iterator curr;
-        // do tag==10 or interface side 0
-        for (curr = nodes10.begin(); curr != nodes10.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue9(coord[0], coord[1], coord[2], 10);
-            bool dboundary = false;
-            if (bou == 0.0)
-            {
-                dboundary = true;
-                std::cout << "hi" << std::endl;
-            }
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 0
-            interface.AddNode(node, 0);
-        }
-        nodes10.clear();
-
-        // do tag==20 or interface side 1
-        for (curr = nodes20.begin(); curr != nodes20.end(); ++curr)
-        {
-            // get unique node id (here it's equal to the degree of freedom on that node)
-            int nodeid = curr->second;
-            // get node coordinates
-            double coord[3];
-            Grid.VertexCoord(nodeid, coord);
-            // get dirichlet boundary conditions
-            double bou = BoundaryValue9(coord[0], coord[1], coord[2], 20);
-            bool dboundary = false;
-            if (bou == 0.0)
-            {
-                dboundary = true;
-                std::cout << "hi" << std::endl;
-            }
-            // create a moertel node
-            MOERTEL::Node node(nodeid, coord, 1, &nodeid, dboundary, printlevel);
-            // add node to the interface on side 1
-            interface.AddNode(node, 1);
-        }
-        nodes20.clear();
-
-        // ------------------------------------------------------------- //
-        // add segments on both sides of the interface to the interface
-        // ------------------------------------------------------------- //
-        for (int i = 0; i < Grid.NumMyBoundaryFaces(); ++i)
-        {
-            int tag;
-            int nodeids[2];
-            Grid.FaceVertices(i, tag, nodeids);
-            if (tag != 10 && tag != 20)
-                continue;
-            // create a segment (galeri calls it a face)
-            MOERTEL::Segment_Linear1D segment(i, 2, nodeids, printlevel);
-
-            // add it to the interface on side 0
-            if (tag == 10)
-                interface.AddSegment(segment, 0);
-            // add it to the interface on side 1
-            else if (tag == 20)
-                interface.AddSegment(segment, 1);
-        }
-
-        // ------------------------------------------------------------- //
-        // choose the mortar side of the interface (0 or 1)
-        // here: let the package choose it (-2)
-        // ------------------------------------------------------------- //
-        interface.SetMortarSide(-2);
-
-        // ------------------------------------------------------------- //
-        // As we do not know the mortar side yet (we decided to le the
-        // package choose it), we can not set a dual trace function (mortar space)
-        // as we don't know the side to set it to
-        // so we just give orders for the function type
-        // ------------------------------------------------------------- //
-        interface.SetFunctionTypes(MOERTEL::Function::func_Linear1D, // primal trace space
-                                   //MOERTEL::Function::func_DualLinear1D);  // dual mortar space (recommended)
-                                   MOERTEL::Function::func_Linear1D); // mortar space (not recommended)
-
-        // ------------------------------------------------------------- //
-        // complete the interface
-        // ------------------------------------------------------------- //
-        if (!interface.Complete())
-        {
-            cout << "Interface completion returned false\n";
-            exit(EXIT_FAILURE);
-        }
-
-        // ------------------------------------------------------------- //
-        // create an empty MOERTEL::Manager for 2D problems
-        // It organizes everything from integration to solution
-        // ------------------------------------------------------------- //
-        MOERTEL::Manager manager(Comm, printlevel);
-        manager.SetDimension(MOERTEL::Manager::manager_2D);
-
-        // ------------------------------------------------------------- //
-        // Add the interface to the manager
-        // ------------------------------------------------------------- //
-        manager.AddInterface(interface);
-
-        // ------------------------------------------------------------- //
-        // for mortar integration, the mortar manager needs to know about
-        // the rowmap of the original (uncoupled) problem because it will
-        // create coupling matrices D and M matching that rowmap
-        // ------------------------------------------------------------- //
-        manager.SetProblemMap(&Grid.RowMap());
-
-        // ============================================================= //
-        // choose integration parameters
-        // ============================================================= //
-        Teuchos::ParameterList &moertelparams = manager.Default_Parameters();
-        // this does not affect this 2D case
-        moertelparams.set("exact values at gauss points", true);
-        // 1D interface possible values are 1,2,3,4,5,6,7,8,10 (2 recommended with linear shape functions)
-        moertelparams.set("number gaussian points 1D", 2);
-        // 2D interface possible values are 3,6,12,13,16,19,27
-        moertelparams.set("number gaussian points 2D", 27);
-
-        // ============================================================= //
-        // Here we are done with the construction phase of the interface
-        // so we can integrate the mortar integrals
-        // (Note we have not yet evaluated the PDE at all!)
-        // ============================================================= //
-        manager.Mortar_Integrate();
-
-        // print interface information
-        // (Manager, Interface, Segment, Node implement the << operator)
-        if (printlevel)
-            cout << manager;
-
-        // ======================================================== //
-        // Prepares the linear system. This requires the definition //
-        // of a quadrature formula compatible with the grid, a      //
-        // variational formulation, and a problem object which take //
-        // care of filling matrix and right-hand side.              //
-        // NOTE:
-        // we are doing this AFTER we did all the mortar stuff to
-        // show that the mortar integration is actually PDE-independent
-        // ======================================================== //
-        Epetra_CrsMatrix A(Copy, Grid.RowMap(), 0);
-        Epetra_Vector LHS(Grid.RowMap(), true);
-        Epetra_Vector RHS(Grid.RowMap());
-
-        int NumQuadratureNodes = 3;
-
-        GalerkinVariational<TriangleQuadrature>
-            Laplace2D(NumQuadratureNodes, Diffusion9, Source9, Force9,
-                      BoundaryValue9, BoundaryType9);
-
-        LinearProblem FiniteElementProblem(Grid, Laplace2D, A, LHS, RHS);
-        FiniteElementProblem.Compute();
-
-        // ============================================================= //
-        // this is Galeri's dense solve method if you'd like to see how
-        // the uncoupled solution looks like
-        // ============================================================= //
-        Solve(&A, &LHS, &RHS);
-#ifdef MOERTEL_HAVE_EXODUS
-        ExodusInterface exodus(Comm);
-        exodus.Write(Grid, "uncoupled_output", LHS);
-#endif
-        // ============================================================= //
-        // Pass input matrix to Moertel,
-        // Moertel does NOT take ownership of A!
-        // ============================================================= //
-        manager.SetInputMatrix(&A, false);
-
-        // ============================================================= //
-        // Solve
-        // ============================================================= //
-
-        Epetra_CrsMatrix *B = manager.MakeSaddleProblem();
-
-        Epetra_CrsMatrix B1(*B);
-        Epetra_CrsMatrix B2(Copy, (*B).RowMap(), 0);
-        Epetra_Vector LHS2(B2.RowMap(), true);
-        Epetra_Vector LHS3(A.RowMap(), true);
-        Epetra_Vector RHS2(B2.RowMap());
-
-        for (size_t i = 0; i < A.NumGlobalRows(); ++i)
-            RHS2[i] = RHS[i];
-
-        int B1NumMyRow = B1.NumMyRows();
-        int B1MaxNumIndices = B1.MaxNumEntries();
-        double *values = new double[B1MaxNumIndices];
-        int B1NumIndices;
-        int *Indices_int = 0;
-        Indices_int = new int[B1MaxNumIndices];
-
-        for (size_t i = 0; i < B1NumMyRow; ++i)
-        {
-            B1.ExtractGlobalRowCopy(i, B1MaxNumIndices, B1NumIndices, values, Indices_int);
-            B2.InsertGlobalValues(i, B1NumIndices, values, Indices_int);
-        }
-
-        double U;
-        int i_treshold = (B2.NumGlobalRows() + A.NumGlobalRows()) / 2;
-        for (int i = A.NumGlobalRows(); i < B2.NumGlobalRows(); ++i)
-        {
-            if (i < i_treshold)
-                U = 0.;
-            else
-                U = 10000.;
-            B2.InsertGlobalValues(i, 1, &U, &i);
-        }
-
-        B2.FillComplete();
-
-        Solve(&B2, &LHS2, &RHS2);
-
-        for (size_t i = 0; i < A.NumGlobalRows(); ++i)
-            LHS3[i] = LHS2[i];
-#ifdef MOERTEL_HAVE_EXODUS
-        exodus.Write(Grid, "coupled_output", LHS3);
-#endif
-        std::cout << "Lambda" << std::endl
-                  << "-----" << std::endl;
-
-        for (size_t i = A.NumGlobalRows(); i < B2.NumGlobalRows(); ++i)
-            std::cout << LHS2[i] << std::endl;
-
-        std::cout << *(manager.M()) << std::endl
-                  << "-----" << std::endl;
-        std::cout << *(manager.D()) << std::endl
-                  << "-----" << std::endl;
-    }
-    catch (int e)
-    {
-        cerr << "Caught exception, value = " << e << endl;
-        status = 1;
-    }
-    catch (Galeri::Exception &rhs)
-    {
-
-        cerr << "Caught Galeri exception: ";
-        rhs.Print();
-        status = 1;
-    }
-    catch (...)
-    {
-        cerr << "Caught generic exception" << endl;
-        status = 1;
-    }
-
-#ifdef HAVE_MPI
-    MPI_Finalize();
-#endif
-
-    if (status == 0)
-        std::cout << "\nTest passed!" << endl;
-    else
-        std::cout << "\nTest Failed!" << endl;
-
-    // Final return value (0 = successfull, non-zero = failure)
-
-    return status;
-}
diff --git a/tlnos/src/wExample9.h b/tlnos/src/wExample9.h
deleted file mode 100644
index 00b890b1..00000000
--- a/tlnos/src/wExample9.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef WEXAMPLE9_H
-#define WEXAMPLE9_H
-
-#include "tlnos.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <string>
-#ifndef SWIG
-#include "Teuchos_Comm.hpp"
-#include "Teuchos_XMLParameterListHelpers.hpp"
-#endif
-
-namespace tlnos
-{
-
-/**
- * @brief a class containing the "build-against-trilinos" example of trilinos
- */
-
-class TLNOS_API Example9 : public fwk::wObject
-{
-public:
-    Example9();
-    int execute();
-};
-
-} // namespace tlnos
-
-#endif //WEXAMPL98_H
diff --git a/tlnos/tests/example1.py b/tlnos/tests/example1.py
deleted file mode 100755
index 3e6907c3..00000000
--- a/tlnos/tests/example1.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    print("main!")
-    expl = tlnos.Example1()   
-    expl.execute(wu.pth("input.xml",__file__))
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/tests/example10.py b/tlnos/tests/example10.py
deleted file mode 100755
index de58b7ae..00000000
--- a/tlnos/tests/example10.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example10()   
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/tests/example2.py b/tlnos/tests/example2.py
deleted file mode 100755
index 5a2eedfd..00000000
--- a/tlnos/tests/example2.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example2()   
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/tests/example4.py b/tlnos/tests/example4.py
deleted file mode 100755
index fdd0728e..00000000
--- a/tlnos/tests/example4.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8; -*-
-# runs the basic demo of Trilinos
-# trilinos-12.6.1-Source/demos/buildAgainstTrilinos
-
-import fwk.wutils as wu
-import tlnos
-
-def main(**d):
-    expl = tlnos.Example4()   
-    expl.execute()
-
-if __name__ == "__main__":
-    main()
-    
diff --git a/tlnos/tests/input.xml b/tlnos/tests/input.xml
deleted file mode 100644
index feeab544..00000000
--- a/tlnos/tests/input.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<ParameterList>
-  <ParameterList name="Application">
-    <Parameter name="Name" type="string" value="Cold Fusion"/>
-  </ParameterList>
-</ParameterList>
-
-
diff --git a/waves/CMakeFiles/CMakeDirectoryInformation.cmake b/waves/CMakeFiles/CMakeDirectoryInformation.cmake
deleted file mode 100644
index a5519e03..00000000
--- a/waves/CMakeFiles/CMakeDirectoryInformation.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-# CMAKE generated file: DO NOT EDIT!
-# Generated by "Unix Makefiles" Generator, CMake Version 3.6
-
-# Relative path conversion top directories.
-set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/Users/kliegeois/dev/waves")
-set(CMAKE_RELATIVE_PATH_TOP_BINARY "/Users/kliegeois/dev/waves")
-
-# Force unix paths in dependencies.
-set(CMAKE_FORCE_UNIX_PATHS 1)
-
-
-# The C and CXX include file regular expressions for this directory.
-set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
-set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
-set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
-set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
diff --git a/waves/CMakeFiles/progress.marks b/waves/CMakeFiles/progress.marks
deleted file mode 100644
index 04f9fe46..00000000
--- a/waves/CMakeFiles/progress.marks
+++ /dev/null
@@ -1 +0,0 @@
-59
diff --git a/waves/CMakeLists.txt b/waves/CMakeLists.txt
deleted file mode 100644
index 3f0452be..00000000
--- a/waves/CMakeLists.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Add source dir
-ADD_SUBDIRECTORY( exe )
-ADD_SUBDIRECTORY( src )
-ADD_SUBDIRECTORY( _src )
-
-# Add test dir
-MACRO_AddTest(${CMAKE_CURRENT_SOURCE_DIR}/tests)
-
-# Add to install
-INSTALL(FILES ${CMAKE_CURRENT_LIST_DIR}/__init__.py
-        ${CMAKE_CURRENT_LIST_DIR}/srcs.py
-        ${CMAKE_CURRENT_LIST_DIR}/utils.py
-        ${CMAKE_CURRENT_LIST_DIR}/viewer.py
-        DESTINATION waves)
-INSTALL(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/tests
-                  ${CMAKE_CURRENT_LIST_DIR}/models
-        DESTINATION waves)
-        
\ No newline at end of file
diff --git a/waves/__init__.py b/waves/__init__.py
deleted file mode 100644
index ed6b0561..00000000
--- a/waves/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# waves MODULE initialization file
-
-import fwk
-import tbox
-from wavesw import *
diff --git a/waves/_src/CMakeLists.txt b/waves/_src/CMakeLists.txt
deleted file mode 100644
index 0b3b66d9..00000000
--- a/waves/_src/CMakeLists.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# CMake input file of the SWIG wrapper around "waves.so"
-
-INCLUDE(${SWIG_USE_FILE})
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
-FILE(GLOB ISRCS *.i)
-
-SET(CMAKE_SWIG_FLAGS "")
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
-
-SET(SWINCFLAGS 
--I${PROJECT_SOURCE_DIR}/waves/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/src
--I${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
-)
-SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
-
-if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
-    SWIG_ADD_MODULE(wavesw python ${ISRCS} ${SRCS})
-else()
-    SWIG_ADD_LIBRARY(wavesw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
-endif()
-MACRO_DebugPostfix(_wavesw)
-
-TARGET_INCLUDE_DIRECTORIES(_wavesw PRIVATE ${PROJECT_SOURCE_DIR}/ext/amfe/fwk/_src
-                                           ${PROJECT_SOURCE_DIR}/ext/amfe/tbox/_src
-                                           ${PYTHON_INCLUDE_PATH}
-)
-
-SWIG_LINK_LIBRARIES(wavesw 
-                    waves tbox fwk ${PYTHON_LIBRARIES}
-)
-
-INSTALL(FILES ${CMAKE_SWIG_OUTDIR}/wavesw.py DESTINATION ${CMAKE_INSTALL_PREFIX})
-INSTALL(TARGETS _wavesw DESTINATION ${CMAKE_INSTALL_PREFIX})
diff --git a/waves/_src/wavesw.i b/waves/_src/wavesw.i
deleted file mode 100644
index 1f48fc0b..00000000
--- a/waves/_src/wavesw.i
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// SWIG input file of the 'waves' module
-
-%feature("autodoc","1");
-
-%module(docstring=
-"'wavesw' module: projet MP 2014
-(c) ULg - A&M",
-directors="1",
-threads="1"
-) wavesw
-%{
-
-#include <string>
-#include <sstream>
-#include "waves.h"
-
-#include "fwkw.h"
-#include "tboxw.h"
-
-#include "wForwardEuler.h"
-#include "wRungeKutta.h"
-#include "wTimeIntegration.h"
-#include "wProblem.h"
-#include "wNewmark.h"
-#include "wSource.h"
-#include "wMedium.h"
-#include "wBoundary.h"
-
-#include "wDisplayHook.h"
-
-%}
-
-%include "fwkw.swg"
-
-// ----------- MODULES UTILISES ------------
-%import "fwkw.i"
-%import "tboxw.i"
-
-// ----------- WAVES CLASSES ---------------
-%include "waves.h"
-
-%shared_ptr(waves::Problem);
-%shared_ptr(waves::Source);
-%shared_ptr(waves::Medium);
-%shared_ptr(waves::Boundary);
-
-
-%feature("director") DisplayHook;
-%include "wDisplayHook.h"
-
-%feature("director:except") {
-    if ($error != NULL) {
-        std::cout << "[in director:except]\n";
-        //throw Swig::DirectorMethodException();
-        throw std::runtime_error("Director problem");
-    }
-}
-
-%feature("director") waves::Source;
-%pythonappend waves::Source::Source "self.__disown__()"    // for directors
-%include "wSource.h"
-
-%include "wMedium.h"
-%include "wBoundary.h"
-
-%immutable waves::Problem::msh; // avoids the creation of the setter method
-%include "wProblem.h"
-
-%include "wTimeIntegration.h"
-%include "wForwardEuler.h"
-%include "wRungeKutta.h"
-%include "wNewmark.h"
-
diff --git a/waves/attic/export_xml.py b/waves/attic/export_xml.py
deleted file mode 100644
index afbf596d..00000000
--- a/waves/attic/export_xml.py
+++ /dev/null
@@ -1,6 +0,0 @@
-# display
-if 0:
-    import viewer
-    ugrid = viewer.toUgrid(mshdata)
-    viewer.writeXML(ugrid, name='mesh.vtu')
-    viewer.viewUgrid(ugrid)
\ No newline at end of file
diff --git a/waves/attic/testSonarQ.cpp b/waves/attic/testSonarQ.cpp
deleted file mode 100644
index f0322e0f..00000000
--- a/waves/attic/testSonarQ.cpp
+++ /dev/null
@@ -1,22 +0,0 @@
-#include <iostream>
-
-void mem_leak()
-{
-    double *f = new double;
-    *f = 10;
-}
-
-void not_init1()
-{
-    double a;
-    std::cout << a << '\n';
-}
-
-void not_init2()
-{
-    int i = 0;
-    double a;
-    if (i == 1)
-        a = 1;
-    std::cout << a << '\n';
-}
diff --git a/waves/attic/wDof.cpp b/waves/attic/wDof.cpp
deleted file mode 100644
index ca36db06..00000000
--- a/waves/attic/wDof.cpp
+++ /dev/null
@@ -1,3 +0,0 @@
-// $Id$
-
-#include "wDof.h"
diff --git a/waves/attic/wDof.h b/waves/attic/wDof.h
deleted file mode 100644
index 11a552d8..00000000
--- a/waves/attic/wDof.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-#ifndef WDOF_H
-#define WDOF_H
-
-#include "waves.h"
-#include "wObject.h"
-#include <vector>
-#include <string>
-
-class Node;
-class Field;
-
-/**
- * @brief definition of an unknown
- */
-
-class WAVES_API Dof : public wObject
-{
-public:
-    Node &node;
-    Field &f;
-
-    Dof(Node &_node, Field &_f) : wObject(), node(_node), f(_f) {}
-};
-
-/**
- * @brief list of fields
- */
-
-class WAVES_API Dofs : public wObject
-{
-public:
-    std::vector<Dof *> dofs;
-
-    Dofs() : wObject(), dofs(0) {}
-    //~Dofs();
-    //void add(Dof &dof);
-    size_t size() const { return dofs.size(); }
-    //virtual void write(std::ostream &out) const;
-};
-
-#endif //WDOF_H
diff --git a/waves/attic/wField.cpp b/waves/attic/wField.cpp
deleted file mode 100644
index e0264b16..00000000
--- a/waves/attic/wField.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// $Id$
-
-#include "wField.h"
-
-Field::Field(std::string &_name, size_t _id) : wObject(), name(_name), id(_id)
-{
-}
-
-void Field::write(std::ostream &out) const
-{
-    out << "Field #" << id << " \"" << name << "\"";
-}
-
-// ----------------------------------------------------------------------
-
-Fields::~Fields()
-{
-    for (std::vector<Field *>::iterator it = fields.begin(); it != fields.end(); ++it)
-        delete *it;
-}
-
-void Fields::add(std::string &_name)
-{
-    size_t nextid = fields.size();
-    fields.push_back(new Field(_name, nextid));
-}
-
-void Fields::write(std::ostream &out) const
-{
-    for (std::vector<Field *>::const_iterator it = fields.begin(); it != fields.end(); ++it)
-        out << **it << '\n';
-}
diff --git a/waves/attic/wField.h b/waves/attic/wField.h
deleted file mode 100644
index 35ad5745..00000000
--- a/waves/attic/wField.h
+++ /dev/null
@@ -1,41 +0,0 @@
-// $Id$
-
-#ifndef WFIELD_H
-#define WFIELD_H
-
-#include "waves.h"
-#include "wObject.h"
-#include <vector>
-#include <string>
-
-/**
- * @brief definition of a scalar field
- */
-
-class WAVES_API Field : public wObject
-{
-public:
-    std::string name;
-    size_t id; ///< field value is stored at index "id" in nodal vectors
-
-    Field(std::string &_name, size_t _id);
-    virtual void write(std::ostream &out) const;
-};
-
-/**
- * @brief list of fields
- */
-
-class WAVES_API Fields : public wObject
-{
-public:
-    std::vector<Field *> fields;
-
-    Fields() : wObject() {}
-    ~Fields();
-    void add(std::string &_name);
-    size_t size() const { return fields.size(); }
-    virtual void write(std::ostream &out) const;
-};
-
-#endif //WFIELD_H
diff --git a/waves/attic/wSolver1.cpp b/waves/attic/wSolver1.cpp
deleted file mode 100644
index 0bca4b79..00000000
--- a/waves/attic/wSolver1.cpp
+++ /dev/null
@@ -1,7 +0,0 @@
-// $Id$
-
-#include "wSolver1.h"
-
-void Solver1::write(std::ostream &out) const
-{
-}
\ No newline at end of file
diff --git a/waves/attic/wSolver1.h b/waves/attic/wSolver1.h
deleted file mode 100644
index 9b1afd80..00000000
--- a/waves/attic/wSolver1.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// $Id$
-
-#ifndef WSOLVER1_H
-#define WSOLVER1_H
-
-#include "waves.h"
-#include "wObject.h"
-#include <iostream>
-
-class WAVES_API Solver1
-{
-public:
-    Solver1() {}
-    virtual void write(std::ostream &out) const;
-};
-
-#endif //WSOLVER1_H
diff --git a/waves/broken/cas1.geo b/waves/broken/cas1.geo
deleted file mode 100644
index 81cb82b7..00000000
--- a/waves/broken/cas1.geo
+++ /dev/null
@@ -1,60 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-
-//X=250m
-//Y=250m
-//Z=250m
-
-Lx = 250;
-Ly = 250;
-Lz = 250;
-
-nl = 30;
-
-lc = Lx/nl;
-
-
-
-Point(1) = {  0,   0, 0, lc};
-Point(2) = { Lx,   0, 0, lc};
-Point(3) = { Lx, -Ly, 0, lc};
-Point(4) = {-Lx, -Ly, 0, lc};
-Point(5) = {-Lx,   0, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 5};
-Line(5) = {5, 1};
-Line Loop(6) = {5, 1, 2, 3, 4};
-Plane Surface(7) = {6};
-Recombine Surface {7};
-
-Extrude {0, 0, Lz} 
-{
-  Surface{7}; Layers{nl}; Recombine;
-}
-
-Extrude {0, 0, -Lz} 
-{
-  Surface{7}; Layers{nl}; Recombine;
-}
-
-// physical entities
-
-Physical Point("Source Point") = {1};
-Physical Line("Measurement line") = {1};
-Physical Surface("Up Side") = {17, 44, 48, 21};
-// Physical Surface("Bottom Side") = {29, 56};
-// Physical Surface("Front Side") = {34};
-// Physical Surface("Rear Side") = {61};
-// Physical Surface("Right Side") = {25, 52};
-// Physical Surface("Left Side") = {33, 60};
-
-Physical Surface("ABC") = {29, 56, 34, 61, 25, 52, 33, 60};
-
-Physical Volume("Volume") = {1, 2};
-
-
-
diff --git a/waves/broken/cas1.py b/waves/broken/cas1.py
deleted file mode 100755
index 47384a42..00000000
--- a/waves/broken/cas1.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# TODO: il manque une source...
-
-import waves as w
-import tbox.gmsh as gmsh
-import waves.wtools as wt
-
-
-def main():
-    msh = gmsh.MeshLoader("cas1.geo", __file__).execute()
-
-    pbl = w.Problem(msh)
-
-    L=250.0
-    nl=60
-    Le=L/nl
-    c=1500.0
-    dt=Le/c/2
-
-    scheme = w.ForwardEuler(msh, pbl)
-    scheme.ttot = 0.2*100
-    scheme.dt = dt
-    scheme.savefreq=5
-    scheme.nthreads=8
-
-    print("dt=", dt)
-    print("nsteps=", int(scheme.ttot/dt))
-
-    w.Medium(pbl, "Volume", c)
-
-    print(pbl)
-
-    usegui=1
-    if not usegui:
-        scheme.start()
-    else:
-        import waves.viewer as v
-        gui = v.MeshViewer(msh, scheme)
-        gui.start()
-
-if __name__ == "__main__":
-    main()
diff --git a/waves/broken/geuz/geophysique.geo b/waves/broken/geuz/geophysique.geo
deleted file mode 100644
index b73326f0..00000000
--- a/waves/broken/geuz/geophysique.geo
+++ /dev/null
@@ -1,72 +0,0 @@
-Include "geophysique_param.geo";
-
-Mesh.RecombineAll = 1;
-Mesh.Algorithm = 8;
-Mesh.VolumeEdges = 0;
-View.DrawSkinOnly = 1;
-View.IntervalsType = 1;
-View.NbIso = 10;
-
-For i In {1:9}
-  y~{i} = Y * i/10;
-EndFor
-
-lambda = 1500 / Freq;
-lc = lambda / 10;
-N = Z / lc;
-
-Point(1) = {0, 0, 0, lc};
-Point(2) = {-X, 0, 0, lc};
-Point(3) = {X, 0, 0, lc};
-Point(4) = {-X, -Y,0, lc};
-Point(5) = {X, -Y, 0, lc};
-
-Point(10) = {-X, -y_3, 0, lc};
-Point(11) = {0, -y_2, 0, lc};
-Point(12) = {X, -y_4, 0, lc};
-
-Point(20) = {-X, -y_5, 0, lc};
-Point(21) = {0, -y_6, 0, lc};
-Point(22) = {X, -y_6, 0, lc};
-
-Point(30) = {-X, -y_9, 0, lc};
-Point(31) = {0, -y_8, 0, lc};
-Point(32) = {X, -y_7, 0, lc};
-
-Line(1) = {2, 1};
-Line(2) = {1, 3};
-Line(3) = {3, 12};
-Line(4) = {12, 22};
-Line(5) = {22, 32};
-Line(6) = {32, 5};
-Line(7) = {5, 4};
-Line(8) = {4, 30};
-Line(9) = {30, 20};
-Line(10) = {20, 10};
-Line(11) = {10, 2};
-Spline(12) = {10, 11, 12};
-Spline(13) = {20, 21, 22};
-Spline(14) = {30, 31, 32};
-Line Loop(15) = {1, 2, 3, -12, 11};
-Plane Surface(16) = {15};
-Line Loop(17) = {12, 4, -13, 10};
-Plane Surface(18) = {17};
-Line Loop(19) = {13, 5, -14, 9};
-Plane Surface(20) = {19};
-Line Loop(21) = {14, 6, 7, 8};
-Plane Surface(22) = {21};
-
-e1[] = Extrude {0, 0, Z} { Surface{16, 18, 20, 22}; Layers {N}; Recombine; };
-e2[] = Extrude {0, 0, -Z} { Surface{16, 18, 20, 22}; Layers {N}; Recombine; };
-
-Physical Point(GAMMAD) = {1};
-
-Physical Volume(OMEGA_1) = {1,5};
-Physical Volume(OMEGA_2) = {2,6};
-Physical Volume(OMEGA_3) = {3,7};
-Physical Volume(OMEGA_4) = {4,8};
-
-Physical Surface(GAMMAINF_1) = {-49, -48, 141, 142, -40, 133};
-Physical Surface(GAMMAINF_2) = {-71, -70, 163, 164, -62, 155};
-Physical Surface(GAMMAINF_3) = {-93, -92, 185, 186, -84, 177};
-Physical Surface(GAMMAINF_4) = {-115, -110, 203, 208, -106, 199, -114, 207};
diff --git a/waves/broken/geuz/geophysique.pro b/waves/broken/geuz/geophysique.pro
deleted file mode 100644
index 5f892e49..00000000
--- a/waves/broken/geuz/geophysique.pro
+++ /dev/null
@@ -1,149 +0,0 @@
-Include "geophysique_param.geo";
-
-Group {
-  Layer1 = Region[OMEGA_1];
-  Layer2 = Region[OMEGA_2];
-  Layer3 = Region[OMEGA_3];
-  Layer4 = Region[OMEGA_4];
-  Bnd1 = Region[GAMMAINF_1];
-  Bnd2 = Region[GAMMAINF_2];
-  Bnd3 = Region[GAMMAINF_3];
-  Bnd4 = Region[GAMMAINF_4];
-
-  GammaInf = Region[{Bnd1,Bnd2,Bnd3,Bnd4}];
-  Omega = Region[{Layer1,Layer2,Layer3,Layer4}];
-  GammaD = Region[GAMMAD];
-  Sigma = Region[{}];
-}
-
-Function {
-  DefineConstant[
-    c1 = {1500, Name "Input/c1"} ,
-    c2 = {1500, Name "Input/c2"} ,
-    c3 = {1500, Name "Input/c3"} ,
-    c4 = {1500, Name "Input/c4"}
-  ];
-  c[Region[{Layer1,Bnd1}]] = c1;
-  c[Region[{Layer2,Bnd2}]] = c2;
-  c[Region[{Layer3,Bnd3}]] = c3;
-  c[Region[{Layer4,Bnd4}]] = c4;
-  t_min = 0;
-  t_max = 1;
-  dt = 1/100;
-}
-
-Jacobian {
-  { Name JVol ; Case { { Region All ; Jacobian Vol ; } } }
-  { Name JSur ; Case { { Region All ; Jacobian Sur ; } } }
-  { Name JLin ; Case { { Region All ; Jacobian Lin ; } } }
-}
-
-Integration {
-  { Name I1 ;
-    Case { { Type Gauss ; Case {
-          { GeoElement Point ; NumberOfPoints  1 ; }
-          { GeoElement Line ; NumberOfPoints  2 ; }
-          { GeoElement Triangle ; NumberOfPoints  6 ; }
-          { GeoElement Tetrahedron ; NumberOfPoints  4 ; }
-          { GeoElement Quadrangle ; NumberOfPoints  4 ; }
-          { GeoElement Hexahedron ; NumberOfPoints  14 ; }
-        } } }
-  }
-}
-
-Constraint{
-  { Name Dirichlet_uinc ;
-    Case {
-      { Region GammaD ; Value 1;
-        TimeFunction Cos[2*Pi*Freq*$Time];
-      }
-    }
-  }
-}
-
-FunctionSpace {
-  { Name Hgrad_u; Type Form0 ;
-    BasisFunction {
-      { Name sn ; NameOfCoef un ; Function BF_Node ;
-        Support Region[ {Omega, GammaInf, Sigma, GammaD} ] ; Entity NodesOf[ All ] ; } }
-    Constraint {
-      { NameOfCoef un ; EntityType NodesOf ; NameOfConstraint Dirichlet_uinc ; }
-    }
-  }
-}
-
-Formulation {
-  { Name Full ; Type FemEquation ;
-    Quantity {
-      { Name u ; Type Local ; NameOfSpace Hgrad_u; }
-    }
-    Equation {
-      Galerkin { [ - Dof{Grad u} , {Grad u} ] ;
-	In Omega; Jacobian JVol ; Integration I1 ; }
-      Galerkin { DtDtDof [ - 1/c[]^2 * Dof{u} , {u} ] ;
-	In Omega; Jacobian JVol ; Integration I1 ; }
-      Galerkin { DtDof [ - 1/c[] * Dof{u} , {u} ] ;
-	In GammaInf; Jacobian JSur ; Integration I1 ; }
-    }
-  }
-}
-
-Resolution {
-  { Name Full_f;
-    System {
-      { Name Helmholtz ; NameOfFormulation Full ; Type Complex; Frequency Freq; }
-    }
-    Operation {
-      Generate[Helmholtz] ;
-      Solve[Helmholtz] ;
-      SaveSolution[Helmholtz];
-    }
-  }
-  { Name Full_t;
-    System {
-      { Name Helmholtz ; NameOfFormulation Full ; }
-    }
-    Operation {
-      InitSolution[Helmholtz];
-      InitSolution[Helmholtz];
-      // fast:
-      GenerateSeparate[Helmholtz];
-      TimeLoopNewmark[t_min,t_max,dt,0.25,0.5]{
-        Update[Helmholtz] ;
-        SolveAgain[Helmholtz] ;
-        SaveSolution[Helmholtz];
-      }
-      // slow:
-      /*
-      TimeLoopNewmark[t_min,t_max,dt,0.25,0.5]{
-        Generate[Helmholtz] ;
-        SolveAgain[Helmholtz] ;
-        SaveSolution[Helmholtz];
-      }
-      */
-    }
-  }
-}
-
-PostProcessing {
-  { Name Full ; NameOfFormulation Full ;
-    PostQuantity {
-      { Name u ; Value { Term { [ {u} ] ; In Region[ {Omega} ]; Jacobian JVol ; } } }
-    }
-  }
-}
-
-PostOperation {
-  { Name Full ; NameOfPostProcessing Full;
-    Operation {
-      Print[ u, OnElementsOf Omega, File "u.pos"] ;
-    }
-  }
-}
-
-DefineConstant[
-  //R_ = {"Full", Name "GetDP/1ResolutionChoices", Visible 0},
-  C_ = {"-solve -pos -v2 -bin", Name "GetDP/9ComputeCommand", Visible 1}
-  //P_ = {"", Name "GetDP/2PostOperationChoices", Visible 0}
-];
-
diff --git a/waves/broken/geuz/geophysique.py b/waves/broken/geuz/geophysique.py
deleted file mode 100755
index ec935081..00000000
--- a/waves/broken/geuz/geophysique.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# TODO: marche pas/plus
-
-import waves as w
-import tbox.gmsh as gmsh
-
-def main():
-    msh = gmsh.MeshLoader("geophysique.geo", __file__).execute()
-    print(msh)
-
-    pbl = w.Problem(msh)
-    pbl.c = 1500.0
-
-    c    = 1500.0
-    X    = 250.0;    Y=250.0;    Z=250.0
-    freq = 10.0
-    lam  = c / freq
-    lc   = lam / 10
-    N    = Z / lc
-    Le   = X/N
-    dt   = Le/c/10
-
-    scheme = w.ForwardEuler(pbl)
-
-    import waves.srcs
-    waves.srcs.SinSource(msh, 10, 10.0)  # le no 10 ne passe pas!
-    w.Medium(msh, 1, c)
-    w.Medium(msh, 2, c)
-    w.Medium(msh, 3, c)
-    w.Medium(msh, 4, c)
-
-    from fwk.wutils import parseargs
-    args=parseargs()
-    
-    scheme.ttot = 1.0
-    scheme.dt = dt
-    scheme.savefreq = 5
-    scheme.nthreads = args.k
-
-    if args.nogui:
-        scheme.start()
-    else:
-        import waves.viewer as v
-        gui = v.MeshViewer(scheme)
-        gui.vmin = -0.1
-        gui.vmax =  0.1
-        gui.start()
-
-if __name__ == "__main__":
-    main()
diff --git a/waves/broken/geuz/geophysique_param.geo b/waves/broken/geuz/geophysique_param.geo
deleted file mode 100644
index 86865c09..00000000
--- a/waves/broken/geuz/geophysique_param.geo
+++ /dev/null
@@ -1,20 +0,0 @@
-lc = 10;
-X = 250;
-Y = 250;
-Z = 250;
-
-DefineConstant[
-  Freq = {10, Name "Input/Frequency"}
-];
-
-OMEGA_1 = 1;
-OMEGA_2 = 2;
-OMEGA_3 = 3;
-OMEGA_4 = 4;
-
-GAMMAD = 10;
-
-GAMMAINF_1 = 11;
-GAMMAINF_2 = 12;
-GAMMAINF_3 = 13;
-GAMMAINF_4 = 14;
diff --git a/waves/broken/waves01_onelab.py b/waves/broken/waves01_onelab.py
deleted file mode 100755
index fbe41711..00000000
--- a/waves/broken/waves01_onelab.py
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-# Simple 2D wave propagation test
-
-import sys
-#sys.path.append("/usr/local/bin")
-#sys.path.append("C:\local\gmsh-2.9.0-Windows")
-
-import wutils
-wutils.findbins()
-import waves as w
-import tbox as tb
-
-import wtools as wt
-
-import onelab
-olab = onelab.client(__file__)
-
-time = olab.defineNumber('Dyna/time [s]', value=0.0)
-wspeed = olab.defineNumber('Param/wave speed', value=10.0,
-                            attributes={'Highlight':'Pink'})
-
-if olab.action == 'check':
-    exit(0)
-
-def exportMshOpt():
-    txt="""
-//n = PostProcessing.NbViews - 1;
-//If(n >= 0)
-n=0;
-Mesh.SurfaceEdges = 0;
-Mesh.VolumeEdges = 0;
-View[n].IntervalsType = 3;
-View[n].CustomMax = 0.1;
-View[n].CustomMin = 0;
-View[n].NbIso = 16;
-View[n].RangeType = 2;
-View[n].SaturateValues = 1;
-//EndIf
-    """
-    optFile = open(olab.getPath("results_merged.msh.opt"),'w')
-    optFile.write(txt)
-    optFile.close()
-
-exportMshOpt()
-
-class OneLabCallback(w.DisplayHook):
-    def __init__(self, msh, scheme):
-        w.DisplayHook.__init__(self)
-        self.msh = msh
-        self.scheme = scheme
-        scheme.setGUI(self)
-        scheme.wgmsh = w.Wgmsh_WG_ONE
-
-    def display(self, nt, t, u):
-        """ C++ => python callback
-        """
-        #print "[GUI] nt=", nt, "t=", t
-        global olab
-
-        ttot=self.scheme.ttot
-        olab.setNumber(olab.name + '/Progress', value=t, min=0, max=ttot, visible=0)
-        olab.setNumber('Dyna/time [s]', value=t)
-        olab.setNumber('Dyna/step', value=nt)
-
-        olab.setNumber('Solu/phi', value=u[0])
-        olab.addNumberChoice('Solu/phi', u[0])
-
-
-
-        # ask Gmsh to refresh
-        olab.setString('Gmsh/Action', value='refresh')
-
-        # stop if we are asked to (by Gmsh)
-        if(olab.getString(olab.name + '/Action') == 'stop'):
-            self.scheme.stopit=True
-
-        filenames = ['waves01.msh', 'res.msh']
-        with open('results_merged.msh', 'w') as outfile:
-            for fname in filenames:
-                with open(fname) as infile:
-                    for line in infile:
-                        outfile.write(line)
-        olab.mergeFile(olab.checkPath('results_merged.msh'))
-        #olab.mergeFile('results_merged.msh')
-
-    def refresh(self):
-        # donne la main au GUI a chaque pas
-        pass
-    def start(self):
-        self.scheme.start()
-
-def main():
-    global olab
-    msh = wutils.MeshLoader("waves01.geo").execute()
-    print(msh)
-
-    pbl = w.Problem(msh)
-    print(pbl)
-
-    Nx=50
-    c = wspeed
-    X=10.0;    Y=10.0;    Z=2.0
-    freq=10.0
-    lam = c / freq
-    lc = lam / 10
-
-    Le=X/Nx
-    dt=Le/c/10
-
-    scheme = w.ForwardEuler(msh, pbl)
-
-    #wt.SinSource(msh, "Line2", 5.0)
-
-    w.Medium(pbl, "Volume", c)
-
-    if 0:
-        wt.SinSource(pbl, "Line1", 10.0)
-        w.Boundary(pbl, "FaceX1", c)
-        w.Boundary(pbl, "FaceY1", c)
-
-    if 0:
-        wt.SinSource(pbl, "FaceX0", 10.0)
-        w.Boundary(pbl, "FaceX1", c)
-
-    if 1:
-        s = wt.MultiSource(pbl, "FaceY0")
-        s.addSource(tb.Vector3d(3,0,0),5)
-        s.addSource(tb.Vector3d(7,0,0),20)
-        w.Boundary(pbl, "FaceX0", c)
-        w.Boundary(pbl, "FaceX1", c)
-        w.Boundary(pbl, "FaceY1", c)
-
-    if 0:
-        wt.PulseSource(pbl, "Line1", 10.0, shift=0.3, width=100.0)
-        w.Boundary(pbl, "FaceX1", c)
-        w.Boundary(pbl, "FaceY1", c)
-
-    # boundaries
-
-
-    scheme.ttot = 10.0
-    scheme.dt = dt
-    scheme.savefreq=5
-    scheme.nthreads=12
-
-
-    usegui=1
-    if not usegui:
-        scheme.start()
-    else:
-        import viewer as v
-        gui = OneLabCallback(msh, scheme)
-        gui.start()
-
-
-    #raw_input("<Press a key>")
-
-if __name__ == "__main__":
-    main()
diff --git a/waves/exe/CMakeLists.txt b/waves/exe/CMakeLists.txt
deleted file mode 100644
index ec845ea8..00000000
--- a/waves/exe/CMakeLists.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Example of compiled problem using "waves"
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.hpp)
-ADD_EXECUTABLE(waves1 ${SRCS})
-MACRO_DebugPostfix(waves1)
-TARGET_LINK_LIBRARIES(waves1 waves)
diff --git a/waves/exe/main.cpp b/waves/exe/main.cpp
deleted file mode 100644
index 2825a71f..00000000
--- a/waves/exe/main.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "waves.h"
-#include "wMshData.h"
-#include "wProblem.h"
-#include "wForwardEuler.h"
-#include "wGmshImport.h"
-#include "wGmshExport.h"
-
-// Note that the file strates.msh must be generated from waves/tests/attic/strates.geo using gmsh, and placed in the current directory
-int main()
-{
-    auto msh = std::make_shared<tbox::MshData>();
-    tbox::GmshImport *gmshLoader = new tbox::GmshImport(msh);
-    tbox::GmshExport *gmshWriter = new tbox::GmshExport(msh);
-    gmshLoader->load(std::string("strates.msh"), -1);
-
-    auto pbl = std::make_shared<waves::Problem>(msh);
-
-    waves::ForwardEuler scheme(pbl);
-    scheme.start(gmshWriter);
-
-    delete gmshLoader;
-    delete gmshWriter;
-
-    return 0;
-}
diff --git a/waves/models/__init__.py b/waves/models/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/waves/models/cube.geo b/waves/models/cube.geo
deleted file mode 100644
index 506ab0fd..00000000
--- a/waves/models/cube.geo
+++ /dev/null
@@ -1,50 +0,0 @@
-// a cube meshed with hex
-
-
-DefineConstant[ Lx = {  1, Min 5, Max 20, Step 1, Name "Lengths/Lx" }  ];
-DefineConstant[ Ly = {  1, Min 5, Max 20, Step 1, Name "Lengths/Ly" }  ];
-DefineConstant[ Lz = {  1, Min 1, Max  2, Step 1, Name "Lengths/Lz" }  ];
-
-DefineConstant[ Nx = {   1, Min 1, Max 200, Step 10, Name "Mesh/Nx" }  ];
-DefineConstant[ Ny = {   1, Min 1, Max 200, Step 10, Name "Mesh/Ny" }  ];
-DefineConstant[ Nz = {   1, Min 1, Max 200, Step 10, Name "Mesh/Nz" }  ];
-
-lc = 1; // useless
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly, 0, lc};
-Point(4) = { 0,  Ly, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 1};
-
-Line Loop(5) = {1, 2, 3, 4};
-
-Plane Surface(6) = {5};
-
-Transfinite Line {1, 3} = Nx+1 Using Progression 1;
-Transfinite Line {4, 2} = Ny+1 Using Progression 1;
-
-Transfinite Surface {6};
-Recombine Surface {6};
-Extrude {0, 0, Lz} {
-  Surface{6}; Layers{Nz}; Recombine;
-}
-Physical Volume("Volume") = {1};
-
-Physical Surface("FaceZ0") = {6};
-Physical Surface("FaceZ1") = {28};
-Physical Surface("FaceY0") = {15};
-Physical Surface("FaceX1") = {19};
-Physical Surface("FaceY1") = {23};
-Physical Surface("FaceX0") = {27};
-
-Physical Line("Line1") = {13};
-Physical Line("Line2") = {14};
-Physical Line("Line3") = {18};
-Physical Line("Line4") = {22};
-
-
-
diff --git a/waves/models/cube2mat.geo b/waves/models/cube2mat.geo
deleted file mode 100644
index 43d32239..00000000
--- a/waves/models/cube2mat.geo
+++ /dev/null
@@ -1,73 +0,0 @@
-// 2 materiaux
-
-
-DefineConstant[ Lx = {  1, Min 5, Max 20, Step 1, Name "Lengths/Lx" }  ];
-DefineConstant[ Ly1 = {  1, Min 5, Max 20, Step 1, Name "Lengths/Ly1" }  ];
-DefineConstant[ Ly2 = {  1, Min 5, Max 20, Step 1, Name "Lengths/Ly2" }  ];
-DefineConstant[ Lz = {  1, Min 1, Max  2, Step 1, Name "Lengths/Lz" }  ];
-
-DefineConstant[ Nx = {   1, Min 1, Max 200, Step 10, Name "Mesh/Nx" }  ];
-DefineConstant[ Ny1 = {   1, Min 1, Max 200, Step 10, Name "Mesh/Ny1" }  ];
-DefineConstant[ Ny2 = {   1, Min 1, Max 200, Step 10, Name "Mesh/Ny2" }  ];
-DefineConstant[ Nz = {   1, Min 1, Max 200, Step 10, Name "Mesh/Nz" }  ];
-
-lc = Lx/Nx; // useless
-
-Point(1) = { 0,   0, 0, lc};
-Point(2) = { Lx,  0, 0, lc};
-Point(3) = { Lx, Ly1+Ly2, 0, lc};
-Point(4) = { 0,  Ly1+Ly2, 0, lc};
-
-Point(5) = { 0,  Ly1, 0, lc};
-Point(6) = { Lx, Ly2, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 6};
-Line(3) = {6, 5};
-Line(4) = {5, 1};
-Line(5) = {5, 4};
-Line(6) = {4, 3};
-Line(7) = {3, 6};
-
-
-
-Line Loop(8) = {6, 7, 3, 5};
-Plane Surface(9) = {8};
-Line Loop(10) = {1, 2, 3, 4};
-Plane Surface(11) = {10};
-
-// ---
-Transfinite Line {1, 3, 6} = Nx-1 Using Progression 1;
-Transfinite Line {2, 4} = Ny1-1 Using Progression 1;
-Transfinite Line {7, 5} = Ny2-1 Using Progression 1;
-Transfinite Surface {9};
-Transfinite Surface {11};
-// ---
-
-Recombine Surface {9};
-Recombine Surface {11};
-
-Extrude {0, 0, Lz} {
-  Surface{9}; Layers{Nz}; Recombine;
-}
-Extrude {0, 0, Lz} {
-  Surface{11}; Layers{Nz}; Recombine;
-}
-
-
-Physical Volume("Volume1") = {2};
-Physical Volume("Volume2") = {1};
-
-
-Physical Surface("FaceY0") = {42};
-Physical Surface("FaceX1_1") = {46};
-Physical Surface("FaceX1_2") = {24};
-Physical Surface("FaceY1") = {20};
-Physical Surface("FaceX0_1") = {54};
-Physical Surface("FaceX0_2") = {32};
-
-
-
-Physical Line("Line1") = {40};
-
-
diff --git a/waves/models/plane1mat.py b/waves/models/plane1mat.py
deleted file mode 100755
index 8f1daf1e..00000000
--- a/waves/models/plane1mat.py
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# Simple 2D wave-propagation test in 1 material
-
-import waves as w
-import tbox
-import tbox.gmsh as gmsh
-import waves.srcs as srcs
-import waves.utils as u
-
-
-def model(p={}):
-    # configure/build mesh
-    pars = {'Lx': p['Lx'], 'Ly': p['Ly'], 'Nx': p['Nx'], 'Ny': p['Ny']}
-    msh = gmsh.MeshLoader("cube.geo", __file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = w.Problem(msh)
-
-    # compute time-step size
-    Lex = p['Lx'] / p['Nx']
-    Ley = p['Ly'] / p['Ny']
-    dt = min(Lex, Ley) / p['c'] / 10 * 2
-
-    pbl.add(w.Medium(msh, "Volume", p['c']))
-
-    if p['bc'] == 'sinsrc':  # source dans le coin inf gauche
-        pbl.add(srcs.SinSource(msh, "Line1", p['freq']))
-        pbl.add(w.Boundary(msh, "FaceX1", p['c']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c']))
-
-    elif p['bc'] == 'planewave':  # onde plane de bas en haut
-        pbl.add(srcs.SinSource(msh, "FaceX0", p['freq']))
-        pbl.add(w.Boundary(msh, "FaceX1", p['c']))
-
-    elif p['bc'] == 'interf1':  # interférence de 2 srcs sur la frontière basse
-        s = srcs.MultiSource(msh, "FaceY0")
-        s.addSource(tbox.Vector3d(3, 0, 0), p['freq'] / 2)
-        s.addSource(tbox.Vector3d(7, 0, 0), p['freq'])
-        pbl.add(s)
-        pbl.add(w.Boundary(msh, "FaceX0", p['c']))
-        pbl.add(w.Boundary(msh, "FaceX1", p['c']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c']))
-
-    elif p['bc'] == 'pulse':  # un pulse qui part du coin inf gauche
-        pbl.add(
-            srcs.PulseSource(msh, "Line1", p['freq'], shift=0.3, width=100.0))
-        pbl.add(w.Boundary(msh, "FaceX1", p['c']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c']))
-
-    elif p['bc'] == 'interf2':  # 2 sources non synchrones au centre du domaine
-        s = srcs.MultiSource(msh, "Volume")
-        s.addSource(tbox.Vector3d(3 * p['Lx'] / 10, p['Ly'] / 2, 0), p['freq'])
-        s.addSource(
-            tbox.Vector3d(7 * p['Lx'] / 10, p['Ly'] / 2, 0), 1.05 * p['freq'])
-        #pbl.add(s.__disown__())
-        pbl.add(s)
-        pbl.add(w.Boundary(msh, "FaceX0", p['c']))
-        pbl.add(w.Boundary(msh, "FaceX1", p['c']))
-        pbl.add(w.Boundary(msh, "FaceY0", p['c']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c']))
-    else:
-        raise Exception('Unknown BC type (%s)' % p['bc'])
-
-    scheme = w.ForwardEuler(pbl)
-    #scheme.wgmsh = w.Wgmsh_WG_ALL # write .pos files
-    scheme.ttot = p['ttot']
-    scheme.dt = dt
-    scheme.savefreq = 5
-    return scheme, gmshWriter
-
-
-def runmodel(**d):
-    p = {}
-    p['bc'] = 'interf2'
-    p['ttot'] = 1.0
-    p['Lx'] = 10.0
-    p['Ly'] = 10.0
-    p['Nx'] = 50
-    p['Ny'] = 50
-    p['c'] = 10.0
-    p['freq'] = 10.0
-    p.update(d)
-
-    scheme, writer = model(p)
-    u.integrate(scheme, writer)
-
-
-if __name__ == "__main__":
-    runmodel()
diff --git a/waves/models/plane2mat.py b/waves/models/plane2mat.py
deleted file mode 100755
index 693a9cc4..00000000
--- a/waves/models/plane2mat.py
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# Simple 2D wave-propagation test in 2 materials
-
-import waves as w
-import tbox
-import tbox.gmsh as gmsh
-import waves.srcs as srcs
-import waves.utils as u
-
-
-def model(p={}):
-    # configure/build mesh
-    pars = {
-        'Lx': p['Lx'],
-        'Ly1': p['Ly1'],
-        'Ly2': p['Ly2'],
-        'Nx': p['Nx'],
-        'Ny1': p['Ny1'],
-        'Ny2': p['Ny2']
-    }
-    msh = gmsh.MeshLoader("cube2mat.geo", __file__).execute(**pars)
-    gmshWriter = tbox.GmshExport(msh)
-    pbl = w.Problem(msh)
-
-    # compute time-step size
-    Lex = float(p['Lx']) / p['Nx']
-    Ley1 = float(p['Ly1']) / p['Ny1']
-    Ley2 = float(p['Ly2']) / p['Ny2']
-    dt1 = min(Lex, Ley1) / p['c1']
-    dt2 = min(Lex, Ley2) / p['c2']
-    dt = min(dt1, dt2) * 0.8
-    #lam = maxc / p['freq']
-
-    pbl.add(w.Medium(msh, "Volume1", p['c1']))
-    pbl.add(w.Medium(msh, "Volume2", p['c2']))
-
-    if p['bc'] == 'sinsrc':  # source de bas en haut
-        pbl.add(srcs.SinSource(msh, "FaceY0", p['freq']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c2']))
-        pbl.add(w.Boundary(msh, "FaceY0", p['c1']))
-
-    elif p['bc'] == 'interf1':  # interference de 2 sources sur la frontière basse
-        s = srcs.MultiSource(msh, "FaceY0")
-        s.addSource(tbox.Vector3d(3, 0, 0), p['freq'] / 2)
-        s.addSource(tbox.Vector3d(7, 0, 0), 2 * p['freq'])
-        pbl.add(s)
-        pbl.add(w.Boundary(msh, "FaceX0_1", p['c1']))
-        pbl.add(w.Boundary(msh, "FaceX0_2", p['c2']))
-        pbl.add(w.Boundary(msh, "FaceX1_1", p['c1']))
-        pbl.add(w.Boundary(msh, "FaceX1_2", p['c2']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c2']))
-
-    elif p['bc'] == 'pulse':  # un pulse qui part du coin inf gauche
-        pbl.add(
-            srcs.PulseSource(msh, "FaceY0", p['freq'], shift=0.3, width=200.0))
-        #pbl.add(w.Boundary(msh, "FaceX0_1", p['c1']))
-        #pbl.add(w.Boundary(msh, "FaceX0_2", p['c2']))
-        #pbl.add(w.Boundary(msh, "FaceX1_1", p['c1']))
-        #pbl.add(w.Boundary(msh, "FaceX1_2", p['c2']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c2']))
-        pbl.add(w.Boundary(msh, "FaceY0", p['c1']))
-
-    elif p['bc'] == 'reflex':  # réflexion/réfraction (Bulthuis)
-        pbl.add(srcs.SinSource(msh, "Line1", p['freq']))
-        #pbl.add(w.Boundary(msh, "FaceX0_1", p['c1']))
-        #pbl.add(w.Boundary(msh, "FaceX0_2", p['c2']))
-        pbl.add(w.Boundary(msh, "FaceX1_1", p['c1']))
-        pbl.add(w.Boundary(msh, "FaceX1_2", p['c2']))
-        pbl.add(w.Boundary(msh, "FaceY1", p['c2']))
-        #pbl.add(w.Boundary(msh, "FaceY0", p['c1']))
-    else:
-        raise Exception('Unknown BC type (%s)' % p['bc'])
-
-    scheme = w.ForwardEuler(pbl)
-    #scheme.wgmsh = w.Wgmsh_WG_ALL # write .pos files
-    scheme.ttot = p['ttot']
-    scheme.dt = dt
-    scheme.savefreq = 5
-
-    return scheme, gmshWriter
-
-
-def runmodel(**d):
-    p = {}
-    p['bc'] = 'reflex'
-    p['ttot'] = 1.0
-    p['Lx'] = 10.0
-    p['Ly1'] = 5.0
-    p['Ly2'] = 5.0
-    p['Nx'] = 100
-    p['Ny1'] = 50
-    p['Ny2'] = 50
-    p['c1'] = 10.0
-    p['c2'] = 20.0
-    p['freq'] = 10.0
-    p.update(d)
-
-    scheme, writer = model(p)
-    u.integrate(scheme, writer)
-
-
-if __name__ == "__main__":
-    runmodel()
diff --git a/waves/src/CMakeLists.txt b/waves/src/CMakeLists.txt
deleted file mode 100644
index e281b8ac..00000000
--- a/waves/src/CMakeLists.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# CMake input file of waves.so
-
-FILE(GLOB SRCS *.h *.cpp *.inl *.hpp)
-
-ADD_LIBRARY(waves SHARED ${SRCS})
-MACRO_DebugPostfix(waves)
-TARGET_INCLUDE_DIRECTORIES(waves PUBLIC ${PROJECT_SOURCE_DIR}/waves/src)
-
-TARGET_LINK_LIBRARIES(waves tbox fwk)
-
-INSTALL(TARGETS waves DESTINATION ${CMAKE_INSTALL_PREFIX})
-
-SOURCE_GROUP(base       REGULAR_EXPRESSION ".*\\.(cpp|inl|hpp|h)")
-SOURCE_GROUP(schemes    REGULAR_EXPRESSION ".+(TimeIntegration|Runge|Euler|Newmark).+")
diff --git a/waves/src/wBoundary.cpp b/waves/src/wBoundary.cpp
deleted file mode 100644
index 52238cac..00000000
--- a/waves/src/wBoundary.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wBoundary.h"
-#include "wProblem.h"
-#include "wTag.h"
-using namespace waves;
-
-Boundary::Boundary(std::shared_ptr<MshData> _msh, int no, double _c) : Group(_msh, no), c(_c)
-{
-    //pbl.bnds.push_back(this);
-}
-
-Boundary::Boundary(std::shared_ptr<MshData> _msh, std::string const &name, double _c) : Group(_msh, name), c(_c)
-{
-    //pbl.bnds.push_back(this);
-}
-
-void Boundary::write(std::ostream &out) const
-{
-    out << "Boundary on " << *tag;
-}
diff --git a/waves/src/wBoundary.h b/waves/src/wBoundary.h
deleted file mode 100644
index 98ef337e..00000000
--- a/waves/src/wBoundary.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WBOUNDARY_H
-#define WBOUNDARY_H
-
-#include "waves.h"
-#include "wGroup.h"
-
-using namespace tbox;
-
-namespace waves
-{
-
-/**
- * @brief boundaries which requires a special treatment
- */
-
-class WAVES_API Boundary : public Group
-{
-public:
-    double c;
-    Boundary(std::shared_ptr<MshData> _msh, int no, double _c);
-    Boundary(std::shared_ptr<MshData> _msh, std::string const &name, double _c);
-    virtual ~Boundary() { std::cout << "~Boundary()\n"; }
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-} // namespace waves
-
-#endif //WBOUNDARY_H
diff --git a/waves/src/wDisplayHook.cpp b/waves/src/wDisplayHook.cpp
deleted file mode 100644
index 432f096f..00000000
--- a/waves/src/wDisplayHook.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wDisplayHook.h"
-
-using namespace waves;
-
-DisplayHook::DisplayHook()
-{
-}
-
-void DisplayHook::display(int nt, double t, std::vector<double> &u)
-{
-    std::cout << "DisplayHook::display()\n";
-}
-
-void DisplayHook::refresh()
-{
-    std::cout << "DisplayHook::refresh()\n";
-}
diff --git a/waves/src/wDisplayHook.h b/waves/src/wDisplayHook.h
deleted file mode 100644
index 859859da..00000000
--- a/waves/src/wDisplayHook.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WDISPLAYHOOK_H
-#define WDISPLAYHOOK_H
-
-#include "waves.h"
-#include "wObject.h"
-#include <vector>
-
-namespace waves
-{
-
-/**
- * @brief quad element
- */
-
-class WAVES_API DisplayHook : public fwk::wObject
-{
-public:
-    DisplayHook();
-    virtual void display(int nt, double t, std::vector<double> &u);
-    virtual void refresh();
-};
-
-} // namespace waves
-
-#endif //WDISPLAYHOOK_H
diff --git a/waves/src/wForwardEuler.cpp b/waves/src/wForwardEuler.cpp
deleted file mode 100644
index 9efb91b8..00000000
--- a/waves/src/wForwardEuler.cpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wForwardEuler.h"
-#include "wMshData.h"
-#include "wNode.h"
-#include "wElement.h"
-#include "wTimer.h"
-#include "wTag.h"
-#include "wProblem.h"
-#include "wDisplayHook.h"
-#include "wSource.h"
-#include "wResults.h"
-#include "wMshExport.h"
-using namespace tbox;
-using namespace waves;
-
-ForwardEuler::ForwardEuler(std::shared_ptr<waves::Problem> _pbl) : TimeIntegration(_pbl)
-{
-}
-
-void ForwardEuler::start(MshExport *mshWriter)
-{
-    std::cout << *this;
-    chrono1.start();
-
-    auto msh = pbl->msh;
-    u1.resize(msh->nodes.size());
-    v1.resize(msh->nodes.size());
-    Eigen::Map<Eigen::VectorXd> u1_(u1.data(), u1.size()), v1_(v1.data(), v1.size());
-
-    // matrix assembly
-    Eigen::SparseMatrix<double, Eigen::RowMajor> K(msh->nodes.size(), msh->nodes.size());
-    std::vector<double> Md(msh->nodes.size());
-    Eigen::Map<Eigen::VectorXd> Md_(Md.data(), Md.size());
-    buildKM(K, Md, u1);
-
-    Eigen::SparseMatrix<double, Eigen::RowMajor> S(msh->nodes.size(), msh->nodes.size());
-    buildS(S);
-
-    // setup results
-    Results results;
-    results.scalars_at_nodes["u"] = &u1;
-    //results.scalars_at_nodes["v"] = &v1;
-
-    // time integration
-
-    std::cout << "\n\nTime integration...\n";
-    std::cout << *this << '\n';
-
-    double t = 0.0;
-    int nt = 1;
-    results.nt = nt;
-    results.time = t;
-
-    while (t < ttot && !stopit)
-    {
-        //if(verbose)    std::cout << "nt " << nt << " t=" << t << "\n";
-        if (verbose)
-            std::cout << "nt " << nt << " t=" << t << " stopit=" << stopit << "\n";
-
-        //std::for_each(msh->srcs.begin(), msh->srcs.end(), [&](Source *s) { s->apply(t, u1); });
-        for (auto s : pbl->srcs)
-            s->apply(t, u1);
-
-        t += dt;
-        nt++;
-
-        // equation #1
-        u1_ += v1_ * dt; // u1 = u0 + dt*v0
-
-        for (auto s : pbl->srcs)
-            s->apply(t, u1);
-
-        // equation #2
-        v1_.array() -= dt * (K * u1_ + S * v1_).array() / Md_.array();
-
-        if (nt % savefreq == 0)
-        {
-            //std::cout << "nt " << nt << " t=" << t << "\n";
-            results.time = t;
-            if (wgmsh == Wgmsh::WG_ONE)
-            {
-                results.nt++;
-                mshWriter->save("res", results);
-            }
-            else if (wgmsh == Wgmsh::WG_ALL)
-            {
-                results.nt++;
-                char filename[256];
-                sprintf(filename, "res_%06d", nt);
-                mshWriter->save(filename, results);
-            }
-            if (dhook)
-                dhook->display(nt, t, u1);
-        }
-        if (dhook)
-            dhook->refresh();
-    }
-
-    chrono1.stop();
-    std::cout << "[cpu] " << chrono1 << '\n';
-}
diff --git a/waves/src/wForwardEuler.h b/waves/src/wForwardEuler.h
deleted file mode 100644
index 1be5443b..00000000
--- a/waves/src/wForwardEuler.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WFORWARDEULER_H
-#define WFORWARDEULER_H
-
-#include "waves.h"
-#include "wTimeIntegration.h"
-
-namespace waves
-{
-
-/**
- * @brief simple explicit Forward Euler time integration
- */
-
-class WAVES_API ForwardEuler : public TimeIntegration
-{
-public:
-    ForwardEuler(std::shared_ptr<Problem> _pbl);
-    virtual ~ForwardEuler() { std::cout << "~ForwardEuler()\n"; }
-
-    virtual void start(tbox::MshExport *mshWriter) override;
-    virtual char const *clsname() const override { return "ForwardEuler"; }
-};
-
-} // namespace waves
-
-#endif //WFORWARDEULER_H
diff --git a/waves/src/wMedium.cpp b/waves/src/wMedium.cpp
deleted file mode 100644
index af87497c..00000000
--- a/waves/src/wMedium.cpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wMedium.h"
-#include "wProblem.h"
-#include "wTag.h"
-using namespace waves;
-
-Medium::Medium(std::shared_ptr<MshData> _msh, int no, double _c) : Group(_msh, no), c(_c)
-{
-    //pbl.media.push_back(this);
-}
-
-Medium::Medium(std::shared_ptr<MshData> _msh, std::string const &name, double _c) : Group(_msh, name), c(_c)
-{
-    //pbl.media.push_back(this);
-}
-
-void Medium::write(std::ostream &out) const
-{
-    out << "Medium on " << *tag << " with c=" << this->c;
-}
diff --git a/waves/src/wMedium.h b/waves/src/wMedium.h
deleted file mode 100644
index a3e370af..00000000
--- a/waves/src/wMedium.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WMEDIUM_H
-#define WMEDIUM_H
-
-#include "waves.h"
-#include "wGroup.h"
-
-using namespace tbox;
-
-namespace waves
-{
-
-/**
- * @brief a medium (with a speed of wave)
- * @todo c => Fct  (cfr heat)
- */
-
-class WAVES_API Medium : public Group
-{
-public:
-    double c;
-    Medium(std::shared_ptr<MshData> _msh, int no, double _c);
-    Medium(std::shared_ptr<MshData> _msh, std::string const &name, double _c);
-    virtual ~Medium() { std::cout << "~Medium()\n"; }
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-} // namespace waves
-
-#endif //WMEDIUM_H
diff --git a/waves/src/wNewmark.cpp b/waves/src/wNewmark.cpp
deleted file mode 100644
index 91952128..00000000
--- a/waves/src/wNewmark.cpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wNewmark.h"
-#include "wMshData.h"
-#include "wNode.h"
-#include "wElement.h"
-#include "wTimer.h"
-#include "wTag.h"
-#include "wProblem.h"
-#include "wDisplayHook.h"
-#include "wSource.h"
-#include "wResults.h"
-#include "wMshExport.h"
-using namespace tbox;
-using namespace waves;
-
-Newmark::Newmark(std::shared_ptr<waves::Problem> _pbl) : TimeIntegration(_pbl)
-{
-    gamma = 0.5;
-    beta = 0.25;
-}
-
-void Newmark::start(MshExport *mshWriter)
-{
-    std::cout << *this;
-    chrono1.start();
-
-    auto msh = pbl->msh;
-    u1.resize(msh->nodes.size());
-    v1.resize(msh->nodes.size());
-    Eigen::Map<Eigen::VectorXd> u1_(u1.data(), u1.size()), v1_(v1.data(), v1.size());
-
-    // matrix assembly
-    Eigen::SparseMatrix<double, Eigen::RowMajor> K(msh->nodes.size(), msh->nodes.size());
-    std::vector<double> Md(msh->nodes.size());
-    Eigen::Map<Eigen::VectorXd> Md_(Md.data(), Md.size());
-    buildKM(K, Md, u1);
-
-    Eigen::SparseMatrix<double, Eigen::RowMajor> S(msh->nodes.size(), msh->nodes.size());
-    buildS(S);
-
-    // setup results
-    Results results;
-    results.scalars_at_nodes["u"] = &u1;
-    //results.scalars_at_nodes["v"] = &v1;
-
-    // time integration
-
-    std::cout << "\n\nTime integration...\n";
-    std::cout << *this << '\n';
-
-    double t = 0.0;
-    int nt = 1;
-    results.nt = nt;
-    results.time = t;
-
-    while (t < ttot && !stopit)
-    {
-        if (verbose)
-            std::cout << "nt " << nt << " t=" << t << "\n";
-
-        for (auto s : pbl->srcs)
-            s->apply(t, u1);
-
-        t += dt;
-        nt++;
-
-        // equation #1
-        u1_ += v1_ * dt; // u1 = u0 + dt*v0
-
-        for (auto s : pbl->srcs)
-            s->apply(t, u1);
-
-        // equation #2
-        v1_.array() -= dt * (K * u1_ + S * v1_).array() / Md_.array();
-
-        if (nt % savefreq == 0)
-        {
-            //std::cout << "nt " << nt << " t=" << t << "\n";
-            results.time = t;
-            results.nt++;
-            //mshWriter->save("res", results);
-
-            if (dhook)
-                dhook->display(nt, t, u1);
-        }
-        if (dhook)
-            dhook->refresh();
-    }
-
-    chrono1.stop();
-    std::cout << "[cpu] " << chrono1 << '\n';
-}
diff --git a/waves/src/wNewmark.h b/waves/src/wNewmark.h
deleted file mode 100644
index b03d5808..00000000
--- a/waves/src/wNewmark.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WNEWMARK_H
-#define WNEWMARK_H
-
-#include "waves.h"
-#include "wTimeIntegration.h"
-
-namespace waves
-{
-
-/**
- * @brief implicit Newmark
- */
-
-class WAVES_API Newmark : public TimeIntegration
-{
-public:
-    double gamma;
-    double beta;
-
-    Newmark(std::shared_ptr<Problem> _pbl);
-    virtual ~Newmark() { std::cout << "~Newmark()\n"; }
-
-    virtual void start(tbox::MshExport *mshWriter) override;
-    virtual char const *clsname() const override { return "Newmark"; }
-};
-
-} // namespace waves
-
-#endif //WNEWMARK_H
diff --git a/waves/src/wProblem.cpp b/waves/src/wProblem.cpp
deleted file mode 100644
index f5effcb2..00000000
--- a/waves/src/wProblem.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wProblem.h"
-#include "wMshData.h"
-#include "wSource.h"
-#include "wMedium.h"
-#include "wBoundary.h"
-#include "wElement.h"
-
-#include "wTag.h"
-using namespace waves;
-
-Problem::Problem(std::shared_ptr<MshData> _msh) : msh(_msh)
-{
-}
-
-Problem::~Problem()
-{
-    std::cout << "~Problem()\n";
-    std::cout << "\tstill " << srcs.size() << " source(s) remaining.\n";
-    for (auto s : srcs)
-        std::cout << "\t\t" << *s << " (use_count=" << s.use_count() << ")\n";
-}
-
-/**
- * @brief Initialize the elements precomputed values
- */
-void Problem::initElems()
-{
-    // Update volume Jacobian
-    for (auto vol : media)
-        for (auto e : vol->tag->elems)
-            e->initValues(true);
-    // Update surface Jacobian (Neumann B.C.)
-    for (auto surf : bnds)
-        for (auto e : surf->tag->elems)
-            e->initValues(false);
-}
-
-void Problem::write(std::ostream &out) const
-{
-    out << "waves::Problem:\n";
-    out << " + mesh:\n";
-    out << *msh;
-    out << " + sources:\n";
-    for (auto s : srcs)
-        out << *s << '\n';
-    out << " + media:\n";
-    for (auto m : media)
-        out << *m << '\n';
-    out << " + boundaries:\n";
-    for (auto b : bnds)
-        out << *b << '\n';
-}
diff --git a/waves/src/wProblem.h b/waves/src/wProblem.h
deleted file mode 100644
index adff43b5..00000000
--- a/waves/src/wProblem.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WPROBLEM_H
-#define WPROBLEM_H
-
-#include "waves.h"
-#include "wObject.h"
-#include <iostream>
-#include <vector>
-#include <memory>
-
-using namespace tbox;
-
-namespace waves
-{
-
-/**
- * @brief main wave Problem object
- */
-
-class WAVES_API Problem : public fwk::wSharedObject
-{
-public:
-    std::shared_ptr<MshData> msh;
-#ifndef SWIG
-    std::vector<std::shared_ptr<Source>> srcs;
-    std::vector<std::shared_ptr<Medium>> media;
-    std::vector<std::shared_ptr<Boundary>> bnds;
-#endif
-    Problem(std::shared_ptr<MshData> _msh);
-    virtual ~Problem();
-
-    void add(std::shared_ptr<Source> s) { srcs.push_back(s); }
-    void add(std::shared_ptr<Medium> m) { media.push_back(m); }
-    void add(std::shared_ptr<Boundary> b) { bnds.push_back(b); }
-
-#ifndef SWIG
-    void initElems();
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-} // namespace waves
-
-#endif //WPROBLEM_H
diff --git a/waves/src/wRungeKutta.cpp b/waves/src/wRungeKutta.cpp
deleted file mode 100644
index 75e9baf2..00000000
--- a/waves/src/wRungeKutta.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wRungeKutta.h"
-#include "wMshData.h"
-#include "wNode.h"
-#include "wElement.h"
-#include "wTimer.h"
-#include "wTag.h"
-#include "wProblem.h"
-#include "wDisplayHook.h"
-#include "wSource.h"
-#include "wResults.h"
-#include "wMshExport.h"
-using namespace tbox;
-using namespace waves;
-
-RungeKutta::RungeKutta(std::shared_ptr<waves::Problem> _pbl) : TimeIntegration(_pbl)
-{
-}
-
-void RungeKutta::start(MshExport *mshWriter)
-{
-    std::cout << *this;
-    chrono1.start();
-
-    auto msh = pbl->msh;
-    u1.resize(msh->nodes.size());
-    v1.resize(msh->nodes.size());
-
-    // matrix assembly
-    Eigen::SparseMatrix<double, Eigen::RowMajor> K(msh->nodes.size(), msh->nodes.size());
-    std::vector<double> Md(msh->nodes.size());
-    buildKM(K, Md, u1);
-
-    Eigen::SparseMatrix<double, Eigen::RowMajor> S(msh->nodes.size(), msh->nodes.size());
-    buildS(S);
-
-    // setup results
-    Results results;
-    results.scalars_at_nodes["u"] = &u1;
-    //results.scalars_at_nodes["v"] = &v1;
-
-    // time integration
-
-    std::cout << "\n\nTime integration...\n";
-    std::cout << *this << '\n';
-
-    std::vector<double> tmp1(msh->nodes.size()), tmp2(msh->nodes.size());
-    double t = 0.0;
-    int nt = 1;
-    results.nt = nt;
-    results.time = t;
-
-    std::vector<double> up1(msh->nodes.size());
-    std::vector<double> vp1(msh->nodes.size());
-    std::vector<double> up2(msh->nodes.size());
-    std::vector<double> vp2(msh->nodes.size());
-    std::vector<double> up3(msh->nodes.size());
-    std::vector<double> vp3(msh->nodes.size());
-
-    std::vector<double> u2(msh->nodes.size());
-    std::vector<double> v2(msh->nodes.size());
-
-    //Node *snod = msh->ntags["Source Point"]->elems[0]->nodes[0];
-
-    while (t < ttot)
-    {
-        std::cout << "nt " << nt << " t=" << t << "\n";
-
-        //u1[snod->row] = sin(2*M_PI*20*t); // BC
-        //if(source) source->apply(t, u1);
-        std::for_each(pbl->srcs.begin(), pbl->srcs.end(), [&](std::shared_ptr<Source> s) { s->apply(t, u1); });
-
-        t += dt;
-        nt++;
-
-        predictor(up1, vp1, u1, v1, u1, v1, dt, Md, K, S, 1.0, t);
-        predictor(up2, vp2, up1, vp1, u1, v1, dt, Md, K, S, 1.0, t);
-        predictor(up3, vp3, up2, vp2, u1, v1, dt, Md, K, S, 1.0, t);
-
-        predictor(u2, v2, u1, v1, u1, v1, dt, Md, K, S, 1. / 2., t);
-        predictor(u1, v1, up1, vp1, u2, v2, dt, Md, K, S, 1. / 3., t);
-        predictor(u2, v2, up2, vp2, u1, v1, dt, Md, K, S, 1. / 8., t);
-        predictor(u1, v1, up3, vp3, u2, v2, dt, Md, K, S, 1. / 24., t);
-
-        //u1[snod->row] = sin(2*M_PI*20*t); //BC bis
-        //if(source) source->apply(t, u1);
-        std::for_each(pbl->srcs.begin(), pbl->srcs.end(), [&](std::shared_ptr<Source> s) { s->apply(t, u1); });
-
-        if (nt % savefreq == 0)
-        {
-            //std::cout << "nt " << nt << " t=" << t << "\n";
-            results.time = t;
-            results.nt++;
-            //mshWriter->save("res", results);
-
-            if (dhook)
-                dhook->display(nt, t, u1);
-        }
-        if (dhook)
-            dhook->refresh();
-    }
-
-    chrono1.stop();
-    std::cout << "[cpu] " << chrono1 << '\n';
-}
-
-void RungeKutta::predictor(std::vector<double> &up2, std::vector<double> &vp2, // premier membre
-                           std::vector<double> &up1, std::vector<double> &vp1, // predicteur
-                           std::vector<double> &u0, std::vector<double> &v0,   // sol au temps precedent
-                           double dt,
-                           std::vector<double> &Md,
-                           Eigen::SparseMatrix<double, Eigen::RowMajor> &K,
-                           Eigen::SparseMatrix<double, Eigen::RowMajor> &S, double ak, double t)
-{
-    // Define maps
-    Eigen::Map<Eigen::VectorXd> u0_(u0.data(), u0.size()), v0_(v0.data(), v0.size()), up1_(up1.data(), up1.size()), vp1_(vp1.data(), vp1.size()), up2_(up2.data(), up2.size()), vp2_(vp2.data(), vp2.size()), Md_(Md.data(), Md.size());
-    // equation #1
-    up2_ = u0_ + vp1_ * ak * dt;
-
-    //up2[snod->row] = sin(2*M_PI*20*t); //BC bis
-    //if(source) source->apply(t, up2);
-
-    std::for_each(pbl->srcs.begin(), pbl->srcs.end(), [&](std::shared_ptr<Source> s) { s->apply(t, up2); });
-
-    // equation #2
-    vp2_.array() = v0_.array() - ak * dt * (K * up1_ + S * vp1_).array() / Md_.array();
-}
diff --git a/waves/src/wRungeKutta.h b/waves/src/wRungeKutta.h
deleted file mode 100644
index e79690fd..00000000
--- a/waves/src/wRungeKutta.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WRUNGEKUTTA_H
-#define WRUNGEKUTTA_H
-
-#include "waves.h"
-#include "wTimeIntegration.h"
-#include <Eigen/Sparse>
-#include <vector>
-#include <iostream>
-
-namespace waves
-{
-
-/**
- * @brief explicit Runge Kutta time integration
- */
-
-class WAVES_API RungeKutta : public TimeIntegration
-{
-public:
-    RungeKutta(std::shared_ptr<Problem> _pbl);
-    virtual ~RungeKutta() { std::cout << "~RungeKutta()\n"; }
-    virtual char const *clsname() const override { return "RungeKutta"; }
-
-    virtual void start(tbox::MshExport *mshWriter) override;
-
-private:
-    void predictor(std::vector<double> &up2, std::vector<double> &vp2, // premier membre
-                   std::vector<double> &up1, std::vector<double> &vp1, // predicteur
-                   std::vector<double> &u0, std::vector<double> &v0,   // sol au temps precedent
-                   double dt,
-                   std::vector<double> &Md,
-                   Eigen::SparseMatrix<double, Eigen::RowMajor> &K,
-                   Eigen::SparseMatrix<double, Eigen::RowMajor> &S, double ak, double t);
-};
-
-} // namespace waves
-
-#endif //WRUNGEKUTTA_H
diff --git a/waves/src/wSource.cpp b/waves/src/wSource.cpp
deleted file mode 100644
index 595eea55..00000000
--- a/waves/src/wSource.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wSource.h"
-#include "wProblem.h"
-#include "wTag.h"
-#include "wElement.h"
-#include "wNode.h"
-#include <algorithm>
-using namespace waves;
-
-Source::Source(std::shared_ptr<MshData> _msh, int no) : Group(_msh, no)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-    /*
-    std::for_each(tag->elems.begin(), tag->elems.end(), [&](Element *e) { 
-        std::for_each(e->nodes.begin(), e->nodes.end(), [&](Node *n) { 
-            nodes.push_back(n); 
-        });
-    });
-*/
-    //pbl.srcs.push_back(this);
-}
-
-Source::Source(std::shared_ptr<MshData> _msh, std::string const &name) : Group(_msh, name)
-{
-    for (auto e : tag->elems)
-        for (auto n : e->nodes)
-            nodes.push_back(n);
-
-    //pbl.srcs.push_back(this);
-}
-
-void Source::write(std::ostream &out) const
-{
-    out << "Source on " << *tag;
-    out << "(" << nodes.size() << " nodes)";
-    //std::for_each(nodes.begin(), nodes.end(), [&](Node *n) { out << '\t' << *n << '\n'; });
-    //for(auto n : nodes) { out << '\t' << *n << '\n'; }
-}
diff --git a/waves/src/wSource.h b/waves/src/wSource.h
deleted file mode 100644
index 6ed54658..00000000
--- a/waves/src/wSource.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WSOURCE_H
-#define WSOURCE_H
-
-#include "waves.h"
-#include "wGroup.h"
-#include <vector>
-#include <string>
-
-using namespace tbox;
-
-namespace waves
-{
-
-/**
- * @brief manage the sources
- */
-
-class WAVES_API Source : public Group
-{
-public:
-    std::vector<Node *> nodes;
-
-    Source(std::shared_ptr<MshData> _msh, int no);
-    Source(std::shared_ptr<MshData> _msh, std::string const &name);
-    virtual ~Source() { std::cout << "~Source()\n"; }
-    virtual void apply(double t, std::vector<double> &u) {}
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-} // namespace waves
-
-#endif //WSOURCE_H
diff --git a/waves/src/wTimeIntegration.cpp b/waves/src/wTimeIntegration.cpp
deleted file mode 100644
index 7f13762b..00000000
--- a/waves/src/wTimeIntegration.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wTimeIntegration.h"
-#include "wMshData.h"
-#include "wNode.h"
-#include "wElement.h"
-#include "wQuad4.h"
-#include "wTimer.h"
-#include "wTag.h"
-#include "wProblem.h"
-#include "wMedium.h"
-#include "wBoundary.h"
-#include "wWaveTerm.h"
-#include "wFct0.h"
-#include "wMshExport.h"
-#include <typeinfo>
-#include <deque>
-
-#include <tbb/global_control.h>
-#include <tbb/parallel_for_each.h>
-#include <tbb/spin_mutex.h>
-using namespace fwk;
-using namespace tbox;
-using namespace waves;
-
-TimeIntegration::TimeIntegration(std::shared_ptr<Problem> _pbl) : pbl(_pbl)
-{
-    dhook = NULL;
-
-    // default values
-    ttot = 10.0;
-    dt = 1.0e-1 / 5;
-    savefreq = 5;
-    nthreads = 1;
-    wgmsh = Wgmsh::WG_NONE;
-
-    verbose = false;
-    stopit = false;
-
-    // Update element memory
-    pbl->initElems();
-}
-
-void TimeIntegration::start(MshExport *mshWriter)
-{
-}
-
-void TimeIntegration::dummyIC()
-{
-    std::cout << "initial condition...\n";
-
-    auto msh = pbl->msh;
-
-    // initial condition
-    for (auto nod : msh->nodes)
-    {
-        double px = nod->pos(0);
-        double py = nod->pos(1);
-        double pz = nod->pos(2);
-        double sx = 0.0;
-        double sy = 0.0;
-        double sz = 0.0;
-        double R = sqrt((px - sx) * (px - sx) + (py - sy) * (py - sy) + (pz - sz) * (pz - sz));
-        if (R < 1.0)
-        {
-            u1[nod->row] = 0.0;
-            v1[nod->row] = 0.0;
-        }
-        else
-        {
-            u1[nod->row] = 0.0;
-            v1[nod->row] = 0.0;
-        }
-    }
-}
-
-void TimeIntegration::buildS(Eigen::SparseMatrix<double, Eigen::RowMajor> &S2)
-{
-    tbb::spin_mutex mutex;
-    tbb::global_control control(tbb::global_control::max_allowed_parallelism, nthreads);
-
-    auto msh = pbl->msh;
-    std::deque<Eigen::Triplet<double>> T; // list of triplets to build S matrix
-
-    std::cout << "building S (TBB/lambda) using " << nthreads << " threads...\n";
-
-    for (auto bnd : pbl->bnds)
-    {
-        std::cout << "\tprocessing " << *bnd << '\n';
-        std::cout << "normal=" << static_cast<Quad4 *>(bnd->tag->elems[0])->getNormal() << '\n';
-        tbb::parallel_for_each(bnd->tag->elems.begin(), bnd->tag->elems.end(), [&](Element *e) {
-            if (e->type() != ElType::QUAD4)
-                return;
-            //std::cout << "processing element #" << e->no << "\n";
-
-            // ** Se matrix => S vector
-            Eigen::MatrixXd Se = WaveTerm::buildM(*e);
-
-            // assembly
-            tbb::spin_mutex::scoped_lock lock(mutex);
-
-            for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-            {
-                Node *nodi = e->nodes[ii];
-                for (size_t jj = 0; jj < e->nodes.size(); ++jj)
-                {
-                    Node *nodj = e->nodes[jj];
-                    T.push_back(Eigen::Triplet<double>(nodi->row, nodj->row, bnd->c * Se(ii, jj)));
-                }
-            }
-        });
-    }
-    // Build, clean and turn to compressed row format
-    S2.setFromTriplets(T.begin(), T.end());
-    S2.prune(0.);
-    S2.makeCompressed();
-
-    std::cout << "S (" << S2.rows() << "," << S2.cols() << ") nnz=" << S2.nonZeros() << "\n";
-    chrono1.read();
-    std::cout << "[cpu] " << chrono1 << '\n';
-}
-
-void TimeIntegration::buildKM(Eigen::SparseMatrix<double, Eigen::RowMajor> &K2,
-                              std::vector<double> &Md, std::vector<double> const &u)
-{
-    Timer chrono;
-    chrono.start();
-    buildKM_tbb_lambda(K2, Md, u);
-    chrono.stop();
-    std::cout << "[cpu:buildKM] " << chrono << '\n';
-}
-
-void TimeIntegration::buildKM_tbb_lambda(Eigen::SparseMatrix<double, Eigen::RowMajor> &K2,
-                                         std::vector<double> &Md, std::vector<double> const &u)
-{
-    tbb::spin_mutex mutex;
-    tbb::global_control control(tbb::global_control::max_allowed_parallelism, nthreads);
-
-    auto msh = pbl->msh;
-    std::deque<Eigen::Triplet<double>> T; // list of triplets to build K matrix
-
-    std::cout << "building K/M (TBB/lambda) using " << nthreads << " threads...\n";
-
-    for (auto mat : pbl->media)
-    {
-        std::cout << "\tprocessing " << *mat << '\n';
-        tbb::parallel_for_each(mat->tag->elems.begin(), mat->tag->elems.end(), [&](Element *e) {
-            if (e->type() != ElType::HEX8)
-                return;
-            //std::cout << "processing element #" << e->no << "\n";
-
-            // ** Me matrix => Md vector
-            Eigen::MatrixXd Me = WaveTerm::buildM(*e);
-
-            // ** Ke matrix => K matrix
-            Eigen::MatrixXd Ke = WaveTerm::buildK(*e, u);
-
-            // assembly
-            tbb::spin_mutex::scoped_lock lock(mutex);
-
-            for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-            {
-                Node *nodi = e->nodes[ii];
-                for (size_t jj = 0; jj < e->nodes.size(); ++jj)
-                {
-                    Node *nodj = e->nodes[jj];
-                    T.push_back(Eigen::Triplet<double>(nodi->row, nodj->row, (mat->c * mat->c) * Ke(ii, jj)));
-                    Md[nodi->row] += Me(ii, jj);
-                }
-            }
-        });
-    }
-    // Build, clean and turn to compressed row format
-    K2.setFromTriplets(T.begin(), T.end());
-    K2.prune(0.);
-    K2.makeCompressed();
-
-    std::cout << "S (" << K2.rows() << "," << K2.cols() << ") nnz=" << K2.nonZeros() << "\n";
-    chrono1.read();
-    std::cout << "[cpu] " << chrono1 << '\n';
-}
-
-/*void TimeIntegration::build(MATTYPE type, Eigen::SparseMatrix<double, Eigen::RowMajor> &A2)
-{
-    tbb::spin_mutex mutex;
-    tbb::global_control control(tbb::global_control::max_allowed_parallelism, nthreads); // TODO mettre ça ailleurs...
-
-    auto msh = pbl->msh;
-    std::deque<Eigen::Triplet<double>> T; // list of triplets to build K matrix
-
-    std::cout << "building " << type << " using " << nthreads << " threads...\n";
-
-    for (auto mat : pbl->media)
-    {
-        std::cout << "\tprocessing " << *mat << '\n';
-        tbb::parallel_for_each(mat->tag->elems.begin(), mat->tag->elems.end(),
-                         [&](Element *e) {
-                             if (e->type() != ElType::HEX8)
-                                 return;
-                             Eigen::MatrixXd Ae = e->build(type);
-
-                             // assembly
-                             tbb::spin_mutex::scoped_lock lock(mutex);
-                             for (size_t ii = 0; ii < e->nodes.size(); ++ii)
-                             {
-                                 Node *nodi = e->nodes[ii];
-                                 for (size_t jj = 0; jj < e->nodes.size(); ++jj)
-                                 {
-                                     Node *nodj = e->nodes[jj];
-                                     T.push_back(Eigen::Triplet<double>(nodi->row, nodj->row, Ae(ii, jj)));
-                                 }
-                             }
-                         });
-    }
-    // Build, clean and turn to compressed row format
-    A2.setFromTriplets(T.begin(), T.end());
-    A2.prune(0.);
-    A2.makeCompressed();
-
-    std::cout << "S (" << A2.rows() << "," << A2.cols() << ") nnz=" << A2.nonZeros() << "\n";
-    chrono1.read();
-    std::cout << "[cpu] " << chrono1 << '\n';
-}*/
-
-void TimeIntegration::write(std::ostream &out) const
-{
-    out << clsname() << "\n";
-    out << "\tttot     = " << ttot << "\n";
-    out << "\tdt       = " << dt << "\n";
-    out << "\tsavefreq = " << savefreq << "\n";
-}
diff --git a/waves/src/wTimeIntegration.h b/waves/src/wTimeIntegration.h
deleted file mode 100644
index b47326b9..00000000
--- a/waves/src/wTimeIntegration.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WTIMEINTEGRATION_H
-#define WTIMEINTEGRATION_H
-
-#include "waves.h"
-#include "wObject.h"
-#include "wTimer.h"
-#include "wElement.h"
-#include <iostream>
-#include <vector>
-#include <memory>
-#include <Eigen/Sparse>
-
-namespace waves
-{
-
-enum class Wgmsh
-{
-    WG_NONE = 0, ///< do not write results on disk
-    WG_ONE = 1,  ///< continuously overwrite the same result file (onelab)
-    WG_ALL = 2   ///< write a separate file for each archived step
-};
-
-/**
- * @brief Time integration base class
- */
-
-class WAVES_API TimeIntegration : public fwk::wObject
-{
-public:
-    bool verbose;
-    std::shared_ptr<Problem> pbl;
-#ifndef SWIG
-    DisplayHook *dhook;
-#endif
-
-    bool stopit;
-
-    int nthreads; ///< nb of threads for the assembly
-    Wgmsh wgmsh;  ///< how to write results on disk?
-
-    double ttot;  ///< final time
-    double dt;    ///< time step
-    int savefreq; ///< archive/update_gui frequency
-
-    fwk::Timer chrono1;
-
-    std::vector<double> u1;
-    std::vector<double> v1;
-
-    TimeIntegration(std::shared_ptr<waves::Problem> _pbl);
-
-    virtual char const *clsname() const { return "TimeIntegration"; }
-
-    virtual void start(tbox::MshExport *mshWriter);
-
-    void dummyIC();
-
-    void buildS(Eigen::SparseMatrix<double, Eigen::RowMajor> &S2);
-
-    void buildKM(Eigen::SparseMatrix<double, Eigen::RowMajor> &K2, std::vector<double> &Md, std::vector<double> const &u);
-    void buildKM_tbb_lambda(Eigen::SparseMatrix<double, Eigen::RowMajor> &K2, std::vector<double> &Md, std::vector<double> const &u);
-
-    void setGUI(DisplayHook &hook) { dhook = &hook; }
-
-    //void build(tbox::MATTYPE type, Eigen::SparseMatrix<double, Eigen::RowMajor> &A2);
-
-    void stop() { stopit = true; }
-
-#ifndef SWIG
-    virtual void write(std::ostream &out) const override;
-#endif
-};
-
-} // namespace waves
-
-#endif //WTIMEINTEGRATION_H
diff --git a/waves/src/wWaveTerm.cpp b/waves/src/wWaveTerm.cpp
deleted file mode 100644
index 6b92dbee..00000000
--- a/waves/src/wWaveTerm.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "wWaveTerm.h"
-
-#include "wElement.h"
-#include "wCache.h"
-#include "wGauss.h"
-
-using namespace waves;
-using namespace tbox;
-
-/**
- * @brief Build volume stiffness matrix for the waves equation on one element
- */
-Eigen::MatrixXd WaveTerm::buildK(Element const &e, std::vector<double> const &u)
-{
-    // Get precomputed values
-    Cache &cache = e.getVCache();
-    Gauss &gauss = cache.getVGauss();
-
-    // Stiffness matrix
-    Eigen::MatrixXd K = Eigen::MatrixXd::Zero(e.nodes.size(), e.nodes.size());
-    for (size_t k = 0; k < gauss.getN(); ++k)
-    {
-        // Jacobian inverse and shape functions
-        Eigen::Matrix3d const &J = e.getJinv(k);
-        Eigen::MatrixXd const &dff = cache.getDsf(k);
-
-        // Elementary stiffness matrix
-        K += (J * dff).transpose() * J * dff * gauss.getW(k) * e.getDetJ(k);
-    }
-    return K;
-}
-
-/**
- * @brief Build volume/surface mass matrix for the waves equation on one element
- */
-Eigen::MatrixXd WaveTerm::buildM(Element const &e)
-{
-    // Get precomputed values
-    Cache &cache = e.getVCache();
-    Gauss &gauss = cache.getVGauss();
-
-    // Mass matrix
-    Eigen::MatrixXd M = Eigen::MatrixXd::Zero(e.nodes.size(), e.nodes.size());
-    for (size_t k = 0; k < gauss.getN(); ++k)
-    {
-        // Shape functions
-        Eigen::VectorXd const &ff = cache.getSf(k);
-        M += ff * ff.transpose() * gauss.getW(k) * e.getDetJ(k);
-    }
-    return M;
-}
diff --git a/waves/src/wWaveTerm.h b/waves/src/wWaveTerm.h
deleted file mode 100644
index 6ad3a384..00000000
--- a/waves/src/wWaveTerm.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef WWAVETERM_H
-#define WWAVETERM_H
-
-#include "waves.h"
-
-#include <vector>
-#include <Eigen/Dense>
-
-namespace waves
-{
-
-/**
- * @brief Formulation of wave terms
- */
-class WAVES_API WaveTerm
-{
-public:
-    // Stiffness matrix
-    static Eigen::MatrixXd buildK(tbox::Element const &e, std::vector<double> const &u);
-    // Mass matrix
-    static Eigen::MatrixXd buildM(tbox::Element const &e);
-};
-
-} // namespace waves
-#endif //WWAVETERM_H
diff --git a/waves/src/waves.h b/waves/src/waves.h
deleted file mode 100644
index 46f05cca..00000000
--- a/waves/src/waves.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2022 University of Liège
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-// global header of the waves module
-
-#ifndef WAVES_H
-#define WAVES_H
-
-#if defined(WIN32)
-#ifdef waves_EXPORTS
-#define WAVES_API __declspec(dllexport)
-#else
-#define WAVES_API __declspec(dllimport)
-#endif
-#else
-#define WAVES_API
-#endif
-
-#include "tbox.h"
-
-namespace waves
-{
-class Problem;
-class Source;
-class Medium;
-class Boundary;
-
-class DisplayHook;
-
-class WaveTerm;
-
-class TimeIntegration;
-class ForwardEuler;
-class RungeKutta;
-class Newmark;
-} // namespace waves
-
-#endif //WAVES_H
diff --git a/waves/srcs.py b/waves/srcs.py
deleted file mode 100644
index 47a99501..00000000
--- a/waves/srcs.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# custom sources coded with python
-
-import waves as w
-import tbox
-import math
-
-
-class SinSource(w.Source):
-    def __init__(self, msh, num_or_name, freq):
-        w.Source.__init__(self, msh, num_or_name)
-        self.freq = freq
-
-    def apply(self, t, u):
-        for n in self.nodes:  # necessite %nothread swig::SwigPyIterator::~SwigPyIterator() dans le .i
-            u[n.row] = math.sin(2 * math.pi * self.freq * t)
-
-
-class Src:
-    def __init__(self, nod, freq):
-        self.nod = nod
-        self.freq = freq
-#    def __del__(self):
-#        print "[Src] I'm dying..."
-
-
-class MultiSource(w.Source):
-    def __init__(self, msh, num_or_name):
-        w.Source.__init__(self, msh, num_or_name)
-
-        self.srcs = []
-
-    def apply(self, t, u):
-        for s in self.srcs:  # necessite %nothread swig::SwigPyIterator::~SwigPyIterator() dans le .i
-            u[s.nod.row] = math.sin(2 * math.pi * s.freq * t)
-
-    def addSource(self, p, freq):
-        dist = 1e10
-        for n in self.nodes:
-            v = n.pos - p
-            v[2] = 0
-            d = v.norm()
-            if d < dist:
-                dist = d
-        for n in self.nodes:
-            v = n.pos - p
-            v[2] = 0
-            d = v.norm()
-            if abs(d - dist) < 1.0e-6:
-                print("node source selected at ", n)
-                print("dist", dist)
-                print("nod=", n)
-                self.srcs.append(Src(n, freq))
-
-    def __del__(self):
-        print("[MultiSource] I'm dying...")
-
-
-class PulseSource(w.Source):
-    def __init__(self, msh, num_or_name, freq, shift, width):
-        w.Source.__init__(self, msh, num_or_name)
-        self.freq = freq
-        self.shift = shift
-        self.width = width
-
-    def apply(self, t, u):
-        for n in self.nodes:
-            shift = 0.3
-            u[n.row] = math.sin(2 * math.pi * self.freq * t) * math.exp(
-                -(t - self.shift) * (t - self.shift) * self.width)
diff --git a/waves/tests/attic/bulthuis.geo b/waves/tests/attic/bulthuis.geo
deleted file mode 100755
index 15180a74..00000000
--- a/waves/tests/attic/bulthuis.geo
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ========================================================================= *
- *
- *                        MATH0471-A
- *            Projet de calcul scientifique multiphysique
- *            Domaine paramétrable pour résoudre l'équation d'onde.
- *
-/* ========================================================================= *
-
-/*-----------Parameters-----------------------------------*/
-
-xposition[]={0,10,20};     //Division along x axis       
-strate[]={0,-5,-10,-20,-30};     //Division along y axis 
-Z=1;  
-
-nx[]={30,30};               //Number of subdivisions along each division (x axis)
-ny[]={1,2,3,4};                      //Number of subdivisions along each divison (y axis)
-nz=2;                           //Number of subdivisions along z axis (for z>0)
-
-objects[]={};                    //Number of the block associated with an object
-
-/*---------------------------------------------------------*/
-
-lengthxposition=#xposition[];
-lengthstrate=#strate[];
-nbobjects=#objects[];
-
-For k In {0:lengthstrate-1}                                     //Point definition
-  For  j In {1:lengthxposition}
-    Point(k*lengthxposition+j)={xposition[j-1],strate[k],0,1.0}; 
-EndFor
-EndFor
-
-For k In {0:lengthstrate-1}                                    //Horizontal line definition
-  For  j In {1:lengthxposition-1}
-    Line(k*(lengthxposition-1)+j)={k*lengthxposition+j,k*lengthxposition+j+1};
-    Transfinite Line {k*(lengthxposition-1)+j}=nx[j-1]+1;
-EndFor
-EndFor
-
-nbhorizontal = lengthstrate*(lengthxposition-1);
-
-For k In {0:lengthstrate-2}                                    //Vertical line definition
-  For  j In {1:lengthxposition}
-    Line(nbhorizontal+k*lengthxposition+j)={k*lengthxposition+j,(k+1)*lengthxposition+j};
-    Transfinite Line {nbhorizontal+k*lengthxposition+j}=ny[k]+1;
-EndFor
-EndFor
-
-
-For k In {0:(lengthstrate-2)}                                 //Surface definition  + extrusion           
-    For   j In {1:lengthxposition-1}
-     stop=0;
-
-     For  i In {0:nbobjects-1}
-        If (k*(lengthxposition-1)+j == objects[i])
-        stop=1;
-        EndIf
-     EndFor
-
-     If(stop !=1)
-     Line Loop(k*(lengthxposition-1)+j)={k*(lengthxposition-1)+j,nbhorizontal+k*lengthxposition+j+1,-((k+1)*(lengthxposition-1)+j),
-     -(nbhorizontal+k*lengthxposition+j)};
-     Plane Surface(k*(lengthxposition-1)+j)={k*(lengthxposition-1)+j};
-     Transfinite Surface{k*(lengthxposition-1)+j};
-     Recombine Surface{k*(lengthxposition-1)+j};
-
-     Extrude {0, 0, Z} {
-     Surface{k*(lengthxposition-1)+j}; Layers{nz}; Recombine;
-                        }
-      Extrude {0, 0, -Z} {
-      Surface{k*(lengthxposition-1)+j}; Layers{nz}; Recombine;
-                          }
-     EndIf
-    
-     EndFor
-EndFor
-
-
diff --git a/waves/tests/attic/strates.geo b/waves/tests/attic/strates.geo
deleted file mode 100644
index f6e5f0fd..00000000
--- a/waves/tests/attic/strates.geo
+++ /dev/null
@@ -1,49 +0,0 @@
-// $Id$
-// fichier de donnees gmsh
-
-lc = 1/2;
-
-
-Lx = 10;
-Ly = 10;
-
-Lz = 10/2;
-
-nl = 20/2;
-
-Point(1) = {  0,   0, 0, lc};
-Point(2) = { Lx,   0, 0, lc};
-Point(3) = { Lx, -Ly, 0, lc};
-Point(4) = {-Lx, -Ly, 0, lc};
-Point(5) = {-Lx,   0, 0, lc};
-
-Line(1) = {1, 2};
-Line(2) = {2, 3};
-Line(3) = {3, 4};
-Line(4) = {4, 5};
-Line(5) = {5, 1};
-Line Loop(6) = {5, 1, 2, 3, 4};
-Plane Surface(7) = {6};
-Recombine Surface {7};
-
-Extrude {0, 0, Lz} 
-{
-  Surface{7}; Layers{nl}; Recombine;
-}
-
-Extrude {0, 0, -Lz} 
-{
-  Surface{7}; Layers{nl}; Recombine;
-}
-
-// physical entities
-
-Physical Point("Source Point") = {1};
-Physical Line("Measurement line") = {1};
-Physical Surface("Up Side") = {17, 44, 48, 21};
-Physical Surface("Bottom Side") = {29, 56};
-Physical Surface("Front Side") = {34};
-Physical Surface("Rear Side") = {61};
-Physical Surface("Right Side") = {25, 52};
-Physical Surface("Left Side") = {33, 60};
-Physical Volume("Volume") = {1, 2};
diff --git a/waves/tests/mat1/interf1.py b/waves/tests/mat1/interf1.py
deleted file mode 100755
index ecb9854d..00000000
--- a/waves/tests/mat1/interf1.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane1mat as m
-    m.runmodel(bc='interf1', Ly=5.0, Ny=50)
diff --git a/waves/tests/mat1/interf2.py b/waves/tests/mat1/interf2.py
deleted file mode 100755
index b2adf845..00000000
--- a/waves/tests/mat1/interf2.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane1mat as m
-    m.runmodel(bc='interf2')
diff --git a/waves/tests/mat1/planewave.py b/waves/tests/mat1/planewave.py
deleted file mode 100755
index c3b96081..00000000
--- a/waves/tests/mat1/planewave.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane1mat as m
-    m.runmodel(bc='planewave', Ly=1., Ny=10, Lx=30., Nx=300, ttot=3.0)
diff --git a/waves/tests/mat1/pulse.py b/waves/tests/mat1/pulse.py
deleted file mode 100755
index 61bacc5b..00000000
--- a/waves/tests/mat1/pulse.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane1mat as m
-    m.runmodel(bc='pulse', Lx=5., Ly=5., Nx=50, Ny=50)
diff --git a/waves/tests/mat1/sinsrc.py b/waves/tests/mat1/sinsrc.py
deleted file mode 100755
index 571580b0..00000000
--- a/waves/tests/mat1/sinsrc.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane1mat as m
-    m.runmodel(bc='sinsrc')
diff --git a/waves/tests/mat2/interf1.py b/waves/tests/mat2/interf1.py
deleted file mode 100755
index 8342157a..00000000
--- a/waves/tests/mat2/interf1.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane2mat as m
-    m.runmodel(bc='interf1')
diff --git a/waves/tests/mat2/pulse.py b/waves/tests/mat2/pulse.py
deleted file mode 100755
index 6596d94e..00000000
--- a/waves/tests/mat2/pulse.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane2mat as m
-    m.runmodel(bc='pulse', Lx=2.0, Nx=20, Ny1=100)
diff --git a/waves/tests/mat2/reflex.py b/waves/tests/mat2/reflex.py
deleted file mode 100755
index 8bd0db96..00000000
--- a/waves/tests/mat2/reflex.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane2mat as m
-    m.runmodel(bc='reflex', Ny2=25)
diff --git a/waves/tests/mat2/sinsrc.py b/waves/tests/mat2/sinsrc.py
deleted file mode 100755
index 575ea91f..00000000
--- a/waves/tests/mat2/sinsrc.py
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-if __name__ == "__main__":
-    import waves.models.plane2mat as m
-    m.runmodel(
-        bc='sinsrc', Ly1=10, Ny1=100, Ly2=10, Ny2=50, Lx=2., Nx=10, ttot=2.)
diff --git a/waves/utils.py b/waves/utils.py
deleted file mode 100644
index ffab945d..00000000
--- a/waves/utils.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import tbox
-import waves as w
-
-
-def integrate(scheme, writer, vmin=-0.1, vmax=0.1):
-    from fwk.wutils import parseargs
-    args = parseargs()
-
-    scheme.nthreads = args.k
-    print(scheme)
-
-    if args.nogui:
-        scheme.start(writer)
-    else:
-        import waves.viewer as v
-        gui = v.MeshViewer(scheme)
-        gui.vmin = vmin
-        gui.vmax = vmax
-        gui.start()
diff --git a/waves/viewer.py b/waves/viewer.py
deleted file mode 100644
index 197bf050..00000000
--- a/waves/viewer.py
+++ /dev/null
@@ -1,456 +0,0 @@
-# -*- coding: utf-8 -*-
-# test encoding: à-é-è-ô-ï-€
-
-
-# Copyright 2022 University of Liège
-# 
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-# 
-#     http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-import sys
-import waves as w
-import tbox as tb
-
-# TODO: creer un objet dataset qui gere l'ugrid (comme dans Metafor)
-
-# Qt
-try:
-    from PyQt5.QtCore import *
-    from PyQt5.QtGui import *
-    from PyQt5.QtWidgets import *
-    print("PyQt5 (Qt %s) loaded!" % QT_VERSION_STR)
-except :
-    try:
-        import  PySide2
-        from PySide2.QtCore import *
-        from PySide2.QtGui import *
-        from PySide2.QtWidgets import *
-        #print("PySide2  loaded!")
-        print("PySide2 (Qt %s) loaded!" % PySide2.__version__)
-    except :
-        print("Unable to load PyQt nor PySide2")
-        sys.exit()
-        
-
-# vtk
-import vtk
-try:
-    from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
-    print("using vtk.qt.QVTKRenderWindowInteractor")
-except:
-    from tboxVtk.qt5vtk6.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
-    print("using pki.qt5vtk6.QVTKRenderWindowInteractor")
-
-# -----------------------------------------------------------------------------------------
-
-
-class MeshViewer(QWidget, w.DisplayHook):
-
-    app = QApplication(sys.argv)
-    """
-    Qt GUI for visu. the output
-    """
-
-    def __init__(self, scheme):
-        #super(MeshViewer, self).__init__() # a eclaircir... marche pô
-        w.DisplayHook.__init__(self)
-        QWidget.__init__(self)
-
-        scheme.setGUI(self)
-
-        self.msh = scheme.pbl.msh
-        self.scheme = scheme
-        self.writer = tb.GmshExport(self.msh)
-
-        self.running = 'init'
-        self.vmin = -0.1
-        self.vmax = 0.1
-
-        print("starting MeshViewer init...")
-
-        self.__setupGUI()
-        self.__setupVTK()
-
-        self.app.lastWindowClosed.connect(self.app.quit)
-        self.show()
-        self.vtkwidget.Initialize(
-        )  # [Linux] faire ca le plus tard possible (apres self.show!!)
-        print("MeshViewer ready.")
-
-    def closeEvent(self, event):
-        self.scheme.stopit = True
-        self.running = 'running'  # sort de "while self.running=='pause'"
-        print("GUI killed!")
-        QWidget.closeEvent(self, event)
-
-    def start(self):
-        self.app.exec_()
-
-    def __setupGUI(self):
-
-        self.setWindowTitle("MeshViewer")
-        self.resize(800, 600)
-
-        # vtk window
-
-        self.vtkwidget = QVTKRenderWindowInteractor(
-            self)  # "self" sinon, rien ne s'affiche
-
-        self.vtkwidget.setSizePolicy(
-            QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
-        self.vtkwidget.setMinimumSize(QSize(300, 300))
-        self.vtkwidget.setSizePolicy(QSizePolicy.Expanding,
-                                     QSizePolicy.Expanding)
-
-        #self.vtkwidget.Initialize() # plante sous Linux!!
-
-        self.renderer = vtk.vtkRenderer()
-        self.renderer.SetBackground(1.0, 1.0, 1.0)
-        self.vtkwidget.GetRenderWindow().AddRenderer(self.renderer)
-
-        style = vtk.vtkInteractorStyleTrackballCamera()
-        self.vtkwidget.SetInteractorStyle(style)
-
-        hbox = QHBoxLayout()
-        self.setLayout(hbox)
-        hbox.addWidget(self.vtkwidget)
-
-        pan = QFrame()
-        pan.setMaximumSize(QSize(200, 999999))
-        hbox.addWidget(pan)
-        #hbox.setMargin(0)    # sinon vtkwidget degouline en bas
-        #hbox.setSpacing(0)   # sinon vtkwidget clignote sur le côté
-
-        vbox = QVBoxLayout()
-        pan.setLayout(vbox)
-
-        self.startBut = QPushButton(self.tr("start!"))
-        self.startBut.clicked.connect(self.startSlot)
-        vbox.addWidget(self.startBut)
-
-        groupBox = QGroupBox("Scale")
-        gbox = QGridLayout()
-        label = QLabel("vmin")
-        gbox.addWidget(label, 0, 0)
-        self.vminlinedt = QLineEdit('%f' % self.vmin)
-        self.vminlinedt.editingFinished.connect(self.updateTCoords)
-        gbox.addWidget(self.vminlinedt, 0, 1)
-        label = QLabel("vmax")
-        gbox.addWidget(label, 1, 0)
-        self.vmaxlinedt = QLineEdit('%f' % self.vmax)
-        self.vmaxlinedt.editingFinished.connect(self.updateTCoords)
-        gbox.addWidget(self.vmaxlinedt, 1, 1)
-        groupBox.setLayout(gbox)
-        vbox.addWidget(groupBox)
-
-        verbchk = QCheckBox("verbose")
-        verbchk.setChecked(self.scheme.verbose)
-        verbchk.stateChanged.connect(self.verboseSlot)
-        vbox.addWidget(verbchk)
-
-        groupBox = QGroupBox("Infos")
-        self.steplabel = QLabel("step # 0")
-        self.timelabel = QLabel("time = 0")
-        gbox = QVBoxLayout()
-        groupBox.setLayout(gbox)
-        gbox.addWidget(self.steplabel)
-        gbox.addWidget(self.timelabel)
-        vbox.addWidget(groupBox)
-
-        vbox.addStretch(1)
-
-    def verboseSlot(self, state):
-        self.scheme.verbose = (state != 0)
-        if not state:
-            print("<verbose=OFF>")
-
-    def startSlot(self):
-        if self.running == 'init':
-            self.startBut.setText("Pause")  # on demarre et on affiche "pause"
-            self.running = 'running'
-            self.scheme.start(self.writer)
-            self.startBut.setText("Quit")
-            self.running = 'quit'
-        elif self.running == 'running':  # on stoppe et on affiche 'continue"
-            self.running = 'pause'
-            self.startBut.setText("Continue")
-            while self.running == 'pause':
-                self.app.processEvents(QEventLoop.WaitForMoreEvents)
-        elif self.running == 'pause':
-            self.running = 'running'
-            self.startBut.setText("Pause")
-        elif self.running == 'quit':
-            self.app.quit()
-
-    def disableStart(self):
-        self.startBut.setDisabled(True)
-
-    def __setupVTK(self):
-
-        self.__createUgrid()
-
-        # mesh
-        self.mesh = Mesh(self.ugrid)
-        self.renderer.AddActor(self.mesh.actor)
-
-        # grid
-        self.grid = Grid(self.ugrid)
-        self.renderer.AddViewProp(self.grid.actor)
-
-        #scalarbar
-        self.scalarbar = ScalarBar(self.mesh.lut)
-        self.renderer.AddViewProp(self.scalarbar.actor)
-
-        self.resetCamera()
-
-    def resetCamera(self):
-        self.renderer.ResetCamera()
-        cam1 = self.renderer.GetActiveCamera()
-        # 3D
-        if 0:
-            cam1.Elevation(35)
-            cam1.SetViewUp(0, 1, 0)
-            cam1.Azimuth(30)
-        #2D
-        else:
-            cam1.Elevation(0)
-            cam1.SetViewUp(0, 1, 0)
-            cam1.Azimuth(0)
-        self.renderer.ResetCameraClippingRange()
-
-    def display(self, nt, t, u):
-        """ C++ => python callback
-        """
-        #print "[GUI] nt=", nt, "t=", t
-
-        self.steplabel.setText("step # %d (%d%%)" %
-                               (nt, t / self.scheme.ttot * 100))
-        self.timelabel.setText("time = %f" % t)
-
-        # update data at points
-        for i in range(self.msh.nodes.size()):
-            self.scalars.SetValue(i, u[i])
-        self.scalars.Modified()
-
-        # update texture coords
-        #vmin, vmax = self.scalars.GetValueRange()
-        #vmin=-0.01
-        #vmax=0.01
-
-        self.updateTCoords()
-
-    def updateTCoords(self):
-        try:
-            self.vmin = float(self.vminlinedt.text())
-            self.vmax = float(self.vmaxlinedt.text())
-        except:
-            pass
-
-        self.mesh.updateTcoords(self.vmin, self.vmax)
-        self.render()
-
-    def ragequit(self):
-        print("rage quit!")
-        self.scheme.stopit = True
-        self.app.quit()
-
-        #raise Exception('GUI killed!')
-
-    def render(self):
-        # draw the scene
-        self.vtkwidget.Render()
-        self.app.processEvents()
-
-    def refresh(self):
-        #print "[GUI] refresh"
-        self.app.processEvents()
-
-    def __createUgrid(self):
-        print('creating vtkUnstructuredGrid...')
-        self.ugrid = vtk.vtkUnstructuredGrid()
-        self.points = vtk.vtkPoints()
-        self.ugrid.SetPoints(self.points)
-
-        self.scalars = vtk.vtkFloatArray()
-        self.scalars.SetNumberOfComponents(1)
-        self.ugrid.GetPointData().SetScalars(self.scalars)
-
-        # points / data
-        for i in range(self.msh.nodes.size()):
-            p = self.msh.nodes[i].pos
-            self.points.InsertPoint(i, p[0], p[1], p[2])
-            #val = p.x()*p.x()+p.y()*p.y()+p.z()*p.z()
-            val = 0.0
-            self.scalars.InsertNextValue(val)
-
-        # hexa
-        for i in range(self.msh.elems.size()):
-            e = self.msh.elems[i]
-            n = e.nodes
-            if e.type() == tb.ELTYPE_HEX8:
-                hexa = vtk.vtkHexahedron()
-                ids = hexa.GetPointIds()
-                for j in range(8):
-                    ids.SetId(j, n[j].no - 1)
-                self.ugrid.InsertNextCell(hexa.GetCellType(), ids)
-        print(self.ugrid.GetNumberOfPoints(
-        ), 'points and', self.ugrid.GetNumberOfCells(), 'cells converted')
-
-    def writeXML(self, name='mesh.vtu'):
-        writer = vtk.vtkXMLUnstructuredGridWriter()
-        compressor = vtk.vtkZLibDataCompressor()
-        writer.SetCompressor(compressor)
-        writer.SetDataModeToAscii()
-        writer.SetInputConnection(self.producer.GetOutputPort())
-        writer.SetFileName(name)
-        writer.Write()
-
-    def write(self, name='mesh.vtk'):
-        writer = vtk.vtkUnstructuredGridWriter()
-        writer.SetFileName(name)
-        writer.SetFileTypeToASCII()
-        writer.SetInputConnection(self.producer.GetOutputPort())
-        writer.Write()
-
-
-class Mesh:
-    def __init__(self, ugrid):
-
-        self.ugrid = ugrid
-
-        # compatibility vtk 5/6 => use a trivial producer
-        #self.producer = vtk.vtkTrivialProducer()
-        #self.producer.SetOutput(self.ugrid) # le double producer (dans Mesh/Grid) ne marche pas sous Qt 4 => faire un objet dataset
-
-        self.__createTexture()
-        self.__createTcoords()
-        vmin, vmax = self.ugrid.GetPointData().GetScalars().GetValueRange()
-        self.updateTcoords(vmin, vmax)
-
-        self.mapper = vtk.vtkDataSetMapper()
-        #self.mapper.SetInputConnection(self.producer.GetOutputPort())
-        self.mapper.SetInputData(ugrid)
-        if vtk.VTK_MAJOR_VERSION <= 7:
-            self.mapper.ImmediateModeRenderingOff()
-        self.mapper.SetResolveCoincidentTopologyToPolygonOffset()
-        self.mapper.ScalarVisibilityOff()
-
-        self.actor = vtk.vtkActor()
-        self.actor.SetMapper(self.mapper)
-        self.actor.SetTexture(self.texture)
-
-    def __createTcoords(self):
-        self.tcoords = vtk.vtkFloatArray()
-        self.tcoords.SetNumberOfComponents(2)
-        self.tcoords.Resize(
-            self.ugrid.GetPointData().GetScalars().GetNumberOfTuples())
-        self.ugrid.GetPointData().SetTCoords(self.tcoords)
-
-    def updateTcoords(self, vmin, vmax):
-        #print 'vmin=',vmin,' vmax=',vmax
-        if vmin == vmax:
-            dist = 1.0
-        else:
-            dist = vmax - vmin
-        thr = 1. / 256.
-        scalars = self.ugrid.GetPointData().GetScalars()
-        for i in range(scalars.GetNumberOfTuples()):
-            val = scalars.GetTuple1(i)
-            tc = (val - vmin) / dist
-            if (tc < thr): tc = thr
-            if (tc > 1.0 - thr): tc = 1.0 - thr
-            self.tcoords.InsertTuple2(i, tc, tc)
-
-        self.lut.SetTableRange(vmin, vmax)  # utile pour la scalarbar seulement
-        self.lut.Build()
-
-    def __createTexture(self):
-        # lookup table
-        #(utilisée 1x au demarrage pour la texture)
-        #(puis pour la scalarbar)
-        self.lut = vtk.vtkLookupTable()
-        self.lut.SetNumberOfColors(16)
-        self.lut.SetHueRange(0., 0.667)
-        self.lut.SetTableRange(
-            0.0, 1.0)  # valeurs bidons -> pas d'infl sur la texture
-        self.lut.Build()
-
-        self.texture = vtk.vtkTexture()
-        dim = self.lut.GetNumberOfTableValues()
-        img = vtk.vtkImageData()
-        img.SetDimensions(dim, dim, 1)
-
-        if vtk.VTK_MAJOR_VERSION <= 5:
-            img.SetScalarTypeToUnsignedChar()
-            img.SetNumberOfScalarComponents(3)
-            img.AllocateScalars()
-        else:
-            img.AllocateScalars(vtk.VTK_UNSIGNED_CHAR, 3)
-
-        for i in range(dim):
-            ci = self.lut.GetTableValue(i)
-            for k in range(3):
-                img.SetScalarComponentFromDouble(i, i, 0, k, ci[k] * 255)
-        if vtk.VTK_MAJOR_VERSION <= 5:
-            self.texture.SetInput(img)
-        else:
-            self.texture.SetInputData(img)
-
-        if 0:  # --display texture using vtkImageViewer2 (DEBUG)
-            imageViewer = vtk.vtkImageViewer2()
-            if vtk.VTK_MAJOR_VERSION <= 5:
-                imageViewer.SetInput(img)
-            else:
-                imageViewer.SetInputData(img)
-            renderWindowInteractor = vtk.vtkRenderWindowInteractor()
-            imageViewer.SetupInteractor(renderWindowInteractor)
-            imageViewer.Render()
-            imageViewer.GetRenderer().ResetCamera()
-            imageViewer.Render()
-            renderWindowInteractor.Start()
-
-
-class ScalarBar:
-    def __init__(self, lut):
-        self.actor = vtk.vtkScalarBarActor()
-        self.actor.SetLookupTable(lut)
-        self.actor.GetPositionCoordinate(
-        ).SetCoordinateSystemToNormalizedViewport()
-        self.actor.GetPositionCoordinate().SetValue(0.1, 0.05)
-        self.actor.SetOrientationToHorizontal()
-        self.actor.SetWidth(0.8)
-        self.actor.SetHeight(0.1)
-        self.actor.GetTitleTextProperty().SetFontFamilyToArial()
-        self.actor.GetLabelTextProperty().SetFontFamilyToArial()
-        self.actor.SetLabelFormat("%g")
-        self.actor.GetTitleTextProperty().SetColor(0., 0., 0.)
-        self.actor.GetLabelTextProperty().SetColor(0., 0., 0.)
-        self.actor.SetTitle("pressure")
-
-
-class Grid:
-    def __init__(self, ugrid):
-        self.mapper = vtk.vtkDataSetMapper()
-        if vtk.VTK_MAJOR_VERSION <= 7:
-            self.mapper.ImmediateModeRenderingOff()
-        self.mapper.SetResolveCoincidentTopologyToPolygonOffset()
-        self.mapper.ScalarVisibilityOff()
-        self.mapper.SetInputData(ugrid)
-        self.actor = vtk.vtkActor()
-
-        self.actor.GetProperty().SetRepresentationToWireframe()
-        self.actor.GetProperty().SetColor(0., 0., 0.)
-        self.actor.GetProperty().SetAmbient(1.0)
-        self.actor.GetProperty().SetDiffuse(0.0)
-        self.actor.GetProperty().SetSpecular(0.0)
-        self.actor.SetMapper(self.mapper)
-- 
GitLab