Example #1
0
def _reflectance(
    power_in, power_out, theta_in, theta_out, index_in, index_out):
  """Return reflectence corrected for refraction into and out off the mirror
  substrate.
  """
  trans_in = fresnel_coefficients(theta_in, index_out, index_in)['T']
  trans_out = fresnel_coefficients(theta_out, index_in, index_out)['T']
  return power_out / (power_in * trans_in * trans_out)
Example #2
0
def _fresnel_correction(theta_in, index_lab, index_optic, **kwargs):
  """Return the Fresnel loss correction factor T_in * T_out for
  a beam passing through a plate optic with refractive index index_optic
  from an environment with index index_lab at an incidence angle theta_in
  radians."""
  theta_in_error = kwargs.pop('theta_error', 0.003)
  fresnel_in = fresnel_coefficients(
          theta_in,
          index_lab, index_optic)['T']
  fresnel_out = fresnel_coefficients(
          snells_law(index_lab, index_optic, theta_in),
          index_optic, index_lab)['T']
  fresnel_correction = fresnel_in * fresnel_out
  fresnel_correction_error = fresnel_correction - (
          fresnel_coefficients(
              theta_in + theta_in_error,
              index_lab, index_optic)['T'] *
          fresnel_coefficients(
              snells_law(index_lab, index_optic, theta_in + theta_in_error),
              index_lab, index_optic)['T'])
  return (fresnel_correction, fresnel_correction_error)