# 2.15. Version 5.2 (2021/11/01)

New Features

  - Added capability to postprocess global variables using global string functions

    These global functions execute in the order they are parsed, so take care when using global functions that depend on other global functions. Global functions are evaluated last among all of the other postprocess commands

  - Added capability to define an arbitrary binary state user field, with optional activation and deactivation criteria specified as string functions. Within a material block, these fields can be defined using

Bug Fixes

  - Refactored global variable interface to fix internal bugs and remove error-prone interfaces. Note that the `getGlobalVariable(name)` interface for user subroutines is deprecated use `getGlobalVariableValue(name)` instead. The old method returned the current global variable reference, which allowed unsafe editing and potential bugs.

  - Bug fixed regarding toggling multiple contact enforcements independently (COMPSIMHD-10544). Parsing now enforces a one-to-one relationship between the contact definition block and the enclosed enforcement block.

    Known issues

      - Contact status and face visualization fields are potentially incorrect when a surface is shared between separate contact definition blocks that are toggle independently.

  - Bug fixed regarding element activation when using directed energy model (COMPSIMHD-10518). The model now activates all elements whose average temperature exceeds the activation temperature if given. Note that some slight differences in solution are possible, as the previous approach activated elements when any single node exceeded the activation temperature. To avoid activating elements prematurely before they are deposited, both the directed energy source and activation_user_function thermal conductivities now support referring to a ‘deposit’ field.

Upcoming Deprecations (will warn in 5.2)

  - The `getGlobalVariable(name)` interface for user subroutines is deprecated use `getGlobalVariableValue(name)` instead. The old method returned the current global variable reference, which allowed unsafe editing and potential bugs.

  - The use of `USE BLOCK` within the bulk element block to specify a block in the mesh to be used in lieu of creating bulk node parts has been deprecated. If a mesh already contains a bulk node block with the same name (e.g. from a previous simulation) this will be used automatically.

  - Output to file support for dataprobes has been deprecated. Please add the data probe global variable to a heartbeat output block instead.