Dhondtguido / CalculiX

This repository contains the source files of CalculiX, a three-dimensional Finite Element Program (www.calculix.de).
GNU General Public License v2.0
72 stars 16 forks source link

Status file output in explicit dynamics #58

Open FEA-eng opened 9 months ago

FEA-eng commented 9 months ago

Currently, there's no .sta file output in explicit dynamics analyses so it's not possible to track the progress of the solution (apart from checking the contents of the results file but their updates are typically infrequent in the case of this analysis type). I know that such output could potentially slow down simulations a bit so maybe it could be made optional (by some parameter for the *DYNAMIC keyword, for instance). Its benefit would be significant, in my opinion. One could see how far the solution is and, thanks to the characteristics of explicit dynamics, even estimate the time left to complete the analysis. Those simulations usually involve large numbers of increments so output every increment probably wouldn't make sense. Here's how Abaqus handles this issue (from its documentation):

The frequency at which summary increments are written to the Abaqus/Explicit status file depends on the duration of the analysis in CPU minutes and the amount of output specified in the analysis.

Summary information will generally be written:

  • each time restart information, field output to the output database, or results file output is written
  • once per increment if the problem requires fewer than 20 increments
  • 20 times during the step for a short analysis (less than 40 CPU minutes)
  • every 2 CPU minutes for an analysis longer than 40 CPU minutes

Maybe CalculiX could follow similar rules.

Here's a snippet of Abaqus status file to provide an example of what is written to the "Solution progress" section in the case of explicit dynamics:

              STEP     TOTAL       CPU      STABLE    CRITICAL    KINETIC      TOTAL
INCREMENT     TIME      TIME      TIME   INCREMENT     ELEMENT     ENERGY     ENERGY
        0  0.000E+00 0.000E+00  00:00:00 1.841E-04           6  0.000E+00  0.000E+00
ODB Field Frame Number      0 of     20 requested intervals at increment zero.
        3  5.524E-04 5.524E-04  00:00:00 1.840E-04           1  1.693E+01 -1.031E+00
ODB Field Frame Number      1 of     20 requested intervals at  5.523693E-04
        6  1.104E-03 1.104E-03  00:00:00 1.836E-04           2  1.094E+01 -8.140E-01
ODB Field Frame Number      2 of     20 requested intervals at  1.103960E-03
        9  1.654E-03 1.654E-03  00:00:00 1.834E-04           2  5.912E+00 -7.833E-01
ODB Field Frame Number      3 of     20 requested intervals at  1.654327E-03
       11  2.051E-03 2.051E-03  00:00:00 2.137E-04           5  1.150E+01 -9.361E-01
ODB Field Frame Number      4 of     20 requested intervals at  2.051425E-03
       14  2.693E-03 2.693E-03  00:00:00 2.136E-04           5  9.256E+00 -8.250E-01
ODB Field Frame Number      5 of     20 requested intervals at  2.692675E-03
       16  3.120E-03 3.120E-03  00:00:00 2.134E-04           5  1.156E+01 -1.166E+00
FEA-eng commented 9 months ago

A workaround is to request:

*EL FILE
ENER

then the analysis monitor shows messages like: actual total time=6.711266e-04 in addition to current energy values.