Skip to content

Commit

Permalink
test for quartic nonconvex periodic semidiscretisation
Browse files Browse the repository at this point in the history
  • Loading branch information
ranocha committed Mar 13, 2020
1 parent 6c96757 commit 7661426
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions test/conservation_laws/quartic_nonconvex_test.jl
@@ -0,0 +1,35 @@
using Test, SummationByPartsOperators
using OrdinaryDiffEq, DiffEqCallbacks

for T in (Float32, Float64), split_form in (Val{true}(), Val{false}())
xmin = T(-1)
xmax = T(1)
N = 2^6
u0func = sinpi
tspan = (zero(T), one(T))

# Fourier
let D = fourier_derivative_operator(xmin, xmax, N)
Di = dissipation_operator(TadmorWaagan2012Standard(), D)
semidisc = CubicPeriodicSemidiscretisation(D, Di, split_form)
ode = semidiscretise(u0func, semidisc, tspan)
du = similar(ode.u0)
semidisc(du, ode.u0, nothing, first(tspan))

saving = SavingCallback(semidisc, saveat=range(tspan..., length=10))
sol = solve(ode, SSPRK104(), dt=1/5N, save_everystep=false, callback=saving)
end

# Periodic FD
for acc_order in 2:2:8
D = periodic_derivative_operator(1, acc_order, xmin, xmax, N)
Di = dissipation_operator(D)
semidisc = CubicPeriodicSemidiscretisation(D, Di, split_form)
ode = semidiscretise(u0func, semidisc, tspan)
du = similar(ode.u0)
semidisc(du, ode.u0, nothing, first(tspan))

saving = SavingCallback(semidisc, saveat=range(tspan..., length=10))
sol = solve(ode, SSPRK104(), dt=1/5N, save_everystep=false, callback=saving)
end
end

0 comments on commit 7661426

Please sign in to comment.