Follow-up of the calculation ==== This section groups together the various tools used to follow a calculation: time measurement, display, extraction of results, monitoring of calculation values. Real-time monitoring of values ---- .. code-block:: text ◇ SUIVI_DDL = _F ( ◆ NOM_CHAM =/"ACCE ", /"DEPL ", /"EPSI_ELGA ", /"FORC_NODA ", /"SIEF_ELGA ", /"VARI_ELGA ", /"VITE ", ◇ EVAL_CHAM =/"MAX ", /"MAXI_ABS ", /"MIN ", /"MINI_ABS ", /"MOY ", /"VALE" (by default), ◆/NOM_CMP = text, /NOM_VARI = text, ◇ EVAL_CMP =/"FORMULE ", /"VALE" (by default), # If: (equal_to (" EVAL_CMP ", 'FORMULE')) ◆ FORMULE = formula, # If: is_in (" NOM_CHAM ", ('DEPL', '', '', 'VITE', 'ACCE', 'FORC_NODA', 'CONT_NOEU')) ◆/TOUT = "OUI" (or not specified), /NOEUD = no, /GROUP_NO = big, /GROUP_MA = grma, /MAILLE = my, # If: is_in (" NOM_CHAM ", ('SIEF_ELGA', '', 'EPSI_ELGA', 'VARI_ELGA')) ◆/TOUT = "OUI" (or not specified), /GROUP_MA = grma, /MAILLE = my, ◇ EVAL_ELGA =/"MAX ", /"MIN ", /"VALE" (by default), # If: (equal_to (" EVAL_ELGA ", 'VALE')) ◆ POINT = int, ◇ SOUS_POINT = int, ◇ TITRE = text, ), The SUIVI_DDL keyword allows you to post-process certain fields to nodes or elements on model parts at all Newton iterations and display them in the convergence chart. The simultaneous number of SUIVI_DDL depends on which columns are displayed and therefore activated functionalities. The keyword factor SUIVI_DDL has the same syntax as OBSERVATION for extracting fields, except that we do not give information on the moments to be extracted, because we do it at each Newton's iteration (there are no key words LIST_INST/INST/PAS_OBSE/CRITERE/PRECISION). The keyword TITRE expects a list of up to three channels and allows you to name the column on the bulletin board. Strings are truncated to 16 characters. Time measurement ---- .. code-block:: text MESURE = _F ( ◇ TABLE =/"NON" (by default), /"OUI ", ◇ UNITE = unit, ), General principles ~~~~ The MESURE command allows you to output measurement information on the calculation: * or in a table with a name 'STAT' retrievable by [:ref:`RECU_TABLE `] (see keyword OBSERVATION) * or in a file in CSV format whose logical unit is given by the UNITE keyword Note that these measurements are also output in the usual.mess file. Contents of the generated table or file ~~~~ The table is indexed by the time step: presence of a 'INST' column of real type. Each type of measure can exist in two forms (simultaneously or not): * a time CPU (elapse): in this case, the column will contain a real and will have the type name prefixed with `Time_`; * a number of occurrences (for example the number of iterations of Newton): in this case, the column will contain an integer and will have the type prefixed by `Count_` as its name; * a memory footprint (vmpeak, in MB): in this case the column will contain an integer and will have for name the type prefixed with `Count_`; .. csv-table:: "Type of measure", "Time", "Occurrence", "Description" "Compute", "Yes", "No", "Total compute time" "Lost_Time", "Yes", "No", "Time "lost" due to time step cuts" "Time_Step", "Yes", "Yes", "Time and total number of time steps" "Newt_Iter", "Yes", "Yes", "Average time of a Newton's iteration per time step and number of iterations per time step" "Store", "Yes", "Yes", "Time for archiving and number of archives in total" "Post", "Yes", "Yes", "Time taken for post-treatment (buckling,...) and number of post-treatments in total" "Integrate", "Yes", "Yes", "Time for behavior integration and number of behavior integrations per time step" "Factor", "Yes", "Yes", "Time for factorizing the matrix and number of factorizations per time step" "2nd_Member", "Yes", "Yes", "Time to build the second member and number of builds per time step" "Solve", "Yes", "Yes", "Time for solving linear systems and number of resolutions per time step" "Cont_Geom", "Yes", "Yes", "Number of geometric updates and time spent in matching for the contact" "Cont_Algo", "Yes", "Yes", "Number of contact iterations and time spent resolving (discrete methods)" "Cont_Prep", "Yes", "Yes", "Number of contact preparations and time spent in these preparations (for continuous method: creation of elements, creation and filling of the input field, etc.)" "Cont_Elem", "Yes", "Yes", "Number and time spent in the elementary calculations for contact (continuous method)" "Matr_Asse", "Yes", "No", "Time spent creating matrices" "Cont_ NCont ", "No", "Yes", "Number of nodes/points/patches in contact" "Cont_ NFric ", "No", "Yes", "Number of knots/points/patches in friction" "LineSearch", "No", "Yes", "Number of linear search iterations" "Cont_Cycl1", "No", "Yes", "Number of contact type cycles (see R5.03.52)" "Cont_Cycl2", "No", "Yes", "Number of slip/grip cycles (see R5.03.52)" "Cont_Cycl3", "No", "Yes", "Number of forward/reverse slip-type cycles (see R5.03.52)" "Cont_Cycl4", "No", "Yes", "Number of flip/flop cycles (continuous method, see R5.03.52)" "Other", "Yes", "No", "Time spent in operations other than those measured above" "Memory", "No", "Yes", "Memory space in MB" Examples: * Parameter `Count_Cont_ NCont `: number of nodes in contact; * Parameter `Time_Factor`: time spent in factorization. Displays ---- .. code-block:: text AFFICHAGE = _F ( ◇ INFO_RESIDU =/"NON" (by default), /"OUI ", ◇ INFO_TEMPS =/"NON" (by default), /"OUI ", ◇ UNITE = unit, ◇ PAS = int, ), The keyword factor AFFICHAGE allows you to customize the display of the convergence table in y STAT_NON_LINE and DYNA_NON_LINE. If this keyword is not entered, the table is constructed according to the various options of calculation (linear search, control, contact, etc.) and with INFO_RESIDU =' NON '. If UNITE is entered, the convergence table will be duplicated in the unit file*unit*, in .csv format (the separator being the comma). PAS indicates how often the display in the message file is refreshed. This operand makes it possible to reduce the volume of prints, especially in explicit dynamics. It has no influence on the updating of the file in .csv format (keyword UNITE). The INFO_RESIDU keyword allows you to add a column for each evaluated residue (RESI_GLOB_RELA, RESI_GLOB_MAXI, RESI_COMP_RELA, and RESI_REFE_RELA). This column will indicate the node where the residue is maximum, which can help the user when there are difficulties of convergence. For example, to see if the material was incorrectly defined with an incorrect value on an element. The INFO_TEMPS keyword allows you to add a column to give the time spent in Newton's iteration.