Skip to content

Commit 6aab246

Browse files
committed
Split pHPitz into reactive and solubility models
1 parent d294eae commit 6aab246

4 files changed

Lines changed: 70 additions & 7 deletions

File tree

backend/src/acidwatch_api/models/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
from .arcs import ArcsAdapter
44
from .solubilityccs import SolubilityCCSAdapter
55
from .gibbs_minimization_model import GibbsMinimizationModelAdapter
6-
from .phpitz import PhpitzAdapter
6+
from .phpitz_reactive import PhpitzReactiveAdapter
7+
from .phpitz_solubility import PhpitzSolubilityAdapter
78
from .arcs_exp import ArcsExpAdapter
89

910
__all__ = [
@@ -15,5 +16,6 @@
1516
"ArcsExpAdapter",
1617
"SolubilityCCSAdapter",
1718
"GibbsMinimizationModelAdapter",
18-
"PhpitzAdapter",
19+
"PhpitzReactiveAdapter",
20+
"PhpitzSolubilityAdapter",
1921
]

backend/src/acidwatch_api/models/phpitz.py renamed to backend/src/acidwatch_api/models/phpitz_reactive.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
from acidwatch_api.settings import SETTINGS
99

1010

11-
class PhpitzAdapter(BaseAdapter):
12-
model_id = "phpitz"
13-
display_name = "pHPitz"
11+
class PhpitzReactiveAdapter(BaseAdapter):
12+
model_id = "phpitz_reactive"
13+
display_name = "pHPitz reactive"
1414

1515
valid_substances = [
1616
"O2",
@@ -47,6 +47,7 @@ async def run(self) -> RunResult:
4747
},
4848
"temperature": self.conditions.temperature,
4949
"pressure": self.conditions.pressure,
50+
"solubility": False,
5051
},
5152
timeout=60.0,
5253
)
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
from __future__ import annotations
2+
3+
from acidwatch_api.models.base import (
4+
BaseAdapter,
5+
RunResult,
6+
)
7+
from acidwatch_api.models.datamodel import TextResult
8+
from acidwatch_api.settings import SETTINGS
9+
10+
11+
class PhpitzSolubilityAdapter(BaseAdapter):
12+
model_id = "phpitz_solubility"
13+
display_name = "pHPitz solubility"
14+
15+
valid_substances = [
16+
"O2",
17+
"H2O",
18+
"H2S",
19+
"SO2",
20+
"NO2",
21+
"N2",
22+
"NO",
23+
"H2SO4",
24+
"HNO3",
25+
"S8",
26+
"NH3",
27+
"N2O",
28+
"N2O4",
29+
"NH4HSO4",
30+
"HCHO",
31+
"CH3CHO",
32+
"CH3COCH3",
33+
"HCOOH",
34+
"CH3COOH",
35+
]
36+
description = "Computational model developed by Baard Kaasa as part of our CCS research on CO2 Impurities. Solubility part."
37+
38+
category = "Secondary"
39+
base_url = SETTINGS.phpitz_api_base_uri
40+
41+
async def run(self) -> RunResult:
42+
res = await self.client.post(
43+
"/api/run",
44+
json={
45+
"concentrations": {
46+
key.lower(): value for key, value in self.concentrations.items()
47+
},
48+
"temperature": self.conditions.temperature,
49+
"pressure": self.conditions.pressure,
50+
"reactive": False,
51+
},
52+
timeout=60.0,
53+
)
54+
res.raise_for_status()
55+
56+
data = res.json()
57+
58+
return {}, TextResult(data=data["raw"], label="pHPitz Solubility Output")

backend/src/acidwatch_api/routes/models.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
ArcsExpAdapter,
3232
BaseAdapter,
3333
GibbsMinimizationModelAdapter,
34-
PhpitzAdapter,
34+
PhpitzReactiveAdapter,
35+
PhpitzSolubilityAdapter,
3536
SolubilityCCSAdapter,
3637
TocomoAdapter,
3738
get_parameters_schema,
@@ -57,7 +58,8 @@ def get_adapters() -> AdapterSet:
5758
ArcsExpAdapter,
5859
SolubilityCCSAdapter,
5960
GibbsMinimizationModelAdapter,
60-
PhpitzAdapter,
61+
PhpitzReactiveAdapter,
62+
PhpitzSolubilityAdapter,
6163
)
6264
}
6365

0 commit comments

Comments
 (0)