Skip to content

Commit 794c3fa

Browse files
committed
fix last method
1 parent 78e5c03 commit 794c3fa

File tree

1 file changed

+12
-21
lines changed

1 file changed

+12
-21
lines changed

lib/OrdinaryDiffEqExtrapolation/src/extrapolation_perform_step.jl

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3240,7 +3240,7 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
32403240
jacobian2W!(W[1], integrator.f.mass_matrix, dt_int, J, true)
32413241
integrator.stats.nw += 1
32423242
@.. broadcast=false u_temp2=uprev
3243-
@.. broadcast=false linsolve_tmps[1]=dt_int * fsalfirst
3243+
@.. broadcast=false linsolve_tmps[1]=fsalfirst
32443244

32453245
linsolve = cache.linsolve[1]
32463246

@@ -3254,8 +3254,7 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
32543254
cache.linsolve[1] = linres.cache
32553255

32563256
integrator.stats.nsolve += 1
3257-
@.. broadcast=false k=-k
3258-
@.. broadcast=false u_temp1=u_temp2 + k # Euler starting step
3257+
@.. broadcast=false u_temp1=u_temp2 - k # Euler starting step
32593258
@.. broadcast=false diff1[1]=u_temp1 - u_temp2
32603259
for j in 2:(j_int + 1)
32613260
f(k, cache.u_temp1, p, t + (j - 1) * dt_int)
@@ -3314,8 +3313,7 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
33143313
jacobian2W!(W[Threads.threadid()], integrator.f.mass_matrix,
33153314
dt_int_temp, J, true)
33163315
@.. broadcast=false u_temp4[Threads.threadid()]=uprev
3317-
@.. broadcast=false linsolve_tmps[Threads.threadid()]=dt_int_temp *
3318-
fsalfirst
3316+
@.. broadcast=false linsolve_tmps[Threads.threadid()]=fsalfirst
33193317

33203318
linsolve = cache.linsolve[Threads.threadid()]
33213319

@@ -3332,16 +3330,15 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
33323330
cache.linsolve[Threads.threadid()] = linres.cache
33333331

33343332
@.. broadcast=false k_tmps[Threads.threadid()]=-k_tmps[Threads.threadid()]
3335-
@.. broadcast=false u_temp3[Threads.threadid()]=u_temp4[Threads.threadid()] +
3333+
@.. broadcast=false u_temp3[Threads.threadid()]=u_temp4[Threads.threadid()] -
33363334
k_tmps[Threads.threadid()] # Euler starting step
33373335
@.. broadcast=false diff1[Threads.threadid()]=u_temp3[Threads.threadid()] -
33383336
u_temp4[Threads.threadid()]
33393337
for j in 2:(j_int_temp + 1)
33403338
f(k_tmps[Threads.threadid()],
33413339
cache.u_temp3[Threads.threadid()],
33423340
p, t + (j - 1) * dt_int_temp)
3343-
@.. broadcast=false linsolve_tmps[Threads.threadid()]=dt_int_temp *
3344-
k_tmps[Threads.threadid()]
3341+
@.. broadcast=false linsolve_tmps[Threads.threadid()]=k_tmps[Threads.threadid()]
33453342

33463343
linsolve = cache.linsolve[Threads.threadid()]
33473344

@@ -3357,8 +3354,7 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
33573354
end
33583355
cache.linsolve[Threads.threadid()] = linres.cache
33593356

3360-
@.. broadcast=false k_tmps[Threads.threadid()]=-k_tmps[Threads.threadid()]
3361-
@.. broadcast=false T[index + 1]=u_temp3[Threads.threadid()] +
3357+
@.. broadcast=false T[index + 1]=u_temp3[Threads.threadid()] -
33623358
k_tmps[Threads.threadid()] # Explicit Midpoint rule
33633359
if (j == j_int_temp + 1)
33643360
@.. broadcast=false T[index + 1]=0.25(T[index + 1] +
@@ -3405,8 +3401,7 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
34053401
jacobian2W!(W[Threads.threadid()], integrator.f.mass_matrix,
34063402
dt_int_temp, J, true)
34073403
@.. broadcast=false u_temp4[Threads.threadid()]=uprev
3408-
@.. broadcast=false linsolve_tmps[Threads.threadid()]=dt_int_temp *
3409-
fsalfirst
3404+
@.. broadcast=false linsolve_tmps[Threads.threadid()]=fsalfirst
34103405

34113406
linsolve = cache.linsolve[Threads.threadid()]
34123407

@@ -3422,17 +3417,15 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
34223417
end
34233418
cache.linsolve[Threads.threadid()] = linres.cache
34243419

3425-
@.. broadcast=false k_tmps[Threads.threadid()]=-k_tmps[Threads.threadid()]
3426-
@.. broadcast=false u_temp3[Threads.threadid()]=u_temp4[Threads.threadid()] +
3420+
@.. broadcast=false u_temp3[Threads.threadid()]=u_temp4[Threads.threadid()] -
34273421
k_tmps[Threads.threadid()] # Euler starting step
34283422
@.. broadcast=false diff1[Threads.threadid()]=u_temp3[Threads.threadid()] -
34293423
u_temp4[Threads.threadid()]
34303424
for j in 2:(j_int_temp + 1)
34313425
f(k_tmps[Threads.threadid()],
34323426
cache.u_temp3[Threads.threadid()],
34333427
p, t + (j - 1) * dt_int_temp)
3434-
@.. broadcast=false linsolve_tmps[Threads.threadid()]=dt_int_temp *
3435-
k_tmps[Threads.threadid()]
3428+
@.. broadcast=false linsolve_tmps[Threads.threadid()]=k_tmps[Threads.threadid()]
34363429

34373430
linsolve = cache.linsolve[Threads.threadid()]
34383431

@@ -3448,8 +3441,7 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
34483441
end
34493442
cache.linsolve[Threads.threadid()] = linres.cache
34503443

3451-
@.. broadcast=false k_tmps[Threads.threadid()]=-k_tmps[Threads.threadid()]
3452-
@.. broadcast=false T[index + 1]=u_temp3[Threads.threadid()] +
3444+
@.. broadcast=false T[index + 1]=u_temp3[Threads.threadid()] -
34533445
k_tmps[Threads.threadid()] # Explicit Midpoint rule
34543446
if (j == j_int_temp + 1)
34553447
@.. broadcast=false T[index + 1]=0.25(T[index + 1] +
@@ -3559,16 +3551,15 @@ function perform_step!(integrator, cache::ImplicitEulerBarycentricExtrapolationC
35593551
for j in 2:(j_int + 1)
35603552
f(k, cache.u_temp1, p, t + (j - 1) * dt_int)
35613553
OrdinaryDiffEqCore.increment_nf!(integrator.stats, 1)
3562-
@.. broadcast=false linsolve_tmps[1]=dt_int * k
3554+
@.. broadcast=false linsolve_tmps[1]=k
35633555

35643556
linsolve = cache.linsolve[1]
35653557
linres = dolinsolve(integrator, linsolve; b = _vec(linsolve_tmps[1]),
35663558
linu = _vec(k))
35673559
cache.linsolve[1] = linres.cache
35683560

35693561
integrator.stats.nsolve += 1
3570-
@.. broadcast=false k=-k
3571-
@.. broadcast=false T[n_curr + 1]=u_temp1 + k # Explicit Midpoint rule
3562+
@.. broadcast=false T[n_curr + 1]=u_temp1 - k # Explicit Midpoint rule
35723563
if (j == j_int + 1)
35733564
@.. broadcast=false T[n_curr + 1]=0.25(T[n_curr + 1] + 2 * u_temp1 +
35743565
u_temp2)

0 commit comments

Comments
 (0)