Skip to content

Instantly share code, notes, and snippets.

@certik
Created March 17, 2011 00:34
Show Gist options
  • Save certik/873630 to your computer and use it in GitHub Desktop.
Save certik/873630 to your computer and use it in GitHub Desktop.
program Hydrogen
use rdirac
use fmesh
implicit none
! Atomic number:
integer, parameter :: Z = 92
! Mesh parameters:
real(dp), parameter :: r_min = 1e-8_dp, r_max = 50.0_dp, a = 1e6_dp
integer, parameter :: NN = 3000
real(dp), parameter :: c = 137.035999037_dp, eps = 1e-9_dp
integer :: n, l, relat, converged
real(dp) :: r(NN+1), u(size(r)), Ein, EII, E, E_exact, error, y(size(r))
call mesh_exp(r_min, r_max, a, NN, r)
u(:) = -Z/r
print *, "Hydrogen like energies for Z=92 (U)"
print *, "Mesh parameters (r_min, r_max, a, N):"
print "(ES10.2, F10.2, ES10.2, I10)", r_min, r_max, a, NN
print *
print "(A3, A3, A15, A15, A10)", "n", "l", "E", "E_exact", "Error"
print *
do n = 1, 7
do l = 0, n-1
E_exact = - Z**2 / (2.0_dp * n**2)
Ein = -1000
EII = 100
relat = 0
call solve_radial_eigenproblem(c, n, l, Ein, EII, eps, u, r, Z, relat, &
converged, E, y)
error = abs(E -E_exact)
if (converged /= 0) stop "Not converged"
print "(I3, I3, F15.6, F15.6, ES10.2)", n, l, E, E_exact, error
enddo
enddo
end program
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment