Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ for human readability.

#### Changed

- There are no default boundary conditions anymore in `Semidiscretization`.
Users now have to explicitly provide boundary conditions via the `boundary_conditions` keyword argument, which were periodic by default before ([#286]).
- `convergence_test` now returns the complete convergence orders. To obtain the mean convergence rates, use `DispersiveShallowWater.calc_mean_convergence` on the convergence orders ([#285]).

## Changes when updating to v0.9 from v0.8.x
Expand Down
4 changes: 2 additions & 2 deletions src/semidiscretization.jl
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ end
"""
Semidiscretization(mesh, equations, initial_condition, solver;
source_terms=nothing,
boundary_conditions=boundary_condition_periodic,
boundary_conditions,
RealT=real(solver),
uEltype=RealT,
initial_cache = (tmp1 = Array{RealT}(undef, nnodes(mesh)),
Expand All @@ -53,7 +53,7 @@ Construct a semidiscretization of a PDE.
"""
function Semidiscretization(mesh, equations, initial_condition, solver;
source_terms = nothing,
boundary_conditions = boundary_condition_periodic,
boundary_conditions,
# `RealT` is used as real type for node locations etc.
# while `uEltype` is used as element type of solutions etc.
RealT = real(solver), uEltype = RealT,
Expand Down
12 changes: 7 additions & 5 deletions test/test_unit.jl
Original file line number Diff line number Diff line change
Expand Up @@ -88,31 +88,33 @@ end
initial_condition = initial_condition_dingemans
mesh = Mesh1D(-138, 46, 10)
solver = Solver(mesh, 4)
semi_flat = Semidiscretization(mesh, equations_flat, initial_condition, solver)
semi_flat = Semidiscretization(mesh, equations_flat, initial_condition, solver;
boundary_conditions = boundary_condition)
@test_throws ArgumentError semidiscretize(semi_flat, (0.0, 1.0))
end

@testitem "Solver consistency" setup=[Setup, AdditionalImports] begin
mesh = Mesh1D(-1.0, 1.0, 10)
initial_condition = initial_condition_convergence_test
boundary_conditions = boundary_condition_periodic
D1 = periodic_derivative_operator(1, 4, mesh.xmin, mesh.xmax, mesh.N)
solver = Solver(D1)

equations = KdVEquation1D(gravity = 1.0)
@test_throws ArgumentError Semidiscretization(mesh, equations, initial_condition,
solver)
solver; boundary_conditions = boundary_conditions)

equations = BBMEquation1D(gravity = 1.0)
@test_throws ArgumentError Semidiscretization(mesh, equations, initial_condition,
solver)
solver; boundary_conditions = boundary_conditions)

equations = BBMBBMEquations1D(gravity = 1.0)
@test_throws ArgumentError Semidiscretization(mesh, equations, initial_condition,
solver)
solver; boundary_conditions = boundary_conditions)

equations = SvaerdKalischEquations1D(gravity = 1.0)
@test_throws ArgumentError Semidiscretization(mesh, equations, initial_condition,
solver)
solver; boundary_conditions = boundary_conditions)
end

@testitem "Boundary conditions" setup=[Setup] begin
Expand Down
Loading