1 : C SHPOLY SOURCE CHAT 05/01/13 03:15:46 5004 2 : C SHAPE SOURCE BALD 96/02/07 21:19:39 2024 3 : SUBROUTINE SHPOLY(QSI,ETA,DZE,NUPT,MELE,SHP,IRET) 4 : C======================================================================= 5 : C 6 : C FONCTIONS DE FORME ET LEUR DERIVEES 7 : C 8 : C======================================================================= 9 : IMPLICIT INTEGER(I-N) 10 : IMPLICIT REAL*8(A-H,O-Z) 11 : C Include contenant quelques constantes dont XPI : 12 : -INC CCREEL 13 : DIMENSION SHP(6,*) 14 : C 15 : C DISTANCE DES POINTS A UN POLYGONE A N COTES 16 : C 17 : REAL*8 DIST(14) 18 : REAL*8 DDISDQ(14) 19 : REAL*8 DDISDE(14) 20 : REAL*8 NUMER(14) 21 : REAL*8 DNUMDQ(14) 22 : REAL*8 DNUMDE(14) 23 : INTEGER NBNO(111:122) 24 : C 25 : C NOMBRE DE NOEUDS EN FONCTION DU NUMERO D'ELEMENT 26 : C 27 : DATA NBNO/3,4,5,6,7,8,9,10,11,12,13,14/ 28 : C 29 : C======================================================================= 30 : C QSI ETA DZE COORDONNEES REDUITES DU POINT DE GAUSS 31 : C NUPT NUMERO DU POINT DE GAUSS 32 : C 33 : C SHP FONCTIONS DE FORME SHP(1,INO) FONCTIONS DE FORME DU ND INO 34 : C SHP(2,INO) DERIVEES PR RPPRT A QSI 35 : C SHP(3,INO) DERIVEES PR RPPRT A ETA 36 : C SHP(4,INO) DERIVEES PR RPPRT A DZE 37 : C SHP(5,INO) DERIVEES PR RPPRT A 4 38 : C COORDONNEES BARYCENTRIQUES 39 : C CAS DE DIMENSION 1 40 : C 2 OU 3 NOEUDS LIGNE 41 : C 2 NOEUDS POLYNOME DE HERMITE ET DERIVEES 42 : C CAS DE DIMENSION 2 43 : C 3 OU 6 NOEUDS TRIANGLE 44 : C 4 OU 8 NOEUDS QUADRILATERE 45 : C 9 NOEUDS QUADRILATERE 46 : C N NOEUDS POLYGONE A N COTES 47 : C CAS DE DIMENSION 3 FAIT DANS SHAPE3 ETIQUETTE 50 48 : C 4 OU 10 NOEUDS TETRAEDRE 49 : C 5 OU 13 NOEUDS PYRAMIDE 50 : C 6 OU 15 NOEUDS PRISME 51 : C 8 OU 20 NOEUDS CUBE 52 : C======================================================================= 53 : IRET=1 54 : C 55 : C FONCTIONS DE FORME BIDIMENSIONNELLES 56 : C 57 : C FONCTIONS DE POYGONE A N NOEUDS 58 : C 59 : N = NBNO(MELE) 60 : C 61 : C CALCUL DES DISTANCES ET DES DERIVEES DU POINT AUX COTES DU POLYGONE 62 : C 63 : COPISN = COS (XPI/N) 64 : C 65 : DO 1010, I = 1, N 66 : C 67 : ALPHA = 2*XPI*(I-1)/N 68 : COSIN = COS(ALPHA) 69 : SINUS = SIN(ALPHA) 70 : C 71 : DIST(I) = COPISN - QSI * COSIN - ETA * SINUS 72 : DDISDQ(I) = - COSIN 73 : DDISDE(I) = - SINUS 74 : C 75 : 1010 CONTINUE 76 : C 77 : C CALCUL DES NUMERATEURS ET DENOMINATEUR DES FRACTIONS RATIONNELLES ET DERIVEES 78 : C 79 : DENOM = 0.D0 80 : DDENDQ = 0.D0 81 : DDENDE = 0.D0 82 : C 83 : DO 1020 I = 1, N 84 : C 85 : NUMER(I) = 1.D0 86 : DNUMDQ(I) = 0.D0 87 : DNUMDE(I) = 0.D0 88 : C 89 : DO 1015 J = 1, N 90 : C 91 : IF ((J.NE.I).AND.(J.NE.I+1).AND.((I.NE.N).OR.(J.NE.1))) THEN 92 : C 93 : NUMER(I) = NUMER(I) * DIST(J) 94 : C 95 : C CALCUL DU PRODUIT DES DISTANCES POUR LA DERIVEE 96 : C 97 : PROD = 1.D0 98 : C 99 : DO 1013 K = 1, N 100 : C 101 : IF ((K.NE.I).AND.(K.NE.I+1).AND.((I.NE.N).OR.(K.NE.1 102 : $ )).AND.(K.NE.J)) THEN 103 : C 104 : PROD = PROD * DIST(K) 105 : C 106 : END IF 107 : C 108 : 1013 CONTINUE 109 : C 110 : DNUMDQ(I) = DNUMDQ(I) + PROD * DDISDQ(J) 111 : DNUMDE(I) = DNUMDE(I) + PROD * DDISDE(J) 112 : C 113 : END IF 114 : C 115 : 1015 CONTINUE 116 : C 117 : DENOM = DENOM+NUMER(I) 118 : DDENDQ = DDENDQ + DNUMDQ(I) 119 : DDENDE = DDENDE + DNUMDE(I) 120 : C 121 : 1020 CONTINUE 122 : C 123 : C CALCUL DES FONCTIONS DE FORME ET DE LEURS DERIVEES 124 : C 125 : DO 1030, I = 1, N 126 : C 127 : SHP(1,I) = NUMER(I)/DENOM 128 : SHP(2,I) = (DNUMDQ(I)*DENOM - NUMER(I)*DDENDQ)/(DENOM*DENOM) 129 : SHP(3,I) = (DNUMDE(I)*DENOM - NUMER(I)*DDENDE)/(DENOM*DENOM) 130 : C 131 : 1030 CONTINUE 132 : C 133 : END 134 : 135 : 136 : 137 : 138 : 139 : 140 : 141 : 142 : 143 :
© Cast3M 2003 - All rights reserved.
Disclaimer