April 16, 2026
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 *INTERFACE_COMPENSATION_SPRINGBACK instead of *INTERFACE_COMPENSATION_3D.
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.
The R16.0 User’s Manuals provide documentation for R16.2.0. To download these manuals, go to https://lsdyna.ansys.com/manuals-download/. 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-download/. Please note that not all features in the DRAFT User’s Manuals are available in version R16.2.0.
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.
Added coupling CPG with DEM invoked with *DEFINE_DE_TO_CPG_COUPLING. 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.
Added *DEFINE_CPG_ADAPTIVE to adapt the particle size based on the distance to the wall.
Added support for blocking of porosity and venting based on contact forces. See BLOCK in *AIRBAG_CPG.
Support using RESTRT = -3 (using bevelf) and RESTRT = -30 (using bevelf.lsda) for the collocation BEM with Burton-Miller formulation method (METHOD = 4 in *FREQUENCY_DOMAIN_ACOUSTIC_BEM).
Support using *FREQUENCY_DOMAIN_PATH for reduced FRF (*FREQUENCY_DOMAIN_FRF_REDUCED).
Enabled using STRFLG (L = 1) in *DATABASE_EXTENT_BINARY to control strain output in d3rms and d3psd from a random vibration analysis (*FREQUENCY_DOMAIN_RANDOM_VIBRATION).
Add input checking of the airbag geometry for CPG airbags (*AIRBAG_CPG) to ensure elements do not share three or more nodes.
Added support for thermal coupling for internal parts of CPG airbags.
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.
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.
Improved no-slip boundary conditions in the tangential direction for CPG airbags.
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.
Added shear friction force to structure coupling for CPG airbags.
Added optional start time to *AIRBAG_CPG (see BIRTH).
Added two more arguments to the *DEFINE_FUNCTION definition for SPR3 (*CONSTRAINED_INTERPOLATION_SPOTWELD): normal and tangential velocity.
Added three new output quantities for SPR3 to binout/swforc: “velocity,” “velocity_axial,” and “velocity_shear.”
Removed SPR2/SPR3 visualization beams from *CONTACT_ERODING_SINGLE_SURFACE. This avoids undesirable involvement of those beam elements in the contact.
Skip offset tied contacts (*CONTACT_…_OFFSET) when checking for ties that would shorten beams.
Detect empty shell sets used in *CONTACT definitions, and flag these as errors during keyword processing.
Added field DEFBLK to *CONTROL_CONTACT 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.
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.
Made a minor change to the TIEOPT = 2 (*CONTROL_CONTACT) 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.
Slightly modified the output value for “contact gap” in the intfor database for *CONTACT_AUTOMATIC_…_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})\).
Added option MAEF = 2 on *CONTROL_MAT. In addition to turning off *MAT_ADD_EROSION or *MAT_ADD_DAMAGE_DIEM/GISSMO 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.
Added field PSMAEF to *CONTROL_MAT. PSMAEF is a part set ID that specifies which parts the deactivation of failure/damage with MAEF applies.
Added stimulus on beams in the multifront time stepping Eikonal solver (*EM_EP_EIKONAL).
Fixed a bug in the ECG (*EM_EP_ECG) computation that led to slightly incorrect results.
The EM solver supports the *INCLUDE_TRANSFORM offsets specified in Card 2b.1.
In the 2D axisymmetric Eddy Current 2D solver, the Lorentz force calculation now better accounts for element deformation, resulting in higher accuracy.
Optimized the FEM and BEM matrix assemblies, resulting in reduced calculation times.
Optimized initialization in cases that involve EM contact.
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).
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.
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.
Randles circuit output files can now have IDs over 999999.
Support conductive shells when using the frequency-based Eddy current solver (EMSOL = 4 on *EM_CONTROL).
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).
Modified the d3plot for the frequency-based solvers (EMSOL = 4, 7, or 9 on *EM_CONTROL): complex vectors are now directly output. To read them properly, use a LS-PrePost version 4.13 or later.
Always output the magnetic surface force to d3plot. Previously, it was only output when permanent magnets were present.
Added METHOD = 9 to *INTERFACE_COMPENSATION_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.
Added fields FXNSID and TRRNSID to *INTERFACE_COMPENSATION_3D to specify the nodes that are fixed during springback compensation and the transitional region during compensation, respectively.
For springback compensation, generate file nomoreiteration when all the nodes are within the tolerance, meaning the solution has converged.
Enabled tipping (*CONTROL_FORMING_TIPPING) of solid elements.
Moved the removal of untied spot weld (see SPOTDEL on *CONTROL_CONTACT) or cohesive elements (see ICOH on *CONTROL_SOLID) to cycle 0 for implicit to avoid solver problems. Previously, this removal was performed at cycle 1.
Changed the input of the First Shift (RPARM1) of Fast Lanczos (EIGMTH = 103 on *CONTROL_IMPLICIT_EIGENVALUE) to hertz
Changed the output of Fast Lanczos (EIGMTH = 103 on *CONTROL_IMPLICIT_EIGENVALUE) to output the frequencies in hertz instead of the eigenvalues.
Improved the computation of the Lanczos shifting scale when using Block Lanczos (EIGMTH = 1 on *CONTROL_IMPLICIT_EIGENVALUE) for problems with stiffness and mass entries that are very small but nonzero.
Reworked *CONTROL_IMPLICIT_RESIDUAL_VECTORS, 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.
For IGA shells (*IGA_SHELL), added a detailed GISSMO failure report for failed interpolation elements and related parent IGA elements to the message file
For IGA solids (*IGA_SOLID), sped up the keyword reading phase. This improvement led to a significant reduction in memory consumption.
Added the number of failed IGA shell and solid elements and their associated interpolation elements to the “failed element” report in the message files.
Issue an error message if no other hardening law can be found when using *MAT_ADD_BASIC_INCREMENTAL_FAILURE with LCSS = 0.
Support IRATE on *CONTROL_IMPLICIT_DYNAMICS for the DIEM damage model (*MAT_ADD_DAMAGE_DIEM).
Added option TETSF to *MAD_ADD_DAMAGE_GISSMO. 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.
Made a minor change for GISSMO output with *DEFINE_MATERIAL_HISTORIES. Label “Damage” with attribute A1 = 2
Capped the exponential term in *MAT_JOHNSON_COOK (*MAT_015) when VP = 1.0 to avoid random crashes.
Implemented flag BNDLCO in *MAT_RIGID and option IPRT < 0 in *CONSTRAINED_NODAL_RIGID_BODY so that a rigid body’s forces and moments written to bndout are in the bodys local coordinate system.
For *MAT_3-PARAMETER_BARLAT, made a small improvement to the tangent stiffness calculations for more robust implicit behavior.
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 *INITIAL_STRESS_SHELL or *INITIAL_HISTORY_NODE. Additionally, the effective plastic strain rate is output as history variable #6.
For *MAT_036_NLP, changed the second history variable to maximum failure. Previously the strain ratio was output.
Allow the combination of *MAT_077_O with N = -1 (thermal option) and solid element formulation 13. This was not previously supported.
Added outputting the formability index as history variable #9 for shell elements with material *MAT_133.
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%.
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.
Added new history variables for *MAT_240_THERMAL. History variable #16 is FG1, #17 is FG2, and #25 is the state variable.
Support the external variable feature (*LOAD_EXTERNAL_VARIABLE) for shell elements with *MAT_254. Previously, only solid elements were supported for this material.
Add warning message, INI+625, that is output for *EOS_TABULATED (*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.
Append “ *** End Error” or “ *** End Warning” at the bottom of error and warning messages to make parsing of these messages easier.
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.
Echo warning message, KEY+1655, when part set IDs in *DATABASE_EXTENT_SSSTAT_ID and *DATABASE_EXTENT_SSSTAT are zero.
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 *DATABASE_BINARY_D3DAT.
Added damage model IDAM = 8 (*SECTION_SOLID_SPG). For this model, FS is the critical value of the damage value taken from the material model, and STRETCH is not used.
Support surface segment sets that come from 10-node tetrahedral meshes for *DEFINE_SPG_TO_SURFACE_COUPLING.
ISPH structure particles (meaning particles embedded on shell meshes to represent the boundaries) are no longer shifted when ISHIFT = 1 in *CONTROL_SPH.
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.
Made SPH mass flow plane (*DEFINE_SPH_MASSFLOW_PLANE) results consistent between SMP and MPP.
Added error that is triggered by using invalid IOPT values in *DEFINE_ADAPTIVE_SOLID_TO_SPH.
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.
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.
Added option STRUCT to *DAMPING_PART_MASS to exclude lumped mass from *ELEMENT_MASS.
For *INTERFACE_LINKING_NODE/SEGMENT, added optional field DEATH to specify a death time for the linking interface.
Allow input of material ID (MID) for *DEFINE_STOCHASTIC_VARIATION. If PID_TYP = 2, then “PID” is expected to be a MID. Internally, several *DEFINE_STOCHASTIC_VARIATIONs for parts with the same MID are created.
For *BOUNDARY_FLUIDM, fixed a bug in the added fluid mass computation that occurred when multiple internal fluid volumes exist. The issue could cause a crash.
For *BOUNDARY_FLUIDM, fixed a bug in the added fluid mass computation that occurred when simultaneous internal and external fluids exist. This issue led to a crash.
Fixed bug in writing d3atv when velocity is defined on nodes instead of elements (NOEL = 1 in *FREQUENCY_DOMAIN_ACOUSTIC_BEM).
Fixed a bug in running random vibration fatigue (*FREQUENCY_DOMAIN_RANDOM_VIBRATION_FATIGUE) with multiple element sets, which led to an incorrect solution.
Fixed issue with DRTYP = 4 (spherical region) on *DEFINE_CPG_REGION that caused it not to work properly.
Fixed bug that occurred when multiple *DEFINE_CPG_REGION cards were defined. The regions were not initialized properly.
Fully support multiple *AIRBAG_CPG definitions.
Fixed issue that caused no FSI effect when MCOUP = 0 on *ALE_STRUCTURED_FSI in MPP.
Fixed issue that could corrupt a memory pointer when filling an S-ALE volume using GEOM = SEGSET or PART on *ALE_STRUCTURED_MESH_VOLUME_FILLING
Fixed several bugs that could cause memory access violations from S-ALE mesh deletion (see TDEATH on *ALE_STRUCTURED_MESH).
For nonzero friction, the stonewall energy was incorrect for *RIGIDWALL_PLANAR. This issue applies to constraint-based rigid walls (see RWPNAL on *CONTROL_CONTACT).
Support providing the bucket sort frequency with a load curve (negative BSORT) for segment-to-segment (SOFT = 2) contact in MPP.
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.
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.
Made the *CONTACT_ENTITY IDs output to binout for both SMP/MPP be the same as the IDs output to the ASCII output for SMP.
For rigid walls in subcycling (*CONTROL_SUBCYCLING), fixed a flaw in the contact detection logic that could lead to spurious energy generation and consequently erroneous results.
Made a series of fixes for the combination of selective mass scaling (*CONTROL_TIMESTEP), consistent mass scaling (*CONTROL_RIGID), deformable to rigid (*DEFORMABLE_TO_RIGID and dynamic relaxation (*CONTROL_DYNAMIC_RELAXATION), 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.
Fixed an issue in the treatment of geometric source terms in the 2D axisymmetric FSI-IBM hybrid multiphase model.
Fixed bug that occurred in initialization when using more than two *DUALCESE_INITIAL_…_SET keywords that caused incorrect behavior when setting the initial conditions.
Fixed a unit conversion issue for *ELEMENT_SEATBELT_PRETENSIONER affecting the PTLCID curve of types 4, 6, 7, 8, and 9 when using transformation factors in *INCLUDE_TRANSFORM.
Fixed bug that occurred when both *DAMPING_FREQUENCY_RANGE_DEFORM and *DAMPING_PART_STIFFNESS 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.
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_TABULATED2. The matrix reassembly did not take into account the change from zero conductivity to having conductivity.
In Eddy current 2D axisymmetric cases, fixed point output for points in a vacuum that was incorrect in the case of moving conductors.
Fixed issue with the external magnetic field imposition with *EM_EXTERNAL_FIELD. This feature was broken in R16.1 in the process of fixing a memory leak that existed in R16.0.
Fixed issue in MPP that existed when using conductive shells with magnets. The issue led to the job crashing.
Fixed issues in resistive heating problems involving the radiofrequency solver and coupling with the ICFD solver. Crashes would occur in MPP for large problems.
Avoid crashes that could occur in MPP when EM contact was combined with *EM_CIRCUIT_SOURCE.
Fixed issue with *EM_ISOPOTENTIAL that occurred when using segment sets to define an isopotential. It was not properly determining the nodes from the segment set.
Fixed issues in *EM_BOUNDARY_PRESCRIBED. In cases where the birth time was used, IDs used for output were incorrect.
Fixed bugs that manifested in 2D axisymmetric Eddy current cases when used with EMSOL = 4 in *EM_CONTROL. This combination now works, instead of erroring out.
For *EM_RANDLES_TSHELL, fixed issue in the part assignment and node ordering that was causing incorrect results in MPP.
Fixed issue with TSTYPE = 5 on *EM_CONTROL_TIMESTEP when THCPL = 2 in *EM_CONTROL_COUPLING that caused incorrect behavior.
Fixed incorrect behavior and incorrect units when using *EM_CONTACT_RESISTANCE with CTYPE = 0 in MPP. Additionally, cases with CTYPE = 1 now no longer calculate the contact resistance Joule heating term unless JRTYPE = 1.
Fixed issue with using *EM_MAT_005 with Batmac when erosion was present, leading to wrong results due to an incorrect matrix reassembly issue.
Made a small fix to the \(\mathbf{P}\) matrix assembly for tetrahedral elements in magnetostatic cases. This fix improved the results.
Fixed issue in *ICFD_DATABASE_NODOUT output. The average pressure field output was incorrect.
Made various fixes in the conjugate heat mortar contact (CTYPE = 1 on *ICFD_BOUNDARY_CONJ_HEAT). These issues could cause the run to crash.
Fixed issue causing error ‘Cannot read point data array…’ when reading a vtu file in Paraview (see OUTL = 7 in *ICFD_CONTROL_OUTPUT).
Fixed a divergence issue when using *ICFD_CONTROL_GAP with the steady state solver.
During implicit dynamic analysis (IMASS = 1 on *CONTROL_IMPLICIT_DYNAMICS), 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 *CONTROL_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.
Fixed issue causing the mode list input with *CONTROL_IMPLICIT_MODAL_DYNAMIC_MODE_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.
Fixed a bug associated with refinement of periodic knot vectors (*IGA_REFINE_SHELL and *IGA_REFINE_SOLID).
Fixed strain output to d3plot for IGA shells (*IGA_SHELL).
Properly transform *IGA_2D_NURBS_XYZ and *SET_IGA_EDGE_UVW with *INCLUDE_TRANSFORM.
Fixed the computation of added mass in the case of failed elements for IGA solids (*IGA_SOLID) and shells (*IGA_SHELL).
Made a minor fix to the MSFLD outputs (*MAT_ADD_DAMAGE_DIEM) to d3hsp and hisnames.xml. This change did not affect the simulation.
Made fixes to using *MAT_ADD_DAMAGE_DIEM with *INCLUDE_TRANSFORM. 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.
Fixed *MAT_NONLOCAL 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.
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.
For *MAT_JOHNSON_COOK (*MAT_015) in some cyclic loading cases, the elastic stress could be returned despite reaching full damage.
Fixed *MAT_015 with VP = 1 and initial stresses from *INITIAL_STRESS_SHELL. Plastic flow in cycle 0 could lead to problems.
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.
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.
Fixed inadvertent change to R16.0 that required M on *MAT_036 to be an integer instead of a float.
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.
Fixed issue in *MAT_CABLE_DISCRETE_BEAM (*MAT_071) that could cause the pretension of elements to be cut short if the time step hit exactly the pretension end time.
Fixed bug that occurred for *MAT_071 (*MAT_CABLE_DISCRETE_BEAM) in implicit solutions. The convergence behavior has been improved for the case where cables go slack.
Fixed bug in *MAT_079 (*MAT_HYSTERETIC_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.
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.
Made fix to *MAT_121 with IUNLD = 2. The bug could cause incorrect unloading behavior and potential out-of-bounds memory exception errors.
Fixed invalid memory access issue for *MAT_124 (SRFLAG < 2) when used with solid elements. This has been broken since R14.0.
Fixed plasticity algorithm issue in *MAT_199. Discontinuous behavior was observed in some cases due to an unfortunate condition in principal stress computations.
For *MAT_211 (*MAT_SPR_JLR):
Fixed incorrect stress results for *MAT_243 when using HR = 7. This issue has existed since approximately 2017 (R9.2).
Fixed the stiffness matrix computation for *MAT_254 (solids and shells).
Fixed history name output for MAT_254 to d3hsp.
Fixed the latent heat treatment for solid elements with *MAT_254. In certain cases, latent heat was ignored.
For curves used by *MAT_270, only offset the curve ID by the value specified by *INCLUDE_TRANSFORM if the original curve ID is nonzero.
Fixed issue when using *MAT_NONLOCAL with *MAT_272. Unexpected damage “healing” could be observed.
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.
Fixed problem for *MAT_S06 with LCDL/LCDU referring to tables, leading to possibly incorrect results. This issue has existed since R16.0.
Fixed incorrect behavior when using *MAT_…_STOCHASTIC and *DEFINE_STOCHASTIC_VARIATION with VAR_S/F=2. Scaling factors could reach a value of “infinity,” hence, unreasonable results.
Fixed issue that could cause the blstfor (*DATABASE_BINARY_BLSTFOR) to become corrupted after a restart.
For cohesive pentahedra, only one integration point was output to the eloutdet database. This is now corrected to three.
When *DEFINE_MATERIAL_HISTORIES was present in the input deck, the output for CMPFLG = 1 on *DATABASE_EXTENT_BINARY could become corrupted for non-isotropic materials.
Fixed issue causing cohesive elements output to the dynain database (*INTERFACE_SPRINGBACK) to be missing their reference geometry.
Corrected the computation of cross-sectional force for secfor output for IGA solid elements (*IGA_SOLID), particularly in the case of trimmed IGA solids.
Fixed issue with MATEN = 2 on *CONTROL_ENERGY 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.
Fixed potentially missing stress output to d3plot with *PART_COMPOSITE. Stresses could have been zero for some integration points if CMPFLG = 1 (*DATABASE_EXTENT_BINARY) and the material of the first integration point is orthotropic, but others are isotropic.
Fixed issues in the dyna.inc file produced when INCOUT1 = 1 on *INCLUDE_TRANSFORM:
Fixed MPP full deck restart issue that could cause memory errors when the new model contains more contact interfaces than the original model.
The numbering of dump files (d3dump and d3full) was broken. The correct behavior, where the first file is always 01, is now restored.
Fixed bug that occurred after a full deck restart from d3full or d3dump using *STRESS_INITIALIZATION for jobs in which *DEFINE_STAGED_CONSTRUCTION_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.
Fixed issues to avoid incorrect results when *DEFINE_SPH_VICINITY_SENSOR is used in MPP.
Fixed incorrect removal of particles when using nonzero IDSEG in *DEFINE_SPH_MESH_BOX.
Properly account for local coordinates when using *DEFINE_BOX_SPH_LOCAL.
Fixed incorrect values used for SPH heat capacity in heat transfer simulations.
Fixed issue with ISHIFT = 1 on *CONTROL_SPH causing incorrect shifts to be assigned to particles.
Made fixes to avoid floating point overflows during high velocity simulations that use the following materials with SPH:
Corrected multiple issues that did not account for ghost particles being used with the thermal solver and/or *DEFINE_ADAPTIVE_SOLID_TO_SPH.
Fixed issue causing particles to incorrectly affect non-neighboring particles while using FORM = 12 in *CONTROL_SPH.
Fixed issue with allocating more memory for neighbor search when tracer interpolation (*DATABASE_TRACER) was enabled for SPH.
Corrected *INITIAL_STRESS_SPH output written to the dynain file.
Removed internal energy coming from inactive embedded particles.
Fixed issue with *BOUNDARY_SPH_NOSLIP leading to incorrect pressures for 2D SPH simulations when using MPP single precision versions.
Properly account for IDEOFF in *INCLUDE_TRANSFORM when NEND in *ELEMENT_SPH is provided.
Fixed issue causing *BOUNDARY_RADIATION_ENCLOSURE not to acknowledge the Thermal Speedup Factor, TSF, set in *CONTROL_THERMAL_SOLVER.
Fixed incorrect ordering of nodal output in MPP when using NREL’s 4-equation model (STYPE = 1 on *LOAD_HEAT_EXOTHERMIC_REACTION).
Fixed issue with writing the restart files for thermal materials that could cause a segmentation fault or error termination.
Fixed the input trap for *BOUNDARY_RADIATION_[OPTION]_VF_READ to check for the correct view factor file name. The error message was also modified.
Fixed bug for *LOAD_THERMAL_D3PLOT that resulted in error termination.
Fixed initialization issue for *LOAD_HEAT_GENERATION_SET_OPTION that occurred if the same input deck contained the SOLID and SHELL keyword options. This issue led to a segmentation fault.
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. Fixed initialization test for multiple constraints involving *INTERFACE_LINKING. The issue was causing a segmentation fault when a model had both linked nodes and linked segments.
Fixed an old mistake which broke the VX(), VY(), VZ() functions used by *DEFINE_CURVE_FUNCTION 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.
Fixed bug that caused incorrect damping forces when [*DAMPING_PART_STIFFNESS is used with thick shell element formulations 2 and 6.
Fixed bug in *SET_…_COLLECT that led to an error when a set was empty.
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.
Fixed issue for *PARAMETER_EXPRESSION+ and PRMR = “C”. With the long format, the expression string could be 140 characters, but there was an internal limit of 72 characters.
Fixed long format issues with *INCLUDE_STAMPED_PART, especially related to option INCOUT = 2.