code: def _set_params(self):
          
          deriv0 = np.poly1d(self.eos_params)
          deriv1 = np.polyder(deriv0, 1)
          deriv2 = np.polyder(deriv1, 1)
          deriv3 = np.polyder(deriv2, 1)
  
          for x in np.roots(deriv1):
              if x > 0 and deriv2(x) > 0:
                  v0 = x**(-3./2.)
                  break
          else:
              raise EOSError("No minimum could be found")
  
          derivV2 = 4./9. * x**5. * deriv2(x)
          derivV3 = (-20./9. * x**(13./2.) * deriv2(x) - 8./27. *
                     x**(15./2.) * deriv3(x))
          b0 = derivV2 / x**(3./2.)
          b1 = -1 - x**(-3./2.) * derivV3 / derivV2
  
          # e0, b0, b1, v0
          self._params = [deriv0(v0**(-2./3.)), b0, b1, v0]
docs: Overriden to account for the fact the fit with volume**(2/3) instead
          of volume.