Skip to content

Commit b698d7a

Browse files
authored
Dokken/update nonlin options (#203)
* Update options for non-linear solver to sensible choice, ref #200 * Update docker path
1 parent c974f18 commit b698d7a

File tree

2 files changed

+35
-41
lines changed

2 files changed

+35
-41
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ Additional requirements on top of the `dolfinx/lab:nightly` images can be found
4545
An image building DOLFINx, Basix, UFL and FFCx from source can be built using:
4646

4747
```bash
48-
cd docker
4948
docker build -f ./docker/Dockerfile -t local_lab_env .
5049
```
5150

chapter2/nonlinpoisson_code.ipynb

Lines changed: 35 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,12 @@
145145
"ksp = solver.krylov_solver\n",
146146
"opts = PETSc.Options()\n",
147147
"option_prefix = ksp.getOptionsPrefix()\n",
148-
"opts[f\"{option_prefix}ksp_type\"] = \"cg\"\n",
149-
"opts[f\"{option_prefix}pc_type\"] = \"gamg\"\n",
150-
"opts[f\"{option_prefix}pc_factor_mat_solver_type\"] = \"mumps\"\n",
148+
"opts[f\"{option_prefix}ksp_type\"] = \"gmres\"\n",
149+
"opts[f\"{option_prefix}ksp_rtol\"] = 1.0e-8\n",
150+
"opts[f\"{option_prefix}pc_type\"] = \"hypre\"\n",
151+
"opts[f\"{option_prefix}pc_hypre_type\"] = \"boomeramg\"\n",
152+
"opts[f\"{option_prefix}pc_hypre_boomeramg_max_iter\"] = 1\n",
153+
"opts[f\"{option_prefix}pc_hypre_boomeramg_cycle_type\"] = \"v\"\n",
151154
"ksp.setFromOptions()"
152155
]
153156
},
@@ -163,6 +166,25 @@
163166
"execution_count": 8,
164167
"metadata": {},
165168
"outputs": [
169+
{
170+
"name": "stderr",
171+
"output_type": "stream",
172+
"text": [
173+
"2024-08-12 13:22:43.784 ( 0.906s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
174+
"2024-08-12 13:22:44.179 ( 1.301s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
175+
"2024-08-12 13:22:44.487 ( 1.609s) [main ] NewtonSolver.cpp:38 INFO| Newton iteration 2: r (abs) = 1057.87 (tol = 1e-10) r (rel) = 1.16853(tol = 1e-06)\n",
176+
"2024-08-12 13:22:44.567 ( 1.689s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
177+
"2024-08-12 13:22:44.854 ( 1.977s) [main ] NewtonSolver.cpp:38 INFO| Newton iteration 3: r (abs) = 362.964 (tol = 1e-10) r (rel) = 0.400934(tol = 1e-06)\n",
178+
"2024-08-12 13:22:44.937 ( 2.059s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
179+
"2024-08-12 13:22:45.193 ( 2.315s) [main ] NewtonSolver.cpp:38 INFO| Newton iteration 4: r (abs) = 159.549 (tol = 1e-10) r (rel) = 0.17624(tol = 1e-06)\n",
180+
"2024-08-12 13:22:45.277 ( 2.399s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
181+
"2024-08-12 13:22:45.521 ( 2.644s) [main ] NewtonSolver.cpp:38 INFO| Newton iteration 5: r (abs) = 42.2214 (tol = 1e-10) r (rel) = 0.0466383(tol = 1e-06)\n",
182+
"2024-08-12 13:22:45.604 ( 2.726s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
183+
"2024-08-12 13:22:45.875 ( 2.997s) [main ] NewtonSolver.cpp:38 INFO| Newton iteration 6: r (abs) = 3.74866 (tol = 1e-10) r (rel) = 0.00414081(tol = 1e-06)\n",
184+
"2024-08-12 13:22:45.958 ( 3.080s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
185+
"2024-08-12 13:22:46.231 ( 3.353s) [main ] NewtonSolver.cpp:38 INFO| Newton iteration 7: r (abs) = 0.0379901 (tol = 1e-10) r (rel) = 4.19643e-05(tol = 1e-06)\n"
186+
]
187+
},
166188
{
167189
"name": "stdout",
168190
"output_type": "stream",
@@ -174,30 +196,9 @@
174196
"name": "stderr",
175197
"output_type": "stream",
176198
"text": [
177-
"2023-10-28 17:59:12.824 ( 0.944s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
178-
"2023-10-28 17:59:12.827 ( 0.947s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.002726, 0.000000, 0.000000 (PETSc Krylov solver)\n",
179-
"2023-10-28 17:59:12.827 ( 0.947s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
180-
"2023-10-28 17:59:12.828 ( 0.948s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000803, 0.000000, 0.000000 (PETSc Krylov solver)\n",
181-
"2023-10-28 17:59:12.828 ( 0.948s) [main ] NewtonSolver.cpp:36 INFO| Newton iteration 2: r (abs) = 20.379 (tol = 1e-10) r (rel) = 0.922522(tol = 1e-06)\n",
182-
"2023-10-28 17:59:12.828 ( 0.948s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
183-
"2023-10-28 17:59:12.828 ( 0.948s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000200, 0.010000, 0.000000 (PETSc Krylov solver)\n",
184-
"2023-10-28 17:59:12.829 ( 0.949s) [main ] NewtonSolver.cpp:36 INFO| Newton iteration 3: r (abs) = 6.95259 (tol = 1e-10) r (rel) = 0.314732(tol = 1e-06)\n",
185-
"2023-10-28 17:59:12.829 ( 0.949s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
186-
"2023-10-28 17:59:12.830 ( 0.950s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000229, 0.000000, 0.000000 (PETSc Krylov solver)\n",
187-
"2023-10-28 17:59:12.830 ( 0.950s) [main ] NewtonSolver.cpp:36 INFO| Newton iteration 4: r (abs) = 2.93565 (tol = 1e-10) r (rel) = 0.132892(tol = 1e-06)\n",
188-
"2023-10-28 17:59:12.830 ( 0.950s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
189-
"2023-10-28 17:59:12.830 ( 0.950s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000203, 0.000000, 0.000000 (PETSc Krylov solver)\n",
190-
"2023-10-28 17:59:12.830 ( 0.950s) [main ] NewtonSolver.cpp:36 INFO| Newton iteration 5: r (abs) = 0.700567 (tol = 1e-10) r (rel) = 0.0317135(tol = 1e-06)\n",
191-
"2023-10-28 17:59:12.830 ( 0.950s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
192-
"2023-10-28 17:59:12.831 ( 0.951s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000232, 0.000000, 0.000000 (PETSc Krylov solver)\n",
193-
"2023-10-28 17:59:12.831 ( 0.951s) [main ] NewtonSolver.cpp:36 INFO| Newton iteration 6: r (abs) = 0.0490758 (tol = 1e-10) r (rel) = 0.00222158(tol = 1e-06)\n",
194-
"2023-10-28 17:59:12.831 ( 0.951s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
195-
"2023-10-28 17:59:12.831 ( 0.951s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000179, 0.000000, 0.000000 (PETSc Krylov solver)\n",
196-
"2023-10-28 17:59:12.831 ( 0.951s) [main ] NewtonSolver.cpp:36 INFO| Newton iteration 7: r (abs) = 0.000299251 (tol = 1e-10) r (rel) = 1.35466e-05(tol = 1e-06)\n",
197-
"2023-10-28 17:59:12.831 ( 0.951s) [main ] petsc.cpp:698 INFO| PETSc Krylov solver starting to solve system.\n",
198-
"2023-10-28 17:59:12.832 ( 0.952s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000265, 0.000000, 0.000000 (PETSc Krylov solver)\n",
199-
"2023-10-28 17:59:12.832 ( 0.952s) [main ] NewtonSolver.cpp:36 INFO| Newton iteration 8: r (abs) = 1.62359e-08 (tol = 1e-10) r (rel) = 7.34971e-10(tol = 1e-06)\n",
200-
"2023-10-28 17:59:12.832 ( 0.952s) [main ] NewtonSolver.cpp:255 INFO| Newton solver finished in 8 iterations and 109 linear solver iterations.\n"
199+
"2024-08-12 13:22:46.313 ( 3.436s) [main ] petsc.cpp:700 INFO| PETSc Krylov solver starting to solve system.\n",
200+
"2024-08-12 13:22:46.593 ( 3.715s) [main ] NewtonSolver.cpp:38 INFO| Newton iteration 8: r (abs) = 5.30788e-06 (tol = 1e-10) r (rel) = 5.86315e-09(tol = 1e-06)\n",
201+
"2024-08-12 13:22:46.593 ( 3.715s) [main ] NewtonSolver.cpp:252 INFO| Newton solver finished in 8 iterations and 38 linear solver iterations.\n"
201202
]
202203
}
203204
],
@@ -227,25 +228,19 @@
227228
"name": "stdout",
228229
"output_type": "stream",
229230
"text": [
230-
"L2-error: 5.94e-15\n",
231-
"Error_max: 1.60e-14\n"
231+
"L2-error: 5.91e-16\n",
232+
"Error_max: 4.44e-15\n"
232233
]
233234
},
234235
{
235236
"name": "stderr",
236237
"output_type": "stream",
237238
"text": [
238-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000023, 0.000000, 0.000000 (Init dofmap from element dofmap)\n",
239-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000006, 0.000000, 0.000000 (Compute dof reordering map)\n",
240-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:166 INFO| Computing communication graph edges (using NBX algorithm). Number of input edges: 0\n",
241-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:237 INFO| Finished graph edge discovery using NBX algorithm. Number of discovered edges 0\n",
242-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:166 INFO| Computing communication graph edges (using NBX algorithm). Number of input edges: 0\n",
243-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:237 INFO| Finished graph edge discovery using NBX algorithm. Number of discovered edges 0\n",
244-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:166 INFO| Computing communication graph edges (using NBX algorithm). Number of input edges: 0\n",
245-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:237 INFO| Finished graph edge discovery using NBX algorithm. Number of discovered edges 0\n",
246-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:166 INFO| Computing communication graph edges (using NBX algorithm). Number of input edges: 0\n",
247-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] MPI.cpp:237 INFO| Finished graph edge discovery using NBX algorithm. Number of discovered edges 0\n",
248-
"2023-10-28 17:59:12.848 ( 0.968s) [main ] TimeLogger.cpp:28 INFO| Elapsed wall, usr, sys time: 0.000236, 0.000000, 0.000000 (Build dofmap data)\n"
239+
"2024-08-12 13:22:46.599 ( 3.721s) [main ] dofmapbuilder.cpp:166 INFO| Checking required entities per dimension\n",
240+
"2024-08-12 13:22:46.599 ( 3.721s) [main ] dofmapbuilder.cpp:264 INFO| Cell type:0, dofmap:500000x6\n",
241+
"2024-08-12 13:22:46.635 ( 3.757s) [main ] dofmapbuilder.cpp:320 INFO| Global index computation\n",
242+
"2024-08-12 13:22:46.642 ( 3.764s) [main ] dofmapbuilder.cpp:637 INFO| Got 2 index_maps\n",
243+
"2024-08-12 13:22:46.648 ( 3.770s) [main ] dofmapbuilder.cpp:644 INFO| Get global indices\n"
249244
]
250245
}
251246
],

0 commit comments

Comments
 (0)