Solver

Modul QL1D.solver menyediakan metode numerik yang digunakan untuk menyelesaikan Persamaan Schrödinger satu dimensi. Modul ini berisi berbagai algoritma inti untuk menghitung fungsi gelombang, energi eigen, serta evolusi sistem kuantum secara numerik.

Fungsi-fungsi dalam modul ini dirancang untuk bekerja secara efisien pada simulasi TISE maupun TDSE dengan memanfaatkan pendekatan numerik berbasis grid. Implementasi solver difokuskan pada kemudahan penggunaan, stabilitas perhitungan, dan fleksibilitas dalam menangani berbagai bentuk potensial kuantum.

QL1D.solver.finite_difference

solver.finite_difference(x, V, m=1, hbar=1)

Selesaikan persamaan Schrödinger dengan metode beda hingga.

Parameters:
  • x (array_like) –

    Grid posisi.

  • V (array_like) –

    Potensial pada setiap titik grid.

  • m (float, default: 1 ) –

    Massa partikel. Default adalah 1.

  • hbar (float, default: 1 ) –

    Konstanta Planck tereduksi. Default adalah 1.

Returns:
  • E( ndarray ) –

    Nilai eigenenergi.

  • psi_full( ndarray ) –

    Fungsi gelombang lengkap untuk setiap mode eigen.

  • res( float ) –

    Hasil pengecekan normalisasi (jumlah |psi|^2 * deltax).

Examples:

>>> import numpy as np
>>> x = np.linspace(0, 1, 100)
>>> V = 0.5 * x**2  # Potensial harmonik
>>> E, psi, norm_check = finite_difference(x, V, m=1, hbar=1)
>>> E[:5]
[5.07516768  19.89307139  44.54363807  79.01602487 123.27714695]
>>> norm_check
0.9898989898989901

QL1D.solver.psi_m2

solver.psi_m2(t, E, psi, psi0)

Hitung densitas probabilitas dari evolusi waktu gelombang.

Parameters:
  • t (float or ndarray) –

    Waktu evolusi.

  • E (array_like) –

    Eigenenergi.

  • psi (ndarray) –

    Eigenstat.

  • psi0 (ndarray) –

    Kondisi awal fungsi gelombang.

Returns:
  • result( ndarray ) –

    Densitas probabilitas |psi(t)|^2 setelah evolusi waktu.

Examples:

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x = np.linspace(0, 1, 301)
>>> -1e-2*np.exp(-(x-1/2)**2/(2*(1/20)**2))
>>> psi0 = np.sqrt(2)*np.sin(np.pi*x)
>>> E, psi, norm = finite_difference(x, V)
>>> g = psi_m2(0.01, E, psi, psi0)
>>> plt.plot(x, g)