************************************************************************
* NOM : partition.dgibi
* DESCRIPTION : Teste les options de partitionnement de maillage de
* l'operateur PART
************************************************************************
SMALL = 1.E-5 ;
* Affichages graphiques ?
GRAPH = FAUX ;
* PROCEDURE PERMETTANT DE VALIDER QU'UNE PARTITION A LE NOMBRE ATTENDU
* DE ZONES, OU QU'UN CONTOUR A LE NOMBRE ATTENDU D'ELEMENTS
DEBP VALIDER ENTI1*'ENTIER' ;
LOGI1
= (EGA (DIME TAB1
) ENTI1
) ; SINON ;
LOGI1
= (EGA (NBEL MAIL1
) ENTI1
) ; FINS ;
SI (NON LOGI1) ;
FINS ;
FINP ;
* +------------------------------------------------------------+
* | MAILLAGES SURFACIQUES TYPE "LIVRETS DE QUELQUES PAGES" ... |
* +------------------------------------------------------------+
NNN = 2 ;
A1
= (0.
0.
0.
) DROI NNN
(1.
0.
0.
) TRAN NNN
(0.
1.
0.
) ;
B1
= (1.
0.
0.
) DROI NNN
(1.
0.
1.
) TRAN NNN
(0.
1.
0.
) ;
C1
= A1
PLUS (1.
0.
0.
) ;
D1
= B1
TOUR (1.
0.
0.
) (1.
1.
0.
) 80.
;
F1
= CHAN 'QUAD'
(A1
TOUR (1.
0.
0.
) (1.
1.
0.
) -70.
) ;
G1
= CHAN 'QUAD'
(A1
TOUR (1.
0.
0.
) (1.
1.
0.
) -10.
) ;
ELIM (A1
ET B1
ET C1
ET D1
ET E1
ET F1
ET G1
) SMALL
;
MAIL11 = A1 ET B1 ET C1 ;
MAIL12 = A1 ET B1 ET C1 ET D1 ;
MAIL13 = A1 ET B1 ET C1 ET E1 ET F1 ET G1 ;
*******************************************************
* LES DEUX PARTITIONS CI-DESSOUS NE SONT PAS EQUIVALENTES !
TAB11_1
= PART 'NESC' 'SEPA' MAIL11 'ANGL'
30.
;TAB11_2
= PART 'NESC' 'SEPA' MAIL11 'MAIL'
(ARET MAIL11
30.
) ;
MESS 'PARTITION
11 POUR UN ANGLE DE
30 DEGRES"'
; SI GRAPH
; TRACPART TAB11_1 'NCLK'
; FINS ; MESS 'PARTITION
11 LE LONG DES ARETES
> 30 DEGRES'
; SI GRAPH
; TRACPART TAB11_2 'NCLK'
; FINS ;
VALIDER TAB11_1 2 ;
VALIDER TAB11_2 3 ;
* ON EN PROFITE POUR TESTER L'OPERATEUR CONTOUR
BORT11
= CONT MAIL11 'TOUT'
;
VALIDER BORI11 NNN ;
VALIDER BORE11 (9*NNN) ;
VALIDER BORT11 (10*NNN) ;
SI GRAPH ;
FINS ;
TAB11_3
= PART 'NESC' 'SEPA' MAIL11 'MAIL' BORI11
;TAB11_4
= PART 'NESC' 'SEPA' MAIL11 'MAIL' BORE11
;TAB11_5
= PART 'NESC' 'SEPA' MAIL11 'MAIL' BORT11
;
MESS 'PARTITION
11 LE LONG DU CONTOUR INTERIEUR'
; SI GRAPH
; TRACPART TAB11_3 'NCLK'
; FINS ; MESS 'PARTITION
11 LE LONG DU CONTOUR INTERIEUR'
; SI GRAPH
; TRACPART TAB11_4 'NCLK'
; FINS ; MESS 'PARTITION
11 LE LONG DU CONTOUR INTERIEUR'
; SI GRAPH
; TRACPART TAB11_5 'NCLK'
; FINS ;
VALIDER TAB11_3 3 ;
VALIDER TAB11_4 1 ;
VALIDER TAB11_5 3 ;
* ENCORE UNE AUTRE FACON D'OBTENIR LE MEME RESULTAT
TAB11_6
= PART 'NESC' 'SEPA' MAIL11 '
FACE'
;
MESS 'PARTITION
11 AVEC L OPTION "FACE"'
; SI GRAPH
; TRACPART TAB11_6 'NCLK'
; FINS ;
VALIDER TAB11_6 3 ;
*******************************************************
* EFFET DE LA VALEUR DE L'ANGLE SUR LE NOMBRE DE PARTITIONS
TAB12_1
= PART 'NESC' MAIL12 'SEPA' 'ANGL'
5.
;TAB12_2
= PART 'NESC' MAIL12 'SEPA' 'ANGL'
30.
;TAB12_3
= PART 'NESC' MAIL12 'SEPA' 'ANGL'
100.
;
MESS 'PARTITION
12 POUR UN ANGLE DE
5 DEGRES'
; SI GRAPH
; TRACPART TAB12_1 'NCLK'
; FINS ; MESS 'PARTITION
12 POUR UN ANGLE DE
30 DEGRES'
; SI GRAPH
; TRACPART TAB12_2 'NCLK'
; FINS ; MESS 'PARTITION
12 POUR UN ANGLE DE
100 DEGRES'
; SI GRAPH
; TRACPART TAB12_3 'NCLK'
; FINS ;
VALIDER TAB12_1 3 ;
VALIDER TAB12_2 2 ;
VALIDER TAB12_3 1 ;
*******************************************************
* PARTITION AVEC DES ELEMENTS D'ORDRE 1 ET 2 DANS LE MAILLAGE
* CE CONTOUR CONTIENT A LA FOIS DES SEG2 ET DES SEG3...
VALIDER BORI13 (2*NNN) ;
* ...ALORS QUE CES ARETES NE CONTIENNENT QUE DES SEG2 (BUG ?)
ARET13
= ARET MAIL13
3.
;
TAB13_1
= PART 'NESC' 'SEPA' MAIL13 'ANGL'
3.
;TAB13_2
= PART 'NESC' 'SEPA' MAIL13 'MAIL' ARET13
;TAB13_3
= PART 'NESC' 'SEPA' MAIL13 '
FACE'
;TAB13_4
= PART 'NESC' 'SEPA' MAIL13 'MAIL' BORI13
;
MESS 'PARTITION
13 POUR UN ANGLE DE
3 DEGRES'
; SI GRAPH
; TRACPART TAB13_1 'NCLK'
; FINS ; MESS 'PARTITION
13 LE LONG DES ARETES
> 3 DEGRES'
; SI GRAPH
; TRACPART TAB13_2 'NCLK'
; FINS ; MESS 'PARTITION
13 AVEC L OPTION "FACE"'
; SI GRAPH
; TRACPART TAB13_3 'NCLK'
; FINS ; MESS 'PARTITION
13 LE LONG DU CONTOUR INTERIEUR'
; SI GRAPH
; TRACPART TAB13_4 'NCLK'
; FINS ;
VALIDER TAB13_1 4 ;
VALIDER TAB13_2 4 ;
VALIDER TAB13_3 6 ;
VALIDER TAB13_4 6 ;
* +---------------------------------------+
* | MAILLAGE LINEIQUE TYPE "TALISMAN" ... |
* +---------------------------------------+
P0 = (0. 0. 0.) ;
P1 = (1. 0. 0.) ;
PTS2 = P0 ET P1 ;
PK = P1 ;
REPE K 11 ;
PK
= PK
TOUR P0
(0.
0.
1.
) 30.
; PTS2 = PTS2 ET PK ;
FIN K ;
* ON COMMENCE PAR CHERCHER LES JONCTIONS...
SI GRAPH
; TRAC (MAIL2
ET (COUL 'ROUG' JONC2
)) ; FINS ; VALIDER JONC2 13 ;
* ...PUIS ON TESTE QUELQUES PARTITIONS
TAB2_1
= PART 'NESC' 'SEPA' MAIL2 '
LIGN'
;TAB2_2
= PART 'NESC' 'SEPA' MAIL2 'MAIL' JONC2
;TAB2_3
= PART 'NESC' 'SEPA' MAIL2 'ANGL'
10.
;TAB2_4
= PART 'NESC' 'SEPA' MAIL2 'MAIL'
(ELEM PTS2
(LECT 1 8 10)) ;
MESS 'PARTITION
2 AVEC L OPTION "LIGN"'
; SI GRAPH
; TRACPART TAB2_1 'NCLK'
; FINS ; MESS 'PARTITION
2 SELON LES NOEUDS DE JONCTION'
; SI GRAPH
; TRACPART TAB2_2 'NCLK'
; FINS ; MESS 'PARTITION
2 POUR UN ANGLE DE
10 DEGRES'
; SI GRAPH
; TRACPART TAB2_3 'NCLK'
; FINS ; MESS 'PARTITION
2 SELON
2 NOEUDS'
; SI GRAPH
; TRACPART TAB2_4 'NCLK'
; FINS ;
VALIDER TAB2_1 24 ;
VALIDER TAB2_2 24 ;
VALIDER TAB2_3 18 ;
VALIDER TAB2_4 4 ;
* +--------------------+
* | MAILLAGE VOLUMIQUE |
* +--------------------+
SURF1
= (0.
0.
0.
) DROI 4 (1.
0.
0.
) TRAN 4 (0.
1.
0.
) ;VOLU1
= SURF1
VOLU '
TRAN'
4 (0.
0.
1.
) ;VOLU2
= VOLU1
PLUS (1.
0.
0.
) ;* VOLU2 = CHAN 'TET4' VOLU2 ;
VOLU3 = VOLU1 ET VOLU2 ;
COUP1
= SURF1
PLUS (0.
0.
0.25) ;COUP2
= SURF1
PLUS (1.
0.
0.75) ;* COUP2 = CHAN 'TRI3' COUP2 ;
COUP3
= (COTE 2 COUP1
) TRAN 2 (0.
0.
0.5) ;COUP4
= SURF1
PLUS (0.75 0.
0.75) ;COUP_A
= COUL 'ROUG'
(COUP1
ET COUP2
ET COUP3
) ;COUP_B
= COUL 'VERT'
(COUP1
ET COUP4
ET COUP3
) ;
ELIM (VOLU3
ET COUP_A
ET COUP_B
) SMALL
;
SI GRAPH ;
TRAC (VOLU3
ET COUP_A
) 'CACH' '
TITR' 'MAILLAGE SEPARATEUR COUP_A'
; TRAC (VOLU3
ET COUP_B
) 'CACH' '
TITR' 'MAILLAGE SEPARATEUR COUP_B'
; FINS ;
TAB3_2
= PART 'NESC' 'ARLE' VOLU3
5 ;TAB3_4
= PART 'NESC' 'SEPA' VOLU3 'MAIL' COUP_A
;TAB3_5
= PART 'NESC' 'SEPA' VOLU3 'MAIL' COUP_B
;
MESS 'PARTITION
3 AVEC L OPTION "OPTI"'
; SI GRAPH
; TRACPART TAB3_1 'NCLK'
; FINS ; MESS 'PARTITION
3 AVEC L OPTION "ARLE"'
; SI GRAPH
; TRACPART TAB3_2 'NCLK'
; FINS ; MESS 'PARTITION
3 AVEC L OPTION "CONN"'
; SI GRAPH
; TRACPART TAB3_3 'NCLK'
; FINS ; MESS 'PARTITION
3 AVEC L OPTION "SEPA" "MAIL" COUP_A'
; SI GRAPH
; TRACPART TAB3_4 'NCLK'
; FINS ; MESS 'PARTITION
3 AVEC L OPTION "SEPA" "MAIL" COUP_B'
; SI GRAPH
; TRACPART TAB3_5 'NCLK'
; FINS ;
VALIDER TAB3_1 8 ;
VALIDER TAB3_2 5 ;
VALIDER TAB3_3 1 ;
VALIDER TAB3_4 2 ;
VALIDER TAB3_5 1 ;
FIN ;