# Abnormal behavior of the Liouville-von-Neuman equation

1. Jun 18, 2012

### freude3

Hello everyone,
I am trying to solve time-dependent Liouville-von-Neumann equations for the dynamics of an electron travelling between several coherently coupled states with constant dephasing time. I was very surprised receiving negative values for diagonal elements of the density matrix in some time intervals. Did anybody face this problem? How could I interpret such a strange behaviour of the Liouville-Neumann equation?
Thank you

2. Jun 18, 2012

### Physics Monkey

That sounds bad to me i.e. negative probability. Perhaps you can post some additional details of your equation and problem and we can help further.

3. Jun 20, 2012

### Einstein Mcfly

You're propagating the density matrix in time, right? Using Runge-Kutta or some such thing? These are clearly unphysical results so something is likely wrong with your numerical method. Try a smaller step size and recheck your code.

4. Jun 21, 2012

### freude3

Thanks all for replies. Einstein Mcfly, you are right. Indeed, I am using Runge-Kutta solver. However, It seems, the numerical procedure is working correct. Could the problem be in the constant dephasing time which I have added artificiallyv (it is not following from the density matrix formalism)? Could such an approximation lead to some violation of the causality?

5. Jun 23, 2012

### Einstein Mcfly

Set the dephasing parameter to zero and check the simple cases. Start with a pure state and propagate in time and see to it that nothing happens (norms preserved, no population moves etc). Then create an incoherent mixture between two states and see that those populations don't change. Then, try a coherent superposition between two with a pi/2 phase difference and see that the populations oscillate sinusoidally. Then try for a three state coherent superposition and such. Try all of these simple cases before you rest assured that your basic algorithm is working properly. Then, turn on dephasing and make sure it's only acting on the coherences. Start with a small parameter and check the populations and such. Also, work out by hand the exact equations of motion for a two or three or four state system for all of the populations and coherences and check that that's exactly what's happening in your code. This is tedious, but I've found it to be the best (and sometimes only) way to debug complicated code. Working with cases that you know the answer to will also allow you to determine what step size you have to use to get physical results.