* fichier : indi.dgibi
************************************************************************
* Petit test de l'operateur INDI options 'ASPE' et 'SKEW' *
************************************************************************
** Options generales
itrac = FAUX ;
a = 1. ;
def = 0.01 ;
MESS '
---------------------------------------------------------------'
; MESS '| Dim. | Cas | ASPE | SKEW |'
; MESS '| | | Aspect ratio | Skewness |'
; MESS '
---------------------------------------------------------------'
;
**************************** Exemple en 2D *****************************
** Options generales
** Cas d'un triangle equilateral
p1 = 0. 0. ;
p2 = a 0. ;
p3 = (0.5 * a) (0.5 * a * (3. ** 0.5)) ;
s0
= MANU 'TRI3' p1 p2 p3
;q0
= INDI s0 'ASPE' 'SKEW'
;as0
= EXTR q0 'ASPE'
1 1 1 ;sk0
= EXTR q0 'SKEW'
1 1 1 ;MESS '|
2 | triangle equilat. | ' as0 ' |' sk0 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un triangle "needle"
q1
= INDI s1 'ASPE' 'SKEW'
;as1
= EXTR q1 'ASPE'
1 1 1 ;sk1
= EXTR q1 'SKEW'
1 1 1 ;MESS '|
2 | triangle needle |' as1 ' |' sk1 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un triangle "cap"
s2
= MANU 'TRI3' p1 p2
(0.5 def
) ;q2
= INDI s2 'ASPE' 'SKEW'
;as2
= EXTR q2 'ASPE'
1 1 1 ;sk2
= EXTR q2 'SKEW'
1 1 1 ;MESS '|
2 | triangle cap |' as2 ' |' sk2 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un triangle "sliver"
DEPL (s3
POIN 'PROC' p3
) '
PLUS'
((0.1 * a
/ def
) * (1.
0.
)) ; q3
= INDI s3 'ASPE' 'SKEW'
;as3
= EXTR q3 'ASPE'
1 1 1 ;sk3
= EXTR q3 'SKEW'
1 1 1 ;MESS '|
2 | triangle sliver |' as3 ' |' sk3 ' |'
; MESS '
---------------------------------------------------------------'
;
** Maillage d'une bielle
r1 = 1. ;
r2 = 0.6 ;
r3 = 0.2 ;
ep = 0.25 ;
c2
= LIGN (0.
0.
) ((r1
+ ep
) 0.
) 360. '
ROTA'
;p1
= c2
POIN 'PROC'
((r1
+ ep
) * ((COS 30.
) (SIN 30.
))) ;p2
= c2
POIN 'PROC'
((r1
+ ep
) * ((COS -30.
) (SIN -30.
))) ;c3
= LIGN (0.
0.
) ((-1.
* r2
) 0.
) 360. '
ROTA'
;c4
= LIGN (0.
0.
) ((-1.
* r2
- ep
) 0.
) 360. '
ROTA'
;p3
= c4
POIN 'PROC'
((r2
+ ep
) * ((COS -160.
) (SIN -160.
))) ;p4
= c4
POIN 'PROC'
((r2
+ ep
) * ((COS 160.
) (SIN 160.
))) ;l41 con1 c2
= l41
CONG r3 c2
;c2 con2 l23
= c2
CONG r3 l23
;l23 con3 c4
= l23
CONG r3 c4
;c4 con4 l41
= c4
CONG r3 l41
;cint = c1 ET c3 ;
cext
= INVE (con1
ET c2
ET con2
ET l23
ET con3
ET c4
ET con4
ET l41
) ;ar = cint ET cext ;
q
= INDI bielle 'ASPE' 'SKEW'
;* mini,maxi,moyenne
mo
= MODE bielle 'MECANIQUE'
;asmoy
= (INTG mo q 'ASPE'
) / air
;skmoy
= (INTG mo q 'SKEW'
) / air
;MESS '| | d''une bielle | | |'
; MESS '| | minimum |' asmin ' |' skmin ' |'
; MESS '| | moyenne |' asmoy ' |' skmoy ' |'
; MESS '| | maximum |' asmax ' |' skmax ' |'
; MESS '
---------------------------------------------------------------'
; * trace du champ
SI itrac ;
TRAC (EXCO q 'ASPE'
) mo '
TITR' 'Maillage d''une bielle
- Aspect Ratio'
(PROG 1. 'PAS'
0.05 2.
) ; TRAC (EXCO q 'SKEW'
) mo '
TITR' 'Maillage d''une bielle
- Skewness'
(PROG 0. 'PAS'
0.02 0.4) ; FINSI ;
* distributions
npas = 50 ;
las
= PROG asmin 'PAS'
((asmax
- asmin
) / npas
) asmax
;ddas
= HIST mo q las 'ASPE'
;SI itrac ;
DESS (ddas
ET evmoy
) '
TITR' 'Triangles
- Distribution de ASPE
- Moyenne en VERT'
; FINSI ;
lsk
= PROG 0. 'PAS'
(1.
/ npas
) 1.
;ddsk
= HIST mo q lsk 'SKEW'
;SI itrac ;
DESS (ddsk
ET evmoy
) '
TITR' 'Triangles
- Distribution de SKEW
- Moyenne en VERT'
; FINSI ;
* trace des "mauvais" elements
SI itrac ;
TRAC (ar
ET elas) '
TITR' 'Mauvais triangles
- Orange
= ASPE
> 2'
; TRAC (ar
ET elsk
) '
TITR' 'Mauvais triangles
- Rouge
= SKEW
> 0.4'
; FINSI ;
**************************** Exemple en 3D *****************************
** Options generales
** Cas de la bielle precedente (doit donner en 3D les memes resultats qu'en 2D)
q
= INDI bielle 'ASPE' 'SKEW'
;* mini,maxi,moyenne
mo
= MODE bielle 'MECANIQUE'
;asmoy
= (INTG mo q 'ASPE'
) / air
;skmoy
= (INTG mo q 'SKEW'
) / air
;MESS '| | d''une bielle | | |'
; MESS '| | minimum |' asmin ' |' skmin ' |'
; MESS '| | moyenne |' asmoy ' |' skmoy ' |'
; MESS '| | maximum |' asmax ' |' skmax ' |'
; MESS '
---------------------------------------------------------------'
; * trace du champ
SI itrac ;
TRAC (EXCO q 'ASPE'
) mo '
TITR' 'Maillage d''une bielle
- Aspect Ratio'
(PROG 1. 'PAS'
0.05 2.
) ; TRAC (EXCO q 'SKEW'
) mo '
TITR' 'Maillage d''une bielle
- Skewness'
(PROG 0. 'PAS'
0.02 0.4) ; * trace des "mauvais" elements
TRAC (ar
ET elas) '
TITR' 'Mauvais triangles
- Orange
= ASPE
> 2'
; TRAC (ar
ET elsk
) '
TITR' 'Mauvais triangles
- Rouge
= SKEW
> 0.4'
; FINSI ;
** Cas d'un tetraedre regulier
a = 1. ;
b = a / (2 * (2. ** 0.5)) ;
mb = -1. * b ;
p1 = b b b ;
p2 = b mb mb ;
p3 = mb b mb ;
p4 = mb mb b ;
v0
= MANU 'TET4' p1 p2 p3 p4
;q0
= INDI v0 'ASPE' 'SKEW'
;as0
= EXTR q0 'ASPE'
1 1 1 ;sk0
= EXTR q0 'SKEW'
1 1 1 ;MESS '|
3 | tetraedre regulier |' as0 ' |' sk0 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un tetraedre "needle"
v1
= v0
PLUS (0.
0.
0.
) ;q1
= INDI v1 'ASPE' 'SKEW'
;as1
= EXTR q1 'ASPE'
1 1 1 ;sk1
= EXTR q1 'SKEW'
1 1 1 ;MESS '|
3 | tetraedre needle |' as1 ' |' sk1 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un tetraedre "spindle"
v2
= v0
PLUS (0.
0.
0.
) ;DEPL ((v2
POIN 'PROC' p1
) ET (v2
POIN 'PROC' p4
)) '
PLUS'
(0.
0.
((0.5 * def
) - b
)) ; DEPL ((v2
POIN 'PROC' p2
) ET (v2
POIN 'PROC' p3
)) '
PLUS'
(0.
0.
(b
- (0.5 * def
))) ; q2
= INDI v2 'ASPE' 'SKEW'
;as2
= EXTR q2 'ASPE'
1 1 1 ;sk2
= EXTR q2 'SKEW'
1 1 1 ;MESS '|
3 | tetraedre spindle |' as2 ' |' sk2 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un tetraedre "wedge"
v3
= v0
PLUS (0.
0.
0.
) ;q3
= INDI v3 'ASPE' 'SKEW'
;as3
= EXTR q3 'ASPE'
1 1 1 ;sk3
= EXTR q3 'SKEW'
1 1 1 ;MESS '|
3 | tetraedre wedge |' as3 ' |' sk3 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un tetraedre "cap"
v4
= v0
PLUS (0.
0.
0.
) ;p14
= v4
POIN 'PROC' p1
;DEPL p14 '
PROJ' 'CONI'
(1.
1.
1.
) 'PLAN' p2 p3 p4
; q4
= INDI v4 'ASPE' 'SKEW'
;as4
= EXTR q4 'ASPE'
1 1 1 ;sk4
= EXTR q4 'SKEW'
1 1 1 ;MESS '|
3 | tetraedre cap |' as4 ' |' sk4 ' |'
; MESS '
---------------------------------------------------------------'
;
** Cas d'un tetraedre "sliver"
p1 = 0. 0. 0. ;
p2 = a 0. 0. ;
p3 = 0. a 0. ;
p4 = a a def ;
v5
= MANU 'TET4' p1 p2 p3 p4
;q5
= INDI v5 'ASPE' 'SKEW'
;as5
= EXTR q5 'ASPE'
1 1 1 ;sk5
= EXTR q5 'SKEW'
1 1 1 ;MESS '|
3 | tetraedre sliver |' as5 ' |' sk5 ' |'
; MESS '
---------------------------------------------------------------'
;
** Maillage 3D de la bielle
s1 = bielle ;
arb
= ar
PLUS (0.
0.
(2.
* ep
)) ;bielle
= VOLU (s1
ET s2
ET s3
) ;q
= INDI bielle 'ASPE' 'SKEW'
;* mini,maxi,moyenne
mo
= MODE bielle 'MECANIQUE'
;asmoy
= (INTG mo q 'ASPE'
) / vol
;skmoy
= (INTG mo q 'SKEW'
) / vol
;MESS '|
3 | maillage volumique | | |'
; MESS '| | d''une bielle | | |'
; MESS '| | minimum |' asmin ' |' skmin ' |'
; MESS '| | moyenne |' asmoy ' |' skmoy ' |'
; MESS '| | maximum |' asmax ' |' skmax ' |'
; MESS '
---------------------------------------------------------------'
; * trace du champ
SI itrac ;
TRAC (EXCO q 'ASPE'
) mo '
TITR' 'Maillage d''une bielle
- Aspect Ratio'
(PROG 1. 'PAS'
0.2 4.
) ; TRAC (EXCO q 'SKEW'
) mo '
TITR' 'Maillage d''une bielle
- Skewness'
(PROG 0. 'PAS'
0.04 0.8) ; FINSI ;
* distributions
npas = 50 ;
las
= PROG asmin 'PAS'
((asmax
- asmin
) / npas
) asmax
;ddas
= HIST mo q las 'ASPE'
;SI itrac ;
DESS (ddas
ET evmoy
) '
TITR' 'Tetraedres
- Distribution de ASPE
- Moyenne en VERT'
; FINSI ;
lsk
= PROG 0. 'PAS'
(1.
/ npas
) 1.
;ddsk
= HIST mo q lsk 'SKEW'
;SI itrac ;
DESS (ddsk
ET evmoy
) '
TITR' 'Tetraedres
- Distribution de SKEW
- Moyenne en VERT'
; FINSI ;
* trace des "mauvais" elements
SI itrac ;
TRAC (ar
ET elas) '
TITR' 'Mauvais tetraedres
- Orange
= ASPE
> 4'
; TRAC (ar
ET elsk
) '
TITR' 'Mauvais tetraedres
- Rouge
= SKEW
> 0.8'
; FINSI ;
FIN ;