6. Principe de surcharge#
Il peut arriver que l’utilisateur définisse plusieurs fois une même relation linéaire (à un coefficient multiplicateur près).
Exemple :
3.DX(N1) -1.DY(N2) = 4. 6.DX(N1) -2.DY(N2) = 8. 3.DX(N1) -1.DY(N2) = 5.
Ici, les 2 premières équations sont identiques. La troisième est contradictoire avec les précédentes (à cause du second membre).
Si deux équations d’un système linéaire à résoudre ont le même 1ier membre, on ne peut inverser la matrice, car les équations ne sont pas indépendantes. Il faut donc éliminer toutes les équations qui sont multiples les unes des autres.
On veut pouvoir appliquer le principe de “surcharge” [U2.01.00 §3.7] : c’est donc le dernier second membre qui est conservé.
Cette élimination des relations “redondantes” est faite au moment ou on ajoute la LISTE_RELAà la CHARGE(routine AFLRCH). On élimine les doublons de la LISTE_RELA, on imprime les relations éliminées, puis on ajoute les relations conservées à la CHARGE.
Si on garde le schéma conseillé ici au § 4 : une seule LISTE_RELA par mot clé facteur, le principe de surcharge est donc naturellement appliqué pour chaque mot clé. Les dernières occurrences priment sur les premières.
Si l’on voulait (on ne le veut pas aujourd’hui !) une surcharge entre différents mots clés (par exemple : DDL_IMPOprime sur FACE_IMPO), il suffirait que ces 2 mots clés soient associés a la même LISTE_RELA:
CALL FACIMPO (CH,LISREL) CALL DDLIMPO (CH,LISREL) CALL AFLRCH (LISREL,CH)