File 1DSchrodinger.c
Solve 1D Schrodinger equation.
Defines
-
Y_EPS
Starting point for ode solver. Default value = 0.1
-
ode
Use RK4 as the default ODE solver
Functions
-
inline double numerov(double step, numpyint N, double y0, double y1, double E, const double *V, const double *m, double *y)
An ODE solver using Numerov’s method for \( -\frac{d}{dx}(\frac{\hbar^2}{2m(x)} \frac{dy(x)}{dx}) + V(x) y(x) = E y(x) \) with starting \( x_0 \) and \( y_0 \), \( y_1 \), ends at \( x_0 + N \times step \). No normalization imposed.
- Parameters:
step – [in] \( \Delta x \), stepsize
N – [in] number of steps
y0 – [in] value of y at \( x_0 \)
y1 – [in] value of y at \( x_0 + step \)
E – [in] energy, unit eV
V – [in] V[n] is the potential at \( x = x_0 + n \times step \)
m – [in] m[n] is the effective mass at \( x = x_0 + n \times step \). m is in unit m0 (free electron mass)
y – [out] value of y at \( x = x_0 + n \times step \).
- Returns:
psiend the last element of y
-
inline double rk4(double step, numpyint N, double y0, double y1, double E, const double *V, const double *m, double *y)
An ODE solver using RK4 method for \( -\frac{d}{dx}(\frac{\hbar^2}{2m(x)} \frac{dy(x)}{dx}) + V(x) y(x) = E y(x) \) with starting \( x_0 \) and \( y_0 \), \( y_1 \), ends at \( x_0 + N \times step \). No normalization imposed. See numerov() for arguments explaination