From cbd970b5d31079cad3c5a47c3ee31cecc3747e18 Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Thu, 21 Aug 2014 09:56:50 +0100 Subject: [PATCH 1/3] Set some form compiler options --- python/stokes-dolfin-snes.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/stokes-dolfin-snes.py b/python/stokes-dolfin-snes.py index 1db6ad4..cbdd162 100644 --- a/python/stokes-dolfin-snes.py +++ b/python/stokes-dolfin-snes.py @@ -11,6 +11,10 @@ import sys +parameters["form_compiler"]["quadrature_degree"] = 6 +parameters["form_compiler"]["cpp_optimize"] = True +parameters["form_compiler"]["cpp_optimize_flags"] = "-O3 -ffast-math -march=native" + def usage(): print sys.argv[0]+""" [options] dolfin_mesh.xml options: @@ -240,7 +244,7 @@ def extract_sub_vector(V, subspace): def monitor(snes, its, norm): pc = snes.ksp.pc - pc.setFieldSplitSchurPrecondition(PETSc.PC.SchurPreType.USER, schur) + pc.setFieldSplitSchurPreType(PETSc.PC.SchurPreType.USER, schur) snes.setMonitor(monitor) From 30d80473cb03a75310a3a23610219108d8d62de8 Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Thu, 21 Aug 2014 10:20:24 +0100 Subject: [PATCH 2/3] Some minor tweaking --- python/stokes-dolfin-snes.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/python/stokes-dolfin-snes.py b/python/stokes-dolfin-snes.py index cbdd162..d286712 100644 --- a/python/stokes-dolfin-snes.py +++ b/python/stokes-dolfin-snes.py @@ -85,21 +85,22 @@ def usage(): --petsc.se_snes_atol 1.0e-7 --petsc.se_ksp_converged_reason - --petsc.se_ksp_type bcgs + --petsc.se_ksp_type gcr --petsc.se_ksp_monitor_true_residual - --petsc.se_ksp_rtol 1.0e-6 - --petsc.se_ksp_atol 1.0e-6 + --petsc.se_ksp_rtol 1.0e-7 + --petsc.se_ksp_atol 1.0e-7 --petsc.se_pc_type fieldsplit --petsc.se_pc_fieldsplit_type schur --petsc.se_pc_fieldsplit_schur_factorization_type upper - --petsc.se_pc_fieldsplit_schur_Rpreconditioner user --petsc.se_fieldsplit_0_ksp_type preonly - --petsc.se_fieldsplit_0_pc_type gamg + --petsc.se_fieldsplit_0_ksp_max_it 1 + --petsc.se_fieldsplit_0_pc_type ml --petsc.se_fieldsplit_1_ksp_type preonly - --petsc.se_fieldsplit_1_pc_type jacobi + --petsc.se_fieldsplit_1_ksp_max_it 1 + --petsc.se_fieldsplit_1_pc_type ml """.split() parameters["std_out_all_processes"] = False @@ -239,7 +240,7 @@ def extract_sub_vector(V, subspace): (v, q) = TestFunctions(Z) schur_D = assemble(inner(p, q)*dx) - [bc.apply(schur_D) for bc in bcs] + #[bc.apply(schur_D) for bc in bcs] schur = extract_sub_matrix(schur_D, 1, 1) def monitor(snes, its, norm): From a54dc2e291e17593d0c486f8bcd036ed003de3f9 Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Fri, 22 Aug 2014 11:41:54 +0100 Subject: [PATCH 3/3] Some more fiddling --- python/stokes-dolfin-snes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/stokes-dolfin-snes.py b/python/stokes-dolfin-snes.py index d286712..849c2d0 100644 --- a/python/stokes-dolfin-snes.py +++ b/python/stokes-dolfin-snes.py @@ -99,8 +99,8 @@ def usage(): --petsc.se_fieldsplit_0_pc_type ml --petsc.se_fieldsplit_1_ksp_type preonly - --petsc.se_fieldsplit_1_ksp_max_it 1 - --petsc.se_fieldsplit_1_pc_type ml + --petsc.se_fieldsplit_1_ksp_max_it 2 + --petsc.se_fieldsplit_1_pc_type jacobi """.split() parameters["std_out_all_processes"] = False