# Double precision

Single precision executables have "_s" in the filename whereas double precision executables have "_d" in the filename. Double precision run times will be approximately 30% longer than single precision run times (varies somewhat depending on platform).

It's not always known beforehand when a double precision executable is needed. The only sure way to know is to run both ways (single and double precision) and see if your results are affected. In general, implicit analyses are more sensitive to numerical roundoff than explicit analyses.

### There are certain instances where double precision is most likely needed:

- explicit analysis where number of cycles (timesteps) is large, e. g., over 200,000 timesteps (200,000 is just a ballpark figure... the actual number for any given model could be much higher). There are many reasons why numerical truncation may result in late time solution inaccuracy. One possible explanation is that the incremental displacement to total displacement ratio of any node generally becomes smaller as the solution progresses. In other words, the updated total displacements do not retain sufficient digits to correctly account for the late-time incremental displacements.

- implicit analysis using linear element formulations
- eigenvalue analysis
- any model where single precision results are suspect

### Time step considerations:

Foremost is that the time step is sufficiently small to provide solution stability. Without stability, accuracy is moot.

If you are overly conservative and reduce the time step excessively (one or more orders of magnitude), it could be detrimental to the solution accuracy (unless double precision is used).

### Remarks on plotfiles:

Using double precision LS-Dyna versions, the plotfiles are written by default with double precision as well. Due to double size of the resulting plotfiles, problems could occur during postprocessing, e. g., using FEMZIP or plotcprs. Therefore, plotfiles should be written in 32-bit format, if double precision LS-Dyna versions are used.

How to define 32-bit format plotfiles:

- Inputfile: *DATABASE_FORMAT, IBINARY=1
- Environment-Variable: export LSTC_BINARY=32ieee
- Command-line: e. g. ls971 i=input 32ieee=yes