2.5. Version 5.12 (2023/02/09)

New Features
  • Expression-based reduction operations can now be performed on enclosure radiation face fields (i.e., rad_flux, irradiance, and radiosity) for banded and non-banded models

  • Dash enclosures can now be used with skinned surface spanning multiple energy equation types (e.g., ENERGY, POROUS_ENTHALPY)

  • Dash enclosures can now be specified using a mix of blocks to skin and surfaces to include, either of which may correspond to mesh groups or assemblies

  • Contact enforcements can now be applied to periodic surfaces. Note that periodicity is currently only supported for scalar enforcements.

Bug Fixes
  • Postprocessing residual-based flux fields on Q2 elements gave incorrect “checkered” results due to using nodal areas computed from reducing determinant values at the integration points. The nodal area is now computed in a manner that is consistent with the residual i.e., A_i = \int \phi_i dA. Line commands affected include postprocess flux_scalar_field and postprocess flux_vector_field.

Upcoming Deprecations (will warn in 5.12)
  • The Using data specification command for flux BCs is deprecated - use the required parameters directly.

  • Coupling with Scefire is deprecated - use Nalu instead.

New Deprecations (will error in 5.12)
  • Encore functions. See Legacy Postprocessor Conversion for help on conversion/available tools.

  • Legacy aria post-processors. See Legacy Postprocessor Conversion for help on conversion/available tools.

  • Migration away from “magic parameter strings” requires updating user plugin expressions with the following changes or they will not compile

    1. Change constructor to take const PrsrParamMap& params instead of const String& params

    2. Do not pass a params string to the base Expression, FAD_Expression, or User_Equation_System_Utility class

    3. Retrieve parameters using one of the following commands:

    get_required_parameter(params, "ParamName", value, ParamCtx{this});
    get_optional_parameter(params, "ParamName", value);
    
    const auto value = get_required_parameter<double>(params, "ParamName", ParamCtx{this});
    const auto value = get_optional_parameter_or_default(params, "ParamName", defaultValue);
    
    // returns std::optional
    const auto value = get_optional_parameter<double>(params, "ParamName");