Suivi du calcul =============== Cette section regroupe les différetns outils permettant de suivre un calcul: mesure des temps, affichage, extraction de résultats, suivi de valeurs de calcul. Suivi en temps réel de valeurs ------------------------------ .. 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" (par défaut), ◆ / NOM_CMP = text, / NOM_VARI = text, ◇ EVAL_CMP = / "FORMULE", / "VALE" (par défaut), # Si: (equal_to("EVAL_CMP", 'FORMULE')) ◆ FORMULE = formule, # Si: is_in("NOM_CHAM", ('DEPL','VITE','ACCE','FORC_NODA','CONT_NOEU')) ◆ / TOUT = "OUI" (ou non renseigné), / NOEUD = no, / GROUP_NO = grno, / GROUP_MA = grma, / MAILLE = ma, # Si: is_in("NOM_CHAM", ('SIEF_ELGA','EPSI_ELGA','VARI_ELGA')) ◆ / TOUT = "OUI" (ou non renseigné), / GROUP_MA = grma, / MAILLE = ma, ◇ EVAL_ELGA = / "MAX", / "MIN", / "VALE" (par défaut), # Si: (equal_to("EVAL_ELGA", 'VALE')) ◆ POINT = int, ◇ SOUS_POINT = int, ◇ TITRE = text, ), Le mot-clé SUIVI_DDL permet de post-traiter certains champs aux nœuds ou aux éléments sur des parties de modèle à toutes les itérations de Newton et les afficher dans le tableau de convergence. Le nombre simultané de SUIVI_DDL dépend des colonnes affichées et donc des fonctionnalités activées. Le mot-clé facteur SUIVI_DDL a la même syntaxe que OBSERVATION pour l'extraction des champs, sauf que l'on ne donne pas d'informations sur les instants à extraire, puisqu'on le réalise à chaque itération de Newton (il n'y a pas les mots clefs LIST_INST/INST/PAS_OBSE/CRITERE/PRECISION). Le mot-clé TITRE attend une liste de trois chaines au maximum et permet de nommer la colonne du tableau d'affichage. Les chaines sont tronquées à 16 caractères. Mesure des temps ---------------- .. code-block:: text ⟐ MESURE = _F( ◇ TABLE = / "NON" (par défaut), / "OUI", ◇ UNITE = unit, ), Principes généraux ~~~~~~~~~~~~~~~~~~ La commande MESURE permet de sortir des informations de mesure sur le calcul: * soit dans une table de nom 'STAT' récupérable par [:ref:`RECU_TABLE `] (voir mot-clef OBSERVATION) * soit dans un fichier au format CSV dont l'unité logique est donnée par le mot-clef UNITE A noter que ces mesures sont également sorties dans le fichier .mess habituel. Contenu de la table ou du fichier généré ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ La table est indexée par le pas de temps: présence d'une colonne 'INST' de type réel. Chaque type de mesure peut exister sous deux formes (simultanément ou pas): * un temps CPU (elapse): dans ce cas, la colonne contiendra un réel et aura pour nom le type préfixé par `Time_`; * un nombre occurrences (par exemple le nombre d'itérations de Newton): dans ce cas, la colonne contiendra un entier et aura pour nom le type préfixé par `Count_`; * un encombrement mémoire (vmpeak, en Mo): dans ce cas la colonne contiendra un entier et aura pour nom le type préfixé par `Count_`; .. csv-table:: "Type de mesure", "Temps", "Occurrences", "Description" "Compute", "Oui", "Non", "Temps de calcul total" "Lost_Time", "Oui", "Non", "Temps «perdu» à cause des découpes du pas de temps" "Time_Step", "Oui", "Oui", "Temps et nombre total de pas de temps" "Newt_Iter", "Oui", "Oui", "Temps moyen d'une itération de Newton par pas de temps et nombre d'itérations par pas de temps" "Store", "Oui", "Oui", "Temps pour l'archivage et nombre d'archivages au total" "Post", "Oui", "Oui", "Temps pris pour le post-traitement (flambement, … ) et nombre de post-traitements au total" "Integrate", "Oui", "Oui", "Temps pour l'intégration du comportement et nombre d'intégrations de comportement par pas de temps" "Factor", "Oui", "Oui", "Temps pour la factorisation de la matrice et nombre de factorisations par pas de temps" "2nd_Member", "Oui", "Oui", "Temps pour la construction du second membre et nombre de constructions par pas de temps" "Solve", "Oui", "Oui", "Temps pour la résolution des systèmes linéaires et nombre de résolutions par pas de temps" "Cont_Geom", "Oui", "Oui", "Nombre de réactualisations géométriques et temps passé dans l'appariement pour le contact" "Cont_Algo", "Oui", "Oui", "Nombre d'itérations de contact et temps passé dans la résolution (méthodes discrètes)" "Cont_Prep", "Oui", "Oui", "Nombre de préparations du contact et temps passé dans ces préparations (pour méthode continue: création des éléments, création et remplissage du champ d'entrée, etc.)" "Cont_Elem", "Oui", "Oui", "Nombre et temps passé dans les calculs élémentaires pour le contact (méthode continue)" "Matr_Asse", "Oui", "Non", "Temps passé dans la création des matrices" "Cont_NCont", "Non", "Oui", "Nombre de nœuds/points/patchs en contact" "Cont_NFric", "Non", "Oui", "Nombre de nœuds/points/patchs en frottement" "LineSearch", "Non", "Oui", "Nombre d'itérations de recherche linéaire" "Cont_Cycl1", "Non", "Oui", "Nombre de cyclages de type contact (voir R5.03.52)" "Cont_Cycl2", "Non", "Oui", "Nombre de cyclages de type glissement/adhérence (voir R5.03.52)" "Cont_Cycl3", "Non", "Oui", "Nombre de cyclages de type glissement avant/arrière (voir R5.03.52)" "Cont_Cycl4", "Non", "Oui", "Nombre de cyclages de type flip/flop (méthode continue, voir R5.03.52)" "Other", "Oui", "Non", "Temps passé dans les autres opérations que celles mesurées ci-dessus" "Memory", "Non", "Oui", "Encombrement mémoire en Mo" Exemples: * Paramètre `Count_Cont_NCont`: nombre de nœuds en contact; * Paramètre `Time_Factor` : temps passé dans la factorisation. Affichages ---------- .. code-block:: text ⟐ AFFICHAGE = _F( ◇ INFO_RESIDU = / "NON" (par défaut), / "OUI", ◇ INFO_TEMPS = / "NON" (par défaut), / "OUI", ◇ UNITE = unit, ◇ PAS = int, ), Le mot-clef facteur AFFICHAGE permet de personnaliser l'affichage du tableau de convergence dans y STAT_NON_LINE et DYNA_NON_LINE. Si ce mot-clef n'est pas renseigné, le tableau est construit suivant les différentes options de calcul (recherche linéaire, pilotage, contact, etc.) et avec INFO_RESIDU='NON'. Si UNITE est renseignée, le tableau de convergence sera dupliqué dans le fichier d'unité *unit*, au format .csv (le séparateur étant la virgule). PAS indique la fréquence de réactualisation de l'affichage dans le fichier message. Cet opérande permet de réduire le volume des impressions, particulièrement en dynamique explicite. Il n'a pas d'influence sur la réactualisation du fichier au format .csv (mot-clef UNITE). Le mot-clef INFO_RESIDU permet d'ajouter une colonne pour chaque résidu évalué (RESI_GLOB_RELA, RESI_GLOB_MAXI, RESI_COMP_RELA et RESI_REFE_RELA). Cette colonne indiquera le nœud où le résidu est maximum, ce qui peut aider l'utilisateur lorsqu'il y a des difficultés de convergence. Par exemple, pour voir si le matériau a été mal défini avec une valeur incorrecte sur un élément. Le mot-clef INFO_TEMPS permet d'ajouter une colonne qui donner le temps passé dans l'itération de Newton.