Download sochamevol.dgibi

Back to the list

* 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