* fichier : domaxi.dgibi
************************************************************************
************************************************************************
**** Finite Volume, "Cell-Centred Formulation". ****
**** 'MODE' 'AXIS' ****
**** We check that 3D axis-symmetrical = 2D 'MODE' 'AXIS' ****
**** Operateur 'DOMA' ****
**** ****
**** A. BECCANTINI, LTMF FEBRUARY 2004 ****
************************************************************************
************************************************************************
*
**** Compatibility check
*
GRAPH = FAUX ;
*
**** Nothing from here
*
'SI' FAUX ;
*
**** Till here
*
'FINSI' ;
*
* 1) Mesh with one element
*
*****************************
**** SEG2 *******************
*****************************
*
'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
*
P1 = 1.0 2.0 ;
P2 = 3.11 4.15 ;
*
MAIL = P1 'DROIT' 1 P2 ;
*
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
QMAIL = TABM . 'QUAF' ;
*
CEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
* XCEN = 'COORDONNEE' 1 CEN1 ;
* YCEN = 'COORDONNEE' 2 CEN1 ;
XVOL = 'EXTRAIRE' (TABM . 'XXVOLUM') CEN1 'SCAL' ;
'OPTION' 'DIME' 3 'ELEM' CUB8 ;
* ANGLE in degrees
LISTTH = 'PROG' 20 10 5 2.5 1.25 ;
LISTER = 'PROG' ;
'REPETER' BLTH ('DIME' LISTTH) ;
TH = ('EXTRAIRE' LISTTH &BLTH) ;
LIG1 = MAIL 'TOURNER' (-0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
LIG2 = MAIL 'TOURNER' (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAIL2 = 'REGLER' LIG1 1 LIG2 ;
MODM2 = 'MODELISER' MAIL2 'EULER' ;
TABM2 = 'DOMA' MODM2 'VF' ;
QMAIL2 = TABM2 . 'QUAF' ;
'SI' GRAPH ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi' ;
'FINSI' ;
CEN2 = 'POIN' 1 (TABM2 . 'CENTRE') ;
VOL2 = 'EXTRAIRE' (TABM2 . 'XXVOLUM') CEN2 'SCAL' ;
XVOL2 = VOL2 '/' ((TH '*' PI) '/' 180) ;
ERRO = 'ABS' (XVOL2 '-' XVOL) ;
ERRO = ERRO '/' XVOL ;
LISTER = LISTER 'ET' ('PROG' ERRO) ;
'FIN' BLTH ;
*
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'SI' GRAPH ;
EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
(('LOG' LISTER) '/' ('LOG' 10.)) ;
'DESSIN' EVERR 'Error on volume' ;
'FINSI' ;
*****************************
**** TRI3 *******************
*****************************
'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
*
P1 = 1.0 2.0 ;
P2 = 3.11 4.15 ;
P3 = 2.0 6.0 ;
*
MAIL = 'MANUEL' 'TRI3' P1 P2 P3 ;
*
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
QMAIL = TABM . 'QUAF' ;
*
CEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
* XCEN = 'COORDONNEE' 1 CEN1 ;
* YCEN = 'COORDONNEE' 2 CEN1 ;
XVOL = 'EXTRAIRE' (TABM . 'XXVOLUM') CEN1 'SCAL' ;
'OPTION' 'DIME' 3 'ELEM' CUB8 ;
* ANGLE in degrees
LISTTH = 'PROG' 20 10 5 2.5 1.25 ;
LISTER = 'PROG' ;
LISTERS = 'PROG' ;
LISTERM = 'PROG' ;
'REPETER' BLTH ('DIME' LISTTH) ;
TH = ('EXTRAIRE' LISTTH &BLTH) ;
SUR1 = MAIL 'TOURNER' (-0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
SUR2 = MAIL 'TOURNER' (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAIL2 = 'VOLU' SUR1 1 SUR2 ;
MODM2 = 'MODELISER' MAIL2 'EULER' ;
TABM2 = 'DOMA' MODM2 'VF' ;
QMAIL2 = TABM2 . 'QUAF' ;
'SI' GRAPH ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi: centers' ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'FACE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'FACE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi: faces' ;
'FINSI' ;
* Test on the center position
CEN2 = 'POIN' 1 (TABM2 . 'CENTRE') ;
VOL2 = 'EXTRAIRE' (TABM2 . 'XXVOLUM') CEN2 'SCAL' ;
XVOL2 = VOL2 '/' ((TH '*' PI) '/' 180) ;
ERRO = 'ABS' (XVOL2 '-' XVOL) ;
ERRO = ERRO '/' XVOL ;
LISTER = LISTER 'ET' ('PROG' ERRO) ;
* Test on the face position
'ELIMINATION' (TABM . 'FACE') 1.0D-1 (TABM2 . 'FACE') ;
AA = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'FACE') ;
AA = AA '/' ((TH '*' PI) '/' 180) ;
ERROS = 'MAXIMUM' ((AA '-' (TABM . 'XXSURFAC')) '/'
AA) 'ABS' ;
LISTERS = LISTERS 'ET' ('PROG' ERROS) ;
* Test on NORMAF
AA = 'REDU' (TABM2 . 'XXNORMAF') (TABM . 'FACE') ;
ERROMA = 'MAXIMUM' (AA '-' (TABM . 'XXNORMAF')) ;
LISTERM = LISTERM 'ET' ('PROG' ERROMA) ;
'FIN' BLTH ;
*
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
'SI' (ERROS > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'SI' (ERROMA > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'SI' GRAPH ;
EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
(('LOG' LISTER) '/' ('LOG' 10.)) ;
'DESSIN' EVERR 'TITR' 'Error on volume' ;
EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
(('LOG' LISTERS) '/' ('LOG' 10.)) ;
'DESSIN' EVERR 'TITR' 'Error on surfaces' ;
EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
(('LOG' LISTERM) '/' ('LOG' 10.)) ;
'DESSIN' EVERR 'TITR' 'Error on normals' ;
'FINSI' ;
*****************************
**** QUA4 *******************
*****************************
'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
*
P1 = 1.01 0.0 ;
P2 = 2.01 0.0 ;
P3 = 2.0 1.01 ;
P4 = 1.0 1.0 ;
*
MAIL = 'MANUEL' 'QUA4' P1 P2 P3 P4 ;
*
'OPTION' 'MODE' 'PLAN' ;
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
XCEN0 = 'MAXIMUM' ('COORDONNEE' 1 (TABM . 'CENTRE')) ;
YCEN0 = 'MAXIMUM' ('COORDONNEE' 2 (TABM . 'CENTRE')) ;
SUR2D0 = 'MAXIMUM' (TABM . 'XXVOLUM') ;
*
'OPTION' 'MODE' 'AXIS' ;
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
QMAIL = TABM . 'QUAF' ;
*
XCEN2D = 'MAXIMUM' (TABM . 'XCEN2D') ;
YCEN2D = 'MAXIMUM' (TABM . 'YCEN2D') ;
ERRO = 'MAXIMUM' ('PROG' (XCEN2D '-' XCEN0) (YCEN2D '-' YCEN0))
'ABS' ;
'SI' (ERRO > 1.0D-8) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
SUR2D = 'MAXIMUM' (TABM . 'XXSUR2D') ;
ERRO = 'ABS' (SUR2D '-' SUR2D0) ;
'SI' (ERRO > 1.0D-8) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
CEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
* XCEN = 'COORDONNEE' 1 CEN1 ;
* YCEN = 'COORDONNEE' 2 CEN1 ;
XVOL = 'EXTRAIRE' (TABM . 'XXVOLUM') CEN1 'SCAL' ;
'OPTION' 'DIME' 3 'ELEM' CUB8 ;
* ANGLE in degrees
LISTTH = 'PROG' 20 10 5 2.5 1.25 ;
LISTER = 'PROG' ;
LISTERS = 'PROG' ;
LISTERM = 'PROG' ;
'REPETER' BLTH ('DIME' LISTTH) ;
TH = ('EXTRAIRE' LISTTH &BLTH) ;
SUR1 = MAIL 'TOURNER' (-0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
SUR2 = MAIL 'TOURNER' (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAIL2 = 'VOLU' SUR1 1 SUR2 ;
MODM2 = 'MODELISER' MAIL2 'EULER' ;
TABM2 = 'DOMA' MODM2 'VF' ;
QMAIL2 = TABM2 . 'QUAF' ;
'SI' GRAPH ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi' ;
'FINSI' ;
* Test on center position
CEN2 = 'POIN' 1 (TABM2 . 'CENTRE') ;
VOL2 = 'EXTRAIRE' (TABM2 . 'XXVOLUM') CEN2 'SCAL' ;
XVOL2 = VOL2 '/' ((TH '*' PI) '/' 180) ;
ERRO = 'ABS' (XVOL2 '-' XVOL) ;
ERRO = ERRO '/' XVOL ;
LISTER = LISTER 'ET' ('PROG' ERRO) ;
* Test on the face position
'ELIMINATION' (TABM . 'FACE') 1.0D-1 (TABM2 . 'FACE') ;
AA = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'FACE') ;
AA = AA '/' ((TH '*' PI) '/' 180) ;
ERROS = 'MAXIMUM' ((AA '-' (TABM . 'XXSURFAC')) '/'
AA) 'ABS' ;
LISTERS = LISTERS 'ET' ('PROG' ERROS) ;
* Test on NORMAF
AA = 'REDU' (TABM2 . 'XXNORMAF') (TABM . 'FACE') ;
ERROMA = 'MAXIMUM' (AA '-' (TABM . 'XXNORMAF')) ;
LISTERM = LISTERM 'ET' ('PROG' ERROMA) ;
'FIN' BLTH ;
*
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
'SI' (ERROS > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'SI' (ERROMA > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'SI' GRAPH ;
EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
(('LOG' LISTER) '/' ('LOG' 10.)) ;
'DESSIN' EVERR 'TITR' 'Error on volume' ;
EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
(('LOG' LISTERS) '/' ('LOG' 10.)) ;
'DESSIN' EVERR 'TITR' 'Error on surfaces' ;
EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Err'
(LISTERM) ;
'DESSIN' EVERR 'TITR' 'Error on normals' ;
'FINSI' ;
*
* 2) Mesh with more than one element
*
*****************************
**** SEG2 *******************
*****************************
*
'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
*
P1 = 1.0 2.0 ;
P2 = 3.11 4.15 ;
DX = 0.1 ;
*
MAIL = P1 'DROIT' P2 'DINI' DX 'DFIN' DX ;
*
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
QMAIL = TABM . 'QUAF' ;
*
'OPTION' 'DIME' 3 'ELEM' CUB8 ;
* ANGLE in degrees
TH = 1.25 ;
LIG1 = MAIL 'TOURNER' (-0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
LIG2 = MAIL 'TOURNER' (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAIL2 = 'REGLER' LIG1 1 LIG2 ;
MODM2 = 'MODELISER' MAIL2 'EULER' ;
TABM2 = 'DOMA' MODM2 'VF' ;
'SI' GRAPH ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi' ;
'FINSI' ;
AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
NBN1 = 'NBNO' AA ;
'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
NBN2 = 'NBNO' AA ;
'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
XVOL = TABM . 'XXVOLUM' ;
XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*****************************
**** TRI3 *******************
*****************************
*
* Axi
*
'OPTION' 'DIME' 2 'ELEM' 'TRI3' 'MODE' 'AXIS' ;
*
P1 = 1.0 2.0 ;
P2 = 3.11 4.15 ;
P3 = 2.0 6.0 ;
*
DX = 0.1 ;
*
MAIL = 'SURFACE' ((P1 'DROIT' P2 'DINI' DX 'DFIN' DX)
'ET' (P2 'DROIT' P3 'DINI' DX 'DFIN' DX) 'ET'
(P3 'DROIT' P1 'DINI' DX 'DFIN' DX)) 'PLAN' ;
*
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
QMAIL = TABM . 'QUAF' ;
MOD2 = 'MODELISER' (TABM . 'MAILLAGE') 'THERMIQUE' ;
*
*
'OPTION' 'DIME' 3 'ELEM' CUB8 ;
* ANGLE in degrees
TH = 1.25 ;
MAI1 = MAIL 'TOURNER' (-0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAI2 = MAIL 'TOURNER' (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAIL2 = 'VOLU' MAI1 1 MAI2 ;
MODM2 = 'MODELISER' MAIL2 'EULER' ;
TABM2 = 'DOMA' MODM2 'VF' ;
'SI' GRAPH ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi' ;
'FINSI' ;
AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
NBN1 = 'NBNO' AA ;
'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
NBN2 = 'NBNO' AA ;
'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
XVOL = TABM . 'XXVOLUM' ;
XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
**** Test of XXSUR2D
* Last test to do
* After that, the support of centres is deplaced
*
'DEPLACER' 'TOUR' (TABM . 'CENTRE') (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
'ELIMINATION' (TABM2 . 'FACE') (DX '/' 10) (TABM . 'CENTRE') ;
aa = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'CENTRE') ;
ERRO = 'MAXIMUM' (aa '-' (TABM . 'XXSUR2D')) ;
'SI' (ERRO > 1.0D-8) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*****************************
**** QUA4 *******************
*****************************
*
* Axi
*
'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' ;
*
P1 = 1.0 0.0 ;
P2 = 2.0 0.0 ;
P3 = 2.0 1.0 ;
P4 = 1.0 1.0 ;
*
DX = 0.1 ;
*
MAIL = 'SURFACE' ((P1 'DROIT' P2 'DINI' DX 'DFIN' DX)
'ET' (P2 'DROIT' P3 'DINI' DX 'DFIN' DX) 'ET'
(P3 'DROIT' P4 'DINI' DX 'DFIN' DX) 'ET'
(P4 'DROIT' P1 'DINI' DX 'DFIN' DX)) 'PLAN' ;
*
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
QMAIL = TABM . 'QUAF' ;
MOD2 = 'MODELISER' (TABM . 'MAILLAGE') 'THERMIQUE' ;
*
*
'OPTION' 'DIME' 3 'ELEM' CUB8 ;
* ANGLE in degrees
TH = 1.25 ;
MAI1 = MAIL 'TOURNER' (-0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAI2 = MAIL 'TOURNER' (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAIL2 = 'VOLU' MAI1 1 MAI2 ;
MODM2 = 'MODELISER' MAIL2 'EULER' ;
TABM2 = 'DOMA' MODM2 'VF' ;
'SI' GRAPH ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi' ;
'FINSI' ;
AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
NBN1 = 'NBNO' AA ;
'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
NBN2 = 'NBNO' AA ;
'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
XVOL = TABM . 'XXVOLUM' ;
XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
**** Test of XXSUR2D
* Last test to do
* After that, the support of centres is deplaced
*
'DEPLACER' 'TOUR' (TABM . 'CENTRE') (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
'ELIMINATION' (TABM2 . 'FACE') (DX '/' 10) (TABM . 'CENTRE') ;
aa = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'CENTRE') ;
ERRO = 'MAXIMUM' (aa '-' (TABM . 'XXSUR2D')) ;
'SI' (ERRO > 1.0D-8) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*****************************
**** QUA4 and TRI3 **********
*****************************
*
* Axi
*
'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' ;
*
P1 = 1.0 1.0 ;
P2 = 2.5 0.0 ;
P3 = 2.0 1.0 ;
P4 = 1.0 2.0 ;
*
DX = 0.1 ;
*
MAIL = 'SURFACE' ((P1 'DROIT' P2 'DINI' DX 'DFIN' DX)
'ET' (P2 'DROIT' P3 'DINI' DX 'DFIN' DX) 'ET'
(P3 'DROIT' P4 'DINI' DX 'DFIN' DX) 'ET'
(P4 'DROIT' P1 'DINI' DX 'DFIN' DX)) 'PLAN' ;
AA = MAIL 'ELEM' 'TYPE' ;
'SI' (('DIME' AA) 'NEG' 2) ;
'ERREUR' 21 ;
'FINSI' ;
*
MODM = 'MODELISER' MAIL 'EULER' ;
TABM = 'DOMA' MODM 'VF' ;
QMAIL = TABM . 'QUAF' ;
MOD2 = 'MODELISER' (TABM . 'MAILLAGE') 'THERMIQUE' ;
*
* FACE, FACEL and FACEP has the same order
*
NN = 'NBEL' (TABM . 'FACEL') ;
'REPETER' BL1 NN ;
AA = (TABM . 'FACEL') 'ELEM' &BL1 ;
BB = 'CHANGER' AA 'POI1' ;
PF1 = 'POIN' 2 BB ;
PF2 = 'POIN' 1 ((TABM . 'FACE') 'ELEM' &BL1) ;
AA = (TABM . 'FACEP') 'ELEM' &BL1 ;
BB = 'CHANGER' AA 'POI1' ;
PF3 = 'POIN' 3 BB ;
'SI' (PF1 'NEG' PF2) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'SI' (PF3 'NEG' PF2) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'FIN' BL1 ;
*
* SOMMET = 'CHANGER' (TABM . 'MAILLAGE') 'POI1' ;
*
SOMMET = 'CHANGER' (TABM . 'MAILLAGE') 'POI1' ;
AA = 'DIFF' SOMMET (TABM . 'SOMMET') ;
NN = 'NBEL' AA ;
'SI' (NN 'NEG' 0) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
**** Test of XXDIEMIN
*
AA = 'ELEM' (TABM . 'ELTFA') 'TYPE' ;
AAT = ((TABM . 'ELTFA') 'ELEM' ('EXTRAIRE' AA 1)) ;
'REPETER' BLNEL ('NBEL' AAT) ;
NEL = &BLNEL ;
AA = 'ELEM' AAT NEL ;
CC = 'POIN' NEL (TABM . 'CENTRE') ;
'SI' GRAPH ;
'TRACER' (AA 'ET' CC) 'TITR' 'Test on XXDIEMIN' ;
'FINSI' ;
AA = 'CHANGER' AA 'POI1' ;
XC = 'COORDONNEE' 1 CC ;
YC = 'COORDONNEE' 2 CC ;
USDIE = 0.0 ;
'REPETER' BL1 ('NBNO' AA) ;
PP = 'POIN' &BL1 AA ;
XP = 'COORDONNEE' 1 PP ;
YP = 'COORDONNEE' 2 PP ;
NORX = 'EXTRAIRE' (TABM . 'XXNORMAF') PP 'UX' ;
NORY = 'EXTRAIRE' (TABM . 'XXNORMAF') PP 'UY' ;
DIE = ((XP '-' XC) '*' NORX) '+' ((YP '-' YC) '*' NORY) ;
DIE = 'ABS' DIE ;
USDIE = 'MAXIMUM' ('PROG' USDIE (1. '/' DIE)) ;
'FIN' BL1 ;
DIEM = 2.0 '/' USDIE ;
ERRO = 'ABS' (DIEM '-' ('EXTRAIRE' (TABM . 'XXDIEMIN') CC 'SCAL')) ;
ERRO = ERRO '/' DIEM ;
*
'SI' (ERRO > 1.0D-6) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'FIN' BLNEL ;
*
'OPTION' 'DIME' 3 'ELEM' CUB8 ;
* ANGLE in degrees
TH = 1.25 ;
MAI1 = MAIL 'TOURNER' (-0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAI2 = MAIL 'TOURNER' (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
MAIL2 = 'VOLU' MAI1 1 MAI2 ;
MODM2 = 'MODELISER' MAIL2 'EULER' ;
TABM2 = 'DOMA' MODM2 'VF' ;
'SI' GRAPH ;
'TRACER' (0.0 0.0 1.0)
(MAIL2 'ET' MAIL 'ET' ((TABM . 'CENTRE') 'COUL' 'ROUG')
'ET' ((TABM2 . 'CENTRE') 'COUL' 'VERT'))
'TITR' '3D vs 2Daxi' ;
'FINSI' ;
* Center of gravity has the same positions
AA = (TABM . 'CENTRE') 'ET' (TABM2 . 'CENTRE') ;
NBN1 = 'NBNO' AA ;
'ELIMINATION' (TABM . 'CENTRE') (DX '/' 10) (TABM2 . 'CENTRE') ;
NBN2 = 'NBNO' AA ;
'SI' ((NBN1 '-' NBN2) 'NEG' ('NBNO' (TABM . 'CENTRE'))) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
XVOL = TABM . 'XXVOLUM' ;
XVOL2 = TABM2 . 'XXVOLUM' '/' ((TH '*' PI) '/' 180) ;
ERRO = 'MAXIMUM' ((XVOL '-' XVOL2) '/' XVOL) 'ABS' ;
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
* Test on XXSURFAC
*
'ELIMINATION' (TABM . 'FACE') (DX '/' 10.) (TABM2 . 'FACE') ;
AA = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'FACE') ;
AA = AA '/' ((TH '*' PI) '/' 180) ;
ERROS = 'MAXIMUM' ((AA '-' (TABM . 'XXSURFAC')) '/'
AA) 'ABS' ;
'SI' (ERROS > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
* Test on XXNORMAF and MATROT
*
AA = 'EXCO' (TABM . 'MATROT') ('MOTS' 'MX' 'MY') ('MOTS' 'UX' 'UY') ;
ERRO = 'MAXIMUM' (AA '-' (TABM . 'XXNORMAF')) 'ABS' ;
'SI' (ERRO > 1.0D-4) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
AA = 'PSCAL' (TABM . 'MATROT') (TABM . 'MATROT')
('MOTS' 'MX' 'MY') ('MOTS' 'RX' 'RY') ;
ERRO = 'MAXIMUM' AA 'ABS' ;
'SI' (ERRO > 1.0D-6) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
AA = 'PSCAL' (TABM . 'MATROT') (TABM . 'MATROT')
('MOTS' 'MX' 'MY') ('MOTS' 'MX' 'MY') ;
ERRO = 'MAXIMUM' (AA '-' 1.0) 'ABS' ;
'SI' (ERRO > 1.0D-6) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
AA = 'PSCAL' (TABM . 'MATROT') (TABM . 'MATROT')
('MOTS' 'RX' 'RY') ('MOTS' 'RX' 'RY') ;
ERRO = 'MAXIMUM' (AA '-' 1.0) 'ABS' ;
'SI' (ERRO > 1.0D-6) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
*
**** Test graphique
*
'SI' FAUX ;
DIM = 'VALEUR' 'DIME' ;
'OPTION' 'DIME' 2 ;
'REPETER' BL1 ('NBEL' TABM . 'FACEL') ;
AA = ((TABM . 'FACEL') 'ELEM' &BL1) 'COULEUR' 'ROUG' ;
BB = ((TABM . 'FACEP') 'ELEM' &BL1) 'COULEUR' 'VERT' ;
'TRACER' ((TABM . 'MAILLAGE') 'ET' AA) ;
'LISTE' AA ;
'TRACER' ((TABM . 'MAILLAGE') 'ET' BB) ;
'LISTE' BB ;
'FIN' BL1 ;
'OPTION' 'DIME' DIM ;
'FINSI' ;
*
**** Test of XXSUR2D
* Last test to do
* After that, the support of centres is deplaced
*
'DEPLACER' 'TOUR' (TABM . 'CENTRE') (0.5 * TH)
(0.0 0.0 0.0) (0.0 1.0 0.0) ;
'ELIMINATION' (TABM2 . 'FACE') (DX '/' 10) (TABM . 'CENTRE') ;
aa = 'REDU' (TABM2 . 'XXSURFAC') (TABM . 'CENTRE') ;
ERRO = 'MAXIMUM' (aa '-' (TABM . 'XXSUR2D')) ;
'SI' (ERRO > 1.0D-8) ;
'ERREUR' 'Probleme axi' ;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer