code: def E_Advective_Dispersion(t, Pe):
      
      # replace any times at zero with a number VERY close to zero to avoid
      # divide by zero errors
      if isinstance(t, list):
          t[t == 0] = 10**(-10)
      return (Pe/(4*np.pi*t))**(0.5)*np.exp((-Pe*((1-t)**2))/(4*t))
docs: Calculate a dimensionless measure of the output tracer concentration from
      a spike input to reactor with advection and dispersion.
  
      :param t: The time(s) at which to calculate the effluent concentration. Time can be made dimensionless by dividing by the residence time of the CMFR.
      :type t: float or numpy.array
      :param Pe: The ratio of advection to dispersion ((mean fluid velocity)/(Dispersion*flow path length))
      :type Pe: float
  
      :return: dimensionless measure of the output tracer concentration (concentration * volume of reactor) / (mass of tracer)
      :rtype: float
  
      :Examples:
  
      >>> from aguaclara.research.environmental_processes_analysis import E_Advective_Dispersion
      >>> round(E_Advective_Dispersion(0.5, 5), 7)
      0.4774864