Recent Releases of ugropy

ugropy - v3.1.5 Change ILP solver argument

What's Changed

  • Version 3.1.5 by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/36

Now it's possible to change the PulP ILP solver by an argument. For example:

shell pip install xpress

```python from ugropy import unifac

sol = unifac.getgroups("toluene", solverarguments={"solver": "XPRESS_PY"}) ```

Full Changelog: https://github.com/ipqa-research/ugropy/compare/v3.1.0...v3.1.5

- Python
Published by SalvadorBrandolin 9 months ago

ugropy - v3.1.0 nonoptimal solutions

Now, along with multiple solutions, nonoptimal solutions could be obtained if desired. Example:

```python from ugropy import unifac

toluene = unifac.getgroups("toluene", searchmultiplesolutions=True, searchnonoptimal=True)

print(toluene[0].subgroups) print(toluene[1].subgroups) ```

You will obtain:

{'ACH': 5, 'ACCH3': 1} {'CH3': 1, 'ACH': 5, 'AC': 1}

The solutions are always ordered from most optimal to less optimal.

What's Changed

  • Nonoptimal by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/35

Full Changelog: https://github.com/ipqa-research/ugropy/compare/v3.0.5...v3.1.0

- Python
Published by SalvadorBrandolin 10 months ago

ugropy - v3.0.5

What's Changed

  • Dortmund by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/34

New model!

Dortmund UNIFAC has been added. You can try it with:

```python from ugropy import dortmund

chex = dortmund.get_groups("cyclohexane")

print(chex.subgroups) ```

New writer:

Writer to_yaeos is implemented. It generates the Fortran source for groups definitions for yaeos. Example:

```python from ugropy import unifac, writers

names = ["ethane", "ethanol", "toluene", "water"]

groups = [unifac.get_groups(name).subgroups for name in names]

fortrancode = writers.toyaeos(groups, unifac)

print(fortran_code) ```

You will obtain:

``` use yaeos_modelsgegroupcontribution_unifac, only: Groups

type(Groups) :: molecules(4)

molecules(1)%groupsids = [1] molecules(1)%numberof_groups = [2]

molecules(2)%groupsids = [1, 2, 14] molecules(2)%numberof_groups = [1, 1, 1]

molecules(3)%groupsids = [9, 11] molecules(3)%numberof_groups = [5, 1]

molecules(4)%groupsids = [16] molecules(4)%numberof_groups = [1] ```

Full Changelog: https://github.com/ipqa-research/ugropy/compare/v3.0.0...v3.0.5

- Python
Published by SalvadorBrandolin 12 months ago

ugropy - v3.0.0

What's Changed

  • 27 get rid of problematic structures by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/28
  • Better not found on PubChem error by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/31
  • 22 implement abdulelah gani by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/32
  • Travel to 3.0.0 by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/33

Problematic structures definition for each model are not longer needed. A big algorithm overhaul performed to achieve that.

News

New model available! Abdulelah-Gani property estimator: https://github.com/PEESEgroup/Pure-Component-Property-Estimation

Now properties estimated by properties estimators have units provided by the library Pint

Breaking changes

The function get_groups not longer exist. Each model is imported individually and get_groups is a method:

```python from ugropy import unifac, psrk, joback, abdulelah_gani

unifacgroups = unifac.getgroups("hexane") psrkgroups = unifac.getgroups("hexane", searchmultiplesolutions=True)

print(unifacgroups.subgroups) print(psrkgroups.subgroups) ```

Gibbs excess models estimates de $R$ and $Q$ values of molecules:

python print(unifac_groups.r, unifac_groups.q)

The Joback and Abdulelah-Gani models have all estimated properties on the output object:

```python jobackgroups = joback.getgroups("hexane")

print(jobackgroups.criticaltemperature) ```

Check the tutorial for more information of all the new features of ugropy

Full Changelog: https://github.com/ipqa-research/ugropy/compare/v2.0.7...v3.0.0

- Python
Published by SalvadorBrandolin about 1 year ago

ugropy - v2.0.7

Bug fixing: bad dependencies declarations for PyPI ugropy v2.0.5. The new version of rdkit and numpy broke ugropy

Full Changelog: https://github.com/ipqa-research/ugropy/compare/v2.0.5...v2.0.7

- Python
Published by SalvadorBrandolin over 1 year ago

ugropy - v2.0.5

What's Changed

  • 18 implement constantinou and gani model by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/21
  • Migration to pathlib and cache groups for better end-user experience by @fedebenelli in https://github.com/ipqa-research/ugropy/pull/23
  • pathlib to models module and Windows and MacOS added to CI by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/25
  • release 2.0.5 by @SalvadorBrandolin in https://github.com/ipqa-research/ugropy/pull/26

New Contributors

  • @fedebenelli made their first contribution in https://github.com/ipqa-research/ugropy/pull/23

Full Changelog: https://github.com/ipqa-research/ugropy/compare/v2.0.0...v2.0.5

- Python
Published by SalvadorBrandolin almost 2 years ago

ugropy - v2.0.0

What's Changed

  • Changes in ugropy API. getmodelgroups no longer exist. All model uses the get_groups function (see tutorial)
  • New writer! Now ugropy can write the group dictionaries for Caleb Bell's Thermo library.
  • New feature ".draw()": Now the fragmentation models results return a Fragmentation object that allows the user to represent the fragmentation result graphically (see tutorial)
  • Changes in the algorithm: ugropy checks if the solution can be fitted in the molecule's atoms before throwing the solution for molecules with composed structures.

Full Changelog: https://github.com/ipqa-research/ugropy/compare/v1.0.0...v2.0.0

- Python
Published by SalvadorBrandolin almost 2 years ago

ugropy - v1.0.0

Models supported v1.0.0

  • Classic liquid-vapor UNIFAC
  • Predictive Soave-Redlich-Kwong (PSRK)
  • Joback

Writers

  • Clapeyron.jl

- Python
Published by SalvadorBrandolin about 2 years ago