¿Cuáles son buenas formas de verificar la validez del código para simular la ecuación de Schrödinger dependiente del tiempo?

Recientemente, hice un código que puede hacer una simulación de mecánica cuántica simple como está escrito en el título.

Quiero verificar si este código resuelve correctamente la ecuación de Schrödinger dependiente del tiempo y satisface la física (validez del código) antes de extender este código.

Estoy considerando las siguientes formas:

  1. comprobar si la norma de probabilidad se conserva o no.

  2. comparar la probabilidad transmitida del cálculo, con el coeficiente de transmisión derivado teóricamente, T .

No estoy seguro de que estas sean formas adecuadas de verificar la validez del código. ¿Podría decirme si estos son los adecuados o si hay otro método para verificar?

Dependiendo del método de integración que utilice, puede haber una pequeña no conservación de la probabilidad. El segundo método suena razonable. Entonces, ¿estás tratando de resolver un problema de dispersión?
Es difícil decirlo sin saber exactamente lo que hace este código. (1) no será un cheque muy fuerte. Puede hacer que el código calcule la función de onda en algún potencial simple que pueda resolver teóricamente y luego asegurarse de que <psi' | psi> =1, donde |psi> proviene de su código y <psi'| proviene de la teoría.

Respuestas (1)

La normalización no es realmente una buena condición para comprobar.

Para los problemas dependientes del tiempo, la integración numérica a lo largo del tiempo generalmente hace un buen trabajo al preservar la normalización (a menos que su esquema sea realmente malo), y el problema suele ser el mismo que con el problema independiente del tiempo: valores grandes de X (vea abajo). La referencia canónica para la dispersión 1d es Goldberg, HM Schey y JL Schwartz, "Imágenes en movimiento generadas por computadora de fenómenos de transmisión y reflexión mecánicos cuánticos unidimensionales" Am . J. física. 35 , 177–186 (1967) ( eprint ).

Para problemas de dispersión 2D, existe un método de matriz basado en "Métodos de cuadrícula numéricos para problemas de dispersión de la mecánica cuántica" TN Rescigno y CW McCurdy Phys. Rev. A 62, 032706 que soluciona el problema de la red. Una vez más, el límite de la cuadrícula es fijo, por lo que se evitan problemas con soluciones divergentes.

El cortometraje a continuación es la dispersión de un paquete de ondas gaussianas por una protuberancia cuadrada. (Puede que tenga que hacer clic en la imagen para ver la animación...) Es bastante precisa numéricamente.

ingrese la descripción de la imagen aquí


Para problemas independientes del tiempo, la norma es simplemente un factor de escala sin importancia. La parte difícil está en las condiciones de contorno en el infinito: básicamente necesitas averiguar qué tan rápido (es decir, en qué valor de X ) su solución comienza a divergir incluso si alimenta el valor propio exacto como energía supuesta. Esto depende en gran medida del esquema de integración: los mejores esquemas de integración le darán una "cola" más larga a su solución.

Por ejemplo, las dos gráficas siguientes son soluciones numéricas del oscilador armónico cuántico independiente del tiempo con energía exacta mi 2 = 5 / 2 . El diagrama de la izquierda se hizo usando el esquema predeterminado "NDSolve" de Mathematica, y claramente tiene problemas cuando | X | > 6 . El gráfico de la derecha también usa "NDSolve", pero el esquema de integración se ha forzado a un método de Runge-Kutta de octavo orden, y claramente da resultados mucho mejores para grandes | X | .

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Para problemas independientes del tiempo 1d, existe algo llamado método "Dispara y combina" o "Método de disparo" que parece ser el mejor. Es bueno porque no es tan sensible a las condiciones de contorno en ± . La forma ingenua y muy básica de entender el método es que comienza desde "lejos" y avanza desde ambos extremos hacia el centro, con la esperanza de que las funciones de onda de la izquierda y la derecha satisfagan ψ L ( 0 ) = ψ R ( 0 ) y los derivados también coincidirán. Si no, uno prueba una energía diferente. Funciona mejor para potenciales simétricos.

[La animación no parece funcionar...]