Skip to content

Commit

Permalink
Merge pull request #345 from trixi-framework/increase_coverage
Browse files Browse the repository at this point in the history
Increase coverage
  • Loading branch information
ranocha authored Nov 17, 2020
2 parents 3873781 + 159caef commit 2692ef0
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 27 deletions.
2 changes: 1 addition & 1 deletion examples/2d/elixir_advection_amr.jl
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ amr_callback = AMRCallback(semi, amr_controller,

stepsize_callback = StepsizeCallback(cfl=1.6)

callbacks = CallbackSet(summary_callback,
callbacks = CallbackSet(summary_callback,
analysis_callback, alive_callback,
save_restart, save_solution,
amr_callback, stepsize_callback);
Expand Down
21 changes: 15 additions & 6 deletions examples/2d/elixir_advection_timeintegration.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ advectionvelocity = (1.0, 1.0)
# advectionvelocity = (0.2, -0.3)
equations = LinearScalarAdvectionEquation2D(advectionvelocity)

initial_condition = initial_condition_convergence_test
initial_condition = initial_condition_gauss

surface_flux = flux_lax_friedrichs
solver = DGSEM(3, surface_flux)

coordinates_min = (-1, -1)
coordinates_max = ( 1, 1)
coordinates_min = (-5, -5)
coordinates_max = ( 5, 5)
mesh = TreeMesh(coordinates_min, coordinates_max,
initial_refinement_level=4,
n_cells_max=30_000)
Expand All @@ -34,7 +34,7 @@ summary_callback = SummaryCallback()

analysis_interval = 100
analysis_callback = AnalysisCallback(semi, interval=analysis_interval,
extra_analysis_integrals=(entropy, energy_total))
extra_analysis_integrals=(entropy,))

alive_callback = AliveCallback(analysis_interval=analysis_interval)

Expand All @@ -43,12 +43,21 @@ save_solution = SaveSolutionCallback(interval=100,
save_final_solution=true,
solution_variables=:conservative)

amr_controller = ControllerThreeLevel(semi, IndicatorMax(semi, variable=first),
base_level=4,
med_level=5, med_threshold=0.1,
max_level=6, max_threshold=0.6)
amr_callback = AMRCallback(semi, amr_controller,
interval=5,
adapt_initial_condition=true,
adapt_initial_condition_only_refine=true)

stepsize_callback = StepsizeCallback(cfl=1.6)

callbacks = CallbackSet(summary_callback,
analysis_callback, alive_callback,
analysis_callback, alive_callback,
save_solution,
stepsize_callback)
amr_callback, stepsize_callback)


###############################################################################
Expand Down
2 changes: 0 additions & 2 deletions src/auxiliary/mpi.jl
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ const MPI_IS_ROOT = Ref(true)

@inline mpi_isparallel() = MPI_IS_PARALLEL[]

@inline mpi_isserial() = MPI_IS_SERIAL[]

@inline mpi_isroot() = MPI_IS_ROOT[]

@inline mpi_root() = 0
Expand Down
18 changes: 9 additions & 9 deletions src/callbacks_step/analysis.jl
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ function Base.show(io::IO, ::MIME"text/plain", cb::DiscreteCallback{Condition,Af
else
analysis_callback = cb.affect!

setup = Pair{String,Any}[
setup = Pair{String,Any}[
"interval" => analysis_callback.interval,
"analyzer" => analysis_callback.analyzer,
]
Expand Down Expand Up @@ -234,7 +234,7 @@ function (analysis_callback::AnalysisCallback)(integrator)
# Variable names required for L2 error, Linf error, and conservation error
if any(q in analysis_errors for q in
(:l2_error, :linf_error, :conservation_error, :residual))
mpi_isroot() && print(" Variable: ")
mpi_print(" Variable: ")
for v in eachvariable(equations)
mpi_isroot() && @printf(" %-14s", varnames_cons(equations)[v])
end
Expand All @@ -246,7 +246,7 @@ function (analysis_callback::AnalysisCallback)(integrator)

# L2 error
if :l2_error in analysis_errors
mpi_isroot() && print(" L2 error: ")
mpi_print(" L2 error: ")
for v in eachvariable(equations)
mpi_isroot() && @printf(" % 10.8e", l2_error[v])
analysis_callback.save_analysis && mpi_isroot() && @printf(io, " % 10.8e", l2_error[v])
Expand All @@ -256,7 +256,7 @@ function (analysis_callback::AnalysisCallback)(integrator)

# Linf error
if :linf_error in analysis_errors
mpi_isroot() && print(" Linf error: ")
mpi_print(" Linf error: ")
for v in eachvariable(equations)
mpi_isroot() && @printf(" % 10.8e", linf_error[v])
analysis_callback.save_analysis && mpi_isroot() && @printf(io, " % 10.8e", linf_error[v])
Expand All @@ -269,7 +269,7 @@ function (analysis_callback::AnalysisCallback)(integrator)
@unpack initial_state_integrals = analysis_callback
state_integrals = integrate(integrator.u, semi)

mpi_isroot() && print(" |∑U - ∑U₀|: ")
mpi_print(" |∑U - ∑U₀|: ")
for v in eachvariable(equations)
err = abs(state_integrals[v] - initial_state_integrals[v])
mpi_isroot() && @printf(" % 10.8e", err)
Expand All @@ -280,7 +280,7 @@ function (analysis_callback::AnalysisCallback)(integrator)

# Residual (defined here as the vector maximum of the absolute values of the time derivatives)
if :residual in analysis_errors
mpi_isroot() && print(" max(|Uₜ|): ")
mpi_print(" max(|Uₜ|): ")
for v in eachvariable(equations)
# Calculate maximum absolute value of Uₜ
res = maximum(abs, view(du, v, ..))
Expand All @@ -300,15 +300,15 @@ function (analysis_callback::AnalysisCallback)(integrator)
if :l2_error_primitive in analysis_errors || :linf_error_primitive in analysis_errors
l2_error_prim, linf_error_prim = calc_error_norms(cons2prim, u, t, analyzer, semi)

mpi_isroot() && print(" Variable: ")
mpi_print(" Variable: ")
for v in eachvariable(equations)
mpi_isroot() && @printf(" %-14s", varnames_prim(equations)[v])
end
mpi_println()

# L2 error
if :l2_error_primitive in analysis_errors
mpi_isroot() && print(" L2 error prim.: ")
mpi_print(" L2 error prim.: ")
for v in eachvariable(equations)
mpi_isroot() && @printf("%10.8e ", l2_error_prim[v])
analysis_callback.save_analysis && mpi_isroot() && @printf(io, " % 10.8e", l2_error_prim[v])
Expand All @@ -318,7 +318,7 @@ function (analysis_callback::AnalysisCallback)(integrator)

# L∞ error
if :linf_error_primitive in analysis_errors
mpi_isroot() && print(" Linf error pri.:")
mpi_print(" Linf error pri.:")
for v in eachvariable(equations)
mpi_isroot() && @printf("%10.8e ", linf_error_prim[v])
analysis_callback.save_analysis && mpi_isroot() && @printf(io, " % 10.8e", linf_error_prim[v])
Expand Down
4 changes: 4 additions & 0 deletions test/test_examples_1d.jl
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,10 @@ end
@test_nowarn println(solver.mortar)
@test_nowarn display(solver.mortar)

@test_nowarn show(solver.volume_integral); println()
@test_nowarn println(solver.volume_integral)
@test_nowarn display(solver.volume_integral)

@test_nowarn show(semi); println()
@test_nowarn println(semi)
@test_nowarn display(semi)
Expand Down
19 changes: 10 additions & 9 deletions test/test_examples_2d_advection.jl
Original file line number Diff line number Diff line change
Expand Up @@ -48,30 +48,31 @@ EXAMPLES_DIR = joinpath(pathof(Trixi) |> dirname |> dirname, "examples", "2d")

@testset "elixir_advection_timeintegration.jl" begin
@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_advection_timeintegration.jl"),
l2 = [9.144681778837444e-6],
linf = [6.437440532436334e-5])
l2 = [0.005575819174358793],
linf = [0.030180876541832102])
end

@testset "elixir_advection_timeintegration.jl with carpenter_kennedy_erk43" begin
@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_advection_timeintegration.jl"),
l2 = [8.90896259060052e-6],
linf = [6.969419032576418e-5],
l2 = [0.00567625639783006],
linf = [0.02989004624813346],
ode_algorithm=Trixi.CarpenterKennedy2N43(),
cfl = 1.0)
end

@testset "elixir_advection_timeintegration.jl with parsani_ketcheson_deconinck_erk94" begin
@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_advection_timeintegration.jl"),
l2 = [7.932405176905278e-6],
linf = [6.509399993848142e-5],
l2 = [0.005573040696209662],
linf = [0.030176768981231283],
ode_algorithm=Trixi.ParsaniKetchesonDeconinck3Sstar94())
end

@testset "elixir_advection_timeintegration.jl with parsani_ketcheson_deconinck_erk32" begin
@test_trixi_include(joinpath(EXAMPLES_DIR, "elixir_advection_timeintegration.jl"),
l2 = [0.004405427606459577],
linf = [0.012549162970726613],
ode_algorithm=Trixi.ParsaniKetchesonDeconinck3Sstar32())
l2 = [0.005563707516447738],
linf = [0.02964401754871232],
ode_algorithm=Trixi.ParsaniKetchesonDeconinck3Sstar32(),
cfl = 1.0)
end

@testset "elixir_advection_callbacks.jl" begin
Expand Down

0 comments on commit 2692ef0

Please sign in to comment.