Anomalie #387
ouvertmodif affichage Norme Residu/Reaction depuis version 7.046
100%
Description
Gérard,
en comparant la version 7.040 et les versions ultérieures depuis 7.046, j'ai constaté une modif dans l'affichage terminal de la norme de convergence.
Sur un même calcul (cube en traction, loi ISOELAS), la version 7.040 affiche :
====================================================================== INCREMENT DE CHARGE : 1 intensite 0.0001 t= 0.0001 dt= 0.0001 ====================================================================== ITERATION : 1 (assemblage 1) reaction maxi : 0.0012498655, du ddl X1, du noeud/maillage 1/1 max puissance exterieure = 0 max puissance interieurs = 0.0012498655 max des reactions = 0.0012498655 max du residu total = 5.4080317e-09 **** Norme Residu/Reaction --> 4.3268909e-06
Les versions >=7.046 affichent :
====================================================================== INCREMENT DE CHARGE : 1 intensite 0.0001 t= 0.0001 dt= 0.0001 ====================================================================== ITERATION : 1 (assemblage 1) reaction maxi : 0.00124987, du ddl X1, du noeud/maillage 1/1 max puissance exterieure = 0.00000000 max puissance interieurs = 0.00124987 max des reactions = 0.00124987 max du residu total = 0.00000001 **** Norme Residu/Reaction --> 0.00000433
Ce n'est pas une anomalie car le résultat est strictement le même. Mais pourquoi ce changement de format ? Aux incréments suivants, on finit par obtenir une norme égale à 0.00000000 (pas assez de chiffres après la virgule) :
====================================================================== INCREMENT DE CHARGE : 21 intensite 0.00506274 t= 0.00506274 dt= 0.00056569 ====================================================================== ITERATION : 1 (assemblage 1) reaction maxi : 0.06294954, du ddl X1, du noeud/maillage 8/1 max puissance exterieure = 0.00000000 max puissance interieurs = 0.06294954 max des reactions = 0.06294954 max du residu total = 0.00000000 **** Norme Residu/Reaction --> 0.00000000
Fichiers
Mis à jour par Gérard Rio il y a environ un mois
- Statut changé de Nouveau à En cours
- % réalisé changé de 0 à 50
oui j'avais remarqué que je ne prenais pas en compte le nombre de diggit qui est paramétré dans Herezh, du coup les résultats qui étaient affichés dépendaient de la précision du calcul et ... peut-être de l'âge du capitaine car ce n'était pas toujours très logique. De plus cela ne facilitait pas la comparaison entre 2 os par exemple. Du coup on trouve dans le code par exemple:
int nbcar = ParaGlob::NbdigdoEC();
// 1) --- affichage des maxis de puissances virtuelles
if (affiche && (ParaGlob::NiveauImpression() > 1))
{ cout << "\n max puissance exterieure = " << std::fixed << std::setprecision(nbcar)<< maxPuissExt ;
etc.
et pour la première fct:
// ramène le nombre de diggit utilisé pour afficher des réels en double précision pour l'affichage
// sur l'écran
static int NbdigdoEC() { return nb_diggit_double_ecran;};
et pour les valeurs par défaut on a:
// nombre de chiffre significatifs utilisé pour l'affichage des double précision: le premier pour
// l'archivage du calcul le second pour la visualisation graphique
nb_diggit_double_calcul = 17;
nb_diggit_double_graphique = 12;
nb_diggit_double_ecran= 8;
Donc on a par défaut 8 chiffres après la virgule, mais on pourrait en mettre plus, par contre ce n'est pas forcément plus lisible ??
En tout cas, on peut indiquer une autre valeur dans le .info si nécessaire.
Mis à jour par Gérard Rio il y a environ un mois
- Statut changé de En cours à Résolu
- % réalisé changé de 50 à 100