9月 « 2016 « ACS NEWS

2016 年 9 月 のアーカイブ

LSDYNA R9.0.1

2016 年 9 月 28 日 水曜日

LSDYNAの最新バージョンです。最新バージョンのリリースに関しては開発元LSTCからのアナウンス等は
特になく、FTPサイトへのアップが「リリース」いうことにとなっています。

R9については、7月頃Linux, Win版がアップされ。リリースノート、マニュアルを待っていましたが、音沙汰なし。
その後「仮のリリースノート」がアップされましたが、

・ブライアンが病気なので、完全に仕上がっていない ????
・ヘッダーを追加しなければ完成できない

という内容でした。その後、R9.0は放置となったらしく、8月中旬に R9.0.1が公開されました。
こちらは、マニュアルも公開されたので、弊社サイトに必要なモジュールとマニュアルをアップしました。
ただし、Windowsフルインストール版のみが未だ公開されていません。

ダウンロードサイト以下のディレクトリから必要なファイルをダウンロードしてください。
注意)R9.0は、R9.0実行権が設定されたライセンスが必要です。

実行モジュール R9.0.1  Windows64&Linux64,  SMP版、MPP-PMPI版、Hybrid-PMPI版
マニュアル  manual/R900/

また、lsprepost4.3 2016.09.27版もアップしてあります。

LSDYNA R9.0.1 リリースノート

———————————————————————————
This file constitutes revision 0 of the release notes for LS-DYNA version R9.0.1.  
———————————————————————————

I. LICENSE

The string “REVISION 9” must appear in the license file in order to run versions R9,

Please contact keys@lstc.com if you need to have your license updated.


—————————————————————————-

II. DOCUMENTATION

Until such time the R9.0 User’s Manual is posted at www.lstc.com/download/manuals,  
the DRAFT User’s Manual at www.lstc.com/download/manuals may be used as a
temporary substitute, but please be aware that a few features in the DRAFT
User’s Manual are not implemented in version R9 of the code.

—————————————————————————-

III. NOTES

The remainder of this file provides a brief description of features and enhancements
of LS-DYNA version 9.0.1 which are not included in versions R8, R7, etc.
Select bugfixes are also mentioned.

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.

The categories are:

*AIRBAG                 
ALE                     
*BOUNDARY               
Blast                   
CESE (Compressible Flow Solver)
*CHEMISTRY              
*CONTACT                
*CONSTRAINED            
*CONTROL                
Discrete Element Method
EFG (Element Free Galerkin)                     
*ELEMENT                
EM (Electromagnetic Solver)  
Forming                 
*FREQUENCY_DOMAIN       
ICFD (Incompressible Flow Solver)
Implicit
*INITIAL                
Isogeometric Elements   
*LOAD                   
*MAT                    
MPP                     
Output
Restarts
*SENSOR                 
SPG (Smooth Particle Galerkin)
SPH (Smooth Particle Hydrodynamics)                    
Thermal                 
XFEM (eXtended Finite Element Method)
Miscellaneous           

==============================================================================


________________________ *AIRBAG ___________________                          

Disable CPM airbag feature during DR and reactivate in the transient phase.

*AIRBAG_WANG_NEFSKE_POP_ID pop venting based on RBIDP is now supported correctly
(MPP only).

*AIRBAG_INTERACTION:
Fixed MPP airbag data sync error to allow final pressure among interacted airbags
to reach equilibrium.

*AIRBAG_PARTICLE:
– When IAR=-1 and Pbag or Pchamber is lower than Patm, ambient air will inflate
    the bag through external vents and also fabric porosity.
– Treat heat convection when chamber is defined.
– Output pres+ and pres- to CPM interface forces file for internal parts.
– Allow IAIR=4 to gradually switch to IAIR=2 to avoid instability.
– Allow using shell to define inflator orifice.  The shell center and
    normal will be used as orifice node and flow vector direction.
– Bug fix for porous leakage for internal fabric parts using CPM.
– New feature to collect all ring vents into a single vent in order to correctly
    treat enhanced venting option.  All the vent data will only be output to
    the first part defined in the part set.
– Evaluate airbag volume based on relative position to avoid truncation.  The
    bag volume becomes independent of coordinate transformation.
– Support explicit/implicit switch and dynamic relaxation for *AIRBAG_PARTICLE.
– Support vent/fabric blockage for CPM and ALE coupled analysis.
– New option in *CONTROL_CPM to allow user defined smoothing of impact forces.

Fixed bug affecting *AIRBAG_PARTICLE_ID with PGP encryption.


________________________ ALE ___________________                              

*ALE_REFERENCE_SYSTEM_GROUP: For prtype=4, allow the ALE mesh to follow the
center of mass of a set of nodes.

*CONTROL_ALE:
– Add a variable DTMUFAC to control the time step related to the viscosity from
  *MAT_NULL (if zero, the viscosity does not control the time step).
– Implement a 2D version of BFAC and CFAC smoothing algorithm.

*ALE_SMOOTHING: Automatically generate the list of 3 nodes for the smoothing
constraints and implement for MPP.

*SECTION_ALE2D, *SECTION_SOLID_ALE: Allow a local smoothing controlled by AFAC,…,DFAC.

*ALE_SWITCH_MMG: Allow the variables to be modified at the time of the switch.

*CONTROL_REFINE_ALE: Add a variable to delay the refinement after removal (DELAYRGN),
one to delay the removal after the refinement (DELAYRMV), and one to prevent any removal
in a certain radius around latest refinements (RADIUSRMV).

*ALE_STRUCTURED_MESH:
Implemented structured ALE mesh solver to facilitate rectilinear mesh generation and
to run faster.


________________________ *BOUNDARY ___________________                        

*BOUNDARY_AMBIENT_EOS: Implement *DEFINE_CURVE_FUNCTION for the internal
energy and relative volume curves.

*BOUNDARY_AMBIENT: Apply ambient conditions to element sets.

Fix for adaptivity dropping SPCs in some cases (MPP only).

Added conflict error checking between rigid body rotational constraints and
joints between rigid bodies (*CONSTRAINED_JOINT) with *BOUNDARY_PRESCRIBED_ORIENTATION.
The first rigid body of the prescribed orientation cannot
have any rotational constraints.  Only spherical joints or translational
motors can be used between the two rigid bodies of the prescribed orientation.
For now explicit will be allowed to continue with these as warnings.
Implicit will terminate at end of input checking.

Instead of error terminating with warning message, STR+1371, when
*BOUNDARY_PRESCRIBED_MOTION and *BOUNDARY_SPC are 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 are used.

Fix segmentation fault when using *BOUNDARY_PRESCRIBED_ORIENTATION with vad=2,
i.e. cubic spline interpolation.

Fix incorrect behavior if multiple *BOUNDARY_SPC_SYMMETRY_PLANE, i.e. >1, are used.

Fix incorrect motion if *BOUNDARY_PRESCRIBED_MOTION_RIGID_LOCAL is on a rigid
part which is merged with a deformable part that has been switched to rigid
using *DEFORMABLE_TO_RIGID.

Fix incorrect external work when using *BOUNDARY_PRESCRIBED_MOTION with or
without _RIGID option. The dof specified in *BPM was not considered when
computing the external work. Also, when multiple *BPM applied to the same
node/rigid body with different dof may also cause incorrect computation of
external work.

Fix incorrect velocities when using *BOUNDARY_PRESCRIBED_MOTION_RIGID_LOCAL
and *INITIAL_VELOCITY_RIGID_BODY for rigid bodies.

Implement check for cases where *MAT_ACOUSTIC nodes are merged with structural nodes
on both sides of a plate element and direct the user to the proper approach
to this situation – *BOUNDARY_ACOUSTIC_COUPLING.

*BOUNDARY_ACOUSTIC_COUPLING with unmerged, coincident node coupling now
implemented in MPP.

MPP logic corrected so *MAT_ACOUSTIC and *BOUNDARY_ACOUSTIC_COUPLING features
may be used with 1 MPP processor.

Fixed bug for *BOUNDARY_PRESCRIBED_MOTION if part label option is used.


________________________ Blast ___________________                            

Improve *LOAD_BLAST_ENHANCED used with ALEPID option in *LOAD_BLAST_SEGMENT:
–  Rearrange the ambient element type 5 and its adjacent element into same
    processor to avoid communications.
–  Eliminate several n-by-n searches for segment set and ambient type 5 with
    its neighboring elements to speed up the initialization.

Change the name of keyword *DEFINE_PBLAST_GEOMETRY to *DEFINE_PBLAST_HEGEO.
Both names will be recognized.


________________________ CESE (Compressible Flow Solver)  __________________  

Modified the CESE moving mesh CHT interface condition calculation
to deal with some occasional MPP failures that could occur with mesh
corner elements.

Improved the CESE spatial derivatives approximation in order to
bring better stability to the CESE solvers.

The 3D SMP and MPP CESE immersed boundary solvers now work with
structural element erosion.

A new energy conservative conjugate heat transfer method has been
added to the following 2D and 3D CESE Navier-Stokes equation solvers:
–  Fixed mesh (requires use of *CESE_BOUNDARY_CONJ_HEAT input cards)
–  Moving mesh FSI
–  Immersed boundary FSI

Prevent the fluid thermal calculation from using too short a distance
between the fluid and structure points in the new IBM CHT solvers.

In the underresolved situation, prevent the CHT interface temperature
from dipping below the local structural node temperature.

Add detection of blast wave arrival at CESE boundary condition face
first sensing the leading edge of the pulse (used with
*LOAD_BLAST_ENHANCED).

Set CESE state variable derivatives to more stable values for the
blast wave boundary condition.

Corrected time step handling for the CESE Eulerian conjugate-heat
transfer solver.  This affected only the reported output time.

Added CESE cyclic BC capability to the moving mesh CESE solver.

Fixed some issues with 2D CESE solvers where the mesh is created via
*MESH cards.

For the CESE solver coupled with the structural solver (FSI),
corrected the time step handling.

For the CESE mesh motion solvers, and the ICFD implicit ball-vertex
mesh motion solver, added a mechanism to check if all of the
imposed boundary displacements are so small that it is not
necessary to actually invoke the mesh motion solver.  This is
determined by comparing the magnitude of the imposed displacement
at a node with the minimum distance to a virtual ball vertex (that
would appear in the ball-vertex method).  The relative scale for
this check can be input by the user via field 4 of the
*CESE_CONTROL_MESH_MOV card.

Changed the NaN check capability for the CESE solvers to be
activated only upon user request.  This is input via a non-zero
entry in field 7 of the *CESE_CONTROL_SOLVER card.

Much like the ICFD solver, added a mechanism to adjust the
distance used by the contact detection algorithm for the
*CESE_BOUNDARY_FSI cards, as well as the new moving mesh conjugate
heat transfer solvers.  This is available through field 6 of
the *CESE_CONTROL_SOLVER card.

Added a correction to the moving mesh CESE solver geometry calculation.

Corrected the initial time step calculation for both the 2D
and 3D moving mesh CESE solvers.

For the moving mesh CESE solver, replaced the all-to-all communication
for fsi quantities with a sparse communication mechanism.


________________________ *CHEMISTRY ___________________                       

The immersed boundary FSI method coupled with the chemistry solver is released.
– Only Euler solvers, both in 2D and 3D, are completed with full chemistry.
– Using this technique, CESE FSI Immerged Boundary Method coupled to the chemistry
    solver can be applied to high speed combustion problems such as explosion,
    detonation shock interacting with structures, and so on.
– Some examples are available on our ftp site.

________________________ *CONTACT ___________________                         

Fix MPP groupable contact problem that could
in some cases have oriented the contact surfaces inconsistently.

Fix bug in *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_TIED_WELD.

Fix seg fault when using *CONTACT_AUTOMATIC_SINGLE_SURFACE_TIED with consistency
mode, .i.e. ncpu<0, for SMP.

Fix false warnings, SOL+1253, for untied nodes using *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE_TIEBREAK
and *CONTACT_AUTOMATIC_ONE_WAY_SURFACE_TO_SURFACE_TIEBREAK.

Fix *CONTACT_TIED_SHELL_EDGE_TO_SURFACE when rigid nodes are not tied even when
ipback=1. This applies to SMP only.

Issue warning if SOFT=4 is used with an unsupported contact type, and reset it
to 1.

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.

Increase MPP contact release condition for shell nodes that contact solid
elements in SINGLE_SURFACE contact.

Fix for MPP IPBACK option for creating a backup penalty-based tied contact.

Fix for MPP orthotropic friction in contact.

Fix for MPP *CONTACT_SLIDING_ONLY that was falsely detecting contact in some cases.

Skip constraint based contacts when computing the stable contact time step size.

Add error trap if node set is input for slave side of single surface contact.

MPP: some fixes for constrained tied contact when used with adaptivity.
The behavior of the slave nodes in adaptive constraints was not correct if
they were also master nodes of a tied interface.  This has been fixed, and support
for the rotations required for CONTACT_SPOTWELD have also been added.

MPP: update to AUTOMATIC_TIEBREAK option 5 to release the slave nodes
(and report them as having failed) when the damage curve reaches 0.

Fix made to routine that determines the contact interface
segments, which was not handling pentahedral thick shell elements
correctly.

MPP: fix for strange deadlock that could happen if
a user defines a *CONTACT_FORCE_TRANSDUCER that has no
elements in it and so gets deleted.

MPP contact: add support for *DEFINE_REGION to define an active contact region.
Contact occurring outside this region is ignored.  This is only
for MPP contact types:
  AUTOMATIC_SINGLE_SURFACE
  AUTOMATIC_NODES_TO_SURFACE
  AUTOMATIC_SURFACE_TO_SURFACE
  AUTOMATIC_ONE_WAY_SURFACE_TO_SURFACE

MPP fix for table based friction in non-groupable contact.

MPP: add frictional work calculation for beams in *CONTACT_AUTOMATIC_GENERAL.

Added new option “FTORQ” for contact.
Currently implemented only for beams in *CONTACT_AUTOMATIC_GENERAL in MPP.
Apply torque to the nodes to compensate for the torque introduced by friction.

Issue error message when users try to use SOFT=2/DEPTH=45 contact for solid
elements.

R-adaptivity, ADPOPT=7 in *CONTROL_ADAPTIVE, is now available for SMP version of
*CONTACT_SURFACE_TO_SURFACE, _NODES_TO_SURFACE, _AUTOMATIC_SURFACE_TO_SURFACE,
and _AUTOMATIC_NODES_TO_SURFACE (SOFT=0 or 1 only).

The options AUTOMATIC_SURFACE_TO_SURFACE_COMPOSITE has been added to model
composite processing. The same option may be used to model certain types of
lubrication, and AUTOMATIC_SURFACE_TO_SURFACE_LUBRICATION may be used instead
of the COMPOSITE option for clarity. (The two keyword commands are equivalent.)

Added AUTOMATIC_SURFACE_TO_SURFACE_TIED_WELD to model the simulation of welding.
As regions of the surfaces are heated to the welding temperature and come into
contact, the nodes are tied.

Added *CONTACT_TIED_SHELL_EDGE_TO_SOLID. This contact transmits the shell moments
into the solid elements by using forces unlike the SHELL_EDGE_TO_SURFACE contact with
solid elements.  This capability is easier for users than *CONSTRAINED_SHELL_TO_SOLID.
The input is identical to *CONTACT_TIED_SHELL_EDGE_TO_SURFACE (except for the keyword).

Fix incorrect motion of displayed rigidwall between 0.0 < time < birth_time when
birth time>0.0 for *RIGIDWALL_GEOMETRIC_FLAT_MOTION_DISPLAY. The analysis was
still correct. Only the displayed motion of the rigidwall is incorrect.

Fix corrupted intfor when using parts/part sets in *CONTACT_AUTOMATIC_….
This affects SMP only.

Fix incorrect stonewall energy when using *RIGIDWALL_PLANAR_ORTHO.

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.

Enable MAXPAR from optional card A to be used in *CONTACT_TIED_SURFACE_TO_SURFACE.
It was originally hard-coded to 1.07.

The shells used for visualisation of *RIGIDWALL_PLANAR_MOVING_DISPLAY and
*RIGIDWALL_PLANAR_MOVING_DISPLAY in d3plot were not moving with the rigidwall.
This is now fixed.

Fix incorrect frictional forces if _ORTHO_FRICTION is used in
*CONTACT_AUTOMATIC_SURFACE_TO_SURFACE.

Fix seg fault when using *CONTACT_ENTITY and output to intfor file with MPP,
i.e. s=intfor in command line.

Fix ineffective birth time for *CONTACT_TIED_NODES_TO_SURFACE.

Fix untied contacts when using *CONTACT_TIED… with
*MAT_ANISOTROPIC_ELASTIC_PLASTIC/*MAT_157.

Fix MPP hang up when using *CONTACT_ENTITY.

Allow *CONTACT_AUTOMATIC_GENERAL to use MAXPAR from contact optional card A
instead of using the hard coded value of 1.02. This will better detect end to end
contact of beams. This applies to SMP only.

Fix *CONTACT_TIED_SHELL_EDGE_TO_SURFACE for SMP which ignores MAXPAR in contact
optional card A.

Fix seg fault when using *CONTACT_GUIDED_CABLE.

Fix segmentation fault when using *CONTACT_AUTOMATIC_SINGLE_SURFACE_TIED in
consistency mode, i.e. ncpu<0 in command line, for SMP.

Fix incorrect contacts when using *CONTACT_AUTOMATIC_GENERAL_INTERIOR for
beams with large differences in thickness and when the thinner beams are
closer to each other than to the thicker beams. Affects SMP only.

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.

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 effect on most models.

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 MPP segment based implicit contact.  A flaw in data handling caused possible memory
errors during a line search.

Fixed implicit dynamic friction for segment based contact.  For sliding friction,
the implicit stiffness was reduced to an infinitesimal value.  Also, the viscous
damping coefficient is now supported for implicit dynamic solutions.

Fixed segment based contact when the data has all deformable parts that are switched to rigid at
the start of the calculation and then switched back to deformable prior to contact occurring.
A flaw was causing contact to be too soft.  This is now corrected.

Fixed a flaw in segment based contact with DEPTH=25 that could allow penetration to occur.

Improved edge-to-edge contact checking (DEPTH=5,25,35) and the sliding option
(SBOPT=4,5) in areas where bricks have eroded when using segment based eroding contact.

Improved the initial penetration check (IGNORE=2 on *CONTROL_CONTACT) of
segment based contact to eliminate false positives for shell segments.
Previously, the search was done using mid-plane nodes and the gap or
penetration adjusted to account for segment thicknesses after.  The new
way projects the nodes to the surface first and uses the projected
surface to measure penetration.  For brick segments with zero thickness
there should be no difference.  For shell segments, the improved accuracy
will me more noticeable for thicker segments.

Improved segment based contact when SHAREC=1 to run faster when there are
rigid bodies in the contact interface.

Fixed a possible problem during initialization of segment based contact.  Options that
use neighbor segment data such as the sliding option and edge-to-edge checking could
access bad data if the same nodes were part of both the slave and master surfaces.  This
would not be a normal occurrence, but could happen.

Updated segment based contact to improve accuracy at points away from the origin.
The final calculations are now done with nodal and segment locations that have been
shifted towards the origin so that coordinate values are small.

The reporting of initial penetrations and periodic intersection reports by segment based
contact was corrected for MPP solutions which were reporting incorrect element numbers.

Fixed memory errors in 2D automatic contact initialization when friction is used.

Fixed 2D force transducers in the MPP version which could fail to report master surface
forces.  Also fixed 2 surface 2D force transducers when the smp parallel consistency
option is active.

Fixed *CONTACT_2D_AUTOMAITC_SINGLE_SURFACE and SURFACE_TO_SURFACE which could exhibit
unpredictable behavior such as a force spike or penetration.

Fixed a serious MPP error in the sliding option of *CONTACT_2D_AUTOMATIC that could
lead to error termination.

Fixed a problem with birth time for *CONTACT_2D_AUTOMATIC_TIED when used with
sensor switching.  Also, fixed a problem in the contact energy calculation that
could lead to abnormal terminations.  Finally, I made the process of searching
for nodes to tie more robust as some problem was found with nodes being missed.

Fixed a 2D automatic contact bug that occurred if a segment had zero length.  An
infinite thickness value was calculated by A/L causing the bucket sort to fail.

Added support for *CONTACT_ADD_WEAR for smp and mpp segment based (SOFT=2) contact.
This option enables wear and sliding distance to be measured and output to the intfor file.

Added support to segment based contact for the SRNDE parameter on optional
card E of *CONTACT.

Added support to segment based eroding contact for SBOXID and MBOXID on card
1 of *CONTACT.

Added support for *ELEMENT_SOURCE_SINK used with segment based contact.  With this update,
inactive elements are no longer checked for contact.

Added a segment based contact option to allow the PSTIFF option on *CONTROL_CONTACT
to be specified for individual contact definitions.  The new parameter is PSTIFF
on *CONTACT on optional card F, field 1.  Prior to this change, setting PSTIFF on
*CONTROL_CONTACT set all contact to use the alternate penalty stiffness method.
With this update, PSTIFF on *CONTROL_CONTACT now sets a default value, and PSTIFF
on card F can be used to override the default value for an individual contact
interface.

Added support for REGION option on optional card E of *CONTACT when using segment based,
SOFT=2 contact.  This works for all supported keywords, SMP and MPP.

Added master side output in the MPP version for 2-surface force transducers when used
with segment based (soft=2) contact.

Added contact friction energy to the sleout database file for
_2D_AUTOMATIC_SURFACE_TO_SURFACE and _2D_AUTOMATIC_SINGLE_SURFACE contact.

Enabled segment based contact (SMP and MPP) to work with type 24 (27-node)
solid elements.

Enabled the ICOR parameter on *CONTACT, optional card E to be used with
segment based (SOFT=2) contact.

Fixed output to d3hsp for *CONTACT_DRAWBEAD using negative curve ID for
LCIDRF

Add slave node thickness and master segmet thickness as input arguments
to the *USER_INTERFACE_FRICTION subroutine usrfrc (SMP).

Forming mortar contact can now run with deformable solid tools
and honors ADPENE to account for curvatures and penetrations
in adaptive step. This applies to h- as well as r-adaptivity.

Single surface and surface-to-surface mortar contact accounts
for rotational degrees of freedom when contact with beam elements.
This allows for beams to “roll” on surfaces and prevents spurious
friction energy to be generated when in contact with rotating
parts.

Maximum allowable penetration in forming and automatic mortar
contacts is hereforth .5*(tslav+tmast)*factor where tmast=thickness
of slave segment and tmast=thickness of master segment. The
factor is hardwired to 0.95, but is subject to change. Prior
to this it was .5*tslav, which seems inadequate (too small) in coping with
initial penetrations in automotive applications using standard
modeling approaches.

Up to now, mortar contact has only acted between flat surfaces, now
account is taken for sharp edges in solid elements (the angle must
initially be larger than 60 degrees), may have to increase the corresponding
stiffness in the future.

When solid elements are involved in mortar contact the default stiffness
is increased by a factor of 10. This is based on feedback from customers
indicating that the contact behavior in those cases has in general been
too soft. This may change the convergence characteristics in implicit but
the results should be an improvement from earlier versions.

The OPTT parameter on *PART_CONTACT for the contact thickness of beams is now
supported in mortar contact.

*CONTACT_ADD_WEAR:
A wear law, Archard’s or a user defined, can be associated with a contact interface
to assess wear in contact. By specifying WTYPE<0 a user defined wear
subroutine must be written to customize the wear law. For the Archard’s wear law,
parameters can depend on contact pressure, relative sliding velocity and temperature.
Contacts supported are *CONTACT_FORMING_SURFACE_TO_SURFACE,
*CONTACT_FORMING_ONE_WAY_TO_SURFACE and *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE. To
output wear data set NWEAR=1 or NWEAR=2 on *DATABASE_EXTENT_INTFOR. If NWEAR is set to 2
then the sliding distance is output to the intfor file, in addition to the wear depth.
Otherwise only wear depth is output. Also, the parameter
NWUSR specifies the number of user wear history variables to be output in case a user
defined wear routine is used.
By specifying CID (contact interface id) to a negative number, the wear
depth will couple to the contact in the simulation in the sense that
the penetration is reduced with wear. The effect is that contact pressure
will be redistributed accordingly but is only valid for relatively
small wear depths. A formulation for larger wear depths lie in the future
which will require modification of the actual geometry.

Fixed bug affecting *CONTACT_RIGID_NODE_SURFACE (broken at rev. 86847).
The bug was in reading *NODE_RIGID_SURFACE.

A bug fix in *CONTACT_DRAWBEAD_INITILIZE.
– The bug was caused by a sudden increase in effective strain after the element
    passed the drawbead. When the increase in strain is too big, the search
    algorithm was not working reasonably in the material routine.
– At the drawbead intersection point, an element could be initialized twice by
    two bead curves, and cause abnormal thickness distribution.

Fix a bug in *CONTACT_FORMING_ONE_WAY_SURFACE_TO_SURFACE_SMOOTH
which removes the limitation that the contact must be defined by segment set.

SMOOTH option does not apply to FORMING_SURFACE_TO_SURFACE contact. When the
SMOOTH option is used, we now write a warning message and disregard the
SMOOTH option.


________________________ *CONSTRAINED ___________________                     

*CONSTRAINED_LAGRANGE_IN_SOLID: Implement *CONSTRAINED_LAGRANGE_IN_SOLID_EDGE in 2D.

Fixed bug in *DAMPING_RELATIVE. If the rigid part
PIDRB is the slave part in *CONSTRAINED_RIGID_BODIES, the damping card
did not work correctly. There is a work-around for previous LS-DYNA
versions: set PIDRB to the master part in *CONSTRAIEND_RIGID_BODIES,
not the slave part.

*CONSTRAINED_RIGID_BODY_INSERT:
This keyword is for modeling die inserts. One rigid body, called slave rigid
body, is constrained to move with another rigid body, called the master rigid body, in all
directions except for one.

A variety of enhancements for *CONSTRAINED_INTERPOLATION.
– Enhanced the error message when nodes involved in the constraint have been deleted.
– Removed printing of 0 node ID in MPP.
– Added a warning if there are too many (now set at 1000) nonzeroes in a constraint
    row for *CONSTRAINED_INTERPOLATION or *CONSTRAINED_LINEAR to protect
    implicit’s constraint processing.  These constraints will be processed differently
    in future releases.  We modified the constraint processing software to robustly
    handle constraint rows with thousands of nonzero entries.  We added error checking
    for co-linear independent nodes as these constraints allow singularities in the model.

Improved implicit’s treatment of the constraints for *CONSTRAINED_BEAM_IN_SOLID.

Added error checking on the values of the gear ratios in *CONSTRAINED_JOINTS.

*CONSTRAINED_BEAM_IN_SOLID:
–  Thick shell elements supported.
–  Wedge elements supported.
–  Debonding law by user-defined subroutine (set variable AXFOR>1000).
–  Debonding law by *DEFINE_FUNCTION (set variable AXFOR<0).

Error terminate with message, SOL+700, if CIDA and CIDB is not defined for
*CONSTRAINED_JOINT_STIFFNESS_GENERALIZED.

Fix incorrect constraints on rotary dof for adaptivity.

Fix incorrect motion if NRBF=2 in *DEFORMABLE_TO_RIGID_AUTOMATIC and if any of the
*CONSTRAINED_NODAL_RIGID_BODY nodes belongs to a solid element.

Fix input error when using large load curve ID for FMPH, FMT, FMPS in card 3
of *CONSTRAINED_JOINT_STIFFNESS with _GENERALIZED or _TRANSLATIONAL options.

Fix seg fault if using tables for FMPH of *CONSTRAINED_JOINT_STIFFNESS and if
the angle of rotation is less than the the abscissa of the table or load curves.

Fixed an problem with *CONSTRAINED_BEAM_IN_SOLID when used in a model that also
uses segment based eroding contact in the MPP version.  This combination now works.

Improved the precision of spot weld constraints (*CONSTRAINED_SPOTWELD) to prevent possible
divide by zeroes when the inertia tensor is inverted.  This affects the single precision
version only.

Fix for damage function in *CONSTRAINED_INTERPOLATION_SPOTWELD, MODEL=2.

Add some user-friendly output (rigid body id) to d3hsp for
*CONSTRAINED_NODAL_RIGID_BODY_INERTIA.

Add new option to *CONSTRAINED_SPR2 to connect up to 6 shell element
parts (metal sheets) with only one rivet location node. This is invoked
by defining extra part IDs for such a multi-sheet connection.

Add more flexibility to *CONSTRAINED_SPR2:
Load curve function exponent values originally hardwired as “8”
can now be defined with new input parameters EXPN and EXPT.

Fixed bug wherein the joint ID in *CONSTRAINED_JOINT_COOR was read incorrectly.

Fixed duplicate ID for *CONSTRAINED_SPOTWELD, …_NODE_SET, _POINTS and _SPR2.

Fix keyword reader for SPR4 option in
*CONSTRAINED_INTERPOLATION_SPOTWELD, where BETA2 was replaced by BETA3.

Significantly reduce the memory demand in the initialization stage of
*CONSTRAINED_MULTIPLE_GLOBAL for implicit analysis.

The unit cell mesh and constraint generated by *INCLUDE_UNITCELL now supports job ID.


________________________ *CONTROL ___________________                         

Terminate and print error KEY+1117 for cases that use *INCLUDE_TRANSFORM in 3d
r-adaptvity.  More work is needed to make this combination work.

Changed SOL+41 message (“reached minimum step”) from an error to a warning and
terminate normally.  This message is triggered when the DTMIN criterion
set in  *CONTROL_TERMINATION is reached.

Fixed bug in which h-adaptivity missed some ADPFREQ-based adaptations
when IREFLG<0 (*CONTROL_ADAPTIVE).

Fixed bug: MS1ST in *CONTROL_TIMESTEP causes
non-physical large mass and inertia on Nodal Rigid Bodies if Dynamic
Relaxation is active. The error occurs at the start of the transient
solution. The mass can become very large, so the model may appear to
be over-restrained.

Add new input check for curves.  After rediscretizing curves, check to see how
well the original values can be reproduced.  If the match is poor, write out
See variable CDETOL in *CONTROL_OUTPUT.

Added the ability to specify unique values LCINT for each curve, which
override the value set in *CONTROL_SOLUTION.  Note: the largest value
of LCINT that appears will be used when allocating memory for each load
curve, so a single large value can cause significant increases in the
memory required for solution.

The DELFR flag in *CONTROL_SHELL has new options for controlling the deletion
of shell elements.  This feature is aimed at eliminating single, detached
elements and/or elements hanging on by one shared node.

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.

Fix spurious error, STR+755, if using *DAMPING_FREQUENCY_RANGE with *CONTROL_ADAPTIVE.

Add new feature to *CONTROL_SOLUTION, LCACC, to truncate load curve to 6
significant figures for single precision & 13 significant figures for double
precision. The truncation is done after applying the offset and scale factors.

Fix “*** termination due to mass increase ***’ error when using mass scaling with
*ELEMENT_MASS_PART.

Fix input error ‘node set for nodal rigid body # not found’ when using
*PART_INERTIA with *CONTROL_SUBCYCLE.

Fixed the negative DT2MS option on *CONTROL_TIMESTEP for thick shell types 5, 6, and 7.

Fixed bug in *CONTROL_CHECK_SHELL if PSID.lt.0 (part set ID) is used

Add new option NORBIC to *CONTROL_RIGID to bypass the check of
rigid body inertia tensors being too small.

Add new option ICRQ to *CONTROL_SHELL for continuous treatment of thickness
and plastic strain across element edges for shell element types 2, 4, and 16
with max. 9 integration points through the thickness.

Add new option ICOHED to *CONTROL_SOLID. If this value is set to 1,
solid cohesive elements (ELFORM 19-22) will be eroded
when neighboring (nodewise connected) shell or solid elements fail.

Beam release conditions are now properly supported in selective mass scaling,
see IMSCL on *CONTROL_TIMESTEP.

Modified MSGMAX in *CONTROL_OUPUT:
  MSGMAX  Maximum number of each error/warning message
    > 0 number of message to screen output, all messages written to messag/d3hsp
    < 0 number of messages to screen output and message/d3hsp
    = 0 the defaul is 50

Fix bugs in 3D solid adaptivity (*CONTROL_ADAPTIVE,ADPOPT=7) so that the solid
adaptivity will still work when there are any of the following in the model:
– thick shells (*SECTION_TSHELL),
– massless nodes,
– *LOAD_SEGMENT_{option}.

Added PARA=2 to *CONTROL_PARALLEL which actives consistent force assembly in
parallel for SMP. An efficient parallel algorithm is implemented for better
performance when the consistency flag is turned on. It shows better scaling with more cpus.
This option is overridden by parameter “para=” on the execution line.


________________________ Discrete Element Method ___________________          

Added output of following DES history variables to d3plot:
– nodal stress and force
– pressure
– density
– force chain
– damage calculation when *DEFINE_DE_BOND is defined

Added output of following DES history variables to demtrh (*DATABASE_TRACER_DE):
– coordination number
– porosity and void ratio
– stress
– pressure
– density

Output ASCII format for demrcf if BINARY.eq.3.

Implement gauss distribution of DE sphere radius for *DEFINE_DE_INJECTION.
The mean radius is 0.5*(rmin+rmax) and standard deviation is 0.5*(rmax-rmin).

For DE sphere, implement the stress calculation for REV (Representative
Elementary Volume) using *DATABASE_TRACER_DE and specific RADIUS.

Add *BOUNDARY_DE_NON_REFLECTING for defining non-reflecting boundary conditions
for DE spheres.

For *CONTROL_DISCRETE_ELEMENT, add the option to create the liquid
bridge if the initial distance between two DE spheres is smaller than
predefined gap.

Added *DATABASE_DEMASSFLOW, see *DEFINE_DE_MASSFLOW_PLANE, for
measuring the mass flow of DE spheres through a surface. The surface is defined
by part or part set.  Output file is ‘demflow’.

Add *DEFINE_DE_INJECTION_ELLIPSE, to define a
circular or elliptical injection plane.

Add *DEFINE_PBLAST_AIRGEO for *PARTICLE_BLAST which defines initial
geometry for air particles.

Add DEM stress calculation when coupling with segment
(*DEFINE_DE_TO_SURFACE_COUPLING).

Fix error in demtrh file output (Window platform only).


________________________ EFG (Element Free Galerkin) _____________            

Fix bug for ELFORM=41 implicit when there are 6-noded/4-noded elements.


________________________ *ELEMENT ___________________                         

Fix a 2d seatbelt bug triggered by having both 1d and 2d seatbelts, and a
1d pretensioner of type 2, 3 or 9.

Fix MPP bug initializing multiscale spotweld in the
unexpected case where the spotweld beam is merged with the shells
rather than tied via contact.

Fix bug for *INCLUDE_UNITCELL.

*CONTROL_REFINE_…: Implement the parent-children transition in
*CONTACT_2D_SINGLE_SURFACE when a shell refinement occurs.

Fix error traps for *ELEMENT_SEATBELT_… , for example,
error termination due to convergence failure in retractors. These error traps
worked but could lead to a less graceful termination than other LS-DYNA
error traps.

Correct calculation of wrap angle in seatbelt retractor.

Add MPP support for *ELEMENT_LANCING.

*ELEMENT_SEATBELT:
– Fix a MPP belt bug that can happen when buckle pretensioner is modeled as
    a type-9 pretensioner.
– 2D belt and 1D belt now can share the same *MAT_SEATBELT.
– The section force for 2d belt is recoded to provide more robust and accurate
    results.
– The loading curve LLCID of *MAT_SEATBELT can be a table defining
    strain-rate dependent stiffness curve.
– IGRAV of *ELEMENT_SEATBELT_ACCELEROMETER can be a curve defining gravitation
    flag as a function of time.

Add *NODE_THICKNESS to override shell nodal thickness otherwise determined via
*SECTION_SHELL, *PART_COMPOSITE, or *ELEMENT_SHELL_THICKNESS.

Fix input error when using *DEFINE_ELEMENT_DEATH with BOXID>0 for MPP.

Implement subcycling for thick shells.

Fix ineffective *DEFINE_HAZ_PROPERTIES when solid spotwelds and hex spotweld
assemblies are both present.

Fix incorrect beta written out for *ELEMENT_SHELL_BETA in dynain file when
*PART_COMPOSITE keyword is present in the original input.

Fix NaN output to elout_det and spurious element deletion if NODOUT=STRAIN or
STRAIN_GL or ALL or ALL_GL.

Fix incorrect reading of TIME in card 3 of *ELEMENT_SEATBELT_SENSOR SBSTYP=3
when long=s in command line.

*PART_COMPOSITE:
Increased the explicit solution time step for thin shell composite elements.
The existing method was overly conservative.  The new method is based on
average layer stiffness and density.

In conjunction with the above change in composite time step calculation,
increase nodal inertia in the rare cases of
*PART_COMPOSITE in which the bending stability is not satisfied by the
membrane stability criterion.  The inertia is only increased in the
cases where it is necessary; for most models this change has no effect, but
this can occur in the case of sandwich sections with stiffer skins around a
less stiff core.

Corrected rotational inertia of thin shells when layers have mixed density and the outer
layers are more dense than inner layers.  The fix will mostly affect elements that are
very thick relative to edge length.

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 part mass that was reported to d3hsp when *ELEMENT_SHELL_SOURCE_SINK
is used.  The inactive elements were being included causing too high mass.

Prevent inactive shell elements (from *ELEMENT_SHELL_SOURCE_SINK) from controlling the
solution time step.

Fixed the reported strain tensor in elements created by *ELEMENT_SHELL_SOURCE_SINK when
strain output is requested.  The history was being retained from the previous elements
with the same ID.

Fixed torsion in linear beam form 13.  A failure to add the torsional moment at node 2
caused an inability to reach equilibrium in the torsional mode.

Fixed solid element 4 so that rigid body translation will not cause strain and
stress due to round-off error.

Mixed parallel consistency when used with solid element type 20.  A buffer
was not being allocated leading to a memory error.

Changed the MPP behavior of discrete beams (ELFORM=6) when attached to elements that
fail.  They were behaving like null beams, in the sense that it was possible for
beam nodes to become dead due to attached elements failing, and discrete beams
would be no longer visualized even if the beams themselves had not failed.  With
this change, the MPP discrete beams now behave like other beams in that the beams
have to fail before they are removed.  MPP and SMP behavior is now consistent.

Improved the precision of the type 2 Belytschko Schwer resultant beam to prevent
energy growth in single precision.

Fixed the NLOC option on *SECTION_SHELL for the BCIZ triangle elements (ELFORM=3) and
the DKT triangle elements (ELFORM=17).  The offset was scaled by the solution time
step so typically the offset was much smaller than expected.

Fixed elout stress output for shell element forms 23 and 24.  The in-plane
averaging was incorrect causing wrong output.

Changed *ELEMENT_TSHELL so that both the COMPOSITE and BETA options can be
read at the same time.  Prior to the fix, only the first one would be read.

Fixed all thick shells to work with anisotropic thermal strains which can be defined
by *MAT_ADD_THERMAL.  Also, this now works by layer for layered composites.

Fixed implicit solutions with thick shells with *MAT_057 when there are also
solid elements in the model that use *MAT_057.  Thick shells support only the
incremental update of the F tensor but a flag was set incorrectly in the material model.

Fixed *MAT_219 when used with thick shell types 3, 5, and 7.  A failure
to initialize terms for the time step caused a possible wrong time step.

Fixed orthotropic user defined materials when used with thick shell elements.  The
storing of the transformation matrix was in the wrong location leading to wrong
stress and strain.

For thick shell composites that use element forms 5 and 7, the user can now use laminated
shell theory along with the TSHEAR=1 on *SECTION_TSHELL to get a constant shear stress
through the thickness with a composite.

Fixed the initialization of *MAT_CODAM2/*MAT_219 when used with thick shell
forms 3, 5, or 7.  The 3D thick shell routine uses only 2 terms for the
transformation and therefore needs unique initialization of the transformation
data.

Fixed thick shell types 3 and 5  when used in implicit solutions with
*MATs 2, 21, 261, and 263.
The material constitutive matrix for *MATs 2 and 21 was not rotated
correctly causing wrong element stiffness.  The constitutive matrix for
*MATs 261 and 263 was not orthotropic.  Also, for *MAT_021,
type 5 thick shell needed some material terms defined to correct the assumed strain.

Fixed thick shell forms 3 and 5 when used in implicit solutions with non-isotropic materials.
The stiffness matrix was wrong due to incorrect transformations.

Also, fixed the implicit stiffness of thin and thick shells when used with laminated shell
theory by assumed strain (LAMSHT=3,4,5 on *CONTROL_ACCURACY).  Elements were either failing
to converge or converging more slowly due to the failure to adjust the stiffness matrix to
be consistent with the assumed strain.

Added support for *ELEMENT_SHELL_SOURCE_SINK to form 2 elements with BWC=1 on *CONTROL_SHELL.

Fixed the s-axis and t-axis orientation of beam spot welds in the MPP version when
those beam weld elements are defined with a 3rd node.  The 3rd node was being
discarded prior to initializing the beam orientation so the s and t-axes were being
randomly assigned as if the 3rd node had not been assigned.  The effect on solutions
is likely fairly minimal since beam material is isotropic and failure typically is
too, but may not be.

Added Rayleigh damping (*DAMPING_PART_STIFFNESS) for thick shell formulations
1, 2, and 6.  Previously, it was available for only the thick shells that call
3D stress updates, (forms 3 and 5), but now it is available for all thick shell
formulations.

Added new SCOOR options for discrete beam section 6 (*SECTION_BEAM).  A flaw
was found in how the discrete beam accounts for rigid body rotation when
SCOOR=-3, -2, +2, and +3.  A correction for this is made and introduced as
new options, SCOOR=-13, -12, +12, and +13.  A decision was made to leave
the existing options SCOOR=-2, +2, -3 and +3 unchanged so that legacy data
could run without changes.

Enabled the ELFORM 18 linear DKT shell element to work with *PART_COMPOSITE
and with an arbitrary number of through thickness integration points.  It was
limited to a single material and 10 Gauss points.

Added the possibility to write *ELEMENT_SOLID_ORTHO into dynain file if
requested. To activate this add OPTCARD to *INTERFACE_SPRINGBACK and
set SLDO=1.

Refine characteristic length calculation for 27-node solid (ELFORM 24).
This change may increase the time step substantially for badly distorted elements.

Implemement selective reduced integration for 27-node solid (ELFORM 24).

Allow part sets to be used in *DEFORMABLE_TO_RIGID_AUTOMATIC.
Either PID is defined negative or “PSET” is set in column 3 (D2R) or 2 (R2D).

Add new option STRESS=2 to *INCLUDE_STAMPED_PART:
no stresses and no history variables are mapped with that setting.

New keyword *PART_STACKED_ELEMENTS provides a method to define
and to discretize layered shell-like structures by an arbitrary sequence
of shell and/or solid elements over the thickness.


The geometric stiffness matrix for the Belytschko beam element type 2
has been extended to include nonsymmetric terms arising from nonzero
moments. Provides “almost” quadratic convergence, still some terms
missing to be added in the future. Also support a strongly objective
version activated by IACC on *CONTROL_ACCURACY.

The geometric stiffness for the Hughes-Liu element type 1 is fixed.

Fix parsing error in *SECTION_BEAM_AISC.


________________________ EM (Electromagnetic Solver)  ___________________     

Add the new EM 2d axi solver in SMP and MPP for EM solver 1 (eddy current).
It is coupled with the mechanics and thermal solvers.

The new EM 2d can be used with RLC circuits on helix/spiral geometries
using *EM_CIRCUIT_CONNECT.

Add EM contact into new EM 2d axi, in SMP and MPP.

Add *EM_BOUNDARY support in new EM 2d axi solver.

Introduce scalar potential in new EM 2d axi. The 2d axi can also be
coupled with imposed voltage.

Add new keyword *EM_CIRCUIT_CONNECT to impose linear
constraints between circuits with imposed currents in 3d solvers.
This allows for example to impose that the current in circuit 1
is equal to the current in circuit 2 even if the 2 correponding
parts are not physically connected.

Add *EM_VOLTAGE_DROP keyword to define a voltage drop
between 2 segment sets. This voltage drop constraint is coupled to the
contact constraint so that the contact (voltage drop =0) has priority over the
*EM_VOLTAGE_DROP constraint.

Add *EM_CONTROL_SWITCH_CONTACT keyword to turn the EM contact detection on and off.

NCYCLBEM/NCYCLFEM in *EM_SOLVER_… can now be different than 1 when EM_CONTACT
detected.

Add RLC circuit for type 3 solver (resistive heating).

Add computation of mutuals/inductances in 2d axi for output to
em_circuit.dat

Add criteria on autotimestep calculation when R,L,C circuit used to take into
account R,L,C period.

Fix keyword counter in d3hsp.

Better and clearer output to terminal screen.

Support jobid for EM ascii file outputs.


________________________ Forming ___________________                          

Improvements to trimming:
– *DEFINE_CURVE_TRIM_NEW: if trim seed node is not defined, we will search a
    seed node based on nodes from the sheet blank and the inside/outside flag
    definition for the trimming curves.
– Map strain tensors to triangular elements after trimming.

Add a new function to the trim of solid elements in normal (3-D) trimming case,
related to *DEFINE_CURVE_TRIM_3D.
If the trimming curve is close to the bottom side, set TDIR=-1.
If the trimming curve is close to the  upper side, set TDIR= 1.

Add to *ELEMENT_LANCING.
Allow parametric expression for variables END and NTIMES.

A bug fix for *CONTROL_FORMING_AUTOPOSITION_PARAMETER_SET:
Fix distance calculation error when the target mesh is too coarse.

Improvements to springback compensations:
– Output the new trimming curve with *DEFINE_CURVE_TRIM_3D (previously
    *DEFINE_CURVE_TRIM), so that it can be easily converted to IGES curve by
    LS-PrePost. or used in another trimming calculation.
– Output each curve to IGES format in the following name format:
    newcurve_scp001.igs, newcurve_scp002.igs, newcurve_scp003.igs, etc.
– Output change in file “geocur.trm”. This update will allow change from
    *DEFINE_CURVE_TRIM(_3D, _NEW), whatever is used for input.

Add a new keyword: *DEFINE_FORMING_CONTACT to facilitate the forming contact
definitions.

Add a new keyword *DEFINE_FORMING_CLAMP, to facilitate clamping simulation.

A new feature in mesh fusion, which allows a moving box to control the fusion,
only if the center of the elements is inside the box can the elements can be
coarsened. Can be used in conjuntion with *DEFINE_BOX_ADAPTIVE.

Add a new feature to *DEFINE_BOX_ADAPTIVE:
Moving box in adaptivity, useful in roller hemming and incremental forming.

In mesh coarsening, if the node is defined in a node set, the connected elements
will be kept from being coarsened. Previously, only *SET_NODE_LIST was supported.
Now option *SET_NODE_GENERAL is allowed.

Add a new function: mesh refinement for sandwich part. The top and bottom layers
are shell elements and the middle layer is solid elements.
Set IFSAND to 1 in *CONTROL_ADAPTIVE.
–  Applies to both 8-noded and 6-noded solid elements.
–  Map stress and history variables to the new elements.


New features related to blank size development *INTERFACE_BLANKSIZE_DEVELOPMENT:
– Add *INTERFACE_BLANKSIZE_SYMMETRIC_PLANE to define symmetric plane in blank
    size development
– Add *INTERFACE_BLANKSIZE_SCALE_FACTOR.  For each trimming, different scale
    factors can be used to compensate the blanksize. This is especially useful
    when the inner holes are small.  Includes an option of offset the target
    curve which is useful if multiple target curves (e.g., holes) and formed
    curves are far from each other.
– Allow target curve to be outside of the surface of the blank.
– Add sorting to the mesh so the initial mesh and the formed mesh do not need
    to have the same sequence for the nodes.
– Add a new variable ORIENT, set to “1” to activate the new algorithm to
    potentially reduce the number of iterations with the use of
    *INTERFACE_BLANKSIZE_SCALE_FACTOR (scale=0.75 to 0.9).
– Fix smooth problem along calculated outer boundary.
– Automatically determine the curve running directions (IOPTION=2 and -2
    now both give the same results).
– Accept parameteric expression.

A bug fix for springback compensation:
*INCLUDE_COMPENSATION_SYMMETRIC_LINES
Fix reading problem of free format in the original coding.

Add a new keyword *CONTROL_FORMING_BESTFIT.
Purpose:  This keyword rigidly moves two parts so that they maximally coincide.
This feature can be used in sheet metal forming to translate and rotate a
spring back part (source) to a scanned part (target) to assess spring back
prediction accuracy.  This keyword applies to shell elements only.

Improvements to *CONTROL_FORMING_AUTOCHECK:
– When IOFFSET=1, rigid body thickness is automatically offset, based on the
    MST value defined in *CONTACT_FORMING_ONE_WAY_SURFACE.
– Add new variable IOUTPUT that when set to 1 will output the offset rigid tool
    mesh, and the new output tool file is: rigid_offset.inc.  After output
    the simulation stops.  See R9.0 Manual for further details.
– When both normal check and offset are used, small radius might cause problem
    for offsetting. The new modification will check the normal again after
    offsetting the tool
– When outputting the rigid body mesh, output the bead nodes also.
– Changes to *CONTROL_FORMING_AUTOCHECK when used together with SMOOTH option:
    check and fix rigid body bad elements before converting the master part ID
    to segment set id to be used by SMOOTH option.
– Set IOUTPUT.eq. 3 to output rigid body mesh before and after offset.
– Fix problems offseting a small radius to a even smaller radius.
– Remove T-intersection.

For *CONTROL_IMPLICIT_FORMING, fix output messages in d3hsp that incorrectly
identified steps as implicit dynamic when they were actually implicit static.
dynamic when they were actually implicit static.

Improve *CONTROL_FORMING_UNFLANGING:
– Automatically calculate CHARLEN, so user does not need to input it anymore.
– Allow nonsmooth flange edge.
– Instead of using preset value of 0.4 (which works fine for thin sheet metal),
    blank thickness is now used to offset the slave node (flanges) from the
    rigid body (die).


________________________ *FREQUENCY_DOMAIN ___________________                

*FREQUENCY_DOMAIN_RANDOM_VIBRATION:
Fixed a bug in dumping d3psd binary database, when both stress and strain are included.

*FREQUENCY_DOMAIN_SSD_ERP:
Implemented the Equivalent adiated Power (ERP) computation to MPP.

*FREQUENCY_DOMAIN_ACOUSTIC_BEM:
– Enabled running dual collocation BEM based on Burton-Miller formulation
    (METHOD=4) with vibration boundary conditions provided by
    Steady State Dynamic analysis (*FREQUENCY_DOMAIN_SSD).
– Added exponential window function for FFT (FFTWIN=5).
– Implemented a new forward and backward mixed radix FFT.
– Implemented acoustic computation restart from frequency domain boundary
    conditions, in addition to time domain boundary conditions (RESTRT=1).
– Enabled out-of-core velocity data storage, to solve large scale problems.
– Implemented option HALF_SPACE to Rayleigh method (METHOD=0) to consider
    acoustic wave reflection.
– Added velocity interpolation to take care of mismatching between acoustic
    mesh and structural mesh (*BOUNDARY_ACOUSTIC_MAPPING), for the case
    that the boundary conditions are provided by Steady State Dynamic analysis.
– Added weighted SPL output to acoustic computation (DBA=1,2,3,4).
– Implemented radiated sound power, and radiation efficiency computation to
    collocation BEMs (METHOD=3,4). Added new ASCII xyplot databases Press_Power
    and Press_radef to save the sound power and radiation efficiency results.
– Enabled using both impedance and vibration (velocity) boundary conditions in
    acoustic simulation.

*FREQUENCY_DOMAIN_ACOUSTIC_FEM:
– Added weighted SPL output to FEM acoustics (DBA=1,2,3,4).
– Implemented option EIGENVALUE to perform acoustic eigenvalue analysis; added
    ASCII database eigout_ac to save acoustic eigenvalue results; added binary
    plot database d3eigv_ac to save acoustic eigenvectors.
– Enabled consideration of nodal constraints in acoustic eigenvalue analysis.
– Enabled FEM acoustic analysis with frequency dependent complex sound speed.
– Implemented pressure and impedance boundary conditions.

*FREQUENCY_DOMAIN_ACOUSTIC_FRINGE_PLOT:
– Added this keyword to 1) generate acoustic field points as a sphere or plate
    mesh (options SPHERE and PLATE), or 2) define acoustic field points mesh
    based on existing structure components (options PART, PART_SET and NODE_SET)
    so that user can get fringe plot of acoustic pressure and SPL. The results
    are saved in binary plot database d3acs (activated by keyword
    *DATABASE_FREQUENCY_BINARY_D3ACS).

*FREQUENCY_DOMAIN_RANDOM_VIBRATION:
– Changed displacement rms output in d3rms to be the displacement itself,
    without adding the original nodal coordinates.
– Implemented von mises stress PSD computation in beam elements.
– Implemented fatigue analysis with beam elements.
– Added strain output to binary plot databases d3psd and d3rms, and
    binout database elout_psd.
– Added initial damage ratio from multiple loading cases (INFTG > 1).

*FREQUENCY_DOMAIN_SSD:
– Implemented option ERP to compute Equivalent Radiated Power. It is a fast and
    simplified way to characterize acoustic behavior of vibrating structures.
    The results are saved in binary plot database d3erp (activated by keyword
    *DATABASE_FREQUENCY_BINARY_D3ERP), and ASCII xyplot files ERP_abs and ERP_dB.
– Implemented fatigue analysis based on maximum principal stress and maximum shear stress.


________________________ ICFD (Incompressible Flow Solver)  ________________  

New features and Major modifications pertaining to ICFD:
 ——————————————————————–

– *ICFD_BOUNDARY_FSWAVE
    Added a boundary condition for wave generation of 1st
     order stokes waves with free surfaces.
– *ICFD_DATABASE_DRAG_VOL
    For computing pressure forces on volumes ID (useful for forces in porous
     domains), output in icfdragivol.dat and icfdragivol.#VID.dat.
– *ICFD_CONTROL_DEM_COUPLING
    Coupling the ICFD solver with DEM particles is now possible.
– *ICFD_CONTROL_MONOLITHIC
    Added a monolithic solver (=1) which can be selected instead of the
     traditionnal fractional step solver (=0).
– *ICFD_CONTROL_POROUS
    This keyword allows the user to choose between the Anisotropic Generalized
     Navier-Stokes model (=0) or the Anisotropic Darcy-Forchheimer model (=1)
     (for Low Reynolds number flows). The Monolithic solver is used by default
     for those creeping flows.
– *ICFD_CONTROL_TURBULENCE
    Modified existing standard k-epsilon.
    Added Realizable k-epsilon turbulence model.
    Added Standard 98 and 06 Wilcox and Menter SST 03 turbulence models.
    Added Several laws of the wall.
    Added Rugosity law when RANS turbulence model selected.
– *ICFD_MODEL_POROUS
    Added Porous model 5 for anistropic materials defined by P-V experimental
     curves.
    Added porous model 6 for moving domain capabilities for Porous Media volumes
     using load curves for permeabilities directions.
    Added porous model 7 for moving domain capabilities for Porous Media volumes
     using ICFD_DEFINE_POINT for permeabilities directions.
    Added porous model 9 for a new Anisotropic Porous Media flow model
     (PM model ID=9): It uses a variable permeability tensor field
     which is the result of solid dynamic problems. The model reads the
     solid mesh and the field state and maps elemental permeability
     tensor and solid displacements to the fluid mesh.
– *ICFD_MODEL_NONNEWT
    Added a few models for non newtonian materials and temperature dependant viscosity :
     – model 1 : power law non newtonian (now also temperature dependant)
     – model 2 : carreau fluid
     – model 3 : cross fluid
     – model 4 : herschel-bulkley
     – model 5 : cross fluid II
     – model 6 : temperature dependant visc (sutherland)
     – model 7 : temperature dependant visc (power law)
     – model 8 : load curve dependant visc
    Model 8 is especially interesting since a DEFINE_FUNCTION can be used (for
     solidification applications).
– *ICFD_SOLVER_TOL_MONOLITHIC
    Used to define atol, rtol, dtol and maxits linear solver convergence
     controls of the monolithic NS time integration
– *MESH_BL
    Added support for boundary layer mesh creation by specifying the
     thickness, number of layers, first node near the surface and the
     strategy to use to divide and separate the elements inside the BL
     adding.


Additions or modifications to existing keywords pertaining to ICFD:
 ——————————————————————–

– *ICFD_BOUNDARY_PRESCRIBED_VEL
    Added the support of DEFINE_FUNCTION making the second line of the keyword
     obsolete.
– *ICFD_CONTROL_TIME
    Min and Max timestep values can be set.
– *ICFD_DATABASE_DRAG
    Added frequency output.
    Added option to output drag repartition percentage in the d3plots as a
     surface variable.
– *ICFD_CONTROL_IMPOSED_MOVE
    This keyword now uses *ICFD_PART and *ICFD_PART_VOL instead of *MESH_VOL for ID.
     It is now possible to impose a rotation on a part using Euler angles.
– *ICFD_CONTROL_OUTPUT
    Field 4 now to output mesh in LSPP format and in format to be run by the
     icfd solver (icfd_fluidmesh.key and icfd_mesh.key).
    icfd_mesh.key now divides the mesh in ten parts, from best quality element
     decile to worst.
    A new mesh is now output at every remeshing.
    Added support for parallel I/O for Paraview using the PVTU format.
– *ICFD_DEFINE_POINT
    Points can now be made to rotate or translate.
– *ICFD_MAT
    Nonnewtonian models and Porous media models are now selected in the third
     line by using the new ICFD_MODEL keyword family.
    HC and TC can now be made temperature dependent.
– *ICFD_CONTROL_DIVCLEAN
    Added option 2 to use a potential flow solver to initialize the
     Navier Stokes solver.
– *ICFD_CONTROL_FSI
    Field 5 provides a relaxation that starts after the birthtime.
– *ICFD_CONTROL_MESH
    Field 3 added a new strategy to interpolate a mesh size during the node
     insertion. In some cases it speeds up the meshing process and produces
     less elements.  Field 4 changes the meshing strategy in 2d.
– *ICFD_CONTROL_SURFMESH
    Added support for dynamic re-meshing/adaptation of surface meshing.


Bug fixes or minor improvements pertaining to ICFD:
 ——————————————————————–

– *ICFD_BOUNDARY_PRESCRIBED_VEL
    VAD=3 now works with DOF=4.
    SF can be lower than 0.
– PID can be over 9999 in *ICFD_DATABASE_FLUX.
– Fixed d3hsp keyword counter.
– Clarified terminal output.
– Y+ and Shear now always output on walls rather than when a turbulence model
    was selected.
– Added coordinate of distorted element before remeshing occurs. Output on
    terminal and messag file
– Fixed bug in conjugate heat transfer cases. When an autotimestep was selected
    in *ICFD_CONTROL_TIME, it would always only take the thermal timestep.
– An estimation of the CFL number is now output in the d3plot files. This is
    not the value used for the autotimestep calculation.
– Turbulence intensity is now output in the d3plots.
– Jobid now supported for ICFD ASCII File outputs.
– Fixed communication of turbulent constants in MPP.
– Fixed the Near Velocity field output.
– Increasing the limit of number of parts for the model.
– Temperature added as a surface variable in output.
– Fixed non-linear conjugate heat solver.


________________________ Implicit ___________________                         

Fixed Implicit for the case of Multi-step Linear (*CONTROL_IMPLICIT_GENERAL with NSOLVR=1)
with Intermittent Eigenvalue Computation (*CONTROL_IMPLICIT_EIGENVALUE with NEIG<0).
Recent fix for resultant forces for Multi-step Linear cause segmentation fault when Intermittent
Eigenvalue Computation was also active.

Fix possible issue related to constrained contacts in MPP implicit
not initializing properly.

Fixed label at beginning of implicit step to be correct for the case of
controlling implicit dynamics via a load curve (*CONTROL_IMPLICIT_DYNAMICS).

Corrected the computation of modal stresses with local coordinate terms and for
some shell elements (see MSTRES on *CONTROL_IMPLICIT_EIGENVALUE).

Corrected *CONTROL_IMPLICIT_INERTIA_RELIEF logic in MPP.
In some cases the rigid body modes were lost.

Enhanced implicit’s treatment of failing spotwelds (*CONSTRAINED_SPOTWELD).

Added additional error checking of input data for *CONTROL_IMPLICIT_MODAL_DYNAMICS_DAMPING.

Per user request we added the coupling of prescribed motion constraints for Modal Dynamics
by using constraint modes.  See *CONTROL_IMPLICIT_MODAL_DYNAMIC.

Added reuse of the matrix reordering for MPP implicit execution.  This will reduce the
symbolic processing time which is noticable when using large numbers of MPP processes.
Also added prediction of non tied contact connections for standard contact and mortar
contact.  This allows reuse of the ordering when contact interfaces are changing very
slightly but can increase the cost of the numerical factorization.  Useful only for
MPP using large numbers of processes for large finite element models.  This
reuse checking happens automatically for MPP and is not required for SMP.

Apply improvements to Metis memory requirements used in Implicit MPP.
Enhanced Metis ordering software (ORDER=2, the default, on *CONTROL_IMPLICIT_SOLVER).

Added new keyword *CONTROL_IMPLICIT_ORDERING to control of features of the ordering
methods for the linear algebra solver in MPP Implicit.  Only should be used by
expert users.

The following 4 enhancements are applicable when IMFLAG>1 on *CONTROL_IMPLICIT_GENERAL.
– Implicit was modified to reset the time step used in contact when switching from
    implicit to explicit.
– Adjusted implicit mechanical time step for the case of switching from
    explicit to implicit so as not to go past the end time.
– Explicit with intermittent eigenvalue analysis was getting incorrect results after the
    eigenvalue analysis because an incorrect time step was used for the implicit computations.
    For this scenario implicit now uses the explicit time step.
– The implicit time step is now reset for the dump file in addition to explicit’s time.

Implicit’s treatment of prescribed motion constraints defined by a box had to be enhanced
to properly handle potential switching to explicit.

The following 6 enhancements are for matrix dumping (MTXDMP>0 on *CONTROL_IMPLICIT_SOLVER)
or for frequency response (*FREQUENCY_DOMAIN) computations.
– Corrected the collection of *DAMPING_PART_STIFFNESS terms for elements like
    triangles and 5, 6, and 7 noded solid elements.
– Corrected Implicit’s access of *DAMPING_PART_STIFFNES parameter when triangle and tet
   sorting is activiated.
– Fixed Implicit’s collecting of damping terms for beams that have reference nodes.
– There is an internal switch that turns off damping for beams if the run is implicit static.
    This switch needed to be turned off for explicit with intermittent eigenvalue analysis.
– Fixed collecting of stiffness damping terms for implicit.  Corrected the loading of mass
    damping terms when collecting damping terms for post processing.
– Extend matrix dumping to include dumping the solution vector in addition to the matrix and
    right-hand-side.

Adjusted Implicit’s handling of sw1. and sw3. sense switches to properly handle
dumping.  If sw1. sense switch is issued when not at equilibrium, then reset time and
geometry to that at the end of last implicit time step.  If sw3. sense switch
is issued, then wait until equilibrium is reached before dumping and continuing.

Enable the use of intermittent eigenvalue computation for models using inertia relief and/or
rotational dynamics.  See NEIG<0 on *CONTROL_IMPLICIT_EIGENVALUE and *CONTROL_INERTIA_RELIEF
and *CONTROL_IMPLICIT_ROTATIONAL_DYNAMICS.

Due to round-off, an implicit intermittent eigenvalue computation was occasionally skipped.
A fudge factor of 1/1000 of the implicit time step was added to compensate for round-off error
in the summation of the implicit time.  See NEIG<0 on *CONTROL_IMPLICIT_EIGENVALUE.

Added support for *CONSTRAINED_LINEAR for 2D implicit problems.  It was already supported
for standard 3D problems.

Added warning for implicit when the product of ILIMIT and MAXREF (two parameters on
*CONTROL_IMPLICIT_SOLUTION) is too small.  For the special case when the user changes
the default of ILIMIT to 1 to choose Full Newton and does not change MAXREF then MAXREF is
reset to 165 and a warning is generated.  Reinstate the option of MAXREF < 0.

Fixed the display of superelements in LS-PrePost.  Enhanced reading of Nastran dmig files
to allow for LS-DYNA-like  comment lines starting with ‘$’.  Fixed a problem with implicit
initialization in MPP with 2 or more superelements.  See *ELEMENT_DIRECT_MATRIX_INPUT.

Turned off annoying warning messages associated with zero contact elemental
stiffness matrices coming from mortar contact.  See *CONTACT_…_MORTAR

Fixed construction of d3mode file in MPP.  Involves proper computation of the reduced
stiffness matrix.  See *CONTROL_IMPLICIT_MODES

Fixed up *PART_MODES to correctly handle constraint modes.
– removed rigid body modes
– correct construction of reduced stiffness matrix

Enhanced the error handling for input for *PART_MODES.

Modified open statements for binary files used by implicit to allow for use of *CASE.

Removed internal use files such as spooles.res when not required for debugging.

Fixed implicit static condensation and implicit mode computation to properly deal
with the *CASE environment.  See *CONTROL_IMPLICIT_STATIC_CONDENSATION and
*CONTROL_IMPLICIT_MODES.  Sort node/dof sets for implicit_mode to get correct results.
Properly handle cases with only solid elements.

Add implicit implementation of the new “last location” feature for MPP error tracking.

Fixed problem with implicit processing of rigid body data with
deformable to rigid switching (*DEFORMABLE_TO_RIGID).

Extended Implicit model debugging for LPRINT=3 (*CONTROL_IMPLICIT_SOLVER) to isogeometric
and other large elemental stiff matrices.

Added beam rotary mass scaling to the modal effective mass computation.
Enhanced implicit computation of modal effective mass that is output to file eigout
with *CONTROL_IMPLICIT_EIGENVALUE.  We had to account for boundary SPC constraints as
well as beam reference nodes to get the accumulated percentage to add up to 100%.

Fixed a problem reporting redundant constraints for MPP Implicit.

Enhanced *CONTACT_AUTO_MOVE for implicit.

Fixed Implicit handling of *CONSTRAINED_TIE-BREAK in MPP.

Added support for implicit dynamics to *MAT_157 and *MAT_120.

Skip frequency damping during implicit static dynamic relaxation.

Added feature to simulate brake squeal. Transient and mode analysis can be
combined to do the brake squeal study by intermittent eigenvalue analysis.
Besides *CONTROL_IMPLICIT_ROTATIONAL_DYNAMICS, *CONTROL_IMPLICIT_SOLVER should
also be used, setting LCPACK=3 to enable unsymmetric stiffness matrix.
In the non-symmetric stiffness matrix analysis such as brake squeal analysis,
the damping ratio, defined as -2.0*RE(eigenvalue)/ABS(IMG(eigenvalue)),
can be output to the eigout file and plotted in LS-PrePost.
A negative damping ratio indicates an unstable mode.

Add a warning message if the defined rotational speed is not the same as NOMEG
in *CONTROL_IMPLICIT_ROTATIONAL_DYNAMICS.

*CONTROL_IMPLICIT
Fixed a bug to initialize velocity correctly when using a displacement file in
dynamic relaxation for implicit MPP.

Nonlinear implicit solver 12 is made default implicit solver, which is aimed for
enhanced robustness in particular relation to BFGS and line search.

Parameter IACC available on *CONTROL_ACCURACY to invoke enhanced accuracy in selected
elements, materials and tied contacts. Included is strong objectivity in the most
common elements, strong objecitity and physical respons in most commont tied contacts
and full iteration plasticity in *MATs 24 and 123. For more detailed information
refer to the manual.

Bathe composite time integration scheme implemented for increased
stability and conservation of energy/momentum, see *CONTROL_IMPLICIT_DYNAMICS.
Time integration parameter ALPHA on CONTROL_IMPLICIT_DYNAMICS is used for activation.

For NLNORM.LT.0 all scalar products in implicit are with
respect to all degrees of freedom, sum of translational
and rotational (similar to NLNORM.EQ.4), just that the
rotational dofs are scaled using ABS(NLNORM) as a
characteristic length to appropriately deal with consistency
of units.

The message ‘convergence prevented due to unfulfilled
bc…’ has annoyed users. Here this is loosened up a
little and also accompanied with a check that the bc
that prevents convergence is actually nonzero. Earlier
this prevention has activated even for SPCs
modelled as prescribed zero motion, which does not make
sense.

Implicit now writes out the last converged state to the
d3plot database on error termination if not already written.

Fixed bug for *CONTROL_IMPLICIT_MODAL_DYNAMIC if jobid is used.


________________________ *INITIAL ___________________                         

Fix incorrect NPLANE and NTHICK for *INITIAL_STRESS_SHELL when output to dynain
file 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.

*INITIAL_EOS_ALE: Allow initialization of internal energy density, relative volume, or
pressure in ALE elements by part, part set, or element set.

*INITIAL_VOLUME_FRACTION_GEOMETRY: Add option (FAMMG<0) to form pairs of groups in
*SET_MULTI-MATERIAL_GROUP_LIST to replace the first group of the pair by the second one.

*INITIAL_STRESS_DEPTH can now work with
parts that have an Equation of State (EOS types 1, 4, 6 only).
Note however that *INITIAL_STRESS_DEPTH does not work with ALE.

Fix several instances of overwriting the initial
velocities of any interface nodes read in from a linking file (SMP only).

*INITIAL_VOLUME_FRACTION_GEOMETRY:
Add local coordinate system option for box.

The initial strain and energy is calculated for *INITIAL_FOAM_REFERENCE_GEOMETRY.

Add the option of defining the direction cosine using two nodes for
*INITIAL_VELOCITY_GENERATION.

Fix incorrect transformation of *DEFINE_BOX which results in incorrect initial
velocities if the box is used in *INITIAL_VELOCITY.

Fix incorrect initial velocity when using *INITIAL_VELOCITY with NX=-999.

Fix seg fault when using *INITIAL_INTERNAL_DOF_SOLID_TYPE4 in dynain file.

Do not transform the translational velocities in *INITIAL_VELOCITY or
*INITIAL_VELOCITY_GENERATION if the local coordinate system ICID is defined.

Fix uninitialized velocities when using *INITIAL_VELOCITY_GENERATION with STYP=2,
i.e. part id, for *ELEMENT_SHELL_COMPOSITE/*ELEMENT_TSHELL_COMPOSITE.

Fix incorrect initialization of velocities if using *INITIAL_VELOCITY_GENERATION
with STYP=1, i.e. part set for shells with formulation 23 & 24.

Fix incorrect initial velocity and also mass output to d3hsp for shell types 23 & 24.

Fix incorrect initial velocities when using *INITIAL_VELOCITY_GENERATION with
irigid=1 and *PART_INERTIA with xc=yc=zc=0 and nodeid>0 with *DEFINE_TRANSFORMATION.

Fix incorrect stress initialization of *MAT_057/MAT_LOW_DENSITY_FOAM using dynain
file with *INITIAL_STRESS_SOLID when NHISV is equal to the number of history
variables for this mat 57.

Fix seg fault when reading dynain.bin

Fixed stress initialization (*INITIAL_STRESS_SECTION) for type 13 tetrahedral elements.
The pressure smoothing was causing incorrect pressure values in the elements
adjacent to the prescribed elements.

Assign initial velocities (*INITIAL_VELOCITY) to beam nodes that are generated
when release conditions are defined (RT1, RT2, RR1, RR2 on *ELEMENT_BEAM.)

Added an option to retain bending stiffness in spot weld beams that have
prescribed axial force.  To use is, set KBEND=1 on *INITIAL_AXIAL_FORCE_BEAM.

Fix for *INITIAL_STRESS_BEAM when used with spotweld beam type 9.
It was possible that error/warning message INI+140 popped up
even if number of integration points matched exactly.

Fix for the combination of type 13 tet elements and *INITIAL_STRESS_SOLID.
The necessary nodal values for averaging (element volume, Jacobian)
were not correctly initialized. Now the initial volume (IVEFLG) is used
to compute the correct initial nodal volume.


________________________ Isogeometric Elements ___________________            

Enable spc boundary condition to be applied to extra nodes of nurbs shell,
see *CONSTRAINED_NODES_TO_NURBS_SHELL

Fix a bug for isogeometric element contact, IGACTC=1, that happens when more
than one NURBS patches are used to model a part so that a interpolated elements
have nodes belonging to different NURB patches.

*ELEMENT_SOLID_NURBS_PATCH:
– Enable isogeometric analysis for solid elements, it is now able to do explicit
and implicit analysis, such as contact and eigenvalue analysis, etc.
– Add mode stress analysis for isogeometric solid and shell elements so that the
isogeometric element is also able to do frequency domain analysis.

Add reduced, patch-wise integration rule for C1-continuous quadratic
NURBS. This can be used by setting INT=2 in *ELEMENT_SHELL_NURBS_PATCH.

Add trimmed NURBS capability. Define NL trimming loops to specify a
trimmed NURBS patch. Use *DEFINE_CURVE (DATTYP=6) to specify define
trimming edges in the parametric space.

Fix bug in added mass report for *ELEMENT_SHELL_NURBS_PATCH in MPP.


________________________ *LOAD ___________________                            

*LOAD_GRAVITY_PART and staged construction (*DEFINE_STAGED_CONSTRUCTION_PART)
were ignoring non-structural mass MAREA (shells) and NSM (beams). Now fixed.

Fix for *INTERFACE_LINKING in MPP  when used with adaptivity.

Updates for *INTERFACE_LINKING so that it can be used with adaptivity, provided
the linked parts are adapting.

Fix for *INTERFACE_LINKING when used
with LSDA based files generated by older versions of the code.

*DEFINE_CURVE_FUNCTION:
– Functions “DELAY”, PIDCTL” and “IF” of are revised.
– Add sampling rate and saturation limit to PIDCTL of *DEFINE_CURVE_FUNCTION.
– “DELAY” of *DEFINE_CURVE_FUNCTION can delay the value of a time-dependent
    curve by “-TDLY” time steps when TDLY<0.

Add edge loading option to *LOAD_SEGMENT_SET_NONUNIFORM.

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.

Fix incorrect pressure applied if the directional cosines, V1/V2/V3, for
*LOAD_SEGMENT_SET_NONUNIFORM do not correspond to a unit vector.

Add *DEFINE_FUNCTION capability to *LOAD_SEGMENT_SET for 2D analysis.

Fix incorrect behavior when using arrival time, AT, or box, BOXID, in
*LOAD_ERODING_PART_SET.

Fix error when runing analysis with  *LOAD_THERMAL_CONSTANT_ELEMENT_(OPTION) in
MPP with ncpu>1.

Fixed *LOAD_STEADY_STATE_ROLLING when used with shell form 2 when used with Belytschko-
Wong-Chang warping stiffness (BWC=1 *CONTROL_SHELL).

Add “TIMESTEP” as a code defined value available for *DEFINE_FUNCTION
and *DEFINE_CURVE_FUNCTION. It holds the current simulation timestep.

Fixed issues involving *LOAD_THERMAL_D3PLOT.

Allow extraction of node numbers in loadsetud for all values of LTYPE in
*USER_LOADING_SET. Comments included appropriately in the code.
Argument list of loadsetud is changed accordingly.

Implemented SPF simulation (*LOAD_SUPERPLASTIC_FORMING) for 2d problems.

Added effective stress as target variable for SPF simulation.

Added box option for SPF simulation to limit target search regions.


________________________ *MAT ___________________                             

Fix output to d3hsp for *MAT_HYPERELASTIC_RUBBER. Broken in r93028.

Error terminate with message, KEY+1115, if _STOCHASTIC option is invoked for
*MATs 10,15,24,81,98, 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 adaptivity.

Fixed *MATs 161 and 162 when run with MPP.
The array that is used to share delamination data across processors had errors.

*MAT_261/*MAT_262:
Fixed problem using *DAMPING_PART_STIFFNESS together with RYLEN=2 in
*CONTROL_ENERGY.

Added safety check for martensite phase kinetics in *MAT_244.

Fix for combination of *MAT_024_STOCHASTIC and shell elements
type 13, 14, and 15 (with 3d stress state).

Fix bug in *MATs 21 and 23 when used with *MAT_ADD_THERMAL_EXPANSION.

*MAT_ALE_VISCOUS: Implement a user defined routine in dyn21.F to compute the
dynamic viscosity.

Add histlist.txt to usermat package.  This file lists the history variables by
material.

Bug in *MAT_089 fixed:
The load curve LCSS specifies the relationship between “maximum equivalent strain”
and the von Mises stress. The “maximum equivalent strain” includes both elastic
and plastic components. The material model was not calculating this variable as
intended, so was not following LCSS accurately. The error was
likely to be more noticeable when elastic strains are a
significant proportion of the total strain e.g. for small strains or
low initial Youngs modulus.

Fixed bug affecting *MAT_119:
unpredictable unloading behaviour in local T-direction if there are
curves only for the T-direction and not for the S-direction.

Fixed bug in *MAT_172:
Occured when ELFORM=1 (Hughes-Liu shell formulation) was combined with Invariant
Numbering (INN>0 on *CONTROL_ACCURACY). In this case, the strain-softening
in tension did not work: after cracking, the tensile strength remained
constant.

New option for *MAT_079:
Load curve LCD defining hysteresis damping versus maximum strain to date.
This overrides the default Masing behaviour.

*MAT_172:
– Added error termination if user
    inputs an illegal value for TYPEC. Previously, this condition could lead
    to abnormal terminations that were difficult to diagnose.
– Fixed bug affecting ELFORM=16 shells made of *MAT_172 – spurious
    strains could develop transverse to the crack opening direction.

Fixed bug in *MAT_ARUP_ADHESIVE (*MAT_169).
The displacement to failure in tension was not as implied by the inputs
TENMAX and GCTEN. For typical structural adhesives with elastic stiffness
of the order of 1000-10000 MPa, the error was very small. The error became
large for lower stiffness materials.

*MAT_SPR_JLR:
– Modify output variables from *MAT_SPR_JLR (see Manual).
– Fix bug that caused spurious results or unexpected element deletion if TELAS=1.

Fixed bug in *MAT_174 – the code could crash when input parameters EUR=0 and FRACR=0..

Fix MPP problem when writing out aea_crack file for *MAT_WINFRITH.

Include *MAT_196 as one that triggers spot weld thinning.

*MAT_ADD_FATIGUE:
Implemented multi slope SN curves to be used in random vibration fatigue
(*FREQUENCY_DOMAIN_RANDOM_VIBRATION_FATIGUE) and SSD fatigue
(FREQUENCY_DOMAIN_SSD_FATIGUE).

Guard against possible numerical round off that in some cases might result in
unexpected airflow in *MAT_ADD_PORE_AIR.

Added new material *MAT_115_O/*MAT_UNIFIED_CREEP_ORTHO.

*MAT_274: Added support for 2D-solids. New flag (parameter 8 on card 2) is used to
switch normal with in-plane axis.

*MAT_255: Fixed bug in plasticity algorithm and changed from total strain rate to
plastic strain rate for stability. Added VP option (parameter 5 on card 2) for
backwards compatibility: VP=0 invokes total strain rate used as before.

Added new cohesive material *MAT_279/*MAT_COHESIVE_PAPER to be used in conjunction
with *MAT_274/*MAT_PAPER.

User materials: Added support for EOS with user materials for tshell formulations 3 and 5.

Fixed bug in dyna.str when using EOS together with shells and orthotropic materials.

*MAT_122: A new version of *MAT_HILL_3R_3D is available. It supports temperature dependent
curves for the Young’s/shear moduli, Possion ratios, and Hill’s anisotropy parameters.
It also supports 2D-tables of yield curves for different temperatures. Implicit dynamics
is supported. The old version is run if parameter 5 on card 3 is set to 1.0.

Added the phase change option to *MAT_216, *MAT_217, *MAT_218 to allow material
properties to change as a function of location. This capability is designed
to model materials that change their properties due to material processing
that is otherwise not modeled. For example, increasing the mass and thickness
due to the deposition of material by spraying. It is not used for modeling
phase changes caused by pressure, thermal loading, or other mechanical
processes modeled within LS-DYNA.

Fix internal energy computation of *MAT_ELASTIC_VISCOPLASTIC_THERMAL/MAT_106.

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.

Set xt=1.0E+16 as default if user inputs 0.0 for *MAT_ENHANCED_COMPOSITE_DAMAGE/
MAT_054.  Otherwise, random failure of elements may occur. Implemented for thick
shells and solids.

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.

Fix non-failure of triangular elements type 4 using *MAT_ADD_EROSION with
NUMFIP=-100.

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(statics) to explicit switching.

Fix error due to convergence when using *MAT_CONCRETE_EC2/MAT_172 in implicit
and when FRACRX=1.0 or FRACRY=1.0

Fix incorrect fitting results for *MAT_OGDEN_RUBBER/MAT_077_O if the number
of data points specifed in LCID is >100.

Fix incorrect fitting results for *MAT_MOONEY-RIVLIN-RUBBER/MAT_027 if the number
of data points specifed in LCID is >100.

Fix incorrect forces/moments when preloads are used for
*MAT_067/NONLINEAR_ELASTIC_DISCRETE_BEAM and the strains changes sign.

Implement *MAT_188/MAT_THERMO_ELASTO_VISCOPLASTIC_CREEP for 2D implicit analysis.

Support implicit for *MAT_121/MAT_GENERAL_NONLINEAR_1DOF_DISCRETE_BEAM.

Fix seg fault when using *DEFINE_HAZ_TAILOR_WELDED_BLANK with *DEFINE_HAZ_PROPERTIES.

Fix ineffective *MAT_ADD_EROSION if the MID is defined using a alphanumeric label.

Fix seg fault when using *MAT_PIECEWISE_LINEAR_PLASTIC_THERMAL/MAT_255 for solids.

Zero the pressure for *MAT_JOHNSON_HOLMQUIST_JH1/MAT_241 after it
completely fractures, i.e. D>=1.0, under tensile load.

Fix incorrect element failure when using EPSTHIN and VP=0 for *MAT_123/
MODIFIED_PIECEWISE_LINEAR_PLASTICITY.

Fix error termination when using adaptive remeshing for 2D analysis with
*MAT_015/JOHNSON_COOK and NIP=4 in *SECTION_SHELL and ELFORM=15.

Fix erosion due to damage, max shear & critical temperature in elastic state
for *MAT_MODIFIED_JOHNSON_COOK/MAT_107 for solids.

Check diagonal elements of C-matrix of *MAT_002/MAT_{OPTION}TROPIC_ELASTIC and
error terminate with message, STR+1306, if any of them are negative.

Fix plastic strain tensor update for *MAT_082/*MAT_PLASTICITY_WITH_DAMAGE.

Fix error when using *MAT_144/MAT_PITZER_CRUSHABLE_FOAM with solid tetahedron type 10.

Fix out-of-range forces after dynamic relaxation when using VP=1 for
*MAT_PIECEWISE_LINEAR_PLASTICITY and non-zero strain rate parameters, C & P, and
the part goes into plastic deformation during dynamic relaxation.

Fixed unit transformation for GAMAB1 and GAMAB2 on *MAT_DRY_FABRIC.  We were
incorrectly transforming them as stress.

Fixed implicit solutions with shell elements that use *MAT_040 and laminated
shell theory.

Fixed the stress calculation in the thermal version of *MAT_077.

Corrected the AOPT=0 option of ortho/anisotropic materials when use with skewed
solid elements. Previously, the material direction was initialized to be equivalent
to the local coordinate system direction.  This is not consistent with the manual
for skewed elements which states that the material a-axis is in the 1-2 directions
for AOPT=0.  This is now fixed and the manual is correct.

Fixed the AOPT=0 option of ortho/anisotropic materials for tetrahedral element
forms 10, 13, and 44.

Fixed *MAT_082 for solid elements.  An error in the history data was causing
possible energy growth or loss of partially damaged elements.

Modified *MAT_FABRIC/*MAT_034 FORM=24 so that Poisson’s effects occur in tension only.

Modified *MAT_221/*MAT_ORTHOTROPIC_SIMPLIFIED_DAMAGE to correct the damage
behavior.  Prior to this fix, damage was applied to new increments of stress, but
not the stress history, so material softening was not possible.

Fixed *MAT_106 when used with curves to define the Young’s modulus and
Poisson’s ratio and when used with thick shell form 5 or 6.  The assumed
strain field was unreasonable which caused implicit convergence to fail.

Added 2 new erosion criteria for *MAT_221/*MAT_ORTHOTROPC_SIMPLIFIED_DAMAGE.
The new options are
   NERODE=10:  a or b directions failure (tensile or compressive) plus out of plane failure bc or ca.
   NERODE=11:  a or b directions failure (tensile only) plus out of plane failure bc or ca.

Added a new option for shell *MAT_022/*MAT_COMPOSITE_DAMAGE.
When ATRACK=1, the material directions will follow not only element
rotation, but also deformation.  This option is useful for modeling
layered composites, that have material a-directions that vary by layer,
by allowing each layer to rotate independently of the others.  Within
each layer, the b-direction is always orthogonal to the a-direction.

Fixed the TRUE_T option on *MAT_100 and *MAT_100_DA.  If the weld connects shells
with different thickness and therefore different bending stiffness, the scheme used
by TRUE_T to reduce the calculated moment could behave somewhat unpredictably.
With the fix, TRUE_T behaves much better, both for single brick welds and brick
assemblies.

Added a warning message and automatically switch DMGOPT>0 to DMGOPT=0 on
*MAT_FABRIC when RS < EFAIL or RS = EFAIL.  This prevents a problem
where weld assemblies did not fail at all when RS=0.

*MATs 9, 10, 11, 15, 88, and 224 are now available for thick shells,
however only *MATs 15, 88, and 224 are available for the 2D tshell forms 1,2, and 6.

Added thick shell support for the STOCHASTIC option of *MATs 10, 15, 24, 81, and 98.

Added support for *MAT_096 for several solid element types including
ELFORMs 3, 4, 15, 18, and 23.

Added a MIDFAIL keyword option for *MAT_024, (MAT_PIECEWISE_LINEAR_PLASTICITY).  With
this option, element failure does not occur until the failure strain is reached in the
mid plane layer.  If an even number of layers is used, then the failure occurs when the
2 closest points reach the failure strain.

Enabled *MATs 26 and 126 (HONEYCOMB) to be used with thick shell forms
3, 5, and 7.  These was initialized incorrectly causing a zero stress.

Enabled *MAD_ADD_EROSION to be used with beams that have user defined integration.
Memory allocation was fixed to prevent memory errors.

Enabled OPT=-1 on *MAT_SPOTWELD for solid elements.

Enabled thick shells to use *MATs 103 and 104 in an implicit solution.
These materials were lacking some data initialization so they would not converge.

Enabled solid elements with user-defined orthotropic materials to work
with the INTOUT and NODOUT options on *DATABASE_EXTENT_BINARY.  The
transformation matrix was stored in the wrong place causing strain and
stress transformations to fail.

Enabled *MAT_017 to run with thick shell forms 3 and 5.  Neither element
was initialized correctly to run materials with equations of state.

Add degradation factors and strain rate dependent strength possibility
for *MAT_054/*MAT_ENHANCED_COMPOSITE_DAMAGE solids.

Fixed bug in *MAT_058/*MAT_LAMINATED_COMPOSITE_FABRIC when used with
strain-rate dependent tables for stiffnesses EA, EB and GAB and LAMSHT=3.

Add strain rate dependency of ERODS in *MAT_058.

Add possibility to use *DEFINE_FUNCTION for *MAT_SPOTWELD_DAMAGE_FAILURE
(*MAT_100), OPT=-1/0. If FVAL=FunctionID, then a *DEFINE_FUNCTION
expression is used to determine the weld failure criterion using the
following arguments: func (N_rr, N_rs, N_rt, M_rr, M_ss, M_tt).

Store tangential and normal separation (delta_II & delta_I) as history
variables 1&2 of *MAT_138/*MAT_COHESIVE_MIXED_MODE.

Add second normalized traction-separation load curve (TSLC2) for Mode II
in *MAT_186/*MAT_COHESIVE_GENERAL.

Fixed bug in using *MAT_157/*MAT_ANISOTROPIC_ELASTIC_PLASTIC with IHIS.gt.0 for
shells.  Thickness strain update d3 was not correct and plasticity algorithm
failed due to typo.

Fixed bug in *MAT_157 for solids:
This affected the correct stress transformation for post-processing
using CMPFLG=1 in *DATABASE_EXTENT_BINARY.

Fixed bug in *MAT_225 (*MAT_VISCOPLASTIC_MIXED_HARDENING) when using
Table-Definition together with kinematic hardening.

Add load curves for rate dependent strengths (XC, XT, YC, YT, SC)
in *MAT_261/*MAT_LAMINATED_FRACTURE_DAIMLER_PINHO (shells only).

Add table definition for LCSS for rate dependency in *MAT_261 (shells only).

Add load curves for rate dependent strengths
(XC, XCO, XT, XTO, YC, YT, SC) in *MAT_262/
*MAT_LAMINATED_FRACTURE_DAIMLER_CAMANHO (shells only).

Fixed bug when using *MAT_261 or *MAT_262 solids (ELFORM=2).

Add load curves for SIGY and ETAN for rate dependency of *MAT_262 (shells only)

*MAT_021_OPTION
– Fixed a bug for defining different orientation angles through the thickness of
    TSHELL elements (formulations 2 and 3)
– Added new option CURING:
  – Two additional cards are read to define parameters for curing kinetics.
      Formulation is based on Kamal’s model and considers one ODE for the state of cure.
  – State of cure does not affect the mechanical parameters of the material.
  – CTE’s for othotropic thermal expansione can be defined in a table with respect to
      state of cure and temperature.
  – An orthotropic chemical shrinkage is accounted for.

*MAT_REINFORCED_THERMOPLASTICS_OPTION (*MAT_249_OPTION)
– Fiber shear locking can be defined wrt to the fiber angle or shear angle.
– Output of fiber angle to history variables.
– Simplified input: Instead of always reading 8 lines, now the user only has to
    specify data for NFIB fibers.
– Added fiber elongation to history variables in *MAT_249 for posprocessing.
– New Option UDFIBER (based on a user defined material by BMW):
  – Transversely isotropic hyperelastic formulation for each fiber family (see Bonet&Burton,1998).
  – Anisotropic bending behavior based on modified transverse shear stiffnesses.
  – Best suited for dry NCF’s.

*MAT_GENERALIZED_PHASE_CHANGE (*MAT_254)
New material that is a generalized version of *MAT_244 with application to
a wider range of metals.
– Up to 24 different phases can be included.
– Between each of the phases, the phase transformation can be defined based on
    a list of generic transformation laws. For heating JMAK and Oddy are
    implemented. For cooling Koistinen-Marburger, JMAK and Kirkaldy can be
    chosen.
– Constant parameters for the transformations are given as 2d tables,
    parameters depending on temperature (rate) or phase concentration employ
    3d tables.
– Plasticity model (temperature and strain rate dependent) similar to MAT_244.
– Transformation induced strains.
– TRIP algorithm included.
– Temperature dependent mixture rules.
– Parameter ‘dTmax’ that defines the maximum temperature increment within a cycle.
    If the temperature difference at a certain integration point is too high,
    local subcycling is performed.
– Implemented for explicit/implicit analysis and for 2d/3d solid elements.

*MAT_ADHESIVE_CURING_VISCOELASTIC (*MAT_277)
New material implementation including a temperature dependent curing process
of epoxy resin based on the Kamal-Sourour-model.
– Material formulation is based on *MAT_GENERAL_VISCOELASTIC.
– Viscoelastic properties defined by the Prony series, coefficients as
    functions of state of cure.
– Chemical and thermal shrinkage considered (differential or secant formulations).
– Available for shell and solid elements.
– Can be used in combination with *MAT_ADD_COHESIVE.
– Implemented for explicit and implicit analysis.
– An incremental and a total stress calculation procedure available.

Enable *MAT_ADD_EROSION to be safely used with material models
that have more than 69 history variables, for now the new limit is 119.

Use correct element ID for output of failed solid elements
when GISSMO (*MAT_ADD_EROSION) is used with *CONTROL_DEBUG.

Improve performance of GISSMO (*MAT_ADD_EROSION with IDAM=1),
especially when used with *MAT_024, no other failure criteria,
shell elements, and DMGEXP = 1 or 2. Allows speed-up of 10 to 20 percent.

Add new keyword *MAT_ADD_GENERALIZED_DAMAGE. It provides a very flexible
approach to add non-isotropic (tensorial) damage to standard materials
in a modular fashion. Solely works with shell elements at the moment.

Correct the computation of effective strain for options
ERODS<0 in *MAT_058 (*MAT_LAMINATED_COMPOSITE_FABRIC)
and EFS<0 in *MAT_261 and *MAT_262 (*MAT_LAMINATED_FRACTURE_DAIMLER_…).
The shear strain term was twice the size as it should have been.

Adjust stiffness for time step calculation in *MAT_076 and subsequent models
(*MAT_176, *MAT_276, …) to prevent rarely observed instabilities.

Add output of original and fitted curves
to messag and separate file (curveplot_<MID>) for *MAT_103.

In *MAT_104 (*MAT_DAMAGE_1), stress-strain curve LCSS can now be used
directly with all FLAG options (-1,0,1,10,11), no fitting.

Correct strain calculation for anisotropic damage in *MAT_104
(*MAT_DAMAGE_1) with FLAG = -1.

Initialize stress triaxiality of *MAT_107 (*MAT_MODIFIED_JOHNSON_COOK)
to zero instead of 1/3.

Avoid negative damage in *MAT_107 (*MAT_MODIFIED_JOHNSON_COOK)
with FLAG2=0 for solid elements.

Rectify the characteristic element length in *MAT_138
(*MAT_COHESIVE_MIXED_MODE) for solids type 21 and 22 (cohesive pentas)
and shell type 29 (cohesive shell) for “curve” options T<0 and S<0.

Correct/improve material tangent for *MAT_181 with PR>0 (foam option).

Add possibility to define logarithmically defined strain rate table
LCID-T in material *MAT_187 (*MAT_SAMP-1).

Fix missing offset when using *DEFINE_TRANSFORMATION with
load curve LCID-P in *MAT_187 (*MAT_SAMP-1).

Add reasonable limit for biaxial strength in *MAT_187 with RBCFAC > 0.5
to avoid concave yield surface.

Improve performance of *MAT_187 to reach speed-up of 10 to 40 percent,
depending on which options are used.

Add new option for *MAT_224 (*MAT_TABULATED_JOHNSON_COOK).
With BETA<0 not only a load curve but now also a table can be referred to.
The table contains strain rate dependent curves, each for a different temperature.

Fix for implicit version of *MAT_224 (*MAT_TABULATED_JOHNSON_COOK).
Computations with shell elements should converge faster now.

*MAT_224 (*MAT_TABULATED_JOHNSON_COOK) can now be used in implicit
even with temperature dependent Young’s modulus (parameter E<0).

Always store the Lode parameter as history variable #10 in *MAT_224
(*MAT_TABULATED_JOHNSON_COOK), not just for LCF being a table.

Variable LCI of *MAT_224 / *MAT_224_GYS can now refer to a *DEFINE_TABLE_3D.
That means the plastic failure strain can now be a function of
Lode parameter (TABLE_3D), triaxiality (TABLE), and element size (CURVE).

For thick shells type 1 and 2, the element size in *MAT_224 is now correct.

Add new option for definition of parameters FG1 and FG2 in *MAT_240
(*MAT_COHESIVE_MIXED_MODE_ELASTOPLASTIC_RATE).

Add new option to *MAT_240: new load curves LCGIC and LCGIIC define
fracture energies GIC and GIIC as functions of cohesive element thickness.
GIC_0, GIC_INF, GIIC_0, and GIIC_INF are ignored in that case.

Add new feature to *MAT_248 (*MAT_PHS_BMW).
Estimated Hocket-Sherby parameters are written to history variables
based on input functions and phase fractions.

Add new option ISLC=2 to *MAT_248 (*MAT_PHS_BMW) which allows to define
load curves (cooling rate dependent values) for QR2, QR3, QR4,
and all parameters on Cards 10 and 11.

Add new option LCSS to *MAT_252 (*MAT_TOUGHENED_ADHESIVE_POLYMER):
A load curve, table or 3d table can now be used to define
rate and temperature dependent stress-strain behavior (yield curve).

Fix for *MAT_255, evaluation of 2d tables LCIDC and LCDIT.
Negative temperatures were interpreted as logarithmic rates.

Add new material model *MAT_280 (*MAT_GLASS) for shell elements.
It is a smeared fixed crack model with a selection of different brittle,
stress-state dependent failure criteria and crack closure effects.

*DEFINE_FABRIC_ASSEMBLIES:
Assemblies of *MAT_FABRIC part sets can be specified to properly treat
bending of t-intersecting fabrics that are stitched or sewn together.
See ECOAT, TCOAT and SCOAT on *MAT_FABRIC_… Bending can only
occur within an assembly, aka a part set.

*MAT_USER_DEFINED_MATERIAL_MODELS:
In user defined material models, a logical parameter ‘reject’
can be set to .true. to indicate to the implicit solver that
equilibrium iterations should be aborted. The criterion is
the choise of the implementor, but it could be if plastic strain
increases by more than say 5% in one step or damage increases
too much, whatever that might render an inaccurate prediction
and bad results. Setting this parameter for explicit won’t do
anything.

IHYPER=3 for user shell materials now supports thickness
strain update, see *MAT_USER_DEFINED_MATERIAL_MODELS.

*MAT_SIMPLIFIED_RUBBER/FOAM:
AVGOPT<0 is now supported for the FOAM option, which activates a time
averaged strain rate scheme to avoid noisy response.

MAT_181 is now supported for 2D implicit simulations.

*MAT_ADD_EROSION:
A number of extensions and improvements to the DIEM damage model were made, IDAM<0.
– General efficiency, it was slow, now it’s GOT to be faster.
– NCS can be used as a plastic strain increment to only evaluate criteria
    in quantifications of plastic strain.
– NUMFIP<0 is employing the GISSMO approach, number of layers for erosion.
– A new ductile damage criterion based on principal stress added (DMITYP=4).
– MSFLD and FLD can be evaluated in mid or outer layers to separate membrane
    and bending instability (P2).
– MSFLD and FLD can use an incremental or direct update of instability
    parameter (P3).
– Output of integration point failure information made optional (Q2).
– Specifying DCTYP=-1 on the damage evolution card will not couple damage to
    stress but the damage variable is only calculated and stored.

*MAT_SMOOTH_VISCOELASTIC_VISCOPLASTIC, *MAT_275:
An elastic-plastic model with smooth transition between
elastic and plastic mode is available. It incorporates
viscoelasticity and viscoplasticity and is based on hyper-
elastoplasticity so it is valid for arbitrarily large
deformations and rotations. A sophisticated parameter
estimation is required to match test data, it is available
for implicit and explicit analyisis but perhaps mostly
suited for implicit.

*MAT_FABRIC_MAP:
Stress map material 34 is equipped with bending properties
identical to that of the form 14 and form -14 version of
the fabric. Coating properties are set in terms of stiffness,
thickness and yield. The material is supported in implicit, including
optional accounting for the nonsymmetric tangent. Should be
used with bending stiffness on, and convergence is
improved dramatically if geometric stiffness is turned
on.

*MAT_084 with predefined units (CONM<0) is now transformed correctly with
INCLUDE_TRANSFORM.

If LCIDTE=0 in *MAT_121, then LS-DYNA was crashing on some platforms,
including Windows.  This is fixed.

Fix initialization issues so that PML models can be run with *CASE commands.

*MAT_027 is revised to avoid accuracy issues for single precision executables.

The nearly imcompressible condition is enhanced for *MAT_027 shell elements.

Add a new material model as a option for *MAT_165.
*MAT_PLASTIC_NONLINEAR_KINEMATIC_B is a mixed hardening material model,
and can be used for fatigue analysis.

Output local z-stress in *MAT_037, when *LOAD_STRESS_SURFACE is used. This
was previously calculated and saved as another history variable.

Add a new material model *MAT_260 (2 forms).
– Uses non-associated flow rule and Hill’s yield surface; including strain rate
    effect and temperate effect. MIT failure criteria is also implemented.
– Implemented for solids and shells.
– Strain rate sensitivity for solids.
– Option to directly input the Pij and Gij values.
– Separate the material model *MAT_260 into *MAT_260A and *MAT_260B:
    MAT260A=*MAT_STOUGHTON_NON_ASSOCIATED_FLOW
    MAT260B=*MAT_MOHR_NON_ASSOCIATED_FLOW
– Incorporates FLD into the fracture strain, so as to consider the mesh size effect.
– Calculates the characteristic length of the element for *MAT_260B, so that an
    size-dependent failure criterial can be used.
– When failure happens for half of the integration points through the thickness,
    the element is deleted.

Add Formablitiy Index to *MAT_036, *MAT_037, *MAT_226.

Add new history variables for Formability Index, affecting *MAT_036, *MAT_037,
*MAT_125, *MAT_226.  Those new history variables are FI, beta, effective strain.
These comes after the 4 regular history variables.

*MAT_036, *MAT_125:
New option _NLP is added to evaluate formability under non-linear strain paths.
User inputs a forming limit diagram (FLD), and Formablitiy Index (F.I.) will be
automatically converted to effective stain vs. beta based space.


________________________ MPP ___________________                              

Fix problem of MPP pre-decomposition that can occur
if the local directory specified in the pfile has
very different lengths in the initial run vs the
actual run.  The difference resulted in a line
count difference in the size of the structured
files created, throwing off the reading of the
file in the actual run.


Straighten out some silist/sidist issues in MPP decomp:
– silist and sidist outside of a “region” in the pfile are no longer
    supported, and an error message is issued which suggests the use
    of “region { silist” instead.
– They have been undocumented for several years (since “region” was
    introduced), and had other issues.

Fix the keywords,
CONTROL_MPP_DECOMPOSITION_CONTACT_DISTRIBUTE and
CONTROL_MPP_DECOMPOSITION_CONTACT_ISOLATE,
which were not treating each contact interface individually (as the
manual states), but collectively.

Fix for MPP decomp of part sets.

Fixed *CONTROL_MPP_PFILE (when used inside an include file)
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
   } }
would apply the c2r transformation in the coordinate system of the
include file, which wasn’t previously possible.  The local option can
be useful even if there are no such transformations, as the “cubes”
the decomposition uses will be oriented in the coordinate system
of the include file, not the global system.
Furthermore, the following decomposition related keywords now
have a _LOCAL option, which has the same effect:
  *CONTROL_MPP_DECOMPOSITION_PARTS_DISTRIBUTE_LOCAL
  *CONTROL_MPP_DECOMPOSITION_PARTSET_DISTRIBUTE_LOCAL
  *CONTROL_MPP_DECOMPOSITION_ARRANGE_PARTS_LOCAL
  *CONTROL_MPP_DECOMPOSITION_CONTACT_DISTRIBUTE_LOCAL

Revert revision 86884, which was:
   “MPP: change to the decomposition behavior of
     *CONTROL_MPP_DECOMPOSITION_PARTS_DISTRIBUTE
     *CONTROL_MPP_DECOMPOSITION_PARTSET_DISTRIBUTE
     *CONTROL_MPP_DECOMPOSITION_ARRANGE_PARTS
   in the case where a decomposition transformation is also used.
   Previously, any such regions were distributed without
   the transformation being applied.  This has been fixed
   so that any given transformation applies to these regions also.”
So now the transformations will NOT apply to these keywords.  Really, the “region”
syntax should be used together with *CONTROL_MPP_PFILE as it is more specific.

Modify behavior of DECOMPOSITION_AUTOMATIC so that if the initial velocity used
is subject to *INCLUDE_TRANSFORM, the transformed velocities are used.

Fix MPP decomposition issue with “decomp { automatic }” which was
not honored when in the pfile.

Save hex weld creation orientation to the pre-decomposition file
so that the subsequent run generates the welds in the same way.

Fix for MPP not handling element deletion properly
in some cases at decomposition boundaries.

Add new pfile option “contact { keep_acnodes }” which does NOT exclude slave nodes
of adaptive constraints from contact, which is the default behavior. (MPP only.)

MPP Performance-Related Improvements:
– Allow user input of *LOAD_SEGMENT_FILE through familied files.
– Bug fix for *LOAD_SEGMENT_FILE to get correct time history data for pressure
    interpolation.
– Output two csv files for user to check MPP performance:
     – load_profile.csv: general load balance
     – cont_profile.csv: contact load balance
– Allow user to control decomp/distribution of multiple airbags using
    *CONTROL_MPP_DECOMPOSITION_ARRANGE_PARTS
– memory2= option on *KEYWORD line
– Disable unreferenced curves after decomposition using
    *CONTROL_MPP_DECOMPOSITION_DISABLE_UNREF_CURVES.  This applies to the curves
    used in the following options to speed up the execution several times.
      – *BOUNDARY_PRESCRIBED_MOTION_NODE
      – *LOAD_NODE
      – *LOAD_SHELL_ELEMENT
      – *LOAD_THERMAL_VARIABLE_NODE
– Bug fix for *CONTROL_MPP_DECOMPOSITION_SHOW with *AIRBAG_PARTICLE.


Fix cpu dependent results when using function RCFORC() in *DEFINE_CURVE_FUNCTION.
This affects MPP only.

Fix hang up when using *DEFINE_CURVE_FUNCTION with element function
BEAM(id,jflag,comp,rm) and running MPP with np>1.

*CONTROL_MPP_DECOMPOSITION:
The cpu cost for solid elements -1 and -2 are accounted for in the mpp domain
decomposition.

Fix bug in *CONTROL_MPP_IO (Windows platform only) related to insufficient
administrative privileges for writing tmp file on root drive.

Revise l2a utility on Windows platform to create identical node output format as Linux.


________________________ Output ___________________                           

Fix for MPP external work when bndout is output and there are
*BOUNDARY_PRESCRIBED_MOTION_RIGID commands in the input.

Fixed the output of forces and associated energy due to *LOAD_RIGID_BODY
for both explicit and implicit (*DATABASE_BNDOUT).

Fixed stress and strain output of thick shells when the composite material flag
is set on *DATABASE_EXTENT_BINARY.  The transformation was backwards.

If the size of a single plot state was larger than the d3plot size defined by x=<factor>
on the execution line, the d3plot database may not be readable by LS-PrePost.
This issue is now fixed.

*DATABASE_PROFILE: Output data profiles for beams (TYPE=5) and add density as DATA=20.

New option HYDRO=4 on *DATABASE_EXTENT_BINARY.
Outputs 7 additional variables: the same 5 as HYDRO=2 plus
volumetric strain (defined as Relative Volume – 1.0) and hourglass energy
per unit initial volume.

Fix for binout output of swforc file which can get the
data vs. ids out of sync when some solid spotwelds fail.

Fix for d3plot output of very large data sets in single precision.

Fix for output of bndout data for joints in MPP,
which was writing out incorrect data in some cases.

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 freedom to the file, even if the current model has 6.

Minor change to how pressure is computed for triangles in the INTFOR output.

Fix MPP output issue with intfor file.

Fixes for writing and reading of dynain data in LSDA format.

Corrected the summation of rigid body moments for output to bndout for some
special cases in MPP.

Corrected the output to d3iter when 10 noded tets are present (D3ITCTL on
*CONTROL_IMPLICIT_SOLUTION).

Enhanced implicit collection of moments for the rcforc file.

For implicit, convert spc constraint resultant forces to local coordinate system for output.
Also corrected Implicit’s gathering of resultant forces due to certain SPC constraints.

Fixed the gathering of resultant forces in implicit for prescribed motion on nodes of a
constrained rigid body for output to bndout.

Added output of modal dynamics modal variables to a new file moddynout.  Output is controlled
by *CONTROL_IMPLICIT_MODAL_DYNAMICS.

Corrected the output of resultant forces for Implicit Linear analysis.
Corrected the output of resultant forces for MPP executions.
These enhancements affect a number of ASCII files including bndout.

The following 4 enhancements are to the eigensolvers, including
that used for *CONTROL_IMPLICIT_EIGENVALUE.
– Standardized and enhance the warning/error messages for Implicit eigensolution for
    the case where zero eigenmodes are computed and returned in eigout and d3eigv.
– Added nonsymmetric terms to the stiffness matrix for the implicit rotational dynamics eigenanalysis.
    This allows brake squeal analysis with the contact nonsymmetric terms from mortar contact now
    included in the analysis.
– Updated implicit eigensolution for problems with unsymmetric stiffness matrices.
    Fixed Rotational Dynamics eigensolution to work correctly when first order matrix (W) is null.
    (See *CONTROL_IMPLICIT_ROTATIONAL_DYNAMICS).
– Added the eigensolution for problems with stiffess (symmetric or unsymmetric), mass,
    and damping.

Improve Implicit’s treatment of constrained joints to account for rounding errors.
Applicable to *CONSTRAINED_JOINT with *CONTROL_IMPLICIT_GENERAL.

For implicit springback, zero out the forces being reported to rcforc
for those contact interfaces disabled at the time of springback.  Also enhance
the removal of contact interfaces for springback computations.  For *INTERFACE_SPRINGBACK.

*DATABASE_RECOVER_NODE is available to recover nodal stress.

Fix a bug for detailed stress output, eloutdet, for SOLID type 18.

Support new format of interface force files for ALE, DEM, and CPM.
LS-PrePost can display the correct label for each output component.

Added *DATABASE_NCFORC_FILTER option to allow the NCFORC data to be filtered
using either single pass or double pass Butterworth filtering to smooth the output.
Added the same filtering capability to *DATABASE_BINARY_D3PLOT. This capability is
specified on the additional card for the D3PLOT option and does not require
“_FILTER” in the keyword input.

Fix incorrect mass properties for solids in SSSTAT file when using
*DATABASE_SSSTAT_MASS_PROPERTIES.

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. Also output warning message, KEY+1104.

Fix zero strain values output to curvout for *DEFINE_CURVE_FUNCTION using
function, ELHIST, for solid elements.

Fix missing parts in d3part when MSSCL=1 or 2 in *DATABASE_EXTENT_BINARY.

Fix incorrect damping energy computation for glstat.

Fix incorrect part mass in d3plot for shells, beams & thick shells.

Fix incorrect curvout values when using BEAM(id,jflag,comp,rm) for
*DEFINE_CURVE_FUNCTION and if the beam formulation is type 3, i.e. truss.

Fix incorrect output to curvout file if using ELHIST in *DEFINE_CURVE_FUNCTION
for shells.

Output stresses for all 4 intg points to eloutdet for cohesive element types 19 & 20.

Fix incorrect rotational displacment to nodout when REF=2 in
*DATABASE_HISTORY_NODE_LOCAL.  Affects MPP only.

Fix incorrect strains output to elout for shell type 5 and when NIP>1.

Fix incorrect acceleration output to nodout file when IACCOP=1 in *CONTROL_OUTPUT
and IGRAV=1 in *ELEMENT_SEATBELT_ACCELEROMETER.

Fix corrupted d3plot when RESPLT=1 in *DATABASE_EXTENT_BINARY and idrflg.ge.5 in
*CONTROL_DYNAMIC_RELAXATION.

Fix missing element connectivities in nastin file when using
*INTERFACE_SPRINGBACK_NASTRAN_NOTHICKNESS.

Fix seg fault when using *DATABASE_BINARY_D3PART with
*CONTACT_TIED_SHELL_EDGE_TO_SURFACE.  This affects SMP only.

Fix incorrect output to bndout when using multiple *LOAD_NODE_POINT for the
same node and running MPP with ncpu>1.

Fix incorrect dyna.inc file when using *MAT_FU_CHANG_FOAM/MAT_83, *DEFINE_COORDINATE_NODES,
and *CONSTRAINED_JOINT_STIFFNESS_GENERALIZED with *INCLUDE_TRANSFORM.

Fix IEVERP in *DATABASE_EXTENT_D3PART which was not honored in writing out d3part files.

Fix incorrect stresses written out to dynain for thick shells with formulations
1,2 and 4.

Fix incorrect output to disbout data for discrete beams.

Fix incorrect output to binary format of disbout. Affects SMP only.

Fix error when writing initial stresses for thick shells to dynain.
Affects MPP only.

Fix thick shells strain output to dynain.

Fix incorrect writing of material data to dyna.str for *MAT_SEATBELT when
using long=s.

Fix coordinate/disp output to d3plot of *CONSTRAINED_NODAL_RIGID_BODY’s pnode.

Fixed the initial d3plot state in SMP runs when tied contact is used with the
CNTCO parameter on *CONTROL_SHELL.  The geometry was wrong in that state.

Add cross section forces output (*DATABASE_SECFORC)
for cohesive elements ELFORM type 19, 20, 21, and 22.

Slight increase of precision for values in nodout file.

Add new option FSPLIT to *INTERFACE_SPRINGBACK_LSDYNA
to split the dynain file into two files (geometry and initial values).

*DEFINE_MATERIAL_HISTORIES:
New keyword for organizing material history outputs, currently
only for solids, shells and beams and the d3plot output but to be
extended to tshells and ascii/binout. The purpose is to
customize the history variables that otherwise are output via
NEIPS/NEIPH/NEIPB on *DATABASE_EXTENT_BINARY, to avoid variable
conflict and large d3plots and thus facilitate post-processing
of these variables. Currently available in small scale but
to be continuously extended.

Fixed bug affecting IBINARY=1 (32 bit ieee format) in *DATABASE_FORMAT.
This option was not working.

Fixed incorrect printout of node ID for *ELEMENT_INERTIA.

Increased the header length to 80 for the following files in binout:
matsum, nodout, spcforc, ncforc

Fixed bug in which d3msg was not written for SMP.

The d3plot output for rigid surface contact was incorrect for MPP.

Fixed bugs when when using curve LCDT to control d3plot output.

Fixed abnormal increase in d3plot size caused by outputting velocity and
acceleration when data compression is on.

Added new variable GEOM in *CONTROL_OUTPUT for chosing geometry or displacement
in d3plot, d3part, and d3drlf.

Added command line option “msg=” to output warning/error descriptions.
See MSGFLG in *CONTROL_OUTPUT for alternate method of requesting such output.
Accepted values for “msg=” are message# or all.
– message#, e.g.,  KEY+101 or 10101.
    This option will print the error/warning message to the screen.
– all
    This option will print all error/warning messages to d3msg file.

Fixed bug for *DATABASE_BINARY_D3PROP file if adaptivity used.
The error caused blank d3prop output.

*DATABASE_HISTORY_SHELL_SET combined with *CONTROL_ADAPTIVITY caused error 20211.
The error involves the BOX option being used for shell history output.

Added *INTEGRATION… data to d3prop.


________________________ Restarts ___________________                         

Fix bug when deleted uniform pressure (UP) airbag during simple restart.

Fix for index error that could cause problems for
accelerometers during full deck restart in MPP.

Fix for MPP output of LSDA interface linking file when restarting from a dump file.

Fix incorrect strains in d3plot after restart when STRLG>1.

Fix incorrect velocity initialization for SMP full deck restart when using
*INITIAL_VELOCITY_GENERATION and *INITIAL_VELOCITY_GENERATION_START_TIME.

Fix incorrect behavior of *CONTACT_ENTITY in full deck restart.

Fix incorrect full deck restart analysis if initial run was implicit and the
full deck restart run is explicit.

Fix ineffective boundary condition for *MAT_RIGID when using *CHANGE_RIGID_BODY_
CONSTRAINT with *RIGID_DEFORMABLE_R2D for small deck restart.

Fix initialization of velocities of *MAT_RIGID_DISCRETE nodes after restart using
*CHANGE_VELOCITY_GENERATION.

Fix internal energy oscillation after full deck restart when using
*CONTACT_TIED_SURFACE_TO_SURFACE_OFFSET with TIEDID=1 in optional card D.
This affects SMP only.

Corrected bug affecting full restart that included any change to node/element IDs.
This bug has existed since version R6.

Fixed bug affecting d3plot times following fulldeck restart with curve in SMP.

Fixed bug in simple restart: *INTERFACE_COMPONENT_FILE forgets the filename.
and writes to infmak instead.


________________________ *SENSOR ___________________                          

Enable full restart for *SENSOR.

Add optional filter ID to SENSORD of *DEFINE_CURVE_FUNCTION.

Enable LOCAL option of *CONSTRAINED_JOINT to be used with *SENSOR_DEFINE_FORCE.

Fix a MPP bug that happens when *SENSOR_DEFINE_NODE has a defined N2.

*SENSOR_CONTROL:
– Fix a bug for TYPE=JOINTSTIF
– Fix a MPP bug for TYPE=PRESC-MOT when the node subject to prescribed motion is
    part of a rigid body
– Add TYPE=BELTSLIP to control the lockup of *ELEMENT_SEATBELT_SLIPRING.
– Add TYPE=DISC-ELES to delete a set of discrete elements.

SENSID of *SENSOR_SWITCH will be ignored when TYPE=TIME.

Add FTYPE=CONTACT2D to to *SENSOR_DEFINE_FORCE to track the force from *CONTACT_2D.

Add the variable SETOPT for *SENSOR_DEFINE_NODE_SET and *SENSOR_DEFINE_ELEMENT_SET
to sense and process data from a node set or element set, resp., resulting in a
single reported value.

*SENSOR can be used to control *CONTACT_GUIDED_CABLE.

Fix a bug related to *SENSOR_DEFINE_FUNCTION triggered by more than
10 sensor definitions.


________________________ SPG (Smooth Particle Galerkin)  __________________   

*SECTION_SOLID_SPG  (KERNEL=1):
The dilation parameters (DX,DY,DZ) of SPG Eulerian kernel are automatically adjusted
according to the local material deformation to prevent tensile instability.


________________________ SPH (Smooth Particle Hydrodynamics) ______________   

Retain user IDs of SPH particles in order to ensure consistent results when changing
the order of include files.

Add feature to inject SPH particles, *DEFINE_SPH_INJECTION.

Added support of various material models for 2D and 3D SPH particles:
– *MAT_098 (*MAT_SIMPLIFIED_JOHNSON_COOK)
– *MAT_181 (*MAT_SIMPLIFIED_RUBBER)
– *MAT_275 (*MAT_SMOOTH_VISCOELASTIC_VISCOPLASTIC)

Added support of *DEFINE_ADAPTIVE_SOLID_TO_SPH for 2D shell elements and
2D axisymmetric shell elements.

When using *DEFINE_ADAPTIVE_SOLID_TO_SPH,
eliminated duplicate kinetic energy calculation for SPH hybrid elements (both
SPH particles and solid elements contributed kinetic energy into global
kinetic energy).

Added support of second order stress update (OSU=1 in *CONTROL_ACCURACY keyword)
for 2D and 3D SPH particles.  This is necessary for simulation of spinning parts.

Added ISYMP option in *CONTROL_SPH to define as a percentage of original SPH particles
the amount of memory allocated for generation of SPH ghost nodes used in
*BOUNDARY_SPH_SYMMETRY_PLANE.

Fixed unsupported part and part set option in *BOUNDARY_SPH_FLOW.

Fixed unsupported ICONT option from *CONTROL_SPH when combined with
*BOUNDARY_SPH_FLOW.

*DEFINE_SPH_TO_SPH_COUPLING:
Output contact forces between two SPH parts (x,y,z and resultant forces) into sphout.
The forces can be plotted by LS-PrePost.

*CONTACT_2D_NODE_TO_SOLID:
Added bucket sort seaching algorithm to speed up the process of finding contact pairs
between SPH particles and solid segments.


________________________ Thermal ___________________                          

Corrected a long standing bug in MPP thermal associated with spotwelds
(*CONSTRAINED_SPOTWELD) using thermal linear solver option 11 or greater.  The spotweld
loads were not being loaded correctly due to an indexing issue in MPP.

Fix for thermal with *CASE.

Fix MPP support for thermal friction in SOFT=4 contact.

Fixed bug where thermal solver gives a non-zero residual even though no loads are present.

Added SOLVER=17 (GMRES solver) to *CONTROL_THERMAL_SOLVER for the
conjugate heat transfer problem.  The GMRES solver has been developed as an
alternative to the direct solvers in cases where the structural thermal
problem is coupled with the fluid thermal problem in a monolithic approach
using the ICFD solver.  A significant savings of calculation time can be
observed when the problem reaches 1M elements.
This solver is implemented for both SMP and MPP.

*CONTACT_(option)_THERMAL (3D contact only):
Add variable FRTOHT to specifiy fraction of frictional energy applied to slave
surface.  It follows that  1.-FRTOHT is applied to master surface.
Default is 0.5 which gives a 50% – 50% split bewtween the slave and master surfaces
which was hardwired in prior releases.

First release of AUTOMATIC_surface_to_surface_TIED_WELD_THERMAL.
This will only work when used with BOUNDARY_THERMAL_WELD.
This combination of keywords will activate a condition
where sliding contact will become tied contact on cooldown
when the temperature of the segments in contact go above
an input specified temperature limit during welding.

*LOAD_THERMAL_D3PLOT:
The d3plot data base was changed such that the 1st family
member contains control words, geometry, and other control
entities. Time state data begins in the 2nd family member.
This change allows the new d3plot data structure to be
read in by LS-DYNA when using the *LOAD_THERMAL_D3PLOT keyword.
This change is not backward compatible. The old d3plot data
structure will no longer be read correctly by LS-DYNA.

Synchronize data in TPRINT for SMP and MPP:
– Fixed output to tprint/binout for thermal contact.
– Fixed part IDs for part energies.
– Fixed format of TPRINT file generated by l2a.

Fixed handling of start time defined with *CONTROL_START for thermal solver.

Change the maximum number of *LOAD_HEAT_CONTROLLER definitions from 10 to 20.

Added a third parameter to the TIED_WELD contact option. The parameter specifies
heat transfer coefficient h_contweld for the welded contact. Before welding,
the parameter from the standard card of the thermal contact is used.

Parameter FRCENG supported for mortar contact to yield
heat in coupled thermomechanical problems.


________________________ XFEM (eXtended Finite Element Method)  ____________  

Added ductile failure to XFEM using critical effective plastic strain as failure
criterion.


________________________ Miscellaneous ___________________                    

Support *SET_NODE_GENERAL PART with SPH and DES.

*DEFINE_POROUS_…: Compute the coefficients A and B with a user defined routine
in dyn21.F.

Fixed bugs in Staged Construction (*DEFINE_STAGED_CONSTRUCTION_PART):
– Staged construction not working on SMP parallel. Symptoms could include the
    wrong elements being deleted.
– Staged construction with beam elements of ELFORM=2: when these beams are
    dormant, they could still control the timestep.
– Staged construction with
    *PART_COMPOSITE. The bug occurred when different material types were
    used for different layers within the same part, and that part becomes
    active during the analysis. The symptom of the bug was that stresses
    and/or history variables were not set to zero when the part becomes active.

Bugs fixed in *DAMPING_FREQUENCY_RANGE_DEFORM:
– Incorrect results when large rigid body rotations occur.
– If RYLEN on *CONTROL_ENERGY = 2, the energy
    associated with this damping should be included in the Internal Energy for
    the relevant part(s). This energy was being calculated only if there was also
    *DAMPING_PART_STIFFNESS in the model. Now fixed – the damping energy will
    be included in the internal energy whenever RYLEN=2.

Fixed NID option of *DEFINE_COORDINATE_VECTOR (bug occurred in MPP only).

Fix lsda open mode to require only minimal permissions to avoid unnecessary
errors, for example if using an interface linking file that is read only.

Fix for DPART processing (*SET_…_GENERAL) for solid and thick shell elements.

Fix for JOBID > 63 characters.

Fix input processing problem (hang) that could
happen in some unusual cases if encrypted *INCLUDE files are used.

Fix interaction of *CASE with jobid= on command line,
so the jobid on the command line is combined with the generated
case ids instead of being ignored.

*INCLUDE_NASTRAN:
– Integration defaults to Lobatto for Nastran translator.
– The default number of integration points is set to 5 for Nastran translator.

Issue error message and terminate when illegal *DEFINE_TRANSFORMATION is specified.

Add OPTION=POS6N to *DEFINE_TRANSFORMATION to define trsnaformation with 3 reference
nodes and 3 target nodes.

Add OPTION=MIRROR to *DEFINE_TRANSFORMATION.

Fix a bug that could occur when adapted elements are defined in a file included
by *INCLUDE_TRANSFORM.

Fix a bug that could occur when *BOUNDARY_SPC_SYMMETRIC_PLANE is used together
with *INCLUDE_TRANSFORM.

Fix a bug that occurs when *DEFINE_BOX is included by *INCLUDE_TRANSFORM.

Make *SET_NODE_COLLECT work together with *NODE_SET_MERGE.

Fix incorrect shell set generated when using *SET_SHELL_GENERAL with OPTION=PART.

Add error trap for *SET_PART_LIST_GENERATE_COLLECT to catch missing
part IDs.

Fixed bug in *INCLUDE_TRANSFORM for adaptive case if JOBID is used.

Fixed bug in memory allocation for *DEFINE_CURVE if total number
of points in curve is more than 100.

Fixed bug with *INCLUDE_TRANSFORM and *CONTROL_ADAPTIVITY
due to an *INCLUDE inside *INCLUDE_TRANSFORM file.
Added new files: adapt.inc# for *INCLUDE_TRANSFORM file.
The *NODE, *ELEMENT_SHELL and *ELEMENT_SOLID are removed from include file.

Fixed bug for DPART option in *SET_SEGMENT_GENERAL.
DPART option was treated as PART option before.

Fixed failure of *PARAMETER definition in long format.

Fixed error in reading solid id for *SET_SOLID_GENERAL.

Ignore any nonexistant part set IDs in *SET_PART_ADD.

Fix bug in which sense switches sw2 and sw4 don’t work when the
output interval for glstat is small.

Fixed bug if *DEFINE_CURVE is used to define adaptivity level.

Three new keywords are implemented in support of user defined subroutines:
*MODULE_PATH[_RELATIVE], MODULE_LOAD, MODULE_USE.
– The MODULE feature allows users to compile user subroutines into dynamic
    libraries without linking to the LS-DYNA main executable.
– The dynamic libraries are independent from the main executable and do not need
    to be recompiled or linked if the main executable is updated.
– This feature loads multiple dynamic libraries on demand as specified in the
    keywords.
– Without the MODULE feature, only one version of each umat (such as umat41) can be
    implemented.  With the MODULE feature, most umat subroutines can be have multiple
    versions in multiple dynamic libararies, and used simultaneously.
– The MODULE feature supports all user subroutines.
– The LS-DYNA main executable may also run without any dynamic libraries if
    no user subroutines are required.