This page was generated from unit-2.1.1-preconditioners/preconditioner.ipynb.
2.1.1 Preconditioners in NGSolve¶
Preconditioners are approximate inverses which are used within iterative methods to solve linear or non-linear equations.
Here are some built-in preconditioners in NGSolve:
Jacobi (
local
) and block JacobiDirect solvers using sparse factorization (
direct
)Geometric multigrid with different block-smoothers (
multigrid
)Algebraic multigrid preconditioner (
h1amg
)p-version element-level BDDC (
bddc
)
This tutorial quickly introduces how to use some of these within a solver, and the next two tutorials, 2.1.2 and 2.1.3, continue the preconditioner discussion.
[1]:
from netgen.csg import unit_cube
from netgen.geom2d import unit_square
from ngsolve import *
import netgen.gui
import matplotlib.pyplot as plt
A simple test problem¶
In order to experiment with various preconditioners, let us define a simple Poisson solver with the name of a preconditioner as the keyword argument precond
.
[2]:
def SolveProblem(h=0.5, p=1, levels=1,
condense = False,
precond="local"):
"""
Solve Poisson problem on l refinement levels.
h: coarse mesh size
p: polynomial degree
l: number of refinement levels
condense: if true, perform static condensations
precond: name of a built-in preconditioner
OUTPUT:
List of tuples of ndofs and iterations
"""
mesh = Mesh(unit_square.GenerateMesh(maxh=h))
# mesh = Mesh(unit_cube.GenerateMesh(maxh=h))
fes = H1(mesh, order=p, dirichlet="bottom|left")
u, v = fes.TnT()
a = BilinearForm(fes, eliminate_internal=condense)
a += grad(u)*grad(v)*dx
f = LinearForm(fes)
f += v*dx
gfu = GridFunction(fes)
Draw(gfu)
c = Preconditioner(a, precond) # Register c to a BEFORE assembly
steps = []
for l in range(levels):
if l > 0:
mesh.Refine()
fes.Update()
gfu.Update()
with TaskManager():
a.Assemble()
f.Assemble()
# Conjugate gradient solver
inv = CGSolver(a.mat, c.mat, maxsteps=1000)
# Solve steps depend on condense
if condense:
f.vec.data += a.harmonic_extension_trans * f.vec
gfu.vec.data = inv * f.vec
if condense:
gfu.vec.data += a.harmonic_extension * gfu.vec
gfu.vec.data += a.inner_solve * f.vec
steps.append ( (fes.ndof, inv.GetSteps()) )
if fes.ndof < 15000:
Redraw()
return steps
The Preconditioner
registers itself to the BilinearForm
. Whenever the BilinearForm
is re-assembled, the Preconditioner
is updated as well.
The local
preconditioner¶
The local
preconditioner is a simple Jacobi preconditioner. The number of CG-iterations with the local preconditioner is proportional to \(h^{-1} \sim 2^l\):
[3]:
SolveProblem(precond="local")
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
load internal triangle rules
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
assemble VOL element 6/6
[3]:
[(8, 4)]
0 0.216506
1 0.15554
2 0.00984673
3 1.29234e-17
[4]:
res_local = SolveProblem(levels=9, precond="local")
res_local
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
assemble VOL element 6/6
0 0.216506
1 0.15554
2 0.00984673
3 1.29234e-17
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
0 0.138193
1 0.153753
2 0.116572
3 0.0713624
4 0.0324336
5 0.00752701
6 0.000971976
7 5.44153e-05
8 1.40176e-18
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
0 0.0754759
1 0.153035
2 0.0928317
3 0.0899082
4 0.102225
5 0.0723412
6 0.0472377
7 0.0424434
8 0.0246661
9 0.0118849
10 0.00490928
11 0.00214447
12 0.00103007
13 0.000393217
14 0.000135465
15 3.80968e-05
16 6.7356e-06
17 2.76331e-06
18 7.01211e-07
19 2.83454e-07
20 9.8444e-08
21 3.2501e-08
22 5.45041e-09
23 1.1504e-09
24 7.62389e-11
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
0 0.0391059
1 0.0982581
2 0.0915281
3 0.0889827
4 0.0661326
5 0.0615353
6 0.0595127
7 0.0836062
8 0.073055
9 0.0589171
10 0.0517409
11 0.0375674
12 0.0353505
13 0.0335517
14 0.0296508
15 0.0235869
16 0.0199672
17 0.0131925
18 0.00809935
19 0.00581546
20 0.00362867
21 0.0021879
22 0.00173197
23 0.00126879
24 0.00094027
25 0.000619314
26 0.000383946
27 0.00027824
28 0.000169505
29 7.05815e-05
30 3.84889e-05
31 2.34641e-05
32 1.10815e-05
33 6.67469e-06
34 3.82977e-06
35 2.45923e-06
36 1.32268e-06
37 7.53322e-07
38 5.36298e-07
39 3.98344e-07
40 2.03535e-07
41 1.06239e-07
42 8.50011e-08
43 5.20049e-08
44 2.46207e-08
45 1.23496e-08
46 6.75256e-09
47 3.13721e-09
48 1.35697e-09
49 4.81431e-10
50 2.21087e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 1536/1536
assemble VOL element 1536/1536
0 0.0198701
1 0.054748
2 0.0737023
3 0.07889
4 0.0658122
5 0.0662042
6 0.0562027
7 0.0546864
8 0.0466731
9 0.044432
10 0.0404148
11 0.0406512
12 0.0459011
13 0.0606264
14 0.056602
15 0.0484641
16 0.0520401
17 0.0474428
18 0.0417499
19 0.0399606
20 0.0325597
21 0.0303331
22 0.0252646
23 0.0257607
24 0.0253383
25 0.0258125
26 0.023731
27 0.0214748
28 0.020994
29 0.0184891
30 0.0171734
31 0.0162491
32 0.013445
33 0.0111492
34 0.0083336
35 0.00688139
36 0.00638114
37 0.0049405
38 0.00427012
39 0.0032155
40 0.00266364
41 0.00194742
42 0.00167587
43 0.00138658
44 0.00124965
45 0.00116006
46 0.000945751
47 0.000780489
48 0.000774941
49 0.000608707
50 0.000460504
51 0.000374617
52 0.000304566
53 0.000264117
54 0.000236986
55 0.000191748
56 0.000133702
57 8.68257e-05
58 6.40568e-05
59 4.98797e-05
60 3.56298e-05
61 2.78603e-05
62 2.0961e-05
63 1.46424e-05
64 1.13468e-05
65 7.4998e-06
66 5.4085e-06
67 4.36247e-06
68 3.82072e-06
69 3.16663e-06
70 2.34964e-06
71 1.88207e-06
72 1.68094e-06
73 1.12422e-06
74 8.57566e-07
75 7.25003e-07
76 6.66238e-07
77 5.90464e-07
78 5.24108e-07
79 4.00787e-07
80 2.71502e-07
81 1.77699e-07
82 1.3301e-07
83 1.01926e-07
84 8.65822e-08
85 8.27065e-08
86 6.72758e-08
87 4.78436e-08
88 3.50776e-08
89 2.34285e-08
90 1.60842e-08
91 1.31925e-08
92 9.50656e-09
93 6.71131e-09
94 5.03814e-09
95 3.28267e-09
96 2.4534e-09
97 1.6775e-09
98 1.00517e-09
99 5.74042e-10
100 3.33003e-10
101 2.29542e-10
102 1.50239e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 6144/6144
assemble VOL element 6144/6144
0 0.0100114
1 0.0288061
2 0.0552323
3 0.0611348
4 0.053092
5 0.0560453
6 0.0500889
7 0.0516498
8 0.0468878
9 0.0472492
10 0.0436619
11 0.0431667
12 0.0400934
13 0.0393489
14 0.0364938
15 0.035474
16 0.0329761
17 0.0320618
18 0.030566
19 0.0298367
20 0.0284394
21 0.0277942
22 0.0275126
23 0.0306059
24 0.0373495
25 0.0450369
26 0.0405087
27 0.0353376
28 0.0389464
29 0.0388704
30 0.0345455
31 0.0375503
32 0.0350849
33 0.0335203
34 0.0342571
35 0.0304355
36 0.0307432
37 0.0281004
38 0.0265335
39 0.0255643
40 0.0227169
41 0.0221591
42 0.0195448
43 0.0191931
44 0.0178708
45 0.0177227
46 0.0179321
47 0.0188385
48 0.0196011
49 0.0182684
50 0.017333
51 0.0165545
52 0.0174161
53 0.0158938
54 0.0153784
55 0.0147741
56 0.014272
57 0.0131673
58 0.0134569
59 0.0127177
60 0.0122569
61 0.0119786
62 0.0111072
63 0.0102743
64 0.00937333
65 0.00844958
66 0.00699895
67 0.00657921
68 0.00571792
69 0.00552987
70 0.00527966
71 0.0047675
72 0.00419341
73 0.00370033
74 0.00356779
75 0.00329654
76 0.00300836
77 0.00251758
78 0.00230048
79 0.00201143
80 0.00177731
81 0.00158091
82 0.00146886
83 0.00127326
84 0.00111053
85 0.00106321
86 0.000975953
87 0.000968049
88 0.000952674
89 0.000887585
90 0.000755773
91 0.000692812
92 0.000660015
93 0.000650943
94 0.000610185
95 0.000581688
96 0.00051965
97 0.000447091
98 0.000425045
99 0.000385102
100 0.000343888
101 0.000303976
102 0.000259706
103 0.000251674
104 0.000217229
105 0.000195074
106 0.000193079
107 0.000186907
108 0.000181702
109 0.000163736
110 0.000142539
111 0.000118047
112 8.77935e-05
113 7.43529e-05
114 6.59348e-05
115 5.80524e-05
116 4.68947e-05
117 4.47994e-05
118 3.90262e-05
119 3.08732e-05
120 2.66477e-05
121 2.39335e-05
122 2.01688e-05
123 1.85566e-05
124 1.63435e-05
125 1.36031e-05
126 1.23116e-05
127 1.0465e-05
128 8.59415e-06
129 7.09294e-06
130 5.60229e-06
131 4.95434e-06
132 3.9955e-06
133 3.77628e-06
134 3.58435e-06
135 3.24688e-06
136 3.11314e-06
137 2.52966e-06
138 2.18281e-06
139 1.89521e-06
140 1.91821e-06
141 1.80347e-06
142 1.59739e-06
143 1.45051e-06
144 1.23699e-06
145 1.06879e-06
146 8.93066e-07
147 7.85407e-07
148 7.01707e-07
149 6.14045e-07
150 5.84985e-07
151 5.49276e-07
152 5.10322e-07
153 4.86333e-07
154 4.91112e-07
155 4.58508e-07
156 4.35477e-07
157 3.75315e-07
158 3.13586e-07
159 2.74946e-07
160 2.25907e-07
161 1.85346e-07
162 1.54166e-07
163 1.31353e-07
164 1.09474e-07
165 9.33418e-08
166 8.23605e-08
167 7.46061e-08
168 6.82702e-08
169 6.46301e-08
170 6.17579e-08
171 5.8257e-08
172 5.49783e-08
173 4.99157e-08
174 4.09175e-08
175 3.52674e-08
176 3.0255e-08
177 2.45292e-08
178 2.10518e-08
179 1.81872e-08
180 1.5257e-08
181 1.2682e-08
182 1.12481e-08
183 9.92463e-09
184 8.61583e-09
185 7.16803e-09
186 6.10972e-09
187 4.95122e-09
188 4.18979e-09
189 3.51085e-09
190 2.97932e-09
191 2.54934e-09
192 2.35395e-09
193 2.03706e-09
194 1.57281e-09
195 1.21004e-09
196 9.23589e-10
197 7.55901e-10
198 6.01313e-10
199 4.76445e-10
200 3.6807e-10
201 2.80769e-10
202 2.33644e-10
203 1.97595e-10
204 1.6403e-10
205 1.33325e-10
206 1.04342e-10
207 8.07123e-11
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24576/24576
assemble VOL element 24576/24576
0 0.00502445
1 0.0147647
2 0.0401499
3 0.0450703
4 0.039829
5 0.0428882
6 0.0390656
7 0.0410851
8 0.0381025
9 0.0393504
10 0.0370909
11 0.0377645
12 0.035907
13 0.0363288
14 0.0346729
15 0.0348832
16 0.0334612
17 0.0334525
18 0.0322246
19 0.0320532
20 0.0309705
21 0.0306833
22 0.0296818
23 0.0293567
24 0.0283752
25 0.0280132
26 0.0271187
27 0.0266309
28 0.0258632
29 0.0253082
30 0.0245366
31 0.0240271
32 0.0232335
33 0.0228394
34 0.0223893
35 0.0220547
36 0.0216308
37 0.021278
38 0.0208505
39 0.0205178
40 0.0200659
41 0.0197451
42 0.0193254
43 0.0190552
44 0.0190737
45 0.019943
46 0.0225919
47 0.0274715
48 0.0321017
49 0.0311461
50 0.0265201
51 0.0261729
52 0.0292523
53 0.0280916
54 0.025554
55 0.0274987
56 0.0276628
57 0.025291
58 0.0268718
59 0.0266028
60 0.0249219
61 0.0264747
62 0.025167
63 0.02465
64 0.0256366
65 0.0238007
66 0.0245598
67 0.0236908
68 0.0227653
69 0.0232186
70 0.0215669
71 0.0219211
72 0.0208605
73 0.0202985
74 0.0201732
75 0.0188495
76 0.0191312
77 0.0177583
78 0.0177308
79 0.0167973
80 0.0162041
81 0.0157244
82 0.0147893
83 0.0146734
84 0.0137611
85 0.0137749
86 0.0130651
87 0.0129189
88 0.0124948
89 0.0122743
90 0.0123785
91 0.0124508
92 0.0134378
93 0.0138939
94 0.0146569
95 0.0136525
96 0.0129665
97 0.0121499
98 0.012706
99 0.012835
100 0.0124692
101 0.0119268
102 0.0120568
103 0.0122307
104 0.0115655
105 0.0114703
106 0.0113781
107 0.0112123
108 0.0105776
109 0.0108007
110 0.0102644
111 0.0100021
112 0.00989042
113 0.00977779
114 0.00939894
115 0.00956251
116 0.00924536
117 0.00904243
118 0.00913524
119 0.00875021
120 0.00870519
121 0.00857344
122 0.00828988
123 0.00808451
124 0.00791059
125 0.00736355
126 0.00729003
127 0.0067073
128 0.0064953
129 0.00628979
130 0.00547779
131 0.00557218
132 0.00485599
133 0.00452225
134 0.00451467
135 0.00408072
136 0.00431016
137 0.00403923
138 0.00425822
139 0.00395646
140 0.00376109
141 0.00328684
142 0.00299246
143 0.00283908
144 0.00296636
145 0.00293849
146 0.00280562
147 0.00248923
148 0.00249783
149 0.00243007
150 0.00233307
151 0.00210594
152 0.00198969
153 0.00198425
154 0.00180222
155 0.0016609
156 0.00156445
157 0.00150604
158 0.00135964
159 0.00130666
160 0.0012817
161 0.00118997
162 0.00111275
163 0.00106263
164 0.000998686
165 0.000927449
166 0.000889567
167 0.000834997
168 0.000778864
169 0.000775051
170 0.000725713
171 0.000713683
172 0.00070274
173 0.00069071
174 0.000685839
175 0.000720607
176 0.000681865
177 0.000636436
178 0.000574931
179 0.000541658
180 0.000542112
181 0.000504956
182 0.000484294
183 0.00049361
184 0.00047335
185 0.000459158
186 0.000470632
187 0.00044537
188 0.000430842
189 0.000419945
190 0.000388896
191 0.000390262
192 0.000361704
193 0.000337997
194 0.000322791
195 0.000311795
196 0.000302002
197 0.000284568
198 0.000263641
199 0.000253574
200 0.000239455
201 0.000227087
202 0.000213034
203 0.000205288
204 0.000197935
205 0.000179626
206 0.000166105
207 0.000154578
208 0.00015143
209 0.000144503
210 0.000143634
211 0.000142381
212 0.00013758
213 0.000134945
214 0.000133163
215 0.00013097
216 0.000127861
217 0.000124916
218 0.000123158
219 0.000110239
220 9.96772e-05
221 8.6462e-05
222 7.49498e-05
223 6.89942e-05
224 6.5778e-05
225 6.15166e-05
226 5.21503e-05
227 4.69393e-05
228 4.48478e-05
229 4.41474e-05
230 4.10623e-05
231 3.70411e-05
232 3.68151e-05
233 3.40892e-05
234 3.08591e-05
235 2.82161e-05
236 2.73794e-05
237 2.39389e-05
238 2.21533e-05
239 2.09227e-05
240 1.9038e-05
241 1.8001e-05
242 1.73446e-05
243 1.56741e-05
244 1.46922e-05
245 1.39225e-05
246 1.31091e-05
247 1.24632e-05
248 1.17949e-05
249 1.06258e-05
250 1.03268e-05
251 9.40226e-06
252 8.68605e-06
253 8.07592e-06
254 7.34118e-06
255 6.88419e-06
256 6.12379e-06
257 5.46663e-06
258 5.0344e-06
259 4.52955e-06
260 4.00314e-06
261 3.81534e-06
262 3.35863e-06
263 3.20347e-06
264 2.95258e-06
265 2.81237e-06
266 2.7404e-06
267 2.60901e-06
268 2.69359e-06
269 2.53381e-06
270 2.49433e-06
271 2.24824e-06
272 2.13192e-06
273 1.86765e-06
274 1.72861e-06
275 1.62819e-06
276 1.5579e-06
277 1.56243e-06
278 1.48099e-06
279 1.40704e-06
280 1.36142e-06
281 1.33713e-06
282 1.30989e-06
283 1.23361e-06
284 1.20526e-06
285 1.12851e-06
286 1.05555e-06
287 9.74662e-07
288 9.07161e-07
289 8.48884e-07
290 7.73129e-07
291 7.08072e-07
292 6.64193e-07
293 6.0985e-07
294 5.68542e-07
295 5.33048e-07
296 5.04973e-07
297 4.84574e-07
298 4.74243e-07
299 4.465e-07
300 4.32231e-07
301 3.99838e-07
302 3.81433e-07
303 3.72853e-07
304 3.71781e-07
305 3.72672e-07
306 3.64189e-07
307 3.5375e-07
308 3.46306e-07
309 3.44641e-07
310 3.30461e-07
311 3.32743e-07
312 3.18774e-07
313 2.98029e-07
314 2.77163e-07
315 2.56003e-07
316 2.32858e-07
317 2.08334e-07
318 1.9036e-07
319 1.79837e-07
320 1.69629e-07
321 1.52735e-07
322 1.39712e-07
323 1.22574e-07
324 1.14259e-07
325 1.04795e-07
326 9.81964e-08
327 8.89078e-08
328 7.98572e-08
329 7.43139e-08
330 6.93136e-08
331 6.4026e-08
332 6.08714e-08
333 5.68861e-08
334 5.53927e-08
335 5.22267e-08
336 4.91625e-08
337 4.74136e-08
338 4.49527e-08
339 4.51224e-08
340 4.42961e-08
341 4.45076e-08
342 4.22205e-08
343 4.25207e-08
344 4.10867e-08
345 3.91224e-08
346 3.62715e-08
347 3.27377e-08
348 2.99319e-08
349 2.80024e-08
350 2.57795e-08
351 2.40535e-08
352 2.21733e-08
353 2.0393e-08
354 1.88913e-08
355 1.74661e-08
356 1.5914e-08
357 1.45429e-08
358 1.35837e-08
359 1.23352e-08
360 1.13271e-08
361 1.04405e-08
362 9.66838e-09
363 8.97818e-09
364 8.42244e-09
365 8.18839e-09
366 7.6481e-09
367 7.06559e-09
368 6.32378e-09
369 5.67688e-09
370 5.29031e-09
371 5.12171e-09
372 4.78583e-09
373 4.22353e-09
374 3.7481e-09
375 3.43033e-09
376 3.21168e-09
377 2.87007e-09
378 2.5392e-09
379 2.3876e-09
380 2.23556e-09
381 2.16395e-09
382 2.03543e-09
383 1.92703e-09
384 1.83052e-09
385 1.67582e-09
386 1.47419e-09
387 1.32289e-09
388 1.19743e-09
389 1.07981e-09
390 9.16081e-10
391 8.34195e-10
392 7.40484e-10
393 6.6755e-10
394 6.0332e-10
395 5.26899e-10
396 4.71207e-10
397 4.14538e-10
398 3.69381e-10
399 3.15539e-10
400 2.8307e-10
401 2.47414e-10
402 2.23325e-10
403 2.012e-10
404 1.91358e-10
405 1.79062e-10
406 1.6447e-10
407 1.48482e-10
408 1.31456e-10
409 1.16192e-10
410 1.04441e-10
411 9.57466e-11
412 8.35499e-11
413 7.39757e-11
414 6.68971e-11
415 5.90155e-11
416 5.10083e-11
417 4.59855e-11
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 98304/98304
assemble VOL element 98304/98304
0 0.00251686
1 0.00747323
2 0.0287762
3 0.0325119
4 0.0289678
5 0.03148
6 0.0289133
7 0.0306653
8 0.0287015
9 0.029934
10 0.028433
11 0.0292879
12 0.0280755
13 0.0287211
14 0.0276806
15 0.0281634
16 0.0272856
17 0.0276175
18 0.0268742
19 0.0270899
20 0.02645
21 0.026578
22 0.0260075
23 0.0260876
24 0.0255526
25 0.0255932
26 0.0251174
27 0.0250803
28 0.024684
29 0.0245941
30 0.0242141
31 0.0241321
32 0.0237475
33 0.0236464
34 0.0233058
35 0.0231529
36 0.0228568
37 0.0226772
38 0.0223909
39 0.0222144
40 0.0219209
41 0.0217465
42 0.0214644
43 0.0212645
44 0.0210169
45 0.0207867
46 0.0205552
47 0.020329
48 0.02008
49 0.01987
50 0.0196216
51 0.0193911
52 0.0191736
53 0.0189206
54 0.0187079
55 0.018465
56 0.0182401
57 0.0180017
58 0.0177826
59 0.0175338
60 0.0173248
61 0.0170702
62 0.0168634
63 0.0166092
64 0.0164043
65 0.0161974
66 0.0160925
67 0.0159336
68 0.0158172
69 0.01566
70 0.0155459
71 0.0153869
72 0.0152718
73 0.015115
74 0.0150005
75 0.0148388
76 0.0147304
77 0.0145662
78 0.0144551
79 0.0142955
80 0.0141824
81 0.01402
82 0.0139129
83 0.0137448
84 0.0136403
85 0.0134751
86 0.0133731
87 0.013238
88 0.0132246
89 0.0133429
90 0.0139358
91 0.0152331
92 0.0176712
93 0.0209227
94 0.0234708
95 0.022735
96 0.0198885
97 0.0184371
98 0.0197977
99 0.0214293
100 0.0202918
101 0.0185531
102 0.0195244
103 0.0206782
104 0.0192701
105 0.0185591
106 0.0200065
107 0.0195845
108 0.0183843
109 0.0193754
110 0.0195501
111 0.0182368
112 0.019109
113 0.0192277
114 0.0181358
115 0.0189464
116 0.0188761
117 0.0179588
118 0.0189189
119 0.0183127
120 0.017931
121 0.018674
122 0.017761
123 0.0179361
124 0.0182537
125 0.0173316
126 0.0180724
127 0.0175538
128 0.0173244
129 0.0178065
130 0.0169603
131 0.0173428
132 0.0170506
133 0.016584
134 0.0170193
135 0.0161571
136 0.0165166
137 0.0160811
138 0.0157989
139 0.0159895
140 0.0152787
141 0.0155729
142 0.0150535
143 0.0149248
144 0.0149196
145 0.0143219
146 0.0146227
147 0.0139305
148 0.0141017
149 0.0136996
150 0.0134934
151 0.0134728
152 0.0129611
153 0.0131124
154 0.0125763
155 0.0126038
156 0.0122747
157 0.0120296
158 0.0119483
159 0.0114723
160 0.0115492
161 0.0110001
162 0.0110729
163 0.0106169
164 0.0105504
165 0.0103149
166 0.0101
167 0.0100721
168 0.00974264
169 0.00980452
170 0.00944733
171 0.00949351
172 0.00922138
173 0.00916902
174 0.00901804
175 0.0088524
176 0.00883375
177 0.00857336
178 0.00867341
179 0.00843487
180 0.00867424
181 0.00867447
182 0.00918663
183 0.00959179
184 0.0102642
185 0.0105854
186 0.0104569
187 0.00994358
188 0.00918872
189 0.00903754
190 0.00908506
191 0.00960262
192 0.0094062
193 0.00910485
194 0.0087264
195 0.0089481
196 0.00914803
197 0.00897924
198 0.00866934
199 0.00863421
200 0.00894604
201 0.00869004
202 0.00855794
203 0.00845411
204 0.00875262
205 0.00839103
206 0.00834184
207 0.00833872
208 0.00841644
209 0.00807193
210 0.00812608
211 0.00815269
212 0.00792615
213 0.00782762
214 0.00786378
215 0.0077492
216 0.00750983
217 0.00765652
218 0.0074276
219 0.0073163
220 0.00725227
221 0.0072257
222 0.00695889
223 0.00709365
224 0.00695416
225 0.00685442
226 0.00688245
227 0.00681031
228 0.00667915
229 0.00673883
230 0.00665075
231 0.006515
232 0.00663194
233 0.0064318
234 0.00644974
235 0.0064073
236 0.00633564
237 0.00624895
238 0.00632092
239 0.00608377
240 0.0062059
241 0.00603744
242 0.00600267
243 0.00596412
244 0.00586842
245 0.00576465
246 0.00574678
247 0.00553918
248 0.00551213
249 0.00536058
250 0.00521634
251 0.00517363
252 0.00497158
253 0.00492145
254 0.00478354
255 0.00464494
256 0.00453493
257 0.0045495
258 0.00410682
259 0.00441094
260 0.00385668
261 0.00386988
262 0.00370373
263 0.00351787
264 0.00348151
265 0.00323356
266 0.00327757
267 0.00305533
268 0.00309536
269 0.00296489
270 0.00297445
271 0.00295443
272 0.00299845
273 0.00304808
274 0.00317134
275 0.00313839
276 0.00314386
277 0.0028554
278 0.00265025
279 0.00236367
280 0.00226283
281 0.00227678
282 0.00236043
283 0.00238334
284 0.00226787
285 0.00207702
286 0.00202567
287 0.00205426
288 0.00216676
289 0.00206867
290 0.00197067
291 0.00186341
292 0.00193694
293 0.0019566
294 0.00184454
295 0.00174544
296 0.00173123
297 0.00176993
298 0.00170223
299 0.00158744
300 0.001579
301 0.00158173
302 0.00154106
303 0.00142071
304 0.0014187
305 0.00142056
306 0.001342
307 0.00127616
308 0.00126753
309 0.00125389
310 0.0011483
311 0.00111966
312 0.00110845
313 0.00105387
314 0.00100376
315 0.00100621
316 0.00100264
317 0.000943076
318 0.000931245
319 0.000918703
320 0.000865963
321 0.000852617
322 0.000844667
323 0.000815947
324 0.000764767
325 0.000779725
326 0.000736877
327 0.00071568
328 0.000697406
329 0.000680201
330 0.000645339
331 0.000642267
332 0.000618869
333 0.000590768
334 0.00058884
335 0.000569076
336 0.000548281
337 0.000550381
338 0.000537306
339 0.000522959
340 0.000521009
341 0.000513819
342 0.000493379
343 0.000501265
344 0.000486739
345 0.000487334
346 0.000489882
347 0.000494465
348 0.00050758
349 0.000524226
350 0.000512524
351 0.000488291
352 0.000460346
353 0.000432996
354 0.000442242
355 0.000426387
356 0.000404601
357 0.000388441
358 0.00038655
359 0.000383076
360 0.000369085
361 0.000358785
362 0.000361176
363 0.000351643
364 0.000338866
365 0.000353259
366 0.000343832
367 0.000340603
368 0.000349459
369 0.000335774
370 0.000331296
371 0.000326367
372 0.000318673
373 0.000312521
374 0.000316395
375 0.000308044
376 0.000309063
377 0.000300644
378 0.000293016
379 0.000286052
380 0.000282227
381 0.000271851
382 0.000265921
383 0.000257274
384 0.000251172
385 0.000247897
386 0.000241522
387 0.00023523
388 0.000229029
389 0.000224079
390 0.000221525
391 0.00021543
392 0.000208613
393 0.000204035
394 0.00019994
395 0.00019396
396 0.000187276
397 0.000179105
398 0.000177944
399 0.000171147
400 0.000166473
401 0.000162111
402 0.000162084
403 0.000158687
404 0.000154586
405 0.000150572
406 0.000147373
407 0.000139783
408 0.000132261
409 0.000127971
410 0.00012454
411 0.000121361
412 0.000115503
413 0.000114326
414 0.000109208
415 0.000106898
416 0.000106339
417 0.000106284
418 0.000104026
419 0.000101045
420 0.000101578
421 0.00010217
422 9.83582e-05
423 9.88102e-05
424 9.70079e-05
425 9.68038e-05
426 9.52654e-05
427 9.47845e-05
428 9.43881e-05
429 9.20422e-05
430 9.38458e-05
431 9.14119e-05
432 9.06254e-05
433 9.03187e-05
434 9.01791e-05
435 8.90739e-05
436 8.63635e-05
437 8.53228e-05
438 7.7911e-05
439 7.18041e-05
440 6.51702e-05
441 5.99942e-05
442 5.69493e-05
443 5.68181e-05
444 5.71372e-05
445 5.50282e-05
446 5.04341e-05
447 4.58369e-05
448 4.28591e-05
449 4.29653e-05
450 4.15097e-05
451 3.91306e-05
452 3.57853e-05
453 3.50031e-05
454 3.47948e-05
455 3.27993e-05
456 3.11742e-05
457 3.10972e-05
458 3.15343e-05
459 3.00014e-05
460 2.85379e-05
461 2.83245e-05
462 2.73038e-05
463 2.59692e-05
464 2.43191e-05
465 2.47082e-05
466 2.37434e-05
467 2.24339e-05
468 2.22849e-05
469 2.17138e-05
470 2.00729e-05
471 1.91242e-05
472 1.89522e-05
473 1.7283e-05
474 1.67784e-05
475 1.64015e-05
476 1.54333e-05
477 1.5079e-05
478 1.49454e-05
479 1.42309e-05
480 1.34175e-05
481 1.33124e-05
482 1.26223e-05
483 1.23209e-05
484 1.20604e-05
485 1.14289e-05
486 1.0985e-05
487 1.08455e-05
488 1.04273e-05
489 1.00358e-05
490 9.85659e-06
491 9.49704e-06
492 9.31762e-06
493 9.10727e-06
494 8.67255e-06
495 8.59001e-06
496 8.20727e-06
497 7.99567e-06
498 7.64297e-06
499 7.33465e-06
500 7.11745e-06
501 6.908e-06
502 6.56994e-06
503 6.43211e-06
504 6.21007e-06
505 5.86104e-06
506 5.766e-06
507 5.37651e-06
508 5.27591e-06
509 4.93429e-06
510 4.68902e-06
511 4.54701e-06
512 4.35533e-06
513 4.13477e-06
514 3.91366e-06
515 3.64395e-06
516 3.41723e-06
517 3.38693e-06
518 3.10789e-06
519 3.02936e-06
520 2.85534e-06
521 2.72489e-06
522 2.63209e-06
523 2.47354e-06
524 2.4329e-06
525 2.26285e-06
526 2.26634e-06
527 2.12189e-06
528 2.11573e-06
529 2.02604e-06
530 2.01599e-06
531 1.96797e-06
532 1.95556e-06
533 1.93928e-06
534 1.9181e-06
535 1.89911e-06
536 1.88043e-06
537 1.8407e-06
538 1.82142e-06
539 1.77702e-06
540 1.74545e-06
541 1.66889e-06
542 1.61205e-06
543 1.51252e-06
544 1.42857e-06
545 1.34887e-06
546 1.28205e-06
547 1.25375e-06
548 1.26064e-06
549 1.22844e-06
550 1.20543e-06
551 1.14812e-06
552 1.11844e-06
553 1.09026e-06
554 1.07849e-06
555 1.0489e-06
556 1.02583e-06
557 1.02966e-06
558 1.01312e-06
559 1.00362e-06
560 9.81133e-07
561 9.63493e-07
562 9.46377e-07
563 9.38488e-07
564 9.25652e-07
565 8.98032e-07
566 8.93219e-07
567 8.56597e-07
568 8.51528e-07
569 8.13567e-07
570 7.99667e-07
571 7.75874e-07
572 7.49767e-07
573 7.1786e-07
574 6.97344e-07
575 6.77399e-07
576 6.45207e-07
577 6.1662e-07
578 5.93397e-07
579 5.71085e-07
580 5.48516e-07
581 5.27531e-07
582 5.079e-07
583 4.84004e-07
584 4.66253e-07
585 4.49263e-07
586 4.31064e-07
587 4.13948e-07
588 3.99045e-07
589 3.92059e-07
590 3.79013e-07
591 3.72984e-07
592 3.62284e-07
593 3.59191e-07
594 3.53306e-07
595 3.41749e-07
596 3.38449e-07
597 3.24161e-07
598 3.18498e-07
599 3.04505e-07
600 2.95613e-07
601 2.84004e-07
602 2.80345e-07
603 2.74716e-07
604 2.74614e-07
605 2.78351e-07
606 2.75194e-07
607 2.76316e-07
608 2.64487e-07
609 2.62417e-07
610 2.58673e-07
611 2.58831e-07
612 2.53098e-07
613 2.50357e-07
614 2.49298e-07
615 2.52169e-07
616 2.51453e-07
617 2.46276e-07
618 2.48185e-07
619 2.42127e-07
620 2.40038e-07
621 2.36153e-07
622 2.33964e-07
623 2.29235e-07
624 2.27727e-07
625 2.21025e-07
626 2.17976e-07
627 2.07543e-07
628 1.97655e-07
629 1.84793e-07
630 1.71778e-07
631 1.63352e-07
632 1.59452e-07
633 1.57019e-07
634 1.53187e-07
635 1.49295e-07
636 1.41878e-07
637 1.36064e-07
638 1.28872e-07
639 1.23093e-07
640 1.16656e-07
641 1.10891e-07
642 1.06064e-07
643 1.01818e-07
644 9.81308e-08
645 9.36848e-08
646 8.91954e-08
647 8.53416e-08
648 8.27989e-08
649 7.90907e-08
650 7.52121e-08
651 7.10845e-08
652 6.82114e-08
653 6.55704e-08
654 6.25136e-08
655 5.99595e-08
656 5.67068e-08
657 5.49061e-08
658 5.22421e-08
659 5.06437e-08
660 4.90663e-08
661 4.76156e-08
662 4.62348e-08
663 4.43447e-08
664 4.30725e-08
665 4.23657e-08
666 4.10967e-08
667 4.05777e-08
668 3.84886e-08
669 3.72778e-08
670 3.59866e-08
671 3.51566e-08
672 3.43458e-08
673 3.40824e-08
674 3.41622e-08
675 3.31214e-08
676 3.28468e-08
677 3.2406e-08
678 3.13482e-08
679 3.11955e-08
680 3.12584e-08
681 3.15664e-08
682 3.08041e-08
683 3.09318e-08
684 3.09694e-08
685 3.08878e-08
686 3.02987e-08
687 3.01113e-08
688 2.9323e-08
689 2.84744e-08
690 2.76237e-08
691 2.67291e-08
692 2.48676e-08
693 2.40172e-08
694 2.30443e-08
695 2.17737e-08
696 2.1313e-08
697 2.06833e-08
698 1.99399e-08
699 1.8954e-08
700 1.83115e-08
701 1.75272e-08
702 1.71553e-08
703 1.67524e-08
704 1.59412e-08
705 1.53795e-08
706 1.4569e-08
707 1.40507e-08
708 1.35344e-08
709 1.28713e-08
710 1.21278e-08
711 1.17495e-08
712 1.12467e-08
713 1.07171e-08
714 1.03302e-08
715 1.01133e-08
716 9.94028e-09
717 9.57737e-09
718 8.99567e-09
719 8.58061e-09
720 7.91885e-09
721 7.2964e-09
722 6.93808e-09
723 6.8928e-09
724 6.82426e-09
725 6.86995e-09
726 6.87207e-09
727 6.63772e-09
728 6.32026e-09
729 6.02071e-09
730 5.68153e-09
731 5.40388e-09
732 5.19075e-09
733 5.01026e-09
734 4.9538e-09
735 4.79315e-09
736 4.596e-09
737 4.34302e-09
738 4.11147e-09
739 3.97663e-09
740 3.94645e-09
741 3.79723e-09
742 3.6472e-09
743 3.43141e-09
744 3.30337e-09
745 3.14266e-09
746 2.99717e-09
747 2.85784e-09
748 2.72629e-09
749 2.61358e-09
750 2.50091e-09
751 2.34365e-09
752 2.21748e-09
753 2.12717e-09
754 2.00619e-09
755 1.9185e-09
756 1.81588e-09
757 1.74803e-09
758 1.6801e-09
759 1.64119e-09
760 1.63007e-09
761 1.61866e-09
762 1.58385e-09
763 1.5555e-09
764 1.49745e-09
765 1.43919e-09
766 1.35804e-09
767 1.31699e-09
768 1.29224e-09
769 1.25852e-09
770 1.1888e-09
771 1.13403e-09
772 1.06468e-09
773 9.94929e-10
774 9.32197e-10
775 9.27655e-10
776 8.42339e-10
777 7.91282e-10
778 7.54005e-10
779 7.20292e-10
780 6.87621e-10
781 6.44595e-10
782 6.11039e-10
783 5.62515e-10
784 5.3278e-10
785 4.95049e-10
786 4.70312e-10
787 4.38932e-10
788 4.28645e-10
789 4.08078e-10
790 3.88085e-10
791 3.61186e-10
792 3.45398e-10
793 3.23373e-10
794 2.98479e-10
795 2.8194e-10
796 2.63181e-10
797 2.4283e-10
798 2.25517e-10
799 2.09269e-10
800 1.95365e-10
801 1.83809e-10
802 1.73617e-10
803 1.67319e-10
804 1.64285e-10
805 1.58086e-10
806 1.52544e-10
807 1.49248e-10
808 1.41041e-10
809 1.33687e-10
810 1.27627e-10
811 1.22432e-10
812 1.17388e-10
813 1.13944e-10
814 1.07536e-10
815 1.00566e-10
816 9.33896e-11
817 8.67854e-11
818 8.28071e-11
819 8.03073e-11
820 7.69677e-11
821 7.3602e-11
822 6.96764e-11
823 6.53671e-11
824 6.10011e-11
825 5.7444e-11
826 5.39966e-11
827 4.96162e-11
828 4.61527e-11
829 4.40442e-11
830 4.17093e-11
831 3.9185e-11
832 3.65294e-11
833 3.44358e-11
834 3.32725e-11
835 3.23728e-11
836 3.13729e-11
837 2.97347e-11
838 2.82153e-11
839 2.73939e-11
840 2.62258e-11
841 2.4471e-11
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 393216/393216
assemble VOL element 393216/393216
0 0.00125959
1 0.00375939
2 0.0204842
3 0.023215
4 0.0207671
5 0.022668
6 0.020901
7 0.0222547
8 0.0209191
9 0.0219145
10 0.0208873
11 0.0216289
12 0.0208055
13 0.0213875
14 0.0206985
15 0.0211591
16 0.0205842
17 0.020941
18 0.0204587
19 0.0207343
20 0.0203244
21 0.0205367
22 0.0201804
23 0.0203499
24 0.0200291
25 0.0201635
26 0.0198837
27 0.0199709
28 0.0197381
29 0.0197897
30 0.0195767
31 0.0196195
32 0.0194151
33 0.0194405
34 0.0192632
35 0.0192582
36 0.019108
37 0.0190839
38 0.0189449
39 0.0189155
40 0.0187794
41 0.0187453
42 0.0186192
43 0.0185691
44 0.0184628
45 0.0183947
46 0.0182999
47 0.0182294
48 0.0181304
49 0.018064
50 0.0179681
51 0.0178893
52 0.0178108
53 0.0177182
54 0.0176449
55 0.0175546
56 0.0174774
57 0.0173874
58 0.0173149
59 0.0172176
60 0.0171523
61 0.01705
62 0.0169876
63 0.016884
64 0.0168225
65 0.0167177
66 0.0166579
67 0.0165514
68 0.0164938
69 0.0163844
70 0.01633
71 0.0162186
72 0.0161644
73 0.0160538
74 0.0160002
75 0.0158868
76 0.0158369
77 0.0157216
78 0.0156709
79 0.015558
80 0.015506
81 0.0153919
82 0.0153432
83 0.0152257
84 0.0151789
85 0.0150619
86 0.0150131
87 0.0148982
88 0.0148487
89 0.014733
90 0.0146852
91 0.0145681
92 0.0145213
93 0.0144034
94 0.0143571
95 0.01424
96 0.0141916
97 0.0140769
98 0.0140277
99 0.0139117
100 0.013865
101 0.0137471
102 0.0137008
103 0.0135841
104 0.013536
105 0.0134211
106 0.0133718
107 0.0132574
108 0.0132084
109 0.0130932
110 0.0130454
111 0.0129291
112 0.0128818
113 0.0127666
114 0.0127165
115 0.0126048
116 0.0125528
117 0.0124401
118 0.0123913
119 0.0122759
120 0.0122274
121 0.0121143
122 0.0120626
123 0.011952
124 0.0118995
125 0.0117882
126 0.011737
127 0.011625
128 0.0115745
129 0.0114799
130 0.0114637
131 0.0113873
132 0.0113656
133 0.0112916
134 0.0112688
135 0.0111951
136 0.0111727
137 0.0110986
138 0.011076
139 0.0110025
140 0.0109796
141 0.0109059
142 0.0108833
143 0.0108099
144 0.0107862
145 0.0107139
146 0.01069
147 0.0106168
148 0.0105943
149 0.0105203
150 0.0104973
151 0.0104248
152 0.0104001
153 0.0103288
154 0.010304
155 0.0102318
156 0.010208
157 0.0101355
158 0.0101114
159 0.0100393
160 0.0100147
161 0.00994341
162 0.00991755
163 0.0098476
164 0.00982124
165 0.00975046
166 0.00972563
167 0.00965376
168 0.0096288
169 0.00955826
170 0.00953136
171 0.00946258
172 0.0094348
173 0.00936613
174 0.00934024
175 0.00927337
176 0.00925746
177 0.00921557
178 0.00926098
179 0.0093585
180 0.00967643
181 0.0102599
182 0.0113333
183 0.0129017
184 0.0149193
185 0.0166004
186 0.0170106
187 0.0156922
188 0.0139992
189 0.0132357
190 0.01393
191 0.0151716
192 0.015432
193 0.0141997
194 0.013402
195 0.0139618
196 0.0149675
197 0.0145479
198 0.0135155
199 0.0136433
200 0.0146065
201 0.0143492
202 0.0134362
203 0.0136726
204 0.0144797
205 0.0139176
206 0.0133098
207 0.0139265
208 0.0142406
209 0.0133827
210 0.0134877
211 0.014133
212 0.0136153
213 0.0132222
214 0.0139331
215 0.0137048
216 0.0131534
217 0.0136912
218 0.0137437
219 0.0130823
220 0.0135626
221 0.0136617
222 0.0130621
223 0.0134423
224 0.0135935
225 0.0129787
226 0.0134211
227 0.0134434
228 0.012941
229 0.013383
230 0.0133112
231 0.0128723
232 0.0134036
233 0.0130953
234 0.0128907
235 0.0133427
236 0.0129059
237 0.012905
238 0.0132427
239 0.0126826
240 0.0129861
241 0.0129876
242 0.0125913
243 0.0130017
244 0.0127296
245 0.0125912
246 0.0129568
247 0.0124593
248 0.0127102
249 0.0127025
250 0.0123765
251 0.0127436
252 0.0124237
253 0.0124216
254 0.0126323
255 0.0122003
256 0.0125529
257 0.0123132
258 0.0122203
259 0.0124418
260 0.0120375
261 0.0122683
262 0.0121228
263 0.0119285
264 0.0121863
265 0.0117576
266 0.0119921
267 0.0118078
268 0.011666
269 0.0118466
270 0.0114767
271 0.0116706
272 0.0114847
273 0.0113603
274 0.0115179
275 0.0111365
276 0.0113807
277 0.0110936
278 0.0110963
279 0.0111153
280 0.0108396
281 0.0110316
282 0.0107277
283 0.0107973
284 0.0107206
285 0.0105245
286 0.0106822
287 0.0103401
288 0.0105202
289 0.0102742
290 0.010266
291 0.0102494
292 0.0100286
293 0.0101615
294 0.00988177
295 0.00997291
296 0.00981909
297 0.0097288
298 0.00977266
299 0.00951246
300 0.00966385
301 0.00937613
302 0.00947122
303 0.00930564
304 0.00923938
305 0.00924304
306 0.00903244
307 0.00913093
308 0.00888749
309 0.00895058
310 0.00879585
311 0.00872769
312 0.00871313
313 0.00850883
314 0.00859208
315 0.00833175
316 0.00841792
317 0.00820636
318 0.0082044
319 0.00810689
320 0.00798211
321 0.00799341
322 0.00779051
323 0.00784385
324 0.00763877
325 0.00765742
326 0.00752069
327 0.00745901
328 0.00742625
329 0.00727962
330 0.00733578
331 0.00714418
332 0.00722484
333 0.00704225
334 0.00708471
335 0.00696844
336 0.00693635
337 0.00690578
338 0.00679691
339 0.00682953
340 0.00668158
341 0.00673471
342 0.00659128
343 0.00661949
344 0.00652178
345 0.00649373
346 0.00646237
347 0.00636831
348 0.00639944
349 0.00625836
350 0.00631973
351 0.00616963
352 0.00622318
353 0.00609904
354 0.006115
355 0.00604271
356 0.0060079
357 0.00599909
358 0.00593026
359 0.00599159
360 0.00594315
361 0.00610246
362 0.00616777
363 0.00647405
364 0.00673701
365 0.00715671
366 0.00750509
367 0.00770723
368 0.00771982
369 0.00735819
370 0.00702781
371 0.0065826
372 0.00656547
373 0.00661217
374 0.00697163
375 0.00702225
376 0.0069371
377 0.00658961
378 0.00641649
379 0.00649782
380 0.00668289
381 0.00679551
382 0.00653574
383 0.00638382
384 0.00630249
385 0.00655944
386 0.00655677
387 0.00644303
388 0.00622927
389 0.00631273
390 0.00645923
391 0.00641026
392 0.00624762
393 0.00616258
394 0.0063625
395 0.00631716
396 0.00623482
397 0.00607869
398 0.00627549
399 0.00623699
400 0.0061595
401 0.00603859
402 0.00618832
403 0.00617591
404 0.00604335
405 0.00602412
406 0.00610689
407 0.00610041
408 0.00592538
409 0.00601241
410 0.00601957
411 0.0059798
412 0.00584094
413 0.00597946
414 0.00591499
415 0.00583274
416 0.00581469
417 0.00588908
418 0.00577657
419 0.00570971
420 0.00579507
421 0.00571067
422 0.00564606
423 0.00563454
424 0.00569605
425 0.00551572
426 0.00558542
427 0.00555602
428 0.00551197
429 0.00542128
430 0.00551896
431 0.00538766
432 0.00536104
433 0.00538546
434 0.00533126
435 0.00524727
436 0.0052772
437 0.00523796
438 0.00511849
439 0.0051863
440 0.00510105
441 0.00505527
442 0.00504414
443 0.00506058
444 0.00493641
445 0.00501987
446 0.00495258
447 0.00490883
448 0.0049215
449 0.00491134
450 0.00483231
451 0.00487814
452 0.00484435
453 0.00477076
454 0.00483886
455 0.00476212
456 0.0047482
457 0.00475302
458 0.00473544
459 0.00466056
460 0.00474714
461 0.004625
462 0.00466577
463 0.00464374
464 0.0046096
465 0.0045841
466 0.00462088
467 0.00452029
468 0.00457129
469 0.0045343
470 0.00448424
471 0.00452097
472 0.00446639
473 0.00444673
474 0.00445794
475 0.00441378
476 0.00438613
477 0.004421
478 0.00432118
479 0.00437631
480 0.00431447
481 0.00429791
482 0.00429315
483 0.00426616
484 0.0042191
485 0.00425476
486 0.00416111
487 0.00418912
488 0.00414799
489 0.00409428
490 0.00410794
491 0.00403514
492 0.00401056
493 0.00398862
494 0.0039213
495 0.00389752
496 0.00387047
497 0.00378089
498 0.00380838
499 0.00369931
500 0.0037078
501 0.0036479
502 0.00360694
503 0.00357195
504 0.00354147
505 0.00347091
506 0.00348507
507 0.00338499
508 0.00339314
509 0.00331979
510 0.00327051
511 0.00323806
512 0.00315956
513 0.0032488
514 0.00300923
515 0.00324571
516 0.00297332
517 0.00294593
518 0.0029559
519 0.00281686
520 0.00284144
521 0.00271536
522 0.00272929
523 0.00260746
524 0.00262983
525 0.00250115
526 0.00252809
527 0.00241363
528 0.00242326
529 0.00234719
530 0.00232655
531 0.00228715
532 0.00225279
533 0.00222315
534 0.00219984
535 0.00215078
536 0.002149
537 0.0020919
538 0.00209298
539 0.00206241
540 0.00205302
541 0.00207197
542 0.00206869
543 0.00212962
544 0.00218399
545 0.00225448
546 0.00237029
547 0.00239581
548 0.00245154
549 0.00236394
550 0.00223666
551 0.00206228
552 0.00187566
553 0.00176883
554 0.00172998
555 0.00176848
556 0.00186898
557 0.00190074
558 0.00189283
559 0.00175292
560 0.00164866
561 0.00157982
562 0.00160985
563 0.00168761
564 0.00170038
565 0.00164814
566 0.00153316
567 0.00147766
568 0.00151636
569 0.00157218
570 0.00159705
571 0.00151324
572 0.00144042
573 0.00143748
574 0.00149177
575 0.00153004
576 0.00145425
577 0.00140393
578 0.00137963
579 0.0014516
580 0.00145391
581 0.00138822
582 0.00133113
583 0.00134698
584 0.00138638
585 0.00136793
586 0.00128684
587 0.00127973
588 0.0013028
589 0.00133118
590 0.00124545
591 0.00122478
592 0.00123897
593 0.00126134
594 0.00120759
595 0.00115867
596 0.0011803
597 0.00119272
598 0.00115567
599 0.00110664
600 0.00111782
601 0.00113921
602 0.00108282
603 0.00105115
604 0.00106044
605 0.00107351
606 0.00102069
607 0.000994857
608 0.00101991
609 0.00100131
610 0.000961679
611 0.000943128
612 0.000968775
613 0.000934854
614 0.000898117
615 0.00090447
616 0.000901905
617 0.000867373
618 0.000839828
619 0.000853406
620 0.000828515
621 0.00078515
622 0.000786398
623 0.000780326
624 0.000756535
625 0.000734641
626 0.000760451
627 0.000739738
628 0.000719418
629 0.000722141
630 0.000720153
631 0.000688074
632 0.000678883
633 0.000694271
634 0.000670959
635 0.000657388
636 0.00066079
637 0.000646001
638 0.000625845
639 0.000632329
640 0.000630203
641 0.0006009
642 0.000600156
643 0.000602279
644 0.000581236
645 0.000576191
646 0.00057374
647 0.000559436
648 0.000543881
649 0.000556445
650 0.00053321
651 0.000522592
652 0.000522661
653 0.000516465
654 0.000497549
655 0.000500231
656 0.000492632
657 0.000475417
658 0.000478533
659 0.000469536
660 0.000455174
661 0.000456675
662 0.00044857
663 0.000436012
664 0.000433192
665 0.000432196
666 0.000411914
667 0.000418571
668 0.000409601
669 0.000401551
670 0.00039891
671 0.000399556
672 0.000388977
673 0.00039025
674 0.00038786
675 0.000378053
676 0.00038174
677 0.000373445
678 0.000368742
679 0.000369698
680 0.000364611
681 0.000359318
682 0.000361117
683 0.000355839
684 0.000350873
685 0.000356301
686 0.000347359
687 0.000347231
688 0.000349265
689 0.000342191
690 0.000342311
691 0.000344662
692 0.000341736
693 0.000345673
694 0.000359549
695 0.000361995
696 0.0003826
697 0.000381326
698 0.000373439
699 0.00035741
700 0.000339136
701 0.000328606
702 0.00033798
703 0.000339503
704 0.000331869
705 0.000319154
706 0.000304583
707 0.000309859
708 0.000309593
709 0.000296908
710 0.000289678
711 0.000287628
712 0.000289869
713 0.000283695
714 0.00027521
715 0.000274514
716 0.000279108
717 0.000265712
718 0.000264595
719 0.000265005
720 0.00025898
721 0.000254513
722 0.00025186
723 0.000253823
724 0.000247957
725 0.000245073
726 0.000249544
727 0.000247943
728 0.00024393
729 0.000254481
730 0.000250566
731 0.000248123
732 0.000254766
733 0.000246761
734 0.000242174
735 0.000242775
736 0.000234895
737 0.000232481
738 0.000233539
739 0.000232151
740 0.000232995
741 0.000233277
742 0.00023185
743 0.000227541
744 0.000226252
745 0.000225209
746 0.000220874
747 0.000226556
748 0.00022043
749 0.000220971
750 0.000219544
751 0.00021439
752 0.000214503
753 0.000216303
754 0.000209258
755 0.000213201
756 0.000206393
757 0.00020289
758 0.000204865
759 0.000197582
760 0.000197205
761 0.000194131
762 0.000188361
763 0.000190791
764 0.000186153
765 0.000184656
766 0.000184316
767 0.000177754
768 0.000179856
769 0.000175706
770 0.000171276
771 0.000173563
772 0.000166534
773 0.000169726
774 0.000166093
775 0.000162801
776 0.000163331
777 0.000158733
778 0.000159958
779 0.000157426
780 0.000153044
781 0.000154581
782 0.000150718
783 0.000150602
784 0.000148262
785 0.000143548
786 0.000146169
787 0.000140647
788 0.000141071
789 0.000136833
790 0.000134956
791 0.000135841
792 0.000130469
793 0.000129122
794 0.000127226
795 0.000124813
796 0.0001244
797 0.000119807
798 0.000120057
799 0.000119333
800 0.00011722
801 0.000116906
802 0.000115057
803 0.000117461
804 0.000115189
805 0.000113521
806 0.000113988
807 0.000111204
808 0.000109508
809 0.000105398
810 0.000104465
811 0.000102898
812 0.000100612
813 9.91486e-05
814 9.88518e-05
815 9.66488e-05
816 9.43954e-05
817 9.10203e-05
818 9.13093e-05
819 8.90051e-05
820 8.69782e-05
821 8.62662e-05
822 8.47331e-05
823 8.26296e-05
824 8.04985e-05
825 8.04733e-05
826 8.02612e-05
827 7.78822e-05
828 7.75729e-05
829 7.65452e-05
830 7.61495e-05
831 7.59952e-05
832 7.55035e-05
833 7.52106e-05
834 7.30569e-05
835 7.43301e-05
836 7.4549e-05
837 7.27917e-05
838 7.21953e-05
839 7.12852e-05
840 7.19431e-05
841 7.02778e-05
842 7.13614e-05
843 7.0653e-05
844 6.99301e-05
845 7.01814e-05
846 6.96324e-05
847 6.9043e-05
848 6.80261e-05
849 6.88509e-05
850 6.84084e-05
851 6.71905e-05
852 6.79401e-05
853 6.75165e-05
854 6.70402e-05
855 6.68354e-05
856 6.65866e-05
857 6.6356e-05
858 6.50747e-05
859 6.56643e-05
860 6.44679e-05
861 6.47208e-05
862 6.47422e-05
863 6.45112e-05
864 6.42842e-05
865 6.46949e-05
866 6.42588e-05
867 6.40029e-05
868 6.41051e-05
869 6.46753e-05
870 6.33342e-05
871 6.3709e-05
872 6.26049e-05
873 6.12145e-05
874 5.91864e-05
875 5.63413e-05
876 5.32207e-05
877 4.90482e-05
878 4.64709e-05
879 4.38687e-05
880 4.316e-05
881 4.35422e-05
882 4.4513e-05
883 4.5804e-05
884 4.4584e-05
885 4.30317e-05
886 3.98671e-05
887 3.83268e-05
888 3.75337e-05
889 3.79321e-05
890 3.76645e-05
891 3.57801e-05
892 3.39514e-05
893 3.29254e-05
894 3.27298e-05
895 3.31842e-05
896 3.18498e-05
897 3.03897e-05
898 2.91381e-05
899 2.9389e-05
900 2.89034e-05
901 2.77302e-05
902 2.6436e-05
903 2.56906e-05
904 2.61658e-05
905 2.52835e-05
906 2.42927e-05
907 2.37377e-05
908 2.40364e-05
909 2.38413e-05
910 2.29292e-05
911 2.27965e-05
912 2.30211e-05
913 2.33049e-05
914 2.21831e-05
915 2.19049e-05
916 2.21686e-05
917 2.14262e-05
918 2.05955e-05
919 2.01984e-05
920 2.04438e-05
921 1.97523e-05
922 1.93026e-05
923 1.9414e-05
924 1.93394e-05
925 1.85787e-05
926 1.7982e-05
927 1.82215e-05
928 1.75779e-05
929 1.70781e-05
930 1.73028e-05
931 1.71859e-05
932 1.65497e-05
933 1.63258e-05
934 1.63867e-05
935 1.57198e-05
936 1.54027e-05
937 1.5458e-05
938 1.50868e-05
939 1.44544e-05
940 1.41792e-05
941 1.3998e-05
942 1.31969e-05
943 1.31552e-05
944 1.30891e-05
945 1.24598e-05
946 1.22969e-05
947 1.22463e-05
948 1.18297e-05
949 1.15085e-05
950 1.16887e-05
951 1.10481e-05
952 1.09829e-05
953 1.09472e-05
954 1.07151e-05
955 1.04589e-05
956 1.04368e-05
957 1.00214e-05
958 9.81706e-06
959 9.89198e-06
960 9.62512e-06
961 9.39397e-06
962 9.359e-06
963 9.04771e-06
964 8.97698e-06
965 8.88118e-06
966 8.66111e-06
967 8.40771e-06
968 8.46083e-06
969 8.19473e-06
970 8.0398e-06
971 8.0175e-06
972 7.7251e-06
973 7.69991e-06
974 7.57191e-06
975 7.41354e-06
976 7.31305e-06
977 7.25071e-06
978 7.05139e-06
979 7.05558e-06
980 6.9164e-06
981 6.74647e-06
982 6.84222e-06
983 6.58029e-06
984 6.58885e-06
985 6.4898e-06
986 6.369e-06
987 6.30425e-06
988 6.2179e-06
989 6.03919e-06
990 6.02534e-06
991 5.8747e-06
992 5.73783e-06
993 5.69562e-06
994 5.54641e-06
995 5.48264e-06
996 5.41499e-06
997 5.23878e-06
998 5.25234e-06
999 5.06308e-06
[4]:
[(8, 4),
(21, 9),
(65, 25),
(225, 51),
(833, 103),
(3201, 208),
(12545, 418),
(49665, 842),
(197633, 1001)]
1000 5.01013e-06
Multigrid preconditioner¶
A geometric multigrid Preconditioner
uses the sequence of refined meshes to define a preconditioner yielding optimal iteration numbers (and complexity). It uses a direct solve on the coarsest level, and block Gauss-Seidel smoothers on the refined levels.
[5]:
res_mg = SolveProblem(levels=9, precond="multigrid")
res_mg
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.328876
1 2.04668e-17
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.356848
1 0.00912278
2 8.39618e-05
3 2.12427e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.35568
1 0.0107157
2 0.000587028
3 2.70143e-05
4 6.53175e-07
5 2.35622e-08
6 5.52189e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35423
1 0.0116601
2 0.000744241
3 3.8359e-05
4 1.65924e-06
5 1.17605e-07
6 6.9037e-09
7 4.84505e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 1536/1536
assemble VOL element 1536/1536
BlockJacobi Preconditioner, constructor called, #blocks = 2369
BlockJacobi Preconditioner built
assemble VOL element 1536/1536
0 0.353707
1 0.0126748
2 0.000811767
3 5.97099e-05
4 4.06647e-06
5 2.61384e-07
6 1.88255e-08
7 1.63407e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 6144/6144
assemble VOL element 6144/6144
BlockJacobi Preconditioner, constructor called, #blocks = 9345
BlockJacobi Preconditioner built
assemble VOL element 6144/6144
0 0.353558
1 0.0130171
2 0.000847326
3 5.84688e-05
4 5.12656e-06
5 4.08975e-07
6 2.52073e-08
7 1.89461e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24576/24576
assemble VOL element 24576/24576
BlockJacobi Preconditioner, constructor called, #blocks = 37121
BlockJacobi Preconditioner built
assemble VOL element 24576/24576
0 0.353519
1 0.0131081
2 0.00087601
3 5.64232e-05
4 4.93073e-06
5 4.40825e-07
6 3.40421e-08
7 2.32512e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 98304/98304
assemble VOL element 98304/98304
BlockJacobi Preconditioner, constructor called, #blocks = 147969
BlockJacobi Preconditioner built
assemble VOL element 98304/98304
0 0.353509
1 0.013131
2 0.00088764
3 5.76141e-05
4 4.455e-06
5 4.06586e-07
6 3.58684e-08
7 2.89833e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 393216/393216
assemble VOL element 393216/393216
BlockJacobi Preconditioner, constructor called, #blocks = 590849
BlockJacobi Preconditioner built
assemble VOL element 393216/393216
0 0.353507
1 0.0131367
2 0.000891195
3 5.86915e-05
4 4.36277e-06
5 3.47541e-07
6 3.52863e-08
7 3.08244e-09
[5]:
[(8, 2),
(21, 4),
(65, 7),
(225, 8),
(833, 8),
(3201, 8),
(12545, 8),
(49665, 8),
(197633, 8)]
[6]:
plt.xscale("log")
plt.yscale("log")
plt.plot(*zip(*res_local), "-*")
plt.plot(*zip(*res_mg), "-+")
plt.legend(['local', 'mg'])
plt.show()
Multigrid implementation for higher order spaces¶
For high order finite element spaces we use hierarchical bases. Let the (small) sub-spaces \(V_E\), \(V_F\), and \(V_C\) be those generated by basis functions associated with an edge \(E\), a face \(F\), and a cell \(C\), respectively. Then the full space admits the decomposition
where \(V_{p=1}\) refers to the lowest order finite element subspace. The system matrix then takes the block form
where the \(A_{VV}\)-block is exactly the system matrix of a lowest order method, representing the part of operator acting on the \(V_{p=1}\) subspace.
NGSolve’s multigrid implementation for a high order method uses h-version multigrid for the lowest order block, and local block-smoothing for the high order bubble basis functions.
[7]:
for p in range(1,10):
r = SolveProblem(h=0.5, p=p, levels=4, condense=False,
precond="multigrid")
print ("p=", p, ": ndof,nsteps=", r)
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.328876
1 2.04668e-17
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.356848
1 0.00912278
2 8.39618e-05
3 2.12427e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.35568
1 0.0107157
2 0.000587028
3 2.70143e-05
4 6.53175e-07
5 2.35622e-08
6 5.52189e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35423
1 0.0116601
2 0.000744241
3 3.8359e-05
4 1.65924e-06
5 1.17605e-07
6 6.9037e-09
p=7 4.84505e-10
1 : ndof,nsteps= [(8, 2), (21, 4), (65, 7), (225, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.361394
1 0.0124871
2 0.000100053
3 3.66458e-07
4 1.90233e-20
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361122
1 0.0117365
2 0.000512379
3 2.37102e-05
4 8.62628e-07
5 1.77994e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.35605
1 0.0119747
2 0.000709088
3 3.47905e-05
4 2.01234e-06
5 1.26119e-07
6 7.23945e-09
7 2.83652e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35426
1 0.0120479
2 0.000804714
3 5.21269e-05
4 2.59939e-06
5 1.85087e-07
6 1.16487e-08
p=7 8.25998e-10
2 : ndof,nsteps= [(21, 5), (65, 6), (225, 8), (833, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.359456
1 0.0244755
2 0.00614803
3 0.000996401
4 7.38031e-05
5 8.70631e-06
6 2.47374e-07
7 2.83633e-08
8 5.72124e-10
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361954
1 0.0133697
2 0.00258368
3 0.000852135
4 0.000117471
5 2.16679e-05
6 4.60798e-06
7 1.25319e-06
8 1.76905e-07
9 3.48411e-08
10 7.18174e-09
11 9.72783e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.356212
1 0.0133352
2 0.0025404
3 0.000800241
4 0.000171852
5 3.28894e-05
6 8.50707e-06
7 1.82736e-06
8 3.42158e-07
9 6.75265e-08
10 1.25258e-08
11 2.58619e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.354315
1 0.0122965
2 0.00166196
3 0.000670941
4 0.000126275
5 2.49854e-05
6 6.12428e-06
7 1.48112e-06
8 3.00089e-07
9 7.78086e-08
10 1.70598e-08
11 3.92079e-09
12 9.7946e-10
p= 3 : ndof,nsteps= [(40, 9), (133, 12), (481, 12), (1825, 13)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.359969
1 0.0234494
2 0.0086089
3 0.00338464
4 0.000481116
5 4.60723e-05
6 1.4908e-05
7 2.02488e-06
8 2.70377e-07
9 3.27915e-08
10 6.57947e-09
11 6.88784e-10
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361968
1 0.0131818
2 0.00237632
3 0.0013302
4 0.00049779
5 0.000125239
6 4.791e-05
7 1.22343e-05
8 3.24249e-06
9 1.31485e-06
10 3.65038e-07
11 1.14982e-07
12 3.07565e-08
13 8.9457e-09
14 1.77139e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.35621
1 0.0128598
2 0.00255163
3 0.00123847
4 0.000547479
5 0.000113633
6 4.40637e-05
7 1.76221e-05
8 4.79502e-06
9 1.72078e-06
10 5.218e-07
11 1.61305e-07
12 4.92828e-08
13 1.81738e-08
14 5.34336e-09
15 2.07611e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.354318
1 0.0121419
2 0.0015201
3 0.000925078
4 0.000359074
5 9.32902e-05
6 3.13138e-05
7 1.2438e-05
8 4.218e-06
9 1.47534e-06
10 5.28822e-07
11 2.169e-07
12 6.6258e-08
13 2.55985e-08
14 9.05164e-09
p=15 3.33145e-09
4 : ndof,nsteps= [(65, 12), (225, 15), (833, 16), (3201, 16)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.359957
1 0.0222058
2 0.00748831
3 0.00401941
4 0.0018542
5 0.000377662
6 0.000110158
7 4.68164e-05
8 1.21244e-05
9 2.20442e-06
10 2.24247e-07
11 3.82368e-08
12 1.1457e-08
13 2.13243e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361972
1 0.0132969
2 0.0021435
3 0.00117303
4 0.000791478
5 0.000278533
6 0.000101052
7 5.13397e-05
8 2.32709e-05
9 8.66493e-06
10 3.45591e-06
11 1.75787e-06
12 7.15582e-07
13 2.97301e-07
14 1.52622e-07
15 5.17889e-08
16 2.29292e-08
17 7.5598e-09
18 3.33997e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.356215
1 0.0129091
2 0.00236979
3 0.00114972
4 0.000736824
5 0.000311529
6 9.21276e-05
7 4.06501e-05
8 2.18824e-05
9 9.25056e-06
10 3.68202e-06
11 1.66316e-06
12 7.16013e-07
13 2.76203e-07
14 1.20906e-07
15 5.58764e-08
16 2.00808e-08
17 9.87819e-09
18 4.55085e-09
19 1.74943e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.354319
1 0.0121757
2 0.00140658
3 0.000755175
4 0.000512128
5 0.000216501
6 7.0622e-05
7 2.81154e-05
8 1.71452e-05
9 6.34236e-06
10 2.92901e-06
11 1.2884e-06
12 5.81417e-07
13 2.67604e-07
14 1.36002e-07
15 5.83572e-08
16 2.37509e-08
17 1.21645e-08
18 5.17328e-09
p=19 2.1847e-09
5 : ndof,nsteps= [(96, 14), (341, 19), (1281, 20), (4961, 20)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.359972
1 0.0224566
2 0.00720976
3 0.00341932
4 0.00226685
5 0.00112015
6 0.00030411
7 0.000148789
8 7.28847e-05
9 1.91382e-05
10 4.87475e-06
11 6.51662e-07
12 1.52008e-07
13 5.38682e-08
14 1.21243e-08
15 1.74456e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361972
1 0.0133186
2 0.00217314
3 0.000992665
4 0.000737282
5 0.000439782
6 0.000163087
7 8.13532e-05
8 4.77515e-05
9 2.53869e-05
10 1.0426e-05
11 4.5657e-06
12 3.28822e-06
13 1.51831e-06
14 6.42007e-07
15 2.79159e-07
16 1.46146e-07
17 9.85425e-08
18 4.66259e-08
19 2.28147e-08
20 7.04309e-09
21 3.97408e-09
22 2.29866e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.356217
1 0.0129011
2 0.00235801
3 0.00105812
4 0.000649316
5 0.000470673
6 0.000202317
7 6.80302e-05
8 3.16711e-05
9 2.26373e-05
10 1.02522e-05
11 4.11001e-06
12 2.29471e-06
13 1.35232e-06
14 6.44541e-07
15 2.7266e-07
16 1.29042e-07
17 7.58445e-08
18 3.39706e-08
19 1.7597e-08
20 9.31434e-09
21 4.96264e-09
22 2.4896e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35432
1 0.0121755
2 0.00143197
3 0.000666003
4 0.000430813
5 0.000331213
6 0.000126834
7 4.88685e-05
8 2.25863e-05
9 1.86529e-05
10 6.37545e-06
11 2.89807e-06
12 1.71535e-06
13 9.59764e-07
14 4.63665e-07
15 2.20369e-07
16 1.28607e-07
17 6.674e-08
18 3.69246e-08
19 1.93528e-08
20 1.01875e-08
21 4.91375e-09
p=22 2.29135e-09
6 : ndof,nsteps= [(133, 16), (481, 23), (1825, 23), (7105, 23)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.359976
1 0.0224135
2 0.00726305
3 0.00296477
4 0.00219982
5 0.00136847
6 0.00063273
7 0.000240728
8 0.000140377
9 8.04578e-05
10 1.67709e-05
11 6.27141e-06
12 1.58217e-06
13 3.08362e-07
14 5.80586e-08
15 2.09396e-08
16 7.46372e-09
17 1.68248e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361973
1 0.0133193
2 0.00220751
3 0.000955483
4 0.00059175
5 0.000484005
6 0.000254144
7 0.000103897
8 6.41615e-05
9 4.07649e-05
10 2.32398e-05
11 1.05487e-05
12 4.74696e-06
13 3.12335e-06
14 2.33411e-06
15 1.10546e-06
16 4.88482e-07
17 2.33029e-07
18 1.17688e-07
19 7.67847e-08
20 4.76627e-08
21 3.40626e-08
22 1.25684e-08
23 4.75293e-09
24 3.13464e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.356217
1 0.012892
2 0.00235162
3 0.0010574
4 0.000559182
5 0.000459251
6 0.000288241
7 0.000139033
8 4.56938e-05
9 2.55859e-05
10 2.09996e-05
11 1.09511e-05
12 4.61845e-06
13 2.23842e-06
14 1.57762e-06
15 9.76281e-07
16 5.05567e-07
17 2.3891e-07
18 1.28847e-07
19 7.61114e-08
20 4.01641e-08
21 2.27956e-08
22 1.3198e-08
23 6.6357e-09
24 4.60974e-09
25 2.61925e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35432
1 0.0121731
2 0.00144442
3 0.000678642
4 0.00034123
5 0.000336768
6 0.000193311
7 7.8881e-05
8 3.39952e-05
9 1.8475e-05
10 1.58817e-05
11 7.6655e-06
12 2.78043e-06
13 1.57371e-06
14 1.12571e-06
15 6.5602e-07
16 3.27258e-07
17 1.72413e-07
18 1.08939e-07
19 6.12785e-08
20 3.40735e-08
21 2.18247e-08
22 1.26022e-08
23 7.4786e-09
24 4.18833e-09
p=25 1.93666e-09
7 : ndof,nsteps= [(176, 18), (645, 25), (2465, 26), (9633, 26)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.359978
1 0.0224181
2 0.0073094
3 0.00295162
4 0.00179397
5 0.00150433
6 0.000819236
7 0.000402255
8 0.000197161
9 0.000125012
10 6.66218e-05
11 1.3268e-05
12 6.14669e-06
13 1.90745e-06
14 4.44854e-07
15 7.90921e-08
16 2.05004e-08
17 8.23094e-09
18 2.94443e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361973
1 0.0133191
2 0.00221793
3 0.000970903
4 0.000533417
5 0.000402827
6 0.000340919
7 0.000141759
8 7.12831e-05
9 5.19367e-05
10 3.43658e-05
11 2.01144e-05
12 9.84564e-06
13 4.28591e-06
14 2.59446e-06
15 2.02751e-06
16 1.49712e-06
17 6.74026e-07
18 3.69433e-07
19 1.82975e-07
20 8.99757e-08
21 5.29832e-08
22 3.47831e-08
23 2.95102e-08
24 1.69971e-08
25 5.91171e-09
26 2.96804e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.356218
1 0.012891
2 0.00232895
3 0.00108079
4 0.000532419
5 0.000376933
6 0.000342118
7 0.000187856
8 9.17848e-05
9 3.36332e-05
10 2.0724e-05
11 1.8386e-05
12 1.05698e-05
13 5.06466e-06
14 2.10686e-06
15 1.37865e-06
16 1.08995e-06
17 6.87552e-07
18 3.60477e-07
19 1.86259e-07
20 1.03429e-07
21 5.7282e-08
22 3.65705e-08
23 2.23612e-08
24 1.58692e-08
25 7.67513e-09
26 4.32134e-09
27 3.057e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35432
1 0.0121727
2 0.00144005
3 0.000700948
4 0.000317699
5 0.000256249
6 0.000250342
7 0.00010683
8 5.53197e-05
9 2.51694e-05
10 1.51441e-05
11 1.33808e-05
12 8.11248e-06
13 3.22234e-06
14 1.28802e-06
15 1.01662e-06
16 7.26614e-07
17 4.43309e-07
18 2.29878e-07
19 1.25474e-07
20 7.60395e-08
21 4.58657e-08
22 3.02866e-08
23 2.0897e-08
24 1.3451e-08
25 6.8126e-09
26 4.20302e-09
p=27 2.84639e-09
8 : ndof,nsteps= [(225, 19), (833, 27), (3201, 28), (12545, 28)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 14
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.359978
1 0.0224286
2 0.00728216
3 0.0030513
4 0.00156596
5 0.00135403
6 0.00101342
7 0.000494472
8 0.000275257
9 0.000150186
10 0.000110912
11 5.49871e-05
12 1.26439e-05
13 4.32293e-06
14 1.81698e-06
15 7.45218e-07
16 1.58682e-07
17 3.534e-08
18 8.46984e-09
19 2.8639e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 45
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361973
1 0.0133191
2 0.00222004
3 0.00098899
4 0.000524108
5 0.000338334
6 0.000322627
7 0.000223234
8 8.42403e-05
9 5.28708e-05
10 4.23828e-05
11 2.79507e-05
12 1.72283e-05
13 8.91821e-06
14 3.51449e-06
15 2.37705e-06
16 1.6091e-06
17 1.49956e-06
18 8.58668e-07
19 4.5347e-07
20 2.79885e-07
21 1.43475e-07
22 6.21495e-08
23 3.41145e-08
24 2.46548e-08
25 2.16191e-08
26 1.56952e-08
27 6.76776e-09
28 2.79095e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 161
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.356218
1 0.0128928
2 0.00231065
3 0.00109012
4 0.000543228
5 0.000328532
6 0.000308634
7 0.000231532
8 0.000128087
9 5.93822e-05
10 2.60538e-05
11 1.66575e-05
12 1.59393e-05
13 1.07274e-05
14 5.34874e-06
15 2.16139e-06
16 1.29307e-06
17 9.91126e-07
18 8.08408e-07
19 4.77056e-07
20 2.63205e-07
21 1.5127e-07
22 9.11004e-08
23 4.75745e-08
24 3.21976e-08
25 2.11827e-08
26 1.64081e-08
27 9.18541e-09
28 4.36814e-09
29 2.81263e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 609
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35432
1 0.0121729
2 0.00143463
3 0.000709017
4 0.000328269
5 0.000211394
6 0.000214891
7 0.000160378
8 6.80673e-05
9 3.98856e-05
10 1.82794e-05
11 1.26107e-05
12 1.14938e-05
13 7.83493e-06
14 3.67854e-06
15 1.29178e-06
16 8.76196e-07
17 6.79931e-07
18 5.11356e-07
19 2.9506e-07
20 1.87221e-07
21 1.08198e-07
22 6.28609e-08
23 3.23123e-08
24 2.55032e-08
25 1.90421e-08
26 1.39291e-08
27 6.54876e-09
28 3.74174e-09
p=29 2.85318e-09
9 : ndof,nsteps= [(280, 20), (1045, 29), (4033, 30), (15841, 30)]
We observe that the number of iterations grows mildly with the order, and remains bounded with mesh refinement.
Performing static condensation improves the situation:
[8]:
for p in range(1,10):
r = SolveProblem(h=0.5, p=p, levels=4, condense=True,
precond="multigrid")
print ("p=", p, ": ndof,nsteps=", r)
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.328876
1 2.04668e-17
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.356848
1 0.00912278
2 8.39618e-05
3 2.12427e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.35568
1 0.0107157
2 0.000587028
3 2.70143e-05
4 6.53175e-07
5 2.35622e-08
6 5.52189e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35423
1 0.0116601
2 0.000744241
3 3.8359e-05
4 1.65924e-06
5 1.17605e-07
6 6.9037e-09
p= 1 7 4.84505e-10
: ndof,nsteps= [(8, 2), (21, 4), (65, 7), (225, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.361394
1 0.0124871
2 0.000100053
3 3.66458e-07
4 1.90233e-20
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.361122
1 0.0117365
2 0.000512379
3 2.37102e-05
4 8.62628e-07
5 1.77994e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.35605
1 0.0119747
2 0.000709088
3 3.47905e-05
4 2.01234e-06
5 1.26119e-07
6 7.23945e-09
7 2.83652e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35426
1 0.0120479
2 0.000804714
3 5.21269e-05
4 2.59939e-06
5 1.85087e-07
6 1.16487e-08
p= 2 : ndof,nsteps= [(21, 5), (65, 6), (225, 8), (833, 8)]
7 8.25998e-10
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.357462
1 0.0104355
2 3.87107e-05
3 7.03724e-08
4 3.62676e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.360249
1 0.00935938
2 0.000370448
3 8.4552e-06
4 1.74655e-07
5 4.72239e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.356015
1 0.0100516
2 0.000579891
3 3.2525e-05
4 1.71509e-06
5 6.53192e-08
6 2.35908e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.354277
1 0.0113762
2 0.000683641
3 4.38573e-05
4 2.00453e-06
5 1.02697e-07
6 7.00714e-09
p=7 3.88935e-10
3 : ndof,nsteps= [(40, 5), (133, 6), (481, 7), (1825, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.357282
1 0.0106946
2 4.30855e-05
3 7.85377e-08
4 2.96302e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.36024
1 0.00957924
2 0.000379842
3 9.40357e-06
4 1.94328e-07
5 3.68313e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.355997
1 0.0101793
2 0.000585766
3 3.2499e-05
4 1.75093e-06
5 6.81548e-08
6 2.53159e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35427
1 0.011417
2 0.00069193
3 4.43115e-05
4 2.01881e-06
5 1.04497e-07
6 7.37309e-09
p=7 4.15677e-10
4 : ndof,nsteps= [(65, 5), (225, 6), (833, 7), (3201, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.35726
1 0.0106856
2 4.24049e-05
3 7.13818e-08
4 1.96349e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.360239
1 0.00955702
2 0.000379561
3 9.27747e-06
4 1.86071e-07
5 3.2234e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.355996
1 0.0101711
2 0.000585526
3 3.25143e-05
4 1.74422e-06
5 6.7538e-08
6 2.4907e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35427
1 0.0114135
2 0.000691626
3 4.42956e-05
4 2.01444e-06
5 1.03847e-07
6 7.26988e-09
p=7 4.10023e-10
5 : ndof,nsteps= [(96, 5), (341, 6), (1281, 7), (4961, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.357255
1 0.0106908
2 4.23066e-05
3 6.88718e-08
4 1.93619e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.360238
1 0.0095494
2 0.000379264
3 9.23028e-06
4 1.8417e-07
5 3.15399e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.355996
1 0.0101665
2 0.000585296
3 3.25194e-05
4 1.74202e-06
5 6.73754e-08
6 2.48051e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35427
1 0.0114117
2 0.000691289
3 4.42738e-05
4 2.01286e-06
5 1.03681e-07
6 7.24619e-09
p=7 4.0837e-10
6 : ndof,nsteps= [(133, 5), (481, 6), (1825, 7), (7105, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.357254
1 0.0106922
2 4.2244e-05
3 6.76462e-08
4 1.88383e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.360238
1 0.00954668
2 0.000379188
3 9.21153e-06
4 1.8309e-07
5 3.10225e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.355996
1 0.0101651
2 0.000585253
3 3.25212e-05
4 1.74116e-06
5 6.72989e-08
6 2.47505e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35427
1 0.0114111
2 0.000691218
3 4.42706e-05
4 2.01222e-06
5 1.03591e-07
6 7.23181e-09
7 4.07519e-10
p= 7 : ndof,nsteps= [(176, 5), (645, 6), (2465, 7), (9633, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.357253
1 0.0106929
2 4.22143e-05
3 6.70625e-08
4 1.861e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.360238
1 0.0095452
2 0.000379144
3 9.2017e-06
4 1.82592e-07
5 3.08177e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.355996
1 0.0101644
2 0.000585227
3 3.25221e-05
4 1.74073e-06
5 6.72634e-08
6 2.47259e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35427
1 0.0114108
2 0.000691174
3 4.42684e-05
4 2.01189e-06
5 1.0355e-07
6 7.22548e-09
p=7 4.07128e-10
8 : ndof,nsteps= [(225, 5), (833, 6), (3201, 7), (12545, 8)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
creating low order biform on demand
assemble VOL element 6/6
assemble VOL element 6/6
call pardiso ... done
BlockJacobi Preconditioner, constructor called, #blocks = 8
BlockJacobi Preconditioner built
assemble VOL element 6/6
0 0.357253
1 0.0106933
2 4.21986e-05
3 6.67556e-08
4 1.84997e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
assemble VOL element 24/24
BlockJacobi Preconditioner, constructor called, #blocks = 21
BlockJacobi Preconditioner built
assemble VOL element 24/24
0 0.360238
1 0.0095443
2 0.000379117
3 9.19615e-06
4 1.82323e-07
5 3.07079e-10
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
assemble VOL element 96/96
BlockJacobi Preconditioner, constructor called, #blocks = 65
BlockJacobi Preconditioner built
assemble VOL element 96/96
0 0.355996
1 0.010164
2 0.00058521
3 3.25226e-05
4 1.74049e-06
5 6.72438e-08
6 2.47123e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
assemble VOL element 384/384
BlockJacobi Preconditioner, constructor called, #blocks = 225
BlockJacobi Preconditioner built
assemble VOL element 384/384
0 0.35427
1 0.0114106
2 0.000691147
3 4.42671e-05
4 2.01171e-06
5 1.03527e-07
6 7.22194e-09
p=7 4.06908e-10
9 : ndof,nsteps= [(280, 5), (1045, 6), (4033, 7), (15841, 8)]
Element-wise BDDC preconditioner¶
A built-in element-wise BDDC (Balancing Domain Decomposition preconditioner with Constraints) preconditioner is also available. In contrast to local or multigrid preconditioners, the BDDC preconditioner needs access to the element matrices. This is exactly the reason why we register the preconditioner with the bilinear form bfa
before calling bfa.Assemble()
.
[9]:
for p in range(1,10):
r = SolveProblem(h=0.5, p=p, levels=4, condense=True,
precond="bddc")
print ("p=", p, ": ndof,nsteps=", r)
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 8 )
has inverse
assemble VOL element 6/6
0 0.328876
1 3.04047e-17
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 21 )
has inverse
assemble VOL element 24/24
0 0.364342
1 1.27966e-16
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 65 )
has inverse
assemble VOL element 96/96
0 0.372325
1 3.35155e-16
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 225 )
has inverse
assemble VOL element 384/384
0 0.374289
p=1 1.01645e-15
1 : ndof,nsteps= [(8, 2), (21, 2), (65, 2), (225, 2)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 21 )
has inverse
assemble VOL element 6/6
0 0.477772
1 0.160558
2 0.0510646
3 0.00871385
4 0.000584462
5 4.49972e-06
6 4.3786e-18
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 65 )
has inverse
assemble VOL element 24/24
0 0.504269
1 0.161055
2 0.0535376
3 0.0155192
4 0.00407181
5 0.000895811
6 0.000138018
7 2.99725e-05
8 2.25761e-06
9 2.97198e-07
10 2.23181e-08
11 2.69378e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 225 )
has inverse
assemble VOL element 96/96
0 0.521382
1 0.138587
2 0.0457176
3 0.0163883
4 0.00512691
5 0.00174602
6 0.000354238
7 0.000102799
8 2.62412e-05
9 8.83994e-06
10 2.76421e-06
11 6.83615e-07
12 1.63929e-07
13 5.20907e-08
14 1.25727e-08
15 3.26535e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 833 )
has inverse
assemble VOL element 384/384
0 0.526756
1 0.129923
2 0.0381012
3 0.0121828
4 0.00482539
5 0.00167383
6 0.000461273
7 0.000111294
8 4.18584e-05
9 1.01023e-05
10 3.5541e-06
11 1.05233e-06
12 3.20884e-07
13 8.72507e-08
14 3.56346e-08
15 8.70265e-09
p=16 3.29933e-09
2 : ndof,nsteps= [(21, 7), (65, 12), (225, 16), (833, 17)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 40 )
has inverse
assemble VOL element 6/6
0 0.538396
1 0.210873
2 0.0879634
3 0.0267507
4 0.00782763
5 0.000639145
6 0.000135815
7 1.05199e-05
8 2.81451e-07
9 1.83522e-08
10 3.77804e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 133 )
has inverse
assemble VOL element 24/24
0 0.566433
1 0.214309
2 0.117177
3 0.0315078
4 0.00916274
5 0.00431726
6 0.00110362
7 0.000256952
8 6.81979e-05
9 1.71509e-05
10 3.71959e-06
11 1.07889e-06
12 1.67951e-07
13 5.78423e-08
14 8.77879e-09
15 1.71527e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 481 )
has inverse
assemble VOL element 96/96
0 0.586003
1 0.198062
2 0.10448
3 0.0463745
4 0.0127243
5 0.00507468
6 0.00213804
7 0.000896276
8 0.000307158
9 0.000163241
10 5.93704e-05
11 1.73708e-05
12 6.46523e-06
13 2.17002e-06
14 6.99368e-07
15 2.97189e-07
16 1.04997e-07
17 3.54164e-08
18 1.27444e-08
19 4.85557e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 1825 )
has inverse
assemble VOL element 384/384
0 0.592874
1 0.189768
2 0.0949962
3 0.0471908
4 0.0122852
5 0.00449476
6 0.00212718
7 0.0011022
8 0.000357455
9 0.000181719
10 7.63448e-05
11 2.75694e-05
12 9.5549e-06
13 4.45332e-06
14 2.03726e-06
15 6.70775e-07
16 2.39874e-07
17 1.05427e-07
18 4.5521e-08
19 1.67657e-08
20 7.69412e-09
21 3.30288e-09
p= 3 : ndof,nsteps= [(40, 11), (133, 16), (481, 20), (1825, 22)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 65 )
has inverse
assemble VOL element 6/6
0 0.579072
1 0.252102
2 0.134624
3 0.0477871
4 0.0152917
5 0.00332591
6 0.000773557
7 8.34087e-05
8 1.62253e-05
9 8.65157e-07
10 1.3029e-07
11 9.06571e-09
12 6.99862e-11
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 225 )
has inverse
assemble VOL element 24/24
0 0.609904
1 0.256911
2 0.174643
3 0.0536048
4 0.0189014
5 0.00993219
6 0.00340957
7 0.00145839
8 0.000409067
9 0.000167085
10 6.03849e-05
11 1.11345e-05
12 3.21806e-06
13 1.36005e-06
14 2.91481e-07
15 7.07279e-08
16 1.10572e-08
17 1.0365e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 833 )
has inverse
assemble VOL element 96/96
0 0.631966
1 0.243138
2 0.157778
3 0.076626
4 0.024349
5 0.01215
6 0.00643626
7 0.00300594
8 0.0013359
9 0.000761677
10 0.00028142
11 0.000114445
12 5.19383e-05
13 1.80504e-05
14 8.9318e-06
15 4.29427e-06
16 1.57825e-06
17 5.70265e-07
18 2.50238e-07
19 1.05362e-07
20 4.82009e-08
21 2.28613e-08
22 7.59122e-09
23 2.70043e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 3201 )
has inverse
assemble VOL element 384/384
0 0.639866
1 0.236012
2 0.144676
3 0.0779338
4 0.0231727
5 0.0110114
6 0.00680143
7 0.00355654
8 0.00128122
9 0.000775456
10 0.000338054
11 0.000158651
12 8.11772e-05
13 4.2045e-05
14 1.87495e-05
15 8.09238e-06
16 3.57949e-06
17 1.60461e-06
18 6.85347e-07
19 2.8271e-07
20 1.44601e-07
21 6.57553e-08
22 3.0354e-08
23 1.55651e-08
24 7.40174e-09
25 3.05071e-09
p= 4 : ndof,nsteps= [(65, 13), (225, 18), (833, 24), (3201, 26)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 96 )
has inverse
assemble VOL element 6/6
0 0.609638
1 0.27786
2 0.168905
3 0.067266
4 0.0246095
5 0.00743804
6 0.0016936
7 0.000239816
8 5.29463e-05
9 6.84636e-06
10 5.78756e-07
11 1.09465e-07
12 9.43624e-09
13 2.21595e-10
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 341 )
has inverse
assemble VOL element 24/24
0 0.642629
1 0.284212
2 0.219302
3 0.0735349
4 0.0301522
5 0.0165539
6 0.0070891
7 0.00346584
8 0.00100806
9 0.000453504
10 0.000154189
11 4.90608e-05
12 1.40924e-05
13 6.42678e-06
14 1.70074e-06
15 4.35181e-07
16 1.08608e-07
17 2.05711e-08
18 2.84199e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 1281 )
has inverse
assemble VOL element 96/96
0 0.666581
1 0.271872
2 0.200525
3 0.103112
4 0.037077
5 0.0219373
6 0.0128334
7 0.00613042
8 0.00307462
9 0.00173601
10 0.000679267
11 0.000313132
12 0.000135751
13 5.31431e-05
14 3.09029e-05
15 1.49365e-05
16 6.64773e-06
17 3.04055e-06
18 1.47946e-06
19 6.54685e-07
20 3.05687e-07
21 1.30895e-07
22 5.33123e-08
23 2.84076e-08
24 1.09347e-08
25 4.84093e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 4961 )
has inverse
assemble VOL element 384/384
0 0.675292
1 0.26526
2 0.185191
3 0.105087
4 0.0353734
5 0.0210512
6 0.0143058
7 0.007034
8 0.00285275
9 0.00192568
10 0.000844436
11 0.000448509
12 0.000223763
13 0.000108005
14 5.04366e-05
15 2.4986e-05
16 1.17123e-05
17 6.09045e-06
18 3.39771e-06
19 1.80034e-06
20 9.74434e-07
21 4.63004e-07
22 2.09619e-07
23 9.78074e-08
24 5.15415e-08
25 2.84767e-08
26 1.61861e-08
27 7.78844e-09
28 3.71566e-09
p= 5 : ndof,nsteps= [(96, 14), (341, 19), (1281, 26), (4961, 29)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 133 )
has inverse
assemble VOL element 6/6
0 0.634052
1 0.296896
2 0.199359
3 0.0854188
4 0.034219
5 0.0119909
6 0.00264306
7 0.000468708
8 0.000105688
9 2.22183e-05
10 2.29045e-06
11 5.23656e-07
12 8.90097e-08
13 5.74043e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 481 )
has inverse
assemble VOL element 24/24
0 0.668584
1 0.304166
2 0.256316
3 0.0916332
4 0.0412814
5 0.023471
6 0.0114886
7 0.00585759
8 0.00180411
9 0.000860249
10 0.000307832
11 0.000133262
12 3.52689e-05
13 1.82801e-05
14 5.58085e-06
15 1.77709e-06
16 4.47392e-07
17 1.17169e-07
18 1.98227e-08
19 4.57706e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 1825 )
has inverse
assemble VOL element 96/96
0 0.693946
1 0.293149
2 0.236418
3 0.126704
4 0.0492331
5 0.0321474
6 0.0197148
7 0.00958778
8 0.00511968
9 0.00288448
10 0.00118241
11 0.000581591
12 0.000258099
13 0.000118729
14 7.70116e-05
15 3.8441e-05
16 1.93609e-05
17 8.91655e-06
18 4.4225e-06
19 2.14651e-06
20 1.11278e-06
21 5.42801e-07
22 2.82295e-07
23 1.28917e-07
24 5.19936e-08
25 2.57514e-08
26 1.14726e-08
27 5.96676e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 7105 )
has inverse
assemble VOL element 384/384
0 0.70326
1 0.287074
2 0.219414
3 0.129194
4 0.047018
5 0.031483
6 0.0220712
7 0.0106544
8 0.00467279
9 0.00327821
10 0.00144992
11 0.000808523
12 0.000403251
13 0.000200197
14 0.000104347
15 6.02458e-05
16 3.10128e-05
17 1.86832e-05
18 1.11331e-05
19 5.67534e-06
20 2.92962e-06
21 1.47091e-06
22 7.32986e-07
23 4.04825e-07
24 2.62185e-07
25 1.5301e-07
26 7.86562e-08
27 3.84926e-08
28 2.1601e-08
29 1.04566e-08
30 5.79499e-09
p= 6 : ndof,nsteps= [(133, 14), (481, 20), (1825, 28), (7105, 31)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 176 )
has inverse
assemble VOL element 6/6
0 0.654148
1 0.311678
2 0.224394
3 0.101608
4 0.0436865
5 0.0166895
6 0.00364509
7 0.000763652
8 0.000183562
9 5.09557e-05
10 6.45777e-06
11 1.27704e-06
12 3.00989e-07
13 2.74307e-08
14 1.59531e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 645 )
has inverse
assemble VOL element 24/24
0 0.690033
1 0.319916
2 0.287228
3 0.108091
4 0.052324
5 0.0304177
6 0.0162335
7 0.00850322
8 0.00274402
9 0.00138897
10 0.000528585
11 0.000276074
12 6.98573e-05
13 4.10207e-05
14 1.35361e-05
15 4.94268e-06
16 1.17082e-06
17 3.72784e-07
18 6.83441e-08
19 1.60658e-08
20 1.25112e-08
21 3.28152e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 2465 )
has inverse
assemble VOL element 96/96
0 0.716568
1 0.309958
2 0.266749
3 0.147727
4 0.0608063
5 0.0423413
6 0.0266953
7 0.0132158
8 0.00737877
9 0.00416582
10 0.00179288
11 0.00093555
12 0.00043922
13 0.000234402
14 0.000159743
15 8.04139e-05
16 4.29773e-05
17 1.99506e-05
18 1.06538e-05
19 5.72396e-06
20 3.1506e-06
21 1.57305e-06
22 8.20582e-07
23 3.3467e-07
24 1.54264e-07
25 8.05309e-08
26 3.78695e-08
27 2.07063e-08
28 8.59129e-09
29 4.25006e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 9633 )
has inverse
assemble VOL element 384/384
0 0.726381
1 0.304301
2 0.248479
3 0.150687
4 0.0580427
5 0.0418748
6 0.0298147
7 0.0143325
8 0.00666651
9 0.00478602
10 0.00215189
11 0.0012531
12 0.00063945
13 0.000341147
14 0.000203596
15 0.000134084
16 7.08705e-05
17 4.4838e-05
18 2.58681e-05
19 1.29912e-05
20 6.98218e-06
21 3.96493e-06
22 2.18234e-06
23 1.30064e-06
24 8.42532e-07
25 4.44741e-07
26 2.18797e-07
27 1.1486e-07
28 6.87551e-08
29 3.33178e-08
30 1.8979e-08
31 1.00739e-08
32 5.55881e-09
p= 7 : ndof,nsteps= [(176, 15), (645, 22), (2465, 30), (9633, 33)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 225 )
has inverse
assemble VOL element 6/6
0 0.671212
1 0.323679
2 0.246663
3 0.116403
4 0.0527519
5 0.0213917
6 0.00468989
7 0.00113197
8 0.000290723
9 9.18845e-05
10 1.4177e-05
11 2.54348e-06
12 6.80372e-07
13 8.58149e-08
14 8.6667e-09
15 6.84491e-10
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 833 )
has inverse
assemble VOL element 24/24
0 0.708262
1 0.332689
2 0.313769
3 0.12293
4 0.0626905
5 0.0372148
6 0.0211258
7 0.0113082
8 0.00379648
9 0.00201614
10 0.000811927
11 0.000471897
12 0.000118854
13 7.69036e-05
14 2.6512e-05
15 1.01165e-05
16 2.38574e-06
17 8.29915e-07
18 1.74298e-07
19 4.79492e-08
20 5.51062e-08
21 9.97264e-09
22 3.30053e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 3201 )
has inverse
assemble VOL element 96/96
0 0.735791
1 0.323656
2 0.292995
3 0.166602
4 0.0715318
5 0.0521726
6 0.0336087
7 0.0169289
8 0.00978968
9 0.0055656
10 0.00250224
11 0.0013784
12 0.000688073
13 0.000407984
14 0.000279994
15 0.000141021
16 7.78284e-05
17 3.69679e-05
18 2.10052e-05
19 1.17865e-05
20 6.46851e-06
21 3.19185e-06
22 1.66343e-06
23 6.81475e-07
24 3.53463e-07
25 1.90953e-07
26 9.47942e-08
27 5.35006e-08
28 2.25515e-08
29 1.30037e-08
30 6.81226e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 12545 )
has inverse
assemble VOL element 384/384
0 0.746024
1 0.318385
2 0.273714
3 0.169974
4 0.0683071
5 0.0519138
6 0.0374135
7 0.018041
8 0.00879457
9 0.0064322
10 0.00295103
11 0.00179056
12 0.000949598
13 0.000552696
14 0.000368821
15 0.000256221
16 0.000131039
17 8.3211e-05
18 4.68846e-05
19 2.40954e-05
20 1.36386e-05
21 8.33145e-06
22 4.6401e-06
23 2.77138e-06
24 1.74989e-06
25 8.98816e-07
26 4.54557e-07
27 2.57715e-07
28 1.60717e-07
29 7.99409e-08
30 4.72749e-08
31 2.59657e-08
32 1.55619e-08
33 9.28695e-09
p= 34 4.77369e-09
8 : ndof,nsteps= [(225, 16), (833, 23), (3201, 31), (12545, 35)]
Generate Mesh from spline geometry
Boundary mesh done, np = 8
CalcLocalH: 8 Points 0 Elements 0 Surface Elements
Meshing domain 1 / 1
Surface meshing done
Edgeswapping, topological
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Edgeswapping, metric
Smoothing
Split improve
Combine improve
Smoothing
Update mesh topology
Update clusters
assemble VOL element 6/6
call wirebasket inverse ( with 3 free dofs out of 280 )
has inverse
assemble VOL element 6/6
0 0.686009
1 0.333687
2 0.265894
3 0.129732
4 0.0614166
5 0.026037
6 0.0057853
7 0.00155793
8 0.00042913
9 0.000142234
10 2.53681e-05
11 4.61896e-06
12 1.20641e-06
13 2.15219e-07
14 2.63988e-08
15 1.50668e-09
Mesh bisection
resetting marked-element information
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 24/24
call wirebasket inverse ( with 12 free dofs out of 1045 )
has inverse
assemble VOL element 24/24
0 0.724075
1 0.343461
2 0.336763
3 0.136439
4 0.0726134
5 0.0438518
6 0.0260637
7 0.0142074
8 0.00492846
9 0.00273629
10 0.00115534
11 0.000720277
12 0.000182983
13 0.000126907
14 4.45018e-05
15 1.72924e-05
16 4.24845e-06
17 1.535e-06
18 3.86066e-07
19 1.05082e-07
20 9.9182e-08
21 2.48525e-08
22 8.32822e-09
23 2.35425e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 96/96
call wirebasket inverse ( with 48 free dofs out of 4033 )
has inverse
assemble VOL element 96/96
0 0.752462
1 0.335216
2 0.315934
3 0.183614
4 0.0815573
5 0.0616582
6 0.0403953
7 0.0206709
8 0.0122958
9 0.00704367
10 0.00330209
11 0.00190959
12 0.00100481
13 0.000636805
14 0.000431337
15 0.000217736
16 0.000123077
17 6.00684e-05
18 3.55894e-05
19 2.0301e-05
20 1.10314e-05
21 5.44034e-06
22 2.87833e-06
23 1.23577e-06
24 7.08725e-07
25 3.93271e-07
26 2.04409e-07
27 1.1803e-07
28 5.15348e-08
29 3.25377e-08
30 1.62239e-08
31 7.84744e-09
32 6.00621e-09
Mesh bisection
Update mesh topology
Update clusters
Bisection done
Update clusters
assemble VOL element 384/384
call wirebasket inverse ( with 192 free dofs out of 15841 )
has inverse
assemble VOL element 384/384
0 0.763057
1 0.330268
2 0.295856
3 0.187372
4 0.0778783
5 0.0615829
6 0.0448236
7 0.0217297
8 0.0110093
9 0.00817423
10 0.0038355
11 0.00242237
12 0.0013387
13 0.000839546
14 0.000597926
15 0.000416279
16 0.000205558
17 0.000130996
18 7.3347e-05
19 3.89638e-05
20 2.29853e-05
21 1.4629e-05
22 8.07927e-06
23 4.83288e-06
24 3.01951e-06
25 1.56002e-06
26 8.28947e-07
27 5.06704e-07
28 3.27138e-07
29 1.68883e-07
30 1.03369e-07
31 5.91226e-08
32 3.74135e-08
33 2.23794e-08
34 1.18499e-08
p= 9 : ndof,nsteps= [(280, 16), (1045, 24), (4033, 33), (15841, 36)]
35 6.64736e-09
The BDDC preconditioner needs more iterations, but the work per iteration is less, so performance is similar to multigrid. This element-wise BDDC preconditioner works well in shared memory parallel as well as in distributed memory mode. See \(\S\)2.1.3 for more about BDDC preconditioner and how to combine it with an algebraic multigrid coarse solver.