February 13, 2026
This file contains the release notes for Ansys LS-DYNA® versions R16.1.1, R16.1.0, and R16.0.0. It briefly describes new features, enhancements, and bug fixes in these versions. Other recent releases may also include some of these updates. We have included all these release notes together in one file for convenience.
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.
decomposition { transform_keyword }. When vents are defined in *AIRBAG_CPG, skip applying coupling forces to vent elements. If PPOP is used, coupling forces are applied to vent elements until the vent is marked as open.
Made a change to the evaluation of porosity curves defined in *MAT_FABRIC when associated with *AIRBAG_CPG. Previously, porous velocity was reset to zero if the pressure was out of bounds of the provided porosity curve. We now use the last available slope to extrapolate the porous velocity, similar to the behavior of *AIRBAG_PARTICLE. Ideally, the porosity curve should include the entire range of pressures expected in the simulation.
Made various fixes for curves and node IDs used in *AIRBAG_CPG defined in files included through *INCLUDE_TRANSFORM.
Fixed incorrectly resetting the atmospheric temperature used in *AIRBAG_CPG to 293 K instead of using the temperature defined in the input file.
Clarify error messages related to mesh integrity checks in *AIRBAG_CPG.
Fixed compatibility issue when using *PART_COMPOSITE and *AIRBAG_CPG in the same input deck. Automatically generated part IDs could conflict in some scenarios.
Fixed thermodynamic correction getting inadvertently turned off when multiple gas species were defined for *AIRBAG_CPG.
Fixed an MPP issue related to the IPBACK option on Optional Card E of *CONTACT_… used for constraint-based tied contacts. In some cases, if two constraint-based tied interfaces had a very substantial overlap (amounting to 100% on some MPP domain), the backup contact could be ignored on that processor, resulting in a failure to tie.
Enabled orthotropic friction to be used with segment-to-segment (SOFT = 2) contact. It was accidentally disabled starting with R14.0.
Fixed floating-point exception error that occurred in some configurations when using METHOD = 102 (LOBPCG) on *CONTROL_IMPLICIT_EIGENVALUE.
Corrected logic for using implicit intermittent eigenvalue computation with an explicit time simulation (*CONTROL_IMPLICIT_GENERAL with IMFLAG = 6) to properly handle the eigenvalue computation at the end time. Explicit time stepping may not hit the end time exactly so the intermittent eigenvalue computation was being skipped and failure would occur.
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_{\textrm{min}}\) and \(T_{\textrm{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.
Introduction of the new Continuum-based Particle Gas (CPG) solver: A particle-based compressible gas solver for accurate airbag deployment simulations. See *AIRBAG_CPG and related keywords.
Added *AIRBAG_SALE. It is a wrapper keyword intended for easily setting up an airbag inflation model. It contains new algorithms for solving “contact locking” and alleviating constrained flow in long tubes.
The following keywords (only available for S-ALE) are related component keywords to *AIRBAG_SALE added in this release:
Added *DUALCESE_MAT_LIQUID to support simple models of viscous liquids.
*DUALCESE_GRAVITY is a new keyword that allows liquids to experience the load provided with *LOAD_BODY... With this keyword, gravity source terms are active for the following 2D and 3D solvers: single fluid with (FSI-IBM or FSI-MMM) or without FSI.
Added *DUALCESE_FSI_EXCLUDE_PARTSET as a convenience tool for excluding sets of structural parts created with *SET_PART from the FSI calculation when using the dual CESE IBM-FSI solvers.
Introduced a viscoelastic solver. See *ICFD_MODEL_VISCOELASTIC to set viscoelastic properties. See also *ICFD_BOUNDARY_PRESCRIBED_VISCOELASTIC.
Introduced a higher-order level-set method. See SLLS of *ICFD_CONTROL_ADVECTION and SRL of *ICFD_CONTROL_LEVELSET.
Introduced the Resistive Immersed Implicit Surface (RIIS) method (IMMTH = 2 on *ICFD_CONTROL_IMMERSED).
Added in-core refinement for structured isogeometric shells and solids. *IGA_REFINE_SHELL and *IGA_REFINE_SOLID enable specifying various refinement types for structured isogeometric shells and solids defined using the *IGA_SHELL and *IGA_SOLID, respectively.
Support subcycling (*CONTROL_SUBCYCLE_{K}_{L} and *CONTROL_SUBCYCLE_MASS_SCALED_PART) for IGA solid elements (*IGA_SOLID). These techniques are suited for reducing the computational cost for models involving large spatial variations in mesh density and/or material characteristics.
Added basic incremental failure model: *MAT_ADD_BASIC_INCREMENTAL_FAILURE. It is a simplified version of GISSMO with a smaller input parameter set and automatic failure curve/surface generation. It is intended as an alternative to something like “FAIL” in *MAT_024 (which is too simple) and a fully calibrated GISSMO or DIEM (which is sometimes too elaborate).
Added *MAT_ADD_EXTVAR_EXPANSION to define material expansion based on the evolution of an external variable (*LOAD_EXTERNAL_VARIABLE). It accounts for nonlinear (load curve) and orthotropic behavior. This expansion property is available for solid formulations 1, 2, -1, and -2 and shell formulations 2, 16, and -16.
Added a new glass strength prediction model by Rudshaug et al. (2023) invoked with *MAT_GLASS_SPM (*MAT_280_SPM). It is a Monte-Carlo-based fracture-initiation predictor that combines the theories of linear elastic fracture mechanics and sub-critical crack growth to generate a representative sample of virtual glass plates that are monitored during the simulation. The model results in representative fracture strength distributions that span the probable fracture initiation instances with respect to time, location, and stress level.
Added new material *MAT_317/*MAT_RRR_POLYMER.
Added IMERGE to *ISPG_CONTROL_ADAPTIVITY to activate a merging algorithm for parts that are sufficiently close together. In MPP, this merging feature requires parts to be on the same processor. To do this, use *ISPG_DEFINE_MERGER_MPP.
Added the keyword *ISPG_DAMPING_SURF to define Rayleigh damping related to fluid surface tension on all the ISPG parts.
ISPG 3D supports a new curing-degree-dependent viscosity model via the keyword *ISPG_MAT_CASTRO_MACOSKO_CARREAU.
Added new keyword *ISPG_CONTROL_D3ISPG to control outputting the curing, viscosity, temperature, stresses, and strain rates for ISPG.
For adaptive ISPG, support thermal-flow coupled analysis. We added the following features for this:
Added *DEFINE_CABLE to simplify the creation and data collection of electric cables for failure modeling.
When using dynain and dynain.lsda files to transfer the state of a system between simulations, it is important to provide reference configuration information for hyperelastic material models. Providing this information is particularly tricky when switching between implicit and explicit, for instance, or if the way the deformation gradient is stored changes because of a different set of control parameters. To this end, we introduced *NODE_REFERENCE, *ELEMENT_SOLID_REFERENCE, and *ELEMENT_SHELL_REFERENCE that are part of the dynain(.lsda) content whenever hyperelastic materials are present in a model. These keywords allow for a seamless approach to dealing with hyperelasticity in a dynain context, meaning that the RFLAG on *INTERFACE_SPRINGBACK_LSDYNA becomes redundant. Users will typically never insert these keywords in a simulation, but previous simulations always generate them. Seamless transfer requires properly setting up the first simulation, for which the reference configuration typically coincides with the configuration at time zero or is specified using *INITIAL_FOAM_REFERENCE_GEOMETRY for solids or *AIRBAG_REFERENCE_GEOMETRY for shells.
Improved SMP load balancing for METHOD 2, 211, 3, and 311 on *FREQUENCY_DOMAIN_ACOUSTIC_BEM. These changes improved performance, particularly for a large number of threads/cores.
Support IGA parametric points (*IGA_POINT_UVW) and IGA physical faces (*IGA_FACE_XYZ) for setting excitation loads on *FREQUENCY_DOMAIN_SSD (see NTYP on Card 7).
Extended transient Ensight animation support (MASEPLT = 4 on *CONTROL_ACOUSTIC_SPECTRAL) to 12th-order spectral acoustic elements.
Enabled fast computing of the mcf file (*CONTROL_FREQUENCY_DOMAIN) without writing d3ssd (BINARY = 0 in *DATABASE_FREQUENCY_BINARY_D3SSD).
Added option NDD = 0 to *FREQUENCY_DOMAIN_ACOUSTIC_BEM to use a recommended domain decomposition.
Implemented an option to match the tied surfaces of two adaptive parts with tied contact in the first adaptive set. See ICONOPT = -1 on *CONTROL_ADAPTIVE.
Added printout of what triggers the adaptivity in EFG interactive adaptivity.
Control extra d3plot output in 3D \(r\)-adaptive simulation with ADPD3P on *CONTROL_ADAPTIVE. Note that this flag existed previously, but the behavior has changed. The default behavior changed from outputting the extra data. Extra data was output starting in R13 without any controls. ADPD3P was added in R15 to turn off outputting this extra data. With R16, this extra data is not output by default and by setting ADPD3P = 1; ADPD3P = -3 (set to not output the datain R15) was removed; and ADPD3P = 2 and 3 were added to output this extra data.
Added an automatic checker during the keyword phase to check airbag quality for S-ALE. The results are output to saleabchk.msg.
Support TYPE = CURVE on *SENSOR_CONTROL with *AIRBAG_PARTICLE.
Support coupling CPM (*AIRBAG_PARTICLE with the thermal solver.
Support unlimited gas species for *AIRBAG_PARTICLE. Internally, there had been a limit of 40 species.
Support including solid parts when defining the airbag (SID1 and SID2 on *AIRBAG_PARTICLE). Previously, the airbag could only be defined with shell parts. Deleted segments are removed from the coupling.
Enabled using GEOM = ALL on *ALE_STRUCTURED_MESH_VOLUME_FILLING to assign velocity using VID to all S-ALE nodes. Previously, VID worked with all GEOM settings except ALL.
Improved algorithm to cure pressure oscillation during the ALE advection process when using *MAT_ELASTIC_PLASTIC_HYDRO with *EOS_TABULATED_COMPACTION.
Support beam erosion for S-ALE FSI in 2D.
Implemented using an element set to specify the ALE fluid subjected to the porous flow condition (SIDTYP = 2 on *LOAD_BODY_POROUS).
If ALE groups fully fill the ambient elements (see *BOUNDARY_AMBIENT), MMG = 0 keeps these fillings as sources instead of replacing them.
Added command line option map2=[listofmappingfiles.txt] for *INITIAL_ALE_MAPPING to map ALE data from several mapping files created by previous ALE runs with the same dimensions and identical ALE groups. Note that listofmappingfiles.txt needs to be a .txt file that lists the names of the mapping files. In this case, map= is not used.
Made *ALE_FSI_TO_LOAD_NODE available for S-ALE FSI.
For *BOUNDARY_ALE_MAPPING with INI = 1, write S-ALE data to a mapping file that can be read by *INITIAL_ALE_MAPPING and *BOUNDARY_ALE_MAPPING.
Added OPTION = AMBIENT to *BOUNDARY_SALE_MESH_FACE as a macro for applying *BOUNDARY_AMBIENT with AMBTYP = 4 along the boundary faces.
Applying OPTION = AMBIENT and OPTION = NONREFL on *BOUNDARY_SALE_MESH_FACE to the same mesh faces causes the elements attached to the faces to turn into ambient elements with a non-reflecting boundary condition on the faces connecting the ambient elements to the rest of the S-ALE mesh.
Enabled moving joined S-ALE meshes.
Enabled DVOL on *SET_SOLID_GENERAL to work for S-ALE elements.
Enabled DVOL on *SET_SEGMENT_GENERAL to work for S-ALE segments.
Enabled DVOL on *SET_NODE_GENERAL to work for S-ALE nodes.
Made DOF = -4 and -8 on *BOUNDARY_PRESCRIBED_MOTION available for rigid bodies if |CMO| = 2.
For *BOUNDARY_PWP:
Check that there are no conflicts between the IDs used for *RIGIDWALL_PLANAR and *CONSTRAINED_NODAL_RIGID_BODY.
Support solid elements for *CONSTRAINED_COORDINATE.
Added TITLE keyword option to *CONSTRAINED_EXTRA_NODES and *CONSTRAINED_RIGID_BODIES.
Setting |CMO| = 2 on *CONSTRAINED_NODAL_RIGID_BODY_SPC enables applying the constraints or prescribed motion (*BOUNDARY_PRESCRIBED_MOTION) of the rigid body about a specified coordinate.
Added an SPR3 with a strongly objective formulation (see MODEL = 3 of *CONSTRAINED_INTERPOLATION_SPOTWELD).
Added ability to position the spot weld (see SPROFF) between the two sheets for spot welds defined with *CONSTRAINED_INTERPOLATION_SPOTWELD.
Added new search method for *CONSTRAINED_SPR2 and *CONSTRAINED_INTERPOLATION_SPOTWELD (SPR3) invoked by flag SPRSRCH on *CONTROL_CONSTRAINED. The option includes the nodes inside the search radius and all nodes from elements inside the search radius.
Modified SPR2/SPR3 search. The height of the search cylinder (THICK) can be too small if there is a substantial gap or THICK is defined way too large, causing problems with bent sheets. The modified search uses the measured distance with some tolerance instead of using THICK from the input. It is only supported for the recently added option SPRSRCH = 1.
Added option STIFF2 < 0 to *CONSTRAINED_INTERPOLATION_SPOTWELD (SPR3). |STIFF2| is a load curve ID for shear stiffness as a function of load angle. This curve allows a better fit for the elastic-mixed-mode response.
Add damping option, DAMP, to *CONSTRAINED_INTERPOLATION_SPOTWELD (SPR3) to apply viscous damping.
Added MPP support for *TERMINATION_CONTACT.
Added an initialization error termination check for MPP only due to an issue with contact. Before the decomposition, contact segments are mapped to the element they come from. Any not found will cause error termination.
Added support for beam elements in segment-to-segment (SOFT = 2) contact. To use beam elements, simply use parts or part sets to define surface A and/or surface B and include beam parts in the surface definition. This works with all contact keywords that are compatible with segment-to-segment contact. However, it must be used with DEPTH options that support edge-to-edge contact, which currently are DEPTH = 5, 15, 25, 35, and 55. If other DEPTH options are input, they are switched internally to DEPTH = 55.
Improved segment-to-segment (SOFT = 2) contact when shell element segments contact solid element segments. There were spurious forces in some instances that caused nonphysical deformation.
Implemented edge treatment options SRNDE = 1 and 2 (on Optional Card E) for *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE in SMP for SOFT = 0 and 1.
The ORTHO_FRICTION keyword option in *CONTACT_…_MORTAR allows for 3D tables, thereby adding a temperature dependence in addition to sliding velocity and contact pressure.
Thermal edge contact is supported and automatically enabled when the underlying mechanical contact is of *CONTACT_…_MORTAR type.
Support output of tied area to binout for *CONTACT_…_MORTAR_TIED types.
Account for the OFFSET option on *ELEMENT_BEAM and NSLOC/NTLOC on *SECTION_BEAM when determining contact with *CONTACT_AUTOMATIC_…_MORTAR. However, the contact still uses an approximate tubular section.
Support *LOAD_THERMAL_BINOUT with *CONTACT_…_MORTAR.
Added MINFO < 0 on *CONTROL_OUTPUT, where -MINFO is a time-step frequency for output penetration and memory information from *CONTACT_…_MORTAR. This negative option applies also to explicit analysis.
Added TIEOPT to *CONTROL_CONTACT to invoke constrained tied contacts in explicit algorithms that circumvent some of the shortcomings in the standard implementations. It is mandatory (and automatically applied) for selective mass scaling (IMSCL \(\neq\) 0 on *CONTROL_TIMESTEP) to properly support all tied contact combinations. The primary justification for this option is the completion of tied contact support in selective mass scaling. However, even without that, this option offers some advantages for constrained tied contacts, such as:
Added STROBJ to *CONTROL_CONTACT to turn on strong objectivity for single surface contacts with SOFT = 0 or 1.
Setting SRTFLG = 1 on *CONTROL_ACCURACY causes the parts, contacts, nodal rigid bodies, and elements to be processed in an order sorted by the respective user IDs, regardless of the order that these appear in the input file. This feature helps ensure consistent results if, for some reason, the order of the above entities changes in the input file. SRTFLG can also be activated or deactivated through the command line options SRTFLG=1 or SRTFLG=0. The command line option overrides the value specified in the keyword.
Added options ESORT = 11, 12, 13, and 14 to *CONTROL_SOLID. These are the same as ESORT = 1, 2, 3, and 4, respectively, except tetrahedrons are sorted to type 13.
Added ability to request additional output with *CONTROL_EOS_USER_LIBRARY for plotting 3D surface graphs of seslib data.
Added the ASCII keyword option to *CONTROL_EOS_USER_LIBRARY for reading Los Alamos sesame tables instead of seslib and handling several ASCII table files.
Switch to LAMSHT = 3 when LAMSHT = 1 on *CONTROL_SHELL. LAMSHT = 1 is only implemented for a few material models, and even for them, it does not seem to work properly.
Extended UMCHK on *CONTROL_MAT to check for default user-defined friction (only MPP).
Reduce memory requirement of detailed energies for materials (MATEN = 2 on *CONTROL_ENERGY) by only requesting it after MPP decomposition.
Made the NASG EOS (*DUALCESE_EOS_NASG) available to the single fluid solvers, including both with and without FSI.
Added viscous shear to the feedback forces for the viscous 2D and 3D FSI-IBM solver.
Introduced a porous media model for supersonic flow with thin-shell porous structures in the dual CESE FSI-IBM and two-phase FSI-IBM solvers. This model solves the Darcy-Forchheimer equation as a jump condition across the porous media interfaces. This new porous media model is available for the following two-phase and single-fluid FSI-IBM dual CESE solvers: 2D, 2D axisymmetric, and 3D.
Reversed the modification done in R15 to the local CFL number formula for a new time-step-size calculation. In other words, we restored the R14 treatment of this calculation.
Added option ASA to *SECTION_BEAM for resultant beam type 2. ASA flags automizing the shear area approximation for tubular (SECTION_09) and solid box (SECTION_11) shapes.
Extended the STRETCH field in *CONTROL_SHELL to check the three edges of triangular shells in the same manner that it checks the diagonals of a quadrilateral. Previously, this option ignored triangular shells.
The definition of baseline orientation vectors with *PART_FIELD for finite element solids ELFORM = 1 is now supported for the following material models: 22, 23, 26, 33, 40, 54, 55, 58, 59, 91, 92, 103, 104, 122, 126, 133, 142, 143, 157, 199, 213, 215, 219, 221, 233, 245, 261, 262, 263, 264, 278, and 291.
Extended to beams with ELFORM = 13 the existing option of using BEAMIP on *DATABASE_EXTENT_BINARY to cause writing the moments at both ends of resultant beams (ELFORM = 2) to d3plot and d3thdt.
Enhanced the check for cohesive elements to properly reorientate them so that the orientation matches neighboring elements by changing the connectivity.
Added experimental options ISTUPD = 5 and 6 on *CONTROL_SHELL. These are the same as 1 and 4, respectively, but associated thickness changes are double precision in single precision binaries for shell elements with ELFORM = 2, 4, and 16. These options should make results more comparable (single precision versus double precision) in long-lasting explicit analyses.
Added option to change some cohesive errors to warnings invoked with COHEQC = 10, 11, and 12 on *CONTROL_SOLID.
Support stiffness proportional damping for cohesive elements. *DAMPING_PART_STIFFNESS did not have any effect on them until now. Also, support RYLEN = 2 from *CONTROL_ENERGY for cohesive elements to include the damping energy in the internal energy computation.
Added warning for the use of pentahedral thick shell (TSHELL) elements:
Thick shell element ... is a degenerated hexahedron (nodes N3=N4 and N7=N8). Such pentahedral thick shells are currently not supported and should therefore be avoided.
Added CIRCTYP = 30 to *EM_CIRCUIT to include Diode modeling in the circuit. It is available with the Eddy current solver only (EMSOL = 1 in *EM_CONTROL).
An imposed current condition (see CIRCTYP IN *EM_CIRCUIT) when using the Resistive heating solver is now done via a Neumann boundary condition rather than an internal transformation into a voltage condition (after doing an initial solve to get the mesh resistance and using Ohm’s law). We made this change after realizing that the previous way could cause issues in cases that involved multiple circuit branches. Resistance and current output values may be affected.
Added the option to turn off the time interpolation (INTERP on *EM_CONTROL_COUPLING) of the EM forces between two EM steps. This can be useful in magnetostatic steps (especially rotating problems) where the default linear time interpolation of the EM force at each mechanical step can introduce a larger error than having no interpolation at all.
Added an optional third line to *EM_CONTROL_COUPLING for providing three node IDs defining a local coordinate system for the EM solver to follow during the force interpolation phase given to the mechanical solver. This feature may be recommended in rotating magnetostatic problems for increased accuracy.
Added an optional second line to *EM_CONTROL_SOLUTION for defining two local coordinate systems and specifying that BEM matrix recomputations can only occur based on specific translation and rotation criteria.
Fixed bug in magnet ID ordering (*EM_PERMANENT_MAGNET). Previous versions assumed the user defined the magnet IDs in their keyword file in an ordered fashion (from small ID to large) which is not always the case.
For *EM_RANDLES_BATMAC, added the option to have temperature-dependent equilibrium voltage as a function of state of charge tables.
For Randles circuits (*EM_RANDLES_…), state of charge values in battery cells are now hard capped at 100.
Enabled specifying a part ID instead of segment sets for the associated Rogowsky coil in 2D axisymmetric Eddy current problems (see PID on *EM_CIRCUIT_ROGO. This ability simplifies creating the input for this case.
Added CONTYPE = 2 to *EM_CIRCUIT_CONNECT to have the circuit connect constraint take precedence over the constraint (if it exists} defined in *EM_CIRCUIT for the second circuit. In contrast, for CONTYPE = 1, the constraint for the second circuit takes precedence over the circuit connect constraint.
Support beam elements with the eikonal solvers (solver types 14 and 15 on *EM_CONTROL) so that beams can be coupled with tetrahedral elements.
For eikonal models (*EM_EP_EIKONAL), SIGMA in the data cards of EM materials *EM_MAT_001 and *EM_MAT_003 corresponds to the wave velocity. Note that *EM_MAT_001 is supported for beam elements, while *EM_MAT_003 is supported for tetrahedral elements.
Added ionic model using splines instead of solving the ODEs at each node. See IONSOL = 2 on *EM_CONTROL_EP. One spline is built for each ionic model once and for all at the beginning of the run, and is then used at each node, starting at the activation time of the node. This method can be used either for the eikonal solvers (EMSOL = 14 or 15 in *EM_CONTROL) or the mono/bi domains (EMSOL = 11 or 12 on *EM_CONTROL_EP). It saves a lot of cpu time in the ionic model part. An optional Card 2 on *EM_CONTROL_EP can be included to give the end time (SPLTEND) and time step for building the spline (SPLDT).
Added ability to add delays between 2 depolarizations/repolarizations on *EM_EP_ISOCH to avoid detecting successive repol/depol in cases where the transmembrane potential oscillates.
For *ICFD_BOUNDARY_WINDKESSEL, added detailed Windkessel circuits types 7, 8, 9, 10. We also reworked this feature to make it more robust and less time-step-dependent. We added WTYPE = 6 to specify a user-defined model.
Added the radius factor to the flux output (see *ICFD_DATABASE_FLUX) in 2D axisymmetric analyses to make it consistent with 3D output.
For *ICFD_CONTROL_ADAPT, added an option, DT, to control the remeshing frequency via a time step (transient analysis only).
For the steady state solver, a velocity boundary condition is now considered constant during the steady state analysis (the first value of the *DEFINE_CURVE will be picked).
For weak 2-WAY FSI with the implicit structural solver (OWC = 3 on *ICFD_CONTROL_FSI), enabled the implicit solver to perform sub-stepping until convergence with a single CFD step.
For *ICFD_CONTROL_ADAPT:
For *ICFD_CONTROL_TURBULENCE:
Support the advection of two species instead of just one (see *ICFD_MODEL_SPECIES_TRANSPORT, *ICFD_BOUNDARY_PRESCRIBED_SPTRANSP_CONC, and *ICFD_INITIAL_SPTRANSP).
Support initializing species concentrations by *ICFD_PARTs and *ICFD_PART_VOLs (see *ICFD_INITIAL_SPTRANSP) in the species transport flow solver. Previously, initialization only worked globally.
For *ICFD_MODEL_POROUS, added support to have hybrid porous/non-porous membrane/fabrics in the same model. A mixing of porous and non-porous deforming embedded shells is now allowed.
The option ITORM on *SECTION_BEAM is now supported for implicit transient analyses. Before, it could only be used for eigenvalue analyses.
Made the sectoral symmetry method (EIGMTH = 111 on *CONTROL_IMPLICIT_EIGENVALUE) available in MPP. This method only works for jobs running on one processor, but it no longer requires SMP to run and gives the same results as for SMP.
For LSOLVR = 30 (MUMPS) on *CONTROL_IMPLICIT_SOLVER:
Support ORDER = 3 (ParMETIS) on *CONTROL_IMPLICIT_SOLVER in PGI builds.
For METHOD = 102 (LOBPCG) on *CONTROL_IMPLICIT_EIGENVALUE:
Support modal analysis (*CONTROL_IMPLICIT_EIGENVALUE) with rotational dynamics terms (*CONTROL_IMPLICIT_ROTATIONAL_DYNAMICS) for MPP executables when the number of MPI ranks is 1. Full MPP capability is the subject of future work.
Made *DATABASE_ADAMS available again. This feature outputs a Modal Neutral File, d3mnf, for later use with Hexagon’s Adams software. It was available up to R7 upon customer request and required an external library. It is now available with all MPP builds without additional software.
Added MXMODES to *CONTROL_IMPLICIT_INERTIA_RELIEF for setting the maximum allowed eigenvectors to be computed.
Added printing information about the JFNK nonlinear solver (NSOLVR = 13) if NLPRINT = 3 on *CONTROL_IMPLICIT_SOLUTION.
Output time history results for beam elements undergoing modal dynamics (*CONTROL_IMPLICIT_MODAL_DYNAMIC) to elout and d3thdt. Previously, the beam results were written as zero to both elout and d3thdt.
For implicit, imposing spc on too many rigid body nodes results in an overdetermined set of constraints. Previously, doing this would result in an error termination. Now, we process these constraints during the initialization and translate them into the equivalent combination of nodal and rigid body constraints that allow the simulation to continue with expected results.
For implicit, stacked use of tied contacts (think laminates/composites) may result in an overdetermined set of constraints that could lead to an error termination or automatic deletion of important ties just to start the simulation. Now, we use a dependency graph to delete only the tied contacts that must be deleted, resulting in a more expected behavior. It may still result in an error termination if the dependencies cannot be resolved.
IACC = 1 on *CONTROL_ACCURACY is now the default for nonlinear implicit simulations. To recover the old behavior, set IACC = -1.
Equipped incompressible control volumes (*DEFINE_CONTROL_VOLUME) with two new features:
Implemented *INITIAL_FOAM_REFERENCE_GEOMETRY for axisymmetric elements (ELFORM = 14 and 15 on *SECTION_SHELL).
Implemented initializing velocities with *INITIAL_VELOCITY_GENERATION_START_TIME under a switch condition (*SENSOR_SWITCH). When STIME < 0, |STIME| refers to a sensor switch ID.
Implemented defining the high explosive as a part or element set (HETYP = 1 or 2) on *INITIAL_DETONATION_GEOMETRY.
Added selecting elements to ignite with a box for *INITIAL_DETONATION_GEOMETRY.
Added support for implicit MPP contact for trimmed IGA solids (*IGA_SOLID).
Added support for MPP eigenvalue extraction for trimmed IGA solids (*IGA_SOLID).
Map the friction definition (*DEFINE_FRICTION_TABLE) of IGA contact parts to the related interpolation element parts to properly reflect the friction behavior in the contact evaluation.
In case multiple faces (*IGA_FACE_XYZ) are defined on the same underlying surface patch (*IGA_2D_NURBS_XYZ) and the individual faces are topologically connected with *IGA_EDGE_UVW and *IGA_EDGE_XYZ, check that the generated interpolation mesh for the individual faces matches at the shared interface and that the corresponding interpolation nodes are merged. This check solves an issue that may appear if the faces are in the same contact definition, and edge contact may happen between the free boundaries of the individual faces.
Add support for the parameters THICK, PSTRN, STRAIN, and STRESS in *INCLUDE_STAMPED_PART for IGA shells (*IGA_SHELLs).
Added support for *INCLUDE_TRANFORM for IGA-related keywords.
Add support to use *IGA_POINT_UVW for trimmed IGA solids (*IGA_SOLIDS). This can be used to define constrained nodal rigid bodies or similar boundary conditions.
Support *CONSTRAINED_SPR2 for (trimmed) IGA shell/solid (*IGA_SHELL/SOLID) parts.
Improve force sharing for shared interpolation nodes along MPP domain boundaries for IGA solid parts (*IGA_SOLID).
Add support for *LOAD_THERMAL for IGA solid elements (*IGA_SOLID).
Properly map IGA shell (*IGA_SHELL) thickness to related interpolation elements to have the correct thickness reflected in contact.
For *MAT_001 / *MAT_ELASTIC
Setting |CMO| = 2 on *MAT_RIGID (*MAT_020) enables applying the constraints or prescribed motion (*BOUNDARY_PRESCRIBED_MOTION) of the rigid body about a specified coordinate.
Enabled IRATE on *CONTROL_IMPLICIT_DYNAMICS for Hughes-Liu beam elements (ELFORM = 1) with *MAT_024.
For *MAT_024, allow simultaneous use of keyword options _STOCHASTIC and _2D for shell elements.
Enabled fabric material formulation 24 (FORM on *MAT_034/*MAT_FABRIC and *MAT_B01/*MAT_SEATBELT) to be used in implicit analysis. Previously, parts input with formulation 24 were internally switched to formulation 14.
Made the Poisson’s ratio behavior of fabric material formulation 24 (FORM on *MAT_034/*MAT_FABRIC and *MAT_B01/*MAT_SEATBELT) more accurate for large strains. Results for problems where fabric material strains remain small should change little.
Added implicit tangent to *MAT_058 (*MAT_LAMINATED_COMPOSITE_FABRIC).
Made *MAT_074 work with *INITIAL_STRESS_BEAM.
Enabled *MAT_083_PATH_DEPENDENT to work with *INITIAL_FOAM_REFERENCE_GEOMETRY.
Made the latest features and bug fixes in *MAT_106 available for type 13 solid (tetrahedron) elements.
Added support for plastic strain tensor output with STRFLG = 11 on *DATABASE_EXTENT_BINARY for *MAT_106, *MAT_123, *MAT_224, and *MAT_251.
Added flag PDV to *MAT_148 / *MAT_GAS_MIXTURE. This flag sets the method for computing the element energy update. The default (PDV = 0) and original implementation is the ideal gas gamma law, which violates energy conservation when temperature-dependent \(C_v\)/\(C_p\) are used with ALE formulations. PDV = 1 invokes pressure work for this calculation.
For *MAT_SOIL_SANISAND (*MAT_207), improved stability for elements at low pressure.
Updated *MAT_213 / *MAT_COMPOSITE_TABULATED_PLASTICITY_DAMAGE to version 1.3.7. The new version:
For *MAT_LAMINATED_FRACTURE_DAIMLER_PINHO (*MAT_261), improved the behavior when the compressive stress reached XC prior to the actual failure criterion. In this case, we start computing damage values (dkink) to limit the stress within bounds, but we did not compute the failure strain in case the failure criterion is finally met, which led to a brittle failure due to lack of damage evolution. Now, we compute the failure strain in this scenario before reaching the failure criterion, which enables damage evolution and, thus, softening behavior before failure.
Added parameter DOSPOT to *MAT_270, which activates thinning of tied shell elements when SPOTHIN > 0 on *CONTROL_CONTACT.
Added grouping option, GRPFT, to *MAT_280 to scale down the tensile strength of several parts with FTSCL at the same time.
Added plasticity to *MAT_291 (*MAT_SHAPE_MEMORY_ALLOY).
Added the FIBAND (FIBer distribution based ANisotropic Damage) model to *MAT_DMN_COMPOSITE_FRC (*MAT_303) for predicting the damage and failure of injection-molded short-fiber-reinforced composites with any fiber distribution.
Enabled support for using *MAT_305 / *MAT_HOT_PLATE_ROLLING with 1-point pressure tetrahedrons (type 13).
For *MAT_307 / *MAT_GENERALIZED_ADHESIVE_CURING:
Implemented automatically renumbering the ID of *MESH_VOLUME if the same ID exists in *MESH_SURFACE_ELEMENT already to avoid output confusion. This change is only for output purposes. Results are unaffected.
For *MESH_SIZE_SHAPE, a *DEFINE_FUNCTION can now be used to define the mesh size as a function of the \((x,y,z)\) coordinates. This capability enables defining a gradual coarsening or refinement.
LSTC_DIR_LOCAL to specify the local directory for scratch files from an environment variable. This directory should be on a local disk on each processor for performance reasons. Note that the pfile command local has priority over this environment variable. Include energy due to *INTERFACE_LINKING_SEGMENT in the external work reported to the glstat file.
Added *DATABASE_RCFORC_DR to output rcforc during dynamic relaxation.
The mass and inertia properties output to d3hsp are now computed using double precision regardless of binary precision.
*DATABASE_BINARY_ISPHFOR now supports the FILE keyword option.
Added *DATABASE_FSI_DR to save the dbfsi data from the 1st dynamic relaxation phase.
Enabled converting the binary file created with *DATABASE_BINARY_FSILNK into a keyword file with *LOAD_SEGMENTs and *DEFINE_CURVEs generated from the data in that file. To generate this keyword file, run LS-DYNA with only the fsilnk=[fsifile] command line option, where fsifile is the name of the binary file.
For *DATABASE_D3MAX:
Add the contribution of the shell force to the section force when the shell is a 2D seat belt.
For MPP decompositions, every 2D seat belt is assigned a separate core to speed them up.
Enable *SENSOR_DEFINE_MISC to trace seat belt slip rings (MTYPE = SLIPRING).
Added the options PULLOUT and FORCE for TYPE = RETRACTOR on *SENSOR_DEFINE_MISC to trace the retractor’s total pull-out and the force of the attached belt, respectively.
Added TFIRE to *SENSOR_CPM_AIRBAG to control the activation time of the mass flow rate and temperature curves.
Made coupling between SPG particles and a surface (*DEFINE_SPG_TO_SURFACE_COUPLING) available in MPP.
Added option SFPN to *DEFINE_ISPG_TO_SURFACE_COUPLING to scale the thickness of the solid structure that is coupled with the ISPG fluid. This option improves contact detection if the structure is very thin and the length of the solid elements along the normal direction is much smaller than the length in the in-plane direction.
Support the TITLE keyword option for *SECTION_ISPG, *MAT_ISPG_…, *MAT_THERMAL_ISPG, *DEFINE_ISPG_TO_SURFACE_COUPLING for ISPG adaptivity.
Repeated solid or shell part IDs in *DEFINE_ADAPTIVE_SOLID_TO_SPH will now raise an error. Specifying the same parent part more than once will cause: (1) overlapping particles if NQ is the same in both instances, or (2) particles of different sizes that are too close.
For *DEFINE_ADAPTIVE_SOLID_TO_SPH, select history variables are now scaled by volume ratios between SPH and their parent solid/shell element. This lack of scaling could cause simulations to destabilize when NQ > 1 while using some materials or equations of state.
Enhanced internal treatment of curves defined with *DEFINE_CURVE. These curves have a regularly spaced internal representation. With this update, the way these curves are stored has been changed, resulting in significant memory reductions, particularly when different curves have different values of LCINT. Evaluating these curves is also more efficient.
For those implementing user-defined materials, note that the curve array crv is NOT AVAILABLE anymore beginning with R16. Please use new curve/table evaluation routines instead:
curveval
curveval_v
tablevaltableval_v
Improved implicit co-simulation with *COSIM_FMI_INTERFACE by exchanging data in every iteration.
Added command line option stdout= to control the messages to stdout. See the manual for details.
Added parameter IORIEN to *DEFINE_PRESSSURE_TUBE to use the third beam node or *BEAM_ORIENTATION for solid/shell orientation.
*DAMPING_FREQUENCY_RANGE_DEFORM now works with ELFORM = 13 beam elements.
Fixed a bug that may cause memory errors when INMEMORY is on and ADPTYP is greater than 2 in *CONTROL_ADAPTIVE.
Fixed bugs in nodal mass calculations when INMEMORY is on in *CONTROL_ADAPTIVE. These bugs affect solution accuracy, especially in metal forming deep drawing simulations.
Fixed bugs in the initialization of load curves that may cause memory errors after an adaptive cycle.
Fixed bugs in the initialization of contacts that may cause errors when INMEMORY is on in *CONTROL_ADAPTIVE.
Fixed bugs in shell size evaluation that may induce inconsistencies in adaptivity criteria between in-core and out-of-core adaptivity.
Fixed a bug for LCBCHK on *BOUNDARY_PRESCRIBED_MOTION_SET_BOX. The bug was due to mistakenly assuming all related nodes to be inside the checked box initially, leading to unexpected behavior.
Fixed issue with *BOUNDARY_PWP during a full-deck restart. The boundary conditions were not being obeyed in the restart run.
For *BOUNDARY_FLUIDM:
Fixed a bug in the *CONSTRAINED_BEAM_IN_SOLID general slip-force law (AXFOR = 999) to consider negative slip.
Fixed issue that caused very slow initialization in models that have BOTH a large number of nodal rigid bodies (*CONSTRAINED_NODAL_RIGID_BODY) AND a large number of *BOUNDARY_PRESCRIBED_MOTION cards.
Fixed problem with *CONSTRAINED_SPR2/SPR3 and *SET_NODE_ADD. The following error occurred: node set for spr # 123 is not found. Generating the visualization beams somewhat later resolves it.
Fixed issue with MPP contact near the decomposition boundary between processors. It occurred if some of the contact nodes were involved in a *CONSTRAINED_TIED_NODES_FAILURE constraint that failed. The failure was not being properly treated.
Fixed issue for MPP groupable contacts with birth times. If some processors ended up with no currently active groupable contacts, while others did have currently active groupable contacts, the code could hang.
When using the DISPLAY keyword option of *RIGIDWALL_GEOMETRIC/PLANAR_…, contacts defined by BOX or SURFATYP/SURFBTYP = 6 included the segments of the rigid wall display parts. The nodes of the display parts could become tracked by other rigid walls.
For penalty-based tied contacts, the optional contact stiffness was not taken into account when the SURFB segments originated from solid facets.
Enabled *ELEMENT_SHELL_SOURCE_SINK when used with MPP segment-to-segment (SOFT = 2) contact in the MPP version. Previously, the job would error terminate.
Fixed an error in implicit segment-to-segment (SOFT = 2) contact stiffness when DEPTH = 5, 15, 35, or 55 and contact is between edge pairs. The stiffness was uninitialized, causing unpredictable behavior.
Fixed a conflict between *CONTACT_EXCLUDE_INTERACTION and the thick segment pair check in MPP segment-to-segment (SOFT = 2) contact. The conflict led to excluding the wrong segment pairs.
Fixed damping in segment-to-segment (SOFT = 2) contact when using contact stiffness scaling by part. The damping was not adjusted correctly for the scaled stiffness values. This fix may change results a little but should not cause big changes.
Consider IDDOFF from *INCLUDE_TRANSFORM for REGION on optional Card E of *CONTACT_….
Consistent mass treatment of rigid bodies (RBSMS = 1 on *CONTROL_RIGID) did not work with rigid-to-deformable switching.
Selective mass scaling (IMSCL on *CONTROL_TIMESTEP) did not work properly on constrained tied contacts using backup tied contact (IPBACK = 1 on optional Card E of *CONTACT_…).
When using selective mass scaling (IMSCL on *CONTROL_TIMESTEP), the kinetic energy and momentum from a moving *RIGIDWALL could be added twice.
When using selective mass scaling (IMSCL on *CONTROL_TIMESTEP) and RBSMS = 0 on *CONTROL_RIGID, the nodal inertia from spot welds was missing, leading to instabilities.
When ATYPE = 3 or 4 on *CONTROL_PORE_FLUID, pore fluid is modeled flowing through the solid element mesh. Cracks in the mesh act as impermeable barriers, except that fluid can flow through tied contacts (*CONTACT_TIED…) if FTIED = 1. In previous releases, this did not work if the tied contact was “groupable.”
For *CONTROL_STAGED_CONSTRUCTION:
Corrected the setup for the use of *DEFINE_CURVE_FUNCTION with the dual CESE solvers.
For dual CESE d3plot IBM-FSI nodal outputs, if the nodes on a fluid boundary are also very close to a structural part, they are now treated for plotting as if they were effectively inside the structure.
Fixed issue with *ELEMENT_DIRECT_MATRIX_INPUT combined with *CONTROL_IMPLICIT_MODAL_DYNAMIC that led to a crash.
Fixed internal energy computation for cohesive elements. Shear components were too small by a factor of 2.
Fixed damping energy computation (RYLEN = 2 on *CONTROL_ENERGY) for Hughes-Liu beam elements. Necessary strain increments were not rotated to the global system. Global \(z\)-components were not included in the energy computation.
Made fixes when using the EM 2D axisymmetric solver (*EM_2DAXI) with EM contact. Memory issue could cause some cases to fail.
Bug fix for EMSOL = 2 (periodic inductive heating solver) on *EM_CONTROL. Previously, models that involved imposed voltage and also had EM contact present would fail during the solve.
Fixed issue that caused the presence of *ICFD_DATABASE_FLUXSURF to affect the generated mesh.
Fixed update of the stiffness matrix for turbulent flows.
Fixed bug in the computation of the volume region of *ICFD_DEFINE_POROUS_REGION and *ICFD_CONTROL_GAP.
Fixed MPP implicit issue that caused some nodes not to tie for *CONTACT_AUTOMATIC_TIEBREAK when using NSOLVR = 12 on *CONTROL_IMPLICIT_SOLVER.
For METHOD = 102 (LOBPCG) on *CONTROL_IMPLICIT_EIGENVALUE:
Fixed incorrect element offsets for *INITIAL_STRAIN_SHELL and *INITIAL_STRAIN_TSHELL when they are in an included file with nonzero element offsets.
Fixed issue in dynain where *INITIAL_{STRESS/STRAIN}_SHELL did not use “+” to indicate long format.
Fixed issue where *INCLUDE_TRANSFORM did not work properly for *INITIAL_STRESS_SECTION.
Fixed the incorrect initialization of the additional thickness stretch degree of freedom of shells (ELFORM = 25, 26, and 27) when initialized with *INITIAL_VELOCITY.
Fixed some *INITIAL_STRAIN_SHELL output in the dynain file (written with *INTERFACE_SPRINGBACK_LSDYNA). The parametric coordinate \(T\) of through thickness-integration points could have been wrong, mainly in the case of using *PART_COMPOSITE.
Properly update control point coordinates prior to writing the dynain file (*INTERFACE_SPRINGBACK_LSDYNA). The local integration point coordinates were not grabbed correctly, leading to a low-quality mapping.
Fixed potential mapping errors with *INCLUDE_STAMPED_PART from standard FE parts to IGA shell parts *IGA_SHELL in cases where the number of in-plane integration points and through-thickness integration points differ.
Properly exclude interpolation elements for the computation of mass and inertia properties written to d3hsp and d3plot. This computation only affected the output but not the actual analysis.
Fixed some bugs in the mapping of the results from the IGA solid elements (*IGA_SOLID) to the related interpolation elements that may have led to strange post-processing results in the interpolation elements.
Fixed the following bugs that occurred for *MAT_ADD_DAMAGE_DIEM when in a file included with *INCLUDE_TRANSFORM:
Fixed issue for *MAT_ADD_DAMAGE_DIEM by not extrapolating in strain rate tables given by P1.
Fixed incorrect table evaluation of LCSDG on *MAT_ADD_DAMAGE_GISSMO when it is a *DEFINE_TABLE_4D. The table evaluation was not working correctly for the strain rates, and the temperature was zero in a purely mechanical analysis.
Fixed issue for *MAT_ADD_DAMAGE_GISSMO for the unlikely event of using shells with Lode parameter dependent FADEXP < 0 (*DEFINE_TABLE_3D) or LCREGD<0 (*DEFINE_TABLE_3D). Shell elements do not need a Lode dependence anyway.
Fixed error in the load curve input added during the input phase for *MAT_ADD_SOC_EXPANSION. For all load curves, an offset OFFA = 1 was accidentally added during the input phase.
Fixed not correctly accounting for temperature in the evaluation of the load curves for *MAT_ADD_THERMAL_EXPANSION.
Fixed combination of tetrahedron type 13 and material models with an equation of state (*EOS_…). A wrong new volume value was used in the energy update, leading to unstable results. This issue affected *MAT_015 (EOS mandatory), *MAT_224 (when using EOS), and *MAT_260 (when using EOS).
Stopped erroneously converting parameter C on *MAT_024 when *MAT_024 with VP = 3 is in a file included with *INCLUDE_TRANSFORM.
Corrected problem with the number of history variables in user materials (*MAT_USER_…) with solid elements when options INTOUT/NODOUT of *DATABASE_EXTENT_BINARY are set to STRAIN or ALL. It was already fixed in 2014 for explicit (subroutine urmathn), but now it is also fixed for implicit (urtanh).
For *MAT_058 (*MAT_LAMINATED_COMPOSITE_FABRIC) and *MAT_262 (*MAT_LAMINATED_FRACTURE_DAIMLER_CAMANHO), fixed bug in table evaluation for EA, EB, and GAB < 0 for shell elements that could have led to a wrong initial stiffness evaluation.
For *MAT_WINFRITH_CONCRETE (*MAT_084), fixed bug that affected the combination of RATE = 8 with DILRAT greater than zero, when cracks were undergoing sliding (shear displacement). Symptoms could include stresses being noisier than expected or crack opening displacements being tracked incorrectly in some elements.
Fixed the transformation of DAMP on *MAT_089 when *MAT_089 is in a file included with *INCLUDE_TRANSFORM.
Fixed issue with *MAT_098 solids initialized by dynain (*INITIAL_STRESS_SOLID). The initial volume was not properly scattered to all integration points.
For beam and hex spot welds, fixed a wrong interpretation of the values MRR, MSS, and MTT on *MAT_100 (*MAT_SPOTWELD), which were cyclically shifted. This error could have affected material definitions, where \(\mathrm{MRR}\neq\mathrm{MSS}\neq\mathrm{MTT}\).
Fixed issue with time averaging using NF on *MAT_100. We reduced the number of cycles for averaging when the total number of cycles thus far is less than NF. Initial stresses or forces could have been reduced inappropriately without this fix. This fix applies to spot weld solids, solid assemblies, and spot weld beams.
Align implicit behavior of *MAT_100 solids with and without SIGY < 0.
Added missing initialization of solid spot weld failure table when using solid spot welds in implicit with IACC = 1 on *CONTROL_ACCURACY. Without this fix, options like *MAT_100 with OPT = 10, *MAT_100_DA with *DEFINE_CONNECTION_PROPERTIES, or *MAT_240_FUNCTIONS did not work correctly.
Fixed bugs in the plasticity algorithm of *MAT_106 / *MAT_ELASTIC_VISCOPLASTIC_THERMAL that may result in a floating error in element processing.
Fixed issue with *MAT_124 (*MAT_PLASTICITY_COMPRESSION_TENSION) for solid elements when SRFLAG = 2. We increased the maximum number of iterations from 20 to 100 for the (slow) Ridders’ method. Potential nonconvergence led to error termination.
Enable *MAT_126 to be used with *MAT_ADD_GENERALIZED_DAMAGE, meaning add *MAT_126 to the list of available materials for IFLG2 = 1 (material system).
For *MAT_135, SIGMA0 < 0 (yield curve) did not work for WTM (FLG = 2), option NUMFI was not working as expected, and the failure mode on history variable #7 was missing.
Fixed bug in *MAT_COHESIVE_GENERAL (*MAT_186) that resulted in negative damage (meaning healing) when the mode-mixity changed under load reversals. This issue was most apparent for brittle and weak materials.
For *MAT_187 in a file included with *INCLUDE_TRANSFORM, fixed the conversion of logarithmic strain rates in LCIDT.
Fixed issue with *MAT_SOIL_BRICK (*MAT_192) that could cause a crash when running SMP with two or more processors.
Limit SLIMXT to 0.99 on *MAT_215 (*MAT_4A_MICROMEC). This restriction resolves the fiber stress dropping to 0.
Fixed thickness computation in *MAT_240 with THICK = 0.0 for pentahedral cohesive elements (ELFORM = 21 and 22).
Allow using *MAT_PML_NULL (*MAT_246) in a model with ALE, SALE, or SPH.
Fixed a bug in the latent heat calculation for the 3D version of *MAT_254. Special handling for axisymmetric solids was missing, which could result in segmentation violations.
Fixed stability issue in *MAT_273 / *MAT_CDPM causing a segmentation fault in some cases for MPP single precision.
Fixed bug in using large curve IDs (> 16.7 million) in *MAT_S15 (*MAT_SPRING_MUSCLE). The bug led to an error reporting the load curve as undefined.
Fixed a bug for *DATABASE_CURVOUT for thermal-structural coupling analysis that caused the database to be wrong.
Fixed incorrect mass reporting for cohesive shells type 46 and 47 in d3hsp.
Labels Principal/Max Stress Range on *DEFINE_MATERIAL_HISTORY did not work with dynamic relaxation.
Fixed issue with *DATABASE_PWP_FLOW when using automatic time factoring (see *CONTROL_PORE_FLUID with TARG, FMIN, FMAX). The fluid flow rate tended to rise or drop suddenly every 100 time steps during the period when the time factor was changing. This bug could also have affected the displacement time histories of nodes in the consolidating material, again with a pattern that repeated every 100 time steps.
Correct spcforc calculation for nodes with *ELEMENT_MASS_MATRIX.
Fixed a bug for *SENSOR_DEFINE_FORCE when TYPE = JOINT. The sensed results could depend on the joint definition sequence.
Fixed a bug for *SENSOR_DEFINE_FORCE when TYPE = PRESC-MOT. The sensed force was not correct.
Fixed a bug for TYPE = BELTPRET on *SENSOR_CONTROL that caused the pretensioner to not turn off correctly for pretensioner types 4 through 8.
Fixed bugs in the code that removes inactive SPH particles during redecompositions when REMSPH > 0 in *CONTROL_MPP_DECOMPOSITION_REDECOMPOSITION. Some issues would cause the program to crash, while others would cause SPH injections to terminate prematurely.
Fixed memory issues that could cause SPH simulations to crash when any of the following keywords were used: *DEFINE_SPH_MESH_OBJ, *DEFINE_ADAPTIVE_SOLID_TO_SPH, *RIGIDWALL, or *CONTACT_AUTOMATIC_NODES_TO_SURFACE.
Fixed bug that caused issues when running a simple restart of SPH simulations with MEMSPH < 0 in *CONTROL_SPH. The bug led to different issues depending on the feature used, including crashes or error terminations.
Fixed (simple) restarts for sharelib usermat when using *MODULE_LOAD or the command line option module=. It was not working.
Fixed issue for sharelib usermat where *MODULE_USE could not be used for thermal materials.
Fixed format issue with *USER_INTERFACE_FRICTION when long=s.
Fixed bug in interpreting part sets. This bug was only triggered if the input deck had part sets that contained composite materials. In this situation, if MPP decomposition referenced any part sets, the decomposition might not be what was expected. In some cases (even if the decomposition did not reference any part set), the program crashed during input processing. If no part sets were used in the decomposition, and the program did not crash during startup, the rest of the calculation was fine. There were no adverse effects on the actual simulation.
When OFFA > 0 on *DEFINE_CURVE, the old discretization code assumed that the first abscissa value on the input curve was 0.0, and inserted two extra curve values at \((0,0)\) and \((\mathrm{OFFA}\times 0.999,0)\). However, this assumption caused a reversal in the resulting curve if the first abscissa value on the curve was < 0. If the first abscissa value on the curve was > 0, \(\mathrm{OFFA}\times 0.999\) might be quite a bit less than the shifted curve location. The revised behavior is not to insert these two points at all if the original starting abscissa is < -OFFA, and otherwise to insert the two points at \((0,0)\) and \((\text{starting abscissa}+0.999\times\mathrm{OFFA},0)\).
For *COSIM_FMI_INTERFACE:
Fixed a bug that occurred when using *INCLUDE_TRANSFORM together with *NODE_TRANSFORM for a node set defined by BOX or VOL. The model was not transformed correctly.
Made fixes for keyword format signs +, -, and %. Mixing those different format signs did not work in every case. See the section “GENERAL CARD FORMAT” for a description.
Fixed bug with *DEFINE_TABLE_2D in a *INCLUDE file. One symptom of the bug was incorrect output in dyna.inc.
Avoid error termination when *DEFINE_CONNECTION_PROPERTIES is used with (D)SIGY < 0.
Fixed issue with *DEFINE_MULTI_SHEET_CONNECTORS. Different parts/materials for joining elements JNTxx did not work.