code: def light_3d(self, r, kwargs_list, k=None):
          
          r = np.array(r, dtype=float)
          flux = np.zeros_like(r)
          for i, func in enumerate(self.func_list):
              if k is None or k == i:
                  kwargs = {k: v for k, v in kwargs_list[i].items() if not k in ['center_x', 'center_y']}
                  if self.profile_type_list[i] in ['HERNQUIST', 'HERNQUIST_ELLIPSE', 'PJAFFE', 'PJAFFE_ELLIPSE',
                                                       'GAUSSIAN', 'GAUSSIAN_ELLIPSE', 'MULTI_GAUSSIAN',
                                                       'MULTI_GAUSSIAN_ELLIPSE', 'POWER_LAW']:
                      flux += func.light_3d(r, **kwargs)
                  else:
                      raise ValueError('Light model %s does not support a 3d light distribution!'
                                           % self.profile_type_list[i])
          return flux
docs: computes 3d density at radius r
          :param x: coordinate in units of arcsec relative to the center of the image
          :type x: set or single 1d numpy array