The following notes have been formated nicely in www.lstc.com/sdb/364 ===================================================================== (Last updated March 28, 2019) Examples of messages that indicate an instability has occurred are as follows: "out-of-range velocities" (aka "NaNs" (Not a Number)) "negative volume in brick element" "termination due to mass increase" ****** Approaches to combating instability of an explicit solution ********** ___________________________________________________________ These tips are of a general nature and may not be appropriate in all situations. First and foremost, use the latest production release of LS-DYNA available. Comparing results from a newer version to an older version will tell you if changes/improvements to code are of significance in your situation. Or, in some cases, very recent bugfixes may not be in the latest production release and use of a development ("dev") version may be warranted. Contact support@lstc.com for simple instructions on how to download LS-DYNA executables. It helps tremendously if you can identify the source of the instability. Steep jumps in energy values reported in matsum or sleout can help to isolate the part or contact, respectively, that is responsible for the instability. Write plot states frequently enough to see the evolution of the instability. The origin of instability can often be seen by plotting velocity vectors (Vector > Velocity in LS-PrePost). This should offer clues into what's initiating the instability. Some other general tips toward resolving numerical instabilities: - PRECISION Try running a double precision LS-DYNA executable. Comparing results from single precision and double precision (being sure to run the same version of each) will tell you if precision is affecting the results. - TIME STEP Try reducing the explicit time step scale factor TSSFAC (even if mass-scaling is invoked with DT2MS in *CONTROL_TIMESTEP). Reducing TSSFAC too aggressively, say to 0.1 or less, can be counterproductive, especially in cases where the contact stiffness is directly affected by the time step (SOFT=1 or 2). The point here is that the explicit analysis may not converge to a single solution as you reduce the time step more and more. Experience indicates that the sweetspot for TSSFAC is generally between 0.5 and 0.9. (jd,11/13/19) - ELEMENT FORMULATIONS For underintegrated solids or underintegrated shells, try hourglass type 4 with a hourglass coefficient of 0.03 Or, replace underintegrated shell formulations with shell formulation -16 having hourglass type 8. Shells: If response of shells is primarily elastic, set BWC=1 and PROJ=1 (B-T shells only). For an impact simulation involving shell elements, turn on shell bulk viscosity by setting TYPE=-2 in *CONTROL_BULK_VISCOSITY. Unless change in shell thickness due to inplane stretching is an important effect, do not turn on shell thinning, i.e., leave ISTUPD=0 in *CONTROL_SHELL. If thinning is important in a subset of shell parts, set ISTUPD=4 and select the parts where thinning is to be considered by defining PSSTUPD. Invoke invarient node numbering for shells by setting INN=2 in *CONTROL_ACCURACY. Solids: Avoid type 2 solids. If you prefer an 8-point hex formulation, try type (ELFORM) -1 instead. If using type 1 solids, use at least two elements thru the thickness of the part. Invoke invarient node numbering for orthotropic solids by setting INN=4 in *CONTROL_ACCURACY. - ELEMENT DELETION Elements that become problematic due to excessive deformation or distortion can be deleted on-the-fly through material failure criteria or various other criteria. The most common commands for invoking such criteria include: - *MAT_option (many material models include their own failure criteria). - *MAT_ADD_EROSION. - ERODE in *CONTROL_TIMESTEP, used together with DTMIN in *CONTROL_TERMINATION. can be used to delete solid elements based on a specified reduction in time step or based on negative volume. Similarly, see PSFAIL in *CONTROL_SOLID. - *CONTROL_SHELL (see variables NFAIL1, NFAIL2, PSNFAIL, KEEPCS, DELFR, W-MODE, STRETCH). - *SENSOR_CONTROL (TYPE="ELESET"). - *DEFINE_ELEMENT_DEATH. - CONTACT Set number of cycles between bucket sorts to zero so that the default sort interval will be used. If the relative velocity between two parts in contact is exceptionally high, it may be necessary to reduce the bucket sort interval (for instance to 5, 2, or even 1). If visible contact penetrations develop during the simulation, switch to *CONTACT_AUTOMATIC_SURFACE_TO_SURFACE or *CONTACT_AUTOMATIC_SINGLE_SURFACE with SOFT set to 1. Make sure the mesh takes into account thickness of shells. If shells are VERY thin, e.g., less than 1 mm, scale up or set the contact thickness to a more reasonable value. Avoid redundant contact definitions, that is, don't treat contact between the same two parts using more than one contact definition. - TYPOS Look for mistakes (typos, inconsistent units, etc.) in material input of parts that go unstable. - DAMPING Remove all *DAMPING_GLOBAL commands or at least confirm that a reasonable damping coefficient is being used. Try *DAMPING_PART_STIFFNESS with a COEF of 0.1 or 0.05, especially in the case of shell elements. - PROCESS OF ELIMINATION Debug by process of elimination, i.e, simplify your model until stability is achieved. This will help to isolate the cause of the instability. - Replace complex material models with simpler ones that you are familiar with. - Or, test out the questionable material models with a small model to gain confidence in the use and behavior of the material model. - Eliminate loads and/or contacts, one by one, to identify the trigger for the instability. - NANS Set ISNAN=1 in *CONTROL_SOLUTION to identify node IDs where out-of-range forces first appear. The command option "checknan=1" or the sense switch control "swn" can activate this option as well. When the option is invoked, LS-DYNA will report nodes where NANs occur first to the messag (or mes**** files), write a plot state and terminate the job. The node list can be found in the "messag" file under "*** termination due to out-of-range forces". Nodes appearing in that message should be examined closely for anything out of the ordinary. Following is a brief list of some thngs to consider. - Is the material model of the parent elements well defined? - Are there any special connections at those nodes such as nodal rigid bodies? - Is contact occurring on those nodes? - Is mass artificially added to the nodes with *ELEMENT_MASS? - Warnings Look through and think about the warning messages written to the messag or mes**** files. These are just warnings, but might hint at much deeper issues in the model. - IMPLICIT If you're using the implicit solver, apply the recommendations provided in this text file http://ftp.lstc.com/anonymous/outgoing/support/FAQ/implicit_guidelines and in the documents referenced in that text file. _________________________________________________________________________________________________ See also: negative_volume_in_brick_element.tips