docs: def coupling_efficiency(mode_solver, fibre_mfd,
                          fibre_offset_x=0, fibre_offset_y=0,
                          n_eff_fibre=1.441):
      '''
      Finds the coupling efficiency between a solved
      fundamental mode and a fibre of given MFD.
  
      Args:
          mode_solver (_ModeSolver): Mode solver that
              has found a fundamental mode.
          fibre_mfd (float): The mode-field diameter
              (MFD) of the fibre.
          fibre_offset_x (float): Offset the fibre
              from the centre position of the window
              in x. Default is 0 (no offset).
          fibre_offset_y (float): Offset the fibre
              from the centre position of the window
              in y. Default is 0 (no offset).
          n_eff_fibre (float): The effective index
              of the fibre mode.  Default is 1.441.
  
      Returns:
          float: The power coupling efficiency.
      '''
      etas = []
  
      gaus = _make_gaussian(mode_solver._structure.xc, mode_solver._structure.yc,
                            fibre_mfd, fibre_offset_x, fibre_offset_y)
  
      for mode, n_eff in zip(mode_solver.modes, mode_solver.n_effs):
          o = abs(_overlap(mode, gaus))
          t = abs(transmission(n_eff, n_eff_fibre))
          eta = o * t
          etas.append(eta)
  
      return etas