Skip to content

Commit b2ee43e

Browse files
Merge branch 'main' into plot-error-start-from
2 parents cd66420 + ccb42cb commit b2ee43e

5 files changed

+62
-32
lines changed

examples/svaerd_kalisch_1d/svaerd_kalisch_1d_manufactured.jl

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ semi = Semidiscretization(mesh, equations, initial_condition, solver,
3333
tspan = (0.0, 1.0)
3434
ode = semidiscretize(semi, tspan)
3535
summary_callback = SummaryCallback()
36-
analysis_callback = AnalysisCallback(semi; interval = 10,
36+
analysis_callback = AnalysisCallback(semi; interval = 1000,
3737
extra_analysis_errors = (:conservation_error,),
3838
extra_analysis_integrals = (waterheight_total,
3939
velocity, entropy))
4040
callbacks = CallbackSet(analysis_callback, summary_callback)
4141

4242
saveat = range(tspan..., length = 100)
43-
sol = solve(ode, Tsit5(), abstol = 1e-7, reltol = 1e-7,
43+
sol = solve(ode, Tsit5(), abstol = 1e-12, reltol = 1e-12,
4444
save_everystep = false, callback = callbacks, saveat = saveat)

examples/svaerd_kalisch_1d/svaerd_kalisch_1d_well_balanced.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ semi = Semidiscretization(mesh, equations, initial_condition, solver,
5151
tspan = (0.0, 10.0)
5252
ode = semidiscretize(semi, tspan)
5353
summary_callback = SummaryCallback()
54-
analysis_callback = AnalysisCallback(semi; interval = 10,
54+
analysis_callback = AnalysisCallback(semi; interval = 100,
5555
extra_analysis_errors = (:conservation_error,),
5656
extra_analysis_integrals = (waterheight_total,
5757
momentum, entropy,

src/equations/bbm_bbm_variable_bathymetry_1d.jl

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function initial_condition_manufactured(x, t,
6767
mesh)
6868
eta = exp(t) * cospi(2 * (x - 2 * t))
6969
v = exp(t / 2) * sinpi(2 * (x - t / 2))
70-
D = 5.0 + 2.0 * cospi(2 * x)
70+
D = 5 + 2 * cospi(2 * x)
7171
return SVector(eta, v, D)
7272
end
7373

@@ -97,7 +97,7 @@ function source_terms_manufactured(q, x, t, equations::BBMBBMVariableEquations1D
9797
4 * (a4 + 2 * pi * a3) * (16 * sinpi(x)^4 - 26 * sinpi(x)^2 + 7)) * exp(t / 2) /
9898
3 - exp(t / 2) * a4 / 2 - pi * exp(t / 2) * a3 - pi * exp(t) * a5
9999

100-
return SVector(dq1, dq2, 0.0)
100+
return SVector(dq1, dq2, zero(dq1))
101101
end
102102

103103
"""

src/equations/svaerd_kalisch_1d.jl

+51-21
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ function initial_condition_manufactured(x, t,
9494
mesh)
9595
eta = exp(t) * cospi(2 * (x - 2 * t))
9696
v = exp(t / 2) * sinpi(2 * (x - t / 2))
97-
D = 3.0
97+
D = 5 + 2 * cospi(2 * x)
9898
return SVector(eta, v, D)
9999
end
100100

@@ -105,31 +105,61 @@ A smooth manufactured solution in combination with [`initial_condition_manufactu
105105
"""
106106
function source_terms_manufactured(q, x, t, equations::SvaerdKalischEquations1D)
107107
g = equations.gravity
108-
D = q[3, 1] # D is constant, thus simply take the first entry
109108
eta0 = equations.eta0
110109
alpha = equations.alpha
111110
beta = equations.beta
112111
gamma = equations.gamma
113-
a1 = cospi(t - 2 * x)
114-
a2 = sinpi(t - 2 * x)
115-
a3 = cospi(4 * t - 2 * x)
116-
a4 = sinpi(4 * t - 2 * x)
117-
118-
dq1 = 8 * pi^3 * alpha * sqrt(g * (D + eta0)) * (D + eta0)^2 * exp(t) * a4 +
119-
2 * pi * (D + exp(t) * a3) * exp(t / 2) * a1 - 2 * pi * exp(3 * t / 2) * a2 * a4 -
120-
4 * pi * exp(t) * a4 + exp(t) * a3
121-
dq2 = 2 * pi * D * g * exp(t) * a4 - D * exp(t / 2) * a2 / 2 -
122-
pi * D * exp(t / 2) * a1 - 2 * pi * D * exp(t) * a2 * a1 +
123-
8 * pi^3 * alpha * (D + eta0)^2 * sqrt(D * g + eta0 * g) * exp(3 * t / 2) * a1 *
124-
a3 - 2 * pi^2 * beta * (D + eta0)^3 * exp(t / 2) * a2 -
125-
4 * pi^3 * beta * (D + eta0)^3 * exp(t / 2) * a1 +
126-
2 * pi * g * exp(2 * t) * a4 * a3 +
127-
8.0 * pi^3 * gamma * (D + eta0)^3 * sqrt(D * g + eta0 * g) * exp(t / 2) * a1 -
128-
exp(3 * t / 2) * a2 * a3 / 2 - pi * exp(3 * t / 2) * a1 * a3 -
129-
2 * pi * exp(2 * t) * a2 * a1 * a3
130-
return SVector(dq1, dq2, 0.0)
112+
a1 = sinpi(2 * x)
113+
a2 = cospi(2 * x)
114+
a3 = sinpi(-t + 2 * x)
115+
a4 = cospi(-t + 2 * x)
116+
a5 = sinpi(t - 2 * x)
117+
a6 = cospi(t - 2 * x)
118+
a7 = sinpi(-4 * t + 2 * x)
119+
a8 = exp(t / 2)
120+
a9 = exp(t) * cospi(-4 * t + 2 * x)
121+
a10 = eta0 + 2.0 * a2 + 5.0
122+
a11 = sqrt(g * a10)
123+
a12 = 0.2 * eta0 + 0.4 * a2 + 1
124+
a13 = alpha * a11 * a12^2
125+
a14 = sqrt(a13)
126+
a15 = -1.0 * pi * a13 * a1 / a10 - 0.8 * pi * alpha * a11 * a12 * a1
127+
a16 = -20.0 * pi^2 * a14 * a9 - 10.0 * pi * a14 * a15 * exp(t) * a7 / (a13)
128+
a17 = -2 * pi * exp(t) * a7 - 4.0 * pi * a1
129+
a18 = a9 + 2.0 * a2 + 5.0
130+
a19 = a17 * a8 * a3 + 2 * pi * a18 * a8 * a4
131+
a20 = a14 * (40.0 * pi^3 * a14 * exp(t) * a7 - 40.0 * pi^2 * a14 * a15 * a9 / (a13) -
132+
20.0 * pi^2 * a14 * a15 * exp(t) * a1 * a7 / (a13 * a10) -
133+
16.0 * pi^2 * a14 * a15 * exp(t) * a1 * a7 / (alpha * a11 * a12^3) -
134+
10.0 * pi * a14 *
135+
(-2.0 * pi^2 * a13 * a2 / a10 - 1.6 * pi^2 * alpha * a11 * a12 * a2 +
136+
3.2 * pi^2 * alpha * a11 * a12 * a1^2 / a10 + 0.56 * pi^2 * alpha * a11 * a1^2) *
137+
exp(t) * a7 / (a13) -
138+
10.0 * pi * a14 * a15^2 * exp(t) * a7 / (alpha^2 * g * a12^4 * a10))
139+
140+
dq1 = -5.0 * a20 + a19 + 4 * pi * exp(t) * a7 + a9 - 5.0 * a14 * a16 * a15 / (a13)
141+
142+
dq2 = -25.0 * beta * (-2 * pi^2 * a8 * a3 + 4 * pi^3 * a8 * a4) * a12^2 * a10 +
143+
100.0 * pi * beta * (2 * pi^2 * a8 * a3 + pi * a8 * a4) * a12^2 * a1 +
144+
40.0 * pi * beta * (2 * pi^2 * a8 * a3 + pi * a8 * a4) * a12 * a10 * a1 -
145+
2 * pi * g * a18 * exp(t) * a7 +
146+
100.0 * pi^3 * gamma * a11 * a12^2 * a10 * a8 * a4 -
147+
300.0 * pi^3 * gamma * a11 * a12^2 * a8 * a1 * a3 -
148+
80.0 * pi^3 * gamma * a11 * a12 * a10 * a8 * a1 * a3 -
149+
pi^3 * gamma * a11 *
150+
(-50.0 * (3.2 * a12 * a2 - 1.28 * a1^2) * a10 * a6 -
151+
50.0 * (4.0 * a2 / a10 + 0.16 * a1^2 / a12^2) * a12^2 * a10 * a6 -
152+
200.0 * a12^2 * a10 * a6 - 1200.0 * a12^2 * a1 * a5 - 400.0 * a12^2 * a2 * a6 +
153+
800.0 * a12^2 * a1^2 * a6 / a10 - 320.0 * a12 * a10 * a1 * a5 +
154+
960.0 * a12 * a1^2 * a6) * a8 / 2 - 10.0 * pi * a14 * a16 * a8 * a4 -
155+
2.5 * a20 * a8 * a3 + (5.0 * a20 + 5.0 * a14 * a16 * a15 / (a13)) * a8 * a3 / 2 +
156+
(a8 * a3 / 2 - pi * a8 * a4) * a18 + a17 * exp(t) * a3^2 / 2 -
157+
(a19) * a8 * a3 / 2 + 3 * pi * a18 * exp(t) * a3 * a4 -
158+
2.5 * a14 * a16 * a15 * a8 * a3 / (a13)
159+
160+
return SVector(dq1, dq2, zero(dq1))
131161
end
132-
#
162+
133163
function create_cache(mesh,
134164
equations::SvaerdKalischEquations1D,
135165
solver,

test/test_svaerd_kalisch_1d.jl

+6-6
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ EXAMPLES_DIR = joinpath(examples_dir(), "svaerd_kalisch_1d")
1212
@test_trixi_include(joinpath(EXAMPLES_DIR,
1313
"svaerd_kalisch_1d_manufactured.jl"),
1414
tspan=(0.0, 0.1),
15-
l2=[7.467887060263923e-5 2.7796353838948894e-8 0.0],
16-
linf=[0.0001613144395267163 4.344495230235168e-8 0.0],
17-
cons_error=[2.3635607360183997e-16 8.084235123776567e-10 0.0],
18-
change_waterheight=-2.3635607360183997e-16,
19-
change_entropy=0.1342289500320556,
20-
atol=1e-4) # in order to make CI pass
15+
l2=[3.3755102050606554e-6 2.320896961343125e-7 0.0],
16+
linf=[4.908886917176503e-6 3.888671399332466e-7 0.0],
17+
cons_error=[2.42861286636753e-16 1.9224170696150768e-7 0.0],
18+
change_waterheight=-2.42861286636753e-16,
19+
change_entropy=0.1868146724821993,
20+
atol=1e-9) # in order to make CI pass
2121
end
2222

2323
@trixi_testset "svaerd_kalisch_1d_dingemans" begin

0 commit comments

Comments
 (0)