* fichier : mulmatflo.dgibi
***********************************************************
**** OPERATEUR 'KOPS' ****
**** OPERATEUR 'MDIA' ****
**** Multiplication MATRIK FLOTTANT et ****
**** MATRIK CHPOINT ****
**** Creation de CHPOINTs 'ET' MATRIKs vides ****
**** ****
**** A. BECCANTINI, LTMF AOUT 2001 ****
***********************************************************
'OPTION' 'ECHO' 0 ;
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' 'TRI3' ;
'OPTION' 'TRAC' 'X' ;
GRAPH = FAUX ;
* GRAPH = VRAI ;
*
*** MAILLAGE
*
P0 = 0.0D0 0.0D0 ;
P1 = 3.0D0 0.0D0 ;
P2 = 3.0D0 3.0D0 ;
P3 = 0.0D0 3.0D0 ;
P4 = 6.0D0 0.0D0 ;
P5 = 6.0D0 3.0D0 ;
RAF = 1 ;
N1 = 2 '*' RAF ;
N2 = 2 '*' RAF ;
N3 = 2 '*' RAF ;
N4 = 2 '*' RAF ;
N5 = 1 '*' RAF ;
N6 = 2 '*' RAF ;
N7 = 2 '*' RAF ;
LINEXT1 = ((P0 'DROIT' N1 P1) 'ET' (P1 'DROIT' N2 P2) 'ET'
(P2 'DROIT' N3 P3) 'ET' (P3 'DROIT' N4 P0)) ;
LINEXT2 = ((P1 'DROIT' N2 P2) 'ET' (P2 'DROIT' N5 P5) 'ET'
(P5 'DROIT' N6 P4) 'ET' (P4 'DROIT' N7 P1)) ;
'OPTION' 'ELEM' QUA4 ;
DOM1 = 'SURFACE' LINEXT1 'PLAN' ;
'OPTION' 'ELEM' TRI3 ;
DOM2 = 'SURFACE' LINEXT2 'PLAN' ;
DOMTOT = DOM1 'ET' DOM2;
'ELIMINATION' 1D-6 DOMTOT;
CHPBRU = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 DOMTOT)
'NATU' 'DISCRET') 'ET'
('NOMC' 'UY' ('BRUI' 'BLAN' 'UNIF' 0.0 0.2 DOMTOT)
'NATU' 'DISCRET') ;
'FORME' CHPBRU ;
'SI' GRAPH ;
'TRACER' DOMTOT ;
'FINSI' ;
$DOMTOT = 'DOMA' DOMTOT ;
VOLUME = 'DOMA' $DOMTOT 'VOLUME' ;
*
**** 'MDIA' pour la creation d'une matrice identité
* matrice identité permuté
*
RV = 'EQEX' $DOMTOT 'ITMA' 10
'OPTI' 'VF' 'IMPL' 'CENTREE'
'ZONE' $DOMTOT 'OPER' 'MDIA'
('INVERSE' ($DOMTOT . 'XXVOLUM'))
'INCO' 'UX' 'UX'
'ZONE' $DOMTOT 'OPER' 'MDIA'
('INVERSE' ($DOMTOT . 'XXVOLUM'))
'INCO' 'UY' 'UY' ;
RV . 'INCO' = 'TABLE' 'INCO' ;
RV . 'INCO' . 'UX' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
RV . 'INCO' . 'UY' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
MDIA (RV . '1MDIA') ;
MAT4 = RV . '1MDIA' . 'MATELM' ;
MDIA (RV . '2MDIA') ;
MAT5 = RV . '2MDIA' . 'MATELM' ;
MAT6 = MAT4 'ET' MAT5 ;
UN = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 $DOMTOT . 'CENTRE')
'NATU' 'DISCRET') 'ET'
('NOMC' 'UY' ('BRUI' 'BLAN' 'UNIF' 0.0 0.2 $DOMTOT . 'CENTRE')
'NATU' 'DISCRET') ;
UN1 = 'KOPS' MAT6 'MULT' UN ;
ERRO = 'MAXIMUM' (UN1 '-' UN) 'ABS' ;
'SI' (ERRO > 1.0D-12) ;
'MESSAGE' 'Probleme en KOPS ou en MDIA' ;
'ERREUR' 5 ;
'FINSI' ;
* Matrice identité permuté
* Variable primale: 'UX'
* Variable duale : 'UY'
RV = 'EQEX' $DOMTOT 'ITMA' 10
'OPTI' 'VF' 'IMPL' 'CENTREE'
'ZONE' $DOMTOT 'OPER' 'MDIA'
('INVERSE' ($DOMTOT . 'XXVOLUM'))
'INCO' 'UX' 'UY' ;
RV . 'INCO' = 'TABLE' 'INCO' ;
RV . 'INCO' . 'UX' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
RV . 'INCO' . 'UY' = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 0.0 ;
MDIA (RV . '1MDIA') ;
MAT4 = RV . '1MDIA' . 'MATELM' ;
UN1 = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 $DOMTOT . 'CENTRE')
'NATU' 'DISCRET') ;
UN2 = 'NOMC' 'UY' UN1 'NATU' 'DISCRET' ;
UN3 = 'KOPS' MAT4 'MULT' UN1 ;
ERRO = 'MAXIMUM' (UN2 '-' UN3) 'ABS' ;
'SI' (ERRO > 1.0D-12) ;
'MESSAGE' 'Probleme en KOPS ou en MDIA' ;
'ERREUR' 5 ;
'FINSI' ;
*
**** 'KOPS' 'MATIDE' pour la creation d'une matrice identité
*
LMOT = 'MOTS' 'UX' 'UY' ;
COEF = 4.0 ;
MAT1 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
MAT2 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
MAT3 = 'KOPS' 'MATIDE' LMOT ($DOMTOT . 'CENTRE') 'MATRIK' ;
*
**** Distibutivité entre '+' et 'MULT'
*
MATR1 = ('KOPS' MAT1 'MULT' COEF) 'ET'
('KOPS' MAT2 'MULT' COEF) 'ET'
('KOPS' MAT3 'MULT' COEF) ;
MATR2 = 'KOPS' (MAT1 'ET' MAT2 'ET' MAT3)
'MULT' COEF ;
UN = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 2
'UX' 1.0 'UY' 0.0 'NATU' 'DISCRET') ;
RIS1 = ('KOPS' MATR1 'MULT' UN) ;
RIS2 = ('KOPS' MATR2 'MULT' UN) ;
RISEX = ('MANUEL' 'CHPO' ($DOMTOT . 'CENTRE') 2
'UX' (COEF '*' 3.) 'UY' 0.0 'NATU' 'DISCRET') ;
*
***
ERRO = 'MAXIMUM' (RIS1 '-' RISEX) 'ABS' ;
ERRO = 'MAXIMUM' ('PROG' ERRO ('MAXIMUM' (RIS1 '-' RISEX) 'ABS')) ;
'SI' (ERRO > 1.0D-12) ;
'MESSAGE' 'Probleme en ET or en KOPS ' ;
'ERREUR' 5 ;
'FINSI' ;
* Les CHPOINTs et les MATRIKs vides
CHPVIDE MATVID = 'KOPS' 'MATRIK' ;
MATR3 = MATR2 'ET' ('KOPS' MATVID 'MULT' 17.5D0) ;
RIS3 = ('KOPS' MATR3 'MULT' UN) 'ET' (CHPVIDE '*' 2.1D0)
'ET' ('KOPS' CHPVIDE 'MULT' 12.2D0) ;
ERRO = 'MAXIMUM' (RIS3 '-' RISEX) 'ABS' ;
'SI' (ERRO > 1.0D-12) ;
'MESSAGE' 'Probleme en ET or en KOPS ' ;
'ERREUR' 5 ;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer