Joback

class lib.newComponent.joback.Joback(**kwargs)[source]

Bases: GroupContribution

Group contribution for definition of unknown component using the Joback procedure (1987). This method is fairly complete, can calculate critical properties, boiling and melting temperature, enthalpy and gibbs free energy of formation, vaporization and melting heat, ideal gas heat capacity dependence with temperature and viscosity.

The resulting instance has all the necessary properties to use in PFD as a predefined compound, using general properties for calculation of other mandatory properties don’t defined by the method.

Parameters:
grouparray

List with group index

contributionfloat

List with group count ocurrences

M: float, optional

Molecular weight, [-]

Tbfloat, optional

Normal boiling temperature, [K]

SG: float, optional

Specific gravity, [-]

Methods

calculo()

Calculation procedure

Notes

M, Tb and SG are optional input, anyway know them improve the estimation

Examples

p-dichlorobenzene example in [2], Table V

>>> cmp = Joback(group=[16, 13, 14], contribution=[2, 4, 2])
>>> "%0.1f %0.0f %0.0f %0.1f" % (cmp.Tb, cmp.Tf, cmp.Tc, cmp.Pc.bar)
'443.4 256 675 41.5'
>>> "%0.0f" % (cmp.Vc.ccg*cmp.M)
'362'
>>> "%0.2f %0.2f" % (cmp.Hf.kJg*cmp.M, cmp.Gf.kJg*cmp.M)
'26.41 78.56'
>>> "%0.0f %0.0f" % (cmp._Cp0(298).JgK*cmp.M, cmp._Cp0(400).JgK*cmp.M)
'112 139'
>>> "%0.0f %0.0f" % (cmp._Cp0(800).JgK*cmp.M, cmp._Cp0(1000).JgK*cmp.M)
'206 224'
>>> "%0.2f %0.1f" % (cmp.Hv.kJg*cmp.M, cmp.Hm.kJg*cmp.M)
'40.66 13.3'
>>> "%0.2e %0.2e" % (cmp._Visco(333.8), cmp._Visco(374.4))
'7.26e-04 4.92e-04'
>>> "%0.2e %0.1e" % (cmp._Visco(403.1), cmp._Visco(423.3))
'3.91e-04 3.4e-04'

Example 2-1 in [1], 2-ethylphenol critical properties

>>> cmp = Joback(group=[0, 1, 13, 14, 20], contribution=[1, 1, 4, 2, 1])
>>> "%0.2f %0.1f %0.2f" % (cmp.Tb, cmp.Tc, cmp.Pc.bar)
'489.94 716.0 44.09'
>>> "%0.1f" % (cmp.Vc.ccg*cmp.M)
'341.5'
>>> cmp.formula
'C8H10O'

Example 3-1 in [1], 2,4 dimethylphenol ΔH and ΔG

>>> "%0.2f %0.2f" % (cmp.Hf.kJg*cmp.M, cmp.Gf.kJg*cmp.M)
'-149.23 -25.73'
>>> "%0.1f" % (cmp._Cp0(700).JgK*cmp.M)
'281.2'

Example 2-10 in [1], 2,4 dimethylphenol Tb and Tf

>>> cmp = Joback(group=[0, 13, 14, 20], contribution=[2, 3, 3, 1])
>>> "%0.2f %0.2f" % (cmp.Tf, cmp.Tb)
'330.58 494.92'

Example in http://en.wikipedia.org/wiki/Joback_method, acetone

>>> cmp = Joback(group=[0, 23], contribution=[2, 1])
>>> "%0.3f %0.3f %0.2f %0.1f" % (cmp.Tc, cmp.Pc.bar, cmp.Tb, cmp.Tf)
'500.559 48.025 322.11 173.5'
>>> "%0.1f" % (cmp.Vc.ccg*cmp.M)
'209.5'
>>> "%0.2f %0.2f" % (cmp.Hf.kJg*cmp.M, cmp.Gf.kJg*cmp.M)
'-217.83 -154.54'
>>> "%0.4f" % (cmp._Cp0(300).JgK*cmp.M)
'75.3264'
>>> "%0.2f %0.2f" % (cmp.Hm.kJg*cmp.M, cmp.Hv.kJg*cmp.M)
'5.12 29.02'
>>> "%0.7f" % (cmp._Visco(300))
'0.0002942'

Example in [3] pag. 2-470, o-xylene

>>> cmp = Joback(group=[13, 14, 0], contribution=[4, 2, 2], Tb=417.58)
>>> "%0.2f %0.2f %0.1f" % (cmp.Tc, cmp.Pc.bar, cmp.Vc.ccg*cmp.M)
'630.37 35.86 375.5'

Example in [3] pag. 2-470, sec-butanol

>>> cmp = Joback(group=[0, 1, 2, 19], contribution=[2, 1, 1, 1], Tb=372.7)
>>> "%0.1f %0.2f %0.1f" % (cmp.Tc, cmp.Pc.bar, cmp.Vc.ccg*cmp.M)
'534.1 44.33 272.5'
FirstOrder = 41
calculo()[source]

Calculation procedure

_Visco(T)[source]

Viscosity calculation

Parameters:
Tfloat

Temperature, [K]

Returns:
mufloat

Viscosity, [Pas]

_Cp0(T)[source]

Ideal gas specific heat calculation

Parameters:
Tfloat

Temperature, [K]

Returns:
cp0float

Ideal gas specific heat, [J/kgK]

References