# 2.2. Version 5.26

New Features

  - Added multiphase support to the models bulk mass density = [porous_density, mass_fraction_porous_density] and transported enthalpy = porous to ensure pore volume is split accordingly to an optional saturation. Previously, these models assumed a single phase occupying the pore volume.

  - Data probes now have an optional `points_outside_tol` argument to specify their behavior when they are outside any elements by more than their specified or default search tolerance. The default behavior is to abort, but they can instead be set to a specified value (nan, zero, or a large number).

  - Added material phase sum models to support single DOF porous enthalpy equation wherein phases are assumed to be in thermal equilibrium.

  - Viewfactors are now only recalculated if the enclosure geometry has changed - enable this by setting VIEWFACTOR UPDATE = ONLY_IF_GEOMETRY_CHANGED in the enclosure definition

Bug Fixes

  - Fixed bugs in the two-axis and three-axis cases for rotated bcs. The two-axis bug (impacts edges) violated rotation invariance. The root issue was that for certain rotations / choice of basis the K-means clustering used to cluster the normals would assign a single cluster to all normals, precluding the permutation search from finding the correct optimal rotation angle for the two-axis case. The three-axis bug (impacting corners) was due to using a non-orthonormal basis when the projection of the linear system onto the new basis relies on an orthonormal basis.

  - Fixing the above three-axis rotated bc bug, exposed a rotated bc wedge corner bug wherein two opposing faces ended up contributing to the same residual component, leading to an unconstrained residual component / unintended mesh motion. This is now fixed.

  - Fixed mesh boundary flux bug specific to the new porous relative mass flux formulation first introduced in 5.24 release. The presence of overlapping sidesets, skinned surfaces from auto contact, and interior sidesets previously would adversely impact the automatic mesh boundary flux computed when using the relative mass flux formulation (e.g., double counting contributions potentially). The boundary mesh flux is now computed on a skinned surface of the block as opposed to any surface touching the block, avoiding the previous issues.

  - Fixed contact bug wherein a) if two contact enforcements were specified for the same pair of surfaces and b) these enforcements were applied across two different contact definitions, then each contact enforcement would be double counted.

  - Fix bug with rotated BC where svd algorithm did not converge to correct basis

  - Fixed postprocessor bug causing lumped terms to be ignored in postprocessing if non-lumped terms are also present and would error if there were multiple lumped terms