#############
Release Notes
#############

**Since 5.18**

**New features and syntax changes**

- New PID preload algorithm for explicit analyses can handle large gaps better.
- Added ability to disable overlap removal for specific interactions.
- Added internal moment through cross section capability in user output.

**Fixes, performance, and robustness improvements**

- Implicit solver convergence improvements for analyses with inactive blocks. 
- Fix for cohesive elements to allow ``EXTRAPOLATION`` user output.
- Fixed surface integral on sidesets containing cohesive elements.
- Significant performance enhancements for ``FLEX_FOAM`` material model
- Convergence improvements for models containing the ``FLEX_FOAM`` material model
- Fix initial condition using a projection for source entity type ``NODES``.
- Zapotec: fix material insertion errors that occur when using ``death_threshold>1``.
- Performance has been restored for problems involving contact, mesh modification, and shell elements
- Energy reporting has been fixed for problems that have rotational DOF's.
- Negative restart time issue has been fixed; previously, this resulted in an error stating that the database was missing.
- Fix material state variables being used in analytical functions.


**Since 5.16**

**New features and syntax changes**

- Spot welds are supported on composite Tet10 element faces.
- Contact can be restricted to spherical subdomain, see :numref:`contact-surface-restriction`.
- Composite Tet10 elements are now able to interpolate fields for user output.
- Zapotec can now output the pressure applied to a structure from CTH loads.

**Fixes, performance, and robustness improvements**

- Performance improvements due to optimizations and library upgrades could improve runtimes for simulations with heavy I/O, having large numbers of element blocks, or substantial amounts of element death.
- Gap calculation capabilities re improved to capture a wider range of desired use cases. 
- Improvements made to phase field linear solver defaults, including guardrails.
- Enhancements for beam lofting improve contact and tieing capabilities.

**Since 5.14**

**New features and syntax changes**

- ``Search = ACME`` has been deprecated with explicit contact enforcement.
- The ``BCJ`` material model has been deprecated in favor of other similar material model implementations (e.g. ``BCJ_MEM``) with improved implementations and levels of verification.  
- A nodal variable ``sm_preload_internal_reaction_plane`` was added to enable users to visualize the cutting plane used to calculate internal reaction forces for bolt preload calculations.
- A new preload preset option is available to calculate preload using a target value of the ``AVERAGE VON MISES`` stress.
- For fields read from external meshes, and pressure and traction boundary conditions, the command ``COPY NEAREST ELEMENT|FACE|NODE`` is now available. This command allows for nearest copy transfers between different source and target variable types, e.g. element variables can now be transferred to nodal, face, or element variables. Face variables can be transferred to nodal or face variables. See :numref:`conditions-variable-extmesh`.

**Fixes, performance, and robustness improvements**

- Resolved a hang issue where a directory is specified instead of a file as input to the ``DATA FILE`` option in a function definition.
- Performance improvements to the preload capability that could lead to 2x-3x speedup when a large number of bolts may be present in the model.
- Starting analyses with a restart data block that points to a non-existent ``INPUT DATABASE NAME`` file will result in an error, rather than being silently ignored.
- Fixed a parallel issue when applying pressure to a sideset located between two blocks, and also located on a parallel boundary.
- Improved MPCs and joints for higher-order tetrahedral elements, including the default 10-node composite tetrahedral element. Users should see more correct behavior along interfaces subject to MPC constraints, line welds, spot welds, and shell-solid joints.
- ``BCJ_MEM`` material model: Several fixes and performance improvements have been made. The internal material model solver has been enhanced to improve convergence and performance in some problems. Several issues were fixed in the recrystallization kinetics. In particular, an erroneous factor of ``1/\mathrm{temperature}`` was removed. This factor may be added back in, if desired, for backward compatibility using the ``RECRYSTALLIZATION KINETICS FUNCTION``. Additional improvements include consistent handling of the temperature field for adiabatic heating analyses, correct initialization of recrystallization and misorientation state variables, support for L2 transfers and remeshing, support for control failure, and better robustness for implicit solutions, among other things.

**Since 5.12**

**New features and syntax changes**

- Memory: Global variables to track memory usage during an analysis have been added to output. See :numref:`output-tab-mem_globvars`.
- Output: Rolling averages of nodal variables over a time window can now be output. See :numref:`output-results-user`. 
- Output: A nodal variable to represent external forces due to pressure can now be output with the command ``EXTERNAL FORCE CONTRIBUTION OUTPUT NAME``. See :numref:`conditions-force-pressure`. 
- *J*-integral: This capability has been upgraded from in-development to production. See :numref:`sect-jint`.
- *J*-integral: The *J*-integral can optionally be calculated through a new ``J_INTEGRAL REGION``, which allows for using a different mesh to compute the *J*-integral than the mesh used for analyzing the full model. See :numref:`sect-jint-region`.

**Fixes, performance, and robustness improvements**

- Rigid Body: Documentation added for forming a rigid body out a node set. See :numref:`elements-functionality-rigid`.
- Implicit: Documented the full tangent preconditioner markings ``U``, ``S``, ``M``, that appear in the log file. See :numref:`implicit-markings`. 
- Decomposition: Updated documentation on the different options. See :numref:`elements-decompmethod`.
- Nonlocal average: Some clarifications to the syntax documentation. See :numref:`output-results-user`. 
- FETI: Updated documentation for matrix output, options for the ``PRECONDITIONING METHOD``, and deprecated ``NUM LOCAL SUBDOMAINS``. See :numref:`implicit-feti`.
- Shells: Updated documentation to clarify that shell thickness variable must be an element variable. See :numref:`elements-sections-shell`. 

**Since 5.10**

**New features and syntax changes**

- Bolt Preload: Multiple "bolts" in a block can now be simultaneously preloaded to single target (previously we recommended a maximum of one bolt per block). Disconnected components (bolts) will be separated by default and this is now the recommended use. The separation can be turned off with the command ``SEPARATE COMPONENTS = OFF``. See :numref:`bou-preloading`.
- Damper Section: A new command, ``VISCOSITY COEFFICIENT FUNCTION`` has been added. This allows the specification the damping coefficient as an arbitrary function of the relative velocity. See :numref:`elements-dampsec`. 
- Assemblies: Non-existent block ids are now allowed (and ignored) with the command ``ALLOW MISSING BLOCK IDS = ON``. An example of a mesh assembly modification has been added. See :numref:`elements-assemblies`.
- Shell Elements: A ``CONTACT THICKNESS SCALE FACTOR`` may now be specified in the shell section. See :numref:`elements-sections-shell`.
- Overlap Removal: A new command, ``PRINT ALL DEBUGGING DATA = ON``, has been added. Using this command will list all problematic overlap areas instead of the top problematic area (default behavior). See :numref:`contact-interactions-specific`.
- Sensors: A new block command ``BEGIN SENSOR`` was added. This capability enables the user to generate output on a mesh entity or nonlocal domain in a specific coordinate frame. See :numref:`output-sensor`

**Fixes, performance, and robustness improvements**

- Assemblies: The same assembly name used more than once in an input file is no longer supported, e.g. if ``my_assembly`` is first defined over blocks 1 to 3, and a second ``BEGIN ASSEMBLY`` command then defines ``my_assembly`` over blocks 4 to 6, Sierra/SM will error out. This makes the syntax consistent with the rest of Sierra/SM. Previously this second definition would create an union of the two assemblies in ``my_assembly``. The union of assemblies can still be accomplished between an existing mesh assembly and a user defined input file assembly. See :numref:`elements-assemblies`.
- Elements: The documentation for the default shape metric of 10 node tetrahedron elements has been updated. The default is metric is the mean ratio, not the normalized inradius. See :numref:`commands-metrics`.
- Lanczos: The command to force a global timestep is ``FORCE GLOBAL TIMESTEP``, not ``FORCE LANCZOS TIMESTEP``. See :numref:`explicit-other-lanczos`.
