Skip to content

Commit

Permalink
RK4 LTE broadcast
Browse files Browse the repository at this point in the history
  • Loading branch information
YingboMa committed Oct 11, 2019
1 parent 8b5af68 commit f567f53
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions src/perform_step/fixed_timestep_perform_step.jl
Original file line number Diff line number Diff line change
Expand Up @@ -325,20 +325,14 @@ end
k₅ = k; _p = k₂; pprime = k₃ # Alias some cache arrays
σ₁ = 1/2 - sqrt(3)/6
σ₂ = 1/2 + sqrt(3)/6
@tight_loop_macros for i in eachindex(u)
@inbounds tmp[i] = (1-σ₁)*uprev[i]+σ₁*u[i]+σ₁*(σ₁-1)*((1-2σ₁)*(u[i]-uprev[i])+(σ₁-1)*dt*k₁[i] + σ₁*dt*k₅[i])
@inbounds pprime[i] = k₁[i] + σ₁*(-4*dt*k₁[i] - 2*dt*k₅[i] - 6*uprev[i] +
σ₁*(3*dt*k₁[i] + 3*dt*k₅[i] + 6*uprev[i] - 6*u[i]) + 6*u[i])/dt
end
@.. tmp = (1-σ₁)*uprev+σ₁*u+σ₁*(σ₁-1)*((1-2σ₁)*(u-uprev)+(σ₁-1)*dt*k₁ + σ₁*dt*k₅)
@.. pprime = k₁ + σ₁*(-4*dt*k₁ - 2*dt*k₅ - 6*uprev + σ₁*(3*dt*k₁ + 3*dt*k₅ + 6*uprev - 6*u) + 6*u)/dt
f(_p,tmp,p,t+σ₁*dt)
calculate_residuals!(atmp, dt*(_p - pprime), uprev, u, integrator.opts.abstol,
integrator.opts.reltol,integrator.opts.internalnorm,t)
e1 = integrator.opts.internalnorm(atmp,t)
@tight_loop_macros for i in eachindex(u)
@inbounds tmp[i] = (1-σ₂)*uprev[i]+σ₂*u[i]+σ₂*(σ₂-1)*((1-2σ₂)*(u[i]-uprev[i])+(σ₂-1)*dt*k₁[i] + σ₂*dt*k₅[i])
@inbounds pprime[i] = k₁[i] + σ₂*(-4*dt*k₁[i] - 2*dt*k₅[i] - 6*uprev[i] +
σ₂*(3*dt*k₁[i] + 3*dt*k₅[i] + 6*uprev[i] - 6*u[i]) + 6*u[i])/dt
end
@.. tmp = (1-σ₂)*uprev+σ₂*u+σ₂*(σ₂-1)*((1-2σ₂)*(u-uprev)+(σ₂-1)*dt*k₁ + σ₂*dt*k₅)
@.. pprime = k₁ + σ₂*(-4*dt*k₁ - 2*dt*k₅ - 6*uprev + σ₂*(3*dt*k₁ + 3*dt*k₅ + 6*uprev - 6*u) + 6*u)/dt
f(_p,tmp,p,t+σ₂*dt)
calculate_residuals!(atmp, dt*(_p - pprime), uprev, u, integrator.opts.abstol,
integrator.opts.reltol,integrator.opts.internalnorm,t)
Expand Down

0 comments on commit f567f53

Please sign in to comment.