* fichier : sochamevol.dgibi
*---------------------------------------------------------------------*
* Cas-test de l'operateur '-' *
* *
* Ce cas-test verifie la soustraction de MCHAMLs dont les *
* composantes sont de type EVOLUTIOn. *
* *
*---------------------------------------------------------------------*
* *
* Pour avoir les messages, mettre IMES1 a VRAI : *
IMES1 = FAUX ;
* *
'OPTI' 'ECHO' 0 ;
'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
* *
*---------- Maillage : support geometrique pour les MCHAMLs ----------*
* *
* Je realise un maillage comportant 2 sous-zones : *
P1 = 0. 0. ;
P2 = 1. 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 ;
* *
* *
* *
*-------- Soustraction d'un MCHAML d'EVOLUTIOns par lui meme ---------*
* *
*--- 1. MCHAML a une composante : *
* *
* Definition d'une EVOLUTIOn : *
LX1 = 'PROG' 0. 1. 2. ;
LY1 = 'PROG' 2. 3. 5. ;
EV1 = 'EVOL' 'MANU' 'T' LX1 'K' LY1 ;
* *
* Modele et MCHAML : *
MOD1 = 'MODE' S1 'THERMIQUE' ;
MAT1 = 'MATE' MOD1 'K' EV1 ;
* *
MAT3 = MAT1 - MAT1 ;
* *
* Verification de la soustraction : *
ERR1 = 0. ;
'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)) ;
* *
* *
*--- 2. MCHAML a deux composantes : *
* *
* Definition d'une 2e EVOLUTIOn :
LX2 = LX1 ;
LY2 = LY1 ** 0.5 ;
EV2 = 'EVOL' 'MANU' 'T' LX2 'RHO' LY2 ;
* *
MAT2 = 'MATE' MOD1 'RHO' EV2 'K' EV1 ;
MAT3 = MAT2 - MAT2 ;
* *
* Verification de la soustraction : *
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 2) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'RHO') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
EVK4 = 'EXTR' MAT3 'RHO' 1 1 1 ;
LX4 = 'EXTR' EVK4 'ABSC' ;
LY4 = 'EXTR' EVK4 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((LY1 - LY1) - LY3))
+ ('MAXI' (LX2 - LX4)) + ('MAXI' ((LY2 - LY2) - LY4)) ;
* *
* *
* *
*-------------- Soustraction de 2 MCHAMLs d'EVOLUTIOns ---------------*
* *
*--- 1. MCHAMLs a une composante : *
* *
EV2 = 'EVOL' 'MANU' 'T' LX2 'K' LY2 ;
MAT2 = 'MATE' MOD1 'K' EV2 ;
MAT3 = MAT1 - MAT2 ;
* *
* Verification de la soustraction : *
'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)) ;
* *
* *
*--- 2. MCHAMLs ayant deux memes composantes : *
* *
EV2 = 'EVOL' 'MANU' 'T' LX2 'RHO' LY2 ;
MAT1 = 'MATE' MOD1 'RHO' EV2 'K' EV1 ;
MAT2 = 'MATE' MOD1 'RHO' (2. * EV2) 'K' (-0.5 * EV1) ;
MAT3 = MAT1 - MAT2 ;
* *
* Verification de la soustraction :
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('DIME' ('EXTR' MAT3 'COMP')) 2) ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 1) 'RHO') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 2) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
EVK3 = 'EXTR' MAT3 'K' 1 1 1 ;
LX3 = 'EXTR' EVK3 'ABSC' ;
LY3 = 'EXTR' EVK3 'ORDO' ;
EVK4 = 'EXTR' MAT3 'RHO' 1 1 1 ;
LX4 = 'EXTR' EVK4 'ABSC' ;
LY4 = 'EXTR' EVK4 'ORDO' ;
ERR1 = ERR1 + ('MAXI' (LX1 - LX3)) + ('MAXI' ((1.5 * LY1) - LY3))
+ ('MAXI' (LX2 - LX4)) + ('MAXI' ((-1. * LY2) - LY4)) ;
* *
* *
*--- 3. MCHAMLs ayant trois composantes mais qu'une en commun : *
* *
MAT1 = 'MATE' MOD1 'RHO' 1. 'K' EV1 ;
MAT2 = 'MATE' MOD1 'C' 0.3 'K' (-0.5 * EV1) ;
MAT3 = MAT1 - MAT2 ;
* *
* Verification de la soustraction :
'SI' ('NEG' ('TYPE' MAT3) 'MCHAML') ;
ERR1 = 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) 'K') ;
ERR1 = ERR1 + 1. ;
'FINS' ;
'SI' ('NEG' ('EXTR' ('EXTR' MAT3 'COMP') 3) 'C') ;
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' ((1.5 * LY1) - LY3)) ;
* *
*-------------------------- Fin des tests ----------------------------*
* *
* Gestion de l'erreur : *
'SI' ('NEG' ERR1 0.) ;
'ERRE' 5 ;
'FINS' ;
* *
* Message de sortie : *
VECH1 = 'VALE' 'ECHO' ;
'OPTI' 'ECHO' 0 ;
'SI' IMES1 ;
'SAUT' 1 'LIGN' ;
'MESS'
'*** TEST REUSSI ***'
;
FINS ;
'OPTI' 'ECHO' VECH1 ;
* *
'FIN' ;
*---------------------------------------------------------------------*
© Cast3M 2003 - All rights reserved.
Disclaimer