Skip to content

Commit 4aca4cd

Browse files
Add pHPitz model
1 parent 51aefe3 commit 4aca4cd

5 files changed

Lines changed: 76 additions & 3 deletions

File tree

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from . import tocomo, arcs, solubilityccs, gibbs_minimization_model
1+
from . import phpitz, tocomo, arcs, solubilityccs, gibbs_minimization_model
22

33

4-
__all__ = ["arcs", "tocomo", "solubilityccs", "gibbs_minimization_model"]
4+
__all__ = ["phpitz", "arcs", "tocomo", "solubilityccs", "gibbs_minimization_model"]
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
from __future__ import annotations
2+
3+
from acidwatch_api.models.base import (
4+
BaseAdapter,
5+
BaseParameters,
6+
RunResult,
7+
Parameter,
8+
Unit,
9+
)
10+
from acidwatch_api.models.datamodel import TextResult
11+
from acidwatch_api.settings import SETTINGS
12+
13+
14+
class PhpitzParameters(BaseParameters):
15+
temperature: int = Parameter(
16+
300,
17+
label="Temperature",
18+
unit=Unit.TEMPERATURE_KELVIN,
19+
min=200,
20+
max=400,
21+
)
22+
23+
pressure: int = Parameter(
24+
10,
25+
label="Pressure",
26+
unit="bara",
27+
min=1,
28+
max=300,
29+
)
30+
31+
32+
class PhpitzAdapter(BaseAdapter):
33+
model_id = "phpitz"
34+
display_name = "pHPitz"
35+
36+
valid_substances = [
37+
"O2",
38+
"H2O",
39+
"H2S",
40+
"SO2",
41+
"NO2",
42+
"N2",
43+
"NO",
44+
"H2SO4",
45+
"HNO3",
46+
"S8",
47+
"HNO2",
48+
]
49+
description = ""
50+
51+
parameters: PhpitzParameters
52+
category: str = "Primary"
53+
base_url = SETTINGS.phpitz_api_base_url
54+
55+
async def run(self) -> RunResult:
56+
res = await self.client.post(
57+
"/api/run",
58+
json={
59+
"concentrations": {
60+
key.lower(): value for key, value in self.concentrations.items()
61+
},
62+
"temperature": self.parameters.temperature - 273,
63+
"pressure": self.parameters.pressure,
64+
},
65+
timeout=60.0,
66+
)
67+
res.raise_for_status()
68+
69+
result = res.text.replace("\\n", "\n").strip("'")
70+
return ({}, TextResult(data=result))

backend/src/acidwatch_api/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class Settings(BaseSettings):
2222
applicationinsights_connection_string: str | None = None
2323

2424
oasis_uri: str = "https://api-oasis-test.radix.equinor.com"
25+
phpitz_api_base_url: str = "http://localhost:8008"
2526

2627
@property
2728
def authority(self) -> str:

backend/tests/test_models_endpoints.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def client(monkeypatch):
3535
def test_get_models(client):
3636
response = client.get("/models")
3737
assert response.status_code == 200
38-
assert len(response.json()) == 5
38+
assert len(response.json()) == 6
3939

4040

4141
class DummyAdapter(base.BaseAdapter):

radixconfig.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ spec:
6464
BACKEND_API_SCOPE: api://456cc109-08d7-4c11-bf2e-a7b26660f99e/AcidWatch.User
6565
TOCOMO_API_BASE_URI: https://backend-tocomo-dev.radix.equinor.com
6666
ARCS_API_BASE_URI: https://api-arcs-dev.radix.equinor.com
67+
PHPITZ_API_BASE_URI: https://backend-phpitz-dev.radix.equinor.com
6768
APPLICATIONINSIGHTS_CONNECTION_STRING:
6869
OASIS_URI: https://api-oasis-test.radix.equinor.com
6970
- environment: prod
@@ -75,6 +76,7 @@ spec:
7576
BACKEND_API_SCOPE: api://873cbfab-30ca-4323-b5d5-e7955cc89ad9/AcidWatch.User
7677
TOCOMO_API_BASE_URI: https://backend-tocomo-prod.radix.equinor.com
7778
ARCS_API_BASE_URI: https://api-arcs-prod.radix.equinor.com
79+
PHPITZ_API_BASE_URI: https://backend-phpitz-dev.radix.equinor.com
7880
APPLICATIONINSIGHTS_CONNECTION_STRING:
7981
OASIS_URI: https://api-oasis-prod.radix.equinor.com
8082
publicPort: http

0 commit comments

Comments
 (0)