* fichier : muchamevol.dgibi
*---------------------------------------------------------------------*
* Cas-test de l'operateur '*' et '/' *
* *
* Ce cas-test verifie la multiplication (la division) de MCHAMLs *
* de composante de type EVOLUTIOn : *
* *
* 1. Multiplication et division par un FLOTTANT. *
* *
* 2. Multiplication d'un MCHAML de type CARACTERISTIQUES, dont la *
* composante est de type EVOLUTIOn, par un MCHAML de type SCALAIRE,*
* dont la composante est de type FLOTTANT. *
* *
* 3. Multiplication d'un MCHAML de type CARACTERISTIQUES, dont la *
* composante est de type EVOLUTIOn, par un autre MCHAML de type *
* CARACTERISTIQUES, dont la composante est : *
* - soit de type FLOTTANT ; *
* - soit de type EVOLUTIOn. *
* *
* 4. Multiplication d'un MCHAML de type CARACTERISTIQUES possedant *
* trois composantes : deux de type FLOTTANT et une de type EVOLU- *
* -TIOn, par un autre MCHAML de type CARACTERISTIQUES mais dont les*
* trois composantes sont de type EVOLUTIOn. *
* *
* 5. Idem 4 mais, de plus, on precise les noms des composantes *
* intervenant dans chaque produit ainsi que celui de la composante *
* resultat a l'aide de trois LISMOTS : *
* - CHAM3 = CHMA1 * CHMA2 LISMOTS1 LISMOTS2 LISMOTS3 ; *
* *
* 6. Idem 5 mais, de plus, on pondere le resultat de chaque produit*
* par un coefficient fournit par un LISTREEL : *
* - CHAM3 = CHMA1 * CHMA2 LISMOTS1 LISMOTS2 LISMOTS3 LISTREEL ; *
* *
* 7. Multiplication d'un MCHAML de type CARACTERISTIQUES, possedant*
* une composante de type EVOLUTIOn sur une 1e sous-zone du maillage*
* et une composante de type FLOTTANT sur une 2e sous-zone, par un *
* MCHAML de type SCALAIRE. *
* *
* 8. Multiplication d'un MCHAML de type CARACTERISTIQUES, possedant*
* une composante de type EVOLUTIOn sur une 1e sous-zone et une *
* composante de type FLOTTANT sur une 2e sous-zone, par un MCHAML *
* dont la composante est de type EVOLUTIOn sur tout le *
* *
* 9. Multiplication d'un MCHAML de type CARACTERISTIQUES, possedant*
* une composante de type EVOLUTIOn sur la sous-zone 1 et une compo-*
* -sante de type FLOTTANT sur une sous-zone 2, par un MCHAML dont *
* la composante est de type FLOTTANT sur une sous-zone 1 et *
* EVOLUTIOn sur la sous-zone 2. *
* *
*---------------------------------------------------------------------*
* *
* Pour avoir les messages, mettre IMES1 a VRAI : *
IMES1 = FAUX ;
*
'OPTI' 'ECHO' 1 ;
'OPTI' 'DIME' 2 'ELEM' QUA4 ;
* *
*---------- Maillage : support geometrique pour les MCHAMLs ----------*
* *
* Je realise un maillage comportant 2 sous-zones : *
P1 = 0. 0. ;
P2 = 2. 0. ;
P3 = 1. 1. ;
P4 = 0. 1. ;
D1 = P1 'DROI' 2 P2 ;
Q1 = D1 'TRAN' 2 P4 ;
T1 = 'MANU' 'TRI3' P3 (0.5 1.5) P4 ;
S1 = Q1 'ET' T1 ;
'ELIM' S1 1.E-3 ;
* *
*----------------------- 1. "CHAMEVOL * SCAL1" -----------------------*
* *
LX1 = 'PROG' 0. 1. 2. ;
LY1 = 'PROG' 2. 3. 5. ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
MOD1 = 'MODE' S1 'THERMIQUE' ;
MAT1 = 'MATE' MOD1 'K' EVK1 ;
* *
CHAM2 = MAT1 * 7. ;
* *
* Verification :
ERR1 = 0. ;
'SI' ('NEG' ('TYPE' CHAM2) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' CHAM2 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' CHAM2 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK2 = 'EXTR' CHAM2 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((7. * LY1) - LY2)) ;
* *
* Je commute le produit :
CHAM2 = 7. * MAT1 ;
* *
* Nouvelle verification :
'SI' ('NEG' ('TYPE' CHAM2) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' CHAM2 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' CHAM2 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK2 = 'EXTR' CHAM2 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((7. * LY1) - LY2)) ;
* *
* Je fais la division : *
CHAM2 = MAT1 / 7. ;
* *
* Nouvelle verification :
'SI' ('NEG' ('TYPE' CHAM2) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' CHAM2 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' CHAM2 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK2 = 'EXTR' CHAM2 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((LY1 / 7.) - LY2)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans la multiplication/division d"un MCHAML d"EVOLUTIOn' ;
'MESS'
' par un FLOTTANT.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*---------------------- 2. "CHAMEVOL * CHAMSCAL" ---------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LY1 = 'PROG' 2. 3. 5. ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
MOD1 = 'MODE' S1 'THERMIQUE' ;
MAT1 = 'MATE' MOD1 'K' EVK1 ;
CHAM1 = 'MANU' 'CHML' MOD1 'SCAL' 7. 'RIGIDITE' ;
* *
CHAM2 = MAT1 * CHAM1 ;
* *
* Verification : *
'SI' ('NEG' ('TYPE' CHAM2) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' CHAM2 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' CHAM2 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK2 = 'EXTR' CHAM2 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((7. * LY1) - LY2)) ;
* *
* Je commute le produit : *
CHAM2 = CHAM1 * MAT1 ;
* *
* Nouvelle verification : *
'SI' ('NEG' ('TYPE' CHAM2) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' CHAM2 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' CHAM2 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK2 = 'EXTR' CHAM2 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((7. * LY1) - LY2)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans la multiplication d"un MCHAML d"EVOLUTIOn par' ;
'MESS'
' un MCHAML de FLOTTANT.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*--------------------- 3. "CHAMFLOT1 * CHAMEVOL1" --------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LY1 = 'PROG' 2. 3. 5. ;
LY2 = 'PROG' 4. 2. 7. ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
EVK2 = 'EVOL' 'MANU' 'T' LX1 'K' LY2 ;
MOD1 = 'MODE' S1 'THERMIQUE' ;
MAT1 = 'MATE' MOD1 'K' EVK1 ;
MAT2 = 'MATE' MOD1 'K' 7. ;
* *
MAT3 = MAT2 * MAT1 ;
* *
* Verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 * 7.) - LY3)) ;
* *
* Je commute le produit : *
MAT3 = MAT1 * MAT2 ;
* *
* Nouvelle verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 * 7.) - LY3)) ;
* *
MAT3 = MAT1 * MAT1 ;
* *
* Verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 * LY1) - LY3)) ;
* *
* Je me donne un 2e "CHAMEVOL" : *
MAT2 = 'MATE' MOD1 'K' EVK2 ;
* *
MAT3 = MAT1 * MAT2 ;
* *
* Nouvelle verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 * LY2) - LY3)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans la multiplication d"un MCHAML d"EVOLUTIOn de type' ;
'MESS'
' CARACTERISTIQUES par un autre MCHAML de type CARACTERISTIQUES' ;
'MESS'
' et de composante FLOTTANT ou EVOLUTIOn.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*--------------------- 4. "CHAMMIXT1 * CHAMEVOL1" --------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LR2 = 'PROG' 1. 3. 3. ;
LC2 = 'PROG' 1. 2. 1. ;
LK1 = 'PROG' 2. 3. 5. ;
LK2 = 'PROG' 7. 7. 7. ;
EVR2 = 'EVOL' 'MANU' 'T' LX1 'RHO' LR2 ;
EVC2 = 'EVOL' 'MANU' 'T' LX1 'C' LC2 ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K' LK1 ;
EVK2 = 'EVOL' 'MANU' 'T' LX1 'K' LK2 ;
MOD1 = 'MODE' S1 'THERMIQUE' ;
MAT1 = 'MATE' MOD1 'RHO' 2.0 'C' 0.5 'K' EVK1 ;
MAT2 = 'MATE' MOD1 'RHO' EVR2 'C' EVC2 'K' EVK2 ;
* *
MAT3 = MAT1 * MAT2 ;
* *
* Verification :
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 3) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'RHO') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'C') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVR3 = 'EXTR' MAT3 'RHO' 1 1 1 ;
LX3 = 'EXTR' EVR3 'ABSC' ;
LR3 = 'EXTR' EVR3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((2. * LR2) - LR3)) ;
EVC3 = 'EXTR' MAT3 'C' 1 1 1 ;
LX3 = 'EXTR' EVC3 'ABSC' ;
LC3 = 'EXTR' EVC3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((0.5 * LC2) - LC3)) ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LK3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LK1 * LK2) - LK3)) ;
* *
* Je commute le produit : *
MAT3 = MAT2 * MAT1 ;
* *
* Nouvelle verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 3) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'RHO') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'C') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVR3 = 'EXTR' MAT3 'RHO' 1 1 1 ;
LX3 = 'EXTR' EVR3 'ABSC' ;
LR3 = 'EXTR' EVR3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((2. * LR2) - LR3)) ;
EVC3 = 'EXTR' MAT3 'C' 1 1 1 ;
LX3 = 'EXTR' EVC3 'ABSC' ;
LC3 = 'EXTR' EVC3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((0.5 * LC2) - LC3)) ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LK3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LK1 * LK2) - LK3)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans la multiplication d"un MCHAML de CARACTERISTIQUES' ;
'MESS'
' ayant deux composantes FLOTTANT et une composante EVOLUTIOn' ;
'MESS'
' par un autre MCHAML de CARACTERISTIQUES dont les composantes' ;
'MESS'
' sont des objets EVOLUTIOn.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*--------------------- 5. "CHAMMIXT1 * CHAMEVOL1" --------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LR2 = 'PROG' 1. 3. 3. ;
LC2 = 'PROG' 1. 2. 1. ;
LK1 = 'PROG' 2. 3. 5. ;
LK2 = 'PROG' 7. 7. 7. ;
EVR2 = 'EVOL' 'MANU' 'T' LX1 'RHO2' LR2 ;
EVC2 = 'EVOL' 'MANU' 'T' LX1 'C2' LC2 ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K1' LK1 ;
EVK2 = 'EVOL' 'MANU' 'T' LX1 'K2' LK2 ;
MOD1 = 'MODE' S1 'THERMIQUE' ;
MAT1 = 'MANU' 'CHML' MOD1 'RHO1' 2.0 'C1' 0.5 'K1' EVK1 ;
MAT2 = 'MANU' 'CHML' MOD1 'RHO2' EVR2 'C2' EVC2 'K2' EVK2 ;
LM1 = 'MOTS' 'RHO1' 'C1' 'K1' ;
LM2 = 'MOTS' 'K2' 'RHO2' 'C2' ;
LM3 = 'MOTS' 'C3' 'K3' 'RHO3' ;
* *
MAT3 = MAT1 * MAT2 LM1 LM2 LM3 ;
* *
* Verification :
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 3) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'C3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'RHO3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVR3 = 'EXTR' MAT3 'RHO3' 1 1 1 ;
LX3 = 'EXTR' EVR3 'ABSC' ;
LR3 = 'EXTR' EVR3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LK1 * LC2) - LR3)) ;
EVC3 = 'EXTR' MAT3 'C3' 1 1 1 ;
LX3 = 'EXTR' EVC3 'ABSC' ;
LC3 = 'EXTR' EVC3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((2. * LK2) - LC3)) ;
EVK3 = 'EXTR' MAT3 'K3' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LK3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((0.5 * LR2) - LK3)) ;
* *
* Je commute le produit : *
MAT3 = MAT2 * MAT1 LM2 LM1 LM3 ;
* *
* Nouvelle verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 3) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'C3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'RHO3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVR3 = 'EXTR' MAT3 'RHO3' 1 1 1 ;
LX3 = 'EXTR' EVR3 'ABSC' ;
LR3 = 'EXTR' EVR3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LK1 * LC2) - LR3)) ;
EVC3 = 'EXTR' MAT3 'C3' 1 1 1 ;
LX3 = 'EXTR' EVC3 'ABSC' ;
LC3 = 'EXTR' EVC3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((2. * LK2) - LC3)) ;
EVK3 = 'EXTR' MAT3 'K3' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LK3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((0.5 * LR2) - LK3)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans le produit de 2 MCHAML dont certaines composantes' ;
'MESS'
' sont de type EVOLUTIOn en fournissant trois LISTMOTS pour' ;
'MESS'
' preciser les noms des composantes intervenant dans chaque' ;
'MESS'
' produit et celui des composantes resultats.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*--------------------- 6. "CHAMMIXT1 * CHAMEVOL1" --------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LR2 = 'PROG' 1. 3. 3. ;
LC2 = 'PROG' 1. 2. 1. ;
LK1 = 'PROG' 2. 3. 5. ;
LK2 = 'PROG' 7. 7. 7. ;
EVR2 = 'EVOL' 'MANU' 'T' LX1 'RHO2' LR2 ;
EVC2 = 'EVOL' 'MANU' 'T' LX1 'C2' LC2 ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K1' LK1 ;
EVK2 = 'EVOL' 'MANU' 'T' LX1 'K2' LK2 ;
MOD1 = 'MODE' S1 'THERMIQUE' ;
MAT1 = 'MANU' 'CHML' MOD1 'RHO1' 2.0 'C1' 0.5 'K1' EVK1 ;
MAT2 = 'MANU' 'CHML' MOD1 'RHO2' EVR2 'C2' EVC2 'K2' EVK2 ;
LM1 = 'MOTS' 'RHO1' 'C1' 'K1' ;
LM2 = 'MOTS' 'K2' 'RHO2' 'C2' ;
LM3 = 'MOTS' 'C3' 'K3' 'RHO3' ;
LR1 = 'PROG' 1. 0.5 2. ;
* *
MAT3 = MAT1 * MAT2 LM1 LM2 LM3 LR1 ;
* *
* Verification :
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 3) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'C3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'RHO3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVR3 = 'EXTR' MAT3 'RHO3' 1 1 1 ;
LX3 = 'EXTR' EVR3 'ABSC' ;
LR3 = 'EXTR' EVR3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3))
+ ('MAXI' ((2. * LK1 * LC2) - LR3)) ;
EVC3 = 'EXTR' MAT3 'C3' 1 1 1 ;
LX3 = 'EXTR' EVC3 'ABSC' ;
LC3 = 'EXTR' EVC3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((2. * LK2) - LC3)) ;
EVK3 = 'EXTR' MAT3 'K3' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LK3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3))
+ ('MAXI' ((0.5 * 0.5 * LR2) - LK3)) ;
* *
* Je commute le produit : *
MAT3 = MAT2 * MAT1 LM2 LM1 LM3 LR1 ;
* *
* Nouvelle verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 3) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'C3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'RHO3') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVR3 = 'EXTR' MAT3 'RHO3' 1 1 1 ;
LX3 = 'EXTR' EVR3 'ABSC' ;
LR3 = 'EXTR' EVR3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3))
+ ('MAXI' ((2. * LK1 * LC2) - LR3)) ;
EVC3 = 'EXTR' MAT3 'C3' 1 1 1 ;
LX3 = 'EXTR' EVC3 'ABSC' ;
LC3 = 'EXTR' EVC3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((2. * LK2) - LC3)) ;
EVK3 = 'EXTR' MAT3 'K3' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LK3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3))
+ ('MAXI' ((0.5 * 0.5 * LR2) - LK3)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans le produit de 2 MCHAML dont certaines composantes' ;
'MESS'
' sont de type EVOLUTIOn en fournissant trois LISTMOTS pour' ;
'MESS'
' preciser les noms des composantes intervenant dans chaque' ;
'MESS'
' produit et celui des composantes resultats et en fournissant' ;
'MESS'
' egalement un LISTREEL dont les valeurs ponderent les resultats.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*--------------------- 7. "CHAMMIXT1 * CHAMFLOT1" --------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LY1 = 'PROG' 2. 3. 5. ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
MOD1 = 'MODE' T1 'THERMIQUE' ;
MOD2 = 'MODE' Q1 'THERMIQUE' ;
MOD0 = MOD1 'ET' MOD2 ;
MAT1 = 'MATE' MOD1 'K' EVK1 ;
MAT2 = 'MATE' MOD2 'K' 13. ;
MAT0 = MAT1 'ET' MAT2 ;
CHAM1 = 'MANU' 'CHML' MOD0 'SCAL' 7. 'RIGIDITE' ;
* *
CHAM2 = MAT0 * CHAM1 ;
* *
* Verification :
* *
'SI' ('NEG' ('TYPE' CHAM2) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' CHAM2 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' CHAM2 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
CHAM2_1 = 'REDU' CHAM2 MOD1 ;
CHAM2_2 = 'REDU' CHAM2 MOD2 ;
EVK2 = 'EXTR' CHAM2_1 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((7. * LY1) - LY2)) ;
KS2 = 'EXTR' CHAM2_2 'K' 1 1 1 ;
ERR1 = ERR1 + (KS2 - (7. * 13.)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans la multiplication d"un MCHAML de CARACTERISTIQUES' ;
'MESS'
' ayant deux sous-zone : la 1e de type FLOTTANT, la 2nd de type' ;
'MESS'
' EVOLUTIOn, par un CHAML de type SCALAIRE.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*--------------------- 8. "CHAMMIXT2 * CHAMEVOL1" --------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LY1 = 'PROG' 2. 3. 5. ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
EV1 = 'EVOL' 'MANU' 'T' LX1 ('PROG' 1. 1. 1.) ;
MOD1 = 'MODE' T1 'THERMIQUE' ;
MOD2 = 'MODE' Q1 'THERMIQUE' ;
MOD0 = MOD1 'ET' MOD2 ;
MAT1_1 = 'MATE' MOD1 'K' EVK1 ;
MAT2_1 = 'MATE' MOD2 'K' (13. * EV1) ;
MAT1_2 = 'MATE' MOD1 'K' 7. ;
MAT2_2 = 'MATE' MOD2 'K' (2. * EVK1) ;
MAT0_1 = MAT1_1 'ET' MAT2_1 ;
MAT0_2 = MAT1_2 'ET' MAT2_2 ;
* *
MAT3 = MAT0_1 * MAT0_2 ;
* *
* Verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK2 = 'EXTR' MAT3 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((7. * LY1) - LY2)) ;
EVK3 = 'EXTR' MAT3 'K' 2 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((26. * LY1) - LY3)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans la multiplication d"un MCHAML de CARACTERISTIQUES' ;
'MESS'
' ayant deux sous-zone : la 1e de type FLOTTANT, la 2nd de type' ;
'MESS'
' EVOLUTIOn, par un autre MCHAML de type CARACTERISTIQUES dont' ;
'MESS'
' toutes les sous-zones sont de type EVOLUTIOn.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*--------------------- 9. "CHAMMIXT1 * CHAMMIXT2" --------------------*
* *
* Definition des MCHAMLS necessaires au test : *
LX1 = 'PROG' 0. 1. 2. ;
LY1 = 'PROG' 2. 3. 5. ;
EVK1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
EV1 = 'EVOL' 'MANU' 'T' LX1 ('PROG' 1. 1. 1.) ;
MOD1 = 'MODE' T1 'THERMIQUE' ;
MOD2 = 'MODE' Q1 'THERMIQUE' ;
MOD0 = MOD1 'ET' MOD2 ;
MAT1_1 = 'MATE' MOD1 'K' EVK1 ;
MAT2_1 = 'MATE' MOD2 'K' 13. ;
MAT1_2 = 'MATE' MOD1 'K' 7. ;
MAT2_2 = 'MATE' MOD2 'K' (2. * EVK1) ;
MAT0_1 = MAT1_1 'ET' MAT2_1 ;
MAT0_2 = MAT1_2 'ET' MAT2_2 ;
* *
MAT3 = MAT0_1 * MAT0_2 ;
* *
* Verification : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 1) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK2 = 'EXTR' MAT3 'K' 1 1 1 ;
LX2 = 'EXTR' EVK2 'ABSC' ;
LY2 = 'EXTR' EVK2 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX2)) + ('MAXI' ((7. * LY1) - LY2)) ;
EVK3 = 'EXTR' MAT3 'K' 2 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((26. * LY1) - LY3)) ;
* *
* Message de sortie : *
IERR1 = 'NEG' ERR1 0. ;
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** Erreur dans la multiplication d"un MCHAML de CARACTERISTIQUES' ;
'MESS'
' ayant deux sous-zone : la 1e de type FLOTTANT, la 2nd de type' ;
'MESS'
' EVOLUTIOn, par un autre MCHAML de type CARACTERISTIQUES ayant' ;
'MESS'
' egalement deux sous-zone mais dont la 1e est de type EVOLUTIOn' ;
'MESS'
' et la 2e de type FLOTTANT.' ;
'FINS' ;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
* Gestion de l'erreur : *
'SI' IERR1 ;
'SAUT' 1 'LIGN' ;
'ERRE' 5 ;
'FINS' ;
* *
*---------------------------------------------------------------------*
* *
* Message de sortie si test reussi : *
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** TEST REUSSI ***'
;
'FINS' ;
'OPTI' 'ECHO' VECH1 ;
* *
'FIN' ;
'OPTI' 'ECHO' 1 ;
© Cast3M 2003 - All rights reserved.
Disclaimer