code: def R_nl(n, l, r, Z=1):
      """
      Returns the Hydrogen radial wavefunction R_{nl}.
  
      Parameters
      ==========
  
      n : integer
          Principal Quantum Number which is
          an integer with possible values as 1, 2, 3, 4,...
      l : integer
          ``l`` is the Angular Momentum Quantum Number with
          values ranging from 0 to ``n-1``.
      r :
          Radial coordinate.
      Z :
          Atomic number (1 for Hydrogen, 2 for Helium, ...)
  
      Everything is in Hartree atomic units.
  
      Examples
      ========
  
      >>> from sympy.physics.hydrogen import R_nl
      >>> from sympy.abc import r, Z
      >>> R_nl(1, 0, r, Z)
      2*sqrt(Z**3)*exp(-Z*r)
      >>> R_nl(2, 0, r, Z)
      sqrt(2)*(-Z*r + 2)*sqrt(Z**3)*exp(-Z*r/2)/4
      >>> R_nl(2, 1, r, Z)
      sqrt(6)*Z*r*sqrt(Z**3)*exp(-Z*r/2)/12
  
      For Hydrogen atom, you can just use the default value of Z=1:
  
      >>> R_nl(1, 0, r)
      2*exp(-r)
      >>> R_nl(2, 0, r)
      sqrt(2)*(2 - r)*exp(-r/2)/4
      >>> R_nl(3, 0, r)
      2*sqrt(3)*(2*r**2/9 - 2*r + 3)*exp(-r/3)/27
  
      For Silver atom, you would use Z=47:
  
      >>> R_nl(1, 0, r, Z=47)
      94*sqrt(47)*exp(-47*r)
      >>> R_nl(2, 0, r, Z=47)
      47*sqrt(94)*(2 - 47*r)*exp(-47*r/2)/4
      >>> R_nl(3, 0, r, Z=47)
      94*sqrt(141)*(4418*r**2/9 - 94*r + 3)*exp(-47*r/3)/27
  
      The normalization of the radial wavefunction is:
  
      >>> from sympy import integrate, oo
      >>> integrate(R_nl(1, 0, r)**2 * r**2, (r, 0, oo))
      1
      >>> integrate(R_nl(2, 0, r)**2 * r**2, (r, 0, oo))
      1
      >>> integrate(R_nl(2, 1, r)**2 * r**2, (r, 0, oo))
      1
  
      It holds for any atomic number:
  
      >>> integrate(R_nl(1, 0, r, Z=2)**2 * r**2, (r, 0, oo))
      1
      >>> integrate(R_nl(2, 0, r, Z=3)**2 * r**2, (r, 0, oo))
      1
      >>> integrate(R_nl(2, 1, r, Z=4)**2 * r**2, (r, 0, oo))
      1
  
      """
      # sympify arguments
      n, l, r, Z = map(S, [n, l, r, Z])
      # radial quantum number
      n_r = n - l - 1
      # rescaled "r"
      a = 1 / Z  # Bohr radius
      r0 = 2 * r / (n * a)
      # normalization coefficient
      C = sqrt(
          (S(2) / (n * a)) ** 3
          * factorial(n_r)
          / (2 * n * factorial(n + l))
      )
      # This is an equivalent normalization coefficient, that can be found in
      # some books. Both coefficients seem to be the same fast:
      # C =  S(2)/n**2 * sqrt(1/a**3 * factorial(n_r) / (factorial(n+l)))
      return (
          C
          * r0**l
          * assoc_laguerre(n_r, 2 * l + 1, r0).expand()
          * exp(-r0 / 2)
      )
  
file_path: sympy/sympy/physics/hydrogen.py
imports: from sympy.core.numbers import Float
  from sympy.core.singleton import S
  from sympy.functions.combinatorial.factorials import factorial
  from sympy.functions.elementary.exponential import exp
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.functions.special.polynomials import assoc_laguerre
  from sympy.functions.special.spherical_harmonics import Ynm
label_desc: Use image node_id 1 for calling a global function with example usage: R_nl(n, l, r, Z) and returns: unknown