R16.2.0 Release Notes

April 16, 2026

1 Release notes revision

This file constitutes revision 1 of the release notes for Ansys LS-DYNA® version R16.2.0. In revision 0, item 2 in Section 6.7 had two unconnected release notes combined together. The second note is now item 6 in Section 6.6. Additionally, item 2 in Section 6.10 had the keyword mentioned as *IN­TER­FACE_­­COM­PEN­SA­TION_­SPRING­BACK instead of *IN­TER­FACE_­­COM­PEN­SA­TION_­3D.

2 License

The string “REVISION 16” must appear in the license file to run version R16.2.0. Please contact your distributor or your Ansys sales representative if you need to have your license updated.

3 Documentation

The R16.0 User’s Manuals provide documentation for R16.2.0. To download these manuals, go to http­s://ls­dy­na.an­sys.­com/­man­u­al­s-­down­load/. For features mentioned in these notes missing from the R16.0 User’s Manuals, please refer to the DRAFT User’s Manuals at http­s://ls­dy­na.an­sys.­com/­man­u­al­s-­down­load/. Please note that not all features in the DRAFT User’s Manuals are available in version R16.2.0.

4 Notes

The remainder of this file briefly describes new features, enhancements, and bug fixes in version R16.2.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.

5 New

5.1 Adaptivity

  1. Added *FRE­QUEN­CY_­­DO­MAIN_­FR­F_­RE­DUCED to run FRF with reduced eigenmodes output (eigenmodes output at selected nodes).

5.2 Airbags

  1. Added coupling CPG with DEM invoked with *DE­FINE_­DE_­­TO_­CPG_­­COU­PLING. Coupling can be two-way, one-way with DEM information passed to CPG, and one-way with CPG information passed to DEM. Drag forces and heat fluxes are exchanged between CPG and DEM. Associated energies and works can be tracked in abstat_cpg.

  2. Added *DE­FINE_­CPG_­ADAP­TIVE to adapt the particle size based on the distance to the wall.

  3. Added support for blocking of porosity and venting based on contact forces. See BLOCK in *AIRBAG_­CPG.

5.3 Discrete Element Method

  1. Added thermal coupling between Discrete Element Spheres (DES) and solid or shell elements using keywords *CON­TROL_­DIS­CRETE_­ELE­MENT, *DE­FINE_­DE_­BY_­­PART, and *DE­FINE_­DE_­­TO_­­SUR­FACE_­­COU­PLING. New input fields provide the atmospheric temperature, DES temperature, thermal conductivity between shell/solid elements and DES, surface temperature, specific heat capacity, and the thermal expansion coefficient. The DES can expand or contract rigidly to simulate soft materials under the influence of temperature.

5.4 Elements

  1. Added *DE­FINE_­SWITCH_­SHELL to define a region in which the shell formulation and/or number of through-thickness integration points are changed.

5.5 Forming Analysis

  1. Added keyword *CON­TROL_­­FORM­ING_­S­CALE to scale the blank in each direction. In the draw die design process, the draw die usually needs to be scaled so that the draw shell can fit on the tools in the subsequent process. This keyword provides a more efficient way to obtain an optimized scaling through scaling the draw shell for the following gravity simulations. Thus, performing the draw simulation ahead of time is not necessary, and you can try many different scales to find the optimized scale.

6 Improvements and Enhancements

6.1 Adaptivity

  1. Support using RESTRT = -3 (using bevelf) and RESTRT = -30 (using bevelf.lsda) for the collocation BEM with Burton-Miller formulation method (METHOD = 4 in *FRE­QUEN­CY_­­DO­MAIN_­A­COUSTIC_­BEM).

  2. Support using *FRE­QUEN­CY_­­DO­MAIN_­­PATH for reduced FRF (*FRE­QUEN­CY_­­DO­MAIN_­FR­F_­RE­DUCED).

  3. Enabled using STRFLG (L = 1) in *DATA­BASE_­EX­TEN­T_­BI­NA­RY to control strain output in d3rms and d3psd from a random vibration analysis (*FRE­QUEN­CY_­­DO­MAIN_­RAN­DOM_­VI­BRA­TION).

6.2 Airbags

  1. Add input checking of the airbag geometry for CPG airbags (*AIRBAG_­CPG) to ensure elements do not share three or more nodes.

  2. Added support for thermal coupling for internal parts of CPG airbags.

  3. Modified the surface sampling algorithm for CPG airbags. When an element is very elongated (as is typical for vents meshed with null shells), the updated algorithm switches to sampling along the longest median instead of using Gauss point locations.

  4. Improved the vent boundary condition for CPG airbags. A more accurate gradient evaluation reduces the amount of refinement needed in vent regions to obtain a converged result.

  5. Improved no-slip boundary conditions in the tangential direction for CPG airbags.

  6. Made a change to the evaluation of porosity curves. The previous behavior was to reset the value to zero when outside of the bounds of the provided curve. We now use the last slope to extrapolate outside of the curve’s range, similar to CPM.

  7. Added shear friction force to structure coupling for CPG airbags.

  8. Added optional start time to *AIRBAG_­CPG (see BIRTH).

6.3 ALE

  1. Added support for the IHDO flag in *CON­TROL_­­TIMESTEP for S-ALE.

6.4 Blast

  1. Added a smoothing factor to smooth out the blast load from the particle blast method (PBM). To use this, set SMOOTH on *DE­FINE_­­PAR­TI­CLE_­BLAST to a value greater than 1. The unsmoothed blast load is used if the factor is the default value of 1.

6.5 Constraint Cards

  1. Added two more arguments to the *DE­FINE_­­FUNC­TION definition for SPR3 (*CON­STRAINED_­IN­TER­PO­LA­TION_­SPOTWELD): normal and tangential velocity.

  2. Added three new output quantities for SPR3 to binout/swforc: “velocity,” “velocity_axial,” and “velocity_shear.”

  3. Removed SPR2/SPR3 visualization beams from *CON­TAC­T_­EROD­ING_­S­IN­GLE_­­SUR­FACE. This avoids undesirable involvement of those beam elements in the contact.

6.6 Contact

  1. Skip offset tied contacts (*CON­TAC­T_­…_­OFF­SET) when checking for ties that would shorten beams.

  2. Detect empty shell sets used in *CON­TACT definitions, and flag these as errors during keyword processing.

  3. Added field DEFBLK to *CON­TROL_­­CON­TACT to manually specify the default bulk modulus used for the contact stiffness calculation. For parts where we calculate a bulk modulus of zero, instead of using the maximum value in the model (which has always been the default behavior), use the value specified in DEFBLK. We also added a warning message listing all the parts where this default bulk modulus is used.

  4. For Mortar contact, support specifying the penetration reduction as a load curve with MPAR1 < 0 when IGNORE = 4. Previously, this was only supported for IGNORE = 3.

  5. Made a minor change to the TIEOPT = 2 (*CON­TROL_­­CON­TACT) treatment of tied interfaces: for SURFA nodes for which their adjacent segments are constrained to the SURFB side, the rotational degrees of freedom are ignored for the conversion logic.

  6. Slightly modified the output value for “contact gap” in the intfor database for *CON­TAC­T_­AU­TO­MAT­IC_­…_­TIEBREAK with OPTION = 13 or 14. This value not only shows damage, but also a small margin to damage initialization: \(\mathrm{contact\ gap} = 0.99\times\mathrm{damage} + 0.01\times\min(1,\delta_m/\delta_{m1})\).

6.7 Control Cards

  1. Added option MAEF = 2 on *CON­TROL_­­MAT. In addition to turning off *MAT_­AD­D_­ERO­SION or *MAT_­AD­D_­­DAM­AGE_­DIEM/GISS­MO globally (MAEF = 1), this also deactivates failure in materials 24, 103, 105, 106, 114, 123, 124, 155, 195, 225, 251, and 255 by setting FAIL = 0 internally for all corresponding *MAT cards in a model.

  2. Added field PSMAEF to *CON­TROL_­­MAT. PSMAEF is a part set ID that specifies which parts the deactivation of failure/damage with MAEF applies.

6.8 Elements

  1. Modified the cohesive element quality check, option COHEQC on *CON­TROL_­­SOL­ID. This check is performed only for cohesive elements with materials that have ROFLG = 0.

6.9 EM (Electromagnetic Solver)

  1. Added stimulus on beams in the multifront time stepping Eikonal solver (*EM_­EP_­EIKON­AL).

  2. Fixed a bug in the ECG (*EM_­EP_­ECG) computation that led to slightly incorrect results.

  3. The EM solver supports the *IN­CLUDE_­­TRANS­FORM offsets specified in Card 2b.1.

  4. In the 2D axisymmetric Eddy Current 2D solver, the Lorentz force calculation now better accounts for element deformation, resulting in higher accuracy.

  5. Optimized the FEM and BEM matrix assemblies, resulting in reduced calculation times.

  6. Optimized initialization in cases that involve EM contact.

  7. Optimized the internal operation that calculates the current density, resulting in a slight reduction in calculation times (visible mostly on large cases that use FEM-based solvers).

  8. Improved the overall robustness of the EM solver when using FEM-based solvers. We added automatic criteria in the FEM system solve that check whether the incoming matrices have changed. If they have changed, a refactorization is automatically performed if the direct solver is used. We made this change after noticing that using birth or death times for boundary conditions led to incorrect results unless the birth/death times coincided with a FEM matrix reassembly.

  9. We now take the average of the interaction between face A against face B and face B against face A when assembling the symmetric BEM matrices (\(Q\), \(W\), …), rather than simply the first one that was calculated (for example, face A against face B). This makes the result more consistent across different element orderings, as round-off errors that depend on the order of calculations could introduce micro changes in the results. As a result, this new approach may cause some small differences in results compared to previous versions but should overall be more consistent.

  10. Randles circuit output files can now have IDs over 999999.

  11. Support conductive shells when using the frequency-based Eddy current solver (EMSOL = 4 on *EM_­­CON­TROL).

  12. Changed the way Joule heating is calculated. We are now directly using the scalar product of the current density and electric field rather than the squared electric field divided by the conductivity. We made this change because accuracy was poor in areas where elements with high conductivity were right next to those with poor conductivity. The new way should not introduce large changes in thermal coupling problems, but it is possible that results may differ slightly from previous versions (and should offer higher accuracy).

  13. Modified the d3plot for the frequency-based solvers (EMSOL = 4, 7, or 9 on *EM_­­CON­TROL): complex vectors are now directly output. To read them properly, use a LS-PrePost version 4.13 or later.

  14. Always output the magnetic surface force to d3plot. Previously, it was only output when permanent magnets were present.

6.10 Forming Analysis

  1. Added METHOD = 9 to *IN­TER­FACE_­­COM­PEN­SA­TION_­3D. This option is intended for the compensation of the trim die. After drawing forming, the draw shell is put on the trim post (or nest). Due to springback, a separation may exist between the shell and the blank. However, a tool-large gap causes quality issues when the upper tool moves down and closes it. This option morphs the post and exists to make sure the gap between the blank and the post is within tolerance.

  2. Added fields FXNSID and TRRNSID to *IN­TER­FACE_­­COM­PEN­SA­TION_­3D to specify the nodes that are fixed during springback compensation and the transitional region during compensation, respectively.

  3. For springback compensation, generate file nomoreiteration when all the nodes are within the tolerance, meaning the solution has converged.

  4. Enabled tipping (*CON­TROL_­­FORM­ING_­TIP­PING) of solid elements.

6.11 Implicit (Mechanical) Solver

  1. Moved the removal of untied spot weld (see SPOTDEL on *CON­TROL_­­CON­TACT) or cohesive elements (see ICOH on *CON­TROL_­­SOL­ID) to cycle 0 for implicit to avoid solver problems. Previously, this removal was performed at cycle 1.

  2. Changed the input of the First Shift (RPARM1) of Fast Lanczos (EIGMTH = 103 on *CON­TROL_­IM­PLIC­IT_­EIGEN­VAL­UE) to hertz

  3. Changed the output of Fast Lanczos (EIGMTH = 103 on *CON­TROL_­IM­PLIC­IT_­EIGEN­VAL­UE) to output the frequencies in hertz instead of the eigenvalues.

  4. Improved the computation of the Lanczos shifting scale when using Block Lanczos (EIGMTH = 1 on *CON­TROL_­IM­PLIC­IT_­EIGEN­VAL­UE) for problems with stiffness and mass entries that are very small but nonzero.

  5. Reworked *CON­TROL_­IM­PLIC­IT_­RESID­U­AL_­VEC­TORS, which drives the computation of residual vectors. Additional post-processing of the residual vectors was required for use in the frequency domain and to match the results of competitor software.

6.12 Isogeometric Analysis (IGA)

  1. For IGA shells (*I­GA_­SHELL), added a detailed GISSMO failure report for failed interpolation elements and related parent IGA elements to the message file

  2. For IGA solids (*I­GA_­­SOL­ID), sped up the keyword reading phase. This improvement led to a significant reduction in memory consumption.

  3. Added the number of failed IGA shell and solid elements and their associated interpolation elements to the “failed element” report in the message files.

6.13 Materials and Equations-of-State

  1. Issue an error message if no other hardening law can be found when using *MAT_­AD­D_­BA­SIC_­IN­CRE­MEN­TAL_­­FAIL­URE with LCSS = 0.

  2. Support IRATE on *CON­TROL_­IM­PLIC­IT_­­DY­NAM­ICS for the DIEM damage model (*MAT_­AD­D_­­DAM­AGE_­DIEM).

  3. Added option TETSF to *MAD_­AD­D_­­DAM­AGE_­GISS­MO. It is a scale factor applied to the element size of tetrahedral elements when obtaining the regularization factor with LCREGD. With this scale factor, the same material card can be used for both hexahedral and tetrahedral elements.

  4. Made a minor change for GISSMO output with *DE­FINE_­­MA­TE­RI­AL_­HIS­TO­RIES. Label “Damage” with attribute A1 = 2

  5. Capped the exponential term in *MAT_­JOHN­SON_­­COOK (*MAT_­015) when VP = 1.0 to avoid random crashes.

  6. Implemented flag BNDLCO in *MAT_­­RIGID and option IPRT < 0 in *CON­STRAINED_­N­ODAL_­­RIGID_­­BODY so that a rigid body’s forces and moments written to bndout are in the bodys local coordinate system.

  7. For *MAT_­3-­PA­RA­ME­TER_­BAR­LAT, made a small improvement to the tangent stiffness calculations for more robust implicit behavior.

  8. Added table evaluation flag, TFLG, to *MAT_­036E. If TFLG = 0.0, tables LCH00/45/90 depend on strain and strain rate (default). If TFLG = 1.0, tables LCH00/45/90 depend on strain and history variable #12 or can be 3D tables that depend on strain, strain rate, and history variable #12. History variable #12 is an arbitrary user-defined variable that can be set with *INI­TIAL_­STRESS_­SHELL or *INI­TIAL_­HIS­TO­RY_­N­ODE. Additionally, the effective plastic strain rate is output as history variable #6.

  9. For *MAT_­036_­NLP, changed the second history variable to maximum failure. Previously the strain ratio was output.

  10. Allow the combination of *MAT_­077_­O with N = -1 (thermal option) and solid element formulation 13. This was not previously supported.

  11. Added outputting the formability index as history variable #9 for shell elements with material *MAT_­133.

  12. Added option VFAST to *MAT_­187 to activate a vectorized version of the original implementation, potentially leading to a computational cost reduction of up to 30%.

  13. Added option to *MAT_­240 to make elastic moduli rate dependent. EMOD (GMOD) < 0 references a curve giving the Young’s (shear) modulus as a function of strain rate. Logarithmic interpolation is used if the first abscissa value is negative. This feature is available for *MAT_­240 without the THERMAL, 3MODES, or FUNCTIONS keyword options.

  14. Added new history variables for *MAT_­240_­THER­MAL. History variable #16 is FG1, #17 is FG2, and #25 is the state variable.

  15. Support the external variable feature (*LOAD­_­EX­TER­NAL_­­VARI­ABLE) for shell elements with *MAT_­254. Previously, only solid elements were supported for this material.

  16. Add warning message, INI+625, that is output for *EOS_­TAB­U­LAT­ED (*EOS_­009) if the data is not increasing monotonically, as it may cause the bulk modulus to be 0.0 or infinity, causing the analysis to error terminate.

6.14 Output

  1. Append “ *** End Error” or “ *** End Warning” at the bottom of error and warning messages to make parsing of these messages easier.

  2. Improved the reporting of line numbers when reading encrypted input files. Formerly a line number was reported that mapped to some line in the encrypted input. This could narrow down which encrypted block contained the error, but nothing more. Now, if the current line is being read from an encrypted block, two line numbers are reported, such as 572:12. The first is the same as was reported before and is enough to identify the encrypted block. The second corresponds to the actual line count in the decrypted version of the block. So if the original plaintext version is available, this will pinpoint the offending line in a way that was not possible before. The “:” notation only occurs if the line is from an encrypted block.

  3. Echo warning message, KEY+1655, when part set IDs in *DATA­BASE_­EX­TEN­T_­SSSTAT_­ID and *DATA­BASE_­EX­TEN­T_­SS­STAT are zero.

  4. Write the d3dat data when sense switch 4 (sw4) is provided and during an error termination. Note that d3dat is only output when running CPG problems or if the input deck contains *DATA­BASE_­BI­NA­RY_­D3­DAT.

6.15 SPG (Smooth Particle Galerkin)

  1. Added damage model IDAM = 8 (*SEC­TION_­­SOLID_­SPG). For this model, FS is the critical value of the damage value taken from the material model, and STRETCH is not used.

  2. Support surface segment sets that come from 10-node tetrahedral meshes for *DE­FINE_­SPG_­­TO_­­SUR­FACE_­­COU­PLING.

6.16 SPH

  1. ISPH structure particles (meaning particles embedded on shell meshes to represent the boundaries) are no longer shifted when ISHIFT = 1 in *CON­TROL_­SPH.

  2. Limited communications between processors for SPH calculations to only those involved. This improvement significantly reduces MPI calls in very large simulations where SPH particles are distributed across only a subset of processors. It also reduces the probability of the program hanging when SPH particles are used.

  3. Made SPH mass flow plane (*DE­FINE_­SPH_­­MASS­FLOW_­­PLANE) results consistent between SMP and MPP.

  4. Added error that is triggered by using invalid IOPT values in *DE­FINE_­ADAP­TIVE_­­SOLID_­­TO_­SPH.

6.17 Miscellaneous

  1. Changed the logic of parameter evaluation in keyword titles/headings. If the parameter name exists, we evaluate the parameter; otherwise, we consider the “&” symbol to be part of the string, and no error is returned.

  2. Added command line option heartbeat = ncycleh to write a status line to an ASCII file named heartbeat. If ncycleh > 0, a line is appended to the file every ncycleh cycles. If ncycleh < 0, the file contains a single line that is overwritten every \(|\mathrm{ncycleh}|\) cycles.

  3. Added option STRUCT to *DAMP­ING_­­PART_­­MASS to exclude lumped mass from *ELE­MEN­T_­­MASS.

  4. For *IN­TER­FACE_­LINK­ING_­N­ODE/SEG­MENT, added optional field DEATH to specify a death time for the linking interface.

  5. Allow input of material ID (MID) for *DE­FINE_­S­TO­CHAS­TIC_­­VARI­A­TION. If PID_TYP = 2, then “PID” is expected to be a MID. Internally, several *DE­FINE_­S­TO­CHAS­TIC_­­VARI­A­TIONs for parts with the same MID are created.

7 Bug Fixes

7.1 Adaptivity

  1. For *BOUND­ARY_­FLU­IDM, fixed a bug in the added fluid mass computation that occurred when multiple internal fluid volumes exist. The issue could cause a crash.

  2. For *BOUND­ARY_­FLU­IDM, fixed a bug in the added fluid mass computation that occurred when simultaneous internal and external fluids exist. This issue led to a crash.

  3. Fixed bug in writing d3atv when velocity is defined on nodes instead of elements (NOEL = 1 in *FRE­QUEN­CY_­­DO­MAIN_­A­COUSTIC_­BEM).

  4. Fixed a bug in running random vibration fatigue (*FRE­QUEN­CY_­­DO­MAIN_­RAN­DOM_­VI­BRA­TION_­­FA­TIGUE) with multiple element sets, which led to an incorrect solution.

7.2 Airbags

  1. Fixed issue with DRTYP = 4 (spherical region) on *DE­FINE_­CPG_­RE­GION that caused it not to work properly.

  2. Fixed bug that occurred when multiple *DE­FINE_­CPG_­RE­GION cards were defined. The regions were not initialized properly.

  3. Fully support multiple *AIRBAG_­CPG definitions.

7.3 ALE

  1. Fixed issue that caused no FSI effect when MCOUP = 0 on *ALE_­STRUC­TURED_­F­SI in MPP.

  2. Fixed issue that could corrupt a memory pointer when filling an S-ALE volume using GEOM = SEGSET or PART on *ALE_­STRUC­TURED_­MESH_­VOL­UME_­­FILL­ING

  3. Fixed several bugs that could cause memory access violations from S-ALE mesh deletion (see TDEATH on *ALE_­STRUC­TURED_­MESH).

7.4 Boundary Cards

  1. For |CMO|=2 (set on *CON­STRAINED_­N­ODAL_­­RIGID_­­BODY and *MAT_­­RIGID), the resampled, instead of the raw, curve was incorrectly used by *BOUND­ARY_­PRE­SCRIBED_­­MO­TION_­­RIGID.

7.5 CESE Compressible Fluid Solver

  1. Fixed a chemistry initialization step broken in R15 needed for the chemically-reacting flow solver.

7.6 Constraint Cards

  1. Fixed bug for *CON­STRAINED_­TIED_­N­ODES_­­FAIL­URE. Shell and solid element parts both using this feature in the same model did not work.

7.7 Contact

  1. For nonzero friction, the stonewall energy was incorrect for *RIGID­WAL­L_­­PLA­NAR. This issue applies to constraint-based rigid walls (see RWPNAL on *CON­TROL_­­CON­TACT).

  2. Support providing the bucket sort frequency with a load curve (negative BSORT) for segment-to-segment (SOFT = 2) contact in MPP.

  3. Fixed beam segment contact when using segment-to-segment (SOFT = 2) contact. The search for adjacent beam segments to be excluded from contact was not being done, so self contact was slow, and beams at folds could cause forces that are better left out.

  4. Fixed the pressure calculation for triangular contact segments when outputting values to the intfor file or ncforc databases. The pressure was 3/4 of the correct value for pressure on tetrahedral mesh surfaces.

  5. Made the *CON­TAC­T_­EN­TI­TY IDs output to binout for both SMP/MPP be the same as the IDs output to the ASCII output for SMP.

  6. For rigid walls in subcycling (*CON­TROL_­­SUB­CY­CLING), fixed a flaw in the contact detection logic that could lead to spurious energy generation and consequently erroneous results.

  7. Made a series of fixes for the combination of selective mass scaling (*CON­TROL_­­TIMESTEP), consistent mass scaling (*CON­TROL_­­RIGID), deformable to rigid (*DE­FORMABLE_­­TO_­­RIGID and dynamic relaxation (*CON­TROL_­­DY­NAM­IC_­RE­LAX­ATION), related to preload during dynamic relaxation and the subsequent dynamic impact phase. Symptoms of the issues included incorrect velocity initialization after dynamic relaxation and spurious deformation of rigid bodies.

7.8 Control Cards

  1. Fixed bug related to pore fluid flowing through a tied contact (see FTIED on *CON­TROL_­­PORE_­FLU­ID). The bug occurred when some (but not all) nodes on the tied contact are either (a) subject to *BOUND­ARY_­P­WP with IPHRE = 1, or (b) belong to drained parts while others belong to parts undergoing time-dependent consolidation. Possibly the bug could also occur with other flavors of *BOUND­ARY_­P­WP. Symptoms were nonphysical large pore pressures developing at the surrounding nodes on the tied contact.

7.9 Dual CESE Compressible Fluid Solver

  1. Fixed an issue in the treatment of geometric source terms in the 2D axisymmetric FSI-IBM hybrid multiphase model.

  2. Fixed bug that occurred in initialization when using more than two *D­U­AL­CESE_­INI­TIAL_­…_­SET keywords that caused incorrect behavior when setting the initial conditions.

7.10 Elements

  1. Fixed a unit conversion issue for *ELE­MEN­T_­SEAT­BELT_­PRE­TEN­SION­ER affecting the PTLCID curve of types 4, 6, 7, 8, and 9 when using transformation factors in *IN­CLUDE_­­TRANS­FORM.

  2. Fixed bug that occurred when both *DAMP­ING_­FRE­QUEN­CY_­RANGE_­DE­FORM and *DAMP­ING_­­PART_­S­TIFF­NESS were defined for the same part. The overall damping effect shown in the results was inconsistent across certain element types/formulations. In particular, results for solid element ELFORMs 1, 10, and 15 showed more damping than other element types (namely, solid ELFORM 2, shells, beams, and thick shells). Solid ELFORMS 1, 10, and 15 have been changed to make the amount of damping consistent with the others. Note that this bug only affected parts where both types of damping were present.

7.11 EM (Electromagnetic Solver)

  1. Fixed incorrect FEM matrix reassembly that occurred when using the monolithic solver in cases that begin with zero conductivity that later have conductivity due to *EM_­EOS_­TAB­U­LAT­ED2. The matrix reassembly did not take into account the change from zero conductivity to having conductivity.

  2. In Eddy current 2D axisymmetric cases, fixed point output for points in a vacuum that was incorrect in the case of moving conductors.

  3. Fixed issue with the external magnetic field imposition with *EM_­EX­TER­NAL_­­FIELD. This feature was broken in R16.1 in the process of fixing a memory leak that existed in R16.0.

  4. Fixed issue in MPP that existed when using conductive shells with magnets. The issue led to the job crashing.

  5. Fixed issues in resistive heating problems involving the radiofrequency solver and coupling with the ICFD solver. Crashes would occur in MPP for large problems.

  6. Avoid crashes that could occur in MPP when EM contact was combined with *EM_­­CIR­CUIT_­­SOURCE.

  7. Fixed issue with *EM_­ISOPO­TEN­TIAL that occurred when using segment sets to define an isopotential. It was not properly determining the nodes from the segment set.

  8. Fixed issues in *EM_­BOUND­ARY_­PRE­SCRIBED. In cases where the birth time was used, IDs used for output were incorrect.

  9. Fixed bugs that manifested in 2D axisymmetric Eddy current cases when used with EMSOL = 4 in *EM_­­CON­TROL. This combination now works, instead of erroring out.

  10. For *EM_­RAN­DLES_­T­SHELL, fixed issue in the part assignment and node ordering that was causing incorrect results in MPP.

  11. Fixed issue with TSTYPE = 5 on *EM_­­CON­TROL_­­TIMESTEP when THCPL = 2 in *EM_­­CON­TROL_­­COU­PLING that caused incorrect behavior.

  12. Fixed incorrect behavior and incorrect units when using *EM_­­CON­TAC­T_­RE­SIS­TANCE with CTYPE = 0 in MPP. Additionally, cases with CTYPE = 1 now no longer calculate the contact resistance Joule heating term unless JRTYPE = 1.

  13. Fixed issue with using *EM_­­MAT_­005 with Batmac when erosion was present, leading to wrong results due to an incorrect matrix reassembly issue.

  14. Made a small fix to the \(\mathbf{P}\) matrix assembly for tetrahedral elements in magnetostatic cases. This fix improved the results.

7.12 Forming Analysis

  1. Fixed bug in *DE­FINE_­LANCE_­SEED_­­POINT_­­CO­OR­DI­NATES that caused specifying two seed points with NSEED to not work correctly.

7.13 ICFD (Incompressible Fluid Solver)

  1. Fixed issue in *ICFD_­­DATA­BASE_­N­OD­OUT output. The average pressure field output was incorrect.

  2. Made various fixes in the conjugate heat mortar contact (CTYPE = 1 on *ICFD_­BOUND­ARY_­­CON­J_­HEAT). These issues could cause the run to crash.

  3. Fixed issue causing error ‘Cannot read point data array…’ when reading a vtu file in Paraview (see OUTL = 7 in *ICFD_­­CON­TROL_­OUT­PUT).

  4. Fixed a divergence issue when using *ICFD_­­CON­TROL_­­GAP with the steady state solver.

7.14 Implicit (Mechanical) Solver

  1. During implicit dynamic analysis (IMASS = 1 on *CON­TROL_­IM­PLIC­IT_­­DY­NAM­ICS), the interpolation of load curves used for time-dependent features, such as loading, boundary conditions, etc., could sometimes be performed incorrectly, meaning the amount of load applied was not the value expected from the current value of the load curve. The bug depended on how the time step was controlled. A workaround for previous releases was to use LCTM on *CON­TROL_­­TIMESTEP to define a reasonable time step; this workaround was effective even though LCTM doesn’t actually control the time step of implicit solutions. The issue affected R15 and earlier versions of R16 but not R14 or previous releases.

  2. Fixed issue causing the mode list input with *CON­TROL_­IM­PLIC­IT_­­MODAL_­­DY­NAM­IC_­­MOD­E_­LIST to be improperly handled. This issue started with earlier R16 releases. Any computation using that keyword would be incorrect, and an abnormal termination of some kind occurred.

7.15 Isogeometric Analysis (IGA)

  1. Fixed a bug associated with refinement of periodic knot vectors (*I­GA_­RE­FINE_­SHELL and *I­GA_­RE­FINE_­­SOL­ID).

  2. Fixed strain output to d3plot for IGA shells (*I­GA_­SHELL).

  3. Properly transform *I­GA_­2D_­NURB­S_­XYZ and *SET_­I­GA_­EDGE_­U­VW with *IN­CLUDE_­­TRANS­FORM.

  4. Fixed the computation of added mass in the case of failed elements for IGA solids (*I­GA_­­SOL­ID) and shells (*I­GA_­SHELL).

7.16 Load Cards

  1. Fixed issue with *LOAD­_­SEG­MEN­T_­F­SILNK that caused family files for the fsilnk database to not be opened when reading these files. As a result, this feature only worked when only a single fsilnk needed to be read.

7.17 Materials and Equations-of-State

  1. Made a minor fix to the MSFLD outputs (*MAT_­AD­D_­­DAM­AGE_­DIEM) to d3hsp and hisnames.xml. This change did not affect the simulation.

  2. Made fixes to using *MAT_­AD­D_­­DAM­AGE_­DIEM with *IN­CLUDE_­­TRANS­FORM. Conversion of logarithmic rates in table P1 did not work, and the output to dyna.inc was not using the integer value for Q1 < 0.

  3. Fixed *MAT_­NON­LO­CAL smoothing and smoothing for materials that have smoothing parameters in MPP. MPI message passing errors could create a segmentation fault due to accessing unallocated memory or could subtly change results.

  4. Fixed bug in *MAT_­004 for beam elements. The reference temperature used by the material model now coincides with the temperature at time \(t=0\). Previously, \(T=0.0\) was always used, leading to unphysical initial axial forces for nonzero expansion coefficients and nonzero initial temperatures.

  5. For *MAT_­JOHN­SON_­­COOK (*MAT_­015) in some cyclic loading cases, the elastic stress could be returned despite reaching full damage.

  6. Fixed *MAT_­015 with VP = 1 and initial stresses from *INI­TIAL_­STRESS_­SHELL. Plastic flow in cycle 0 could lead to problems.

  7. Changed the plasticity algorithm for *MAT_­030 for when the yield stress is provided as a load curve input. The old implementation might result in a completely unphysical time-step-size dependence in larger explicit simulations.

  8. Fixed stress initialization of *MAT_­030 beams. The deformation gradient coming from the history variables in the dynain was incorrectly set to zero in the stress computation at t = 0.

  9. Fixed inadvertent change to R16.0 that required M on *MAT_­036 to be an integer instead of a float.

  10. Fixed the unloading behavior in *MAT_­063 with MODEL = 0. This fix can change results, so we added MODEL = -1 to call the old version.

  11. Fixed issue in *MAT_­­CA­BLE_­DIS­CRETE_­BEAM (*MAT_­071) that could cause the pretension of elements to be cut short if the time step hit exactly the pretension end time.

  12. Fixed bug that occurred for *MAT_­071 (*MAT_­­CA­BLE_­DIS­CRETE_­BEAM) in implicit solutions. The convergence behavior has been improved for the case where cables go slack.

  13. Fixed bug in *MAT_­079 (*MAT_­HYS­TERETIC_­­SOIL) that affected R16.0, R16.1, and R16.1.1 but not previous releases. The input stress-strain curve was not followed correctly when the curve had more than 10 points.

  14. Fixed bug for *MAT_­100 with SIGY < 0. If this material was used with solid element spot welds with SIGY referring to a table, the strain rate was wrong.

  15. Made fix to *MAT_­121 with IUNLD = 2. The bug could cause incorrect unloading behavior and potential out-of-bounds memory exception errors.

  16. Fixed invalid memory access issue for *MAT_­124 (SRFLAG < 2) when used with solid elements. This has been broken since R14.0.

  17. Fixed plasticity algorithm issue in *MAT_­199. Discontinuous behavior was observed in some cases due to an unfortunate condition in principal stress computations.

  18. For *MAT_­211 (*MAT_­SPR_­JLR):

  19. Fixed incorrect stress results for *MAT_­243 when using HR = 7. This issue has existed since approximately 2017 (R9.2).

  20. Fixed the stiffness matrix computation for *MAT_­254 (solids and shells).

  21. Fixed history name output for MAT_254 to d3hsp.

  22. Fixed the latent heat treatment for solid elements with *MAT_­254. In certain cases, latent heat was ignored.

  23. For curves used by *MAT_­270, only offset the curve ID by the value specified by *IN­CLUDE_­­TRANS­FORM if the original curve ID is nonzero.

  24. Fixed issue when using *MAT_­NON­LO­CAL with *MAT_­272. Unexpected damage “healing” could be observed.

  25. For *MAT_­295, fixed a bug with input relying on curves and/or functions, including FTYPE = 1 or 2 invoking FCID, ACTIVE models invoking ACID, and ACTYPE = 5 invoking FSEID, FLID, FVID, and ALPHAID.

  26. Fixed problem for *MAT_­S06 with LCDL/LCDU referring to tables, leading to possibly incorrect results. This issue has existed since R16.0.

  27. Fixed incorrect behavior when using *MAT_­…_­S­TO­CHAS­TIC and *DE­FINE_­S­TO­CHAS­TIC_­­VARI­A­TION with VAR_S/F=2. Scaling factors could reach a value of “infinity,” hence, unreasonable results.

7.18 MPP

  1. Fixed issue with *DE­FINE_­S­TO­CHAS­TIC_­ELE­MEN­T_­SHEL­L_­­VARI­A­TION in MPP. The MPP decomposition data distribution was not working for this keyword.

7.19 Output

  1. Fixed issue that could cause the blstfor (*DATA­BASE_­BI­NA­RY_­BLST­FOR) to become corrupted after a restart.

  2. For cohesive pentahedra, only one integration point was output to the eloutdet database. This is now corrected to three.

  3. When *DE­FINE_­­MA­TE­RI­AL_­HIS­TO­RIES was present in the input deck, the output for CMPFLG = 1 on *DATA­BASE_­EX­TEN­T_­BI­NA­RY could become corrupted for non-isotropic materials.

  4. Fixed issue causing cohesive elements output to the dynain database (*IN­TER­FACE_­SPRING­BACK) to be missing their reference geometry.

  5. Corrected the computation of cross-sectional force for secfor output for IGA solid elements (*I­GA_­­SOL­ID), particularly in the case of trimmed IGA solids.

  6. Fixed issue with MATEN = 2 on *CON­TROL_­EN­ER­GY in implicit analysis. The new energy increment should only be added if implicit converged. Previously, the results of mat_energy_elastic/plastic could become way too high.

  7. Fixed potentially missing stress output to d3plot with *PART_­­COM­POS­ITE. Stresses could have been zero for some integration points if CMPFLG = 1 (*DATA­BASE_­EX­TEN­T_­BI­NA­RY) and the material of the first integration point is orthotropic, but others are isotropic.

  8. Fixed issues in the dyna.inc file produced when INCOUT1 = 1 on *IN­CLUDE_­­TRANS­FORM:

7.20 Restarts

  1. Fixed MPP full deck restart issue that could cause memory errors when the new model contains more contact interfaces than the original model.

  2. The numbering of dump files (d3dump and d3full) was broken. The correct behavior, where the first file is always 01, is now restored.

  3. Fixed bug that occurred after a full deck restart from d3full or d3dump using *STRESS_­INI­TIAL­IZA­TION for jobs in which *DE­FINE_­STAGED_­­CON­STRUC­TION_­­PART was used to make a dormant part become active. The symptom was that the analysis could crash when a part became active if that part was made of certain material types, including *MAT_­077.

7.21 SPH

  1. Fixed issues to avoid incorrect results when *DE­FINE_­SPH_­VICIN­I­TY_­SEN­SOR is used in MPP.

  2. Fixed incorrect removal of particles when using nonzero IDSEG in *DE­FINE_­SPH_­MESH_­BOX.

  3. Properly account for local coordinates when using *DE­FINE_­BOX_­SPH_­LO­CAL.

  4. Fixed incorrect values used for SPH heat capacity in heat transfer simulations.

  5. Fixed issue with ISHIFT = 1 on *CON­TROL_­SPH causing incorrect shifts to be assigned to particles.

  6. Made fixes to avoid floating point overflows during high velocity simulations that use the following materials with SPH:

  7. Corrected multiple issues that did not account for ghost particles being used with the thermal solver and/or *DE­FINE_­ADAP­TIVE_­­SOLID_­­TO_­SPH.

  8. Fixed issue causing particles to incorrectly affect non-neighboring particles while using FORM = 12 in *CON­TROL_­SPH.

  9. Fixed issue with allocating more memory for neighbor search when tracer interpolation (*DATA­BASE_­­TRAC­ER) was enabled for SPH.

  10. Corrected *INI­TIAL_­STRESS_­SPH output written to the dynain file.

  11. Removed internal energy coming from inactive embedded particles.

  12. Fixed issue with *BOUND­ARY_­SPH_­NOSLIP leading to incorrect pressures for 2D SPH simulations when using MPP single precision versions.

  13. Properly account for IDEOFF in *IN­CLUDE_­­TRANS­FORM when NEND in *ELE­MEN­T_­SPH is provided.

7.22 Thermal Solver

  1. Fixed issue causing *BOUND­ARY_­RA­DI­A­TION_­EN­CLO­SURE not to acknowledge the Thermal Speedup Factor, TSF, set in *CON­TROL_­THER­MAL_­­SOLVER.

  2. Fixed incorrect ordering of nodal output in MPP when using NREL’s 4-equation model (STYPE = 1 on *LOAD­_­HEAT_­EXOTHER­MIC_­RE­AC­TION).

  3. Fixed issue with writing the restart files for thermal materials that could cause a segmentation fault or error termination.

  4. Fixed the input trap for *BOUND­ARY_­RA­DI­A­TION_­[OP­TION]_­VF_­READ to check for the correct view factor file name. The error message was also modified.

  5. Fixed bug for *LOAD­_­THER­MAL_­D3­PLOT that resulted in error termination.

  6. Fixed initialization issue for *LOAD­_­HEAT_­­GEN­ER­A­TION_­SET_­OP­TION that occurred if the same input deck contained the SOLID and SHELL keyword options. This issue led to a segmentation fault.

7.23 User-Defined Features

  1. Fixed issue where the usermat function GETUSRVER was always called when using sharelib usermat. This caused issues for shared object files that lacked the subroutine. It is now only called if found in the shared object.

7.24 Miscellaneous

  1. Fixed initialization test for multiple constraints involving *IN­TER­FACE_­LINK­ING. The issue was causing a segmentation fault when a model had both linked nodes and linked segments.

  2. Fixed an old mistake which broke the VX(), VY(), VZ() functions used by *DE­FINE_­CURVE_­­FUNC­TION in the case where more than one node ID was given. Due to that mistake (which only affects MPP), it’s possible that the second or third parameters were ignored on processors without copies of the referenced nodes.

  3. Fixed bug that caused incorrect damping forces when [*DAMPING_PART_STIFFNESS is used with thick shell element formulations 2 and 6.

  4. Fixed bug in *SET_­…_­­COL­LECT that led to an error when a set was empty.

  5. If a set of type GENERAL referenced a set of type LIST_GENERATE defined later in the input deck, the set was not properly defined. We removed this dependence on input deck order.

  6. Fixed issue for *PA­RA­ME­TER_­­EX­PRES­SION+ and PRMR = “C”. With the long format, the expression string could be 140 characters, but there was an internal limit of 72 characters.

  7. Fixed long format issues with *IN­CLUDE_­­STAMPED_­­PART, especially related to option INCOUT = 2.