Wednesday, September 23, 2015

quantum mechanics - Numerical approximation of the wavefunction in a delta-potential



I am trying to approximate the wavefunction of a particle in a delta potential U(x)=U0δ(x) with V0>0. I am using the following formula to calculate the wavefunction:


ψ(x+Δx)=2ψ(x)ψ(xΔx)+(Δx)2(V(x)ϵ)ψ(x)


This can be derived from the one dimensional, time-independent, one-dimensional schrödinger-equation ψ(x)=(U(x)ϵ)ψ(x).



The following C++-code sippet shows the calculation:


    double phi_x_prev = 0;
double phi_x_curr = 1e-100;
double phi_x_next = 0;

m_value.push_back(phi_x_curr);

double stepSq = step * step;

for (double x = -xmax + step; x <= xmax; x += step)

{
phi_x_next =
(2 * phi_x_curr - phi_x_prev) // O(1)
+ stepSq * (system->Potential(x) - eps)*phi_x_curr; // O(step^2)

m_value.push_back(phi_x_next);

phi_x_prev = phi_x_curr;
phi_x_curr = phi_x_next;
}


The solution looks good for x<0, but for x>0 the wavefunction starts growing exponentially, which is not compatible with the boundary condition ψ(x) for x±.


Screenshot of the plotted solution


What did I do wrong? Thanks in advance!




No comments:

Post a Comment

classical mechanics - Moment of a force about a given axis (Torque) - Scalar or vectorial?

I am studying Statics and saw that: The moment of a force about a given axis (or Torque) is defined by the equation: $M_X = (\vec r \times \...