TNO Intern

Commit 3b2a12d0 authored by Florian Knappers's avatar Florian Knappers
Browse files

udpatezz

parent 8ebbb2f1
Loading
Loading
Loading
Loading
+63 −21
Original line number Diff line number Diff line
@@ -252,6 +252,7 @@ environments:
      - pypi: https://files.pythonhosted.org/packages/8f/e9/6a7d025d8da8c4931522922cd706105aa32b3291d1add8c5427cdcd66e63/kiwisolver-1.4.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/f5/64/41c4367bcaecbc03ef0d2a3ecee58a7065d0a36ae1aa817fe573a2da66d4/matplotlib-3.10.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/d1/80/b9c19f1bb4ac6c5fa6f94a4f278bc68a778473d1814a86a375d7cffa193a/netCDF4-1.7.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/78/f9/690a8600b93c332de3ab4a344a4ac34f00c8f104917061f779db6a918ed6/pathlib-1.0.1-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/02/65/ad2bc85f7377f5cfba5d4466d5474423a3fb7f6a97fd807c06f92dd3e721/plotly-6.0.1-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/c9/58/c3bc54c0fad9a82899e9a2703e04ee6e8eaa76caa90c0689fd1b468a4427/pygridsio-1.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/ea/00/d815833441d8c52bf4a6930952e77d3de77d0bf67b3202ccc12dabdae279/pykrige-1.7.2.tar.gz
@@ -261,9 +262,11 @@ environments:
      - pypi: https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/05/19/94d6c66184c7d0f9374330c714f62c147dbb53eda9efdcc8fc6e2ac454c5/rasterio-1.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/2a/2f/63d2cacc0e525f8e3398bcf32bd3620385f22cd1600834ec49d7f3597a7b/rioxarray-0.19.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/21/f6/4bfb5695d8941e5c570a04d9fcd0d36bce7511b7d78e6e75c8f9791f82d0/scipy-1.16.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/d1/a7/5c9cb413e4e2ce52c16be717e94abd40ce91b1f8974624d5d56154c5d40b/shapely-2.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl
      - pypi: ./
      - pypi: C:/Users/knappersfy/work/thermogis/pydoubletcalc
      win-64:
      - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
      - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda
@@ -486,6 +489,7 @@ environments:
      - pypi: https://files.pythonhosted.org/packages/d0/dc/c1abe38c37c071d0fc71c9a474fd0b9ede05d42f5a458d584619cfd2371a/kiwisolver-1.4.8-cp313-cp313-win_amd64.whl
      - pypi: https://files.pythonhosted.org/packages/b1/0f/eed564407bd4d935ffabf561ed31099ed609e19287409a27b6d336848653/matplotlib-3.10.3-cp313-cp313-win_amd64.whl
      - pypi: https://files.pythonhosted.org/packages/66/b5/e04550fd53de57001dbd5a87242da7ff784c80790adc48897977b6ccf891/netCDF4-1.7.2-cp313-cp313-win_amd64.whl
      - pypi: https://files.pythonhosted.org/packages/78/f9/690a8600b93c332de3ab4a344a4ac34f00c8f104917061f779db6a918ed6/pathlib-1.0.1-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/02/65/ad2bc85f7377f5cfba5d4466d5474423a3fb7f6a97fd807c06f92dd3e721/plotly-6.0.1-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/c9/58/c3bc54c0fad9a82899e9a2703e04ee6e8eaa76caa90c0689fd1b468a4427/pygridsio-1.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/ea/00/d815833441d8c52bf4a6930952e77d3de77d0bf67b3202ccc12dabdae279/pykrige-1.7.2.tar.gz
@@ -495,9 +499,11 @@ environments:
      - pypi: https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/df/88/9db5f49ebfdd9c12365e4cac76c34ccb1a642b1c8cbab4124b3c681495de/rasterio-1.4.3-cp313-cp313-win_amd64.whl
      - pypi: https://files.pythonhosted.org/packages/2a/2f/63d2cacc0e525f8e3398bcf32bd3620385f22cd1600834ec49d7f3597a7b/rioxarray-0.19.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl
      - pypi: https://files.pythonhosted.org/packages/cd/01/1204382461fcbfeb05b6161b594f4007e78b6eba9b375382f79153172b4d/scipy-1.16.3-cp313-cp313-win_amd64.whl
      - pypi: https://files.pythonhosted.org/packages/e3/f0/9f8cdf2258d7aed742459cea51c70d184de92f5d2d6f5f7f1ded90a18c31/shapely-2.1.0-cp313-cp313-win_amd64.whl
      - pypi: https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl
      - pypi: ./
      - pypi: C:/Users/knappersfy/work/thermogis/pydoubletcalc
packages:
- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
  sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726
@@ -4471,6 +4477,10 @@ packages:
  - pkg:pypi/partd?source=hash-mapping
  size: 20884
  timestamp: 1715026639309
- pypi: https://files.pythonhosted.org/packages/78/f9/690a8600b93c332de3ab4a344a4ac34f00c8f104917061f779db6a918ed6/pathlib-1.0.1-py3-none-any.whl
  name: pathlib
  version: 1.0.1
  sha256: f35f95ab8b0f59e6d354090350b44a80a80635d22efdedfa84c7ad1cf0a74147
- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
  sha256: 9f64009cdf5b8e529995f18e03665b03f5d07c0b17445b8badef45bde76249ee
  md5: 617f15191456cc6a13db418a275435e5
@@ -4752,6 +4762,20 @@ packages:
  - pkg:pypi/pycparser?source=hash-mapping
  size: 110100
  timestamp: 1733195786147
- pypi: C:/Users/knappersfy/work/thermogis/pydoubletcalc
  name: pydoubletcalc
  version: 0.0.1
  sha256: af6852e94daff598f382da9a04e74eb8649592424d163653d66a833bc140c065
  requires_dist:
  - pandas
  - matplotlib
  - pathlib
  - xarray
  - tqdm>=4.67.1
  - scipy>=1.16.2
  - numba>=0.62.1
  requires_python: '>=3.13,<3.14'
  editable: true
- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda
  sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b
  md5: 232fb4577b6687b2d503ef8e254270c9
@@ -4919,7 +4943,7 @@ packages:
- pypi: ./
  name: pythermogis
  version: 1.2.0
  sha256: bbba086a07a9972c4416d90c0cddf7f691529a60cac13dd8dd9fb2a236d68059
  sha256: f25432777c09250f39cf8019497063cc9860feeb7207723ab5ec7783781125d6
  requires_dist:
  - jpype1>=1.5.2,<2
  - xarray==2024.9.0.*
@@ -5317,13 +5341,13 @@ packages:
  purls: []
  size: 358164
  timestamp: 1749095480268
- pypi: https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl
- pypi: https://files.pythonhosted.org/packages/21/f6/4bfb5695d8941e5c570a04d9fcd0d36bce7511b7d78e6e75c8f9791f82d0/scipy-1.16.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
  name: scipy
  version: 1.15.3
  sha256: b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163
  version: 1.16.3
  sha256: 7dc1360c06535ea6116a2220f760ae572db9f661aba2d88074fe30ec2aa1ff88
  requires_dist:
  - numpy>=1.23.5,<2.5
  - pytest ; extra == 'test'
  - numpy>=1.25.2,<2.6
  - pytest>=8.0.0 ; extra == 'test'
  - pytest-cov ; extra == 'test'
  - pytest-timeout ; extra == 'test'
  - pytest-xdist ; extra == 'test'
@@ -5334,11 +5358,11 @@ packages:
  - scikit-umfpack ; extra == 'test'
  - pooch ; extra == 'test'
  - hypothesis>=6.30 ; extra == 'test'
  - array-api-strict>=2.0,<2.1.1 ; extra == 'test'
  - array-api-strict>=2.3.1 ; extra == 'test'
  - cython ; extra == 'test'
  - meson ; extra == 'test'
  - ninja ; sys_platform != 'emscripten' and extra == 'test'
  - sphinx>=5.0.0,<8.0.0 ; extra == 'doc'
  - sphinx>=5.0.0,<8.2.0 ; extra == 'doc'
  - intersphinx-registry ; extra == 'doc'
  - pydata-sphinx-theme>=0.15.2 ; extra == 'doc'
  - sphinx-copybutton ; extra == 'doc'
@@ -5346,10 +5370,11 @@ packages:
  - matplotlib>=3.5 ; extra == 'doc'
  - numpydoc ; extra == 'doc'
  - jupytext ; extra == 'doc'
  - myst-nb ; extra == 'doc'
  - myst-nb>=1.2.0 ; extra == 'doc'
  - pooch ; extra == 'doc'
  - jupyterlite-sphinx>=0.19.1 ; extra == 'doc'
  - jupyterlite-pyodide-kernel ; extra == 'doc'
  - linkify-it-py ; extra == 'doc'
  - mypy==1.10.0 ; extra == 'dev'
  - typing-extensions ; extra == 'dev'
  - types-psutil ; extra == 'dev'
@@ -5359,14 +5384,14 @@ packages:
  - rich-click ; extra == 'dev'
  - doit>=0.36.0 ; extra == 'dev'
  - pydevtool ; extra == 'dev'
  requires_python: '>=3.10'
- pypi: https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  requires_python: '>=3.11'
- pypi: https://files.pythonhosted.org/packages/cd/01/1204382461fcbfeb05b6161b594f4007e78b6eba9b375382f79153172b4d/scipy-1.16.3-cp313-cp313-win_amd64.whl
  name: scipy
  version: 1.15.3
  sha256: c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7
  version: 1.16.3
  sha256: 062246acacbe9f8210de8e751b16fc37458213f124bef161a5a02c7a39284304
  requires_dist:
  - numpy>=1.23.5,<2.5
  - pytest ; extra == 'test'
  - numpy>=1.25.2,<2.6
  - pytest>=8.0.0 ; extra == 'test'
  - pytest-cov ; extra == 'test'
  - pytest-timeout ; extra == 'test'
  - pytest-xdist ; extra == 'test'
@@ -5377,11 +5402,11 @@ packages:
  - scikit-umfpack ; extra == 'test'
  - pooch ; extra == 'test'
  - hypothesis>=6.30 ; extra == 'test'
  - array-api-strict>=2.0,<2.1.1 ; extra == 'test'
  - array-api-strict>=2.3.1 ; extra == 'test'
  - cython ; extra == 'test'
  - meson ; extra == 'test'
  - ninja ; sys_platform != 'emscripten' and extra == 'test'
  - sphinx>=5.0.0,<8.0.0 ; extra == 'doc'
  - sphinx>=5.0.0,<8.2.0 ; extra == 'doc'
  - intersphinx-registry ; extra == 'doc'
  - pydata-sphinx-theme>=0.15.2 ; extra == 'doc'
  - sphinx-copybutton ; extra == 'doc'
@@ -5389,10 +5414,11 @@ packages:
  - matplotlib>=3.5 ; extra == 'doc'
  - numpydoc ; extra == 'doc'
  - jupytext ; extra == 'doc'
  - myst-nb ; extra == 'doc'
  - myst-nb>=1.2.0 ; extra == 'doc'
  - pooch ; extra == 'doc'
  - jupyterlite-sphinx>=0.19.1 ; extra == 'doc'
  - jupyterlite-pyodide-kernel ; extra == 'doc'
  - linkify-it-py ; extra == 'doc'
  - mypy==1.10.0 ; extra == 'dev'
  - typing-extensions ; extra == 'dev'
  - types-psutil ; extra == 'dev'
@@ -5402,7 +5428,7 @@ packages:
  - rich-click ; extra == 'dev'
  - doit>=0.36.0 ; extra == 'dev'
  - pydevtool ; extra == 'dev'
  requires_python: '>=3.10'
  requires_python: '>=3.11'
- conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.3-py313h78bf25f_3.conda
  sha256: 7f548e147e14ce743a796aa5f26aba11f82c14ab53ab25b48f35974ca48f6ac7
  md5: 813e01c086f6c4e134e13ef25b02df8c
@@ -5614,6 +5640,22 @@ packages:
  - pkg:pypi/tornado?source=hash-mapping
  size: 878044
  timestamp: 1748003914685
- pypi: https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl
  name: tqdm
  version: 4.67.1
  sha256: 26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2
  requires_dist:
  - colorama ; sys_platform == 'win32'
  - pytest>=6 ; extra == 'dev'
  - pytest-cov ; extra == 'dev'
  - pytest-timeout ; extra == 'dev'
  - pytest-asyncio>=0.24 ; extra == 'dev'
  - nbval ; extra == 'dev'
  - requests ; extra == 'discord'
  - slack-sdk ; extra == 'slack'
  - requests ; extra == 'telegram'
  - ipywidgets>=6 ; extra == 'notebook'
  requires_python: '>=3.7'
- conda: https://conda.anaconda.org/conda-forge/noarch/twine-6.1.0-pyh29332c3_0.conda
  sha256: c5b373f6512b96324c9607d7d91a76bb53c1056cb1012b4f9c86900c6b7f8898
  md5: d319066fad04e07a0223bf9936090161
+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ platforms = ["win-64", "linux-64"]

[tool.pixi.pypi-dependencies]
pythermogis = { path = ".", editable = true }
pydoubletcalc = { path = 'C:\Users\knappersfy\work\thermogis\pydoubletcalc', editable = true }

[tool.pixi.tasks]
test = "PYTHONPATH=src/pythermogis pytest -s tests/"
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,11 @@ class DoubletInput:
    porosity: float
    temperature: float

    @property
    def permeability(self) -> float:
        DARCY_SI = 1.0e-12 / 1.01325
        return self.transmissivity / self.thickness * 1e-3 * DARCY_SI

@dataclass
class DoubletOutput:
    power: float
+78 −2
Original line number Diff line number Diff line
from typing import TYPE_CHECKING

from dataclasses import dataclass
from pythermogis.workflow.utc.utc_properties import UTCConfiguration
from pydoubletcalc import Aquifer, Doublet, Well, WellPipeSegment
from pythermogis.workflow.utc.water import get_salinity
from pythermogis.workflow.utc.rock import get_geothermal_gradient

if TYPE_CHECKING:
    from pythermogis.workflow.utc.doublet import DoubletInput


@dataclass
class Doublet1DResults:
    geothermal_powers: float
@@ -18,4 +26,72 @@ def doubletcalc(
        well_distance: float,
        injection_temp: float,
) -> Doublet1DResults:
    ...
 No newline at end of file
    aquifer = Aquifer(
        permeability=input.permeability,
        porosity=input.porosity,
        net_to_gross=input.ntg,
        thickness=input.thickness,
        salinity=get_salinity(props.salinity_surface, props.salinity_gradient, input.depth),
        surface_temperature=props.surface_temperature,
        geothermal_gradient=get_geothermal_gradient(input.depth, input.thickness, input.temperature, props.surface_temperature),
        rock_heat_capacity=855,
        rock_density=2720,
        thermal_conductivity=3,
        thermal_diffusivity=1.2e-6,
    )

    injector = Well(
        aquifer=aquifer,
        well_type="injector",
        pipe_segments=...,
        aquifer_top_depth=...,
        pipe_scaling=...,
        target_segment_length=...,
        outer_diameter=...,
        skin=...,
        pump_present=...,
        pump_pressure=...,
        pump_depth=...,
        pump_efficiency=...,
        pressure_balance_tolerance=...,
        viscosity_mode=props.viscosity_mode,
        heat_exchanger_exit_temperature=...,
    )
    producer = Well(
        aquifer=aquifer,
        well_type="producer",
        pipe_segments=...,
        aquifer_top_depth=...,
        pipe_scaling=...,
        target_segment_length=...,
        outer_diameter=...,
        skin=...,
        pump_present=...,
        pump_pressure=...,
        pump_depth=...,
        pump_efficiency=...,
        pressure_balance_tolerance=...,
        viscosity_mode=props.viscosity_mode,
        heat_exchanger_exit_temperature=...,
    )
    doublet = Doublet(
        aquifer=aquifer,
        injector=injector,
        producer=producer,
        well_distance=well_distance,
        cooling_fraction=0.1,
        yearly_operating_hours=props.load_hours,
        pressure_balance_tolerance=10,
        viscosity_mode=props.viscosity_mode,
        heat_exchanger_exit_temperature=injection_temp,
    )
    doublet.simulate()

    return Doublet1DResults( # TODO: check these values. Not sure what conversions should or shouldnt be done
        geothermal_powers=doublet.geothermal_power,
        cop=doublet.cop,
        flowrate=-doublet.volume_flow_pump * 3600,
        pump_power_required=doublet.pump_power * 1e-6,
        production_temp=doublet.nodes['prod_top'].temperature,
        heat_power_produced=[doublet.geothermal_power] * props.econ_lifetime_years,
    )
 No newline at end of file
+7 −0
Original line number Diff line number Diff line
from numba import njit

@njit
def get_geothermal_gradient(depth: float, thickness: float, temperature: float, surface_temperature: float) -> float:
    d_depth = depth +0.5 * thickness
    dt = temperature - surface_temperature
    return dt / d_depth
Loading