Marrero

class lib.newComponent.marrero.Marrero(**kwargs)[source]

Bases: GroupContribution

Group contribution for definition of unknown component using the Marrero-Pardillo procedure (1999). This method is able to calculate the critical properties, boiling 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

Tbfloat, optional

Normal boiling temperature, [K]

Mfloat, optional

Molecular weight, [-]

SGfloat, optional

Specific gravity, [-]

Methods

calculo()

Calculate procedure with common functionality and define the properties don't defined by the method The child class must implement the specific calculate procedure and call this method it is necessary to finish definition

isCalculable()

Procedure to define the status of input parameter

Notes

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

Examples

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

>>> cmp = Marrero(Tb=477.67, group=[1, 36, 129, 130, 132, 140, 148],
... contribution=[1, 1, 1, 2, 2, 1, 1])
>>> "%0.1f %0.1f %0.1f" % (cmp.Tc, cmp.Pc.bar, cmp.Vc.ccg*cmp.M)
'699.8 42.2 378.8'
>>> cmp.formula
'C8H10O'

Example 2-7 in [1], butanols

>>> b1 = Marrero(group=[1, 28, 41], contribution=[1, 2, 1])
>>> b2m1 = Marrero(group=[2, 29, 41], contribution=[2, 1, 1])
>>> b2m2 = Marrero(group=[3, 79], contribution=[3, 1])
>>> b2 = Marrero(group=[1, 2, 29, 62], contribution=[1, 1, 1, 1])
>>> "%0.2f %0.2f %0.2f %0.2f" % (b1.Tc, b2m1.Tc, b2m2.Tc, b2.Tc)
'565.67 555.80 504.45 534.96'
>>> "%0.2f %0.2f %0.2f %0.2f" % (
... b1.Pc.bar, b2m1.Pc.bar, b2m2.Pc.bar, b2.Pc.bar)
'44.86 45.04 41.30 43.40'
>>> "%0.1f %0.1f %0.1f %0.1f" % (b1.Vc.ccg*b1.M, b2m1.Vc.ccg*b2m1.M,
...  b2m2.Vc.ccg*b2m2.M, b2.Vc.ccg*b2.M)
'272.1 267.3 275.1 277.9'

Example 2-13 in [1], 2,4-dimethylphenol

>>> cmp = Marrero(group=[9, 130, 132, 133, 140, 148],
... contribution=[2, 3, 1, 1, 1, 1], M=122.167)
>>> "%0.2f" % cmp.Tb
'489.39'

Example 2-14 in [1], cycloalkanes

>>> c7 = Marrero(group=[111], contribution=[7])
>>> mc6 = Marrero(group=[7, 111, 112], contribution=[1, 4, 2])
>>> ec5 = Marrero(group=[1, 34, 111, 112], contribution=[1, 1, 3, 2])
>>> c5 = Marrero(group=[7, 111, 112], contribution=[2, 1, 4])
>>> t5 = Marrero(group=[7, 111, 112], contribution=[2, 1, 4])
>>> "%0.2f %0.2f %0.2f %0.2f %0.2f" % (c7.Tb, mc6.Tb, ec5.Tb, c5.Tb, t5.Tb)
'377.53 375.85 384.47 374.17 374.17'

Table 8a in [2] for 1,3,5-Trichlorotrifluorobenzene

>>> cmp = Marrero(group=[138, 140, 144, 145], contribution=[3, 3, 3, 3])
>>> "%0.1f %0.1f %0.1f %0.1f" % (
... cmp.Tb, cmp.Tc, cmp.Pc.bar, cmp.Vc.ccg*cmp.M)
'471.9 685.0 32.4 452.3'

Table 8b in [2] for ethyl acrylate

>>> cmp = Marrero(group=[84, 1, 46, 100], contribution=[1, 1, 1, 1])
>>> "%0.1f %0.1f %0.1f %0.1f" % (
... cmp.Tb, cmp.Tc, cmp.Pc.bar, cmp.Vc.ccg*cmp.M)
'373.9 553.6 36.6 325.1'

Table 8c in [2] for isoquinoline

>>> cmp = Marrero(group=[129, 138, 131, 136, 132, 133],
... contribution=[3, 1, 1, 1, 1, 4])
>>> "%0.1f %0.1f %0.1f" % (cmp.Tb, cmp.Tc, cmp.Vc.ccg*cmp.M)
'519.5 787.3 405.1'

Table 8d in [2] for m-Terphenyl

>>> cmp = Marrero(group=[129, 130, 141, 132, 133],
... contribution=[5, 4, 2, 5, 4], Tb=638)
>>> "%0.1f %0.1f %0.1f %0.1f" % (
... cmp.Tb, cmp.Tc, cmp.Pc.bar, cmp.Vc.ccg*cmp.M)
'638.0 907.3 33.9 764.3'

Table 3 in [3] for o-phthalate

>>> cmp = Marrero(group=[129, 132, 133, 138, 153, 46, 28, 1],
... contribution=[2, 1, 2, 1, 2, 2, 4, 2])
>>> "%0.2f" % cmp.mu.muPas
'18.58'
FirstOrder = 29
isCalculable()[source]

Procedure to define the status of input parameter

_decomposition()[source]

Specific procedure to calculate the molecular weight of compound from group contribution

calculo()[source]

Calculate procedure with common functionality and define the properties don’t defined by the method The child class must implement the specific calculate procedure and call this method it is necessary to finish definition

References