Hyperbolic Equation Instability

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
5 replies · 4K views
Tempa
Messages
6
Reaction score
0
Hello,

I'm trying to calculate the following equation which is the derivative in 'x' of a distribution function:
d(dxF)/dt = d(Efield.(dvxF))/dx

The problem comes because the right hand of the equation is solved by using central difference, but there is a zone where there is a discontinuity in the electric field. The electric field is not exactly the same on each point (but more or less the same order of magnitude) but there is a zone where I have in increment so the difference between two adjacent grid is so big that creates an instability. Is there any way to smooth the numerical scheme?

= (E[i+1][j]. dvxF[i+1][j]-E[i-1][j].dvxF[i-1][j])/dx

This is more or less how it goes. Imagine there is a point where the difference between E[i+1][j] and E[i-1][j] is so big that, creating a big gradient in the dxF value.

I've been studying the MUSCL and TVD schemes but i don't quite understand well the procedure
 
Physics news on Phys.org
Yes because I'm simulating an MHD accelerator, is just a specific problem I have. But if its not the correct place I can post it in another forum. Sorry about that
 
TVD schemes are a good place to start. If you search on CFD "Shock Capturing" Schemes, you'll find a lot of resources that should be applicable.

Essentially, at the core, what you would like to do is use local gradients to switch between your central differencing scheme (no numerical dissipation) and a low-order upwinding scheme (lots of numerical dissipation).

As a first cut, try solving using both methods and use a weighted average of a local gradient to determine the weightings. At that point near your discontinuity, force your solver to use the low-order scheme; this could help your stability.
 
minger, thank you very much for your advise