# LS-DYNA R10.0.0 (R10.118302; 2017/07) released

New version of LS-DYNA is released for all common platforms.

**Release notes for LS-DYNA R10.0.0Herein are summarized new features and enhancements in version 10.0.0. Some bug fixes are also described, some of which may also be included in R9 releases.**

** The items are arranged by category. Understand that in many cases, a particular item could fall under 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.

##### Airbag

- Enhance the robustness of *AIRBAG_INTERACTION to help avoid instability in MPP when the interaction involves more than two bags.
- *AIRBAG_PARTICLE:
- Adjust dm_out calculation of vent hole to avoid truncation error.
- Fix bug in chamber output when there are multiple airbags and multiple chambers not in sequential order.
- Bug fix for closed volume of airbag/chamber with intersecting tubes.
- Add new feature to allow user to define local coordinates of jetting of particles through internal vents.
- Support *SENSOR_CONTROL for CPM airbag.
- CPM is not supported for dynamic relaxation. Disable CPM airbag feature during DR and reactivate airbag following DR.
- Allow solid parts in definition of internal part set. The solid volume will be excluded from the airbag volume.
- Allow additional internal part set for shells. The shell part should form a closed volume and its volume will be excluded from the airbag volume.

.

##### ALE

- *LOAD_BLAST_SEGMENT: Automatically generate the ALE ambient elements attached to a segment or segment set.
- *BOUNDARY_AMBIENT_EOS: implement *DEFINE_CURVE_FUNCTION for the internal energy and relative volume curves.
- *CONTROL_ALE, *CONSTRAINED_LAGRANGE_IN_SOLID and *ALE_REFERENCE_SYSTEM:
- If NBKT<0 in *CONTROL_ALE, call *DEFINE_CURVE to load a curve defining the number of cycles between bucket sorting in function of time.
- If NBKT>0, the bucket sorting is activated if the mesh rotations and deformations are large.
- *ALE_FSI_TO_LOAD_NODE: Implement a mapping of the FSI accelerations (penalty forces/masses) computed by *CONSTRAINED_LAGRANGE_IN_SOLID (ctype=4) between different meshes.
- *DATABASE_FSI, *DATABASE_BINARY_FSIFOR and *DATABASE_BINARY_FSILNK: Add a parameter CID to output fsi forces in a local coordinate system.
- *DATABASE_ALE: Add VAR=15 to output the kinetic energy by elements and ALE groups.
- Structured ALE (S-ALE) solver:
- ALE models using rectilinear mesh can be directly converted to S-ALE models and run using S-ALE solver by assigning CPIDX=-1 in *ALE_STRUCTURED_MESH.
- S-ALE progressive mesh generation via RATIO in *ALE_STRUCTURED_MESH_CONTROL_POINTS.
- Recode ALE Donor Cell/Van Leer advection routines and restructure *CONSTRAINED_LAGRANGE_IN_SOLID communication algorithm. These give 30% improvement in run time.

.

##### BOUNDARY

- *BOUNDARY_PWP can now accept a *DEFINE_FUNCTION instead of a load curve. The input arguments are the same as for *LOAD_SEGMENT: (time, x, y, z, x0, y0, z0).
- Add option of "toffset" for *BOUNDARY_PRESCRIBED_ORIENTATION_RIGID to offset the curves by the birth time.
- MPP now supports MCOL coupling, *BOUNDARY_MCOL.
- Fix bug of there being fully constrained motion of a rigid part when prescribing more than one translational dof with *BOUNDARY_PRESCRIBED_MOTION_RIGID while con2=7 in *MAT_RIGID, i.e., all rotational dof are constrained.
- Instead of error terminating with warning message, STR+1371, when *BOUNDARY_PRESCRIBED_MOTION and *BOUNDARY_SPC is applied to same node and dof, issue warning message, KEY+1106, and release the conflicting SPC.
- Fix erroneous results if SET_BOX option is used for *BOUNDARY_PRESCRIBED_MOTION.
- Fix *BOUNDARY_PRESCRIBED_ACCELEROMETER_RIGID for MPP. It may error terminate or give wrong results if more than one of this keyword is used.
- Fix segmentation fault when using *BOUNDARY_PRESCRIBED_ORIENTATION with vad=2, i.e. cubic spline interpolation.
- Added instruction *BOUNDARY_ACOUSTIC_IMPEDANCE for explicit calculations that applies an impedance boundary condition to the boundary of *MAT_ACOUSTIC element faces. This is a generalization of the non-reflecting boundary conditon. Both *LOAD and *BOUNDARY_ACOUSTIC_IMPEDANCE may be used on the same faces, in which case the boundary acts like both and entrant and exit boundary.
- Fixed a problem with non-reflecting boundaries redefining the bulk modulus which caused contact to change behavior.
- Added support for acoustic materials ith non-reflective boundaries.
- Fix the single precision version so that *INCLUDE_UNITCELL now has no problem to identify pairs of nodes in periodic boundaries.
- When using *INCLUDE_UNITCELL to generate Periodic Boundary Constraints (PBC) for an existing mesh, a new include file with PBCs is generated instead of changing the original mesh input file. For example, if users include a file named "mesh.k" through *INCLUDE_UNITCELL (INPT=0), a new include file named "uc_mesh.k" is generated where all PBCs are defined automatically following the original model information in mesh.k.
- *INCLUDE_UNITCELL now supports long input format in defining the element IDs.
- Include SPC boundary conditions as part of H8TOH20 solid element conversion.
- Add a new option SET_LINE to *BOUNDARY_PRESCRIBED_MOTION: This option allows a node set to be generated including existing nodes and new nodes created from h-adaptive mesh refinement along the straight line connecting two specified nodes to be included in prescribed boundary conditions.

.

##### Blast

- *PARTICLE_BLAST and DES:
- Consider eroding of shell and solid in particle_blast.
- Support interface force file output for gas particle-structure coupling.
- Bug fix for wet DES coupled with beam.
- Support *SET_NODE_GENERAL PART with SPH or DES.
- MPP now uses async communication for DES coupling to improve general performance.
- Support for solid element whens modeling irregular shaped charge with HECTYPE=0/1 in *PARTICLE_BLAST.
- Output adaptive generated DES and NODE to a keyword file.
- Fix inadvertent detonataion of HE part when there are more than one HE part and even though the HE part is not defined with *INITIAL_DETONATION.
- Fixed explicit *BOUNDARY_USA_COUPLING to support *INITIAL_STRESS and *INITIAL_STRAIN_ usage, typically from a dynain file.
- Fixed explicit *BOUNDARY_USA_COUPLING to support *CONTROL_DYNAMIC_RELAXATION IDRFLF=5, so a static implicit calculation can be used to initialize/preload a model before conducting an explicit transient calcultion. If inertia relief is used during the static phase, then it must be disabled with *CONTROL_IMPLICIT_INERTIA_RELIEF for the explilcit phase.
- Support imperial unit system for *PARTICLE_BLAST. mass=lbf-s²/in , length=inch, time=second, force=lbf, pressure=psi.
- Add option to define detonation point using a node for *PARTICLE_BLAST.
- Add interface force file output for *PARTICLE_BLAST with keyword *DATABASE_BINARY_PBMFOR and command line option "pbm=". This output of forces for gas-particle-structure coupling.
- For *PARTICLE_BLAST, add built-in smoothing function for particle structure interaction.
- For *PARTICLE_BLAST, when coupling with DEM, the DEM nodes that are inside HE domain are automatically deactivated.
- Add support for solid elements when modeling irregular shaped charge with HECTYPE=0/1 for *PARTICLE_BLAST. The original approach only supports shell elements and the initial coordinates of HE particle are at shell surface. The model had to relax several hundred timestep to let particle fill in the interior space, which was not convenient. Using new approach, the initial positions of HE particles are randomly distributed inside the container by using solid element geometry. Both hex and Tet solids are supported.
- For particle blast method (PBM), consider reflecting plane as infinite.
- Change the name of keyword *DEFINE_PBLAST_GEOMETRY to *DEFINE_PBLAST_HEGEO.

.

##### CESE (Compressible Fluid Solver)

- CESE time steps:
- Modified the blast wave boundary condition treatment to make it more stable in blast wave calculations (with *LOAD_BLAST_ENHANCED).
- The flow field calculation will be skipped if the structural time-step is much smaller than the fluid time step, until both time-steps reach the same order. This will save CPU time in some fluid/structure interaction (FSI) problem calculations.
- In addition to depending upon the local CFL number, the fluid time step 'dt' calculation has been modified to also adjust dynamically to extreme flow conditions. This makes stiff flow problems more stable especially in 3D fluid problem calculations when the mesh quality is poor.

- Moving mesh solvers:
- Corrected several aspects of the implicit ball-vertex (BV) mesh motion solver for the following keywords:

*ICFD_CONTROL_MESH_MOV *CESE_CONTROL_MESH_MOV

*CESE_CONTROL_MESH_MOV $ ialg numiter reltol 1 500 1.0e-4

- CESE d3plot output:
- Added real 2D CESE output, and this is confirmed to work with LSPP4.3 and later versions. This also works for d3plot output with the 2D CESE axisymmetric solver.
- For all immersed-boundary CESE solvers, corrected the plotting of the Schlieren number and the chemical species mass fractions.
- The following new CESE input cards are related to surface d3plot output:

*CESE_SURFACE_MECHSSID_D3PLOT *CESE_SURFACE_MECHVARS_D3PLOT

- CESE immersed-boundary method (IBM) FSI solvers:
- *CESE_FSI_EXCLUDE is a new keyword for use with the CESE immersed boundary method FSI solvers. With it, unnecessary structural parts that are not actively participating in the FSI in the CESE IBM-FSI solver can now be excluded from the CESE FSI calculation. This is also supported for the case when some of the mechanics parts involve element erosion.

- CESE chemistry solvers:
- In R10, we also updated several things in the FSI solver with chemistry called FSIC. In chemical reacting flow, a delta time between iterations is extremely important for code stabilization and thus, to get reasonable results. To this end, we optimized such an iterative delta time, which is based on the CFL number. This optimization is based on the gradient of the local pressure, which we think will dominate control of the CFL number.
- Next, the total number of species are increased up to 60 species in chemical reacting flow, so that the reduced Ethylene(24~53 species) and Methane(20~60 species) combustion are possible with this version.
- We will update more practical examples about FSIC problems including precise experimental validations.
- Note that we can provide some related examples upon user request.
- Other corrections of note include the following:
- Brought in enthalpy-related corrections to the CESE chemistry solvers.
- Fixed the conjugate heat transfer boundary condition for the 2D and 3D CESE fixed mesh chemistry solvers.
- Corrected the initialization of fluid pressure for CESE IBM chemistry solvers.
- Enabled output of the timing information for the CESE chemistry solvers.
- Added restart capability to the CESE chemistry solvers.

.

##### CHEMISTRY

- New inflator models of Pyrotechnic and Hybrid type are updated. It is important to note that these are basically 0-dimensional models via the following two main keywords, *CHEMISTRY_CONTROL_INFLATOR, *CHEMISTRY_INFLATOR_PROPERTIES
- By using the *CHEMISTRY CONTROL_INFLATOR keyword, the user can select the type of of the solver, output mode, running time, delta t, and time interval for output of time history data.
- For example, if we have a keyword set up as,

*CHEMISTRY CONTROL_INFLATOR, $ isolver ioutput runtime delt p_time 1 0 0.1 1.0e-6 5.0e-4 with "isolver set to 1", the user can simulate a conventional Pyrotechnic inflator mode, while with "isolver" set to 2 or 3, Hybrid inflator simulation is possible.

- In addition, to continue an airbag simulation via an ALE or CPM method, the user can save the corresponding input data file by using "ioutput" option. For more details about airbag simulations using a saved data file, refer to the keyword manual.
- Also, note that the updated version has two options for the Hybrid models:

isolver = 2 => Hybrid model for the cold flow isolver = 3 => Hybrid model for the heated flow.

- In the *CHEMISTRY_INFLATOR_PROPERTIES keword, there are several cards to set up the required properties of an inflator model. The first two cards are for the propellant properties involved in inflator combustion. For example,

$card1: propellants $ comp_id p_dia p_height p_mass p_tmass 10 0.003 0.0013 2.0e-5 5.425e-3 $card2: control parameters $ t_flame pindex A0 trise rconst 2473. 0.4 4.45e-5 0.0 0.037 - In the first card, the user can specifiy the total amount of propellant particles and their shape. - Using the second card, the user can also specifiy the thermodynamics of the propellant and its burning rate. To support the options in card2, especially the second option, pindex, and the third, A0, we provide a standalone program upon request for the propellant equilibrium simulation. The remaining cards are for the combustion chamber, gas chamber, and airbag, respectively.

.

##### CONTACT

- *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_MORTAR_TIED_WELD for modeling welding has been added. Surfaces are tied based on meeting temperature and proximity criteria. Non-MORTAR version of this contact was introduced at R9.0.1.
- Fix issue setting contact thickness for rigid shells in ERODING contact.
- Add MPP support for *CONTACT_AUTOMATIC_GENERAL with adaptivity.
- Change "Interface Pressure" report in intfor file from abs(force/area) to -force/area, which gives the proper sign in case of a tied interface in tension.
- Rework input processing so that more than one *CONTACT_INTERIOR may be used, and there can be multiple part sets in each one.
- Minor change to how pressure is computed for triangles in the intfor database.
- Fix 2 bugs for contact involving high order shell elements:
- When high order shell elements are generated by SHL4_TO_SHL8.
- When using a large part id like 100000001.
- Implement a split-pinball based contact option for neighbor elements in segment-based contact. Invoke this option by setting |SFNBR|>=1000. The new algorithm is more compatible with DEPTH=45 so that there is no longer a need to split quads.
- The effect of shell reference system offsets on contact surface location is now properly considered when running MPP. The shell offset may be specified using NLOC in *SECTION_SHELL or in *PART_COMPOSITE, or by using the OFFSET option of *ELEMENT_SHELL. This effect on contact is only considered when CNTCO is set to 1 or 2 in *CONTROL_SHELL.
- Fix bug of zero forces in rcforc at time=0.0 for *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE after dynamic relaxation when consistency is on in SMP.
- Fix input error when using many *RIGIDWALL_GEOMETRIC_... with _DISPLAY option.
- Fix input error when *CONTACT_ENTITY is attached to a beam part, PID.
- Fix error termination due to negative volume, SOL+509, even when *CONTACT_ERODING... is set. This affects MPP only.
- Check whether a slave/master node belongs to a shell before updating the nodal thickness when ISTUPD>0.0 in *CONTROL_SHELL and SST/MST.ne.0.0 and in SSFT/SMFT=0.0 card 3 of *CONTACT_..... For SMP only.
- Fix penetrating nodes when using *CONTACT_ERODING_NODES_TO_SURFACE with SOFT=1 in *MAT_142
- Fix seg fault when using *CONTACT_AUTOMATIC_SINGLE_SURFACE_TIED with consistency mode, .i.e. ncpu<0, for SMP.
- Fix corrupted intfor when using parts/part sets in *CONTACT_AUTOMATIC_.... This affects SMP only.
- Implement incremental update of normal option, invoked by TIEDID=1, for *CONTACT_TIED_NODES_TO_SURFACE_CONSTRAINED_OFFSET for SMP.
- Fix unconstrained nodes when using *CONTACT_TIED_SURFACE_TO_SURFACE_CONSTRAINED_OFFSET resulting in warning message, SOL+540. This affects SMP only.
- Fix spurious repositioning of nodes when using *CONTACT_SURFACE_TO_SURFACE for SMP.
- Added support to segment based contact for the SRNDE parameter on optional card E. This option allows round edge extensions that do not extend beyond shell edges and also square edges. The latter overlaps with the SHLEDG parameter on card D.
- Fixed a potential memory error that could occur during segment based contact input.
- Fixed an error that could cause an MPP job to hang in phase 3. The error could occur when SOFT=2 contact is used with the periodic intersection check and process 0 does not participate in the contact.
- Modified SOFT=2 contact friction when used with *PART_CONTACT to define friction coefficients, and the two parts in contact have different coefficient values. With this change, the mu values used for contact will be the average of the values that are calculated for each part. Prior to this change, mu was calculated for only the part that is judged to be the master. This change makes the behavior more predictable and also makes it behave like the other contacts with SOFT=0 and SOFT=1.
- Added a warning message (STR+1392) for when trying to use the ORTHO_FRICTION contact option with SOFT=2 contact, because that option is not available. The contact type is switched to SOFT=1.
- Fixed serious error in MPP *CONTACT_2D_AUTOMATIC_SURFACE_TO_SURFACE when used with node sets to define the contact surfaces. The master side was likely to trigger an spurious error about missing nodes that terminated the job.
- Swiched segment based (SOFT=2) non-eroding contact to prevent it from adding any new segments when brick element faces are exposed when other elements are deleted. There were two problems. The first is that the interface force file could not support NFAIL=1 on *DATABASE_EXTENT_INTFOR because the intfor file does not expect new segments to replace the old, so it just undeletes the old segments instead of adding the new. The second problem is that when non-eroding contact is used, we only have enough memory in fixed length arrays for the segments that exist at t=0. When segments are deleted, I was using the space that they vacated to create new segments, but it was very likely that some segments could not be created when the number of open spaces was less than the number of new segments that are needed. In this case, some segments would not be created and there would be surfaces that could be penetrated with no resistance. This behavior is impossible to predict, so it seems better to prevent any new segments from being created unless eroding contact is used.
- Fixed rcforc output for MPP 2D automatic contact. The forces across processors were missed.
- Fixed a segment based contact error in checking airbag segments. This affects only airbags that are defined by control volumes, that is defined by *AIRBAG. The symptom was a segmentation fault.
- Fixed SMP eroding segment based (SOFT=2) contact which was not activating the negative volume checking of brick elements. The MPP contact and the other SMP contacts were doing this but not SMP SOFT=2.
- Fixed support for CNTCO on *CONTROL_SHELL by segment based (SOFT=2) contact. It was adjusting the contact surface only half of what it should have done.
- Fixed eroding segment based contact when used with the CNTCO>0 on *CONTROL_CONTACT. A segmentation fault was occurring.
- Modified MPP segment based (soft=2) contact to use R8 buffers to pass nodal coordinates. This should reduce MPP scatter when decomposition changes.
- Added support for using a box to limit the contact segments to those initially in the box when using eroding segment based contact. The box option has not been available for any eroding contact up until now. (SOFT=2 and SBOXID, MBOXID on *CONTACT_ERODING_...).
- Fixed force transducers with MPP segment based contact when segments are involved with multiple, 2-surface force transducers. The symptom was that some forces were missed for contact between segments on different partitions.
- Added support for *ELEMENT_SOURCE_SINK used with segment based contact. With this update, inactive elements are no longer checked for contact.
- Fixed an MPP problem in segment based contact that cased a divide by zero during the bucket sort. During an iteration of the bucket sort, all active segments were somehow in one plane which was far from the origin such that a dimension rounded to zero. The fix for this should effect only this rare case and have no affect on most models.
- Modified segment based (SOFT=2) contact to make SMP and hybrid faster, particularly for larger numbers of processors.
- Fixed thermal MPP segment based contact. The message passing of thermal energy due to friction was being skipped unless peak force data was written to the intfor file.
- Fixed likely memory errors in MPP problems with 2D automatic contact when friction is used.
- Support the VC parameter (coefficent for viscous friction) in the case of segment based contact, which has previously been unsupported. This option will work best with FNLSCL>0, DNLSCL=0 on optional card D. The card D option causes the contact force to be proportional to the overlap area which causes even pressure distribution.
- Enabled segment based contact (SMP and MPP) to work with type 24 (27-node) brick elements.
- Fixed MPP segment based contact for implicit solutions. During a line search, some data was not restored correctly when the solver goes back to the last converged state. This caused possible memory errors.
- Fixed friction for MPP segment based contact in the implicit solver. The sliding velocity was calculated incorrectly using the explicit time step rather than the implicit step.
- Fixed a bug in MPP *CONTACT_2D_AUTOMATIC..., where a flaw in code used during MPP initialization could cause segments to fail to detect penetration.
- Fixed the thick beam checking of *CONTACT_2D_AUTOMATIC_SINGLE_SURFACE in the MPP version. There was a memory error that could occur if thick beams were in the model.
- New values for user friction element history (*USER_INTERFACE_FRICTION): material directions, relative velocity components and yield stress.
- Add new user-defined interface for tiebreak contact invoked by *CONTACT_AUTOMATIC_ONE_WAY_SURFACE_TO_SURFACE_TIEBREAK_USER.
- MORTAR contact notes:
- PENMAX and SLDTHK has taken over the meanings of SST and TKSLS in R9 and earlier, although in a different way. Now PENMAX corresponds to the maximum penetration depth for solid elements (if nonzero, otherwise it is a characteristic length). SLDTHK is used to offset the contact surface from the physical surface of the solid element, instead of playing with SST and TKSLS, which was rather awkward. This update also saves the pain of having to treat shells and solids in separate interfaces if these features are wanted. This changes the behavior in some inputs that did have SST turned on for solids, but a necessary measure to make the contact decent for future versions.
- The characteristic length for solid elements has been revised to not result in too small sizes that would lead to high contact stiffnesses and less margin for maximum penetration.
- SFS on *CONTACT_..._MORTAR can be input as negative, then contact pressure is the -SFS load curve value vs penetration.
- Smooth roundoffs of sharp edges in MORTAR contact has been extended to high order segments, meaning that edge contact is valid even in this case.
- The MORTAR contact now honors the NLOC parameter for shells, see *SECTION_SHELL, adjusting the contact geometry accordingly. Note that CNTCO on *CONTROL_SHELL applies as if always active, meaning that if NLOC is on, then CNTCO will also be "on" for MORTAR contacts.
- Output of contact gaps to the intfor file is now supported for MORTAR contact, see *DATABASE_EXTENT_INTFOR.
- Transducer contacts, *CONTACT_..._FORCE_TRANSDUCER, are supported for MORTAR contact in SMP and MPP. A disclaimer is that the slave and master sets in the transducer have to be defined through parts or part sets. Warnings are issued if this is violated.
- Option 2 is now supported for tiebreak MORTAR contact, *CONTACT_..._MORTAR_TIEBREAK, but only for small sliding. Options 4 and 7 are supported in the MORTAR tiebreak contact for any type of sliding.
- For explicit analysis, the bucket sort frequency for MORTAR contact is 100, but can be changed through parameter BSORT on the *CONTACT_..._MORTAR card or NSBCS on *CONTROL_CONTACT. Note that the MPP bucket sort parameter does not apply. This assumes to improve the efficiency of MORTAR explicit contact significantly compared to R9 and earlier versions.
- Dynamic friction is supported in MORTAR contact for explicit and implicit dynamic analysis. See FD and DC on *CONTACT_... card.
- Wear calculations are supported for the MORTAR contact. See *CONTACT_ADD_WEAR.
- Triangular shell form 24 is supported with MORTAR forming contact and accounts for high order shape functions.
- Automatic MORTAR contact now supports contact with end faces of beam elements and not just the lateral surfaces.
- Mortar contact is available in 2D plane strain and axisymmetric simulations, but only for SMP implicit. See *CONTACT_2D_...MORTAR.

- Wear computed from *CONTACT_ADD_WEAR can optionally be output to dynain on optional card of *INTERFACE_SPRINGBACK_LSDYNA. This will generate *INITIAL_CONTACT_WEAR cards for subsequent wear simulations, and LS-DYNA will apply this wear and modify geometry accordingly. Restrictions as described in the manual apply.
- Improve SOFT=6 under *CONTACT_FORMING_ONE_WAY_SURFACE_TO_SURFACE to allow users to define part ID and a node set is automatically generated.

.

##### CONSTRAINED

- Add frictional energy calculation for constraint-based rigid walls.
- *CONSTRAINED_BEAM_IN_SOLID:
- Works with r-adaptivity now.
- Can now constrain beams in tshells as well as solids.Fix a bug for *CONSTRAINED_LOCAL that might mistakenly constrain z-translation when RC=0.
- Fix a bug for *CONSTRAINED_LOCAL that might mistakenly constrain z-translation when RC=0.
- The following options do not support MEMORY=auto properly. The MEMORY=auto option will be turned off in this section and report an error if additional memory allocation is needed.

*CONSTRAINED_LINEAR_OPTION *CONSTRAINED_MULTIPLE_GLOBAL

- Switched translational joints with stiffness to use double precision storage for the displacement value so that the calculated forces are more accurate. This prevents round-off error that can become significant.
- Fixed *CONSTRAINED TIED_NODES_FAILURE when used with MPP single surface segment based contact. Non-physical contact between segments that share tied constraints was being penalized leading to failure of the constraints.
- The SPR models (*CONSTRAINED_SPR2, *CONSTRAINED_INTERPOLATION_SPOTWELD) now support the SPOTDEL option of *CONTROL_CONTACT. That means if shell elements involved in the SPR domain fail, the SPR gets deactivated.

.

##### CONTROL

- Fix possible error termination with single precision MPP when PSFAIL.ne.0 in *CONTROL_SOLID and using solid formulation 10/13/44.
- Fix spurious deletion of elements when using TSMIN.ne.0.0 in *CONTROL_TERMINATION, erode=1 in *CONTROL_TIMESTEP and initialized implicitly in dynamic relaxation.
- Added keyword *CONTROL_ACOUSTIC to calculate the nodal motions of *MAT_ACOUSTIC nodes for use in d3plot and time history files. Without this option the *MAT_ACOUSTIC mesh propagates pressure but does not deform because it uses a linear Eulerian solution method. The structural response is unaffected by this caluclation; it is only for visualization and will roughly double the time spent computing acoustic element response.
- When IACC=1 on *CONTROL_ACCURACY and for shell type 16/-16 in nonlinear implicit, shell thickness change due to membrane strain when ISTUPD>0 in *CONTROL_SHELL is now included in the solution process and will render continuity in forces between implicit time steps. The output contact forces will reflect the equilibriated state rather than the state prior or after the thickness update.
- Fix bug when RBSMS in *CONTROL_RIGID, affecting mass scaled solutions, is used in conjunction with *ELEMENT_INERTIA and/or *PART_INERTIA, specifically with choices of IFLAG on *CONSTRAINED_RIGID_BODIES and *CONSTRAINED_EXTRA_NODES.
- Tshells added to the subcycling scheme (*CONTROL_SUBCYCLE).
- Tshells and spotweld beams are supported in selective mass scaling. See IMSCL in *CONTROL_TIMESTEP.
- Add a new keyword: *CONTROL_FORMING_SHELL_TO_TSHELL to convert shell elements to tshell elements.
- If a parent node has SPCs, the same SPC constraints will be applied to the corresponding tshell nodes.
- If adaptivity is invoked, *BOUNDARY_SPC_SET is automatically updated to include newly generated nodes.
- Allows the normal of the segment set to be changed.
- Can offset the generated tshells from the mid-surface of the parent shells.
- Automatically generate segment sets for the top and bottom surfaces, which can be used for contact.

.

##### Discrete Element Method (DEM)

- Implement generalized law of erosion for *DEFINE_DE_TO_SURFACE_COUPLING based on the following article in the journal "Wear":

Magnee, A., Generalized law of erosion: application to various alloys and intermetallics, Wear, Vol. 181, 500, 1995.

.

##### ELEMENT

- Fixed bug affecting output from beam elements ELFORM=2 when certain uncommon inputs are present. Forces and moments in the output files could be wrongly rotated about the beam axis. This affected the output files only, not the solution inside LS-DYNA. The error could occur under two circumstances:

- if IST on *SECTION_BEAM is non-zero, the output forces and moments are supposed to be rotated into the beam's principal axis system, but this rotation could be applied to the wrong beam elements; and
- when no ELFORM=2 elements have IST, but the model also contains beams with ELFORM=6 and RRCON=1 on the *SECTION_BEAM card, some of the ELFORM=2 elements can have their output forces and moments rotated by 1 radian.

- Fix a bug affecting 2d seatbelt with time-dependent slipring friction.
- Fix erroneous 1d seatbelt slipring message.
- Fix seatbelt consistency issue in SMP (ncpu<0).
- Add error message when 2d seatbelt part doesn't have shell formulation of 5 and *MAT_SEATBELT.
- Fix a bug for 2d seatbelt that could occur when a model has both 1d and 2d belts, and a 1d pretensioner of type 2, 3 or 9.
- Fix an MPP seatbelt bug that could occur when using a type 9 pretensioner.
- Allows shell formulation 9 to be used for 2d seatbelt. It was reset to formulation 5 by LS-DYNA, no matter what formulation was input. Now, only formulation 5 and 9 are accepted as input. Other formulations will incur error message.
- MPP now supports *ELEMENT_MASS_MATRIX_NODE_(SET).
- Added cohesive shell formulation -29. This formulation uses a cohesive midlayer where local direction q1 coincides with the average of the surrounding shell normals. This formulation is better suited for simulating normal shear.
- Cohesive shell formulation +/-29: Fixed absence of part mass in d3hsp.
- Make *TERMINATION_DELETED_SOLIDS work with hex spot weld failures.
- Fix incorrect load curve used if large value is used for FC<0 and/or FCS<0 in *ELEMENT_SEATBELT_SLIPRING.
- Fix incorrect velocity on accelerometer if

- velocity is prescribed on the rigid body that the accelerometer is attached to, and
- INTOPT=1 in *ELEMENT_SEATBELT_ACCELEROMETER, and
- *INITIAL_VELOCITY_GENERATION_START_TIME is used.

- Fix incorrect discrete spring behavior when used with adaptivity.
- Fix input error when using *DEFINE_ELEMENT_DEATH with BOXID>0 for MPP.
- Modify tolerances on error messages SOL+865 and SOL+866 to prevent unnecessary error terminations when translational or rotational mass of a discrete beam was close to zero.
- Made the solid element negative volume warning SOL+630 for penta formulatgion 15 consistent with the volume calculation in the element. With this change, elements are deleted rather than the job terminating with error SOL+509.
- Fixed the default hourglass control for shell form 16. It was defaulting to type 5 hourglass control rather than 8.
- Fixed default hourglass control when the *HOURGLASS control card is used but no HG type is specified. We were setting to type 1 instead of 2. Also, fixed the default HG types to match the user's manual for implicit and explicit.
- Fixed the fully integrated membrane element (shell ELFORM=9) when used with NFAIL4=1 on *CONTROL_SHELL and there are triangular elements in the mesh. Triangular elements were being deleted by the distorted element check.
- Fixed a divide by zero error that occurred with *SECTION_BEAM, ELFORM=6, SCOOR=12 or -12, and node 3 was omitted on *ELEMENT_BEAM, and nodes 1 and 2 are along the global y-direction or z-direction.
- Fixed laminated shell theory for type 6 and 7 shell elements when made active by LAMSHT=3 or 5 on *CONTROL_SHELL.
- Added an int.pt. variable for *PART_COMPOSITE_LONG and *PART_COMPOSITE_TSHELL_LONG called SHRFAC which is a scale factor for the out-of-plane shear stress that allows the user to choose the stress distribution through thickness. This was motivated by test data that shows that for large differences is layer shear stiffness, the parabolic assumpion is poor.
- Fixed implicit hourglass stiffness in viscoelastic materials when used with tshell forms 5 or 6. The stiffness was much too small.
- Modified tshell type 5 to use the tangent stiffness for calculating the Poisson's affects and hourglass control for *MAT_024. This makes the behavior softer during buckling which is much more realistic.
- Fixed a significant bug in segment based contact when SHLEDG=1 and SBOPT=3 or 5 and DEPTH<45, and shell segments in contact have different thicknesses. A penetration check was using incorrrect thicknesses causing contact to be detected too late, particularly for edge to surface contact.
- Improved the time step calculation for triangular tshell elements. The time step was too conservative for elements with significant thickness. This fix does not affect tshell type 7.
- Fixed all tshells to work with anisotropic thermal strains which can be defined by *MAT_ADD_THERMAL. Also, this now works by layer for layered composites.
- Enabled tshell form 5 to recalculate shear stiffness scale factors when plasticity material models 3, 18, 24, 123, or 165 are included in a composite section. Prior to this change the scale factors were based on elastic properties so after yielding, the stress distribution was not what was expected. This new capability supports the constant stress option, the parabolic option, and the SHRFAC option on *PART_COMPOSITE_TSHELL_LONG.
- Improved tshell 5 when used with mixed materials in the layers. A failure to use the correct Poisson's ratio was causing a less accurate stress tensor.
- Modified the time step calcualtion for tshell forms 3 and 5. A dependence on volumetric strain rate was removed in order to prevent oscillations in the time step which caused stability problems, particularly for tshell 5.
- Fixed tshell constant shear stress option (TSHEAR=1 on *SECTION_TSELL or *PART_COMPOSITE). It was producing a not very constant stress distribution.
- Fixed stress and strain output of tshells when the composite material flag CMPFLG is set on *DATABASE_EXTENT_BINARY. The transformation was backwards.
- Fixed mass of parts reported to d3hsp when *ELEMENT_SHELL_SOURCE_SINK is used. The mass of inactive elements was being included.
- Enabled *MAT_026 and *MAT_126 (HONEYCOMB) to be used with tshell forms 3, 5, and 7. It was initialized incorrectly causing a zero stress.
- Added a missing internal energy calculation for tshell form 6.
- Enabled tshell forms 1, 2, and 6 to work with material types 54, 55, and 56.
- Modified the z-strain distribution in tshell forms 5 and 6 when used in composites with mixed materials that are isotropic. The existing assumed strain scheme was doing a poor job of creating a constant z-stress through the thickness.
- Increased the explicit solution time step for thin shell composite elements. The existing method calculated a sound speed using the stiffness from the stiffest layer and dividing it by the average density of all layers. This could be overly conservative for composites with soft layers of low density. The new method uses the average stiffness divided by average density. This is still conservative, but less so.
- Corrected rotational inertia of thin shells when layers have mixed density and the outer layers are more dense than innner layers. The fix will mostly effect elements that are very thick relative to edge length.
- Added support for *ELEMENT_SHELL_SOURCE_SINK to type 2 shells with BWC=1 on *CONTROL_SHELL.
- Prevent inactive shell elements (from *ELEMENT_SHELL_SOURCE_SINK) from controlling the solution time step.
- Fixed *LOAD_STEADY_STATE_ROLLING when used with shell form 2 and Belytschko-Wong-Chang warping stiffness (BWC=1 *CONTROL_SHELL). The load was not being applied.
- Improved the brick element volume calculation that is used by the option erode elements (ERODE=1 on *CONTROL_TIMESTEP or PSFAIL.ne.0 on *CONTROL_SOLID). It was not consistent with the element calculation which caused an error termination.
- Fixed all tshell forms to work with anisotropic thermal strains which can be defined by *MAT_ADD_THERMAL. Also, this now works by layer for layered composites.
- Reworked shell output so that we can correctly output stress in triangular shells when triangle sorting is active, that is when ESORT=1 or 2 on *CONTROL_SHELL.
- *ELEMENT_T/SHELL_COMPOSITE(_LONG) and *PART_COMPOSITE_T/SHELL(_LONG):
- Permit the definition of zero thickness layers in the stacking sequence. This allows the number of integration points to remain constant even as the number of physical plies varies and eases post-processing since a particular integration point corresponds to a physical ply. Such a capability is important when plies are not continuous across a composite structure.
- To represent a missing ply, set THK to 0.0 for the corresponding integration point and additionally, either set MID=-1 or set PLYID to any nonzero value. Obviously, the PLYID option applies only to the keywords containing LONG.
- Implemented sum factorization for 27-node quadratic solid that may increase speed by a factor of 2 or 3.
- Support second order solid elements (formulations 23,24,25,26) for *SET_NODE_GENERAL.
- Invoke consistent mass matrix of 27-node hex element for implicit dynamics and eigenvalues.
- Reorder node numbering when assembling global stiffness matrix for 27-node hex. This fixes a bug in which it was reported than the implicit 27-node element didn't work
- Automatically transfer nodal boundary conditions for newly generated nodes if H8TOH27 option is used in *ELEMENT_SOLID.
- Modify initialization of material directions for solid elements. If there are only zeros for all the 6 values in *INITIAL_STRESS_SOLID, then the values from the other input (e.g. *ELEMENT_SOLID_ORTHO) are kept.
- Enable *PART_STACKED_ELEMENTS to pile up shell element layers. Before, it was necessary that solid element layers were placed between shell element layers. Now, shell element layers can follow each other directly. Contact definitions have to be done separately.
- Allow *PART_STACKED_ELEMENTS to be used in adaptive refinement simulations.
- Add alternative mass calculation for critical time step estimate of cohesive elements. This hopefully resolves rarely occuring instability issues. Option ICOH on *CONTROL_SOLID is used for that.
- Correct the strain calculation for tet formulation 13. This did not affect the stress response, only output of strains. Nodal averaging was not accounted for.
- User defined elements (ELFORM = 101 to 105 on *SECTION_SHELL/SOLID) can now be used together with *MAT_ADD_EROSION.
- Add option to define a pull-out force vs. time curve in *ELEMENT_BEAM_SOURCE by defining a negative variable FPULL. |FPULL| can refer to *DEFINE_CURVE or *DEFINE_CURVE_FUNCTION.
- Solid tet form 13 supported for all materials in implicit, including a presumable consistency improvement for the future.
- The Hughes-Liu beam is supported in *INTEGRATION_BEAM such each integration point may refer to a different part ID and thus have a different coef. of thermal expansion. See *MAT_ADD_THERMAL_EXPANSION.
- Shell types 2 and 16 that combines thermal expansion and thick thermal shells, see *MAT_ADD_THERMAL_EXPANSION and TSHELL on *CONTROL_SHELL, now correctly treat temperature gradient through the thickness to create bending moments. All shell types are to be supported in due time.
- *SECTION_BEAM_AISC now provides predefined length conversion factors for specific unit systems.
- 3D tet r-adaptivity now supports *DEFINE_BOX_ADAPTIVE.
- For every adaptive part, users can define multiple boxes where different BRMIN & BRMAX (corresponding to RMIN & RMAX in *CONTROL_REMESHING) can be specified for 3D tet remesher to adjust the mesh size.
- Current implementation does not support LOCAL option.

- Fix bug in 3D adaptivity so that users can now have both non-adaptive tshell parts and 3D adaptive parts in one analysis.
- Fix the bug in 3D adaptivity so that users can now have both dummy nodes and 3D adaptive parts in one analysis.

.

##### Electromagnetic Solver (EM)

- Randles Circuits for Battery Modeling:
- A Randles circuit is an equivalent electrical circuit that consists of an active electrolyte resistance r0 in series with the parallel combination of the capacitance c10 and an impedance r10. The idea of the distributed Randles model is to use a certain number of Randles circuits between corresponding nodes on the two current collectors of a battery unit cell. These Randles circuits model the electrochemistry that happens in the electrodes and separator between the current collectors. The EM solver can then solve for the EM fields in the current collectors, and the connections between them.
- Added analysis of distributed Randles circuits to MPP.
- Added d3plot output for distributed Randles circuits:

D3PL_RAND_r0_EM, D3PL_RAND_r10_EM, D3PL_RAND_c10_EM, D3PL_RAND_soc_EM, D3PL_RAND_i_EM, D3PL_RAND_u_EM, D3PL_RAND_v_EM, D3PL_RAND_vc_EM, D3PL_RAND_temperature_EM, D3PL_RAND_P_JHR_EM, D3PL_RAND_P_dudt_EM, D3PL_RAND_i_vector_EM This output can be visualized in LS-PrePost versions 4.3 and 4.5 on the separator part of the battery cell using Post/FriComp/Extend/EM node.

.

##### Forming Analysis

- Extend *INCLUDE_AUTO_OFFSET to solid and beam elements (draw beads).
- Add a new keyword for springback compensation: *INTERFACE_COMPENSATION_NEW_REFINE_RIGID to refine and break rigid tool mesh along the user supplied trim curves so compensated tool mesh follows exactly the blank mesh (file "disp.tmp"). This needs to be done only once in the beginning of the springback compensation (ITER0).
- *CONTROL_FORMING_ONESTEP:
- Change the default element formulation option for onestep method to QUAD2.
- Add a new option QUAD to allow quadrilateral elements to be considered.
- Limit the maximum thickening by using a new variable TSCLMAX for the sheet blank.
- Set the value of OPTION to a negative value to output the file 'onestepresult' in large format (E20.0).
- Calculate and add the damage factor and output to the 6th history variable in the output file "onestepresult". Add the variable for a curve ID to define the fracture strain vs. triaxility. Add another variable DMGEXP (damage parameter), as used in GISSMO model.
- Keep the original coordinates for the onestep output "onestepresults".

- Add a new option VECTOR to *CONTROL_FORMING_BESTFIT to output deviation vector (in the format of: NODEID, xdelta, ydelta, zdelta) for each node to its closest target element. The deviation vectors are output under the keyword *NODE_TO_TARGET_VECTOR.
- *CONTROL_FORMING_OUTPUT:
- Output will skip any negative abscissa (Y1) value.
- When CIDT<0, the positive value defines the time dependent load curve.

- Add a warning in springback compensation *INTERFACE_SPRINGBACK_COMPENSATION to identify which input file (typically the blank with adaptive mesh not output directly by LS-DYNA) has the wrong adaptive constraints.
- *INTERFACE_COMPENSATION_3D: turn off the output of nikin file.
- *ELEMENT_LANCING:
- Allow some unused lancing curves to be included in the input.
- When the gap between the two ends of a lancing curve is not zero, but small enough, then this curve is automatically closed.
- Allow several parts to be cut during lancing; the parts can be grouped in *SET_PART_LIST, and defined using a negative value IDPT.
- Specify the distance to bottom dead center as AT and ENDT when the new variable CIVD is defined.
- Set IREFINE=1 (default) in lancing, to refine blank mesh automatically along the lancing curves.
- Re-set the adaptive level to be 1 to prevent those elements along the lancing route to be further refined.
- When IREFINE=1, elements along the lancing curve will be refined to make sure that no adapted nodes exist in the neighborhood. This helps get improved lancing boundary.
- Change of tolerance for lancing to merge the small elements into bigger ones.

- Add a new keyword to perform trimming after lancing (shell elements only): *DEFINE_LANCE_SEED_POINT_COORDINATES. Maximum of two seed nodes can be defined.
- Extend *CONTROL_FORMING_TOLERANC to *MAT_036, *MAT_037, *MAT_125, and *MAT_226. When beta is less than -0.5, there is no necking and no calculation of FI. When beta is greater than 1.0, beta=1.0/beta. This keyword adds a smoothing method to calculate the strain ratios for a better formability index.
- Sandwiched parts (*CONTROL_ADAPTIVE, *DEFINE_CURVE_TRIM):
- Disable *CONTROL_ADAPTIVE_CURVEs for sandwich parts, since refinement along the curve is automatically done during trimming.
- Refine the elements along the trimming curve to make sure no slave nodes are be cut by trimming curves.
- Allow mesh adaptivity.
- Allow multi-layers of solids.
- Add a check to the variable IFSAND in *CONTROL_ADAPTIVE for sandwitch part to be refined to exclude solid elements.
- Solid element trimming (*DEFINE_CURVE_TRIM):
- Refine those elements along the trimming curve.
- Improve solid trimmig to allow the trimming of one panel into two panels with two seed nodes.
- Add a new keyword: *CONTROL_FORMING_REMOVE_ADAPTIVE_CONSTRAINTS to remove adaptive constraints on a formed, adapted blank, and replaced them with triangular elements.
- *DEFINE_CURVE_TRIM_NEW: Allow trimming of tshells.
- Add a new keyword: *INTERFACE_WELDLINE_DEVELOPMENT to obtain initial weld line from the final part and the final weld line position.
- When Ioption=-1, convert weld line from its initial position to the final part.
- Output the element nodes that intersect the weld line in the final part,and the output file is: affectednd_f.ibo
- Output the element nodes that intersect the weld line in the initial part, and the output file is: affectednd_i.ibo
- Add a new variable DT0 to *CONTROL_IMPLICIT_FORMING so there is no need to use *CONTROL_IMPLICIT_GENERAL to specify DT0.
- *INTERFACE_BLANKSIZE:
- Add a new feature DEVELOPMENT option. When ORIENT=2, then a reference mesh file for the formed part should be included. The calculated and compensated boundary will be based on the reference mesh.
- Add a new option SCALE_FACTOR that allows the target curve to be moved. This is useful when multiple target curves (e.g. holes) and formed curves are far away from each other.

.

##### FREQUENCY_DOMAIN

- Added new keyword *CONTROL_FREQUENCY_DOMAIN to define global control parameters for frequency domain analysis. Currently two parameters are defined:
- REFGEO: flag for reference geometry in acoustic eigenvalue analysis (either the original geometry at t=0, or the deformed geometry at the end of transient analysis).
- MPN: large mass added per node, to be used in large mass method for enforced motion.

- *FREQUENCY_DOMAIN_ACOUSTIC_BEM:
- Enabled using incident wave (*FREQUENCY_DOMAIN_ACOUSTIC_INCIDENT_WAVE) in Rayleigh method (METHOD=0).
- Enabled acoustic pressure fringe plot (*FREQUENCY_DOMAIN_ACOUSTIC_FRINGE_PLOT) in Rayleigh method (METHOD=0).
- Fixed bug in running acoustic analysis with multiple boundary conditions in MPP.
- Fixed running MATV (Modal Acoustic Transfer Vector) approach in MPP (*FREQUENCY_DOMAIN_ACOUSTIC_BEM_MATV).
- Added treatment for triangular elements used in Rayleigh method (METHOD=0).
- Added output of acoustic intensity to binary database D3ACS (defined by *DATABASE_FREQUENCY_BINARY_D3ACS).
- Fixed bug in acoustic pressure fringe plot for collocation BEM (METHOD=3) and dual BEM based on Burton-Miller formulation (METHOD=4).

- *FREQUENCY_DOMAIN_ACOUSTIC_FEM: Fixed bug in acoustic analysis by FEM, when dimensions of mass and k (stiffness) matrices are mismatched.
- *FREQUENCY_DOMAIN_FRF:
- Added new loading types:

*FREQUENCY_DOMAIN_ACOUSTIC_FRINGE_PLOT: Implemented acoustic fringe plot for MPP for the options PART, PART_SET and NODE_SET.

VAD1 = 5: enforced velocity by large mass method = 6: enforced acceleration by large mass method = 7: enforced displacement by large mass method = 8: torque = 9: base angular velocity =10: base angular acceleration =11: base angular displacement

- *FREQUENCY_DOMAIN_MODE: Added option _EXCLUDE to exclude some eigenmodes in modal superposition in frequency domain analysis.
- *FREQUENCY_DOMAIN_RANDOM_VIBRATION:
- Fixed bug in running random vibration with random pressure wave load (VAFLAG=2) in MPP.
- Improved random vibration analysis by allowing using complex variable cross PSD functions. Previously cross PSD was defined as real variables thus the phase difference was ignored.
- Added PSD and RMS computation for Von Mises stress in beam elements.

- *FREQUENCY_DOMAIN_RESPONSE_SPECTRUM:
- Added Von Mises stress output for beam elements in database D3SPCM.
- Corrected computation of response spectrum at an intermediate damping value by interpolating spectra at two adjacent damping values. Now the algorithm is based on ASCE 4-98 standard.

- *FREQUENCY_DOMAIN_SSD:
- Added new loading types:

VAD =5: enforced velocity by large mass method =6: enforced acceleration by large mass method =7: enforced displacement by large mass method =8: torque

.

##### Incompressible Fluid Solver (ICFD)

- New ICFD features and major modifications:
- Simple restart is now supported for ICFD.
- Added wave damping capabilities. See *ICFD_DEFINE_WAVE_DAMPING.
- Added steady state solver. See *ICFD_CONTROL_GENERAL and *ICFD_CONTROL_STEADY.
- Added steady state potential flow solver. See *ICFD_CONTROL_GENERAL.
- Weak thermal coupling for conjugate heat transfer is now possible in addition to the classic monolithic approach. See *ICFD_CONTROL_CONJ.
- Windkessel boundary conditions are now available for blood flow. See *ICFD_BOUNDARY_WINDKESSEL.
- It is now possible to output the heat transfer coefficient as a surface variable in LSPP or in ASCII format on segment sets for a subsequent solid-thermal only analysis. See *ICFD_DATABASE_HTC.
- Two way coupling is now possible with DEM particles. See *ICFD_CONTROL_DEM_COUPLING.
- Modifications introduced in the SUPG stabilization term used in thermal and conjugate heat transfer problems for improved accuracy and speed.

- Additions and modifications to existing ICFD keywords:
- *ICFD_BOUNDARY_FSWAVE: Added a boundary condition for wave generation of 2nd order stokes waves with free surfaces
- *ICFD_CONTROL_FSI: Added a flag which, when turned on will project the nodes of the CFD domain that are at the FSI interface onto the structural mesh. This is recommended for cases with rotation.
- *ICFD_CONTROL_MESH: Added a flag to allow the user control over whether there will be re-mesh or not. If there is no re-mesh then we can free space used to backup the mesh and lower memory consumption.
- *ICFD_CONTROL_MESH_MOVE: Added option to force the solver to turn off any mesh displacements. This can be useful in cases where the mesh is static to save a little bit of calculation time.
- *ICFD_CONTROL_OUTPUT:
- Added option to support output in Fieldview format, binary and ASCII.
- When output of the fluid volume mesh is requested, the mesh will be divided into ten distinct parts, grouping elements in ten deciles based on the mesh quality (Part 1 has the best quality elements, part 10 the worst).
- *ICFD_CONTROL_POROUS: Improvements for RTM problems.
- *ICFD_CONTROL_TIME:
- Added an option to define an initial timestep.
- Added an option to shut off the calculation of Navier Stokes after a certain time leaving only the heat equation. This can be useful to save calculation times in conjugate heat transfer cases where the fluid often reaches steady state before the thermal problem.
- *ICFD_DATABASE_DRAG:
- It is now possible to output the force on segment sets in a FSI run directly in LS-DYNA compatible format. This can be useful for a subsequent linear FSI analysis running only the solid mechanics part.
- Added flag to output drag as a surface variable in LSPP.
- *ICFD_DATABASE_FLUX: Added option to change output frequency
- *ICFD_DATABASE_NODOUT: The user node IDs are now required rather than the internal node IDs
- *ICFD_CONTROL_IMPOSED_MOVE: Added the option to choose between imposing the displacements or the velocity.
- *ICFD_CONTROL_TRANSIENT: Choose implicit time integration scheme for NS.
- *ICFD_CONTROL_DEM_COUPLING: Added a scale factor for the sphere radius in the computation of the DEM force.
- *ICFD_MODEL_POROUS: Added a scale factor option on the permeability for model 1 and 2. A *DEFINE_FUNCTION can also be used.
- *MESH_BL: Added option to generate boundary layer mesh using a growth factor.

- ICFD bug fixes and minor improvements:
- Fixed bug when multiple *DEFINE_FUNCTIONs were used in a ICFD problem. Only the last one was taken into account.
- LES turbulence model: fixed van Driest damping issue in the boundary layer. LES models can use wall functions.
- RANS turbulence models: Standard k-epsilon, realizable k-epsilon, Wilcox k-omega uses HRN laws of the wall by default while SST and Spalart Allmaras use LRN. Improvements on the convergence of all those models.
- The DEM particle volume is now taken into account in free surface problems.
- Average shear is now output as a surface variable in the d3plots.
- *ICFD_CONTROL_MONOLITHIC is obsolete (replaced by *ICFD_CONTROL_GENERAL).
- Added more output for the mesh generation indicating the stage of the meshing process and the amount of elements that are being generated as a multiple of 10000. Added progress % for the extrusion of the mesh during the BL mesh generation.
- Improvements on the element assemble speed in MPP.
- Fixed synchronization problem for the last timestep in an FSI problem.
- More options have been added to the timer output.
- Correction of the calculation of the flux in *ICFD_DATABASE_FLUX in free surface cases.
- Boundary layer mesh can go through free-surfaces or mesh size interfaces.
- The Center of Gravity of the fluid is output in the icfd_lsvol.dat ASCII file in free surface problems

.

##### Implicit (Mechanical) Solver

- Enhanced termination of MPP eigensolver when non eigenmodes are found.
- Implicit was enforcing birth and death times on *BOUNDARY_SPC during dynamic relaxation contrary to the User's Manual. These times are now ignored by implicit during dynamic relaxation.
- Corrected ouput of eigenvalues and frequencies to file eigout for the unsymmetric eigenvalue problem.
- Enhanced logic that determines when to write out the last state to d3plot forimplicit.
- Improved error message for reading d3eigv file for *PART_MODES for the case when the user inputs a d3eigv file from a different model than intended.
- Corrected the reporting of kinetic and internal energy in file glstat for implicit.
- Applied corrections to tied contact in implicit (MPP). This affects slave nodes coming from other processes.
- Corrected output to file d3iter (implicit nonlinear search vectors) for restart.
- Enhanced termination process when the implicit solver deterimined an early termination.
- When implicit springback was following an explicit transient step, the implicit keywords with the _SPR were not properly handled. This is now corrected.
- Added a warning about the combined use of *CONSTRAINED_RIGID_BODY_STOPPERS and the lagrange multiplier formulation for joints (*CONTROL_RIGID) for explicit. The warning recommends switching to the penalty joint formulation.
- Applied numerous bug fixes to the implicit solver associated with *CONSTRAINED_INTERPOLATION where there are lots of independent degrees-of-freedom.
- Corrected initialization of MPP tied contact with implicit mechanics when the implicit phase follows explicit dynamic relaxation.
- Fixed an implicit problem where a linear implicit analysis follows inertia relief computation.
- Added gathering of damping terms from discrete elements from implicit especially for FRF computations and matrix dumping.
- Fixed Implicit for the case of multi-step Linear (NSOLVR=1) with Intermittent Eigenvalue Computation.
- Corrected the output to d3iter when 10-noded tets are present.
- Keypoints specified in *CONTROL_IMPLICIT_AUTO are now enforced at the initial time step and on restart from explicit.
- Skip frequency damping during implicit static dynamic relaxation, i.e. IDRFLAG>5.
- *CONTROL_IMPLICIT_ROTATIONAL_DYNAMICS:
- The VID of the rotating axis can now be defined by both *DEFINE_VECTOR and *DEFINE_VECTOR_NODES. It enables the movement of the rotating axis. Previously, only *DEFINE_VECTOR could be used to define the VID.
- The rotational dynamics now work in MPP.

- Shell forms 23 and 24 (high order shells), 1D seatbelts, Hughes-Liu and spotweld beams (types 1 and 9) are now supported with the implicit accuracy option (IACC=1 in *CONTROL_ACCURACY) to render strong objectivity for large rigid body rotations. Also, shell type 16 is supported with implicit accuracy option, resulting in forms 16 and -16 giving the same solution.
- Translational and generalized stiffness joints are now strongly objective for implicit analysis. See *CONSTRAINED_JOINT_STIFFNESS....
- In implicit it may happen that the initial loads are zero, for instance in forming problems. In addition, the goal is to move a tool in contact with a workpiece, and the way line search and convergence works, it is hard to get things going. We now attempt to handle this situation by automatically associating an augmented load to the prescribed motion simply to get off the ground.
- New tolerances on maximum norms are introduced for convergence in implicit: ratio of max displacement/energy/residual, and absolute values of nodal and rigid body translation/rotational residual can be specified. See DNORM.LT.0 on *CONTROL_IMPLICIT_SOLUTION for defining an additional card for these parameters DMTOL, EMTOL and RMTOL. Furthermore, maximum absolute tolerances on individual nodal or rigid body parameters can be set on NTTOL, NRTOL, RTTOL and RRTOL on the same card.
- If ALPHA<0 on first *CONTROL_IMPLICIT_DYNAMICS card, the HHT implicit time integration scheme is activated.

.

##### INITIAL

- Fix *INITIAL_VELOCITY_GENERATION when used with *INCLUDE_TRANSFORM, which was broken due to misplaced conditionals in r100504.
- Fix 3 bugs for *INITIAL_VELOCITY_GENERATION involving omega>0 and icid>0
- When nx=-999. Now the directional cosine defined by node NY to node NZ will be the final direction to rotate about. In other words, the direction from node NY to node NZ will not be projected along icid any more.
- When nx != -999, (xc,yc,zc) should not be rotated along icid, since (xc,yc,zc) are global coordinates.
- When *INITIAL_VELOCITY_GENERATION is included by *INCLUDE_TRANSFORM, (xc,yc,zc) is transformed.
- Add the option of ramping time steps, ndtrrg, for *INITIAL_FOAM_REFERENCE_GEOMETRY. The solid elements with reference geometry and ndtrrg>0 will restore its reference geometry in ndtrrg time steps.
- Fix incorrect initial velocity when ICID.ne.0 in *INITIAL_VELOCITY_GENERATION, and rotational velocity, omega, is not zero and *PART_INERTIA is also present.
- Add variable IZSHEAR in *INITIAL_STRESS_SECTION to initialize shear stress.
- Fix incorrect initial velocity for *INITIAL_VELOCITY if IRIGID=-2 and ICID>0.
- Fix incorrect NPLANE and NTHICK for *INITIAL_STRESS_SHELL when writing dynain for shell type 9.
- Fix *INITIAL_STRAIN_SHELL output to dynain for shell types 12 to 15 in 2D analysis. Write out strain at only 1 intg point if INTSTRN=0 in *INTERFACE_SPRINGBACK_LSDYNA and all strains at all 4 intg points if INTSTRN=1 and nip=4 in *SECTION_SHELL.
- Skip transformation of the initial velocities if ICID>0 and *INCLUDE_TRANSFORM is used to transform the keyword input file with the *INITIAL_VELOCITY.... keyword. Also echo warning message, KEY+1109, that the transformation will be skipped since icid is specified.
- Fix incorrect transformation of *DEFINE_BOX which results in incorrect initial velocities if the box is used in *INITIAL_VELOCITY.
- Fixed *INITIAL_STRESS_DEPTH when used with 2D plane strain and axisymmetric elements. The prestress was being zeroed.
- Improved the precision of the initial deformation calculation for *INITIAL_FOAM_REFERENCE_GEOMETRY in the single precision version.
- Fixed stress initialization (*INITIAL_STRESS_SECTION) for type 13 tet elements. The pressure smoothing was causing incorrect pressure values in the elements adjacent to the prescribed elements.
- Add _SET option to *INITIAL_STRESS_SOLID for element sets.
- Fix bug in 3D adaptivity so that users can now define *INITIAL_TEMPERATURE for adaptive parts.

.

##### Isogeometric Elements

- The stability of the trimmed NURBS shell patches has been improved.
- Add *LOAD_NURBS_SHELL to apply traction type loading directly on the surface of NURBS shell.
- Users can use the PART option of *SET_SEGMENT_GENERAL to define segment set of a NURBS patch. The segment set will contain all segments of interpolated null shell elements.
- *ELEMENT_SOLID_NURBS_PATCH:
- Isogeometric solid analysis implemented for MPP.
- Isogeometric solid analysis implemented for SMP with multiple CPUs, including consistency (ncpu<0).
- Activate user-defined materials for isogeometric solid.
- *ELEMENT_SHELL_NURBS_PATCH:
- Isogeometric shell analysis now implemented for SMP with multiple CPUs, including consistency (ncpu<0).
- Add a power iteration method to get the maximum eigen-frequency for each isogeometric element. This will be used to set a reasonable time step for trimmed elements.
- *ELEMENT_SHELL_NURBS_PATCH: Changed the way of projecting the results from isogeometric (NURBS) elements to the interpolation elements. Now a background mesh, spanned over the locations of the integration points of the isogeometric (NURBS) elements serves as basis to interpolate results from the integration points to the centroid of the interpolation elements. This change may lead to slightly different post-processing results in the interpolation elements.
- Add support for trimmed NURBS to work in single precision. Anyway, it is still recommended to use double precision versions for trimmed NURBS patches.
- Add post-processing of strains and thickness for interpolation shells.

.

##### *LOAD

- Fixed bugs affecting discrete beam elements (ELFORM=6) when used with staged construction. Here, "dormant" refers to elements that have not yet become active as defined on *DEFINE_STAGED_CONSTRUCTION_PART.
- Dormant discrete beams could still control the timestep and attract mass-scaling, when they should not do so.
- Dormant discrete beams reaching a failure criterion defined on the *MAT card were deleted, when they should not be.
- The displacements output (see *DATABASE_DISBOUT) included displacements occurring while the elements were dormant. Now, the output displacements are reset to zero at the moment the element becomes active.
- Fixed bug in Staged Construction: if FACT on *CONTROL_STAGED_CONSTRUCTION had been left blank, and Dynamic Relaxation was active, an error termination occurred.
- Fixed bug: *LOAD_GRAVITY_PART (and also gravity loading applied by *CONTROL_STAGED_CONSTRUCTION_PART) was failing to account for non-structural mass when calculating gravity load: NSM on *SECTION_BEAM and MAREA on *SECTION_SHELL.
- Fixed bug in *LOAD_VOLUME_LOSS: inconsistent results when run in SMP parallel.
- Fix bugs affecting *LOAD_SEGMENT_FILE:
- Remove *LOAD_SEGMENT_FILE file size limit (It used to be 200M).
- Apply correct pressure on the shared boundary between processors.
- Fix GRAV=1 in *PART which was not were not working correctly with *LOAD_DENSITY_DEPTH. Make *LOAD_DENSITY_DEPTH work for Lagrangian 2D elements.
- Fix insufficient memory error,SOL+659, when using *LOAD_ERODING_PART_SET with MPP.
- Fix incorrect loading when using *LOAD_ERODING_PART_SET with BOXID defined.
- Added *LOAD_SUPERPLASTIC_FORMING for implicit analysis.
- *LOAD_SUPERPLASTIC_FORMING box option now works in MPP.

.

##### *MAT and *EOS

- *MAT_197 (*MAT_SEISMIC_ISOLATOR) could become unstable when the parameter DAMP was left at its default value. A workaround was to input DAMP as a small value such as 0.05. The timestep for *MAT_197 is now smaller than previously, irrespective of the DAMP setting, and the behaviour is now stable even if DAMP is left at the default.
- Fixed bug: Timestep calculation was wrong for *MAT_089 solid elements. Response could be unstable especially for higher values of Poisson's ratio, e.g. 0.4.
- Fixed bug: An error trap was wrongly preventing ELFORM=15 for *MAT_169 (*MAT_ARUP_ADHESIVE). Wedge elements with ELFORM=15 are now permitted.
- *MAT_197 (*MAT_CONCRETE_EC2):

Note that items (1) and (2) below can lead to different results compared to previous versions of LS-DYNA.

- The number of potential cracks in *MAT_197 shell elements has been increased from 2 to 4. *MAT_197 uses a fixed crack model: once the first crack forms, it remains at the same fixed angle relative to the element axes. Further cracks can then form only at pre-defined angles to the first crack. Previously, only one further crack could form, at 90 degrees to the first crack. Thus, if the loading direction subsequently changed so that the principal tension is at 45 degrees to the first crack, that stress could exceed the user-defined tensile strength by a considerable margin. Now, further cracks may form at 90, +45 and -45 degrees to the first crack. Although the maximum principal stress can still exceed the user-defined tensile strength, the "error" is much reduced. There is an option to revert to the 2-crack model as in R9 (to do this, add 100 to TYPEC).
- Add element erosion to *MAT_197. This change may lead to different results compared to previous versions, because erosion strain limits are now added by default. Elements are now deleted when crack-opening strain becomes very large, or the material is crushed beyond the spalling limit. Plastic strain in the rebar is considered too. Previously, these elements that have passed the point of being able to generate any stress to resist further deformation would remain in the calculation, and sometimes showed very large non-physical deformations and could even cause error terminations. Such elements would now be deleted automatically. Default values are present for the erosion strains but these can be overridden in the input data, see new input fields ERODET, ERODEC, ERODER.
- New history variables 10,11,12 (maximum value so far of through-thickness shear stress). This is useful for checking results because *MAT_197 cracks only in response to in-plane stress; before cracking occurs, the through-thickness shear capacity is unlimited. The data components are:

Ex History Variable 10 - maximum out of 11 and 12 Ex History Variable 11 - maximum absolute value of YZ shear stress Ex History Variable 12 - maximum absolute value of ZX shear stress These are in the element local axis system. Note that these variables are written only if TYPESC is zero or omitted. TYPESC is a pre-existing capability that requests a different type of shear check.

- Fixed bug. Elastic stiffness for *MAT_197 beams was not as described in the manual, and the axial response could sometimes become unstable. The bug did not affect shell elements, only beams.
- *MAT_197 can now handle models with temperatures defined in Kelvin (necessary if the model also has heat transfer by radiation). *MAT_197 has thermally-sensitive material properties hard-wired to assume temperatures in Centigrade. A new input TMPOFF in *MAT_197 offsets the model temperatures before calculating the material properties.
- When the input parameter AGGSZ is defined, the maximum shear stress that can be transferred across closed cracks is calculated from a formula that has tensile strength and compressive stress as inputs. In *MAT_197, the tensile strength of concrete is reduced when compressive damage has occurred (see description of UNLFAC). Up to now, compressive damage was therefore influencing the maximum shear across cracks. However, the Norwegian standard from which the shear forumla is taken treats the tensile strength as a constant. Therefore, for the purpose of calculating the maximum shear stress across closed cracks only, the compressive damage effect is now ignored.
- Added capability for water pressure in cracks, for offshore applications. The water pressure is calculated from the depth of the element below the water surface (calculated from the z-coordinate). The water pressure is applied as a compressive stress perpendicular to the plane of any crack in the element. See new input fields WRO_G and ZSURF.

- *MAT_119 (*MAT__GENERAL_NONLINEAR_6DOF_DISCRETE_BEAM): Fixed bug in UNLOAD option 2. The bug occurs if an unloading curve has been left zero (e.g. LCIDTUR) while the corresponding loading curve was non-zero (e.g. LCIDTR), and UNLOAD=2. Depending on the computer system, the symptoms could be harmless or the code could crash. Now, if the unloading curve is left blank, it is assumed to be the same as the loading curve i.e. load and unload up and down the same curve. That behaviour was already implemented for UNLOAD=1.

- Added Equation Of State 19 (*EOS_MURNAGHAN). Used extensively for fluid modeling in SPH through Weakly-Compressible formulation, in conjunction with SPH formulations 15 (fluid form) and 16 (normalized fluid form).
- *MAT_ADD_FATIGUE: Added a new form of Basquin equation to define material's SN curve: LCID=-3: S=a*N^b, where a and b are material constants.
- Add the option of A0REF for *MAT_FABRIC. That allows the option of using reference geometry to calculate A0 for the purpose of porosity leakage calculation.
- Add optional parameter DVMIN for *MAT_ADD_PORE_AIR to define the min volume ratio change to trigger pore air flow analysis.
- *DEFINE_HAZ_PROPERTIES: Distance of shell from the weld center is treated consistently under MPP and the shell material's yield stress is scaled properly.
- *MAT_168 and *MAT_279: Fixed support for element erosion.
- *MAT_092: Improved of implicit convergence for shells.
- *MAT_224: Fixed bug where wrong shear modulus was used in EOS.
- *MAT_270: Increased stability for thickness strain iterations for shells.
- *MAT_240: Added support for cohesive shell formulation +/-29.
- Scale load curve, LCSRS, of *MAT_ADD_EROSION when used with *INCLUDE_TRANSFORM.
- Fix incorrect results when using *MAT_TABULATED_JOHNSON_COOK/*MAT_224 with table LCKT defined and the first abscissa value, temperature, is negative.
- Fix spurious element deletion when using table for LCF in *MAT_TABULATED_JOHNSON_COOK/*MAT_224 and *MAT_TABULATED_JOHNSON_COOK_GYS/*MAT_224GYS.
- Error terminate with message, KEY+1142, if *MAT_ADD_EROSION is applied to resultant materials *MAT_028, *MAT_116,*MAT_117, *MAT_118, *MAT_130, *MAT_139, *MAT_166, *MAT_170 and *MAT_098(with 1 intg point).
- Increase robustness of *MAT_033/*MAT_BARLAT_ANISOTROPIC_PLASTICITY for solids.
- Fix input error when using *MAT_ELASTIC_WITH_VISCOSITY_CURVE/*MAT_060c when LCID=0.
- Fix seg fault when using shell type 15, axisymmeteric volume weighted, with *MAT_ADD_EROSION and also materials with equation-of-states.
- Store computed yield strength as history variable #6 for *MAT_255.
- Fix inconsistency for *MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY/*MAT_123 when ncpu<0.
- Include original volume output to dynain file for 2D analysis when materials with an equation-of-state are used. This is needed to compute the deformation gradient when initializing a run using the dynain file.
- Fix improper stress initialization using *INITIAL_STRESS_SHELL via dynain for *MAT_018/*MAT_POWER_LAW_PLASTICITY with VP=1.0.
- Make AOPT<0 work for *MAT_170/*MAT_RESULTANT_ANISOTROPIC, i.e. with material coordinate system using *DEFINE_COORDINATE_(OPTION).
- Fix incorrect operation of TDEL for *MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY/*MAT_124 and *MAT_PLASTICITY_WITH_DAMAGE/*MAT_081/*MAT_082.
- Fix incorrect damping when using *DAMPING_PART_STIFFNESS for *MAT_016/*MAT_PSEUDO_TENSOR and *EOS_TABULATED_COMPACTION.
- Fix incorrect computation of bulk modulus which caused complex sound speed error when using *EOS_TABULATED/*EOS_09 with tabulated input.
- Fix moving part with *MAT_220 during dynamic relaxation when velocities are initialized.
- Fix convergence issue for *MAT_065/*MAT_MODIFIED_ZERILLI_ARMSTRONG for shells when VP=1.
- Error terminate with message, KEY+1115, if _STOCHASTIC option is invoked for materials *MAT_010, *MAT_015, *MAT_024, *MAT_081, *MAT_098, or *MAT_123 but no *DEFINE_STOCHASTIC_VARIATION or *DEFINE_HAZ_PROPERTIES keyword is present in the input file.
- Fix spurious error termination when using *DEFINE_HAZ_PROPERTIES with adpativity.
- Fix incorrect results or seg fault for *MAT_FU_CHANG_FOAM/*MAT_083 if KCON > 0.0 and TBID.ne.0.
- If SIGY=0 and S=0 in *MAT_DAMAGE_2/*MAT_105, set S=EPS1/200, where EPS1 is the first point of yield stress input or the first ordinate point of the LCSS curve.
- Allow *MAT_ENHANCED_COMPOSITE_DAMAGE/*MAT_054 failure mechanism to work together with *MAT_ADD_EROSION for shells.
- Fix incorrect erosion behavior if *MAT_ADD_EROSION is used with failure criteria defined for *MAT_123/*MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY.
- Implement *MAT_FHWA_SOIL/*MAT_147 for 2D analysis, shell types 13, 14 and 15.
- Implement scaling of failure strain for *MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY_STOCHASTIC/*MAT_123_STOCHASTIC for shells.
- Fix incorrect behavior for *MAT_LINEAR_ELASTIC_DISCRETE_BEAM/*MAT_066 when using damping with implicit (static) to explicit switching.
- Fixed *MAT_FABRIC/*MAT_034 with the negative unloading curve option. When searching for the intersection point of the load and unload curves, and extrapolation of one of the curves was needed to find the intersection point, the extrapolated stress was calculated incorrectly causing unpredictable behavior.
- Fixed fabric material forms 0 and 1 when used with a reference geometry. There were two problems, both occuring when there are mixed quad and triangular elements in the same block. A flaw in the strain calculation was leading to possible NaN forces in the elements. When a reference geometry was not used, the forces from trinagular elements in mixed element blocks were 2 times too high.
- Added a new option for *MAT_SPOTWELD called FMODE. The FMODE option is available for DMGOPT=10, 11, and 12. When the failure function is reached, and when FMODE>0.0 and <1.0, the value of FMODE will determine if a weld will fail immediately, or will have damage initiated. The failure function may include axail, shear, bending and torsion terms. If the sum of ths squares of the shear and torsion terms divided by the sum of the square of all terms is greater than FMODE, then the weld will fail immediately. Otherwise, damage will be initiated.
- Enabled OPT=-1 on *MAT_SPOTWELD for brick elements which had not worked previously. Also, fixed TRUE_T when used with brick element forms 0, 1, and -1.
- Fixed spotwelds with DMGOPT=12 by removing warning STR+1327 which made it impossible to set a small value of RS without triggering this warning, or without setting EFAIL smaller. Setting EFAIL small however could lead to damage initiation by plastic strain when the user wanted only initation by the failure function.
- If DMGOPT=10, 11, or 12 and EFAIL=0, on *MAT_SPOTWELD, damage will now initiate only by the failure function. If EFAIL>0, then damage will initiate be either then failure function or when plastic strain exceeds EFAIL. Prior to this version, amage could initiate when plastic strain exceeds zero if the user set EFAIL=0. This behavior is still true for DMGOPT=0, 1, or 2, but no longer for DMGOPT=10, 11, or 12.
- Allow solid spot welds and solid spot weld assemblies to have up to 300 points in the running average that is used to smooth the failure function. In other words, up to NF=300 is possible.
- Fixed a problem with brick spot weld assemblies when OPT=0 failure is used without defining any weld resultant values. Welds were being immediately deleted.
- Added new PID option for *DEFINE_SPOTWELD_FAILURE (applies to *MAT_SPOTWELD, OPT=10). Changes the Card 3 input for static strength values to use part set ID's rather than material ID's.
- Modified shell *MAT_214/*MAT_DRY_FABRIC to calculate fiber strains based on the current distance between the points where the fibers intersect with the element edges. Previously, they were calculated from the rate-of-deformation, but this was not as accurate as the new total strain measure.
- Fixed unit scaling for GAMAB1 and GAMAB2 on *MAT_DRY_FABRIC. We were incorrectly transforming them as stress.
- Reworked the plastic stress update in *MAT_225/*MAT_VISCOPLASITC_MIXED_HARDENING to prevent a divide by zero.
- Enabled *MAT_ADD_EROSION to be used with beams that have user defined integration. Memory allocation was fixed to prevent memory errors.
- Fixed *MAT_106 when used with tshell form 5 or 6. The elastic contstants used in the assumed strain field were not reasonable.
- Fix issue that could have lead to problems using *MAT_054 (or *MAT_058 or *MAT_158) in combination with TFAIL/TSIZE.gt.0.0 and damping.
- *MAT_054 - *MAT_ENHANCED_COMPOSITE_DAMAGE: Add possibility to use failure criterion in *MAT_054 for solids in a transversal isotropic manner. It is assumed that the material 1-direction is the main axis and that the behavior in the 2-3 plane is isotropic. This feature is invoked by setting TI=1 in *MAT_054.
- *MAT_058 - *MAT_LAMINATED_COMPOSITE_FABRIC:
- Bugfix for shear stiffness behavior in *MAT_058 when using a table definition for GAB and only providing stress-strain-curves for positive shear.
- Bugfix for strain-rate dependent stiffness behavior in *MAT_058 when using a table definition for EA, EB or GAB under compressive loading.
- Add default values for strengths (XT,XC,YT,YC,SC) 1.e+16 for *MAT_058. If no values for the strengths were defined, unpredictable things could have happened.
- *MAT_138 - *MAT_COHESIVE_MIXED_MODE:
- Store total mixed-mode and normal separation (delta_II & delta_I) on history variables 1&2 for *MAT_COHESIVE_MIXED_MODE (*MAT_138). This is only for post-processing and should not lead to any changes in the results.
- *MAT_157 - *MAT_ANISOTROPIC_ELASTIC_PLASTIC:
- Add Tsai-Hill failure criterion (EXTRA=2).
- Allow strain-rate dependent strength values (XT,XC,YT,YC,ZT,ZC,SXY,SYZ,SZX) using *DEFINE_CURVE. This is available for Tsai-Wu (EXTRA=1) and Tsai-Hill.
- Fixed bug in using *MAT_157 with IHIS.gt.0 for shells. Thickness strain update d3 was not correct and plasticity algorithm may have failed.
- Add additional option to IHIS in *MAT_157 for SHELLs.
- Now also the strength values (XT,XC,YT,YC,SXY) may be initialized via *INITIAL_STRESS_SHELL. See variable IHIS and remarks in the User's Manual for details of initializing various blocks of material parameters.
- *MAT_215 - *MAT_4A_MICROMEC: Add new material *MAT_215 that is a micromechanical material model that distinguishes between a fiber/inclusion and a matrix material. The material is intended for anisotropic composite materials, especially for short (SFRT) and long fiber thermoplastics (LFRT). This model is available for shells, tshells and solids.
- *MAT_225 - *MAT_VISCOPLASTIC_MIXED_HARDENING: Fixed bug in *MAT_225 (*MAT_VISCOPLASTIC_MIXED_HARDENING) when using a table for LCSS together with kinematic hardening.
- *MAT_261 - *MAT_LAMINATED_FRACTURE_DAIMLER_PINHO / *MAT_262 - *MAT_LAMINATED_FRACTURE_DAIMLER_CAMANHO:
- Allow table input for fracture toughness values for mats *MAT_261/*MAT_262. Table represents fracture toughness vs. element length vs. strain rate (shells, tshells, solids)
- Fixed bug in mats *MAT_261/*MAT_262 when using *DAMPING_PART_STIFFNESS together with RYLEN=2 in *CONTROL_ENERGY.
- Correct shear failure behavior in *MAT_262. This will most probably have no effect to any real application, but could be seen in very special 1-element tests.
- Changed storage of history variables for *MAT_249 (*MAT_REINFORCED_THERMOPLASTIC). A new variable POSTV controls which variables are written and at what history variable location in d3plot.
- *MAT_254 (*MAT_GENERALIZED_PHASE_CHANGE) can now be used with shell elements and thermal thick shells.
- Added flag 'EZDEF' to *MAT_249_UDFIBER. In this case the last row of the deformation gradient is replaced by 0-0-1.
- Add opt. damage limitation curve/table LCDLIM for *MAT_ADD_GENERALIZED_DAMAGE.
- Add pre-defined damage tensors option PDDT to *MAT_ADD_GENERALIZED_DAMAGE.
- *MAT_ADD_GENERALIZED_DAMAGE now works for solid elements (only shells in R9).
- Add optional failure criterion FFCAP to *MAT_100 with OPT = -1 or 0.
- Enable *MAT_ADD_COHESIVE to be used in implicit analysis.
- Add alternative version of *MAT_280 invoked by new flag on 1st card. It is a physically based damage model with 4 new parameters.
- Enable *DEFINE_CONNECTION_PROPERTIES' option PROPRUL>=2 to be used with spotweld clusters, i.e. not only 1 hex element but several (via *DEFINE_HEX_SPOTWELD_ASSEMBLY or RPBHX>1 on *CONTROL_SPOTWELD_BEAM).
- Enable *MAT_ADD_EROSION to be safely used with material models that have more than 119 history variables, for now the new limit is 169 (e.g. necessary for *MAT_157 with IHIS=7).
- Add Tsai-Wu failure criterion to *MAT_157 for solid and shell elements invoked by EXTRA=1 on card 6 and corresponding parameters on cards 8 and 9.
- Add viscoelastic option to *MAT_187 (SAMP-1). Rate dependent Young's modulus and associated settings can be defined on new optional card 5.
- Add new option IRNG for *DEFINE_STOCHASTIC_VARIATION to govern random number generation (deterministic or true random).
- Add option to define element size dependent parameters EN and SN for *MAT_120 and *MAT_120_JC by setting them to negative values (curves).
- Minor improvements for *MAT_252: Optional output of damage initiation information and more post-processing history variables.
- If the first abscissa value of*MAT_224's failure strain curve LCG is negative, it is assumed that all abscissa values are natural logarithms of a strain rate.
- Put *MAT_100_DA's "failure function" value to history variable 18.
- Add optional in-plane failure strain to *MAT_169 (*MAT_ARUP_ADHESIVE): new input parameter FSIP.
- *MAT_USER_DEFINED_MATERIAL_MODELS now provides a few more variables for cohesive elements, i.e. additional arguments in subroutines umatXXc: temperature, element size, implicit rejection flag, integration point identifier, and total number of integration points.
- A modified version of the 3-parameter Barlat model (*MAT_036) is introduced as *MAT_EXTENDED_3-PARAMETER_BARLAT. In this model, hardening in 00, 45, 90, biaxial and shear can be specified as load curves. Furthermore, r-values in 00, 45, 90, biaxial and shear can be specified in terms of load curves vs plastic strain or constants. This is an extension of hardening law 7 of the original 3-parameter Barlat model.
- Improve implicit version of *MAT_098/*MAT_SIMPLIFIED_JOHNSON_COOK.
- *MAT_181/*MAT_SIMPLIFIED_RUBBER/FOAM is now supported for 2D implicit simulations.
- Fixed issue in which *MAT_WINFRITH_CONCRETE wrote d3crack data too frequently.
- *EOS_JWL now has an AFTERBURN option. This adds afterburn energy to the EOS, where the energy can be added at a constant or linear rate, or can be added according to Miller's extension.
- *MAT_084 (*MAT_WINFRITH_CONCRETE) with predefined units (CONM<0) is now transformed correctly with *INCLUDE_TRANSFORM.
- User-defined materials for Hughes-Liu beams can now be used with implicit analysis by defining the appropriate tangent modulus in the supplied routine urtanb.
- User-defined cohesive materials can now be used with implicit analysis by defining the appropriate tangent stiffness.
- *MODULE for user-defined materials and other user-defined capabilities:
- A new command line option "module=filename" is added to load one module file without changing the input deck. It provides back compatibility to input deck without the MODULE keywords.
- The system paths defined in LD_LIBRARY_PATH are also included for searching module files for those filenames start with "+".
- Add shell implementation to *MAT_277 (*MAT_ADHESIVE_CURING_VISCOELASTIC).
- Add *MAT_278 for carbon fiber prepreg compression forming simulation. This material model is available for both solid and shell formulations.
- Add *MAT_293 non-orthogonal material model for carbon fiber prepreg forming simulation. This material model is only available for shell formulations.
- *MAT_260A:
- Extend *MAT_260A to include solid elements.
- Add a new option XUE for Xue's fracture criteria/theory for *MAT_260A (solid elements only).
- *MAT_260B:
- Set default values for P's and G's in *MAT_260B.
- Add a length scale to the fracture limit. The fracture limit strongly depends on the length scale in the measurement.
- Add a new fracture criterion to *MAT_260B (Xue and Wierzbicki, Int. J. solids and Structures 46 (2009) 1423-1435). When the option XUE is activated, an additional card is needed, for example:

$ ef0 plim q gama m 0.70 925.7 0.970 0.296 2.04

- *MAT_037:
- Improve *MAT_037 with negative R value in implicit calculation.The modification will allow the implicit method stress calculation to be more accurate.
- Add a new option NLP2 to calculate formability index in *MAT_037. The previous method (option NLP_FAILURE) was based on the effective strain method, which assumes that necking happens at one instant. In fact, it might happen over a longer process. The new method calcuates the damage accumulation.

- Add *MAT_165B (*MAT_PLASTIC_NONLINEAR_KINEMATIC_B) for shells and solids.

.

##### MPP

- Fix the report of decomp balance (shown as "Normalized element costs assigned during decomposition" in the d3hsp file), which was broken in r109760
- MPP decomposition has not been properly balanced since r112652 due to a bug in that revision
- Fix MPP SYNC error due to inconsistent summation in *CONTACT_SLIDING_ONLY_PENALTY.
- Allow real values as the scale multipliers for "memory=" on the command line. For example, "memory=2.5G memory2=1.1G" and the like.
- MPP: fix support for nlq setting in *CONTROL_SOLUTION which was not being honored on processors other than 0.
- Significant improvements in MPP groupable routines for FORMING contact.
- MPP: increase contact release distance for SINGLE_SURFACE contacts in the case of a node coming into contact with a solid element. The previous interpretation was releasing when the contact penetration was 0.5*solid thickness, but now when the node passes below the solid surface by 0.5*solid thickness (which is different by the half thickness of the slave material, in the case of a shell slave node).
- MPP: fix for viscous damping in automatic tiebreak contact.
- Implement new bucket sort based extent testing for MPP single surface contact.
- Added MPP support for *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_LUBRICATION.
- Fixed *CONTROL_MPP_PFILE so that it honors ID offsets from *INCLUDE_TRANSFORM for parts, part sets, and contact IDs referenced in "decomp { region {" specifications.
- Furthermore, such a region can contain a "local" designation, in which case the decomposition of that region will be done in the coordinate system local to the include file, not the global system. For example:
- *CONTROL_MPP_PFILE

decomp { region { partset 12 local c2r 30 0 -30 0 1 0 1 0 0 } }

*CONTROL_MPP_DECOMPOSITION_PARTS_DISTRIBUTE_LOCAL *CONTROL_MPP_DECOMPOSITION_PARTSET_DISTRIBUTE_LOCAL *CONTROL_MPP_DECOMPOSITION_ARRANGE_PARTS_LOCAL *CONTROL_MPP_DECOMPOSITION_CONTACT_DISTRIBUTE_LOCAL

- MPP job performance profiles are output to both .csv and .xy files.

.

##### Output

- Fix for writing d3plot file when individual output states exceed 8GB in single precision
- Added new option *INTERFACE_SPRINGBACK_EXCLUDE to exclude selected portions from the generated dynain file.
- Add a new option to *INTERFACE_COMPONENT_FILE to output only 3 degrees of freedon to the file even if the current model has 6.
- Fix missing plastic strain tensors in d3plot when STRFLG in *DATABASE_EXTENT_BINARY is set and INTSTRN=1 in *INTERFACE_SPRINGBACK.
- Fix no output to bndout when run with q=remap even though the keyword *DATABASE_BNDOUT was present in the remap run but was not present in the initial run.
- Fix d3plot output frequency which was different from the dt specified in *DATABASE_BINARY_D3PLOT when *CONTACT_AUTO_MOVE is used.
- Fix stress output to elout for solid elements which was in the global coordinates instead of local coordinates when CMPFLG=1 in *DATABASE_EXTENT_BINARY and OPTION1>0 in *DATABASE_ELOUT.
- Fix incorrect mass properties for solids in ssstat file when using *DATABASE_SSSTAT_MASS_PROPERTY.
- Fix seg fault during writing of dynain file if INSTRN=1 in *INTERFACE_SPRINGBACK and STRFLG.ne.0 in *DATABASE_EXTENT_BINARY and the *DATABASE_EXTENT_BINARY comes after *INTERFACE_SPRINGBACK.
- If HYDRO is nonzero in *DATABASE_EXTENT_BINARY, LS-PrePost will now combine the solid and shell internal energy densities when fringing 'Internal Energy Density' in the Misc menu.
- By putting SIGFLG/EPSFLG=3 in *DATABASE_EXTENT_BINARY, the stresses and plastic trains are excluded not only for shell elements but also for solids. This applies to d3plot and d3eigv.
- Added new file option *DATABASE_BINARY_INTFOR_FILE to define interface file name.
- Fixed legend in bndout in the case of multiple *BOUNDARY_PRESCRIBED_MOTION_SET_ID.
- Fix corrupt d3part data caused by DECOMP=4 in *DATABASE_EXTENT_BINARY.
- Fixed the legend of ssstat in binout.
- Added *DATABASE_EXTENT_SSSTAT_ID. The subsystem id will be included in the ASCII ssstat file.
- Fixed bug in stbout (seatbelt output) if NEWLEG=0 in *CONTROL_OUTPUT.
- Fixed bug in which DECOMP=2 corrupted d3part.
- Fixed d3plot bug if dynamic relaxation was activated in the input deck.
- Added another digit for coordinates in *NODE in dynain, e.g., what was written as 0.999266236E+00 is now written as 9.992662368E+00.
- Added *DATABASE_EXTENT_BINARY_COMP for alternative (simpler) control of output to d3plot and d3eigv.

Output control flags: 0-no 1-yes IGLB : Global data IXYZ : Current coordinate IVEL : Velocity IACC : Acceleration ISTRS: 6 stress data + plastic strain ISTRA: 6 strain data ISED : Strain energy density

- Bugfix: *DATABASE_TRACER without the optional NID parameter was read incorrectly when used with *INCLUDE_TRANSFORM, but is now fixed
- Fixed incomplete output from Windows version of LS-DYNA. This affected demtrh (*DATABASE_TRACER_DE) and curvout (*DATABASE_CURVOUT).

.

##### Restarts

- Enable definition of sensors in full restarts.
- For a small restart in MPP, the value of "memory=" (M1) needed for each processor is stored in the dump files. This is the minimum requirement to read back the model info. If the value of "memory2=" (M2) is specified on the command line, the code will take the maxiimum of M1 and M2.
- Fix input error during structured input when using *INITIAL_VELOCITY_GENERATION and *CHANGE_VELOCITY_GENERATION together in a full deck restart.
- Fix incorrect full deck restart analysis if initial run was implicit and the full deck restart run is explicit. This affects MPP only.
- Fix insufficient tying of nodes when doing full deck restart and the contact is newly added to the restart involving newly added parts. This applies to SMP contact only.
- Fix incorrect velocity initialization for SMP full deck restart when using *INITIAL_VELOCITY_GENERATION and *INITIAL_VELOCITY_GENERATION_START_TIME.
- Fix incorrect initialization of velocities for SMP full deck restart when using *CHANGE_VELOCITY_OPTION & *INITIAL_VELOCITY_OPTION. Velocities of existing parts defined by *STRESS_INITIALIZATION should not be zeroed.
- Fix *CHANGE_CURVE_DEFINITION for curve specifying d3plot output.
- Fixed bug in full deck restart if the new mesh has different part numbers.

.

##### *SENSOR

- Fix a bug regarding *SENSOR_JOINT_FORCE for *CONSTRAINED_JOINT_STIFFNESS, that was triggered when the force refers to a local coordinate system.
- Add the option of "ELESET" to *SENSOR_CONTROL to erode elements.
- Add the option of NFAILE to *SENSOR_DEFINE_MISC to track number of eroded elements.
- Fix a bug that was triggered when using a sensor to control spotwelds. The bug was triggered when the spotweld-connected nodal pairs happen to belong to more than 1 core (MPP only).
- Add FAIL option to *SENSOR_DEFINE_ELEMENT to track the failure of element(s).
- Fix a bug related to *SENSOR_DEFINE_FUNCTION when there are more than 10 sensor definitions.
- Effect of TIMEOFF in *SENSOR_CONTROL is implemented for TYPE=PRESC-ORI.
- *SENSOR_CONTROL can be used to control *BOUNDARY_PRESCRIBED_ORIENTATION_RIGID.
- Add optional filter id to SENSORD of *DEFINE_CURVE_FUNCTION.
- Enable *CONSTRAINED_JOINT_..._LOCAL to be monitored by *SENSOR_DEFINE_FORCE.
- Allow moments in SPCFORC and BNDOUT to be tracked by *SENSOR_DEFINE_FORCE.
- Fix *SENSOR_CONTROL using TYPE="PRESC-MOT" which was not switching at all.

.

##### SPG (Smooth Particle Galerkin)

- MPP is ready in 3D SPG fluid particle stabilization (ITB=1 & 2 in *SECTION_SOLID_SPG).
- Added one SPG control parameter (itb=2) for semi-brittle fracture analysis. In comparison to itb=0 or itb=1, itb=2 is more efficient in modeling the fragmentation and debris in semi-brittle fracture analysis such as impact and penetration in concrete materials.
- Fixed a bug related to E.O.S. in SPG.
- Removed some temporary memory allocations to improve efficiency.
- Changed the sequence of SPG initialization so that all state variables are properly initialized.
- Subroutines were developed for SPG failure analysis with thermal effects. Both explicit and implicit (diagonal scaled conjugate gradient iterative only) SPG thermal solvers are available in SMP version only. However, thermal effect is applied only on material properties, which means thermal induced deformation (i.e., thermal strain or thermal expansion) is not currently included.
- Modified *MAT_072R3 for SPG method in concrete applications.
- Fixed a bug for SPG method in using continuum damage mechanics. (IDAM=0).
- Added the 'fluid particle algorithm' (itb=1) to SPG method. This algorithm is implemented in R10.0 as an alternative to the (itb=0) option in previous version to enhance the numerical stability for SPG method. Users are recommended to use this new option for their ductile failure analysis.

.

##### SPH (Smooth Particle Hydrodynamics)

- Add ITHK flag in *CONTROL_SPH, card 3. If flag is set to 1, the volume of the SPH particles is used to estimate a node thickness to be employed by contacts.
- Affects *AUTOMATIC_NODES_TO_SURFACE and *CONTACT_2D_NODE_TO_SOLID.
- The thickness calculated by ITHK=1 is used only if SST or OFFD are set to zero in the contact cards definitions.
- Add SOFT=1 option to *CONTACT_2D_NODE_TO_SOLID. This should help obtain reasonable contact forces in axisymmetric simulations. Default penalty PEN is 0.1 when SOFT=1.
- Implemented non-reflecting boundary conditions for SPH using a new keyword *BOUNDARY_SPH_NON_REFLECTING.
- Bug fix for renormalized SPH formulations with symmetry planes. The renormalization was slightly incorrect in the vicinity of symmetry planes.
- Density smoothing in SPH formulations 15 and 16 is now material sensitive. The smoothing only occurs over neighbors of the same material.
- Resolved an MPP bug in SPH total Lagrangian formulations (FORM=7/8) which was causing strain concentrations at the interfaces between CPU zones.
- SPH total Lagrangian (FORM=7/8) in SMP was pretty much serial, hence much slower than forms 0 or 1. SPH with FORM 7 and 8 now scales properly.
- Added support for FORMs 0/1 in axisymmetric. Until now, renormalization was always active (equivalent to FORM=1) which can be problematic for very large deformations or material fragmentation.
- Improved tracer particles output for SPH: Use normalized kernel function for interpolation between particles.
- Implemented enhanced fluid flow formulations (FORMs 15/16) with pressure smoothing.
- Recode SPH neighborhood search algorithm to reduce the memory requirement and produce consistent results from MPP and HYBRID code.
- *DEFINE_ADAPTIVE_SOLID_TO_SPH now reports both active and inactive adaptive SPH particles in the fragment file sldsph_frag. This file gives a report of nodal mass, coordinates, velocities.
- MPP now supports:
- SPH type 3 inflow
- Multiple *BOUNDARY_SPH_FLOW
- Bulk viscosity option for SPH
- Sort SPH by part and then node ID to ensure consistent results while changing order of input files.
- *DEFINE_SPH_TO_SPH_COUPLING:
- Corrected the SPH sphere radius (half of the particles distance) for node to node contact detecting algorithm.
- Updated masses for SPH node to node coupling with damping contact force option.
- Added a new option (Soft=1) for SPH to SPH coupling: contact stiffness comes from particles masses and time step for softer contact.
- *DEFINE_ADAPTIVE_SOLID_TO_SPH:
- Updated temperature transfer (from solid elements to SPH particles) when converting solid elements into SPH particles with ICPL=1, IOPT=0.
- Bug fixed when part ID for newly generated SPH particles is smaller than the original SPH part ID.
- Introduced a new pure thermal coupling between SPH part and solid parts with ICPL=3 and IOPT=0 option (no structural coupling provided).
- Added a thermal coupling conductivity parameter CPCD. Applies to ICPL=3 option.
- Normalized the nodal temperatures for the corner SPH particles with ICPL=3 and IOPT=0 option (MPP only).
- Extended ICPL=3 and IOPT=0 option to Lagrangian formulation (form = 7,8).
- *BOUNDARY_SPH_SYMMETRY_PLANE: Added in an error message if TAIL and HEAD points are at the same location.
- *CONTACT_2D_NODE_TO_SOLID: Added a variable OFFD to specify contact offset.
- Added a new option IEROD=2 in *CONTROL_SPH in which SPH particles that satisfy a failure criterion are totally eactivated and removed from domain interpolation. his is in contrast to IEROD=1 option in which particles are partially deactivated and only stress states are set to zero.
- Added *MAT_SPH_VISCOUS (*MAT_SPH_01) for fluid-like material behavior with constant or variable viscosity. Includes a Cross viscosity model.
- Output strain rates for SPH particles to d3plot, d3thdt, and sphout file.
- Added support of *MAT_ADD_EROSION, including GISSMO and DIEM damage, for SPH particles.
- Echo failed SPH particles into d3hsp and messag file.
- *DEFINE_SPH_INJECTION:
- Changed the method of generating SPH particles. SPH particles will be generated based on the injection volume (injection area*injection velocity*dt)*density from the material model, resulting in more consistent particle masses and particle distribution.
- Offset injecting distance inside each cycle so that outlet distance will be consistent for different outlet SPH layers.
- Corrected mass output in d3hsp.

.

##### Thermal Solver

- Explicit Thermal Solver notes:
- *CONTROL_EXPLICIT_THERMAL_SOLVER: Implement an explicit thermal solver and adapt it to support multi-material ALE cases.
- *CONTROL_EXPLICIT_THERMAL_PROPERTIES: Enter thermal properties for the explicit thermal solver.
- *CONTROL_EXPLICIT_THERMAL_CONTACT: Implement a thermal contact for the explicit thermal solver.
- *CONTROL_EXPLICIT_THERMAL_ALE_COUPLING: Implement a thermal coupling between ALE and Lagrangian structures for use by the explicit thermal solver.
- *CONSTRAINED_LAGRANGE_IN_SOLID_EDGE: For the explicit thermal ALE coupling, allow the heat transfer through the shell edges if _EDGE is added to *CONSTRAINED_LAGRANGE_IN_SOLID.
- *CONSTRAINED_LAGRANGE_IN_SOLID: For the explicit thermal solver, add work due to friction to the enthalpies of ALE and structure elements coupled with *CONSTRAINED_LAGRANGE_IN_SOLID (CTYPE=4).
- *CONTROL_EXPLICIT_THERMAL_INITIAL: Initialize the temperatures for the explicit thermal solver.
- *CONTROL_EXPLICIT_THERMAL_BOUNDARY: Control boundary temperatures for the explicit thermal solver.
- *CONTROL_EXPLICIT_THERMAL_OUTPUT: Output the temperatures at element centers for the explicit thermal solver.
- *DATABASE_PROFILE: For the explicit thermal solver, output temperature profiles.
- Modify the thermal solver routines so they return instead of terminating, so that *CASE works properly.
- *MAT_THERMAL_USER_DEFINED: Fixed bug in element numbering for IHVE=1.
- Accept load curve input for dtmin, dtmax and dtemp in *CONTROL_THERMAL_TIMESTEP. As usual if a negative integer number is given its absolute value refers to the load curve id.
- The temperature results for the virtual nodes of thermal thick shells are now accounted for in *LOAD_THERMAL_D3PLOT. For the mechanics-only simulation thermal thick shells have to be activated.
- New contact type for thermal solver that models heat transfer from and to a shell edge onto a surface (*CONTACT_..._THERMAL with ALGO>1):
- Shells have to be thermal thick shells.
- Shells are on the slave side.
- So far only implemented for SMP.
- Includes support for quads and triangles.
- New keyword *BOUNDARY_THERMAL_WELD_TRAJECTORY for welding of solid or shell structures.
- Keyword defines the movement of a heatsource on a nodal path (*SET_NODE).
- Orientation given either by vector or with a second node set.
- Works for coupled and thermal only analyses.
- Allows for thermal dumping.
- Different equivalent heat source descriptions available.
- Can also be applied to tshells and composite shells.
- Weld torch motion can be defined relative to the weld trajectory.
- Solid element formulation 18 now supports thermal analysis.
- Thermal solver now supports the H8TOH20 option of *ELEMENT_SOLID. This includes support of *INITIAL_TEMPERATURE condition for the extra 12 nodes generated by H8TOH20.
- Thermal solver now supports the H8TOH27 option of *ELEMENT_SOLID.

.

##### Miscellaneous

- *INITIAL_LAG_MAPPING: Implement a 3D to 3D lagrangian mapping and map the nodal temperatures.
- *CONTROL_REFINE_SHELL and *CONTROL_REFINE_SOLID: Add a parameter MASTERSET to call a set of nodes to flag element edges along which new child nodes are constrained.
- *BOUNDARY_PRESCRIBED_MOTION_SET_SEGMENT: Add DOF=12 to apply velocities in local coordinate systems attached to segments.
- Fixed bug occurring when a part has non-zero *DAMPING_PART_STIFFNESS, AND is defined using *PART_COMPOSITE, AND the MIDs referenced by the different integration points have different material types. Symptoms could include many types of unexpected behaviour or error termination, but in other cases it could be harmless.
- *DAMPING_FREQUENCY_RANGE (including _DEFORM option): Improved internal calculation of damping constants such that the level of damping more accurately matches the user-input value across the whole of the frequency range FLOW to FHIGH. As an example, for CDAMP=0.01, FLOW=1 Hz and FHIGH=30 Hz, the actual damping achieved by the previous algorithm varied between 0.008 and 0.012 (different values at different frequencies between FLOW and FHIGH), i.e. there were errors of up to 20% of the target CDAMP. With the new algoritm, the errors are reduced to 1% of the target CDAMP. This change will lead to some small differences in results compared to previous versions of LS-DYNA. Users wishing to retain the old method for compatibility with previous work can do this by setting IFLG (7th field on Card 1) to 1.
- Fixed bug that could cause unpredictable symptoms if Nodal Rigid Bodies were included in the Part Set referenced by *DAMPING_FREQUENCY_RANGE or *DAMPING_FREQUENCY_RANGE_DEFORM. Now, the _DEFORM option silently ignores NRBs in the Part Set while *DAMPING_FREQUENCY_RANGE (non _DEFORM option) damps them.
- Fixed bug in *PART_COMPOSITE: if a layer had a very small thickness defined, such as 1E-9 times the total thickness, that layer would be assigned a weighting factor of 1 (it should be close to zero).
- Fix errors in implementation of *DEFINE_FILTER type CHAIN.
- Fix for *INTERFACE_LINKING_LOCAL when LCID is used. During keyword processing, the LCID value was not properly converted to internal numbering.
- Switch coordinates in keyword reader to double precision.
- Change "Warning" to "Error" for multiply defined materials, boxes, coordinate systems, vectors, and orientation vectors. The check for duplicate section IDs now includes the element type and remains a warning for now, because SPH is still detected as a SOLID. Once that is straightened out, this should be made an error.
- Add "TIMESTEP" as a variable for *DEFINE_CURVE_FUNCTION. This variable holds the current simulation time step.
- Fix a bug for the case of CODE=5 in *DEFORMABLE_TO_RIGID_AUTOMATIC. (Fields 3 to 8 are now ignored.)
- Issue error message and terminate the simulation when illegal ACTION is used for *DEFINE_TRANSFORM.
- Add option of POS6N for *DEFINE_TRANSFORM to define transformation with 3 reference nodes and 3 target nodes.
- Fix a bug that can occur when adaptive elements are defined in a file included by *INCLUDE_TRANSFORM.
- Merge *DEFORMABLE_TO_RIGID_AUTOMATIC cards if they use the same switch time. This dependency of results on the order of the cards and also gives better performance.
- If *SET_PART_OPTION is used, a "group_file" will be created which can be read into LS-Prepost (Model>Groups>Load) for easy visualization of part sets.
- Forces on *RIGIDWALL_GEOMETRIC_CYLINDER can now be subdivided into sections for output to rwforc. This gives a better idea of the force distribution along the length of the cylinder. See the variable NSEGS.
- Added the keywords *DEFINE_PRESSURE_TUBE and *DATABASE_PRTUBE for simulating pressure tubes in pedestrian crash.
- Fix non-effective OPTIONs DBOX, DVOL, DSOLID, DSHELL, DTSHELL, DSEG for *SET_SEGMENT_GENERAL to delete segments.
- Fix incorrect transformation of valdmp in *DAMPING_GLOBAL with *INCLUDE_TRANSFORM.
- Make *SET_NODE_COLLECT work together with *NODE_SET_MERGE.
- Fixed bug in adaptivity for *INCLUDE_TRANSFORM if jobid is used.
- Bugfix: *INTERFACE_SSI with blank optional card is now read in correctly.

.

2017/07