pytherm.activity.db.unifac.parametersIO module

Subpackage for UNIFAC parameters and substance operation

Parameters processing

class pytherm.activity.db.unifac.parametersIO.ParametersUNIFAC(name)[source]

Bases: dict

Class for UNIFAC parameters processing

Res parameters are stored as dict[‘res’][i][j]. Comb parameters are stored as dict[‘comb’][‘name’]: Group

Examples

>>> t1 = [
...    [1, 'CH3', 0.9011, 0.848],
...    [1, 'CH2', 0.6744, 0.54],
...    [1, 'CH', 0.4469, 0.228],
...    [1, 'C', 0.2195, 0.0],
...    [3, 'ACH', 0.5313, 0.4],
...    [3, 'AC', 0.3652, 0.12],
... ]
>>> t2 = [
...    [1, 3, 61.13, 0.0, 0.0],
...    [3, 1, -11.12, 0.0, 0.0]
>>> VLE = ParametersUNIFAC("VLE")
>>> VLE.set_type("classic")
>>> VLE.set_comb(t1)
>>> VLE.set_res(t2)

Methods

set_comb(params[, key])

Set parameters for \(\ln\gamma_i^c\) calculations

set_res(params[, key])

Set parameters for \(\ln\gamma_i^r\) calculations

set_type(type[, key])

Set model type (classic or modified)

set_res(params: list, key='res')[source]

Set parameters for \(\ln\gamma_i^r\) calculations

If one of parameters is absent, then it must be zero.

Parameters:

params (list) – Parameters list [i, j, aij, bij, cij]

set_comb(params: list, key='comb')[source]

Set parameters for \(\ln\gamma_i^c\) calculations

Parameters:

params (list) – Parameters list [id, ‘group name’, r, q],

set_type(type, key='type')[source]

Set model type (classic or modified)

Parameters:

type (str) – classic or modified

class pytherm.activity.db.unifac.parametersIO.Group(id: int, r: float, q: float)[source]

Bases: object

Class for UNIFAC single group

Contain group id, surface and volume

Parameters:
  • id (int) – group id in parameters table

  • r (float) – group volume

  • q (float) – group surface

id

group id in parameters table

Type:

int

r

group volume

Type:

float

q

group surface

Type:

float

Substances processing

class pytherm.activity.db.unifac.parametersIO.Substance(x: float, groups: dict[str, float])[source]

Bases: object

Class for UNIFAC single substance

Parameters:
  • x (float) – concentration

  • groups (dict[str, float]) – {‘group name’: count}

x

Concentration

Type:

float

groups

{‘group name’: count}

Type:

dict[str, float]

Examples

>>> hexane = Substance(1, {'CH3': 2, 'CH2': 4})
r: float
q: float
x: float
class pytherm.activity.db.unifac.parametersIO.SubstancesUNIFAC[source]

Bases: dict

Class for UNIFAC substance processing

self[‘substance name’] contains Substance

Methods

get_from_dict(subs)

Load substances from input dict

get_from_dict(subs: dict[str, str])[source]

Load substances from input dict

Parameters:

subs (dict[str, str]) – Dictionary [‘substance name’, ‘X*’CH2 ..’]

Examples

>>> subs = {
...    "n-hexane": "2*CH3 4*CH2",
...    "butanone-2": "1*CH3 1*CH2 1*CH3CO",
... }
>>> substances = SubstancesUNIFAC()
>>> substances.get_from_dict(subs)