TNO Intern

Commit 7cacc5fc authored by Florian Knappers's avatar Florian Knappers
Browse files

more efficiency: use named tuple instead of Dataclass

parent 0c0313a9
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
import timeit
from dataclasses import dataclass
from typing import NamedTuple

import numpy as np

@@ -17,7 +18,7 @@ EUR_PER_CT_PER_KWH = 0.36
NPV_SCALE = 1e-6


@dataclass
@dataclass(slots=True, frozen=True)
class DoubletInput:
    unknown_input_value: float
    thickness: float
@@ -34,8 +35,7 @@ class DoubletInput:
        return self.transmissivity / self.thickness * 1e-3 * DARCY_SI


@dataclass
class DoubletOutput:
class DoubletOutput(NamedTuple):
    power: float
    hppower: float
    capex: float
+2 −4
Original line number Diff line number Diff line
from __future__ import annotations

import math
from dataclasses import dataclass
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, NamedTuple

from numba import njit
from pydoubletcalc import Aquifer, Doublet, Well, WellPipeSegment
@@ -18,8 +17,7 @@ if TYPE_CHECKING:
INCH_SI = 0.0254


@dataclass
class Doublet1DResults:
class Doublet1DResults(NamedTuple):
    geothermal_powers: float
    cop: float
    flowrate: float
+4 −8
Original line number Diff line number Diff line
from __future__ import annotations

from dataclasses import dataclass
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, NamedTuple

import numpy as np
from numpy.typing import NDArray
@@ -18,8 +17,7 @@ KWH_TO_MJ = 0.36 * 1e9
HOURS_IN_YEAR = 8760


@dataclass
class CapexCalculatorResults:
class CapexCalculatorResults(NamedTuple):
    sum_capex: float
    total_capex: float
    variable_opex: list[float]
@@ -28,14 +26,12 @@ class CapexCalculatorResults:
    heat_power_per_year: list[float]


@dataclass
class UTCCalculatorResults:
class UTCCalculatorResults(NamedTuple):
    discounted_heat_produced: float
    utc: float


@dataclass
class EconomicsResults:
class EconomicsResults(NamedTuple):
    capex: CapexCalculatorResults
    utc: UTCCalculatorResults

+2 −4
Original line number Diff line number Diff line
from __future__ import annotations

from dataclasses import dataclass
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, NamedTuple

import numpy as np

@@ -14,8 +13,7 @@ if TYPE_CHECKING:
    from pythermogis.workflow.utc.utc_properties import UTCConfiguration


@dataclass
class VolumetricFlowResults:
class VolumetricFlowResults(NamedTuple):
    hp_cop: float
    hp_added_power: float
    hp_elec_consumption: float
+2 −4
Original line number Diff line number Diff line
from __future__ import annotations

from dataclasses import dataclass
from typing import TYPE_CHECKING
from typing import TYPE_CHECKING, NamedTuple

from pythermogis.workflow.utc.doublet_utils import get_cop_carnot
from pythermogis.workflow.utc.water import (
@@ -16,8 +15,7 @@ if TYPE_CHECKING:
    from pythermogis.workflow.utc.utc_properties import UTCConfiguration


@dataclass
class HeatPumpPerformanceResults:
class HeatPumpPerformanceResults(NamedTuple):
    hp_cop: float
    hp_added_power: float
    hp_elec_consumption: float
Loading