August 20, 2025
This file constitutes revision 0 of the release notes for Ansys LS-DYNA® version R16.1.0.
The string “REVISION 16” must appear in the license file to run version R16.1.0. Please contact your distributor or your Ansys sales representative if you need to have your license updated.
The R16.0 User’s Manuals provide documentation for R16.1.0. To download these manuals, go to https://lsdyna.ansys.com/manuals/. For features mentioned in these notes missing from the R16.0 User’s Manuals, please refer to the DRAFT User’s Manuals at https://lsdyna.ansys.com/manuals/. Please note that not all features in the DRAFT User’s Manuals are available in version R16.1.0.
The remainder of this file briefly describes new features, enhancements, and bug fixes in version R16.1.0. Other recent releases may also include some of these updates.
We arranged the items by category. Understand that, in many cases, a particular item may pertain to more than one category. In the interest of brevity, we list each item only once, under a single category.
Added the standard \(k\)-\(\epsilon\) turbulence model to the CPG solver (optional) using ITURB in *CONTROL_CPG.
For CPG airbags, added dynamically adapting surface particles according to current element area.
Added acoustic directivity (*FREQUENCY_DOMAIN_ACOUSTIC_DIRECTIVITY) output for collocation BEM (METHOD = 3 on *FREQUENCY_DOMAIN_ACOUSTIC_DIRECTIVITY).
Made (*CONTROL_IMPLICIT_SSD_DIRECT) available in MPP.
Add optional local average interparticle distances around vents and orificies with fields HLENV and HLENO in *AIRBAG_CPG for local refinement around these critical areas.
Added part output of mass flow rate, heat transfer, and heat transfer rate to abstat_cpg. Also, added global output of the total mass and average temperature of each airbag to abstat_cpg.
For *AIRBAG_CPG, added bag integrity checks to see if the external mesh is closed and normal vectors are consistent.
Added TSW to *AIRBAG_CPG to trigger a switch from the CPG formulation to uniform pressure (meaning control volume) at a given time.
Added PPOP to *AIRBAG_CPG to open the vents and keep them open based on a pressure differential.
Add the Lagrangian velocity of the inflator to the gas velocity exiting the inflator orifices. Also, when particles inherit an initial velocity from the attached coordinate system defined by NID1/2/3 in *AIRBAG_CPG, add the corresponding kinetic energy.
If the provided polynomial coefficients defining \(C_p(T)\) in *DEFINE_CPG_GAS_PROPERTIES define a nonmonotonic function, the curve is now trimmed by automatically identifying \(T_{\text{min}}\) and \(T_{\text{max}}\) centered around ambient temperature to become the following piecewise function:
This modification guarantees the Newton-Raphson iterations used to find temperature from energy will always converge.
Added an error message if the fabric porosity option, FVOPT, on *MAT_FABRIC (*MAT_034) is not 7 or 8 when used with CPG airbags (*AIRBAG_CPG).
Improved the stability of free slip boundary conditions for CPG (NSLIP = 0 on *CONTROL_CPG.
Added support for the FLC porosity option defined in *MAT_FABRIC for CPG airbags.
Added an input check on the parts in SID1 and SID2. Parts in SID2 should be in SID1. Vents should be in SID1 but not in SID2. An error message is now output if this is not the case.
Added error message if shell IDs associated with the airbag inflator for *AIRBAG_CPG cannot be found in the part set defining the airbag.
Added updating the inflator area during time integration to support deformable inlets.
Added ability for *SENSOR_DEFINE_FORCE with FTYPE = CPM to return either the average airbag pressure or the part pressure. Previously, only the average airbag pressure was returned. Now, the part pressure can be returned instead by setting field CPMPID to a part ID.
Support specifying HCONV on *AIRBAG_PARTICLE or *DEFINE_CPM_NPDATA with a *DEFINE_CURVE_FUNCTION.
Support specifying the total mass flow rate into a CPM airbag (*AIRBAG_PARTICLE) with a *DEFINE_CURVE_FUNCTION using LCMCF on *DEFINE_CPM_GAS_PROPERTIES. Note that LCMCF cannot be used when using the MOLEFRACTION keyword option for *AIRBAG_PARTICLE.
Support FVOPT = 1 and 2 on *MAT_034 for CPM airbags (*AIRBAG_PARTICLE).
Made improvements to SPRSRCH = 1 on *CONTROL_CONSTRAINED. Better search results can be obtained, especially when solid element parts are involved. For solid element parts, nodes on the surface facing the SPR connector are detected, leading to automatically finding enough nodes.
For SPR2 and SPR3, added option to modify the nodal weights for force distribution. Setting the tens digit of INTP to 1 causes considering nodal areas and adding a participation factor for better consideration of distances between SPR and the associated nodes.
Added support for contact option TCSO (optional card D) to the MPP versions of SINGLE_SURFACE, AUTOMATIC_SINGLE_SURFACE, and AIRBAG_SINGLE_SURFACE.
Enabled the outputting of *INITIAL_CONTACT_WEAR data to the dynain file when *CONTACT_ADD_WEAR is used with segment-to-segment (SOFT = 2) contact interfaces. Note that *INTERFACE_SPRINGBACK_LSDYNA must be in the input deck for the dynain to be output, and that SAPR and/or SBPR on Card 1 of the contact definition for this data to be output.
Added flag IBEAMS2S, which enables beam elements in segment-to-segment contact if set to 1. The beams flag is an integer flag in field 4 of *CONTACT_… optional Card G. If this flag is omitted or set to 0, then beams will not be included in the contact. The treatment of beam elements in segment-to-segment contact does not depend on the *CONTACT keyword. To include beam elements in the contact, SURFATYP and/or SURFBTYP should be set to 2, 3, 5, or 6, with beam parts included in the surface defined for types 2 and 3 and not exempted for type 6.
Changed the behavior of TIEOPT on *CONTROL_CONTACT based on customer feedback. TIEOPT = 1 is now the same as TIEOPT = 0, except that it invokes a groupable effect. This groupable effect allows SURFB nodes in different interfaces to be shared. TIEOPT = 2 calls the alternative algorithms previously invoked with TIEOPT = 1, but no longer converts SHELL_EDGE_TO_SURFACE contacts to SHELL_EDGE_TO_SOLID contacts. A list of tied pairs that change is also output with TIEOPT = 2.
Fixed memory leak when using *EM_EXTERNAL_FIELD.
Added support to use *INCLUDE_TRANSFORM with EM for load curve IDs, set IDs, part IDs, and material IDs.
Improved the mapping algorithm to reduce runtime and increase reliability when transferring data after remeshing.
Refined the force computation for the RIIS method (see *ICFD_CONTROL_IMMERSED), causing results that better match body-fitted simulations.
Added residence time and shear outputs on both sides of embedded shells to d3plot.
Added cost estimates for IGA solid elements (*IGA_SOLID) to improve load balancing for MPP.
Support materials *MAT_261 and *MAT_262 for IGA solid elements (*IGA_SOLID).
Added support for *CONTACT_TIED_SHELL_EDGE_TO_SURFACE and *CONTACT_TIED_SHELL_EDGE_TO_SOLID to be used with structured IGA trimmed solid elements (*IGA_SOLID). This is only available in MPP using GRPABLE = 1 in the optional MPP contact cards without selective mass scaling. Any standard finite element node can be tied to an IGA solid element.
Added option VP = 4.0 to *MAT_024 to invoke filtering/smoothing of the plastic strain rate. It is like VP = 1.0 but supports *DEFINE_TABLE_COMPACT like VP = 3.0.
Added option PDOPT to *MAT_083_PATH_DEPENDENT to choose between using the current value or maximum value of \(1-J\) in the table specified with TBID (*DEFINE_TABLE_3D).
Enabled *MAT_091 to be used with *INITIAL_FOAM_REFERENCE_GEOMETRY.
Allow logarithmic interpolation in some \(E\) (Young’s modulus) as a function of strain rate curves. This is available for LCEMOD > 0 in *MAT_123, *MAT_187, and *MAT_187L. If the first strain rate is negative, all values are expected to represent the natural logarithm of a strain rate.
Made an improvement to *MAT_187 to avoid failed iterations in the plasticity algorithm: Added a convergence criterion that helps in high triaxiality cases (\(|p| >> \sigma_{\mathrm{vm}}\) where \(p\) is pressure and \(\sigma_{\mathrm{vm}}\) is the von Mises stress).
Improved the behavior of *MAT_187 with LCID-C > 0 and poorly defined LCID-P. Extrapolation into the negative region could have led to a Poisson’s ratio that is less than -1. Now, a constant value is used instead of extrapolating.
Made improvements for shells with *MAT_SAMP_LIGHT (*MAT_187L), such as always using Brent’s method if LCID-T and LCID-C are different tables with an improved start value for Brent.
For *MAT_224, made the plastic work conversion to a thermal heat source available for axisymmetric solids.
Added new arguments to functions in *MAT_240_FUNCTIONS: total separation components, plastic separation components, and cohesive thickness.
Added keyword option STOCHASTIC to *MAT_251. Scaling factor for yield stress on history variable #9. The current yield stress can be found on hisvar #5.
Enable *MAT_251 to work with solid tetrahedron type ELFORM = 13.
Added new option for the critical energy criterion of *MAT_280 (GLASS): ENGCRT < 0 refers to a *DEFINE_FUNCTION ID equal to |ENGCRT|. This function has one argument: the minimum distance of the center of impact to the edge of the windshield. Thus, the critical energy value can now depend on this distance.
subroutine usrflux
). Fixed bug when using *CONTROL_ACOUSTIC_SPECTRAL that led to a segmentation fault during MPP restarts.
Fixed bug in BEM triangular element regeneration that occurred when normal vector inversion is requested (NORM = 1) on *FREQUENCY_DOMAIN_ACOUSTIC_BEM.
Fixed bug in the MATV computation (*FREQUENCY_DOMAIN_ACOUSTIC_BEM_MATV) with variational indirect BEM (METHOD = 2) caused by the Skeletonized Interpolation method. The bug led to an incorrect solution.
Fixed bug in writing out the nodal normal velocity to the d3acs database for dual collocation BEM with the Burton-Miller formulation (METHOD = 4 on *FREQUENCY_DOMAIN_ACOUSTIC_BEM).
Fixed bug in writing d3acp and d3acs databases when using a single precision executable.
Fixed potential errors in nodout and elout that could in rare cases occur with models using in-memory adaptivity (INMEMRY = 1 on *CONTROL_ADAPTIVE).
Fixed an occasional memory violation error when using *CONTROL_ADAPTIVE with solid elements.
Fixed the over-adapting problem when using *CONTROL_ADAPTIVE with in-memory on (INMEMRY = 1).
Fixed issue when there are multiple orifice lines (NORIF > 1 on *AIRBAG_CPG) referencing the same gas for CPG airbags. Each orifice was injecting the entire gas mass, instead of distributing across orifices.
Refactored inflator data to properly assign different gases to different inflators for *AIRBAG_CPG.
Made bug fixes for the temperature calculation from energy when \(C_p(T)\) is not constant for CPG airbags.
Fixed part temperature output to abstat_cpg for internal parts. It was erroneously reporting double the correct value. It was an output issue only and did not affect the simulation.
For CPG airbags, made the volume flow rate output consistent with leakage (the signs were reversed).
Fixed the \(P\)-\(V\) work calculation for CPG airbags. The previous calculation was based on average pressure instead of pressure at the boundary elements.
Fixed the CPG to structure coupling to make sure the coupling forces are not applied to vents.
For CPG airbags, fixed the porosity leakage calculation. The user-provided load curve gives gas velocity as a function of absolute pressure, but the previous implementation assumed this was referring to the pressure differential between the bag pressure and atmospheric pressure.
Fixed issue when internal parts are inflators for CPG airbags. Orifice particles became duplicated, resulting in an incorrect boundary condition being applied.
Fixed a bug when using *DATABASE_FSI with S-ALE that could lead to wrong FSI results.
Cured the massless orphan nodes added after S-ALE mesh generation to avoid a divide by zero crash.
Fixed a memory bug when a model contains both eroding contact and an S-ALE part.
Support *MAT_155 (*MAT_PLASTICITY_COMPRESSION_TENSION_EOS) with S-ALE. This material has not worked with S-ALE since S-ALE was added a feature.
Fixed issue when using ALE with *DATABASE_MATSUM that might lead to a crash.
Corrected the detection of triangular faces for the CESE conjugate heat transfer boundary condition.
Fixed *MESH-based tetrahedral mesh generation for CESE. This fix includes correcting the handling of an error message and correcting the misnaming of two *CESE keywords in the keyword checking database.
Fixed an issue in MPP that could cause contact forces from segment-to-segment (SOFT = 2) contact with DEPTH = 45 and enabled friction to not be correctly attributed to corresponding force transducers.
Fixed inconsistency issues of *CONTACT_AUTOMATIC_SINGLE_SURFACE in the hybrid solver.
Fixed issue in determining the beam element contact thickness due to not honoring the thickness scaling factor in some cases. Specifically, *CONTACT_AUTOMATIC_BEAMS_TO_SURFACE was not honoring the SFSAT parameter.
Fixed failure to tie the surfaces when using the MPP version of the *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_TIED_WELD contact in the case where the temperature is driven by a *LOAD_THERMAL_LOAD_CURVE.
Fixed issue in the *DEFORMABLE_TO_RIGID code in MPP that caused a memory error during switching when using segment-to-segment (SOFT = 2) contact.
Fixed issue causing hanging with hybrid executables when using eroding contact.
Fixed bug in single surface Mortar contact for beams in explicit analysis. The bucket sort had been broken in R16.0.
Fixed issue when using nonzero SBOX in *DEFINE_DE_TO_SURFACE_COUPLING with NFREQ = 1 on *DEFINE_DE_ACTIVE_REGION. The box was being ignored, and the issue led to a deadlock later in the run.
Fixed MPI deadlock issue for *DEFINE_DE_ACTIVE_REGION.
Made adjustments to *MODULE processing of the REFPROP and CoolProp EOS libraries so that they can be used by the dual CESE solver. Note that to use the REFPROP EOS library with the dual CESE solver, you must obtain a number of additional files, provided by LS-DYNA technical support. Please contact them for help with this. The CoolProp library is not working with the dual CESE solver.
For the MPP solver, corrected the enabling of table look-up for the REFPROP and CoolProp EOS libraries on all processors other than processor 0.
Fixed restarts for the Monolithic solver in magnetostatic cases.
Made a small fix to the \(\mathbf{P}\) matrix assembly for tetrahedral elements in magnetostatic cases. This fix improved the results.
Fixed wrong mapping of nodal coordinates in MPP for *EM_RANDLES_SHORT when using the tshell Randles model (see *EM_RANDLES_TSHELL).
$ ...
). Fixed a bug when using METHOD = 102 (LOBPCG) on *CONTROL_IMPLICIT_EIGENVALUE with *BOUNDARY_FLUIDM. The execution could have errored out for problems with constraints, such as rigid bodies or constrained interpolation.
Fixed bug in METHOD = 111 (Sectoral Symmetry) on *CONTROL_IMPLICIT_EIGENVALUE. In some situations, the method would yield (easily identifiable) incorrect results.
Fixed bug when using *DAMPING_FREQUENCY_RANGE_DEFORM in implicit dynamic analysis. Symptoms of the bug could include poor convergence behavior in nonlinear solutions or runaway oscillation in linear solutions.
Fixed issue with the Lanczos solver (*CONTROL_IMPLICIT_EIGENVALUE) for tiny problems when using MPP that caused the eigenvalue in the solution to be half the expected value.
Corrected two errors with *PART_MODES in MPP:
These issues caused the job to crash.
Added logic to cleanly terminate for the combination of dynamic relaxation (*CONTROL_DYNAMIC_RELAXATION, IDRFLG > 0) and *CONTROL_IMPLICIT_MODES.
Fixed a bug in the decomposition of IGA solid elements (*IGA_SOLID that could have led to an error indicating that there are processors that do not have any elements.
Corrected the added mass output in glstat for IGA solid elements (*IGA_SOLID).
Corrected the “list of material being considered” (included/excluded) for contact in d3hsp for IGA solid elements (*IGA_SOLID).
Correct the computation of cross-sectional area for secfor output for IGA solid elements (*IGA_SOLID).
Fixed bug in the added mass output in matsum for IGA solid elements (*IGA_SOLID).
Write missing fatigue data from *MAT_ADD_FATIGUE for generated visualization beams. Lack of this data caused input processing failures in models that have visualization beams with materials models that included fatigue.
Fixed issue with *MAT_015 shell elements with initial temperature from dynain. Initialization of the internal energy was needed as well to get the correct initial temperature.
Fixed incorrect shell element deletion behavior for *MAT_024 with VP = 1, 2, or 4. The element was deleted only when the last integration point failed. The corrected behavior is that the element should only be deleted when all integration points fail.
Fixed bug in *MAT_060 for the specific combination of solid elements with ELFORM = 1 with implicit time integration that could cause the analysis to crash. The bug did not affect *MAT_060 solids with ELFORM = 2 or -2, nor did it affect *MAT_060 shells.
For *MAT_076_MOISTURE:
Fixed issue with function evaluation in some spot weld models. This issue applies to *MAT_100_DA with *DEFINE_CONNECTION_PROPERTIES (PRUL \(\ge\) 2), *MAT_169, *MAT_240_FUNCTIONS, and *DEFINE_MULTI_SHEET_CONNECTORS. *DEFINE_FUNCTION arguments sm1 and sm2 (maximum engineering yield stresses) could have been wrong if determined from a curve/table in the weld partner material. This has been broken since March 2024.
Fixed material 126 (*MAT_MODIFIED_HONEYCOMB) for thick shell formulations 3, 5, and 7 when LCA < 0 and ECCU > 0. There were incorrect stress transformations, resulting in incorrect element stress and forces.
Fixed bugs in *MAT_179 affecting the stress extraction from tables and the energy initialization.
Fixed bug in *MAT_187L when RATEOP = 1 and LCID-C is a table. A potential change of the Ducker-Prager yield criterion slope during return mapping was not correctly taken into account, leading to wrong stresses.
Fixed bug in *MAT_SAMP_LIGHT (*MAT_187L) with solids and difficult return mapping. An update of a history variable (deviatoric plastic strain) was missing when Brent’s method was used. This could have led to wrong stress results.
For *MAT_261 (*MAT_LAMINATED_FRACTURE_DAIMLER_PINHO), always use the absolute value of strain rate in the table evaluation. Prior to this change, negative values of strain rates would have led to a wrong table evaluation.
Fixed issue when using large IDs (\(>2^{24}\)) for LCSS in *MAT_261.
Fixed error termination that occurred in the keyword input phase for *MAT_295.
Fixed rare case where a parameter expression (*PARAMETER_EXPRESSION) might not get echoed to the d3hsp file. This lack of echoing only happened when the *PARAMETER_EXPRESSION instantiation was the last keyword in an include file.
Fixed bug in *DEFINE_MATERIAL_HISTORIES that could cause solid integration point strain (NINTSLD = 8 on *DATABASE_EXTENT_BINARY) output to binary databases to be overwritten.
Fixed bug in NPLTC that caused the databases to be written at a later time than expected, particularly for implicit.
Fixed an issue where ALE data being output to the d3full file could, in some cases, corrupt the d3full file, resulting in unpredictable behavior when restarting from the d3full file.
Fixed issue causing the beam axial strain to not be transferred in a full restart.
Fixed a bug for *SENSOR_DEFINE_FORCE for FTYPE = X-SECTION. The bug led to reporting wrong results for the cross-section force.
Fixed a bug for *SENSOR_DEFINE_MISC with MTYPE = RIGIDBODY. The bug happened when a deck has *SENSOR_CONTROL with TYPE = ELESET. The reported rigid body kinematics values were wrong.
Fixed error causing incorrect values to be used as the fictitious velocities applied with *BOUNDARY_SPH_NOSLIP when IDIM = 2 in *CONTROL_SPH for MPP executables.
Fixed memory issue that might cause a crash for MPP single precision executables when FORM = 9 or 10 in *CONTROL_SPH.
Fixed incorrect output to the sldsph_frag file when *DEFINE_ADAPTIVE_SOLID_TO_SPH is used on multiple processors.
Fixed the binout output for the thermal solver in MPP. The thermal data ended up in the wrong section.
For axisymmetric and 2D solids, the thermal thick shell option (THSHEL on *CONTROL_SHELL) is deactivated now, and a warning is printed, instead of throwing an error.
Fixed memory issue where the functions AX, AY, AZ, AX2, AY2, and AZ2 in *DEFINE_CURVE_FUNCTION could overwrite previously defined instances.
Fixed a bug that occurred when using a d3kil file containing sense switch SWE. The bug resulted in immediate termination instead of proceeding with the simulation after terminating explicit dynamic relaxation.
Corrected the computation of the number of through-thickness integration points for NUMFIP < 0 on *DEFINE_ELEMENT_EROSION. Prior to this fix, the calculation of the number of through-thickness integration points was incorrect, leading to an incorrect percentage computation and potentially incorrect erosion behavior.
Avoid problems with too many entries in *INCLUDE_PATH or *MODULE_PATH by increasing the limit for the number of total cards defining paths in a model from 50 to 100 and adding an error check for more than 100 entries.
Made a few fixes for *DEFINE_STOCHASTIC_VARIATION. This feature was not working when PID refers to a part set with more than eight parts. VAR_S/F = 3 or 4 (curves) were not working in single precision since December 2023.
Fixed combination of *INCLUDE_TRANSFORM and *DEFINE_TABLE_{X}D with X \(\ge\) 3. IDFOFF was not correctly applied to the table IDs on Card 2.