Skip to content

Commit 02dc5d4

Browse files
author
Thomas Baumann
committed
Adapted controller in project
1 parent 0de2f8d commit 02dc5d4

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

pySDC/projects/matrixPFASST/controller_matrix_nonMPI.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ def run(self, u0, t0, Tend):
133133
# some initializations and reset of statistics
134134
uend = None
135135
num_procs = len(self.MS)
136-
self.hooks.reset_stats()
136+
for hook in self.hooks:
137+
hook.reset_stats()
137138

138139
assert (
139140
(Tend - t0) / self.dt
@@ -152,7 +153,8 @@ def run(self, u0, t0, Tend):
152153

153154
# call pre-run hook
154155
for S in self.MS:
155-
self.hooks.pre_run(step=S, level_number=0)
156+
for hook in self.hooks:
157+
hook.pre_run(step=S, level_number=0)
156158

157159
nblocks = int((Tend - t0) / self.dt / num_procs)
158160

@@ -169,9 +171,10 @@ def run(self, u0, t0, Tend):
169171

170172
# call post-run hook
171173
for S in self.MS:
172-
self.hooks.post_run(step=S, level_number=0)
174+
for hook in self.hooks:
175+
hook.post_run(step=S, level_number=0)
173176

174-
return uend, self.hooks.return_stats()
177+
return uend, self.return_stats()
175178

176179
def build_propagation_matrix(self, niter):
177180
"""
@@ -302,22 +305,25 @@ def pfasst(self, MS):
302305

303306
MS = self.update_data(MS=MS, u=self.u, res=self.res, niter=niter, level=0, stage='PRE_STEP')
304307
for S in MS:
305-
self.hooks.pre_step(step=S, level_number=0)
308+
for hook in self.hooks:
309+
hook.pre_step(step=S, level_number=0)
306310

307311
while np.linalg.norm(self.res, np.inf) > self.tol and niter < self.maxiter:
308312

309313
niter += 1
310314

311315
MS = self.update_data(MS=MS, u=self.u, res=self.res, niter=niter, level=0, stage='PRE_ITERATION')
312316
for S in MS:
313-
self.hooks.pre_iteration(step=S, level_number=0)
317+
for hook in self.hooks:
318+
hook.pre_iteration(step=S, level_number=0)
314319

315320
if self.nlevels > 1:
316321
for _ in range(MS[0].levels[1].params.nsweeps):
317322

318323
MS = self.update_data(MS=MS, u=self.u, res=self.res, niter=niter, level=1, stage='PRE_COARSE_SWEEP')
319324
for S in MS:
320-
self.hooks.pre_sweep(step=S, level_number=1)
325+
for hook in self.hooks:
326+
hook.pre_sweep(step=S, level_number=1)
321327

322328
self.u += self.Tcf.dot(np.linalg.solve(self.Pc, self.Tfc.dot(self.res)))
323329
self.res = self.u0 - self.C.dot(self.u)
@@ -326,27 +332,32 @@ def pfasst(self, MS):
326332
MS=MS, u=self.u, res=self.res, niter=niter, level=1, stage='POST_COARSE_SWEEP'
327333
)
328334
for S in MS:
329-
self.hooks.post_sweep(step=S, level_number=1)
335+
for hook in self.hooks:
336+
hook.post_sweep(step=S, level_number=1)
330337

331338
for _ in range(MS[0].levels[0].params.nsweeps):
332339

333340
MS = self.update_data(MS=MS, u=self.u, res=self.res, niter=niter, level=0, stage='PRE_FINE_SWEEP')
334341
for S in MS:
335-
self.hooks.pre_sweep(step=S, level_number=0)
342+
for hook in self.hooks:
343+
hook.pre_sweep(step=S, level_number=0)
336344

337345
self.u += np.linalg.solve(self.P, self.res)
338346
self.res = self.u0 - self.C.dot(self.u)
339347

340348
MS = self.update_data(MS=MS, u=self.u, res=self.res, niter=niter, level=0, stage='POST_FINE_SWEEP')
341349
for S in MS:
342-
self.hooks.post_sweep(step=S, level_number=0)
350+
for hook in self.hooks:
351+
hook.post_sweep(step=S, level_number=0)
343352

344353
MS = self.update_data(MS=MS, u=self.u, res=self.res, niter=niter, level=0, stage='POST_ITERATION')
345354
for S in MS:
346-
self.hooks.post_iteration(step=S, level_number=0)
355+
for hook in self.hooks:
356+
hook.post_iteration(step=S, level_number=0)
347357

348358
MS = self.update_data(MS=MS, u=self.u, res=self.res, niter=niter, level=0, stage='POST_STEP')
349359
for S in MS:
350-
self.hooks.post_step(step=S, level_number=0)
360+
for hook in self.hooks:
361+
hook.post_step(step=S, level_number=0)
351362

352363
return MS

0 commit comments

Comments
 (0)