Skip to content

Commit 67823fa

Browse files
committed
update
1 parent a52ba2e commit 67823fa

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

devito/types/multistage.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,6 @@ def source_inclusion(self, u, k, src_index, src_deriv, e_p, t, dt, mu, n_eq):
339339

340340
return src_lhs, e_p
341341

342-
343342
def _evaluate(self, **kwargs):
344343
"""
345344
Generate the stage-wise equations for a Runge-Kutta time integration method.
@@ -356,7 +355,7 @@ def _evaluate(self, **kwargs):
356355
- 1 final update equation of the form `u.forward = u + dt * sum(b_i * k_i)`
357356
"""
358357

359-
n_eq=len(self.eq)
358+
n_eq = len(self.eq)
360359
u = [i.function for i in self.lhs]
361360
t = u[0].grid.time_dim
362361
dt = t.spacing
@@ -386,19 +385,26 @@ def _evaluate(self, **kwargs):
386385

387386
# Build each stage
388387
for i in range(1, self.deg-1):
389-
[stage_eqs.append(Eq(k_old[j], k[j])) for j in range(n_eq)]
390-
src_lhs, e_p = self.source_inclusion(u, k_old, src_index, src_deriv, e_p, t, dt, mu, n_eq)
391-
[stage_eqs.append(Eq(k[j], k_old[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
388+
# [stage_eqs.append(Eq(k_old[j], k[j])) for j in range(n_eq)]
389+
# src_lhs, e_p = self.source_inclusion(u, k_old, src_index, src_deriv, e_p, t, dt, mu, n_eq)
390+
# [stage_eqs.append(Eq(k[j], k_old[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
391+
# [stage_eqs.append(Eq(u[j].forward, u[j].forward+k[j]*alpha[i])) for j in range(n_eq)]
392+
src_lhs, e_p = self.source_inclusion(u, k, src_index, src_deriv, e_p, t, dt, mu, n_eq)
393+
[stage_eqs.append(Eq(k[j], k[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
392394
[stage_eqs.append(Eq(u[j].forward, u[j].forward+k[j]*alpha[i])) for j in range(n_eq)]
393395

394396
# Final Runge-Kutta updates
395-
[stage_eqs.append(Eq(k_old[j], k[j])) for j in range(n_eq)]
396-
src_lhs, e_p = self.source_inclusion(u, k_old, src_index, src_deriv, e_p, t, dt, mu, n_eq)
397-
[stage_eqs.append(Eq(k[j], k_old[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
398-
399-
[stage_eqs.append(Eq(k_old[j], k[j])) for j in range(n_eq)]
400-
src_lhs, _ = self.source_inclusion(u, k_old, src_index, src_deriv, e_p, t, dt, mu, n_eq)
401-
[stage_eqs.append(Eq(k[j], k_old[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
397+
# [stage_eqs.append(Eq(k_old[j], k[j])) for j in range(n_eq)]
398+
# src_lhs, e_p = self.source_inclusion(u, k_old, src_index, src_deriv, e_p, t, dt, mu, n_eq)
399+
# [stage_eqs.append(Eq(k[j], k_old[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
400+
src_lhs, e_p = self.source_inclusion(u, k, src_index, src_deriv, e_p, t, dt, mu, n_eq)
401+
[stage_eqs.append(Eq(k[j], k[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
402+
403+
# [stage_eqs.append(Eq(k_old[j], k[j])) for j in range(n_eq)]
404+
# src_lhs, _ = self.source_inclusion(u, k_old, src_index, src_deriv, e_p, t, dt, mu, n_eq)
405+
# [stage_eqs.append(Eq(k[j], k_old[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
406+
src_lhs, _ = self.source_inclusion(u, k, src_index, src_deriv, e_p, t, dt, mu, n_eq)
407+
[stage_eqs.append(Eq(k[j], k[j]+mu*dt*src_lhs[j])) for j in range(n_eq)]
402408

403409
# Compute final approximation
404410
[stage_eqs.append(Eq(u[j].forward, u[j].forward+k[j]*alpha[self.deg-1])) for j in range(n_eq)]

tests/test_multistage.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def test_multistage_coupled_op_computing_exp(time_int='HORK_EXP'):
9191
src_spatial.data[100, 100] = 1
9292
import sympy as sym
9393
src_temporal = sym.exp(- 100 * (t - 0.01)**2)
94-
# import matplotlib.pyplot as plt
94+
import matplotlib.pyplot as plt
9595
# import numpy as np
9696
# t=np.linspace(0,2000,1000)
9797
# plt.plot(t,np.exp(1 - 2 * (t - 1)**2))
@@ -107,13 +107,13 @@ def test_multistage_coupled_op_computing_exp(time_int='HORK_EXP'):
107107
[src_spatial, src_temporal, U_multi_stage[1]]]
108108

109109
# Time integration scheme
110-
pdes = resolve_method(time_int)(U_multi_stage, system_eqs_rhs, source=src, degree=4)
110+
pdes = resolve_method(time_int)(U_multi_stage, system_eqs_rhs, source=src, degree=3)
111111
op = Operator(pdes, subs=grid.spacing_map)
112112
op(dt=0.001, time=2000)
113113

114-
# plt.imshow(U_multi_stage[0].data[0,:])
115-
# plt.colorbar()
116-
# plt.show()
114+
plt.imshow(U_multi_stage[0].data[0,:])
115+
plt.colorbar()
116+
plt.show()
117117

118118

119119
def test_multistage_object(time_int='RK44'):

0 commit comments

Comments
 (0)