Changelog
DispersiveShallowWater.jl follows the interpretation of semantic versioning (semver) used in the Julia ecosystem. Notable changes will be documented in this file for human readability.
Changes in the v0.10 lifecycle
Added
- The
HyperbolicSainteMarieEquations1Dwere added for different types of bathymetry (#288). - Add linear dispersion relation for the
HyperbolicSerreGreenNaghdiEquations1D(#321). still_water_surfaceandbathymetrycan now be used asconversionfunctions, e.g., for plotting withplot(semi => sol, conversion = bathymetry)(#338).
Fixed
- If the water height becomes negative, e.g., because the time step is too large, the
SerreGreenNaghdiEquations1Dwith aFourierDerivativeOperatoror aVarCoefDerivativeOperatornow returnNaNs instead of throwing aPosDefException. This allows adaptive time integration methods to reject the step, as for the other solvers (#334). - The
AnalysisCallbacknow ignores unsupported analysis errors (with a warning) instead of reporting them as zero inerrors. The errors returned byerrorsare now stored according to their names, which fixes wrong labels or aBoundsErrorifanalysis_errorsis passed in a different order or without the L2 and L∞ errors (#329). - Invalid arguments to
Mesh1D,Solver,Semidiscretization,convergence_test, and the plot recipe of theAnalysisCallbacknow throw anArgumentErrorwith an explanation instead of anAssertionError. ASemidiscretizationof theHyperbolicSainteMarieEquations1Dwith reflecting boundary conditions now throws anArgumentErrorinstead of aMethodError(#330). Mesh1Daccepts any integer type for the number of nodes (#330).convergence_testno longer sorts the passed vector of resolutions in place and writes all its output toio(#330).- Plotting a solution over time at a fixed
x(e.g.,plot(semi => sol, x)) now shows all variables. Before, variables after the bathymetry were dropped, e.g.,Hfor theHyperbolicSerreGreenNaghdiEquations1Dwithconversion = prim2prim(#327). initial_condition_solitonfor theHyperbolicSerreGreenNaghdiEquations1Dnow respects a nonzero still-water surfaceeta0. Before, the water height was off byeta0(#326).- The keyword constructors of all equations now promote their parameters to a common type, so that, e.g.,
SerreGreenNaghdiEquations1D(gravity = 1)orHyperbolicSerreGreenNaghdiEquations1D(gravity = 9.81, lambda = 500)no longer throw aMethodError(#325). source_terms_manufactured_reflectingfor theSerreGreenNaghdiEquations1Dwithbathymetry_mild_slopeandbathymetry_variablenow uses the gravitational acceleration of the equations instead of a hard-coded value of 9.81 (#324).
Changes when updating to v0.10 from v0.9.x
Changed
- There are no default boundary conditions anymore in
Semidiscretization. Users now have to explicitly provide boundary conditions via theboundary_conditionskeyword argument, which were periodic by default before (#286). convergence_testnow returns the complete convergence orders. To obtain the mean convergence rates, useDispersiveShallowWater.calc_mean_convergenceon the convergence orders (#285).
Changes when updating to v0.9 from v0.8.x
Changed
- The argument
plot_initialin the plotting functions now always plots the initial condition at timet = first(tspan). To plot the analytical solution at the current time step, useplot_analyticalinstead (#277). - Changed the
default_example()from a BBM-BBM setup to a physically more relevant Serre-Green-Naghdi setup (#276).
Changes in the v0.8 lifecycle
Added
- Add function
data_dingemansto load experimental data for the Dingemans experiment and expand the documentation about the experiment (#238).
Changes when updating to v0.8 from v0.7.x
Changed
- The initial condition
initial_condition_dingemansuses equation-specific offsets to account for phase shifts compared to the experimental data and a slightly different range for the initial wave train (#237).
Changes in the v0.7 lifecycle
Added
- Improved documentation (#233).
- Add linear dispersion relation for the
KdVEquation1D(#230). - Support reflecting boundary conditions for
HyperbolicSerreGreenNaghdiEquations1D(#228). - Add conversion functions
prim2nondimandnondim2primfor non-dimensional variables forKdVEquation1D(#217). - Support reflecting boundary conditions for
SerreGreenNaghdiEquations1D(flat bathymetry: #205, general: #223). - Add
KdVEquation1D(#198).
Changes when updating to v0.7 from v0.6.x
Changed
- The default parameters of the
SvaerdKalischEquations1Dchanged fromalpha = 0.0, beta = 0.2308939393939394, gamma = 0.04034343434343434toalpha = 0.0, beta = 1/3, gamma = 0.0(#196).
Changes in the v0.6 lifecycle
Added
- Support source terms for
SerreGreenNaghdiEquations1D(#180, #186). - Add initial support for ForwardDiff.jl for
HyperbolicSerreGreenNaghdiEquations1DandDispersiveShallowWater.jacobian(#185).
Changes when updating to v0.6 from v0.5.x
Changed
- The keyword argument and function
gravity_constanthave been changed togravity(#174).
Changes in the v0.5 lifecycle
Added
- Add
LinearDispersionRelationand documentation about dispersion (#168). - Reflecting boundary conditions are added for the Svärd-Kalisch equations with
alpha = gamma = 0(#166). - Fix a bug in the upwind discretization of the
SvaerdKalischEquations1D. - Use OrdinaryDiffEqTsit5.jl and OrdinaryDiffEqLowStorageRK.jl instead of OrdinaryDiffEq.jl in all examples to reduce latency (#163).
- Allow Fourier and periodic rational derivative operators for
BBMBBMEquations1DandSvaerdKalischEquations1D(#154). - Add
BBMEquation1D(#150).
Changes when updating to v0.5 from v0.4.x
Changed
- The
BBMBBMVariableEquations1Dwere removed andBBMBBMEquations1Dnow supports abathymetry_typeto choose between a flat and a variable bathymetry (#147). - The default of
bathymetry_typefor theSerreGreenNaghdiEquations1Dchanged frombathymetry_flattobathymetry_variable(#147). bathymetry_typeis now a keyword argument for all equations instead of a positional argument (#147).- The
initial_condition_dingemansfor theSerreGreenNaghdiEquations1DandHyperbolicSerreGreenNaghdiEquations1Dwas changed a bit to be more consistent with the other equations (#147).
Changes in the v0.4 lifecycle
Added
- The
SerreGreenNaghdiEquations1Dwere added for different types of bathymetry (#127, #135). - The
HyperbolicSerreGreenNaghdiEquations1Dwere added for different types of bathymetry (#139). - The abstract interface
AbstractShallowWaterEquationswas added to unify several systems such as theSerreGreenNaghdiEquations1D, theBBMBBMEquations1D, and theSvaerdKalischEquations1D(#127). - A new conversion function
prim2physwas introduced, defaulting toprim2prim.prim2physis the default conversion function for plotting.
Changes when updating to v0.4 from v0.3.x
Changed
- Use
ArrayPartitionfrom RecursiveArrayTools.jl to store the solution of theODEProblem(#118).
Changes in the v0.3 lifecycle
Added
- Add possibility to pass vector of
Nstoconvergence_test(#113). - Performance improvements by using factorized matrices for linear systems solves (#108, #112, #114).
- Reflecting boundary conditions are added for the BBM-BBM equations (#104, #109).
- Fix for the
BBMBBMVariableEquations1D, where the still water surface was neglected leading to a bug in the Dingemans setup (#91).
Changes when updating to v0.3 from v0.2.x
Changed
- Add keyword argument
start_fromwhen plottingAnalysisCallback(#87). - Manufactured solution for Svärd-Kalisch equations uses a variable bathymetry (#84).
Changes in the v0.2 lifecycle
Added
- Add
SummaryCallback(#75).