How to improve stabilities of numerical solutions of PDEs

In summary, if you are near a region of rapid change, you might need to use a different method than if you are far away from the change.
  • #1
Kurret
143
0
This is a quite general question, but I am working with a system of partial differential equations in two variables. There is one time direction t and one spatial direction z and the numerical method is formulated by stepping forward in time. The problem is that I obtain instabilities, either at the endpoints or sometimes even in the interior, depending on which method I am using.

I have tried to approximate the spatial derivatives with finite differences of different orders, Runge Kutta, Euler backwards/forwards, pseudospectral methods based on Chebychev polynomials, I have tried to put the different functions on different grids, different methods to step forward in time, countless of ways to rewrite the equations or the order derivatives are evaluated. Even though there are some improvements, there is always some instability left and I am becoming desperate.

Is there any expert out there who could just list all possible ideas one can try to make time evolution of PDEs stable? I don't think there is any point in writing out the equations here since they are quite long and complex and would just intimidate, BUT I can say that they are non-linear, involve both first and second order derivatives in both z and t (but they can be formulated in the standard form ∂_t f=… by suitable redefinitions) and the system includes five different functions that will constitute the solution.
 
Physics news on Phys.org
  • #2
Are you using a tool like Maple/Mathematica/Mathcad/MATLAB or are you programming this yourself or using other libraries?
 
  • #3
If they're first order in time, backward euler usually does the trick. There are automatic integrators out there also that use the C. W. Gear method, or modifications thereof, based on higher order versions of backward euler. That would be my first choice.

Chet
 
  • #4
Kurret said:
Is there any expert out there who could just list all possible ideas one can try to make time evolution of PDEs stable?

Um... Do you really want to ask it that way? "All possible ideas" would include a lot of ideas, only very few likely to be in any way useful.

The first thing you should try to do is check analytically if the system is in fact subject to wild variation. What do I mean? Does the system involve large changes in outcome from minute changes in input? Are there regions where minor variations will have a strong tendency to grow? Are the various derivatives rapidly changing in the regime you are working in?

Examples of such things: If you were near the onset of turbulence in a fluids problem, you need to use very different methods from the case when you are very far from turbulence. If you are near the point where a material is about to fail due to cracking, likewise. If you are near a change of state such as boiling, likewise. If you had elastic materials with widely different restorative forces, likewise. Or, in my little field, if you are close to criticality in a nuclear reactor, you have to use some special methods. Any time a material property changes rapidly or abruptly with changes in inputs, you need special methods.

Without knowing those kinds of details, it would be just whistling in the dark to guess what methods to use. Generically, one class of such methods deals with "stiffness." Another with "cliff edges." Another with changes of state. Another with explosions. And so on. The generic feature is, they do something different near an abrupt or large change.
 

What are the main causes of instability in numerical solutions of PDEs?

The main causes of instability in numerical solutions of PDEs are discretization errors, time step size, and boundary conditions. Discretization errors occur when approximating the continuous PDE with a finite number of grid points, leading to round-off errors and truncation errors. Time step size refers to the size of the time intervals used in the time-stepping method, and choosing an inappropriate time step can result in numerical instability. Finally, boundary conditions play a critical role in the stability of numerical solutions, as they affect how the PDE is solved at the boundaries of the domain.

How can I choose an appropriate time step for solving PDEs numerically?

The appropriate time step for solving PDEs numerically depends on the stability criteria of the chosen time-stepping method. For example, explicit methods have a stability condition that restricts the time step size, while implicit methods are unconditionally stable and do not have such restrictions. In general, a smaller time step will result in a more accurate solution, but it will also increase the computational cost. Therefore, a balance must be struck between accuracy and efficiency when choosing an appropriate time step.

What are some techniques for improving the stability of numerical solutions of PDEs?

There are several techniques for improving the stability of numerical solutions of PDEs, including using higher-order numerical schemes, adaptive time stepping, and artificial dissipation. Higher-order schemes reduce the discretization errors and can lead to more stable solutions. Adaptive time stepping adjusts the time step size based on the local error, ensuring stability while minimizing computational costs. Artificial dissipation adds an extra term to the PDE, which dissipates energy and can help stabilize the solution.

Can I improve the stability of numerical solutions of PDEs by changing the boundary conditions?

Yes, it is possible to improve the stability of numerical solutions of PDEs by changing the boundary conditions. In some cases, choosing appropriate boundary conditions can make a significant difference in the stability of the solution. For example, using outflow boundary conditions instead of reflecting boundary conditions can improve the stability of hyperbolic PDEs.

How can I assess the stability of a numerical solution of a PDE?

The stability of a numerical solution of a PDE can be assessed by analyzing the amplification factor or the von Neumann stability analysis. The amplification factor is the ratio of the magnitude of the numerical solution at one time step to the previous time step and can be used to determine if the solution is growing or decaying. The von Neumann stability analysis involves analyzing the stability properties of the numerical scheme by considering the Fourier modes of the solution. Both methods can help determine the stability of a numerical solution of a PDE and identify potential sources of instability.

Similar threads

Replies
5
Views
618
  • Differential Equations
Replies
5
Views
2K
  • Differential Equations
Replies
2
Views
2K
Replies
4
Views
772
  • Differential Equations
Replies
1
Views
3K
Replies
14
Views
2K
  • Differential Equations
Replies
1
Views
1K
Replies
3
Views
2K
Replies
1
Views
2K
  • Differential Equations
Replies
12
Views
5K
Back
Top