Release notes for LS-DYNA R12.0.0
Herein are summarized new features and enhancements in version 12.0.0. Some bug fixes are also described, some of which may also have been included in other recent releases..
The items are arranged by category. Understand that in many cases, a particular item may pertain to more than one category, but in the interest of brevity, each item is listed only once, under a single category.
Excluding the “Miscellaneous” category, the categories are arranged alphabetically.
NEW category for R12.0.0. are “BATTERY (Electrochemistry Solver)” and “Dual CESE Compressible Fluid Solver“
Fix a bug for the output of area and leakage information for all parts constituting a control volume airbag. The bug occurred when an airbag was comprised of more than 10 parts.
Remove the interaction between AIRBAG_REFERENCE_GEOMETRY and INITIAL_FOAM_REFERENCE_GEOMETRY so that they can only be used to define the reference geometry of shell and solid elements respectively.
New keyword CONTROL_AIRBAG for CV (Control Volume) closed volume check.
Support multiple airbags when not all airbags have a reference geometry (AIRBAG_REREFERENCE_GEOMETRY).
A new ellipsoid geometry option is added in *INITIAL_VOLUME_FRACTION_GEOMETRY.
*INITIAL_HYDROSTATIC_ALE now supports ALE single material with void formulation, that is, ELFORM 12 in *SECTION_SOLID.
(See also “Battery module Release” in the “EM (Electromagnetic Solver)” section.)
The *BATTERY family of keywords invokes the new electrochemistry solver, which is only available in double precision executables. *BATTERY keywords are documented in Volume III of the LS-DYNA Keyword Users Manual.
The keywords starting with *BATTERY refer to and control the problem set up for detailed one-dimensional electrochemistry modeling of battery cells. This is intended to be used for battery-thermal-structure-interaction problems.
These two cell models are based on an electrochemical model with various anode, separator, and cathode material properties. Therefore, the user can select a material property for their anode and cathode including an open-circuit potential (OCP). For the separator, the user can also select a material property among the different electrolytes which include all of the transport properties necessitated in battery simulation. Note that all transport properties are uniquely designed for each battery type.
The selection of the single insertion or dual insertion model is done in keyword *BATTERY_ECHEM_CONTROL_SOLVER. Here, users can select the battery run mode such as Galvanostatic or Potentiostatic, the number of cycles, and termination controls. Please see Vol III of the keyword manual for more details.
With the *BATTERY_ECHEM_CELL_GEOMETRY keyword, users can choose the length of each layer in a single cell including both sides of the current collectors, and the corresponding total number of mesh elements can also be input.
Here, first the OCP ID must be carefully selected (please refer to the keyword manual) and then Coulomb capacity, initial state of charge, thermodynamics data, and porous media data, respectively.
In the *BATTERY_ECHEM_THERMAL keyword card, the user can set the initial temperature and other thermal properties. However, please note that this card is ignored when the battery solver is coupled to the thermal and thermal-mechanical solvers.
Please note that the purpose of these 1D solvers is give the user a tool to test their OCP, material properties, and transport battery properties. For coupling the electrochemical battery solver to the thermal-mechanical solver, users must design their own mesh system with a different part number and must assign the individual part numbers for each solver. For example, if the electrochemical battery solver needs to solve within a specific part (all battery regions), then the user must assign that part number in the first variable column in each of these material keywords: *BATTERY_ECHEM_MAT_ANODE, *BATTERY_ECHEM_MAT_CATHODE, and *BATTERY_ECHEM_MAT_ELECTROLYTE. The same part number should be assigned for use by the structural thermal and mechanical solvers. Structural parts outside of the battery would have other part numbers. Please note that the 1D electrochemistry solver solves all elements assigned to the part numbers for the battery, and also note that this battery solver has its own 1D mesh system in each battery structural element, while the thermal-mechanical solver has its own 3D mesh system.
Currently however, only the dual insertion model is coupled with the LS-DYNA thermal-mechanical solvers. This model covers all Lithium-Ion batteries used by the battery manufacturers of cellular phones, and automotive industies batteries.
So, in version R12.0.0, users can simulate how the Lithium-Ion battery responds thermally and/or mechanically when external heat sources or impacting forces are applied to the battery pack. The battery model can be a single battery cell, a cell stack which has multiple cells connected (over 100 cells), and even multiple cell stacks connected in parallel. By controlling the solution scheme of the structural solvers, users can calculate the structural effects for a certain period of time of battery operation such as initial, middle, and end of state of battery discharging or charging.
For more detail about electrochemical battery theory, please refer to the LS-DYNA multiphysics theory manual. For keyword setup, please refer to the multiphysics (Vol III) keyword manual. In addition, for interested users, please request some sample keyword decks from LS-DYNA technical support, or email directly to kyoungsu.im@ansys.com.
Fix bug in *BOUNDARY_PRESCRIBED_MOTION which could cause velocity boundary conditions to be incorrectly handled for dof=+/- 4 or 8 if the node has more than one velocity boundary condition, e.g., one during dynamic relaxation and another during transient analysis.
Corrected MPP communication error associated with Implicit loading constraints for *BOUNDARY_PRESCRIBED_MOTION_FINAL_GEOMETRY.
For convection, flux and radiation boundary conditions, the parameter PSEROD on *BOUNDARY_… specifies a part set for which new segments exposed to the environment due to solid element erosion will inherit the boundary condition data.
New option BNDOUT2DYNAIN on *BOUNDARY_PRESCRIBED_MOTION_RIGID, allows for output of reaction force to dynain for use in subsequent simulations.
SPC2BND on *CONTROL_OUTPUT which will convert constraints on *MAT_RIGID to prescribed motions, for access to reaction forces in bndout.
Fix *BOUNDARY_NON_REFLECTING to have the correct velocity averaging and force redistribution for triangular segments.
Fix blast wind velocity field for *LOAD_BLAST_ENHANCED BLAST=4. Previously velocity was always the ground-reflected wave. Now, if a segment is not in the Mach stem region, the blast wind comes from both the incident-only and ground-reflected waves.
Fix a bug which could potentially affect results for models which contained both *LOAD_BLAST and *LOAD_BLAST_ENHANCED with TBO.ne.0. The time offsets could get mixed up or ignored.
For the solvers not performing chemistry calculations, a switch has been made to a positivity-preserving method. For most problems, this will lead to a smaller time step, depending upon the shape of the smallest mesh element. Note that this method guarantees that density and internal energy remain positive.
Several bug fixes were made that make these solvers more stable.
For the CESE moving mesh conjugate heat transfer solver, fixed several bugs, including some MPP bugs that depended upon the mesh decomposition.
The inflator model can be extended up to a 5 chamber model. Previously, it was limited to only a 3 chamber model which consists of the combustion chamber, gas chamber, and tank. In this version, we added two more gas plenum chambers to control both the speed of the gas and pressure into the tank.
Resolved issues with back flows when the pressure of the downstream gas chamber is higher than the upper chamber by correcting the pressure equation.
Updated the procedure for computing/loading an initial blast profile as an initial condition of a detonation or deflagration.
Fixed some problems in the axisymmetric combustion solver.
Chemically-reacting FSI flow problems using the Euler equation solver now work for any problem up to 60 species in the combustion gas. FSI with this Euler solver is strong and stabilized.
The *DUALCESE family of keywords invokes the new dual Conservation Element / Solution Element (dual CESE) compressible fluid solver. This solver is only available in double precision executables.
The *UNIT family of keywords is introduced which provides a coherent way to specify units in an LS-DYNA problem. For now, these keywords only work with the dual CESE solver but may be extended to other solvers in the future.
Dual CESE Solver Characteristics:
Dual CESE Solver Main Features:
Dual CESE Solver Applications (Non-exhaustive) :
Planned future features of Dual CESE Solver:
Fix old issue for *CONTACT_ENTITY type 9 to properly handle rotations when the entity is not centered on (0,0,0).
Fix for spotwelds improperly deleted due to rigid body conflict when an IPBACK *CONTACT interface is in effect. The inability of the constraint-based contact interface to tie should not cause the weld to be deleted if the penalty side ties. (MPP only.)
Fix SMP *CONTACT_2D_NODE_TO_SOLID. Friction was being ignored.
Added a warning that *CONTACT_TIEBREAK_NODES_TO_SURFACE_ID is not supported for implicit computations.
*CONTACT_2D_…_THERMAL is now available in MPP.
Fix an SMP bug for ERODING contact of solid elements, which could result in erroneous contact thickness.
Fix seg fault or incorrect frictional behavior when using _THERMAL_FRICTION option for *CONTACT_AUTOMATIC_ONE_WAY_SURFACE_TO_SURFACE and *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE (SMP only).
Fix instability when using *CONTACT_TIEBREAK_NODES_TO_SURFACE (SMP only).
Fix incorrect *CONSTRAINED_TIE-BREAK behavior when the master node is the last node in the input after sorting.
Fix failure to detect contact between beam and shell edge when using *CONTACT_AUTOMATIC_BEAMS_TO_SURFACE and the beam diameter is large compared to the segment size (SMP only).
Fix *CONTACT_AUTOMATIC_GENERAL for spot weld beams when using SSID=0, i.e. all parts included in the contact, and CPARM8=2.
Implement unloading curve, UNLCID, for options FCM=2/3 in *CONTACT_RIGID_(OPTION).
FTORQ=1 and 2 (Opt. Card E in *CONTACT), affecting transmittal of moments, are now implemented in SMP for *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_TIEBREAK and *CONTACT_AUTOMATIC_ONE_WAY_SURFACE_TO_SURFACE_TIEBREAK.
FTORQ=2 is now implemented in SMP for *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE and *CONTACT_ONE_WAY_SURFACE_TO_SURFACE.
Added contact energy density to the intfor database for segment-based (SOFT=2) contact. This option is invoked by NENG=1 on *DATABASE_EXTENT_INTFOR.
Added support for ORTHO_FRICTION option for segment-based (SOFT=2) contact. This option is available for all versions, SMP, Hybrid, and MPP with and without the groupable option, and for all supported *CONTACT keywords.
Added options to limit the scope the DPRFAC option of segment-based (SOFT=2) contact. When DPRFAC is set to a value greater than or equal to 1.0, then DPRFAC is the ID of either a shell set, a segment set, or a part set. When both segments are in the set, then the DPRFAC option is active for that segment pair. If either segment is not in then set, the DPRFAC is inactive. When searching for the set, the search will proceed in the order of shell set, then segment set, and finally part set. The first set that is found with a matching ID will be used. The set attribute DA1 will be read and used as the DPRFAC value.
Added support for VSF parameter on Card 3 of *CONTACT when using SOFT=2 contact.
Added support for FTORQ=2 (*CONTACT, Card E) for SMP and MPP segment-based (SOFT=2) contact. Setting FTORQ=2 adds torque to master nodes to counteract the moment that is created by frictional contact forces due to the contact surface being offset from the mid-plane of the element. This added torque reduces the net moment from contact to zero.
Added keyword *DEFINE_FRICTION_SCALING which allows shell segments to have friction coefficients on the inner and outer face (SOFT=2 contact only). Independent scale factors on the inner and outer face scale the nominal friction coefficient. This was motivated by airbags which have liners on the inside of the bag thus creating a smoother (slicker) surface on the inside as compared to the outside.
Added a new variable EDGEK on Card C of *CONTACT which scales edge-to-edge contact stiffness for SOFT=2 contact having DEPTH=5, 15, 25, or 35.
Added control of thick segment checking using the SNLOG flag on *CONTACT. A thick segment check has been done quietly throughout the history of segment-based (SOFT=2) contact. A search along the contact surface is made looking for thick pairs that are too close, and those pairs are removed from contact. This is done to prevent possible unstable behavior that could occur if the offsets of nearby thick segments come into contact at a bend in the mesh. When SNLOG=0 or 1, the thick segment check will be done quietly as before. Set to 2, the check will be done and a warning 21465 will be written to report the segment pairs that are removed from contact. Set to 3, the thick segment check will be omitted.
Enabled segment-based contact (SOFT=2) to work with segments attached to cohesive elements with zero volume.
Enabled *CONTACT_ENTITY to work with thick shell elements. It was previously error terminating in the input phase.
Enabled SINGLE_SURFACE segment-based (SOFT=2) contact to output gap values to the intfor output database. Previously, output of the gap values worked only for the non-SINGLE_SURFACE contact types.
Enabled the SPOTHIN and SWRADF variables on *CONTROL_CONTACT to work when spot welds are modeled by sharing nodes with the shell parts that are welded. This has not worked until now because the search for affected shells was based on tied contact, and tied contact is not needed when nodes are shared.
Enabled *CONTACT_2D_AUTOMATIC to work with erosion of 2D solid elements that use *MAT_081 or *MAT_082.
Enabled multiple instances of *CONTACT_2D_AUTOMATIC_TIED to be reliably used in a model.
Improved the PSTIFF option of segment-based contact to make the segment mass better match the nodal masses. The main effect is to increase the stiffness for segments on the edge of the mesh. For a regular mesh with no mass scaling or lumped nodal masses, the PSTIFF option now calculates the same segment mass as the default method based on segment volume and density.
Fixed segment-based contact for adaptive remeshing and full deck restarts.
Fixed the coefficient of restitution option (ICOR) in segment-based contact when it is used along with DPRFAC (Depth of Penetration Reduction FACtor).
Fixed *CONTACT_2D_FORCE_TRANSDUCER with both slave and master sides defined when they are used with *CONTACT_2D_AUTOMATIC in MPP. A memory clobber was likely and also output was incorrect.
Fixed MPP wear calculation in segment-based contact. A mix-up of ID numbers means that the wear was only working when contact interfaces were numbered sequentially from 1.
Fixed the THERMAL option of *CONTACT in MPP when some MPP partitions do not participate in all the contact definitions.
Fixed *CONTACT_2D_AUTOMATIC_TIED when used with selective mass scaling, which is made active by setting IMSL=1 and DT2MS<0 on *CONTROL_CONTACT. The problem occurred when selective mass scaling was applied to the nodes that are tied. Prior to the change, kinematic constraints were failing.
Fixed MPP *CONTACT_2D_AUTOMATIC when beams were in contact, or when solids were used with nonzero values of solid surface offset(s) (variables SLDSOS or SLDSOM). Both cases could lead to using invalid memory space and a segmentation fault.
Add new option ICNEP=1 to *DEFINE_FRICTION with which those lines with non-existent parts or part sets will be ignored.
Variable ENGOUT on *CONTROL_OUTPUT added to write minimum (wherever occurring) contact energy densities to d3plot (MORTAR contact only).
Variable NENG on *DATABASE_EXTENT_INTFOR added to write contact energy densities to intfor (MORTAR contact only).
Variable PENOUT on *CONTROL_OUTPUT added to write maximum (wherever occurring) penetrations across interfaces to d3plot (MORTAR contact only).
Variable NPEN on *DATABASE_EXTENT_INTFOR to write absolute and relative penetrations to intfor (MORTAR contact only).
Variable NTWELD on *DATABASE_EXTENT_INTFOR writes user tied weld history variables to intfor file (MORTAR contact only).
Variable VC on *CONTACT… supported for MORTAR contact.
Added variable TDPEN on *CONTACT_2D_AUTOMATIC_SURFACE_TO_SURFACE_MORTAR. This is the analogue to interference option MPAR1 for IGNORE=3 in 3D automatic MORTAR contact.
Mortar contact supports erosion, that is, any solid segment or shell edge segment belonging to parts involved in the contact definition will become active in the contact when exposed to the environment due to erosion.
IGNORE=4 on *CONTACT_…_MORTAR supports a curve of relative interference reduction vs. time. When MPAR1<-1.0, |MPAR1| is the curve ID.
*LOAD_THERMAL_CONSTANT is supported in mortar contact, in those situations where the contact properties depend on temperature.
In eigenvalue analysis, nonzero mortar contact stress will not influence rigid body modes, i.e., you should see the proper rigid body modes among the available output.
TEMP<0 on *CONTACT_…_MORTAR_TIED_WELD calls a user tied weld interface, allowing implementation of “arbitrary” tied condition in weld simulations.
*CONTACT_TIED_…_THERMAL supported for (spotweld) beams.
Now implemented for MPP are *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_TIEBREAK and *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_TIED_WELD.
Segment-based contact (SOFT=2) now supports groupable and non-blocking features.
Option FTORQ for transmittal of moments across the contact interface is implemented in the groupable node-to-surface contacts, surface-to-surface contacts, and tied contacts.
*CONTACT_AUTOMATIC_GENERAL supports options SOFT=1 and SRNDE for the shell edge treatment.
A new orthogonal friction model is developed for the constraint and penalty *RIGIDWALL_ORTHO. A RIGIDWALL_ORTHO with equal friction coefficients in all directions now behaves as a regular RIGIDWALL with a single friction coefficient.
*CONTACT_RIGID_TO_RIGID is enhanced to support unloading curve, FCM=1/2/3.
*CONTACT_CONSTRAINT_NODES_TO_SURFACE is enhanced to support variable PENSF on MPP Card 2 of *CONTACT and recover contact forces that existed before solid remeshing associated with 3D solid adaptivity.
*CONTACT_AUTOMATIC_GENERAL is improved to stabilize short beams with small rotational inertias.
ERODING contacts are now supported in full deck restarts.
*CONTACT_AUTOMATIC_BEAMS_TO_SURFACE supports beam to shell_edge contact and detects the contact between shell edges and phantom nodes.
A new built-in variable IDRFLG added to *DEFINE_CURVE_FUNCTION, *DEFINE_FUNCTION. IDRFLG carries a value of 1 during dynamic relaxation and 0 in the transient phase.
Multiple *DEFINE_FRICTION tables with the same ID are merged.
Effect of variable I2D3D is correctd in MPP to avoid duplicated contact segments when the attached shell and solid are not assigned to the same processor.
ERODING contact in MPP is fixed to compute the stiffness of newly-exposed solid nodes and segments and apply the optional thickness SLDTHK to the newly-exposed solid segments.
The contact thickness in *PART_CONTACT is applied to *CONTACT_AUTOMATIC_GENERAL.
*CONTACT_AUTOMATIC_GENERAL is corrected by reducing the contact stiffness to half.
Fix ordering issue during initialization of *CONSTRAINED_INTERPOLATION in MPP that could have resulted in incorrect “colinear” warnings or possibly deadlock.
Fix MPP message passing error that could occur if a node involved in *CONSTRAINED_SHELL_TO_SOLID is shared between more than 2 processors.
Enhanced processing of an exactly singular constraint matrix for *CONSTRAINED_INTERPOLATION.
Corrected error in the checking for massless *CONSTRAINED_INTERPOLATION constraints in single precision.
Enhance *CONSTRAINED_INTERPOLATION in the explicit solver so the linear algebra of the constraint equation processing always operates in double precision to reduce loss of precision in single precision executables.
Add implicit support to *CONSTRAINED_SHELL_IN_SOLID.
Fix incorrect *CONSTRAINED_INTERPOLATION motion of the dependent nodes if the number of constrained dof is less then the total dof, i.e., DDOF.ne.123456.
Fix ineffective PNODE in *CONSTRAINED_NODAL_RIGID_BODY when PNODE<0.
Fix kinetic energy dependence on MPP core count when using *CONSTRAINED_JOINT_(OPTION) with LMF=1 in *CONTROL_RIGID.
Added swforc file output for welds modeled by *CONSTRAINED_GENERALIZED_WELD. Output values are the brittle failure forces, axial and shear, and the failure function.
Improved temperature-dependent failure curve option of spot welds defined by *CONSTRAINWED_SPOTWELD. Curve interpolation was using the wrong segment of the curve. Also, changed swforc output to show zero axial and shear forces after a weld has failed.
Add correct torsion to SPR3 (*CONSTRAINED_INTERPOLATION_SPOTWELD with STIFF4>0).
Fix for *CONSTRAINED_SPR2/SPR3: part id of internally generated beams has to take Nodal Rigid Bodies into account.
Add error trap if INTPERR=1 is set on *CONTROL_SHELL and data interpolation would be done with *INITIAL_STRESS_SHELL.
*CONSTRAINED_JOINT_STIFFNESS_CYLINDRICAL now available to model cylindrical/revolute connections with play
*CONSTRAINED_COORDINATE now supports part set ID in addition to part ID.
For nodes which are not attached to any elements, turn off the automatic global constraint normally applied to such nodes if those nodes are involved in *CONSTRAINED_MULTIPLE_GLOBAL.
Implement idrflg=-3 for *CONTROL_DYNAMIC_RELAXATION which invokes the version R7 (and earlier) implementation of idrflg=3. Now idrflg=3 means the parts not included in the part set are eliminated from the computation, and idrflg=-3 means all parts are included in the explicit computation but only those in the part set are included in the distortional-kinetic-energy-based convergence check in the dynamic relaxation phase.
Ignore *CONTROL_SPOTWELD between parts that are inactive during implicit dynamic relaxation phase.
Fix a bug whereby SHLTRW in *CONTROL_SHELL was ignored when ISTUPD>0.
Add variable MLKBAG to *CONTROL_OUTPUT to include accumulated airbag gas leakage in abstat.
Fix wrong pointer used for section id/properties when generating part for visualization of rigidwall during adaptivity. This cause error message KEY+137.
DISPLAY option in *RIGIDWALL_PLANAR will be ignored for stationary rigid walls when SKIPRWG=1 in *CONTROL_CONTACT.
Added options to the ERODE parameter on *CONTROL_TIMESTEP. The original options were 0 and 1 where 1 causes solid and thick shell elements to be eroded if their time step dropped below TSMIN*DT0 where TSMIN is specified on *CONTROL_TERMINATION, and DT0 is the solution time step that is calculated in the first cycle. The new options are to check and delete shell elements and beam elements having small time steps. The control of shells is in the ‘tens’ place and the beams is in the ‘hundreds’ place. The valid options for ERODE are now 1, 10, 11, 100, 101, 110, and 111. For ERODE=111, beams, shells, and solids are all checked. For ERODE=11, shells and solids are checked. The original options of 0 and 1 still behave exactly as they did.
Added support of *CONTROL_SUBCYCLE for segment-based (SOFT=2) contact. Contact forces are calculated for all nodes of a segment pair only if any node of the pair is due to have a force calculated.
Fixed some issues so that solid elements and thick shell elements will work as advertised with respect to DTMIN on *CONTROL_TERMINATION, ERODE on *CONTROL_TIMESTEP, and PSFAIL on *CONTROL_SOLID. These variables control whether we terminate the analysis or fail elements when their time step becomes small or their volume becomes negative.
Add an option TET13V on *CONTROL_SOLID to choose between the efficient and a more accurate version of the tet type 13 implementation.
Lagrangian multiplier joints, LMF=1 on *CONTROL_RIGID, are supported for consistent mass scaling (RBSMS=1 on *CONTROL_RIGID).
New keyword *DEFINE_DE_FLOW_DRAG to support DES interacting with external flow field.
Add a moving system with birth/death times in *DEFINE_DE_ACTIVE_REGION.
Fix bug of generation failure and uneven distribution of injected DES particles (*DEFINE_DE_INJECTION) when the radius of injected DES particles is very small.
Fix segmentation fault when using simple and small restarts in DEM.
Add the keyword *DEFINE_DE_COHESIVE to enable the capillary force in specified DES node set or parts.
Add the keyword *INITIAL_STRESS_DES to initialize stress in discrete element spheres (DES).
Output the DES initial stress and geometry information into dynain_ini and dynain_geo files (FSPLIT=1 in *INTEFACE_SPRINGBACK_LS_DYNA).
Fix incorrect behavior when using *DEFINE_DE_ACTIVE_REGION with itype=1, i.e. BOX, with *DEFINE_TRANSFORMATION. The box was not rotated.
For the Belytschko-Tsay shell with thickness stretch (*SECTION_SHELL, ELFORM=25) an improved representation of stresses over the thickness may be obtained with the new option IDOF=11 instead of IDOF=1 (for continuous thickness fields) or with the new option IDOF=12 instead of IDOF=2 (for discontinuous thickness fields).
Changed *DEFINE_ELEMENT_EROSION to be more compatible with the original FE options and added support for IGA elements via *DEFINE_ELEMENT_EROSION_IGA.
Added calculation of implicit tangent for shell formulation 46, a 2D cohesive element.
Restructure nodal volume data communication for solid tet formulation 13 for better parallel performance.
Added new more conservative time step calculation (independent of shell thickness) for improved stability in cohesive shell formulation 29.
Fix incorrect stress output to d3plot and ASCII files when using tetrahedron solid types 10 and 13 with orthotropic materials and when CMPFLG=1 in *DATABASE_EXTENT_BINARY.
Fixed a bug that caused axisymmetric elements (shell ELFORMs 14,15) to instantly fail when DTMIN>0 in *MAT_ADD_EROSION.
Shell elements with *MAT_NULL can be deleted by TIME in *DEFINE_ELEMENT_DEATH_SHELL.
Added a check for invalid ELFORM values on *SECTION cards. Invalid values were leading to terminations without clear error termination messages.
Added an optional modification to the time step calculation that is done for solid elements. See variable IHDO in *CONTROL_TIMESTEP. Setting IHDO to 1 causes the time step calculation to be modified such that it does not have a discontinuity between expansion and compression. With the default time step calculation, the solution time step can jump up or down about 6% when an element controlling the time step switches from compression to expansion. The size of the jump depends on the linear bulk viscosity coefficient. These jumps may not occur if multiple elements are controlling the time step as it is unlikely for all to be expanding at the same time so the smaller time step is used consistently. Setting IHDO to 1 prevents this discontinuity from occuring.
Added support for shell form 23 in output file eloutdet (*DATABASE_ELOUT). When shell form 23 is used, the code can now output stress and strain at 2×2 or 3×3 integration points and extrapolate to all 8 nodes.
Added a bulk viscosity option for thick shell (TSHELL) elements (See variable TSTYPE on *CONTROL_BULK_VISCOSITY).
Enabled plane strain and axisymmetric elements (*SECTION_SHELL ELFORM 13, 14, 15) to include stress initialization by *INITIAL_STRESS_SHELL for materials that use equations of state.
Enabled solid spot weld assemblies to use 8 node and 6 node cohesive elements with *MAT_240. There is no assembly failure calculation, but the resultant forces and moments are calculated and can be output to the swforc file. This works with solid element formulations 19, 20, 21, and 22.
Enabled variables CDL and TDL on *SECTION_DISCRETE to be used when one of the discrete beam nodes is constrained by an SPC.
Improved the accuracy of pressure loading on fully integrated, volume-weighted axisymmetric solid elements (ELFORM=15/NIP=4 on *CONTROL_SHELL), particularly along the axis of symmetry.
Improved the post-failure behavior of integrated beam elements by adding an option (NAUDP on *SECTION_BEAM) to update the neutral axis when one or more integration points fail so that nodal moments are correctly calculated. This option is available for the integrated beam formulations 1, 9, 11, and 14 when used with *MAT_003, *MAT_098, *MAT_100, *MAT_124, and *MAT_158.
Improved mass scaling of beam element formulations 4 and 5. A dimensional problem was causing erratic behavior which could cause unstable behavior.
Fixed bug affecting simultaneous use of ERODING contact with cohesive pentahedral solids, which through use of ESORT=1, are changed to formulations 21/22. Prior to this fix, this combination of keywords could have lead to error termination due to negative volume.
Add check if two or more parts use solid element formulation 13 (tetrahedron with pressure averaging) and those parts share some nodes. Write a warning in that case because such a condition could lead to instabilities.
COHOFF on *SECTION_SOLID allows for adjusting the reference layer for cohesive element formulations 20 and 22.
Fixed bug in plane strain, 8-node shell formulation 55 to show correct stresses when 4 in-plane points are required for d3plot output. Restored writing out stress components at all integration points in elout. Shell formulation 55 is for implicit analysis only and requires 4, 9 or 16 integration points (default 4) since it is meant to simulate the singular stress field around a crack tip.
For thick shell (TSHELL) formulations 1 and 2, fixed incorrect stress output in elout when used for composite materials and CMPFLG=1.
Added using *DEFINE_TABLE to define SN curves for multiple mean stress.
Added new mean stress correction method (METHOD=5): Morrow equation (SN curve).
Extended thick shell element fatigue analysis (including multiaxial) to MPP.
Extended solid element fatigue analysis (including multiaxial) to MPP.
Extended shell element fatigue analysis (including multiaxial) to MPP.
Fixed a bug in running *FATIGUE_SUMMATION. This function is now working as a standalone module. Previously it was used inside fatigue analysis.
Added warning message MSG_FTG+5 in case the calculated stress value is higher than the stress of the first point on SN curve, to remind user to check the SN curve or stress calculation. If the stress value is higher than the stress of the first point on SN curve, extrapolation is used and this may not be accurate, especially if the first point is the UTS (Ultimate Tensile Strength).
Added a parameter (DMGMIN in *FATIGUE) to allow user to define base damage ratio for elements with zero stress or strain.
Added a new option _D3PLOT to allow running time domain fatigue analysis based on d3plot.
Implemented *FATIGUE_FAILURE to remove failed elements from model.
Implemented *FATIGUE_MULTIAXIAL to run multiaxial fatigue analysis.
Implemented *FATIGUE_LOADSTEP to run fatigue analysis with multiple load steps.
Added warning message MSG_FTG+4 if fatigue properties are not defined for the current element under fatigue analysis.
Implemented definition of initial fatigue damage ratio by part or part set (PID/SID in *INITIAL_FATIGUE_DAMAGE_RATIO).
Added semi-log SN curve definition. This can be used both in time domain and frequency domain fatigue analysis.
Added exposure time TEXPOS for fatigue analysis, in case it is different from endtim in *CONTROL_TERMINATION.
Added an option D3PLOT to *INITIAL_FATIGUE_DAMAGE_RATIO to allow using damage variables from transient preload cases as initial fatigue damage ratio.
Fixed a bug in defining mean stress correction methods. The UTS/yield strength should be defined on material model, not part ID, according to the Manual.
*DEFINE_BOX_NODES_ADAPTIVE now supports more than 2 levels of mesh refinement for tube adaptivity. Maximum level is specified by variable LEVEL.
ONESTEP simulations with triangular elements used to produce misleading effective plastic strain results in regions with high curvatures. This is now fixed.
Fix bug in ONESTEP method that produces false minor and major strain in the output file onestepresult
Fix bug in *CONTROL_FORMING_ONESTEP, OPTION=6.
Fix MPP bug for ONESTEP output files repositioned.k and onestepresult.
Fixed the problem of lacking temperatures at the lancing line in MPP lancing simulations.
Fixed a memory access problem which resulted in error termination of simulations of unflanging process.
*CONTROL_FORMING_MAXID is supported by 3d tet adaptivity (*CONTROL_ADAPTIVE).
*CONTROL_FORMING_PRE_BENDING(_LOCAL): New option allows user to define a vector based on a local coordinate system. If the LOCAL option is used, then coordinate system ID is input on Card 2.
Add keyword *CONTROL_FORMING_TRIM_SOLID_REFINEMENT to homogeneously refine elements along a trim curve. Supports *DEFINE_CURVE_TRIM_2D and *DEFINE_CURVE_TRIM_3D.
*DEFINE_CURVE_TRIM_2D allows refinement of a sandwiched part along trimming curves. The sandwich core comprised of multiple layers of solid elements can now be refined. In addition, the trimming curve can be in any direction (2D trimming only).
*CONTROL_FORMING_ONESTEP_ORTHO uses 2 nodes in the final part to define the rolling direction of the anisotropic material.
Correction to rotational inertia for *FREQUENCY_DOMAIN_SSD.
Extend logic for implicit constraint handling to tied contact with _CONSTRAINED_OFFSET to skip any SPC constraints on the rotational dofs of the SPC slave nodes. We already have such logic to skip the constraints on the translational dofs for the slave nodes for all tied contacts.
Correct the issue where use of *LOAD_BODY is applied to a model with rigid bodies. If the vector of nodes having the load applied belong to a rigid body then the vector of elemental stiffness matrices is null. So logic was added to skip the call to the implicit matrix assembly subroutine for that case.
New option where ILIMIT in *CONTROL_IMPLICIT_SOLUTION can vary with time. If ILIMIT<0, |ILIMIT| is taken as the curve ID which defines the iteration limit between automatic stiffness reformations (ordinate) vs. time (abscissa).
Implemented an approximate constitutive matrix for implicit analysis of *MAT_187 / *MAT_SAMP-1.
New implicit feature for automatic generation of solution key points through examination of load curves for points of particular interest, e.g., times at which maximum load occurs. Set DTMIN < 0 in *CONTROL_IMPLICIT_AUTO to invoke this option.
Enhanced the performance of the output to d3* files for *CONTROL_IMPLICIT_EIGENVALUE and *CONTROL_IMPLICIT_MODES. This saves 15% of the wall clock time for large eigenvalue problems where hundreds of eigenmodes are written to d3eigv.
Correct joint constraint processing in implicit mechanics which should improve the reporting of joint forces (*DATABASE_JNTFORC) in implicit.
Enhance implicit’s processing of nodal mass matrices to include the local coordinate transformation.
Echo the input for *CONTROL_IMPLICIT_RESIDUAL_VECTOR to d3hsp.
Fix an issue of the implicit linear algebra filenames being inconsistent between Linux and Windows.
Add an implicit-only option for processing *CONSTRAINED_INTERPOLATION which is referred to as force-geometry-mass (fgm). F orces are moved from the dependent node to the independent nodes, geometry of the dependent node is computed from the independent nodes, and the mass on the dependent node is moved to the independent nodes. All without using a constraint matrix or LaGrange Multiplier approach.
No longer automatically increase nodal DOF from 3 to 6 due to the presence of *CONSTRAINED_INTERPOLATION. This is unnecessary for solid element models and increases the cost of large solid element models for implicit by 15% due to huge increase in constraint processing to constrain out all of the rotational dofs.
Correct implicit’s handling of SPC constraints on shared nodes in MPP that are also involved in tied contact.
Enhance Implicit constraint processing to accept function definitions for motor joint movement (*CONSTRAINED_JOINT_***_MOTOR).
Added implicit time stamps and additional performance tracking for MPP Lanczos eigensolver. Extended command Line Option impcon=1.
Added a command line directive of impcon=1 which tracks events during implicit simulation to analyze performance for large implicit jobs. This is also a useful debugging tool as it helps identify the particular part of implicit is being executed at an abnormal termination.
Single precision executables are now disallowed for implicit mechanics (both MPP and SMP).
Restored final memory report for implicit SMP runs. Logic was based on old memory allocation scheme instead of new dynamic memory allocation.
Turned on Mumps, a new linear solver option for implicit mechanics, to be included for double precision SMP on XEON64 and AMD64 systems.
Corrected an inefficiency for implicit when there are many many AutoSPC constraints in MPP. A linear search through the AutoSPC constraints was replaced with a binary search.
Corrected the collection of resultant forces when using implicit mechanics for tied contact using _OFFSET. Other tied contact such as _CONSTRAINED_OFFSET were OK.
Added SMP implementation of new keyword *CONTROL_IMPLICIT_RESIDUAL_VECTORS.
Apply logic that was in R9 and R10 but had not made it into R11 and R12 to check for incorrect values in nodal inertia array for implicit dynamics and eigenvalue analysis.
Fixed divide by zero in power iteration for buckling problems with inertia relief. (*CONTROL_IMPLICIT_BUCKLING, *CONTROL_IMPLICIT_INERTIA_RELIEF)
Correct problem where solution control was inappropriately returned to implicit after issuing sense switch sw1.
Add a stiffness option to *CONTROL_IMPLICIT_ROTATIONAL_DYNAMICS. The stiffness terms are suppressed to keep the stiffness matrix symmetric but the force terms are added.
Fixed implicit element stiffness of shell elements when used with laminated shell theory, and when also using anisotropic materials *MAT_022, *MAT_034, *MAT_040, *MAT_054, *MAT_055, or *MAT_058. In certain cases, the shear stiffness was too small.
Lagrangian multiplier joints, LMF=1 on *CONTROL_RIGID, are supported for for implicit analysis.
Fixed bug with d3eigv when using TET10S8=1 on *CONTROL_OUTPUT.
Fix bug in the *INITIAL_STRESS_TSHELL module of the dynain output file. For Thick Shells with 6-10 integration points through the thickness, the z-coordinates of the integration points were incorrect.
Added new option ISTIFF to *INITIAL_STRESS_SECTION for enhanced stability.
Added new ISTIFF option for artificial stiffness in *INITIAL_STRESS_SECTION.
Fix *INITIAL_STRESS_TSHELL output to dynain for thick shell form 7. Output stresses for all 4 in-plane integration points instead of just 1.
Fix incorrect rotational axis when using *PART_INERTIA and *INITIAL_VELOCITY_GENERATION with IRIGID=1 and the rotational axis is defined using nodes by setting NX=-999 and defining the nodes with NY and NZ.
Make *MAT_GENERAL_NONLINEAR_1DOF_DISCRETE_BEAM / *MAT_121 work with *INITIAL_STRESS_BEAM.
Disable *INITIAL_AXIAL_FORCE_BEAM and *INITIAL_STRESS_SECTION when IDRFLG=-999 in *CONTROL_DYNAMIC_RELAXATION.
Fix seg fault or incorrect stresses when initializing stresses using *INITIAL_STRESS_SOLID with *MAT_107 / *MAT_MODIFIED_JOHNSON_COOK.
Fixed a bug that made *INITIAL_VELOCITY_GENERATION_START_TIME not work for rigid parts.
STRFLG in *DATABASE_EXTENT_BINARY will be automatically set to unity when using *INITIAL_STRAIN_SOLID.
Fixed the writing of dynain files that use beam element formulations 7 or 8. They were writing the wrong number of integration points.
Fixed a problem that occurred when when initializing stress in thick shells using a dynain file created by a previous run that used a different number of integration points per layer than the new run. In this case, when reading the dynain data to initialize the element, the stress tensor was being properly averaged or extrapolated as needed, but the material extra history variables were not, which for some materials caused wrong material behavior.
Fixed the reading of initial strain data for thick shell formulations 2, 3, 5, 6 and 7. A strain transformation was missing.
Add new keyword *INITIAL_HISTORY_NODE(_SET) to initialize select history variables at node locations. These nodal values are internally interpolated to the element integration points using the finite element shape functions. A main difference to using *INTIAL_STRESS_SHELL / *INTIAL_STRESS_SOLID, where you would need to initalize ALL history variables up the ones you really need/want to initialize is that *INITIAL_HISTORY_NODE(_SET) allows you to just pick the few variables you would like to initialize without touching the others.
*INITIAL_AXIAL_FORCE_BEAM now supported for beam formulation 1 (H-L beam) and any material. Previously, only beam formulation 9 with *MAT_SPOTWELD was allowed.
Selective mass scaling is not applicable to beam formulation 1 (Hughes-Liu beam).
Updated *DEFINE_SPOTWELD_RUPTURE to work with isogeometric shell elements.
Added IGA shell and IGA solid element erosion due to the material failure strain, *MAT_ADD_DAMAGE, and *MAT_ADD_EROSION.
Contact for IGA in implicit is now available using the automatically generated interpolation elements. The IGACTC option in *CONTROL_CONTACT, however, is not currently supported for implicit.
Added *INITIAL_VELOCITY_GENERATION support for IGA elements using parts and part sets.
Added support for checking element stiffness matrices for IGA through the LPRINT option in *CONTROL_IMPLICIT_SOLVER.
Both IGA solids and IGA shells now work with *MAT_RIGID. Previously, only IGA shells were supported for rigid material.
IGA now works for implicit springback.
Added the ISTUPD thickness change options (*CONTROL_SHELL) to IFORM=3 IGA shell elements.
Added drilling stiffness type 4 (see DRCM in *CONTROL_IMPLICIT; DRCPSID and DRCPRM in *CONTROL_SHELL) to the IGA shells.
Improved the time centering for IGA shells for improved convergence rates in implicit analysis.
Fixed bugs that arose from improper merging of interpolation nodes at patch boundaries. This could have lead to errors such as “Zero Normal Vector”.
Remove the limitation to have NURBS patches and related trimming curves defined in a normalized parameter space as this is not common in CAD-files.
Fix bug when using IGA-shells (*ELEMENT_SHELL_NURBS_PATCH) together with user defined elements (ELFORM=100-105).
There were unexpected error terminations when *LOAD_THERMAL_LOAD_CURVE was used in an adaptive analysis. This has been fixed.
*LOAD_THERMAL_D3PLOT reads temperature data from a file in d3plot format. The file name is specified as an option on the command line. If this file does not exist in the working directory, LS-DYNA now gives a reasonable message and exits gracefully.
Fix incorrect results when using *DEFINE_CURVE_FUNCTION with AX/AY/AZ for *LOAD_SEGMENT.
Fix output to nodfor when using *LOAD_SSA.
Fix ineffective *LOAD_THERMAL_CONSTANT when used with *MAT_ELASTIC_VISCOPLASTIC_THERMAL / *MAT_106.
Fix seg fault when using *LOAD_MOVING_PRESSURE due to uninitialized variable.
Fixed a bug preventing *LOAD_BLAST_ENHANCED from working for 2D analysis.
When IDIR=3 in *LOAD_MOVING_PRESSURE, the pressure is in the direction from NODE1 to NODE2, but only the normal component of the pressure is applied on the segments.
Enabled *LOAD_THERMAL to work for beam nodes when nodal releases are defined at those nodes. The thermal loading was previously incorrect.
Implement *LOAD_SPCFORC in MPP.
Reduce memory usage and computation time for *LOAD_SEISMIC_SSI_NODE when ground motions are specified at every node on the soil-structure interface.
New keyword *LOAD_EXPANSION_PRESSURE applies a uniform pressure (e.g., from explosive detonation) on the internal surfaces of a chamber while one wall of the chamber moves (as a piston) so that the loaded area increases.
Add heat generation factor QCURE to *MAT_ADHESIVE_CURING_VISCOELASTIC / *MAT_277 which relates the heat generated in one time step with the increment of the degree of cure in that step.
Extension of THERML variable in *MAT_077_H to allow C11, C20, C02, and C30 to also be specified as a function of temperature.
Add calculation of internal energy to *EOS_019 / *EOS_MURNAGHAN.
Make *EOS_019 / *EOS_MURNAGHAN compatible with *INCLUDE_TRANSFORM.
Add support for optional EOS in *MAT_COMPOSITE_FAILURE_SPH_MODEL / *MAT_059.
Variable PHEL in *MAT_JOHNSON_HOLMQUIST_CERAMICS / *MAT_110 can be specified equal to 0.0 by default or by user input. In this case PHEL is calculated internally. This value is now echoed as phel in d3hsp.
Added isotropic plasticity to *MAT_030 / *MAT_SHAPE_MEMORY.
Added new material model *MAT_291 / *MAT_SHAPE_MEMORY_ALLOY for shape memory alloys. This is a micromechanics-inspired constitutive model for shape-memory alloys that accounts for initiation and saturation of phase. This model is based on Kelly, Stebner, Bhattacharya (2016) and is available for solid elements only.
Added support for curves defining thermal properties vs. mechanical history variables in *MAT_THERMAL_ISOTROPIC_TD_LC.
Fixed the problem in *MAT_244 / *MAT_UHS_STEEL where redundant table look-up operations in the plasticity algorithm increased the computational cost.
Added history variable (at the 8th position) in *MAT_133 / *MAT_BARLET_YLD2000 to allow user input of a effective plastic strain shift which can be used to account for stored energy in sub-structures after heat treatment. This option is only applicable to the case of HARD < 0 (curve/table input of hardening curves).
Added 3D table option to hardening curve input of *MAT_233 / *MAT_CAZACU_BARLAT so that the material model is applicable to simulations of hot/warm forming of materials such as magnesium.
Fix incorrect initial strains when using *MAT_MOONEY-RIVLIN_RUBBER / *MAT_027 with *INITIAL_FOAM_REFERENCE_GEOMETRY and running in single precision.
Fix problem of solution hanging when using *MAT_PIECEWISE_LINEAR_PLASTICITY_STOCHASTIC and *DEFINE_HAZ_PROPERTIES (MPP only).
Fix incorrect behavior for *MAT_GENERAL_JOINT_DISCRETE_BEAM / *MAT_097 when BEGTIM in *CONTROL_START is set >0.0.
Fix incorrect stresses for *MAT_ANISOTROPIC_VISCOPLASTIC / *MAT_103 and *MAT_ANISOTROPIC_PLASTIC / *MAT_103P when using BETA for *ELEMENT_SHELL_BETA or BETA in the input or material integration point angles input on *SECTION_SHELL.
Fix seg fault when using *MAT_PIECEWISE_LINEAR_PLASTICITY / *MAT_024 for Hughes-Liu beam with implicit analysis.
Output fitted data to curveplot for *MAT_HYPERELASTIC_RUBBER / *MAT_77_H when N>1.
Fix effect of FBRT on tensile strength, XT, for *MAT_ENHANCED_COMPOSITE_DAMAGE / *MAT_055. FBRT should only affect the tensile strength upon compressive maxtrix mode failure.
If FAILTM < 0.0 in *MAT_ADD_EROSION, skip erosion failure evaluation during dynamic relaxation phase.
The calculation of Q12 for *MAT_SPECIAL_ORTHOTROPIC / *MAT_130 and *MAT_RESULTANT_ANISOTROPIC / *MAT_170 is incorrect. It should be Q12=(v21p*E11p)/(1-v12p*v21p).
Fix ineffective curves LCSRA, LCSRB, LCSRC, LCSRAB, LCSRBC, LCSCA in *MAT_MODIFIED_HONEYCOMB / *MAT_126.
Error terminate with message, INI+484, if LOG_INTERPOLATION is invoked for *MAT_PIECEWISE_LINEAR_PLASTICITY / *MAT_024 and the strain rate for the table is defined by LCSS is negative.
Fix ineffective user-define failure subroutine (FAIL<0) for *MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY / *MAT_123.
Fix output to elout for solids using *MAT_PAPER / *MAT_274 and CMPFLG>0 in *DATABASE_EXTENT_BINARY.
Allow *MAT_065 / *MAT_MODIFIED_ZERILLI_ARMSTRONG to compute the flow stress using a more general form by using power exponent, m, of the effective plastic strain instead of the square root of the effective plastic strain in the case of an FCC metal.
Fix seg fault when using *MAT_ADD_EROSION for *PART_COMPOSITE when the first layer of the *PART_COMPOSITE is not using *MAT_ADD_EROSION.
Fix incorrect direction of thermal expansion when using *MAT_NONLINEAR_ORTHOTROPIC / *MAT_040 with *MAT_ADD_THERMAL_EXPANSION.
Fix contact penetration after element erosion when using *MAT_110 / *MAT_JOHNSON_HOLMQUIST_CERAMICS with eroding contact.
Fix incorrect stress/strain output to d3plot when using *MAT_023 / *MAT_TEMPERATURE_DEPENDENT_ORTHOTROPIC and running 2D analysis with MAXINT>3 in *DATABASE_EXTENT_BINARY.
Fix incorrect stress initialization when using *LOAD_DENSITY_DEPTH in combination with *MAT_005 / *MAT_SOIL_AND_FOAM where the material’s volumetric strain vs. pressure is input using curve LCID.
Fix strain rate effects on *MAT_157 / *MAT_ANISOTROPIC_ELASTIC_PLASTIC for implicit
static analysis.
Fix seg fault when using *MAT_278 / *MAT_CF_MICROMECHANICS.
Fixed a bug causing 2WAY=1 in *MAT_ENHANCED_COMPOSITE_DAMAGE / *MAT_054 not to be recognized.
Added PRESTRAIN keyword option for *MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY / *MAT_123. When PRESTRAIN is used, the variable IPS on Card 5 is used to control the prestrain option. If IPS is set to 1, then the strain tensor defined by *INITIAL_STRAIN_SHELL will be used as prestrain when checking major strain failure, EPSMAJ.
Added a new option called TTOPT to *MAT_SPOTWELD which is used by solid and solid assembly spot welds. The option controls the behavior of TRUE_T making it possible to revert the TRUE_T behavior back to how it worked in R8 and previously. If TTOPT=0 or if the TTOPT is not input, then the behavior is unchanged with this update. If TTOPT=1, then R8 and earlier behavior happens. TTOPT=2 is like TTOPT=1, but the average top and bottom values of forces and moments are used for failure making failure invariant with respect to element numbering.
Added support for user-defined spot weld failure in *MAT_100_DAMAGE-FAILURE with individual solid elements. Previously, only beam elements and solid weld assemblies were supported.
Enabled *MAT_ADD_THERMAL_EXPANSION to work in thick shell elements when the solutions is mechanical only. Some code was missing causing bad behavior.
Enabled *MAT_128 / *MAT_HEART_TISSUE for thick shell forms 3, 5, and 7. Initialization of the F tensor was missing causing a 1st cycle termination.
Enabled *MAT_145, *MAT_244, and *MAT_254 to work with thick shell formulations 3, 5, and 7.
Enabled multiple instances of nonlocal material averaging to be used in MPP. This change affects *MAT_NONLOCAL, and also *MAT_CODAM2, *MAT_GURSON_RCDC, or *MAT_PLASTICITY_WITH_DAMAGE with the RCDC option.
Enabled the variable EC of *MAT_058 / *MAT_LAMINATED_COMPOSITE_FABRIC to be used with thick shell formulations 1, 2 and 6. If a positive value is input, then it will be used. f EC is left blank or set to zero or a negative number, then the minimum of EA and EB will continue to be used. Also, *MAT_058 will now echo to d3hsp EC=0 when used with thin shells because the EC value is ignored.
Improved hourglass form 6 when use with *MAT_089 / *MAT_PLASTICITY_POLYMER. A poor choice of the material parameter used to scale the hourglass stiffness made it difficult to use.
Fixed spot weld assemblies that use user defined failure option 12 in *MAT_100. An error was causing OPT=12 to not work at all.
Fixed the use of *MAT_ADD_DAMAGE_DIEM with *MAT_024 and tetrahedral element formulation 13. The damage calculation used bad data leading to a wrong result.
Fixed the initialization of the material direction for orthotropic materials when used with AOPT=2 in 2D plane strain, plane stress, and axisymmetric elements.
Fixed implicit beam spot weld elements (*SECTION_BEAM ELFORM=9) when used with NF>0 on *MAT_100 / *MAT_SPOTWELD. The averaging of the stress was causing the model to converge to the wrong solution with beam forces too low.
Fix for combination of *MAT_ADD_PORE_AIR and *MAT_ADD_EROSION with solid element formulations 1, 10, 43, 60, 61, and 99. History variables could have been mixed up.
Increase accuracy for rate curves SIGVM<0 and MXEPS<0 of *MAT_ADD_EROSION. The original input curve is used instead of the rediscretized one.
Add new variable P4 for *MAT_ADD_DAMAGE_DIEM to define if transverse shear stresses are included in the stress invariant computations (e.g triaxiality) or not. Useful for shells with corresponding “plane stress” material models such as *MAT_024_2D, *MAT_036, …
Add new option MIDFAIL = 4 to GISSMO (*MAT_ADD_DAMAGE_GISSMO) and “eGISSMO” (*MAT_ADD_GENERALIZED_DAMAGE).
Fixes for GISSMO damage when used together with an equation-of-state ().
Take IRATE flag from *CONTROL_IMPLICIT_DYNAMICS into account for GISSMO.
Add new keyword *MAT_ADD_SOC_EXPANSION for geometric expansion due to State Of Charge from EM solver (currently only available for isotropic, hypoelastic materials with solid element formulations -2, -1, 1, 2, and 10).
Add option to *MAT_024 with VP=3, where yield stress can now be a function of plastic strain, strain rate, and up to five history variables that can be set using *INITIAL_HISTORY_NODE. That means LCSS refers to *DEFINE_TABLE_XD up to a level of 7.
Add *MAT_024‘s option VP=3 (filtered total strain rate) for solid elements.
Add effective strain as history variable #28 for *MAT_034 / *MAT_FABRIC with FORM = 14, 24, or -14.
Fix problem with internal computation of E0 for *MAT_036 / *MAT_3-PARAMETER_BARLAT if hardening rule HR=2 or HR=5 is used AND E0 is zero in the input AND E is less than zero (curve for Young’s modulus).
Fix for *MAT_105 / *MAT_DAMAGE_2 with large curve IDs for LCSS (only solids).
Make *MAT_133 / *MAT_BARLAT_YLD2000 available for solid elements (currently only for explicit analysis and without C-R kinematic hardening).
Enable *MAT_199 / *MAT_BARLAT_YLD2004 to be used with shell element formulations 25,26,27 and tshell element formulations 3,5,7. Set default values (1.0) for the transformation matrix coefficients.
Allow *MAT_224 to be used with Lode parameter dependent tables even for shell elements, i.e., in cases where LCF refers to *DEFINE_TABLE and/or LCI refers to *DEFINE_TABLE_3D.
Allow *MAT_224 implicit to be used with EFG and MEFEM (ELFORMs 41, 42, 43, 45; see *SECTION_SOLID).
Change behavior of NUMINT>1 for *MAT_224 if used with multi-integration point solid elements. Integration points that reach damage=1 still update stresses and therefore carry load. Only if NUMINT integration points reach damage=1, the element gets eroded. The old way (single IPs got zero stresses before the element was deleted) just led to severe deformations and instabilities.
Make *MAT_251 / *MAT_TAILORED_PROPERTIES available for solid elements.
Enable numerical tangent for *MAT_252 / *MAT_TOUGHENED_ADHESIVE_POLYMER allowing implicit analysis ith moderate nonlinearities.
Fixed problem using *MAT_258 / *MAT_NON_QUADRATIC_FAILURE and *DAMPING_PART_STIFFNESS together with RYLEN=2 in *CONTROL_ENERGY.
*MAT_ADD_INELASTICITY introduced for low order solids and shells. This keyword can be used to add inelastic behaviors, including plasticity, viscoelasticity, and creep, to any material model whose stress is calculated incrementally.
*MAT_ADD_DAMAGE_DIEM now supports Hughes-Liu beams, thick shell type 2, and axisymmetric elements.
All parameters on first two cards on *MAT_ADD_EROSION are supported for Instability on *DEFINE_MATERIAL_HISTORIES.
*MAT_EXTENDED_3-PARAMETER_BARLAT / *MAT_036E now supports tables to define stress vs. plastic strain and strain rate. Viscoplastic consistency is mandatory.
Enchanced message SOL+737. “Strain range of stress-strain input for *MAT_031 has been exceeded.”
In checking for fixed nodes for PML boundary (*MAT_PML_…), correctly merge translational constraints from *NODE and *BOUNDARY_SPC, in case both are used at the same node.
Calculate internal energy correctly for PML elements. *MAT_PML_NULL may have issues.
Implement *DAMPING_FREQUENCY_RANGE_DEFORM for solid PML elements.
Introduce new label ‘shl2d’ for user materials in plane stress elements, distinguishing them from shells.
Add keyword *MAT_ADD_CHEM_SHRINKAGE_TITLE, with which the chemical shrinkage effect can be simulated.
When MPP predecomposition is done for more processors than the calculation, and the model contains airbags, the airbag ownership was not being properly handled leading to problems including possibly segfault. This has been fixed.
Improvements and fixes for MPP handling of decomposition regions and processor subsets.
Fix MPP contact initialization issue that was segfaulting in some models if parts were being excluded from the d3plot output.
Fix missing initialization that broke d3plot files when MPP predecomposition was used with models having *DEFINE_CURVE_FUNCTIONs that used the PIDCTL function.
Corrected MPP processing of *PART_MODES option of ANSID .ne. 0. The node list for this option needed to be sorted and logic adjusted so that all processes, even those with no such nodes, are involved in the communication.
MPP fix for frictional work output to intfor (*DATABASE_BINARY_INTFOR) when soft=2 contact is being used
“Interface Pressure” output to intfor is now returned to always being positive. There is no clear way to distinguish between compression and tension at this point in the code, so restoring the old behavior seems best.
Fix issue with reported time step controlling element in glstat.
Reaction forces for superelements (*ELEMENT_DIRECT_MATRIX_INPUT) using explicit time integration are now available in spcforc.
SPCs in *CONSTRAINED_NODAL_RIGID_BODY_SPC are now internally converted to equivalent *BOUNDARY_PRESCRIBED_ MOTION_RIGID if SPC2BND is set to 1 on *CONTROL_OUTPUT. This allows output of reactions to bndout.
New stress extrapolation from gauss points to nodes for shells (similar to the SOLSIG option for solids). Enable by setting the SHLSIG variable to 1 in *CONTROL_OUTPUT. Applies to shell element formulations 16, 20, and 21.
Error terminate with KEY+501 message if different BEAMIP settings are used in duplicate *DATABASE_EXTENT_BINARY.
Eliminate order dependency of IDOF in *SECTION_SHELL in which the IDOF in the first shell part became the default for the other shell parts with the same formulation instead of being independent.
Fix incorrect rigid body velocities output to matsum for axisymmetric analysis with eroding elements.
Fix incorrect rigidwall forces & stonewall energy reported for *RIGIDWALL_PLANAR_ORTHO.
Shell reference surface offset NLOC in *SECTION_SHELL will now properly affect moment calculation for output to secforc (*DATABASE_SECFORC).
Eliminated output of nodes having zero mass to massout (*DATABASE_MASSOUT).
Fixed a bug that caused inconsistencies in strains output to d3plot and d3part.
Fixed a bug that caused discrepancies in elout and disbout for discrete beams using *MAT_121 / *MAT_GENERAL_NONLINEAR_1DOF_DISCRETE_BEAM.
Fixed a bug that caused zero forces in nodfor for discrete beams (beam ELFORM 6).
Fixed a bug that caused incorrect stresses in d3plot and elout for shell ELFORM 23.
Fixed a bug that caused discrepancy in rigid body velocity output to glstat and matsum.
Fixed a bug that caused segfault when using LCUR in *DATABASE_DISBOUT.
Added missing report of triggered failure criterion when solid elements fail due to *MAT_ADD_EROSION.
Fixed a bug that caused incorrect filtered results in ncforc when using *DATABASE_NCFORC_FILTER in MPP.
Enabled the change in beam length to be viewed when fringe plotting discrete beams.
Enabled variable ENGFLG on *DATABASE_EXTENT_BINARY to apply to thick shells as well as thin shells. This allows internal energy density of tshells to be written to d3plot.
Fixed a thick shell output problem affecting d3plot that occurred when MAXINT on *DATABASE_EXTENT_BINARY was larger than the number of layers in the element. For the nonexistent layers, we were reading data from the next element in memory. Now data for the last existing point is repeated.
Fixed two issues when reporting eroded hourglass energy to glstat and matsum. For solid elements, the eroded energy was not removed from the regular hourglass energy, so it was counted twice causing a poor energy balance in the glstat data. Also, thick shells were not reporting eroded hourglass energy.
Fixed bug in which DECOMP=2 or 4 in *DATABASE_EXTENT_BINARY corrupts d3drlf.
Fixed bug whereby a simple restart corrupted the d3part database.
Echo *DATABASE_EXTENT_BINARY_COMP variables to d3hsp.
Fix conditional so that node rotational masses are properly synchronized when initializing *CONTACT_TIED_…_BEAM_OFFSET during MPP full deck restart.
Fix MPP full deck restart issue that caused hanging if the new input file contained encrypted input.
Correct the handling of restarting implicit after full restart.
Fix bug affecting restarts in implicit.
Fix seg fault when using *DELETE_CONTACT for restart when running with SMP.
Fix error termination for full deck restart using *DEFINE_ELEMENT_DEATH.
Added new option COMP to *DELETE_PART for simple restart. (*DELETE_PART_COMP) This option eliminates data pertaining to deleted parts from d3plot thereby reducing the size of the d3plot database.
Limit the usage of *SENSOR to transient analysis only, not dynamic relaxation.
Fix order dependency problem when using *DEFORMABLE_TO_RIGID activated by *SENSOR_CONTROL TYPE=’DEF2RIG’.
Fix SPG bug in MPP whereby the time step size varies with different number of MPP processes.
*SECTION_SOLID_SPG now automatically sets element formulation to 47.
If FAIL is set greater than 0 in *MAT_003 or *MAT_024, it is used in the SPG bond failure.
Added SPG bond failure criteria corresponding to *MAT_ADD_DAMAGE_GISSMO and *MAT_ADD_EROSION (1st principal stress, max shear strain, 3rd principal strain).
Add *DATABASE_SPHMASSFLOW and *DEFINE_SPH_MASSFLOW_PLANE to measure SPH mass flow rate across a defined plane. This feature is to SPH as *DATABASE_DEMASSFLOW is to DEM.
Add option to move *DEFINE_SPH_ACTIVE_REGION around by following a moving coordinate system.
Add option for buffer zone in *DEFINE_SPH_ACTIVE_REGION.
Add an error message when a *DEFINE_BOX_SPH is referenced in *CONTROL_SPH boxid. This should point to a regular *DEFINE_BOX.
Add option to reactivate particles, and add an optional buffer zone in *DEFINE_BOX_SPH.
*DEFINE_BOX_SPH gets a special treatment with FORM=13. Particles outside of the activation box get frozen in space, and deactivated particles can become active when entering the box. This allows calculating only particles surrounding the region of interest.
Reduce d3plot size for incompressible SPH by trimming down irrelevant variables.
Added SPH support for *MAT_193 / *MAT_DRUCKER_PRAGER.
Bug fix in psetid option of *DATABASE_BINARY_D3PLOT if psetid contains SPH parts.
Fix ASCII output of SPH neighbor count, which was always zero.
Bug fix in SPH neighbor search when variable smoothing length is employed. The neighbor list was created based on minimum smoothing length instead of maximum. As a result, some neighbors were potentially omitted.
Add option in *CONTROL_MPP_DECOMPOSITION_REDECOMPOSITION to remove dead SPH particles from the model at each redecomposition step.
Improve MPP load balancing when a *CONTROL_MPP_DECOMPOSITION_REDECOMPOSITION is present and a moving box defines the activation region of SPH.
Create MPP variants of 2D plane-strain and 2D axisymetric SPH formulations with thermal coupling.
Add support for *LOAD_THERMAL_LOAD_CURVE in SPH.
Fix bug for SPH thermal formulation in MPP. Artificial viscosity calculation was incorrect.
Fix bug in MPP with ERODING contact and SPH. In some MPP decompositions, some processors were ignoring contact between SPH and Lagrangian parts.
Restored TEROD and CEROD parameters for *MAT_NULL with SPH particles (these two parameters were not applied from R9).
Fix inexplicable penetration when using *CONTACT_AUTOMATIC_NODES_TO_SURFACE with SPH elements. This affects SMP only.
*CONTROL_EXPLICIT_THERMAL_SOLVER can use *INITIAL_TEMPERATURE to initialize the element temperatures (it averages the initial nodal temperatures at element centers).
*CONTROL_EXPLICIT_THERMAL_INITIAL with ID<0 allows initialization of temperature by element instead of element set (ID>0).
Turn off all implicit mechanics if a thermal-only solution.
*BOUNDARY_RADIATION_<option>_VF_READ requires a view factor file. An input trap was added if this view factor file is missing.
There was a limit on *BOUNDARY_TEMPERATURE_NODE and *INITIAL_TEMPERATURE_NODE keyword appearances. This limit was removed, and the speed of the keyword reader was improved.
Added new keyword *CONTROL_THERMAL_FORMING for easy setup of hot/warm forming simulations. This keyword sets default values for thermal control keywords so that there is no need to include *CONTROL_SOLUTION, *CONTROL_THERMAL_SOLVER and *CONTROL_THERMAL_TIMESTEP in the input deck unless fine tuning of simulation parameters is needed. This keyword can also be used to set up default thermal parameters for forming contact pairs.
Thermal contact for ‘edge’ contact of composite tshell elements now considers the composite stacking sequence by way of an internally constructed mesh of stacked tshell elements.
Recoded neighbors list to handle triangular mesh better.
Added support of GISSMO damage model for XFEM. Set FAILCR=0 in *SECTION_SHELL_XFEM to activate GISSMO model.
2D XFEM shell (ELFORM=52 in *SECTION_SHELL_XFEM) is a fully integrated form and so NIP=4 is now hardwired.
Second order stress update can now be specifed for 2D XFEM shell form 52 (OSU=1 in *CONTROL_ACCURACY).
LS-DYNA now returns an exit code of 1 to the system in case of non-normal termination. Previously, we always returned 0 (no error) no matter what, which could be misleading if a user’s job script made use of the exit code.
Suppress d3hsp output of any *PARAMETER that was encrypted in the input.
Fix old bug in *INTERFACE_LINKING that would cause incorrect behavior for displacements scaled via a *DEFINE_FUNCTION if (and only if) the function was defined in terms of 3 variables (spatial displacement dependence only).
Add keyword *DEFINE_DRIFT_REMOVE to restore periodicity to specified curve(s) that physically should exhibit periodicity. For example, accelerometer data collected as a car drives one circuit around a track should exhibit periodicity such that when integrated to get displacement, that displacement is zero. However, noise in the data leads to nonphysical drift. This keyword activates an algorithm that approximately restores periodicity.
New keyword *DEFINE_QUASAR_COUPLING to enable coupling of LS-DYNA and Cadlm’s QUASAR ROM (Reduced Order Model). Supports multiple ROMs attached to LS-DYNA FEM model.
Fixed outdated argument lists for user subroutines. Before this fix user-defined features using *MODULE may not work correctly.
*DEFINE_PRESSURE_TUBE now supports decomposition of automatically generated solid/shell tubes in MPP.
Added support for user element history variables in *USER_NONLOCAL_SEARCH.
Implement *DEFINE_DRIFT_REMOVE for MPP.
Fix empty *SET_SEGMENT error, KEY+140, when using *SET_SEGMENT_GENERAL with OPTION set to SET_SOLID / SET_SLDI0 / SET_SLDF# / SET_TSHELL / SET_TSHIO.
Fix seg fault when using *INTERFACE_LINKING_NODE_SET.
New functions AX2, AY2, and AZ2 for *DEFINE_CURVE_FUNCTION. The difference compared to AX, AY, and AZ is that if n2=0, then return component relative to axes fixed in n1.
New function DIST() in *DEFINE_CURVE_FUNCTION, which is used to calculate the distance traveled by a node
Add feature to *DEFINE_MATERIAL_HISTORIES, LABEL=’History’ whereby if the first attribute A1 is negative, its absolute value points to a curve. The first ordinate value of that curve defines an operation to be performed on a list of history variables. The subsequent ordinate values give the history variable numbers in the list. See the User’s Manual for details and an example.
Add keyword *DEFINE_ELEMENT_EROSION_(SHELL/TSHELL) to allow more flexible control of when to actually delete an element.
Add new option DTYPE=1 to *PERTURBATION_NODE to allow uniform distribution between SCL Ã [âAMPL, AMPL] for TYPE=8.
Add runtime output to “Open include file: …” instance.
Replace keyword *SET_SPRING with *SET_DISCRETE.
Changed the default of plabel to plabel=no for faster input processing. If the input contains non-numeric (character) ID(s), an error message will be issued, in which case the user would need to include “plabel=yes” on the execution line so that the non-numeric ID(s) could be properly read.
Fix bug in which message announcing loading of an include files appeared twice.
Fixed bug in madymo coupling in which the restart dump was called twice.
Improve check for empty or duplicate *SETs and issue appropriate warnings/errors.
Can now suppress almost all output by including “benchmark=y” on either the execution line or on the *KEYWORD line in the input deck. It will also remove part, node and element output in d3hsp.
Fixed bug in reading long format if *KEYWORD long=yes is used in include file.
A new flag TOL in *INCLUDE_UNITCELL is introduced for users to define the tolerance for identifying the pairs of nodes in the periodic positions.
Deliver model order reduction (MOR) *CONTROLLER_PLANT for the linear structural and piezo-electric system. The state space matrices are exported based on the modal truncation or Krylov subspace.