From 5069547ecff63483d57766e7934562f4cc0ebfb5 Mon Sep 17 00:00:00 2001
From: Lambert Theisen <lambert.theisen@rwth-aachen.de>
Date: Tue, 17 Dec 2019 14:55:31 +0000
Subject: [PATCH] Revert to mumps use (with changed formulation)

---
 fenicsR13/solver.py | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/fenicsR13/solver.py b/fenicsR13/solver.py
index 265cbcd..6eeac50 100644
--- a/fenicsR13/solver.py
+++ b/fenicsR13/solver.py
@@ -521,8 +521,8 @@ class Solver:
                 + 4/15 * (1/kn) * df.inner(s_, r_)
             ) * df.dx + (
                 + 1/(2*xi_tilde) * n(s_) * n(r_)
-                + 12/25 * xi_tilde * t(s_) * t(r_)
-                - (1-cpl) * 1/25 * xi_tilde * t(s_) * t(r_)
+                + 11/25 * xi_tilde * t(s_) * t(r_)
+                + cpl * 1/25 * xi_tilde * t(s_) * t(r_)
             ) * df.ds
         def d(sigma_, psi_):
             return (
@@ -534,8 +534,8 @@ class Solver:
                     to.gen3dTF2(sigma_), to.gen3dTF2(psi_)
                 )
             ) * df.dx + (
-                + xi_tilde * 9/8 * nn(sigma_) * nn(psi_)
-                - xi_tilde * (1-cpl) * 3/40 * nn(sigma_) * nn(psi_)
+                + xi_tilde * 21/20 * nn(sigma_) * nn(psi_)
+                + xi_tilde * cpl * 3/40 * nn(sigma_) * nn(psi_)
                 + xi_tilde * (
                     (tt(sigma_) + (1/2) * nn(sigma_)) *
                     (tt(psi_) + (1/2) * nn(psi_))
@@ -648,6 +648,19 @@ class Solver:
             # List all available solvers:
             list_linear_solver_methods()
             list_krylov_solver_preconditioners()
+            Solver method  |  Description
+
+            bicgstab  | Biconjugate gradient stabilized method
+            cg        | Conjugate gradient method
+            default   | default linear solver
+            gmres     | Generalized minimal residual method
+            minres    | Minimal residual method
+            mumps     | MUMPS (MUltifrontal Massively Parallel Sparse Direct)
+            petsc     | PETSc built in LU solver
+            richardson| Richardson method
+            superlu   | SuperLU
+            tfqmr     | Transpose-free quasi-minimal residual method
+            umfpack   | UMFPACK (Unsymmetric MultiFrontal sparse LU factoriz.)
             # "direct" means "default" means "lu" of default backend
             print(parameters["linear_algebra_backend"]) # usually PETSc
 
@@ -665,7 +678,7 @@ class Solver:
         sol = df.Function(w)
         df.solve(
             self.form_lhs == self.form_rhs, sol, [],
-            solver_parameters={"linear_solver": "umfpack"}
+            solver_parameters={"linear_solver": "mumps"}
         )
         end_t = time_module.time()
         print("Finished solving system in: {}".format(str(end_t - start_t)))
-- 
GitLab