# 2.5. Version 5.20 (2024/06/17)

New Features

  - Can now use globals in string functions without using a global user expression. e.g. `density = scalar_string_function f = "temperature/my_gvar.global"`

  - Linear Solver Improvements:

    - Improvements to Teko linear solvers and documentation. Please consult Road-map for Constructing Teko Solvers for additional information.

    - Two new MueLu preset solvers: `thermal_multigrid` and `high_aspect_continuity`.

  - The MPMD coupling strategy has now been generalized for flexibility:

    - These changes are now tracked by a coupling version, which will ensure backwards compatibility with older versions of coupled apps

    - Support for send field and receive field relaxation has been added for the implicit coupling.

    - A –tftklog coupling_output command line switch has been added to help investigate issues with convergence in implicit couplings by outputting intermediate iterations to the results files.

  - Clamping anti-windup has been added to the PID Controller which matches the behavior of Matlab Simulink. A conversion script has also been provided for matching Labview (see discussion for caveats).

  - Advective bars can now be coupled to CVFEM porous enthalpy equation.

Bug Fixes

  - Using a `tensor_string_function` for intrinsic permeability now automatically includes the `intrinsic_permeability_scaling` term, which is included in other intrinsic permeability models but was missing from the string function models. Also added scaling to the `Young and Todd` model and enforced consistent subindex and phase rules (the intrinsic permeability scaling is expected to be in the `SOLID_PHASE` and can use a species subindex to be applied to a per-species intrinsic permeability).

  - Postprocessed string functions that use globals will now use the up-to-date global value, whereas previously the string function would have used the previous time-steps global value.

Change in Behaviors

  - By default, the preset linear solvers will use the automatic convergence tolerance, see Tolerance Settings.

  - Gradient of a vector field now returns the gradient of each vector component stored row wise. Indexes should be flipped when referring to the corresponding tensor components in string functions (e.g., T_XY, the partial derivative of the y component with respect to x, is now accessed via T_YX).