libICEpost.src.engineModel.HeatTransferModel

@author: F. Ramognino <federico.ramognino@polimi.it> Last update: 12/06/2023

Package with models for describing heat losses at walls.

Submodules

Classes

HeatTransferModel

Base class for modeling of wall heat transfer.

Woschni

Class for computation of wall heat transfer with Woschni model:

Package Contents

class libICEpost.src.engineModel.HeatTransferModel.HeatTransferModel[source]

Bases: libICEpost.src.base.BaseClass.BaseClass

Base class for modeling of wall heat transfer.


classmethod fromDictionary(dictionary: dict) Self[source]

Construct from dictionary with heat transfer model parameters (to be overloaded for docstring)

Returns:

instance of selected heatTransferModel

Return type:

Self

abstractmethod h(*, engine: libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel, CA: float | collections.abc.Iterable | None = None, **kwargs) float[source]

Compute wall heat transfer coefficient at walls. To be overwritten.

Parameters:
  • engine (EngineModel) – The engine model from which taking data.

  • CA (float | Iterable | None, optional) – Time for which computing heat transfer. If None, uses engine.time.time. Defaults to None.

Returns:

convective wall heat transfer coefficient [W/(m^2 K)]

Return type:

float

update(/, **args) None[source]

Update coefficients of the model

class libICEpost.src.engineModel.HeatTransferModel.Woschni(/, *, nwos: float = 1.32, C1: float = 3.26, C2cv: float = 2.28, C2ge: float = 6.18, C2corrcv: float = 0.308, C2corrge: float = 0.417, C3comp: float = 0.0, C3comb: float = 0.00324, useTurbulence: bool = False)[source]

Bases: libICEpost.src.engineModel.HeatTransferModel.HeatTransferModel.HeatTransferModel

Class for computation of wall heat transfer with Woschni model:

h = C1 * (p/1000.)^.8 * T^(-0.53) * D^(-0.2) * uwos^(0.8) C2Prime = C2 + C2corr * (u’/upMean) uwos = C2Prime * upMean + C3 * (p - p_mot) * Vs * T0 / (p0 * V0) p_mot = p * ( V0 / V )**nwos

Vs: Displacement volume upMean: Mean piston speed

Where:
  1. C2 changes depending if at closed-valves (C2cv) or during gas-exchange (C2ge)

  2. C3 changes depending if during compression (C3comp) or during combustion/expansion (C3comb)

  3. Reference conditions (0) are at IVC or startTime if it is in closed-valve region.


Attibutes:
coeffs: dict

Container for model constants

classmethod fromDictionary(dictionary: dict) Woschni[source]

Construct from dictionary.

Parameters:

dictionary (dict) – the input dictionary, containing: nwos (float, default 1.32) C1 (float, default 3.26) C2cv (float, default 2.28) C2ge (float, default 6.18) C2corrcv(float, default 0.308) C2corrge(float, default 0.417) C3comp (float, default 0.0) C3comb (float, default 3.24e-3) useTurbulence (bool, False)

Returns:

Instance of this class

Return type:

Woschni

coeffs
h(*, engine: libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel, CA: float | collections.abc.Iterable | None = None, **kwargs) float[source]

Compute convective wall heat transfer with Woschni correlation:

h = C1 * (p/1000.)^.8 * T^(-0.53) * D^(-0.2) * uwos^(0.8) C2Prime = C2 + C2corr * (u’/upMean) uwos = C2Prime * upMean + C3 * (p - p_mot) * Vs * T0 / (p0 * V0) p_mot = p * ( V0 / V )**nwos

Vs: Displacement volume upMean: Mean piston speed

Where:
  1. C2 changes depending if at closed-valves (C2cv) or during gas-exchange (C2ge)

  2. C3 changes depending if during compression (C3comp) or during combustion/expansion (C3comb)

  3. Reference conditions (0) are at IVC or startTime if it is in closed-valve region.

  4. C2corr changes depending if at closed-valves (C2corrcv) or during gas-exchange (C2corrge)

Parameters:
  • engine (EngineModel) – The engine model from which taking data.

  • CA (float | Iterable | None, optional) – Time for which computing heat transfer. If None, uses engine.time.time. Defaults to None.

Returns:

convective wall heat transfer coefficient [W/(m^2 K)]

Return type:

float

uwos(engine: libICEpost.src.engineModel.EngineModel.EngineModel.EngineModel, *, CA: float | collections.abc.Iterable | None = None) float[source]

uwos = C2Prime * upMean + C3 * (p - p_mot) * Vs * T0 / (p0 * V0) C2Prime = C2 + C2corr * (u’/upMean) p_mot = p * ( V0 / V )**nwos

Vs: Displacement volume upMean: Mean piston speed

Where:
  1. C2 changes depending if at closed-valves (C2cv) or during gas-exchange (C2ge)

  2. C3 changes depending if during compression (C3comp) or during combustion/expansion (C3comb)

  3. Reference conditions (0) are at IVC or startTime if it is in closed-valve region.

  4. C2corr changes depending if at closed-valves (C2corrcv) or during gas-exchange (C2corrge)

Parameters:
  • engine (EngineModel) – The engine model from which taking data.

  • CA (float | Iterable | None, optional) – Time for which computing heat transfer. If None, uses engine.time.time. Defaults to None.

p_mot(*, p0: float | collections.abc.Iterable, V: float | collections.abc.Iterable, V0: float | collections.abc.Iterable)[source]

p_mot = p0 * ( V0 / V )**nwos