ACL Version 4.0

AirConditioning Library 4.0 is part of Modelon's 2026.2 release.

New versions of Modelon's libraries are sold and distributed directly from Modelon, as well as approved resellers.

New features

  • Orthogonal refrigerant discretization for flat-tube heat exchangers. Each flow pass can now be split into a configurable number of independent parallel refrigerant channels oriented along the flat-tube stacking axis (orthogonal to the refrigerant flow direction). This allows maldistribution between groups of flat tubes within a pass to be captured, and gives per-channel result variables for detailed post-processing.

    The feature is controlled by the new parameter n_segRefOrth on all TwoPhaseAir and TwoPhaseLiquid coolant-refrigerant heat exchanger models:

    • n_segRefOrth = ones(passes) (default) — one channel per pass, physically equivalent to the single-path model used in version 3.0 and earlier. Existing models require no changes to reproduce the same results.
    • n_segRefOrth[p] = N — pass p is split into N independent parallel channels, each covering an equal group of flat tubes. Different passes may carry different channel counts. Setting N = flattubes[p] gives one channel per flat tube for the maximum spatial resolution.

    Physical header volumes are present at every pass boundary regardless of the channel count. When n_segRefOrth[p] > 1 they act as mixing junctions that allow flow redistribution between the parallel channels and carry dynamically computed refrigerant mass; when n_segRefOrth[p] = 1 a single channel connects directly through the header with no redistribution effect. The wall and air discretization parameter n_segMtlperPass[p] is automatically aligned with n_segRefOrth[p] when orthogonal splitting is active.

    The replaceable refrigerant sub-component defaults to HXRefrigerantModel.SinglePath, which is fully backwards compatible with version 3.0. To enable orthogonal discretization with physical inter-pass header volumes, redeclare the sub-component to HXRefrigerantModel.Orthogonal under the Headers tab.

  • Per-channel refrigerant ports on flat-tube heat exchangers.

    The refrigerant boundary condition can now be prescribed per flat tube instead of through the single pair of connectors a1 / b1, and the manifolds that distribute the flow over the tubes can be modelled outside the component. This makes it possible to impose a measured or CFD-derived flow and inlet quality distribution directly, or to couple the heat exchanger to a manifold model with distributed pressure drop, gravity or phase separation.

    There is no enable flag: redeclare, then connect. Redeclaring RefrigerantChannelModel (tab Headers) to the new header-less HXRefrigerantModel.OrthogonalOpenChannels makes two connector arrays ref_inletSide and ref_oppSide appear on the heat exchanger, both indexed [layer, orthogonal position] and grouped by physical header side. Every entry of both arrays must then be connected. n_segRefOrth sets how many channels each pass is split into, and therefore how many connectors each array has; n_segRefOrth = geometry.flattubes gives one per flat tube. a1 and b1 carry no flow with this channel model and are left unconnected.

    Nothing changes for existing models: the connector arrays are conditional on the channel model's capability, so they are absent for every other RefrigerantChannelModel, including the default SinglePath.

    See HeatExchangers.Information, section Per-channel refrigerant ports, for the user guide, and the examples PerTubeInletBoundary (one connector per flat tube on a single-pass condenser) and LayeredEvaporatorExternalHeaders (a two-layer, six-pass evaporator with all internal manifolds built externally).

Improvements

  • Header geometry unified with HX core geometry. Refrigerant header dimensions (hydraulic diameter, length, cross-section area, volume) are now defined in the HX geometry record alongside the core flat-tube geometry parameters. This means all physical dimensions of the heat exchanger are collected in one place and are not tied to any particular refrigerant model abstraction. The parameters are propagated automatically to whichever refrigerant sub-model is active.

    At the refrigerant sub-component level, only parameters that are specific to a given implementation need to be set. The default HXRefrigerantModel.SinglePath exposes all inlet and outlet header parameters that were previously set at the HX grid level, providing full backwards compatibility. The HXRefrigerantModel.Orthogonal sub-model exposes parameters for the header pressure loss components at each pass boundary.

    Applies to both the HXGrid family (air-refrigerant heat exchangers) and the CoolantRefrigerantHXGrid family (coolant-refrigerant heat exchangers).

  • Now shows the correct variant-specific schematic image in Dymola for "Flow design" group image for HXGeoVertical and HXGeoHorizontal.
  • Impact users are advised to refer model documentation while paramerizing Vertical and Horizontal heat exchangers.
  • Now shows the correct variant-specific schematic image in Dymola for "Flow design" group image for HXGeoVertical and HXGeoHorizontal.
  • Impact users are advised to refer model documentation while paramerizing Vertical and Horizontal heat exchangers.
  • The PhaseSeparator component used in accumulators and receivers now filters the specific enthalpy at the inlet fluid port. This improves performance during zero‑flow operation by preventing very small negative flow rates from causing rapid enthalpy changes in upstream components. The filter can be disabled by setting trackInflowEnthalpy = false on the phase separator sub‑component. The filtered inlet enthalpy starts from the separator's initial enthalpy, so steady-state initialization of cycles with a receiver does not iterate it from zero.


Steady-state initialization at zero flow

  • Steady-state initialization is now well posed for volumes whose flow vanishes or reverses. With plain upwinding a volume's steady-state energy balance reads  mdot*(h_upstream - h) + Q = 0, so the coefficient of the enthalpy vanishes together with the flow: the enthalpy of a stagnant adiabatic volume is left undetermined, and it is discontinuous across a flow reversal, jumping between the enthalpies offered at the two ports and taking the temperature that drives the heat transfer with it. A diffusive enthalpy transport is now added for each port whose flow vanishes, so the enthalpy settles continuously on the mean of what its neighbours offer. Applies to Volume,  MultiportVolume, Junction and Split, and to the distributed volumes behind the pipe, valve and heat exchanger channel models.

    The energy balance itself is never dropped, so a volume that cannot carry heat away is still required to satisfy it: the heat flow is driven towards zero through the fluid temperature rather than being absorbed by the regularization.

    The correction is controlled by mdot_reg_init, the port flow below which it is applied, which defaults to 1e-5 kg/s — low enough that it engages only at genuinely vanishing flow. For a port carrying at least that flow rate the correction is exactly zero, so a component in normal flow initializes unchanged. If an initial solution has changed, reduce  mdot_reg_init below the initial flow rate of the affected component to restore it; setting it to zero disables the correction entirely. The parameter is used only in the initial equations and does not affect the simulated model.


    Analytical Jacobian support

  • The air heater component can now support an analytical Jacobian through a new positiveFlow parameter. If Jacobian generation fails, enabling this parameter may help. When enabled, the energy balance is enforced assuming air flows in the nominal direction.


Heat exchanger Air-side robustness

  • The default value of the lowest allowed temperature difference dT (used when evaluating average heat capacity as dh/dT) has been increased from 0.01 K to 0.1 K.
  • For the discretized air‑flow model HXAirFlowMoist:
    • The heat capacity per segment is now computed as the average heat capacity.
    • A correction has been made to prevent the condensate flow rate expression from becoming negative immediately before the onset of condensation.


Reduced number of events generated

  • The Limiter block in ControllersAndSensors now has a default value of strict = true instead of false. The underlying MSL component uses the noEvent operator when strict = true.
  • An if expression in the condenser summary record is now wrapped in noEvent.

Bug fixes

  • Compressors based on CompressorBase and the VaporInjectionCompressorTwoStage no longer cool the refrigerant or deliver shaft power when the discharge pressure is below the suction pressure (pressure ratio below 1), which can happen for a few seconds after a reversing valve switches. In that range the isentropic enthalpy change is negative, and it was divided by the lower limit of the isentropic efficiency (0.05): the discharge enthalpy dropped by up to 20 times the isentropic change and the shaft power became negative. In R1234yfDefrostCycle the compressor discharged liquid at 267 K with a shaft power of -51 kW at the start of defrost. The compressor now passes the gas without enthalpy change and with zero shaft torque when the pressure ratio is below 1. Results change only while a running compressor sees a pressure ratio below 1.

Back to top