June 9, 2026
This file constitutes revision 0 of the release notes for Ansys LS-DYNA® version R17.0.0.
The string “REVISION 17” must appear in the license file to run version R17.0.0. Please contact your distributor or your Synopsys sales representative if you need to have your license updated.
Until such time as the R17.0 User’s Manual is posted at https://lsdyna.ansys.com/manuals-download/, the DRAFT User’s Manual may be used as a temporary substitute. Note that some features mentioned in the DRAFT User’s Manual may not be implemented for R17.0.0.
The remainder of this file briefly describes new features, enhancements, and bug fixes in version R17.0.0. Other recent releases may also include some of these updates.
We arranged the items by category. Note 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.
Enabled the ability to select the tetrahedral volume remesher for 3D \(r\)-adaptivity (ADPTYP = 7 on *CONTROL_ADAPTIVE). Two remeshers are available: the classic remesher and an alternative remesher. This feature is controlled by ADPTGEN on *CONTROL_ADAPTIVE.
Added the ability to compute the microstructure evolution in a 3D \(r\)-adaptive (ADPTYP = 7 on *CONTROL_ADAPTIVE) part during hot forging simulations. This feature is controlled by ADPMIC on *CONTROL_ADAPTIVE and requires *MAT_ADD_MICRO to input material constants.
Added keyword *DEFINE_CPG_ADAPTIVE to adapt particle size based on distance from the wall.
Added keyword *DEFINE_DE_TO_CPG_COUPLING to define a coupling interface between discrete element spheres and a CPG airbag. Coupling can be two-way, one-way with the DEM data passed to CPG, and one-way with the CPG data 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 the ability to use the \(k\)-\(\varepsilon\) turbulence model with CPG airbags; see ITURB on *CONTROL_CPG.
Support subcycling when using the IBM-FSI dual CESE solvers in conjunction with the structural mechanics solver (see SUBCYC on *DUALCESE_SOLVER_SELECTION). Subcycling allows for more efficient simulations by enabling multiple steps of the structural solver between dual CESE fluid solver updates. While this feature can significantly speed up the simulation, you should be mindful of the frequency of FSI feedback updates to maintain accuracy; excessively large steps between updates may impact results. When enabled, the number of mechanics time steps between fluid time steps is controlled by an error tolerance. The error tolerance has a default value of 0.001 but can be input as a constant value or a load curve that modifies it in time (see *DUALCESE_SOLVER_SELECTION). The maximum allowed single time step structural displacement equals the error tolerance multiplied by the maximum element length in the dual CESE mesh. A maximum number of subcycle steps can also be specified.
Added the pyramid element as a new element type available in the 3D case. This is used as a transition element type by many mesh generators.
Made conjugate heat transfer available for the IBM-FSI single-fluid solver (ICHT on *DUALCESE_MESH_PART) when coupled with the structural thermal solver.
Added keyword *DUALCESE_INITIAL_REGION, which uses *DEFINE_REGION to enable more flexible problem setup for the single fluid solvers, with and without the IBM-FSI capabilities.
Ported the chemically reacting flow solver from the CESE solver into the dual CESE solver framework. This feature involves the following new keyword card:
The dual CESE chemically reacting flow solver is available for the most important features. The solver options ported from the CESE version include 3D, 2D, and 2D axisymmetric versions, with and without the IBM-FSI capability. The dual CESE version includes the following added capabilities:
Note that the only chemistry solver available for use with the dual CESE chemically-reacting flow solver is *CHEMISTRY_CONTROL_FULL.
Added keyword *DUALCESE_BLOCKMESH to enable the quick creation of a single block-structured mesh with variable element spacing in each coordinate direction. This feature provides a quick way to set up the mesh with its boundary segment sets for testing dual CESE use in new applications. Note that this feature is not intended to replace higher-quality meshes that will give much better simulation results.
Added the ability to output most dual CESE results in the EnSight Gold format. This is an alpha-level feature; additional capabilities are under development. This output mechanism gives more flexibility in optimizing output for post-processing. In addition, it provides support for dual CESE meshes containing pyramid meshes and those generated by a future solver based upon adaptive meshing. The following keywords are available for this feature:
Added EMSOL = 7 to *EM_CONTROL. It invokes a frequency domain solver that solves the Helmholtz equation for the electric field. This solver is for the high frequency domain and targets applications that include high frequency electromagnetic waves, radar, antenna, MRI and other similar applications. Excitation fields are typically plane waves (radar, scattering) or current sources (antennas, coils, wires). See *EM_EXTERNAL_FIELD and *EM_CIRCUIT_SOURCE for the excitation fields.
Added EMSOL = 8 to *EM_CONTROL. It invokes an FEM solver in the time domain that solves the quasistatic electrostatic equation for dielectric breakage and capacitor stud applications.
Added EMSOL = 9 to *EM_CONTROL. It invokes a radiofrequency (RF) heating solver in the frequency domain. In previous versions, this solver could already be used by using EMSOL = 3 and simply defining a second line to *EM_MAT_001, but the increased capabilities of the EM solver made us reorganize this capability into its own EMSOL for consistency. Warning: for consistency also, when this solver is used, the amplitude defined in the boundary condition is now the peak amplitude. Previous versions asked for the RMS value instead.
Added keyword *EM_EXTERNAL_ECVEL. This keyword allows you to add the Eulerian velocity effects to your Eddy current analyses when working in an Eulerian framework (mesh not moving but imposed velocity known). This can typically be useful in rotating cases to avoid costly BEM matrix reassemblies.
Added FTYPE = 4 to *EM_EXTERNAL_FIELD, which enables defining a planar excitation wave when EMSOL = 7 is selected in *EM_CONTROL.
Added keyword *EM_SOLVER_BEM_REASSEMBLY. This keyword enables keeping part of the previous BEM matrices during reassembly by specifying the list of parts that do not move or deform either themselves or relative to each other (typically fixed rigid bodies). This feature can save a lot of calculation time in transient applications, such as magnetic metal forming and magnet snapping.
Added *EM_EP_TENTUSSCHER_STIMULUS2 to apply stimulation to electro-physiology cell models using a load curve. This keyword is supported for all electro-physiology cell models.
Added keyword *EM_EP_CELLMODEL_STEP. This ionic cell model is a simple step function with a resting potential, depolarization potential, and duration. This model can be helpful for Eikonal solves where you only care about the duration of the active phase.
Added the Trovato cellular action potential model for electro-physiology invoked with *EM_EP_CELLMODEL_TROVATO.
Support using an external variable (*LOAD_EXTERNAL_VARIABLE) in the *DEFINE_FUNCTION used by *EM_RANDLES_SHORT. With this functionality, the value of an external variable can be used to trigger short circuits in a battery model.
Added keyword *DATABASE_FATIGUE_RAINFLOW_MATRIX to provide a rainflow matrix plot for fatigue analysis.
Added keyword *TERMINATION_FATIGUE to terminate the calculation early based on fatigue damage. The feature is only supported for *FATIGUE_ELOUT.
Added *FATIGUE_D3PART to run a fatigue analysis with d3part instead of d3plot.
Added fatigue damage computation for proportional loading with *FATIGUE_STATIC.
Added the SET_LIST keyword option to *INCLUDE_STAMPED_PART_SOLID_TO_SOLID to map more than one solid part. With this option, the data input includes a card for listing the target parts. All parts in the source file are considered for mapping to the target.
Added the ability to include a transitional draw bead for obtaining the transitional bead force (*CONTROL_FORMING_DRAWBEAD_TRANSITION). In a stamping simulation, a line bead is commonly used. Usually, the line bead has a constant bead force in the numerical model. This keyword enables obtaining the transitional bead force. The transitional bead force changes linearly from one end to the other. If the end of the transitional draw bead has a neighboring draw bead, then the force on that end takes the value from its neighboring draw bead. If the end is open, the bead force is zero on that end.
Added *INTERFACE_COMPENSATION_TRIMMING_CURVE to update the trimming curves when performing compensation.
Added the ability to select the structural parts for computing the immersed interface (see PID on *ICFD_CONTROL_IMMERSED) for the RIIS immersed method (IMMTH = 4 on *ICFD_CONTROL_IMMERSED) and the discontinuous FEM approximation method (IMMTH = 1 on *ICFD_CONTROL_IMMERSED).
Added keyword *ICFD_CONTROL_IMMERSED_FSI to select the immersed coupling type.
Added IMMTH = 4 to *ICFD_CONTROL_IMMERSED to enable the RIIS immersed method without DEM particles.
Added keywords *ICFD_DATABASE_BIN and *ICFD_INITIAL_BIN. These two keywords are used together for two-step simulation workflows in which the results output from the first simulation *ICFD_DATABASE_BIN are then used to initialize a subsequent analysis with *ICFD_INITIAL_BIN. The geometries must match between the two steps, but the meshes can be different. This feature can be useful in a variety of problems. For example, some FSI problems benefit from a starting point that already features a developed flow. In conjugate heat transfer problems, it could be used to focus on the transient thermal behavior while assuming steady flow conditions for velocity.
Added *ICFD_DATABASE_VOL to print out general geometry information for the fluid domain, such as total volume and center of gravity.
Added keyword *ICFD_INITIAL_VISCOELASTIC to initialize components of the conformation tensor.
Added HVAC modeling ability to ICFD (see HVAC on *ICFD_MODEL_SPECIES_TRANSPORT). The HVAC solver couples to the Boussinesq Navier-Stokes momentum equation. See HVAC on *ICFD_MODEL_SPECIES_TRANSPORT to enable this model. See *ICFD_BOUNARY_PRESCRIBED_WATERVAPOR for setting the water vapor mass fraction on a boundary and *ICFD_INITIAL_WATERVAPOR for initializing the water vapor mass fraction.
Made further developments to the multi-species transport solver by supporting more than two species, adding chemical reactions, and enabling fluid density that depends on species concentrations. DENSRCT = 1 on *ICFD_MODEL_SPECIES_TRANSPORT enables specifying a function, DENSFID, to provide the fluid density as a function of species concentrations. DENSRCT = 2 enables modeling reactive species transport with the reaction rates for each species given as functions. Additionally, the mass diffusion for each species can be defined. *ICFD_BOUNDARY_PRESCRIBED_SPTRANSP_CONC has been modified to provide the concentration of each species at the boundary. Lastly, *ICFD_DEFINE_SPTRANSPSOURCE has been modified to specify the species for which the volumetric species source applies (see SPIND).
Added the ability to compute and track the hemolysis index and scalar shear stresses with keyword *ICFD_DEFINE_HEMOLYSIS_INDEX.
Support steady-state and transient thermal conduction analysis for isogeometric boundary fitted/untrimmed structured splines (*IGA_3D_NURBS_XYZ) and unstructured splines (*IGA_3D_BASIS_TRANSFORM_XYZ) when using IGA solid elements.
Support conjugate heat transfer, coupling IGA with the ICFD solver (SMP only) for isogeometric boundary fitted/untrimmed structured splines (*IGA_3D_NURBS_XYZ) and unstructured splines (*IGA_3D_BASIS_TRANSFORM). This feature is supported for IGA solid elements.
Added material model *MAT_331/*MAT_IMPACT_ORTHOTROPIC. It is used for modeling the behavior of composite materials subjected to hypervelocity impact.
Added *EOS_043/*EOS_LEE-TARVER. This equation of state is an implementation of the Lee-Tarver ignition and growth model, a phenomenological framework describing how shocked, heterogeneous explosives transition from unreacted solids to detonation products. This formulation implements the Lee-Tarver Ignition and Growth model originally developed within the Ansys® Autodyn solver and has been adapted for broader application. This type of equation of state is classified as a reactive burn model. Compared to *EOS_IGNITION_AND_GROWTH_OF_REACTION_IN_HE, EOS Form 43 requires fewer parameters, while maintaining consistency with much of the external literature.
Added equation of state *EOS_AERATED_WATER (*EOS_044). With this equation of state, water is modeled as a homogeneous air-water mixture, with pressure depending on the compression ratio (barotropic).
Added keyword *CONTROL_MPP_DECOMPOSITION_TRANSFORM_KEYWORD. Adding this keyword will cause all *CONTROL_MPP_DECOMPOSITION_TRANSFORMATION instantiations to apply not just to the primary decomposition region, but to all the specific decomposition regions created by other *CONTROL_MPP_DECOMPOSITION_… keywords. Note that this feature has been available since R12 through the pfile command decomposition { transform_keyword }.
Added keywords *CONTROL_MPP_DECOMPOSITION_ADJUST_PART_COST and *CONTROL_MPP_DECOMPOSITION_ADJUST_MTYPE_COST. The effect of these keywords is to alter the decomposition cost of each element of the given part or material type. If a part appears in more than one instance of this card, the first values are kept and a warning is issued. Parts have priority over material type as they are more specific.
Changed the solver used in solving the unit cell model (*INCLUDE_UNITCELL) from LAPACK to a compressed-sparse-column-based sparse solver. Using the LAPACK solver in explicit analysis requires solving a large-scale inverse problem, which is both time and memory intensive. The compressed-sparse-column-based sparse solver improves efficiency for unit cell analyses in explicit.
Initial release of the MAPDL LS-DYNA co-simulation feature. This feature is limited to modeling solder reflow. It uses adaptive ISPG to model the solder balls. See the beta documentation for LS-DYNA on the Ansys help website for details.
Added *ISPG_TO_ISPG_CONTACT to specify sets of ISPG where the parts in each set interact with each other through contact during the solder reflow simulation process.
Added keyword *ISPG_TRANS_CPL to define strong coupling between an ISPG fluid and rigid bodies. It is intended for models that involve force-driven adhesive flow or self-alignment due to strong capillary action.
Added keyword *MAT_ISPG_CROSS_WLF_MODEL (*MAT_ISPG_05) for ISPG. The Cross WLF viscosity model combines the Williams-Landel-Ferry (WLF) equation with a power-law dependence on shear rate. It is particularly useful for modeling the thermal dependence of polymers, and it captures the non-Arrhenius behavior of viscosity near the glass transition temperature.
Added *DEFINE_SPG_TO_SPG_COUPLING to define a coupling interface between two SPG parts.
Added *LOAD_HEAT_LASER_ABSORPTION to simulate the heating of a translucent, heat absorbing material by a moving laser source.
Made sliding contacts with AUTOMATIC_SINGLE_SURFACE in the name available for contacts that involve thermal heat transfer (THERMAL and THERMAL_FRICTION keyword options).
Including the command line option sharecrv causes the raw load curve data, which is the same on all processors, to be put into shared memory on each compute node. Doing this reduces the amount of memory required for execution. We recommend using this command line option only if necessary, as it might have a slight impact on speed. This feature is only available in the MPP version and is not supported with PlatformMPI.
Added keywords *HASH and *HASH_END for generating a checksum of a portion of the input. This checksum provides an easy confirmation that a block of input has not been modified. It is included in a table at the bottom of d3hsp. This table also includes hashes for all the input files and some of the generated output files. Note that these keywords require using the hash command line option to have an effect.
Added *DEFINE_TWINBUILDER_COUPLING to define a node/node set that interacts with an Ansys Twin Builder™ ROM model. This keyword is still under development.
Made coupling the LS-DYNA solver with the Ansys Fluent® solver available through the Ansys System Coupling™ software. This feature is beta and still under development. See *COSIM_SYC_CONTROL and *COSIM_SYC_INTERFACE.
Added acoustic intensity in directivity output (AC_intensity_directivity_n) invoked with *FREQUENCY_DOMAIN_ACOUSTIC_DIRECTIVITY.
Added load type VAD = 15 to *FREQUENCY_DOMAIN_SSD to provide a rotating structure with a mass imbalance as the excitation input.
Support using *FREQUENCY_DOMAIN_PATH for reduced FRF (*FREQUENCY_DOMAIN_FRF_REDUCED).
Support outputting the acoustic fringe plot and directivity plot for variational indirect BEM (METHOD = 2) when RESTRT = 1 on *FREQUENCY_DOMAIN_ACOUSTIC_BEM.
Enabled computing the acoustic radiated power with *FREQUENCY_DOMAIN_ACOUSTIC_BEM_POWER using variational indirect BEM (METHOD = 2).
Support RESTRT = -3 and -30 for the Rayleigh method (METHOD = 0 on *FREQUENCY_DOMAIN_ACOUSTIC_BEM).
Support the fringe plot (*FREQUENCY_DOMAIN_ACOUSTIC_FRINGE_PLOT) including field on the boundary of the boundary element mesh for collocation BEM (METHOD = 3 on *FREQUENCY_DOMAIN_ACOUSTIC_BEM).
Support the reflection coefficient, RC, on *FREQUENCY_DOMAIN_ACOUSTIC_BEM for the Rayleigh method (METHOD = 0) and collocation BEM (METHOD = 3).
Added the ability to specify the nodal normal velocities in the user-provided files bevel and bevelf instead of the velocity components. In the first line of these files, the third parameter is now NORM which flags the kind of velocity in the file. NORM = 0 means that the velocity components are provided, while NORM = 1 means the normal velocity is provided.
Support restrt = -3 (using bevelf) and -30 (using bevelf.lsda) on *FREQUENCY_DOMAIN_ACOUSTIC_BEM for collocation BEM with the Burton-Miller formulation (METHOD = 4 on *FREQUENCY_DOMAIN_ACOUSTIC_BEM).
Support acoustic directivity (*FREQUENCY_DOMAIN_ACOUSTIC_BEM) output for collocation BEM (METHOD = 3 on *FREQUENCY_DOMAIN_ACOUSTIC_BEM).
Added in-core adaptivity support when ADPOPT is defined in Card 2 of *PART. Parts with ADPOPT = 0 will be skipped when INMEMORY = 1 in *CONTROL_ADAPTIVE, consistent with the adaptive behavior when INMEMORY = 0.
Support in-core adaptivity with tabulated friction coefficients (FS = -2 on Card 2 of *CONTACT_…) in MPP, where the friction coefficients can be functions of pressure and relative velocity at the contact interface.
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.
Added capability to automatically refine the particle size around inflators and vents. See HLENV and HLENO on *AIRBAG_CPG.
Added shear friction force to structure coupling for CPG airbags.
Added part output of heat transfer and heat transfer rate in binout for CPG airbags.
For *AIRBAG_CPG, added bag integrity checks to see if the external mesh is closed and normal vectors are consistent.
Added PPOP to *AIRBAG_CPG to open the vents and keep them open based on a pressure differential.
Added an error message if the fabric porosity option, FVOPT, on *MAT_FABRIC is not 7 or 8 when used with CPG airbags (*AIRBAG_CPG).
Added support for the FLC porosity option define in *MAT_FABRIC for CPG airbags.
Allow the density to be defined as a function of time (RO < 0.0) for *AIRBAG_LINEAR_FLUID.
Added the 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.
For *AIRBAG_PARTICLE opening a vent with PPOP is based on the instantaneous part pressure which is very noisy and triggers venting unexpectedly. To remove the noise, a moving average scheme is now used, leading to a more reliable signal.
Support FVOPT = 1 and 2 on *MAT_034 for CPM airbags (*AIRBAG_CPM).
Support *CONSTRAINED_EULER_IN_EULER for S-ALE.
When using *ALE_COUPLING_NODAL_… to couple ALE materials with SPH particles generated by *DEFINE_ADAPTIVE_SOLID_TO_SPH, the coupling is disabled for inactive embedded SPH nodes inside the solid elements.
Added OPTION SALEBOXL to *SET_NODE/SEGMENT/SOLID/SHELL_GENERAL to generate nodes/segments/solids/shells inside a box in S-ALE local coordinates.
Support the NLPTC option for *DATABASE_BINARY_FSILNK.
Calculate and report erosion energy for failed S-ALE materials.
Made improvements to the S-ALE volume filling by part/segment set algorithm:
Force dump the d3sale database at the same interval as d3plot, so you can post-process the d3plot/d3sale combinations during the run.
Implemented keyword option AXIVOL for *ALE_STRUCTURED_MULTI-MATERIAL_GROUP to use the volume-weighted axisymmetric ALE 2D formulation (ELFORM = 15 in *SECTION_ALE2D).
Added advection method Van Leer with Half Index Shift modified to conserve total energy over each advection step invoked with METH = 4 on *CONTROL_ALE.
Added INITRNS = 1 to *CONTROL_REFINE_ALE2D to initially refine a mesh region with mesh transitions.
Support *SET_SOLID_ADD and *SET_SHELL_ADD for S-ALE.
Implemented *SET_SHELL_INTERSECT for S-ALE 2D meshes.
Added flag ICUT to *INITIAL_VOLUME_FRACTION_GEOMETRY for CNTTYP = 1 and 2 to activate computing the exact volume instead of an estimate when filling ALE elements cut by the Lagrangian structure.
Support computing lighting times of explosive S-ALE elements in a set with *INITIAL_DETONATION_SET. Previously, *INITIAL_DETONATION was supported for S-ALE but not with the SET keyword option.
Implemented *ALE_BURN_SWITCH_MMG for S-ALE.
Exclude segments loaded by *LOAD_SEGMENT from the sliding conditions built along mesh boundaries for EBC = -2 on *CONTROL_ALE.
Support prescribing motion of S-ALE groups with *ALE_PRESCRIBED_MOTION.
For *BOUNDARY_SALE_MESH_FACE with OPTION = AMBIENT, added the ability to specify the “reservoir” material, internal energy load curve, and the relative volume load curve.
Added BCTYPE = PRES to *BOUNDARY_SALE_MESH_FACE to apply time-dependent pressures along an S-ALE mesh boundary face.
Added BCTYPE = FLOWVEL to *BOUNDARY_SALE_MESH_FACE to apply velocities along an S-ALE mesh boundary face.
For *CONSTRAINED_LAGRANGE_IN_SOLID, interpolate coupling forces at middle edge and face center nodes for higher-order elements, namely, 40-node pentahedra, 20-node tetrahedra, 8-node shells, 6-node shells, 21-node pentahedra, 15-node tetrahedra, 64-node hexahedra, 10-node tetrahedra, 27-node hexahedra, and 20-node hexahedra.
Automatically replace *ALE_MAPPING when RW = 1 and TBEG = 0 with *INITIAL_ALE_MAPPING. The behavior in the simulation stays the same.
Added writing the mapping file with *ALE_MAPPING if the velocity at node ND is nonzero.
Updated the approach for computing 3D volume fractions with using METHOD = 1 on *ALE_MAPPING_FROM_LAGRANGIAN.
Support *ALE_MAPPING_FROM_LAGRANGIAN in 2D. For this case, volume fractions and other data from 2D Lagrangian elements are written to a mapping file that can be used to initialize 2D ALE meshes.
Support the mapping file produced from *ALE_MAPPING_FROM_LAGRANGIAN in S-ALE.
Support initializing S-ALE FSI (*ALE_STRUCTURED_FSI) from a mapping file with *INITIAL_ALE_MAPPING.
Support mapping the penalty penetrations from *CONSTRAINED_LAGRANGE_IN_SOLID in a 2D to 2D mapping with *INITIAL_ALE_MAPPING.
Support mapping coupling penetrations from *CONSTRAINED_LAGRANGE_IN_SOLID that come from several mapping files using *INITIAL_ALE_MAPPING with map2=.
Support producing mapping data with *ALE_MESH_INTERFACE for S-ALE:
Added N = 2 to NOWRT of *ALE_MESH_INTERFACE to write a hexahedral mesh in 3D or quadrilateral mesh in 2D for selected materials.
Support specifying prescribed displacement constraints using *BOUNDARY_SPC_NODE or *BOUNDARY_SPC_SET in a cylindrical or spherical coordinate system. Previously, only the global Cartesian system was supported.
Support defining translational prescribed motions specified with *BOUNDARY_PRESCRIBED_MOTION in a cylindrical or spherical coordinate system.
Added birth time flag to *BOUNDARY_PRESCRIBED_FINAL_GEOMETRY. This feature enables the definition of sequential multilinear paths in one single run.
Implemented a more efficient hydrodynamic wave effect solver (*BOUNDARY_MCOL).
Added flag SKPCNRB to *CONTROL_CONSTRAINED to skip the stress calculation of a part based on element type if the part is part of a nodal rigid body (*CONSTRAINED_NODAL_RIGID_BODY).
For *CONSTRAINED_SOIL_PILE:
Support beam resultant output (forces and moments) to the elout database for *CONSTRAINED_INTERPOLATION_SPOTWELD MODEL = 3 (SPR3 with strongly objective formulation) connector beams.
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 nodal areas to be considered and adds a participation factor for better consideration of distances between SPR and the associated nodes.
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.”
Added field PID to *CONSTRAINED_TIED_NODES_FAILURE. With PID > 0 and NSID = 0, the mesh of the corresponding part is automatically separated (creating new coincident nodes) and reassembled using this tied constraint with failure. If some original nodes are part of node sets, such as for boundary conditions, these sets get automatically extended as well. This is currently only supported for shell elements (ETYPE = 0).
Made improvements to MPP single surface (*CONTACT_AUTOMATIC_SINGLE_SURFACE) contact and penetration tracking that reduce force spikes in difficult meshes.
Detect empty shell sets being used in *CONTACT definitions, and flag these as errors during keyword processing.
Made modifications to the MPP tiebreak code for *CONTACT_AUTOMATIC_…_TIEBREAK with OPTION < 0. The behavior here now agrees well with SMP and with BEAM_OFFSET tied contact.
Added some mesh checking for solid elements during contact input processing. When contact is defined using solid parts, the process that determines the outside surface (and the interior segments for erodingcontact) now checks for problems and error terminates when nonphysical solid meshes are input (for which the “outside” is indeterminate). In particular, it checks for cases where elements are duplicated, or connected in impossible ways (such as two solid elements being on the same side of a common face). Note that older versions of the code did not do these checks, and so would run models which might now be rejected. These checks are not optional and cannot be turned off because they expose actual physical mesh errors that should be corrected to get correct results.
Added MPP contact support for *CONTACT_TIED_SHELL_EDGE_TO_SOLID_CONSTRAINED_OFFSET.
Improved handling of nodes that are on the reference side of constraint-based tied contact interfaces while also being constrained with *INTERFACE_LINKING_…. For MPP non-groupable contact, this is already being handled well. But for groupable contact, all reference nodes were being removed from the LINKING interface, even if they did not have any tracked nodes tied to them. Now only those reference nodes actually having constraints due to tracked nodes being tied to them will be removed from the linking interface.
For *CONTACT_AUTOMATIC_…_TIEBREAK, force automatic surface reorientation for these contacts.
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 *LOAD_THERMAL_LOAD_CURVE.
Added support for contact option TCSO (optional Card D) to the MPP versions of SINGLE_SURFACE, AUTOMATIC_SINGLE_SURFACE, and AIRBAG_SINGLE_SURFACE.
In constraint-based tied contacts, massless nodes are now allowed on the tracked side of the contact (SURFA).
Modified segment-to-segment (SOFT = 2) contact. A problem was observed with edge-to-edge contact checking when the sliding option (SBOPT = 4 or 5) was active. Segments were not developing contact forces, so edges were penetrating other edges. Since the sliding option was developed for surface sliding, a decision was made to skip the sliding option logic when a contact pair was contacting edge-to-edge in the previous cycle. This change will affect results when the sliding option is used with DEPTH = 5, 15, 25, 35, or 55.
Modified the bucket sort behavior of segment-to-segment (SOFT = 2) eroding contact. The default bucket sort frequency is still 10, but if the number of cycles (BSORT on *CONTACT_… or NSBCS on *CONTROL_CONTACT) is set to a value larger than 10, then the larger value is used. However, if a new contact segment is added due to the deletion of a solid or thick shell element, then another bucket sort is added in no more than 5 cycles. It will be less than 5 cycles if the scheduled bucket sort is less than 5 cycles ahead, but 5 cycles if the scheduled cycle is more than 5 cycles ahead. In the latter case, the next scheduled cycle will be set to BSORT or NSBCS cycles after the added bucket sort.
Added parameter IBEAMS2S to optional Card G of *CONTACT_…. If you want to have beam segments included in a segment-to-segment (SOFT = 2) contact interface, include the beam part or parts in the contact surface and set IBEAMS2S = 1. If IBEAMS2S is not set or is set to 0, the beam segments will not be created and beams will not be checked for contact. In other words, the default behavior is to omit beams from contact.
Tuned segment-to-segment (SOFT = 2) contact to make it more accurate. This improvement enables rigid body translation at any distance from the origin without producing contact energy.
Improved beam contact in single-surface segment-to-segment (SOFT = 2) contact by optimizing the code that removes neighbor beams from consideration. This should make the contact faster and a less like to generate spurious energy with flexible beams such as when fabric fibers are simulated.
Implemented asynchronous inter-processor communication for Mortar contact. Communication between processors in Mortar contact is now initiated as early as possible and overlapped with local computation, using non-blocking MPI operations. This potentially reduces idle time and improves scalability for large parallel jobs.
Map user-defined friction and wear history variables for Mortar contact across adaptive remeshing steps. When \(r\)-adaptive remeshing (mesh rezoning) is combined with Mortar contact, wear depth/history and user-defined friction history variables are now correctly interpolated from the old mesh to the new mesh at each rezoning step. Previously, all contact history was discarded at each rezone, causing an incorrect contact state during the remainder of the simulation.
Support nonzero birth time (BT on Card 2 of *CONTACT_…) for all non-groupable implicit tied contacts.
For implicit tied contacts, improved the tied contact logic so that stacked plies with constrained tied contacts in between are not subjected to release, provided that there is no dependency when viewed as a fully coupled system.
Made a slight modification to 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_\mathrm{m}/\delta_{\mathrm{m}1})\).
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.
Improved the bottom flux calculation at the FSI-IBM interface, leading to better stability.
Added load curve support for the dual CESE porous media capability (see LC_KP and LC_BETA on *DUALCESE_DARCY-FORCHHEIMER_EQ). This gives you a way to obtain a variable permeability for the porous media that is immersed in the dual CESE fluid. This feature is available in the single-fluid IBM-FSI, two-phase IBM-FSI, and chemically-reacting flow IBM-FSI solvers.
Added the restart capability for all dual CESE solvers. With this, large and long-running dual-CESE-based applications can be restarted from restart files created at intermediate times during a simulation.
Using the REFPROP EOS is available by requesting the required support files from ACE.
Made significant reductions in internal memory use in several aspects of the dual CESE solvers. With these improvements, much larger meshes can be used on a given compute resource.
Implemented an alternate method for determining the number of buckets in the bucket sort search by allowing for a scaling factor multiplying the number of fluid nodes or elements on the current processor. This scale factor is input with SFNBCKT on *DUALCESE_MESH_GEOMETRY. A fractional number (such as 0.6) reduces the number of buckets below the number of fluid nodes or elements.
Added check for invalid segments or faces in the definitions of a dual CESE segment set. These segments typically occur in surfaces used for boundary condition definitions.
Added option ITORM = 3 on *SECTION_BEAM which uses the average of the rotational inertias of ITORM = 2. This frame invariant approach is directly applicable in explicit and implicit analyses. Additionally, ITORM may be input negative to get a user-defined rotational inertia computed from the absolute value of ITORM and the nodal translation mass. Both cases may require a reduced step size for stability in explicit analysis.
Added the ability to specify two shear areas for the Belytschko-Schwer resultant beam (ELFORM = 2) with SAS and SAT on *SECTION_BEAM.
Zero density is now allowed in cohesive solid elements. It has always been the case that the cohesive element time step is computed using the assembled nodal mass. Therefore, the cohesive elements did not strictly need to have any density. To allow for zero cohesive density, we changed the mass scaling computation to be based on the cohesive element mass. Before, it was based on the cohesive element density.
Added option L = 3 as the 10s digit of ICOH on *CONTROL_SOLID. The tens digit determines how to compute how much nodal mass is associated with each cohesive element. For L = 3, instead of assuming that each node is shared by two or four cohesive elements, the actual distribution of the nodal mass is computed. This leads to identical time steps at edges and inside of the cohesive surface.
Added check for 5-noded pyramid elements and added a warning about it.
Improved single precision accuracy of the internal energy computation in shell type 16. ISTUPD = 5 and 6 on *CONTROL_SHELL invoke this improved accuracy version.
Made a modification to the cohesive element quality check, option COHEQC on *CONTROL_SOLID. This check is only performed for cohesive elements that have materials with ROFLG = 0.
For *EM_CIRCUIT, an optional phase time can be defined in the C/T0 field if EMSOL = 4 or 9.
It is now possible to define a general contact resistance law when no *EM_CONTACT has been defined by setting CONTID = 0 on *EM_CONTACT_RESISTANCE. This is useful in self contact cases.
Added BIOT = 1 for EMSOL = 3 on *EM_CONTROL to calculate Lorentz forces in conductive beam elements using the resistive heat solver (diffusive effects are neglected). This feature can be useful in high voltage cable applications to study their oscillation behavior in cases of strong current discharge.
Added BIOT = 1 and 2 for EMSOL = 1 on *EM_CONTROL to output results from a magnetostatic solve in a binary file (BIOT = 1) which can then be reread in a subsequent analysis (BIOT = 2) to do some Biot-Savart calculations and extract the magnetic flux on nonmagnetic surfaces. This feature can be useful for studying the effects of magnets or ferromagnets on their environment.
For EMSOL = 4 on *EM_CONTROL, it is now possible to define a complex permeability to include hysteresis effects using *EM_MAT_002.
Made improvements that led to a reduction in the calculation time when using *EM_DATABASE_PARTDATA.
For *EM_EOS_PERMEABILITY, added option to have the \(B\)-\(H\) curves as a function of either the signed Von Misses stress or more complex laws for magnetostriction problems.
Support using *DEFINE_CURVE_FUNCTION for the load curves specified in *EM_ISOPOTENTIAL_CONNECT.
For *EM_ISOPOTENTIAL_CONNECT, implemented imposing an optional phase shift if EMSOL = 4, 7, or 9 on *EM_CONTROL.
Add keyword *EM_OUTPUT_BINARY. This keyword enables outputting certain EM solver results in a binary format instead of ASCII. For now, only the “em_randles” input family and the “em_isopot” output family are supported (for large battery cases).
For *EM_RANDLES_…, added support for *DEFINE_CURVE in the definition of R0CHA, R0DIS, etc. when a negative value is entered. LS-PrePost seemed to have assumed that this was already supported (which was causing errors and confusion for users).
Added STYPE = 3 to *EM_SOLVER_FEM to invoke a hybrid approach between the direct solver and the iterative approach. At the initial time, a direct solve is done and factorization is kept. Subsequent solves either use the direct solver (if entry matrices have not changed) or switch to an iterative conjugate gradient approach if they changed unless convergence is not achieved in which case a new factorization and direct solve is attempted. This approach saves significant computational time in large battery models that use temperature-dependent Randles circuits.
The EM solver supports the *INCLUDE_TRANSFORM offsets specified in Card 2b.1.
Added EM functions EM_ISOHIST and EM_ISOCHIST to *DEFINE_CURVE_FUNCTION to access the global quantities calculated by *EM_ISOPOTENTIAL and *EM_ISPOTENTIAL_CONNECT, respectively.
In the 2D axisymmetric Eddy current solver, the Lorentz force calculation now better includes the element deformation, resulting in higher accuracy.
Optimized the FEM and BEM matrix assemblies, resulting in reduced calculation times.
Optimized the internal operation that calculates the current density, resulting in a slight reduction in calculation times (visible mostly in large models 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 done if the direct solver is used. We made this change after noticing that using birth times 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 in case of different element orderings as round off errors depending on the order of calculations could introduce micro changes in 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.
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 the accuracy was poor in areas that had elements with high conductivity right next to elements with poor conductivity. The new way should overall not introduce large changes in thermal coupling problems, but it is possible that results differ slightly when compared with 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 output of EM data on nodes (*EM_DATABASE_NODOUT) for the pure Eikonal solver (EMSOL = 14 on *EM_CONTROL)
Support the RE+ solver (see EMSOL = 16 on *EM_CONTROL) for the ECG computation (*EM_EP_ECG).
Added stimulus on beams in the multifront time stepping Eikonal solver (*EM_EP_EIKONAL).
Added solvers RE- and RE+ (EMSOL = 15 and 16 on *EM_CONTROL) to the capability of solving the external potential, \(\phi_e\). Previously, this was only supported for the monodomain solver. \(\phi_e\) is solved when LAMBDA is defined in *EM_MAT_003 or *EM_MAT_005. Note that for *EM_MAT_005 this feature is only supported for EMSOL = 15 and 16 and not for the monodomain solver.
Added capability to model the electromagnetic properties of tissue using *EM_MAT_001 with MTYPE = 2. This feature is only supported for the EP monodomain solvers (see EMSOL = 11 and 13 on *EM_CONTROL). Note that the tissue must not have a fiber orientation.
Support *EM_EP_CELLMODEL_DEFINE_FUNCTION and *EM_EP_CELLMODEL_TROVATO for the spline ionic solver (IONSOLVR = 2 on *EM_CONTROL_EP) when using Eikonal solvers EPSOL = 14, 15, or 16.
Added field IDRAW to *CONTROL_FORMING_ONESTEP_AUTO_CONSTRAINT to specify or let the solver approximate the draw direction. In the one step method, if the panel is put at an arbitrary orientation, the boundary conditions might be different and the obtained results can vary. This feature leads to more consistent results.
Added the ability to provide the pad as a reference for positioning the final blank with *CONTROL_FORMING_ONESTEP_AUTO_CONSTRAINT. The pad is specified with PADID and must be flat. The unfolded blank is repositioned such that the \((x,y)\) mass centers match.
Made the results from the one-step solution method (*CONTROL_FORMING_ONESTEP) more consistent when using GISSMO (*MAT_ADD_DAMAGE_GISSMO) for the damage model.
Made the following improvements in stamping simulations that use solid elements:
Added the ability to include the effect of a post in springback compensation with *INTERFACE_COMPENSATION_3D. The information on Card 1a.3 (VX, VY, VZ, and GAP0) provides the direction the blank would need to move to be on the post and the gap between them, so that the gap can be removed. With this the correct springback value can be used to compensate the die. If springback is performed using single point constraints, this card is not needed.
Added support for adaptive meshing when using the RIIS immersed method (IMMTH = 2 and 4 on *ICFD_CONTROL_IMMERSED).
Improved immersed interface detection using structural normals and fluid edge intersections.
Enhanced accuracy of force computation for immersed methods, including beam element fixes and structural side detection.
Improved mapping algorithms after remeshing for robustness and efficiency.
Simplified the setup and usage of the RIIS immersed method using DEM particles for the interface (IMMTH = 2 on *ICFD_CONTROL_IMMERSED). This method no longer requires *ICFD_CONTROL_DEM_COUPLING. Instead it uses *ICFD_CONTROL_IMMERSED_FSI like all the other immersed methods.
Added keyword option CSYS to *ICFD_DATABASE_DRAG to define a local reference frame in which the forces will be output. This ability can be useful in certain categories of problems, such as container dropping or rotating problems.
Made it possible to dynamically turn on and off the Navier Stokes solve using TDEATH < 0.0 on *ICFD_CONTROL_TIME. If less than 0.0, |TDEATH| refers to a load curve ID for the curve giving an indicator as a function of time. A positive value for the indicator means the Navier Stokes solve is on, while a negative value means it is off. Equations for the mesh movement and temperature are still solved, regardless of the indicator. This feature can be useful in various scenarios, such as transient conjugate heat transfer where the fluid may no longer vary significantly after a certain time or conversely is only turned on after a certain birth time.
Added the Giesekus model (VTYPE = 2) to *ICFD_MODEL_VISCOELASTIC.
Enabled specifying an initial level set surface with a function (*DEFINE_FUNCTION) using STYPE = 5 on *ICFD_INITIAL_LEVELSET.
Added the ability to include two materials in a volume for level sets with *ICFD_PART_VOL.
Added support for a more general way to define the residence time injection region with ISHAPE = 4 on *ICFD_DEFINE_RESIDENCETIMESOURCE. This method involves specifying one or more infinite planes that must result in a concave region. It can be combined with other source shapes and allows for nesting and combining them through a set of union operations.
Added VAR = 10 to *ICFD_CONTROL_ADAPT to use species concentrations and a combination of species concentrations and the velocity field in the error calculation for species transport problems.
Upgraded MUMPS (LSOLVR = 30 on *CONTROL_IMPLICIT_SOLVER) from version 5.7.3 to 5.8.1.
The LSDA database for the output of eigenvectors on a node set (see IPARM3 for EIGMTH = 2, 3, 5, 6, 102, and 103 on *CONTROL_IMPLICIT_EIGENVALUE) is now named EigenVectors for EIGMTH = 2, 3, 5, 6, 102, and 103. Previously, the file name depended on the value of EIGMTH (LanczosEigenVectors for EIGMTH = 2, 3, 5, and 6, LOBPCGEigenVectors for EIGMTH = 102, and FastLnzEigenVectors for EIGMTH = 103).
Added error checking for the nodes in the node sets for constraint and attachment modes in *CONTROL_IMPLICIT_MODES. Warning messages for bad nodes (e.g., massless nodes) are issued, and the nodes are removed from the computation.
Support using *IGA_POINT_UVW with VAD1 = 12 (torsion) in *FREQUENCY_DOMAIN_FRF.
Support applying a pressure excitation load on parametric faces (*IGA_FACE_UVW) defined on outer surfaces of untrimmed solids with *FREQUENCY_DOMAIN_FRF and *FREQUENCY_DOMAIN_SSD.
Support imposing boundary conditions on the outer surfaces of untrimmed solid elements with *BOUNDARY_PRESCRIBED_MOTION_FACE_UVW and *BOUNDARY_PRESCRIBED_MOTION_SET_FACE_UVW.
Support defining multiple parts on a single unstructured patch. The LIST and RANGE options can be used to list local element IDs in *IGA_FACE_XYZ and *IGA_VOLUME_XYZ for each part.
Enabled output of information for IGA solid elements to matsum.
For *LOAD_BODY_…, moved keyword data out of the structured file and into LSDA, to prevent loss of precision, particularly in the scale factor value.
Support *LOAD_BEAM for discrete beam elements (ELFORM = 6 on *SECTION_BEAM). The load, which is evenly distributed to the beam nodes, is then interpreted as force and not force per unit length.
Support defining nodal forces applied with _NODE in a cylindrical or spherical coordinate system.
For *MAT_ADD_DAMAGE_DIEM, *MAT_ADD_DAMAGE_GISSMO, and *MAT_ADD_EROSION, NUMFIP < 0 now also applies to beam elements.
Made a minor change for GISSMO output with *DEFINE_MATERIAL_HISTORIES. Label “Damage” with attribute A1 = 2 gives alternative damage parameter (history variable # ND + 13).
Added option FFUNC to *MAT_ADD_EROSION to define a freely selectable failure criterion using *DEFINE_FUNCTION. Arguments to the function include stresses, strains, strain rates, temperature, etc.
For *MAT_ADD_EROSION, LCFLD can now refer to a *DEFINE_TABLE_3D to define major strain as a function of temperature (TABLE_3D), strain rate (TABLE), and minor strain (CURVE).
Added option LCREG < 0 to *MAT_ADD_GENERALIZED_DAMAGE. |LCREG| refers to a table that contains regularization factor as a function of element size curves for different triaxialities.
Added flag ILC to enable the Norton-Bailey creep law material constants included when LAW = 5 with MODEL = 3 or LAW = 6 with MODEL = 4 to be specified as load curves giving the constants as functions of temperature.
Turned off pore air flow (*MAT_ADD_PORE_AIR) simulation during dynamic relaxation.
For *MAT_ADD_PZELECTRIC, the electric voltage of nodes connected via tied contacts is now calculated by interpolating the voltage values of the segment they are attached to.
Added capability to use 3D piezo properties (*MAT_ADD_PZELECTRIC) directly in axisymmetric analyses, eliminating the need for manual property transformations.
Fixed bug affecting the output of the electric field and flux from *MAT_ADD_PZELECTRIC during implicit analysis. The bug led to incorrect results.
Implemented reduced integration for the piezoelectric material (*MAT_ADD_PZELECTRIC) stiffness matrix.
Added the option to define *MAT_ADD_THERMAL_EXPANSION per material instead of per part.
Added parameter TREF to *MAT_ADD_THERMAL_EXPANSION. By default, the tangent coefficient of thermal expansion is used, meaning instantaneous change in length per degree of temperature change. TREF activates the secant coefficient of thermal expansion, meaning average change in length per degree of temperature change over a temperature range, relative to a reference temperature. This is similar to the choice of LCALPH > 0 or LCALPH < 0 in *MAT_106.
Capped the exponential term in *MAT_JOHNSON_COOK (*MAT_015) when VP = 1.0 to avoid random crashes.
Added the ability to provide the plastic strain term, \(A+B\times{\bar{\varepsilon}^\mathrm{p}}^n\), in the Johnson-Cook (*MAT_015) flow stress formula as a load curve that depends on the effective plastic strain, \(\bar{\varepsilon}^\mathrm{p}\). This is only available for solid elements (including SPG). It is available for both no keyword option and the STOCHASTIC keyword option. It is also available for both the rate-independent and viscoplastic (VP = 0 and 1) formulations.
Made the Cockcroft-Latham damage models implemented for *MAT_107 available for *MAT_015 (see DMODEL).
Implemented multi-directional failure (see MDFAIL) in *MAT_196.
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 body’s local coordinate system.
Added check of anisotropic, elastic material parameters (Young’s moduli and Poisson’s ratios) in *MAT_021 for consistency. This check is already performed for most of the other anisotropic materials.
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 compressive plasticity and Drucker-Prager based plasticity to *MAT_030/*MAT_SHAPE_MEMORY (see IDPP). Also added support for total strain-stress curves for experimental input data.
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.
Added a general Blatz-Ko strain energy functional model and the Ciambella model to *MAT_038. See flag IMODEL to change the model.
Allow the combination of *MAT_077_O with N = -1 (thermal option) and solid element formulation 13. This was not previously supported.
Enabled *MAT_091 (REF = 1) 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.
Support *MAT_125 for 2D implicit analysis.
Applied strain rate factor, RFAC, to LCSR on *MAT_MODIFIED_HONEYCOMB.
Improved using the strain-rate-dependent tables (for LCA, etc.) for *MAT_MODIFIED_HONEYCOMB (*MAT_126), resulting in a smoother and more robust response curve.
Added output of the formability index as history variable #9 for shell elements with material *MAT_133.
Added field CTS to *MAT_COHESIVE_MIXED_MODE (*MAT_138) to flag whether to use a consistent tangent stiffness in implicit simulations. A consistent tangent stiffness improves convergence. Additionally, this flag enables changing the cohesive law formulation from the original to the Ortiz and Pandolfi cohesive law. The Ortiz and Pandolfi cohesive law is often efficient and stable in implicit finite element analyses. It considers the effect of mode mixity on the peak traction but neglects the effect of mode mixity on the critical energy release rate, so it can be considered as a simplified version of the original *MAT_138 cohesive law.
For *MAT_172 (*MAT_CONCRETE_EC2):
The shear capacity check now works for beam elements (ELFORM = 1 on *SECTION_BEAM). Previously, it only worked with shells and thick shells.
Added shear capacity check options per Eurocode:
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_209 (*MAT_HYSTERETIC_BEAM), added the possibility for different nonlinear shear inputs for positive versus negative direction shear. This capability can be relevant when shear reinforcement is set at an angle to the through-thickness direction. The new parameters are on Card 4.1, which is read only if LCSHS is input as negative.
Updated *MAT_213 to version 1.3.8, which includes the following new features:
For *MAT_224, made the plastic work conversion to a thermal heat source available for axisymmetric solids.
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.
For *MAT_240_FUNCTIONS, add the following function arguments: tangential separations, normal separation, plastictangential separations, plastic normal separation, and cohesive thickness.
Added new history variables for *MAT_240_THERMAL. History variable #16 is FG1, #17 is FG2, and #25 is the state variable.
Enabled *MAT_251 to work with solid tetrahedron type ELFORM = 13.
Added keyword option STOCHASTIC to *MAT_251. The scaling factor for the yield stress is on history variable #9. The current yield stress can be found on history variable #5.
Support the external variable feature (*LOAD_EXTERNAL_VARIABLE) for shell elements with *MAT_254. Previously, only solid elements were supported for this material.
For *MAT_264:
Support BETA < 0 in *MAT_264. |BETA|, in this case, refers to a curve, table, 3D table, or 4D table as in *MAT_224 and *MAT_224_GYS to define a non-constant Taylor-Quinney coefficient.
Added a less than 0.0 case for BETAC and BETAT on *MAT_272. These cases enable load curves to be defined to give the strain rate dependence of the dynamic increment factor, \(F_r\).
Added new option for the critical energy criterion of *MAT_280 (*MAT_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.
For *MAT_ANAND_VISCOPLASTICITY, added support for temperature-dependent Young’s modulus and Poisson’s ratio. For this feature, YM/PR should be defined as negative IDs (-ID), where the ID refers to a curve that defines the Young’s modulus/Poisson’s ratio as a function of temperature.
Enabled *MAT_296 for pentahedral elements.
Support Smoothed Particle Galerkin (SPG) for *MAT_303.
Added the ability to automatically initialize a 2D random short fiber orientation state for shell elements. This state refers to the condition where reinforcing fibers are distributed uniformly in all in-plane directions, resulting in isotropic material behavior in all in-plane directions. To obtain this state, set \(A_{xx} = A_{yy} = 0.5\) in *INITIAL_STRESS_SHELL for the fiber orientation tensor. All other components of the tensor are zero.
Support shell element formulation 26 for *MAT_303.
Extended the structural damage \(D_2\) below the gelation point to the compression regime for *MAT_307. This change ensures that the damage from compression is neutralized as soon as the gelation point is reached, but the damage from viscous fingering is not.
Added field ISIDE to *MESH_BL as flag for specifying whether the boundary layer is defined on only one size of the embedded surface (*MESH_EMBEDSHELL).
Added specifying a minimum radius (RMIN) when using the sphere option on *MESH_SIZE_SHAPE with METHOD = 1.
Updated the MPP decomposition code to support *INITIAL_INTERNAL_DOF_SOLID_….
Support load balancing for tabulated friction coefficients (FS = -2 on Card 2 of *CONTACT_…). Previously the nodal information required for tabulated friction coefficients was not transferred during load balancing.
Made various improvements to the accuracy of the energy reported in the rcforc file for MPP contacts.
Added *DATABASE_SLEOUT_DR, *DATABASE_MATSUM_DR, and *DATABASE_GLSTAT_DR to output sleout, matsum, and glstat during dynamic relaxation.
Improved the computational efficiency of *DEFINE_MATERIAL_HISTORIES’ label ‘Max/Principal Stress Range’.
Added output of the cohesive separations in the location of the strain tensor when the ones digit (\(L\)) of STRFLG is 1 on *DATABASE_EXTENT_BINARY.
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 field COR to *DATABASE_TRACER_GENERAL to correct the tracer position if it is found outside the tracked mesh during initialization.
Added flag IAVER to *DATABASE_ALE to provide the option to average variable histories over the elements in the set and ALE groups.
Enabled *DATABASE_FSI_SENSOR to work without coupling to a Lagrangian structure for ALE and S-ALE models.
Allow specifying the sensor location without providing SEGMID and by just setting ND1, ND2, and ND3 on *DATABASE_FSI_SENSOR.
The following types of elements are now supported for setting tracers in (see ELEM) with *DATABASE_TRACER_GENERAL:
Support the output of the plastic strain tensor for more materials (STRFLG = 11 on *DATABASE_EXTENT_BINARY): *MAT_003, *MAT_010, *MAT_018, *MAT_098, *MAT_103, *MAT_107, *MAT_124, and *MAT_187.
Print information about the expiration date in the encrypted vendor block with DATE.
Added nodal moments (\(x\), \(y\), and \(z\)) to the nodfor file (*DATABASE_NODFOR).
Added option ISETS to *DATABASE_BINARY_D3PROP to write all *SET data to d3prop or the end of the first d3plot file.
Parts with *MAT_PML are no longer sub-divided into multiple parts and will appear in d3plot as they appear in the input file.
l2a will now extract aceout from the binout file.
Added NFAIL to *DATABASE_D3MAX which determines whether failed elements are included in d3max.
Added OUTPUT = 8 and 9 to *DATABASE_D3MAX to write the maximum stress/strain results, the minimum stress/strain results, and the absolute maximum stress/strain results using the current and original geometry, respectively.
Added MTYPE = PULLEY to *SENSOR_DEFINE_MISC to trace the pulley’s force.
Enabled *SENSOR_DEFINE_FORCE to report the cross-sectional moment for FTYPE = X-SECTION.
Added flag SIDR to *SENSOR_CONTROL to control the use of sensor control during dynamic relaxation.
Support planar 2D ISPG (ELFORM = 50 on *SECTION_ISPG) for combined flow and thermal analysis (SOLN = 1 on *ISPG_CONTROL_SOLUTION).
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.
Added support for SPG parts during dynamic relaxation.
Support SPG for orthotropic material models 2, 22, 26, 54, 58, 59, 103, 104, and 274.
Made the SPH mass flow plane (*DEFINE_SPH_MASSFLOW_PLANE) results consistent between SMP and MPP.
Added error trap for invalid IOPT values in *DEFINE_ADAPTIVE_SOLID_TO_SPH.
ISPH structure particles (meaning particles embedded on shell meshes to represent the boundaries) are no longer shifted when ISHIFT = 1 in *CONTROL_SPH.
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.
Added the node list of the current segment as a subroutine argument to the user flux interface (subroutine usrflux).
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 new options “SET” and “DSET” to *SET_SEGMENT_GENERAL. Option SET adds the listed *SET_SEGMENT sets to the current set, while option DSET deletes the listed *SET_SEGMENT sets from the current set.
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 ncycleh cycles.
Updated the l2a utility to handle the case where you add or remove rigid walls via a restart, but append to the existing lsda output file. The glstat file parsing code was breaking if the number of rigid walls suddenly changed.
Added new option SET_PART for *SET_NODE_GENERAL, so that a (list of) *SET_PART can be used to provide the node set. This allows much greater flexibility than the existing PART option, since instead of listing the individual parts, you can list part sets and so take advantage of part lists created with *SET_PART_GENERATE, *SET_PART_ADD, and *SET_PART_GENERAL.
Support *INTERFACE_COMPONENT_… and *INTERFACE_LINKING_… during dynamic relaxation. If both runs have dynamic relaxation, or neither does, then the linked interface follows the motion of the component interface through the whole simulation as expected. If only the first run has dynamic relaxation, then the motion of the linked interface during the second run follows the “dynamic relaxation converged” state of the first run. If only the second run has dynamic relaxation, then during dynamic relaxation the linked interface does not move at all but is tied to the initial coordinates of the first run.
Added option MATTYPE for *SET_PART_GENERAL. With this option you can specify numeric material types (1 for *MAT_ELASTIC and so on). For each material type, ALL parts with the specified material type are added to the part set.
Added A7 = 2 to the MIRROR option of *DEFINE_TRANSFORMATION to change the element connectivity or segment node numbering to mirror the element/segment normal. The initial stress/strain is reordered as well to match the mirrored element coordinate system. This is available for linear shell, solid, and thick shell elements.
Enabled the curve imported from the FMU to control thermal time steps (*COSIM_FMI_INTERFACE).
Enabled exporting LS-DYNA’s nodal temperature to the FMU (see FIELD = TMPT on *COSIM_FMI_INTERFACE).
Time spent on FMU (*COSIM_FSI_…) is now reported in d3hsp.
Added option STRUCT to *DAMPING_PART_MASS to exclude lumped mass from *ELEMENT_MASS.
Added additional functionality to easily model bolted joints (*DEFINE_BOLTED_JOINTS). See the manual for details.
Added the ability to have the file read in by *INCLUDE_STAMPED_PART be in LSDA format. Previously, the file could only be in ASCII format. Initial stresses, strains, and history variables are all supported.
Implemented specifying a death time, DEATH, in both *INTERFACE_LINKING_SEGMENT and *INTERFACE_LINKING_NODE, after which the linking constraint is deactivated. This feature allows the linking to be switched off at a specified point during the analysis.
Fixed a bug in computing acoustic pressure for nodes on the BEM mesh (*FREQUENCY_DOMAIN_ACOUSTIC_BEM) in models that include an incident wave. Previously the contribution from the incident wave was counted twice, causing the results from d3acs and d3acp were not consistent.
Fixed bug when restarting a job that uses the acoustic spectral element method (*CONTROL_ACOUSTIC_SPECTRAL). The bug caused the restart to fail.
Fixed an issue where excessive mesh refinement occurred when INMEMORY = 1 in *CONTROL_ADAPTIVE. The minimum mesh size is now consistent with the behavior when INMEMORY = 0.
Resolved a memory access violation occurring at the initial stage of the adaptive cycle in MPP solid adaptivity. This issue previously led to “Negative Volume” errors during the calculation phase.
Fixed compatibility issue when using *PART_COMPOSITE and *AIRBAG_CPG in the same input deck. Automatically generated part IDs could conflict in some scenarios.
Fully support multiple *AIRBAG_CPG definitions.
Fixed issue when there are multiple orifice cards (NORIF > 1 on *AIRBAG_CPG) referencing the same gas for CPG airbags. Each orifice was injecting the entire gas mass, instead of distributing it across orifices.
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, 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 in *AIRBAG_INTERACTION that produced incorrect, unusually too low temperature results when LCID is defined.
Fixed bug in CPG airbags (*AIRBAG_CPG) that occurred when multiple airbags had vents. The issue was incorrectly causing the error “Part number is used as a vent but is not found in the parts defining the airbag.”
Fixed memory conflict in models containing both S-ALE and SPH parts that led models to crash and/or resulted in incorrect results.
Fixed memory error that occurred when S-ALE models contain solid elements without a corresponding part definition. The solid elements were incorrectly treated as S-ALE elements, leading to the error.
Fixed error in the recorded and reported forces and pressures to the files created with *DATABASE_FSI and *DATABASE_FSI_SENSOR for S-ALE. Other than the incorrect output, the FSI runs are still valid and trustworthy.
Fixed issue with initial velocity assignment (VID on *ALE_STRUCTURED_MESH_VOLUME_FILLING) to S-ALE nodes when using S-ALE volume filling that led to the incorrect assignment of velocity to nodes outside the filling geometry instead of only inside the geometry.
Fixed bug when using *BOUNDARY_FLUIDM with *CONSTRAINED_NODAL_RIGID_BODY and *MAT_RIGID (*MAT_020) in MPP. The bug caused jobs to crash.
Fixed an issue with *BOUNDARY_MCOL in reading multi-database (.mco) files correctly.
Corrected the detection of triangular faces for the CESE conjugate heat transfer boundary condition.
Fixed a chemistry initialization step broken in R15 needed for the chemically-reacting flow solver.
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.
The energy reported in files such as glstat previously did not include energy absorbed in *CONSTRAINED_SOIL_PILE, but now it is included in “spring and damper energy”.
When using *CONSTRAINED_SOIL_PILE, as the axial displacement of the beam element (“pile”) relative to the solids (“soil”) increased, (a) an unstable perpendicular response could occur (shown by spurious oscillation and energy growth), (b) the connection points could drift away from their intended positions on the circle centered on the pile node, and (c) spurious torsional moments could develop in the pile beam. These issues have been fixed, and stability can be further improved by the new capability to specify perpendicular damping (DAMPH). Note also that the issues listed above did not occur when the axial displacements were small.
For SPR3 with the strongly object formulation (MODEL = 3 on *CONSTRAINED_INTERPOLATION_SPOTWELD) with failure activated, fixed issue that caused the failure state not to propagate to the associated element in the output databases. The element appeared intact in post-processing even after failure had occurred.
Fixed incorrect values written to the binary output databases for the reaction moments at a rotational-motor joint (*CONSTRAINED_JOINT_…_MOTOR).
Fixed an issue in the MPP groupable AUTOMATIC_GENERAL beam-to-beam contact that could result in the application of forces that were too low.
Fixed an issue in MPP that could cause contact forces for SOFT = 2 with DEPTH = 45 contacts with enabled friction to not be correctly attributed to corresponding force transducers.
Addressed a consistency issue of the hybrid solver in *CONTACT_AUTOMATIC_SINGLE_SURFACE for SOFT = 0 and 1.
Fixed output of MPP groupable contact timing information in the cont_profile.csv file, which was never properly supported and so gave incorrect results for “wall clock time.”
In some cases, an MPP tied contact with birth time was not being treated as “groupable,” which is required for birth time to work properly for tied contacts.
Fixed issue in determining the beam element contact thickness due to not honoring the thickness scaling factor sometimes. Specifically, *CONTACT_AUTOMATIC_BEAMS_TO_SURFACE was not honoring the SFSAT parameter.
Fixed issue in *INITIAL_CONTACT_WEAR where wear depth was not saved to the dynain file.
With nonzero friction, the stonewall energy was not correct for *RIGIDWALL_PLANAR.
Fixed implicit eigenvalue analyses that use segment-to-segment (SOFT = 2) contact. The stiffness was incorrect causing wrong values.
Fixed the thick segment pair check of MPP single-surface eroding segment-to-segment (SOFT = 2) contact. The thick segment check was not working which could cause possible spurious contact forces and internal energy in shell parts when elements have large thickness-to-length ratios.
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.
Fixed issue causing hanging with hybrid executables when using eroding contact.
Fixed bug for case where the model contains more than one *CONTACT_TIED_SHELL_EDGE_… keyword (MPP only). Whether the bug showed any symptoms depended on the number of processors and the model contents. Symptoms could include crashing on the first calculation cycle.
Fixed the contact-segment search region being too small for Mortar contact. The bucket sort range used when searching for nearby contact segments could be underestimated in some cases, causing segments to be overlooked. This led to missing contact forces where contact should have been detected.
Fixed segment-to-segment (SOFT = 2) contact that involved higher-order elements (quadratic or higher). The issue resulted in incorrect behavior with errors.
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 the incorrect part mass and body mass for thick shells with *ELEMENT_MASS_PART.
Fixed incorrect behavior in MPP and incorrect units used when using CRTYPE = 0 on *EM_CONTACT_RESISTANCE.
Stopped calculating the contact resistance Joule heating term unless JHRTYPE = 1 when CRTYPE = 1 on *EM_CONTACT_RESISTANCE.
Fixed issue with TSTYPE = 5 on *EM_CONTROL_TIMESTEP when THCPL = 2 in *EM_CONTROL_COUPLING that caused incorrect behavior.
In Eddy current 2D axisymmetric cases, the displacement of conductors is now properly taken into account when outputting results of magnetic flux in the air (see *EM_DATABASE_POINTOUT).
Fixed MTYPE = 3 on *EM_PERMANENT_MAGNET, which was not working properly in MPP. Additionally we fixed a missing translation to the origin point operation with MTYPE = 6.
For *EM_RANDLES_TSHELL, fixed issue in the part assignment and node ordering that was causing incorrect results in MPP.
Made a small fix to the \(\mathbf{P}\) matrix assembly for tetrahedral elements in magnetostatic cases. This fix improved the results.
Fixed the output frequency for the file output with *EM_DATABASE_NODOUT. It was being output one timestep ahead.
Fixed issue in *EM_EP_EIKONAL so that EIKPST is now effectively considered in the time stepping Eikonal, and the Eikonal solve is done only on the corresponding part set. If EIKPST = 0, the Eikonal is done on the whole conducting mesh.
Corrected the force computation for the RIIS immersed method (IMMTH = 2 on *ICFD_CONTROL_IMMERSED) on beam elements.
Fixed the coupling between ICFD and DEM particles when the force is computed using the fluid pressure gradient (FORM = 2 on *ICFD_CONTROL_DEM_COUPLING). This bug caused incorrect solutions.
Fixed the average pressure field output in icfd_nodout.dat (*ICFD_DATABASE_NODOUT).
Fixed the mortar contact approach in *ICFD_BOUNDARY_CONJ_HEAT. Some problems (mainly 3D) were incorrect (mainly due to issues in normal vector orientations) as well as not working properly in combination with the nonlinear thermal solver. Also thermal mortar contact did not previously work when using *ICFD_BOUNDARY_FSI_FIXED.
Fixed a divergence issue when using *ICFD_CONTROL_GAP with the steady-state solver.
Fixed issues in data output with *ICFD_DATABACSE_NODOUT and output of Paraview vtu format with *ICFD_CONTROL_OUTPUT (OUTL = 7).
Fixed bug in reading multiple cards for *ICFD_BOUNDARY_PRESCRIBED_MOVEMESH.
Fixed bug in the LOBPCG eigenvalue extraction method (EIGMTH = 102 on *CONTROL_IMPLICIT_EIGENVALUE) that led to a floating-point exception in some configurations.
Fixed bug that manifested when using *DAMPING_FREQUENCY_RANGE_DEFORM in implicit dynamic analysis (IMASS = 1 on *CONTROL_IMPLICIT_DYNAMICS). Symptoms of the bug could include poor convergence behavior in nonlinear solutions or runaway oscillation in linear solutions.
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 work-around for previous releases was to use LCTM on *CONTROL_TIMESTEP to define a reasonable value for the time step; this workaround was effective even though LCTM doesn’t actually control the time step of implicit solutions. The issue affected R15 and R16 but not R14 or previous releases.
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, leading to skipping the intermittent eigenvalue computation and failure occurring.
When the initial keyword file contains “long” format (20-character fields), any dynain file written by LS-DYNA is also in long format and the keywords within the dynain file are supposed to be marked as such with a “+” (such as *NODE+), but the “+” was omitted for *INITIAL_STRAIN_BEAM and *INITIAL_STRESS_BEAM. This omission meant that the dynain file could not be read back in for the next stage of analysis.
Fixed issue with the internal energy computation when using *INITIAL_FOAM_REFERENCE_GEOMETRY. If used in a run with dynamic relaxation, the energy could become negative.
Fixed *LOAD_SEGMENT_SET_NONUNIFORM ignoring nonzero arrival time, AT.
Fixed bug that could cause a segmentation fault when running hybrid/mpp binaries with an input deck that contains *LOAD_BLAST_ENHANCED.
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 the combination of *INCLUDE_TRANSFORM and curves/tables of some materials (were not correctly considered):
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 material models that included fatigue.
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.
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 *MAT_015 with VP = 1 and initial stresses from *INITIAL_STRESS_SHELL. Plastic flow in cycle 0 could lead to problems.
Fixed MPP full deck restart issue with *MAT_024 that were not properly initializing some time step information on restart.
Fixed incorrect shell element deletion behavior for *MAT_024 for 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 the integration points failed.
Changed the plasticity algorithm for *MAT_030 in the case where the yield stress is provided as load curve input. The old implementation might result in an unphysical time-step-size dependence for larger explicit simulations.
Fixed stress initialization of *MAT_030 beams. The deformation gradient coming from the history history variables in the dynain was incorrectly set to zero in the stress computation at t = 0.
Fixed bug that could caused the analysis to crash if solid elements with ELFORM = 1 and material *MAT_060 were used with implicit time integration. The bug did not affect *MAT_060 solids with ELFORM = 2 or -2, nor did it affect *MAT_060 shells.
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.
For *MAT_076_MOISTURE:
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.
Fixed issue with the function evaluation in some spot weld models. This issue applies to *MAT_100_DA with *DEFINE_CONNECTION_PROPERTIES (PRUL = 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.
Corrected the damage and stress calculations for the extended Cockcroft-Latham model in *MAT_107.
Fixed bug in *MAT_MODIFIED_HONEYCOMB that caused the element volume to not be updated for solid element formulations 0 and 9, leading to an incorrect compression status and stiffness. Note that fixing this bug leads to a different stiffness and to different results.
Fixed issue when using *MAT_PLASTICITY_COMPRESSION_TENSION_EOS (*MAT_155) with S-ALE that led to incorrect results due to the internal energy not being updated.
Fixed issue in the initialization and stress update of *MAT_179 when tables are used for LCID1 and LCID2.
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.
Fixed plasticity algorithm issue in *MAT_199. Discontinuous behavior was observed in some cases due to an unfortunate condition in principal stress computations.
Fixed the latent heat treatment for solid elements with *MAT_254. In certain cases, latent heat was ignored.
Fixed issue when using large IDs (\(>2^{24}\)) for LCSS in *MAT_261.
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.
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 incorrect behavior when using *MAT_…_STOCHASTIC with VAR_S = VAR_F = 2 in Card 1 of *DEFINE_STOCHASTIC_VARIATION. All the elements with the material were either being deleted at cycle 1 or not failing.
Fixed a problem in segment-to-segment (SOFT = 2) MPP contact of MPI messages that were not received causing the code to hang. The fix is to change the message size from the buffer size to the message size. This message failure was only observed in a large model with a very large buffer.
Fixed issue with *DEFINE_STOCHASTIC_ELEMENT_SHELL_VARIATION in MPP. The MPP decomposition data distribution was not working for this keyword.
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.
Use the same nodal interpolation to recover stresses for solid elform 23 in d3plot as in eloutdet for SOLSIG \(\neq\) 0 on *CONTROL_OUTPUT.
Fixed a bug that occurred when *DATABASE_PWP_OUTPUT was used in models without pore air. The bug was erroneously causing the acceleration values at all nodes to be zero.
Fixed an MPP bug that caused incorrect output to nodout for the rotational DOF of a node constrained to a rigid part belonging to another core.
Fixed a bug for NODOUT of accelerometer, *ELEMENT_SEATBELT_ACCELEROMETER, that happened when IGRAV = 1.
Fixed a bug that led to printing wrong values for function PIDCTL (*DEFINE_CURVE_FUNCTION) to curvout.
Fixed issue for shell ELFORM = 14 where output to nodfor, spcfor, and secfor was not consistent with ELFORM = 15 which reports force per radian.
Fixed issue for *DATABASE_NODAL_FORCE_GROUP where legends did not match groups in binout/ascii files.
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 incorrect eroded kinetic energy when an inactive node also belongs to a rigid body. The eroded kinetic energy was incorrectly including nodes shared with a rigid body, such as *CONSTRAINED_NODAL_RIGID_BODY. This fix corrects the eroded KE in both glstat and matsum.
Fixed eroded kinetic energy differences between glstat and matsum.
Fixed incorrect internal energy in glstat.
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 first integration point is orthotropic but others are isotropic.
Fixed a bug in writing d3max (*DATABASE_D3MAX) that occurred when plastic strain tensor output is requested in *DATABASE_EXTENT_BINARY.
Fixed an MPP full deck restart reading synchronization error when the first simulation has 6 degrees of freedom and the second has only 3.
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 with communicating certain information between MPP ranks for solid element formulation 13 (tetrahedral elements) while running a restart.
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 in obtaining the d3plot output interval using a load curve that occurred after a full deck restart.
Fixed issue causing the beam axial strain to not be transferred in a full restart.
Fixed a bug in 2D seat belts that occurred when the formulation parameter, FORM, is 12, 13, or 14. This bug only occurred for double precision. It sometimes led to instability.
Fixed a bug in the seat belt’s force results provided to d3plot. The old force was along the global coordinate system. The new results are along the axial direction.
Fixed an MPP bug that occurred in the new decomposition of a 2D belt when 1D and 2D seat belts coexist in a model.
Fixed bug that occurred when using *SENSOR_DEFINE_FORCE with FTYPE = X-SECTION in conjunction with *SENSOR_CONTROL with TYPE = ELESET. The reported section force could be erroneous.
Fixed a bug that caused incorrect rigid body kinematics values to be reported by *SENSOR_DEFINE_MISC with MTYPE = RIGIDBODY when the input deck also included *SENSOR_CONTROL with TYPE = ELESET.
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.
Corrected issues causing particles to incorrectly affect non-neighboring particles while using FORM = 12 on *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.
Addressed issues with kinetic and internal energies coming from inactive embedded particles. In some cases, their energies were not removed, while in others they were removed twice.
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.
Corrected particles reported to the sldsph_frag file when *DEFINE_ADAPTIVE_SOLID_TO_SPH is used.
Added missing particle radii to restart files for axisymmetric cases (IDIM = -2 in *CONTROL_SPH). This issue would lead to incorrect particle radii for restarts.
Apply no-slip fictitious velocities to SPH tracer output (*DATABASE_TRACER).
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 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 where the subroutine was not present. It is now only called if found in the shared object. Corrected the center of mass of *PART_INERTIA if *PART_MOVE is specified.
Fixed the local coordinate system calculations in MPP when using *DEFINE_COORDINATE_NODES with DIR input as Y or Z. These cases were not working correctly and could produce incorrect output.
Fixed a bug that caused problems when co-simulating LS-DYNA-generated FMUs (*COSIM_FSI_…) with Adams. The bug was due to an incorrect, reversed sequence of I/O variable definitions within the modelDescription.xml file.
Fixed issue for *DEFINE_CURVE_FUNCTION where several functions could overwrite each other if no local coordinate system was attached to nodes when using the functions AX and AX2.
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 input deck order dependence.
Fixed bug for the combination of *DAMPING_FREQUENCY_RANGE_DEFORM with *DAMPING_PART_STIFFNESS acting on solid elements with ELFORMs 1, 10, and 15. The results for these element types were showing greater damping than expected.
Fixed incorrect velocity transformations after deformable-to-rigid (*DEFORMABLE_TO_RIGID) switch with selective or consistent mass scaling present. When elements switched from deformable to rigid (or the other way around) in a model that used selective mass scaling (SMS) or consistent mass scaling, the velocities and inertia computed at the switch point were incorrect, leading to wrong motion of the newly formed rigid/deformable body.
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.
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.