Abstract: The Kuznetsov equation is a classical wave model of acoustics that incorpo- rates quadratic gradient nonlinearities. When its strong damping vanishes, it undergoes a singular behavior change, switching from a parabolic-like to a hyperbolic quasilinear evolution. In this work, we establish for the first time the optimal error bounds for its finite element approximation as well as a semi-implicit fully discrete approximation that are robust with respect to the vanishing damping parameter. The core of the new arguments lies in devising energy estimates directly for the error equation where one can more easily exploit the polynomial structure of the nonlinearities and compensate inverse estimates with smallness conditions on the error. Numerical experiments are included to illustrate the theoretical results.
TechnicalRemarks: This program is intended to reproduce the results from the preprint
"Robust fully discrete error bounds for the Kuznetsov equation in the inviscid limit"
by Benjamin Dörich and Vanja Nikoli\'c
The codes generates the lines in Figures 2, 3, 4, and 5
Requirements
The program is tested with
Kubuntu 22.04.5 and Python 3.10.12 and the following version of its modules:
- numpy - 1.21.5
- matplotlib - 3.5.1
- tikzplotlib - 0.10.1
- dolfinx - 0.7.2
- ufl - 2023.2.0
- mpi4py - 3.1.3
Figures
In the folder "codes_kuznetsov" open a console and run the following commands in seperate consoles.
1) The following can be excuted in paralell:
Run "python3 c1_k1_wave_space_time.py"
Run "python3 c1_k2_wave_space_time.py"
Run "python3 c1_k3_wave_space_time.py"
Run "python3 c1_time_k2_wave_space_time.py"
Run "python3 c3_gauss_ref_comp.py"
Run "python3 c4_wave_beta_conv.py"
2) When the c3_gauss_ref_comp.py has terminated, execute in paralell:
Run "python3 c3_gauss_space.py"
Run "python3 c3_gauss_time.py"
3) Finally, to generate the plots execute:
Run "python3 c99_generate_plots.py"
Run "python3 c99_generate_gauss_plots.py"
After running the calculations, the files are stored as tikz and pdf files in the folder "tikz/".