1+1 Radial wave equation- numerical. BC near origin

Click For Summary
SUMMARY

The discussion focuses on solving the 1+1 radial wave equation using finite difference methods, specifically addressing issues with boundary conditions near the origin. The user employs a five-point stencil for spatial derivatives and an advection boundary condition to minimize reflections. Despite implementing these techniques, the numerical solution fails to match the expected analytic solution, particularly in maintaining the correct sign of the solution. The user suspects that the boundary conditions are the source of the inaccuracies, leading to a convergence order of only first order instead of the expected higher accuracy.

PREREQUISITES
  • Understanding of finite difference methods for solving partial differential equations
  • Familiarity with the method of lines for time integration
  • Knowledge of boundary conditions, particularly advection boundary conditions
  • Experience with numerical accuracy and convergence analysis
NEXT STEPS
  • Research the implementation of absorbing boundary conditions in wave equations
  • Explore the use of higher-order finite difference stencils for improved accuracy
  • Study the method of lines in detail, focusing on its application to wave equations
  • Investigate techniques for ensuring stability and convergence in numerical simulations
USEFUL FOR

Researchers, graduate students, and practitioners in computational physics and applied mathematics who are working on numerical solutions to wave equations and require insights into boundary condition implementation and accuracy improvements.

irycio
Messages
96
Reaction score
1

Homework Statement


Well, I'm not sure if this is a correct subforum to post my problem, but to me it does seem to me as an academic problem. One I can not solve, apparently.

Well, anyway. I'm solving the 1+1 radial wave equation using finite difference. I shifted my grid, so that the origin (r=0) is not one of it's points. I also applied advection boundary condition to prevent reflections.

Now, the problem I have left are the boundary conditions near r=0. Since I'm using five point stencil to approximate spatial derivative, I need to apply them to 2 first points.
I assumed, that since my initial conditions (f(r,t=0)=10.0*exp(-100* r^2)) are symmetric (actually I'm trying to receive an analytic solution f(r,t)=(r-t)/r * 10.0*exp(-100* (r-t)^2), so the initial time derivative is appropriate), so should be the solution (otherwise it would depend on the angles, and I don't want it to).

Hence whenever my five point stencil calls for a non-existent point, I replace it with it's mirror, that lies within my grid.

And so unfortunately that doesn't work as expected. All in all, the "real" solution can be <0 for a given r and t, whereas my solution remains >0 (well, actually at some points the value is equal to, say -0,008, but then around it there are points with value of, say, 0,005, so that it's I believe just some random noise).


Since I checked my code couple of times, checked the initial conditions, I believe the problem lies within the BCs. And so, any help will be much appreciated!
 
Technology news on Phys.org
Wrong order of convergence while using method of lines

Hi!
Still fighting with radial wave equation :/. I've split it into 2 first order equations in time and am using method of lines to integrate it with RK4 as my time integrator, which is O(h^4). My spatial derivatives are are approximated using 3 point stencil (2nd derivative, O(h^2)) and 2 point centered scheme (1st derivative, present in radial wave eq., O(h^2) as well)). Now, I was comparing my results with analytical solution to check the convergence and eventually it seems that my code is only of a first order accuracy :( - half the step size, double the accuracy. Now, the only place I'm using the method of firs order is the absorbing boundary condition at one of the ends. I used the advection equation there and to avoid complications I used the simplest scheme to approximate a spatial derivative there. However, I start with a gaussian wave packet far from that boundary, so at least at the beginning it shouldn't make any difference.

The question hence is - what can I be doing wrong??
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 4 ·
Replies
4
Views
6K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
900
  • · Replies 5 ·
Replies
5
Views
3K
Replies
4
Views
2K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K