code: def get_target_volume(self, etheta=0.0, scaled=False):
          
          # TODO: make this a function of d instead of etheta?
          logger.debug("determining target volume at t={}, theta={}".format(self.time, etheta))
  
          # TODO: eventually this could allow us to "break" volume conservation
          # and have volume be a function of d, with some scaling factor provided
          # by the user as a parameter.  Until then, we'll assume volume is
          # conserved which means the volume should always be the same
          volume = 4./3 * np.pi * self.requiv**3
  
          if not scaled:
              return volume / self._scale**3
          else:
              return volume
docs: TODO: add documentation
  
          get the volume that the Star should have at a given euler theta