docs: def mu(X,Z,A):
      ''' 
      mean molecular weight assuming full ionisation.
  
      (Kippenhahn & Weigert, Ch 13.1, Eq. 13.6)
      
      Parameters
      ----------
      X : float
          Mass fraction vector.
      Z : float
          Charge number vector.
      A : float
          Mass number vector.
          
      '''
      
      if not isinstance(Z,np.ndarray):
          Z = np.array(Z)
      if not isinstance(A,np.ndarray):
          A = np.array(A)
      if not isinstance(X,np.ndarray):
          X = np.array(X)
      	
      try:
          mu = old_div(1.,sum(X*(1.+Z)/A))
      except TypeError:
          X=np.array([X])
          A=np.array([A])
          Z=np.array([Z])
          mu = old_div(1.,sum(X*(1.+Z)/A))
  
      return mu