class_docstr: This class represents an optical medium. The prime reason to implement this is
  to facilitate refraction, Fermat's principle, etc.
  
  Explanation
  ===========
  
  An optical medium is a material through which electromagnetic waves propagate.
  The permittivity and permeability of the medium define how electromagnetic
  waves propagate in it.
  
  
  Parameters
  ==========
  
  name: string
      The display name of the Medium.
  
  permittivity: Sympifyable
      Electric permittivity of the space.
  
  permeability: Sympifyable
      Magnetic permeability of the space.
  
  n: Sympifyable
      Index of refraction of the medium.
  
  
  Examples
  ========
  
  >>> from sympy.abc import epsilon, mu
  >>> from sympy.physics.optics import Medium
  >>> m1 = Medium('m1')
  >>> m2 = Medium('m2', epsilon, mu)
  >>> m1.intrinsic_impedance
  149896229*pi*kilogram*meter**2/(1250000*ampere**2*second**3)
  >>> m2.refractive_index
  299792458*meter*sqrt(epsilon*mu)/second
  
  
  References
  ==========
  
  .. [1] https://en.wikipedia.org/wiki/Optical_medium
code: def name(self):
      return self.args[0]
  
imports: from sympy.physics.units import second, meter, kilogram, ampere
  from sympy.core.basic import Basic
  from sympy.core.symbol import Str
  from sympy.core.sympify import _sympify
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.physics.units import speed_of_light, u0, e0
label_desc: Use image node_id 2 for calling the Medium obj's underlying member method code with example usage: obj.name() and returns: self