New version of LS-DYNA is released for all common platforms.
Release notes for Version R9.1.0.
Herein are summarized most of the new features, enhancements, and significant corrections made since the release of version R9.0.1. These notes are arranged by topic. Understand that in many cases, a particular note may have applicability to multiple topics. Each item is listed only once, under a single category.
- Support porosity leakage output while under uniform pressure UP (control volume) mode.
- Chamber output includes includes:
- chamber pressure (in abstat_cpm),
- vent area under UP,
- total part area of internal part.
- Add an new variable PSID1 in *AIRBAG_PARTICLE for dealing with normals of two connected bags.
- Fix bug affecting ALE with dynamic relaxation. Turn off ale element force calculation during dynamic relaxation.
- Fix for contact thickness for rigid shells in MPP eroding contact.
- Improve MPP contact for problems with very small coordinates due to poor choice of units.
- Improve round off level behavior in MPP *_TO_SURFACE contacts due to division by zero prevention code.
- Fix input error when using many *RIGIDWALL_GEOMETRIC_… with _DISPLAY option.
- Fix input error when *CONTACT_ENTITY is attached to a beam part.
- Fix insufficient tying of nodes when doing full deck restart and the contact is newly added to the restart involving newly added parts. This apples to SMP *CONTACT_TIED_SURFACE_TO_SURFACE only.
- Fix error termination due to negative volume, SOL+509, even when *CONTACT_ERODING… is set. This affects MPP only.
- Fix incorrect tiebreak behavior involving solid parts when (SMP only)
- ISTUPD>0.0 in *CONTROL_SHELL, and
- SST & MST are not zero and SFST & SFMT are zero on Card 3 of *CONTACT_…_TIEBREAK.
- Switched segment based (SOFT=2) non-eroding contact to prevent it from adding any new segments when brick element faces are exposed when other elements are deleted. There were two problems. The first is that the interface force file could not support NFAIL=1 on *DATABASE_EXTENT_INTFOR because the intfor file does not expect new segments to replace the old, so it just undeletes the old segments instead of adding the new. The second problem is that when non-eroding contact is used, we only have enough memory in fixed length arrays for the segments that exist at t=0. When segments are deleted, the code was using the space that they vacated to create new segments, but it was very likely that some segments could not be created when the number of open spaces was less than the number of new segments that are needed. In this case, some segments would not be created and there would be surfaces that could be penetrated with no resistance. This behavior is impossible to predict, so it seems better to prevent any new segments from being created unless eroding contact is used.
- Fixed rcforc output for *CONTACT_2D_AUTOMATIC in MPP. The forces across processors were missed.
- Fixed a bug in MPP *CONTACT_2D_AUTOMATIC…, in which a flaw in the code used during MPP initialization could cause segments to fail to detect penetration.
- Fixed SMP eroding segment based (SOFT=2) contact which was not activating the negative volume checking of brick elements. The MPP contact and the other SMP contacts were doing this but not SMP SOFT=2.
- Fixed support for CNTCO on *CONTROL_SHELL by segment based (SOFT=2) contact. It was adjusting the contact surface only half of what it should have done. Also, fixed a memory error when the CNTCO>0 option was used with SOFT=2 eroding contact.
- Improve history variables for *USER_INTERFACE_FRICTION (MPP). User subroutine usrfrc now contains new history variable array “uhnew”, where its values are stored even if contact gets temporarily lost and they can be postprocessed via new parameter NUHSV on *DATABASE_EXTENT_INTFOR.
- In automatic single surface mortar contact, the sliding energy incorrectly showed nonzero on master side in LS-PrePost, this is now fixed to yield only nonzero on the slave side.
- In forming contact, the master side was incorrectly reoriented in some cases; this is now fixed.
- For triangular segment, the integration of shape functions over overlapped areas are improved in terms of accuracy.
- Fix critical bug for explicit, tried to access the IGAP information when this was only available for implicit, resulted in stochastic behavior of the models.
- Adaptivity constraints were in some cases incorrectly treated in mortar contacts; this is now fixed.
- Improved penetration checking of beam-to-beam contact in *CONTACT_AUTOMATIC_GENERAL. Improvements include consideration of contact option CPARM8.
- Fixed instability of *CONTACT_AUTOMATIC_BEAMS_TO_SURFACE in MPP that occurred after erosion of beams.
- Fixed problem with *DEFINE_FRICTION in combination with *CONTACT_GROUPABLE.
- Fixed areas of triangular segments in the NCFORC file.
- Fix major bug in redistribution of force and momentum from master to slave.
- Fix major bug in calculating shape function of tetra.
- Fix major bug when ncoup!=0 (additional coupling points in between beam nodes); slave -> master momentum/force distribution wrong.
- Now works with r-adaptivity so the solid mesh can endure large deformation/distortion.
- Fixed *CONSTRAINED TIED_NODES_FAILURE when used with MPP single surface segment based contact. Non-physical contact bewtween segments that share tied constraints was being penalized leading to failure of the constraints.
- Fixed bug in reading *CONSTRAINED_JOINT data using long format.
- Fix error termination with single precision MPP (cpu dependent) when PSFAIL.ne.0 in *CONTROL_SOLID and using solid formulation 10, 13, or 44.
- Fix tied contact with beam offsets when used in subcycling.
- Fix mass scaling problem, too little mass was added to some nodes in the interface between subcycling domains.
Discrete Element Method
- Fix *DEFINE_DE_MASSFLOW_PLANE bug if DE injection is defined.
- Switched *ELEMENT_SOLID option for 20-node solid from _20 to _H20 for clarity.
- Include original volume output to dynain file for 2D analysis when materials with equation-of-state are used. This is needed to compute the volumetric strain upon restart with dynain file.
- Fix use of incorrect load curve if large value is used for FC<0 and/or FCS<0 in *ELEMENT_SEATBELT_SLIPRING.
- Fix incorrect discrete spring (*ELEMENT_DISCRETE) behavior when used with adaptivity.
- Enabled thick shell forms 5 and 6 to pick up the plastic modulus from viscoplastic materials for use in the assumed strain or hourglass control.
- Modified the z-strain distribution in thick shell forms 5 and 6 when used in composites with mixed materials that are isotropic. The existing assumed strain scheme was doing a poor job of creating a constant z-stress through the thickness.
- Made the negative volume check more precise for brick element form 2 and prism element form 15 such that elements with negative volume will be reliably deleted with warning SOL+630 instead of sometimes causing the job to error terminate with error SOL+509.
- Improved the time step calcualtion for thick shell forms 3 and 5. A dependence on volumetric strain rate was removed in order to prevent oscillations in the time step which caused stability problems, particularly for thick shell 5.
- Fixed thick shell constant stress option (TSHEAR=1 on *SECTION_TSHELL or *PART_COMPOSITE). It was producing a not very constant stress distribution for mixed materials when there was a significant difference in shear stiffness from one layer to the next.
- Fix option ICRQ=1 on *CONTROL_SHELL:
- Mixed meshes with quads and trias could lead to problems, because sorting was not always correctly taken care of.
- Fix for failure behavior of higher order shells (ELFORM=23/24).
- Fix failure treatment in cohesive elements (*SECTION_SOLID, ELFORM=19-22). With INTFAIL>1 for cohesive materials *MAT_138, *MAT_184, *MAT_185, *MAT_186, *MAT_240, or *MAT_279, it was possible that some elements were eroded carelessly. That somehow compromised SMP parallel consistency (ncpu<0) as well, since force summation was adversely affected.
- *SECTION_SHELL, Shell formulations 25-27:
- These forms now work for *PART_COMPOSITE.
- Deformation gradient is supported in user defined materials.
- The output to d3plot was in error when CMPFLG was used; this is now fixed.
- Modified tolerances that trigger error messages SOL+865 and SOL+866 to prevent unnecessary error terminations due to small inertias of discrete beam nodes.
- Fixed error in user integration rule that gave the wrong number of integration points in the type 23 shell
- Fix error during input phase when using *SET_SEGMENT_GENERAL for tshells triggered when only tshells are present.
- Fixed instability issue after mesh pre-refinement along a line. Affected keywords:
- *DEFINE_CURVE_TRIM_3D, *CONTROL_ADAPTIVE_CURVE, and, *CONTROL_ADAPTIVE
- Fixed bug in *CONTROL_IMPLICIT_FORMING to speed up the simulation time.
- Fixed problem in output of INTFOR data when no option _INTFOR is used in *CONTROL_FORMING_OUTPUT. When _INTFOR is not used, INTFOR output frequency should still be controlled by *DATABASE_BINARY_INTFOR.
- Fixed segmentation fault during 2D trimming on AMD64 system. Affected keyword:
- Fixed distorted elements along trim line in solid trimming.
- Updated SSD solver (steady state dynamics) so that it can work with *CASE keyword, to solve the problems with multiple loading cases in one run.
- Fixed a bug in accessing eigenmode databases, when *FREQUENCY_DOMAIN_PATH is defined.
- Fixed a problem in writing d3psd database in MPP.
Incompressible Flow Solver
- Fixed the conjugate heat transfer solver which was broken in R9.
- Add test for the shape function at the insertion of a node in 2D. Basically if a node will be inserted too close to an edge or vertex then do not insert it.
- Corrected an error in the symbolic factorization for implicit mechnics for large out-of-memory problems.
- Fixed a dynamic memory storage leak (allocation with no free) when using unsymmetric stiffness option for implicit mechanics.
- Allow binary format for implicit dumping of damping matrix.
- Fixed having a spurious SPCFORC file for Implicit Mechanics when there was no SPCFORC data.
- Enable KSLVR iterative solvers for implicit mechanics in both SMP and MPP. These are solver options 22 through 26.
- For MPP Implicit executions, disable using MMD for MF2 if at least one process per compute node is using Metis. There are some strange models where MMD takes an extremely long time with no benefit.
- Fixes to *PART_MODES:
- Properly handle jobid with regard to the input file.
- Properly handle parts with only solid elements.
- Properly handle MPP execution where some processes are not involved with a part.
- Since R8 we have been loading dynamic terms to the stiffness matrix when we should not have been. An example is an eigenvalue analysis where the user had a *DAMPING keyword included. Such terms are no longer loaded inappropriately.
- Output states for spcforc are now written at keypoints when a curve defines DTMAX in *CONTROL_IMPLICIT_AUTO.
- For implicit-explicit switch, the reinitialization of velocities during switch was not correct; this is now fixed.
- Fix 3 bugs for *INITIAL_VELOCITY_GENERATION involving OMEGA>0 and ICID>0:
- When NX.eq.-999, node NY to node NZ is now the rotational axis. Period.
- When NX.ne.-999, (XC,YC,ZC) is no longer rotated along ICID, rather it’s in the global coordinate system.
- When *INITIAL_VELOCITY_GENERATION is included by *INCLUDE_TRANSFORM, (XC,YC,ZC) is now transformed.
- Fix a bug related to *INITIAL_FOAM_REFERENCE_GEOMETRY
- Fix inadvertent detonation of HE part(s) not included in *INITIAL_DETONATION when there are multiple HE parts.
- Fix *INITIAL_STRAIN_SHELL output to dynain which were all zero for 12<=iop<=15 despite the strains being initialized with *INITIAL_STRAIN_SHELL.
- Fix incorrect initial velocities when using *INITIAL_VELOCITY with IRIGID=-2 and ICID>0.
- Fix issue of part using *MAT_220 being incorrectly initialized with initial velocities during dynamic relaxation when *INITIAL_VELOCITY_GENERATION is used.
- Fix incorrect velocity of accelerometer if
- velocity is prescribed on the rigid body that the accelerometer is attached to, and
- INTOPT=1 in *ELEMENT_SEATBELT_ACCELEROMETER, and
- *INITIAL_VELOCITY_GENERATION_START_TIME is used.
- Bug fix to avoid deadlock.
- Bug fix for pressure interpolation during restart.
- Increase the file size limit for segment file size.
- Fixed problem of variable CID for *LOAD_NODE_POINT not being read for long=s.
- MPP support for *MAT_RIGID_DISCRETE with rotations.
- Two fixes for *MAT_274/*MAT_PAPER:
- Fixed output for shell formulation 26.
- Fixed bug affecting *ELEMENT_SHELL_COMPOSITE/*PART_COMPOSITE.
- Fix error in EOS as used with *MAT_224.
- Fix inconsistency for *MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY/*MAT_123 when ncpu<0.
- Fix ‘plasticity algorithm did not converge’, SOL+500, warnings when using ncpu>1 for *MAT_BARLAT_ANISOTROPIC_PLASTICITY/*MAT_033.
- Make AOPT<0 work for *MAT_170/*MAT_RESULTANT_ANISOTROPIC.
- Fix incorrect operation of TDEL for *MAT_MODIFIED_PIECEWISE_LINEAR_PLASTICITY/*MAT_124 and *MAT_PLASTICITY_WITH_DAMAGE/*MAT_081/*MAT_082.
- Fix incorrect damping when using *DAMPING_PART_STIFFNESS for *MAT_16/*MAT_PSEUDO_TENSOR and *EOS_TABULATED_COMPACTION.
- Fix convergence issue in *MAT_MODIFIED_ZERILLI_ARMSTRONG for shells when VP=1.
- Fixed spotwelds with DMGOPT=12 (*MAT_SPOTWELD) by removing warning STR+1327 which made it impossible to set a small value of RS without triggering this warning, or without setting EFAIL smaller. Setting EFAIL small however could lead to damage initiation by plastic strain when the user wanted only initation by the failure function. Also, if DMGOPT=10, 11, or 12 and EFAIL=0, damage will now initiate only by the failure function. If EFAIL>0, then damage will initiate be either the failure function or when plastic strain exceeds EFAIL. Prior to this version, damage could initiate when plastic strain exceeds zero if the user set EFAIL=0. This behavior is still true for DMGOPT=0, 1, or 2, but no longer for DMGOPT=10, 11, or 12.
- Fixed internal energy outputted to glstat and matsum when Rayleigh damping was used with *MAT_024 in thick shells 5 and 7. This fix has no effect on the solution but affects the outputted energy.
- Fix bug that could unexpectedly affect behavior of *MAT_054, *MAT_055, or *MAT_058 in combination with TFAIL/TSIZE.gt.0.0 and *DAMPING_PART_STIFFNESS.
- Add default values for strengths (XT,XC,YT,YC,SC) in *MAT_058.
- Enable possibility to use a strain rate dependent table for *MAT_ADD_EROSION‘s input parameter LCFLD.
- Limit the internal element thickness in *MAT_169 to 5% of initial thickness to avoid instability of highly deformed elements.
- Allow failure for all material models when they are used with *MAT_ADD_GENERALIZED_DAMAGE.
- Correct internal energy calculation in GISSMO.
- Fix for combination of *MAT_ADD_EROSION‘s GISSMO and solid elements and INTOUT/NODOUT = STRAIN or ALL on *DATABASE_EXTENT_BINARY.
- Fix contact stiffness for *MAT_244 with PR<0.
- Enhancements for *MAT_224:
- Add erosion flag ERODE analogous to *MAT_015.
- Add failure indicator based on a plastic strain and strain rate dependent principal stress criterion:
- Table ID on Card 3, Column 5.
- Fix bug for *MAT_224. Since R7.1.1 it was possible to use the temperature from the thermal solver in a coupled simulation, but that was unfortunately broken in R8.1.0 and R9.0.1. Now it is working again.
- Add missing tangent stiffness to *MAT_240 so that it can now be used in implicit.
- Made fixes for large curve ids and *INCLUDE_TRANSFORM offsets (IDFOFF) in *MAT_ADD_GENERALIZED_DAMAGE keyword input.
- Added internal erosion of elements when *MAT_273/*MAT_CDPM is completely damaged to avoid excessive deformation and volume inversion.
- In rare cases, tolerances were set in *MAT_269/*MAT_BERGSTROM_BOYCE_RUBBER to result in poor stress responses; this is now fixed.
- Make sure strain rate effects in *MAT_089/*MAT__PLASTICITY_POLYMER honor the IRATE flag on *CONTROL_IMPLICIT_DYNAMICS.
- Fixed problem of very large d3crack file for *MAT_WINFRITH.
- Make change to *MAT_189‘s thermal stress calculation based on customer request. The thermal stress is now more like *MAT_021‘s.
- Fixed input error when using *MAT_ELASTIC_WITH_VISCOSITY_CURVE/*MAT_60c when LCID=0.
- Fixed bug in tempering option for *MAT_244.
- Fixed time step calculation for *MAT_089 solid elements. Prior to fix, response could be unstable especially for higher values of Poisson’s ratio, e.g. 0.4.
- Fix decomposition options related to distribution of contact interfaces — the IDs were not being handled properly.
- In some cases, with a number of processors larger than 2, the thermal solver was hanging inside spooles because some processors did not own part of the matrix system. We solved this issue by changing the MPI communicator.
- Fix for MPP bndout data when there are multiple velocity boundary conditions on a node/rigid body with differing birth/death times.
- Forward and reverse filtering was added to the d3plot file. The additional variables required are read when _FILTER is added to *DATABASE_BINARY_D3PLOT.
- Fix no output to bndout when run with q=remap even though the keyword *DATABASE_BNDOUT was present in the remap run but was not present in the initial run.
- Fix d3plot output frequency which was different from the dt specified in *DATABASE_BINARY_D3PLOT when *CONTACT_AUTO_MOVE is used.
- Fix stress output to elout for solid elements which was in the global coordinates instead of local coordinates when CMPFLG=1 in *DATABASE_EXTENT_BINARY and OPTION1>0 in *DATABASE_ELOUT.
- DCOMP=2 in *DATABASE_EXTENT_BINARY no longer corrupts d3part database.
- Fixed problem of overly large d3thdt database being written when dynamic relaxation is used.
- Fixed problem reading ID for *DATABASE_HISTORY_DISCRETE_ID.
- Fix bug in *DATABASE_TRACER cards when used with *INCLUDE_TRANSFORM, where the node offset was being applied to NID even if NID was not specified.
- Fixed SPC output missing problem in binary dynain.bin file. Affected keyword: *INTERFACE_SPRINGBACK.
- Fixed a bug in a full deck restart that contains a new rigid body part whereby the code could initialize the wrong part.
- Fix for *DEFINE_FILTER of type CHAIN.
Smooth Particle Hydrodynamics (SPH)
- Enable SPH injection option.
- Corrected calculation of penetration between SPH particles in contact.
- Fixed bug affecting conversion of tetrahedral solid elements into SPH particles.
- Fix possible seg fault in some MPP thermal problems.
- Fix bug for the thermal part of TIED_WELD contact.
- 3D r-adaptivity (ADPOPT=7 in *CONTROL_ADAPTIVE) now supports *INITIAL_TEMPERATURE defined on the adaptive part.
XFEM (eXtended Finite Element Method)
- Added support of triangles in base 16 XFEM.
- Update to support encryption with the long input format.
- Fix for *INTERFACE_LINKING_LOCAL when LCID is used.
- Fix for parameter input in *INTERFACE_LINKING.
- Fix issue of SMP non-consistency even when consistency mode is turned on, ncpu<0.
- Similar to *RIGIDWALL_PLANAR with segments, *RIGIDWALL_GEOMETRIC_CYLINDER can be subdivided into sections along the cylinder length. The section forces will be output to rwforce in the same format as segment data.
- Fixed bug in using binary form of dynain (dynain.lsda).
- Allow jobid to be specified for an adaptive run that contains *INCLUDE_TRANSFORM.
- ISNAN variable in *CONTROL_SOLUTION is now included in dyna.str.
- Fixed bug affecting use of multiple include files when “newformat” option is used.
- Fix problem of missing SPCs in binary dynain file (dynain.bin).
- Added “i10” input format to expand i8 fields in the keyword input to i10, thereby accommodating larger node and element IDs, for instance. This is a less drastic change to the input format than going to “long” format where all input variables, both real and integer, are expanded to e20 and i20. See the User’s Manual for more information about “long” format.
- To automatically convert a standard format input file to i10 format, use the command line “newformat=i10”. This will create a new input file with “.i10” appended to the input file name.
- LS-DYNA will read keyword data in i10 format if “i10=y” is included on the execution line.
- Alternatively, i10 format is assumed for a particular keyword if “%” is appended to that keyword, e.g., “*NODE %”.