************************************************************************ * NOM : REDUCHAM * DESCRIPTION : Test la reduction d'un champ par element sur un modele * ou les elements sont identiques a ceux du champ mais * ou les noeuds ne sont pas decrits dans le meme ordre * * Toutefois, ils ont la meme orientation * * Marche pour les elements TRI et QUA mais pas pour les * massifs 3D (cf. reduaf.eso). Le champ par element * doit etre de type NOEUD ou GRAVITE * * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stephane GOUNAND (CEA/DES/ISAS/DM2S/SEMT/LTA) * mel : stephane.gounand@cea.fr ********************************************************************** * VERSION : v1, 06/07/2026, version initiale * HISTORIQUE : v1, 06/07/2026, création * HISTORIQUE : * HISTORIQUE : ************************************************************************ * * * interact = faux ; * 'OPTI' 'DIME' 2 'ELEM' 'TRI3' ; * vprec = '*' ('VALE' 'PREC') 10. ; * p1 = 0. 0. ; p2 = 1. 0. ; p3 = 1. 1. ; p4 = 2. 0. ; p5 = 2. 1. ; * t1 = 'MANU' 'TRI3' p1 p2 p3 ; t2 = 'MANU' 'TRI3' p2 p3 p1 ; t3 = 'MANU' 'TRI3' p3 p1 p2 ; ltrio = 'ENUM' t1 t2 t3 ; * q1 = 'MANU' 'QUA4' p2 p4 p5 p3 ; q2 = 'MANU' 'QUA4' p4 p5 p3 p2 ; q3 = 'MANU' 'QUA4' p5 p3 p2 p4 ; q4 = 'MANU' 'QUA4' p3 p2 p4 p5 ; lquao = 'ENUM' q1 q2 q3 q4 ; * lok = vrai ; * 'REPE' bdeg 2 ; ideg = &bdeg ; 'SI' ('EGA' ideg 1) ; ltri = ltrio ; lqua = lquao ; 'SINO' ; 'OPTI' 'PARA' vrai ; 'SI' ('EGA' ideg 2) ; mocha = 'QUAD' ; 'SINO' ; mocha = 'QUAF' ; 'FINS' ; ltri = 'CHAN' ltrio mocha ; lqua = 'CHAN' lquao mocha ; 'OPTI' 'PARA' faux ; 'ELIM' ('ETG' ltri) 1.d-6 ; 'ELIM' ('ETG' lqua) 1.d-6 ; 'FINS' ; * tri1 = 'EXTR' ltri 1 ; qua1 = 'EXTR' lqua 1 ; mcha = tri1 'ET' qua1 ; mod1 = 'MODE' mcha 'MECANIQUE' 'CONS' 'CO1' ; xm ym = 'COOR' mcha ; mchap = xm '-' (PI '*' ym) ; * mcham1 = 'CHAN' 'CHAM' mchap mcha ; mcham2 = 'CHAN' 'CHAM' mchap mod1 'NOEUD' ; mcham3 = 'CHAN' 'CHAM' mchap mod1 'GRAVITE' ; * 'REPE' btri ('DIME' ltri) ; tri = 'EXTR' ltri &btri ; mod2 = 'MODE' tri 'MECANIQUE' 'CONS' 'CO1' ; mcham1a = 'REDU' mcham1 mod2 ; mchap1a = 'CHAN' 'CHPO' mod2 mcham1a ; mchap1b = 'REDU' mchap tri ; dif = 'MAXI' ('-' mchap1b mchap1a) 'ABS' ; tst = '<' dif vprec ; 'SI' ('NON' tst) ; 'MESS' 'MCHAM1A' ; 'LIST' mcham1a ; 'LIST' ('EXTR' mcham1a 'MAIL') ; mcham1b = 'REDU' mcham1 mod1 ; 'MESS' 'MCHAM1B' ; 'LIST' mcham1b ; 'LIST' ('EXTR' mcham1b 'MAIL') ; 'ERRE' 'Reduction !!!!' ; 'FINS' ; lok = lok 'ET' tst ; mcham2a = 'REDU' mcham2 mod2 ; mchap2a = 'CHAN' 'CHPO' mod2 mcham2a ; mchap2b = 'REDU' mchap tri ; dif = 'MAXI' ('-' mchap2b mchap2a) 'ABS' ; tst = '<' dif vprec ; 'SI' ('NON' tst) ; 'MESS' 'MCHAM2A' ; 'LIST' mcham2a ; 'LIST' ('EXTR' mcham2a 'MAIL') ; mcham2b = 'REDU' mcham2 mod2 ; 'MESS' 'MCHAM2B' ; 'LIST' mcham2b ; 'LIST' ('EXTR' mcham2b 'MAIL') ; 'ERRE' 'Reduction !!!!' ; 'FINS' ; lok = lok 'ET' tst ; mcham3a = 'REDU' mcham3 mod2 ; mcham3b = 'REDU' mcham3 ('MODE' tri1 mecanique 'CONS' 'CO1') ; v3a = 'MAXI' mcham3a 'ABS' ; v3b = 'MAXI' mcham3b 'ABS' ; dif = 'MAXI' ('-' v3b v3a) 'ABS' ; tst = '<' dif vprec ; 'SI' ('NON' tst) ; 'MESS' 'MCHAM3A' ; 'LIST' mcham3a ; 'LIST' ('EXTR' mcham3a 'MAIL') ; mcham3b = 'REDU' mcham3 mod3 ; 'MESS' 'MCHAM3B' ; 'LIST' mcham3b ; 'LIST' ('EXTR' mcham3b 'MAIL') ; 'ERRE' 'Reduction !!!!' ; 'FINS' ; 'FIN' btri ; * 'REPE' bqua ('DIME' lqua) ; qua = 'EXTR' lqua &bqua ; mod2 = 'MODE' qua 'MECANIQUE' 'CONS' 'CO1' ; mcham1a = 'REDU' mcham1 mod2 ; mchap1a = 'CHAN' 'CHPO' mod2 mcham1a ; mchap1b = 'REDU' mchap qua ; dif = 'MAXI' ('-' mchap1b mchap1a) 'ABS' ; tst = '<' dif vprec ; 'SI' ('NON' tst) ; 'MESS' 'MCHAM1A' ; 'LIST' mcham1a ; 'LIST' ('EXTR' mcham1a 'MAIL') ; mcham1b = 'REDU' mcham1 mod1 ; 'MESS' 'MCHAM1B' ; 'LIST' mcham1b ; 'LIST' ('EXTR' mcham1b 'MAIL') ; 'ERRE' 'Reduction !!!!' ; 'FINS' ; lok = lok 'ET' tst ; mcham2a = 'REDU' mcham2 mod2 ; mchap2a = 'CHAN' 'CHPO' mod2 mcham2a ; mchap2b = 'REDU' mchap qua ; dif = 'MAXI' ('-' mchap2b mchap2a) 'ABS' ; tst = '<' dif vprec ; 'SI' ('NON' tst) ; 'MESS' 'MCHAM2A' ; 'LIST' mcham2a ; 'LIST' ('EXTR' mcham2a 'MAIL') ; mcham2b = 'REDU' mcham2 mod2 ; 'MESS' 'MCHAM2B' ; 'LIST' mcham2b ; 'LIST' ('EXTR' mcham2b 'MAIL') ; 'ERRE' 'Reduction !!!!' ; 'FINS' ; lok = lok 'ET' tst ; mcham3a = 'REDU' mcham3 mod2 ; mcham3b = 'REDU' mcham3 ('MODE' qua1 mecanique 'CONS' 'CO1') ; v3a = 'MAXI' mcham3a 'ABS' ; v3b = 'MAXI' mcham3b 'ABS' ; dif = 'MAXI' ('-' v3b v3a) 'ABS' ; tst = '<' dif vprec ; 'SI' ('NON' tst) ; 'MESS' 'MCHAM3A' ; 'LIST' mcham3a ; 'LIST' ('EXTR' mcham3a 'MAIL') ; mcham3b = 'REDU' mcham3 mod3 ; 'MESS' 'MCHAM3B' ; 'LIST' mcham3b ; 'LIST' ('EXTR' mcham3b 'MAIL') ; 'ERRE' 'Reduction !!!!' ; 'FINS' ; 'FIN' bqua ; 'FIN' bdeg ; * 'SI' ('NON' lok) ; 'MESSAGE' ('CHAINE' '!!! Il y a eu des erreurs') ; 'SINON' ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ; 'FINSI' ; * 'OPTI' echo 1 ; 'SI' interact ; 'OPTI' 'DONN' 5 ; 'FINS' ; 'SI' ('NON' lok) ; 'ERRE' 5 ; 'FINS' ; * * End of dgibi file REDUCHAM * 'FIN' ;