General

General

Inconsistent results between different releases of LS-DYNA and for SMP versus MPP.

    • FAQFAQ
      Participant

      It is not uncommon to obtain different results from different LS-DYNA releases. The code is constantly evolving. Defects are fixed, and very rarely, defects are introduced as intended improvements to algorithms are made. If the difference in results is soley attributable to changes in source code, it may be possible, through a series of runs, for us to identify the precise change in code that triggers the change in results. This is a laborious process which is not guaranteed to be fruitful. Unrelated to changes in source code, a model which is marginally stable or not robust promotes inconsistency of results. Robustness is often improved by following a few modeling guidelines. Explicit guidelines: https://ftp.lstc.com/anonymous/outgoing/support/PRESENTATIONS/Crash_Guidelines.pdf Implicit guidelines: https://www.lstc.com/sdb/361 In problems with well-defined or analytic solutions, e.g., where test results are easily repeatable, there would likely not be any issue of inconsistency in computational results. On the other hand, some events by their very nature, particularly dynamic events involving nonlinear material behavior (material damage and failure), are simply prone to inconsistent behavior. For those events, an infinitesimal deviation in the results early in the event can lead to a large deviation as the event progresses. This is true not only of computational results but of experimental results as well. SMP and MPP can also produce different computation results, even if the same version of the code is used. This is primarily due to contact algorithms in MPP being coded differently than those in SMP. Also, the number of cores used in MPP can affect the solution due to the change in domain decomposition. Solution 2064151 speaks to this in greater detail.​ It is recommended that the analyst: – Decide whether to use SMP or MPP, and stick with that decision. – If using SMP, set CONST=1 in *CONTROL_PARALLEL (or equivalently, set ncpu to a negative value on the execution line). – If using MPP, decide on a particular core count to use and don’t deviate from that. Also include the keyword *CONTROL_MPP_IO_LSTC_REDUCE in the input file.