Télécharger mrcshell.procedur

Retour à la liste

Numérotation des lignes :

  1. * MRCSHELL PROCEDUR BP208322 20/05/05 21:15:02 10601
  2. DEBPROC MRCSHELL TYP_CAL1*'MOT '
  3. TAB_IN*'TABLE' TOL_1*'FLOTTANT'
  4. L_ELE1/'LISTENTI';
  5. *
  6. * --------------------------------------------------------
  7. * Procedure MRCSHELL
  8. * Computation of security coef Lambda
  9. *
  10. * Develeppers:
  11. * Alberto FRAU
  12. * DEN/DANS/DM2S/SEMT/EMSI
  13. * Nicolas ILE
  14. * DEN/DANS/DM2S/SEMT/EMSI
  15. *
  16. * INPUT:
  17. * TYP_CAL1: Calculation option
  18. * 'RECTANGLE'
  19. * 'ELLIPSOIDE'
  20. * TAB_IN.'MAILLAGE': Maillage du voile [MAILLAGE]
  21. * TAB_IN.'EFFORT_SEISME': MCHAML de la matrice
  22. * representant l'enveloppe des
  23. * efforts sismiques (voir SISSIB)
  24. * TAB_IN.'EFFORT_STATIQUE': MCHAML des efforts statiques qui
  25. * agissent sur le voile
  26. * (issu EFFMARTI)
  27. * TAB_IN.'CARACTERISTIQUES_EXTERNE':MCHAML contenant les
  28. * caracteristiques de la couche
  29. * externe selon le modele de MARTI
  30. * (voir EFFMARTI):
  31. * 'RHO1' taux d'acier direction 1
  32. * 'RHO2' taux d'acier direction 2
  33. * 'ENRO' Enrobage
  34. * TAB_IN.'CARACTERISTIQUES_INTERNE':MCHAML contenant les
  35. * caracteristiques de la couche
  36. * interne selon le modele de MARTI
  37. * (voir EFFMARTI):
  38. * 'RHO1' taux d'acier direction 1
  39. * 'RHO2' taux d'acier direction 2
  40. * 'ENRO' Enrobage
  41. * TAB_IN.'CARACTERISTIQUES_CORE': MCHAML contenant les
  42. * caracteristiques et le coeficient
  43. * pour la couche intermediaire
  44. * selon le modele de MARTI
  45. * 'H' Epaisseur Totale
  46. * 'RHOT' taux d'acier transversale
  47. * 'COTH' Facteur de cisaillement
  48. * TAB_IN.'FC_BET': Resistance caracteristique beton
  49. * [FLOTTANT]
  50. * TAB_IN.'GAM_C': Coef gammac 1.5/1.2 EC2/EC8
  51. * [FLOTTANT]
  52. * TAB_IN.'ALP_C': Coef alpa 1.0 EC2
  53. * [FLOTTANT]
  54. * TAB_IN.'NU_C': Coef nu 0.6*(1-250/fck) EC2
  55. * [FLOTTANT]
  56. * TAB_IN.'FS_ACI': resistance caracteristique de l'acier
  57. * [FLOTTANT]
  58. * TAB_IN.'GAM_S': Coef gammas 1.15 EC2
  59. * [FLOTTANT]
  60. * TOL_1: Tollerance [FLOTTANT]
  61. * L_ELE1: Liste des elements sur lesquels on veut sortir les
  62. * graphiques des surfaces limites et des enveloppes
  63. * (sans ou avec covariance - RECTANGLE ou ELLISPOIDE)
  64. * pour les couches externes, interne et
  65. * intermediaire (pas necessaire) [LISTREEL]
  66. * OUTPUT:
  67. * TT2: Table Contenant:
  68. * .'CH_LAMBDA_E': MCHAML les valeurs des marges pour la couche
  69. * externe (composent LAME)
  70. * .'CH_LAMBDA_I': MCHAML des valeurs des marges pour la couche
  71. * interne (composent LAMI)
  72. * .'CH_LAMBDA_C': MCHAML des valeurs des marges pour la couche
  73. * intermediaire (composent LAMC)
  74. * .'CARTE_E': Maillage avec deux colorations pour indiquer les
  75. * element avec une marge superieure à 1 ou
  76. * inferieure (couche externe):
  77. * ROUGE elements -> Lambda < 1.0
  78. * VERT elements -> Lambda > 1.0
  79. * .'CARTE_I': Maillage avec deux colorations pour indiquer les
  80. * element avec une marge superieure à 1 ou
  81. * inferieure (couche interne):
  82. * ROUGE elements -> Lambda < 1.0
  83. * VERT elements -> Lambda > 1.0
  84. * .'CARTE_C': Maillage avec deux colorations pour indiquer les
  85. * element avec une marge superieure à 1 ou
  86. * inferieure (couche intermediaire):
  87. * ROUGE elements -> Lambda < 1.0
  88. * VERT elements -> Lambda > 1.0
  89. * .'GRAPHIQUES': Sous table pour les outils de graphique:
  90. * .I. Ieme element
  91. * .'LIMITE_E': Surface limite de la couche externe
  92. * [MAILLAGE]
  93. * .'LIMITE_E': Surface limite de la couche interne
  94. * [MAILLAGE]
  95. * .'LIMITE_C': Surface limite de la couche
  96. * intermediaire [MAILLAGE]
  97. * .'RECTANGLE_E': enveloppe couche externe sans prise
  98. * en compte des covariances
  99. * (methode RECTANGLE) [MAILLAGE]
  100. * .'RECTANGLE_I': enveloppe couche interne sans prise
  101. * en compte des covariances
  102. * (methode RECTANGLE) [MAILLAGE]
  103. * .'RECTANGLE_I': enveloppe couche intermediaire
  104. * sans prise en compte des covariances
  105. * (methode RECTANGLE) [MAILLAGE]
  106. * .'ELLIPSOIDE_E': enveloppe couche externe avec prise
  107. * en compte des covariances
  108. * (methode ELLIPSOIDE) [MAILLAGE]
  109. * .'ELLIPSOIDE_I': enveloppe couche interne avec prise
  110. * en compte des covariances
  111. * (methode ELLIPSOIDE) [MAILLAGE]
  112. * .'ELLIPSOIDE_I': enveloppe couche intermediaire
  113. * avec prise en compte des covariances
  114. * (methode ELLIPSOIDE) [MAILLAGE]
  115. * .'RECTANGLE_E_AUG': enveloppe couche externe sans prise
  116. * en compte des covariances amplifie par
  117. * la marge LAME
  118. * (methode RECTANGLE) [MAILLAGE]
  119. * .'RECTANGLE_I_AUG': enveloppe couche interne sans prise
  120. * en compte des covariances amplifie par
  121. * la marge LAMI
  122. * (methode RECTANGLE) [MAILLAGE]
  123. * .'RECTANGLE_C_AUG': enveloppe couche intermediaire sans prise
  124. * en compte des covariances amplifie par
  125. * la marge LAMC
  126. * (methode RECTANGLE) [MAILLAGE]
  127. * .'ELLIPSOIDE_E_AUG': enveloppe couche externe avec prise
  128. * en compte des covariances amplifie par
  129. * la marge LAME
  130. * (methode ELLIPSOIDE) [MAILLAGE]
  131. * .'ELLIPSOIDE_I_AUG': enveloppe couche interne avec prise
  132. * en compte des covariances amplifie par
  133. * la marge LAMI
  134. * (methode ELLIPSOIDE) [MAILLAGE]
  135. * .'ELLIPSOIDE_C_AUG': enveloppe couche intermediaire avec
  136. * prise en compte des covariances
  137. * amplifie par la marge LAMC
  138. * (methode ELLIPSOIDE) [MAILLAGE]
  139. *
  140. * --------------------------------------------------------
  141. *
  142. MAI_V = TAB_IN.'MAILLAGE';
  143. CH_SEI1 = TAB_IN.'EFFORT_SEISME';
  144. CH_STA1 = TAB_IN.'EFFORT_STATIQUE';
  145. CH_CARE = TAB_IN.'CARACTERISTIQUES_EXTERNE';
  146. CH_CARI = TAB_IN.'CARACTERISTIQUES_INTERNE';
  147. CH_CARC = TAB_IN.'CARACTERISTIQUES_CORE';
  148. *D_VOI1 = TAB_IN.'D';
  149. FCBET1 = TAB_IN.'FC_BET';
  150. GAMC = TAB_IN.'GAM_C';
  151. ALPC1 = TAB_IN.'ALP_C';
  152. NUC1 = TAB_IN.'NU_C';
  153. FSACI1 = TAB_IN.'FS_ACI';
  154. GAMS1 = TAB_IN.'GAM_S';
  155. *
  156. 'MESS' ;
  157. 'MESS' '**************************************************************';
  158. 'MESS' ' Calculs des coef de securite ';
  159. 'MESS' '**************************************************************';
  160. 'MESS';
  161. *
  162. * controle of input data
  163. 'SI' (NEG (TYP_CAL1) 'ELLIPSOIDE');
  164. 'SI' (NEG (TYP_CAL1) 'RECTANGLE');
  165. 'MESS' ' ERROR....Type de calcul erronee!!!';
  166. 'QUIT' LAM_RCM;
  167. 'FINSI';
  168. 'FINSI';
  169. 'SI' (('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 1) 'C11E') 'ET'
  170. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 2) 'C22E') 'ET'
  171. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 3) 'C33E') 'ET'
  172. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 4) 'C12E') 'ET'
  173. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 5) 'C13E') 'ET'
  174. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 6) 'C23E'));
  175. 'SINON';
  176. 'SI' (('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 7) 'C11I') 'ET'
  177. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 8) 'C22I') 'ET'
  178. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 9) 'C33I') 'ET'
  179. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 10) 'C12I') 'ET'
  180. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 11) 'C13I') 'ET'
  181. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 12) 'C23I'));
  182. 'SINON';
  183. 'SI' (('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 13) 'CV11') 'ET'
  184. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 14) 'CV22') 'ET'
  185. ('NEG' ('EXTR' ('EXTR' CH_SEI1 'COMP') 15) 'CV12'));
  186. 'MESS' ' ERROR....MCHAML seisme';
  187. 'MESS' ' composantes erronee!!!';
  188. 'QUIT' LAM_RCM;
  189. 'FINSI';
  190. 'FINSI';
  191. 'FINSI';
  192. 'SI' (('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 1) 'N11E') 'ET'
  193. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 2) 'N22E') 'ET'
  194. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 3) 'N12E') 'ET'
  195. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 4) 'N11I') 'ET'
  196. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 5) 'N22I') 'ET'
  197. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 6) 'N12I'));
  198. 'MESS' ' ERROR....MCHAML statique';
  199. 'MESS' ' composantes erronee!!!';
  200. 'FINSI';
  201. 'SI' (('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 1) 'N11E') 'ET'
  202. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 2) 'N22E') 'ET'
  203. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 3) 'N12E') 'ET'
  204. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 4) 'N11I') 'ET'
  205. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 5) 'N22I') 'ET'
  206. ('NEG' ('EXTR' ('EXTR' CH_STA1 'COMP') 6) 'N12I'));
  207. 'MESS' ' ERROR....MCHAML seisme';
  208. 'MESS' ' composantes erronee!!!';
  209. 'FINSI';
  210. 'SI' (('NEG' ('EXTR' ('EXTR' CH_CARE 'COMP') 1) 'RHO1') 'ET'
  211. ('NEG' ('EXTR' ('EXTR' CH_CARE 'COMP') 2) 'RHO2') 'ET'
  212. ('NEG' ('EXTR' ('EXTR' CH_CARE 'COMP') 3) 'ENRO'));
  213. 'MESS' ' ERROR....MCHAML caracteristiques couche externe';
  214. 'MESS' ' composantes erronee!!!';
  215. 'FINSI';
  216. 'SI' (('NEG' ('EXTR' ('EXTR' CH_CARI 'COMP') 1) 'RHO1') 'ET'
  217. ('NEG' ('EXTR' ('EXTR' CH_CARI 'COMP') 2) 'RHO2') 'ET'
  218. ('NEG' ('EXTR' ('EXTR' CH_CARI 'COMP') 3) 'ENRO'));
  219. 'MESS' ' ERROR....MCHAML caracteristiques couche interne';
  220. 'MESS' ' composantes erronee!!!';
  221. 'FINSI';
  222. *
  223. * creation of the table output
  224. TT2 = 'TABLE';
  225. *
  226. * creation of the MCHAML field for the output
  227. CH_LAME = 'VIDE' MCHAML;
  228. CH_LAMI = 'VIDE' MCHAML;
  229. CH_LAMC = 'VIDE' MCHAML;
  230. MAI_REE = 'VIDE' MAILLAGE;
  231. MAI_REI = 'VIDE' MAILLAGE;
  232. MAI_REC = 'VIDE' MAILLAGE;
  233. MODTOT = 'VIDE' MMODEL;
  234. *
  235. * number of element shear wall
  236. N_ELE1 = 'NBEL' MAI_V;
  237. *
  238. * Ellipsoide methode
  239. 'SI' ('EGA' TYP_CAL1 'ELLIPSOIDE');
  240. *------------------ Calcul par l'ellipsoide ---------------------------*
  241. 'MESS' ' ------------------------------------------------------------';
  242. 'MESS' ' Methode Ellipsoide';
  243. 'MESS' ' ------------------------------------------------------------';
  244. 'MESS';
  245. *
  246. * loop for the layer (external or intenal)
  247. I_IE1 = 1;
  248. 'REPE' IND_IE1 (3);
  249. *
  250. * I_IE1 = 1 External layer
  251. 'SI' (I_IE1 'EGA' 1);
  252. 'MESS';
  253. 'MESS' ' Membrane Exterieure';
  254. 'FINSI';
  255. *
  256. * I_IE1 = 2 Internal layer
  257. 'SI' (I_IE1 'EGA' 2);
  258. 'MESS';
  259. 'MESS' ' Membrane Interieure';
  260. 'FINSI';
  261. *
  262. 'SI' (I_IE1 'EGA' 3);
  263. 'MESS';
  264. 'MESS' ' Core';
  265. 'FINSI';
  266. *
  267. * loop for the element
  268. I_ELE1 = 1;
  269. 'REPE' IND_ELE1 (N_ELE1);
  270. * element I
  271. ELE_VOI1 = MAI_V ELEM I_ELE1;
  272. * extracting the forces and characteristics for the external layer
  273. 'SI' (I_IE1 'EGA' 1);
  274. RHOXS = 'EXTR' ('REDU' CH_CARE ELE_VOI1) 'RHO1' 1 1 1;
  275. RHOYS = 'EXTR' ('REDU' CH_CARE ELE_VOI1) 'RHO2' 1 1 1;
  276. ENR1 = 'EXTR' ('REDU' CH_CARE ELE_VOI1) 'ENRO' 1 1 1;
  277. *
  278. N11 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C11E' 1 1 1)**(0.5);
  279. N11N22 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C12E' 1 1 1);
  280. N11N12 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C13E' 1 1 1);
  281. N22 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C22E' 1 1 1)**(0.5);
  282. N22N12 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C23E' 1 1 1);
  283. N12 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C33E' 1 1 1)**(0.5);
  284. N110 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'N11E' 1 1 1);
  285. N220 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'N22E' 1 1 1);
  286. N120 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'N12E' 1 1 1);
  287. *
  288. * seismic stress
  289. N11 = ((N11)/((2.0)*(ENR1)));
  290. N22 = ((N22)/((2.0)*(ENR1)));
  291. N12 = ((N12)/((2.0)*(ENR1)));
  292. N11N22 = ((N11N22)/(((2.0)*(ENR1))**(2.0)));
  293. N11N12 = ((N11N12)/(((2.0)*(ENR1))**(2.0)));
  294. N22N12 = ((N22N12)/(((2.0)*(ENR1))**(2.0)));
  295. *
  296. * static stress
  297. N110 = ((N110)/((2.0)*(ENR1)));
  298. N220 = ((N220)/((2.0)*(ENR1)));
  299. N120 = ((N120)/((2.0)*(ENR1)));
  300. *
  301. 'FINSI';
  302. * extracting the force and characteristics for the internal layer
  303. 'SI' (I_IE1 'EGA' 2);
  304. RHOXS = 'EXTR' ('REDU' CH_CARI ELE_VOI1) 'RHO1' 1 1 1;
  305. RHOYS = 'EXTR' ('REDU' CH_CARI ELE_VOI1) 'RHO2' 1 1 1;
  306. ENR1 = 'EXTR' ('REDU' CH_CARI ELE_VOI1) 'ENRO' 1 1 1;
  307. *
  308. N11 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C11I' 1 1 1)**(0.5);
  309. N11N22 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C12I' 1 1 1);
  310. N11N12 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C13I' 1 1 1);
  311. N22 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C22I' 1 1 1)**(0.5);
  312. N22N12 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C23I' 1 1 1);
  313. N12 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'C33I' 1 1 1)**(0.5);
  314. N110 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'N11I' 1 1 1);
  315. N220 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'N22I' 1 1 1);
  316. N120 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'N12I' 1 1 1);
  317. *
  318. * seismic stress
  319. N11 = ((N11)/((2.0)*(ENR1)));
  320. N22 = ((N22)/((2.0)*(ENR1)));
  321. N12 = ((N12)/((2.0)*(ENR1)));
  322. N11N22 = ((N11N22)/(((2.0)*(ENR1))**(2.0)));
  323. N11N12 = ((N11N12)/(((2.0)*(ENR1))**(2.0)));
  324. N22N12 = ((N22N12)/(((2.0)*(ENR1))**(2.0)));
  325. *
  326. * static stress
  327. N110 = ((N110)/((2.0)*(ENR1)));
  328. N220 = ((N220)/((2.0)*(ENR1)));
  329. N120 = ((N120)/((2.0)*(ENR1)));
  330. *
  331. 'FINSI';
  332. *
  333. * extracting the force and characteristics for the internal layer
  334. 'SI' (I_IE1 'EGA' 3);
  335. RHOT = 'EXTR' ('REDU' CH_CARC ELE_VOI1) 'RHOT' 1 1 1;
  336. ENR1 = 'EXTR' ('REDU' CH_CARE ELE_VOI1) 'ENRO' 1 1 1;
  337. ENR2 = 'EXTR' ('REDU' CH_CARI ELE_VOI1) 'ENRO' 1 1 1;
  338. H_11 = 'EXTR' ('REDU' CH_CARC ELE_VOI1) 'H' 1 1 1;
  339. D_11 = H_11 - ((2.0)*(ENR1)) - ((2.0)*(ENR2));
  340. CO_TH1 = 'EXTR' ('REDU' CH_CARC ELE_VOI1) 'COTH' 1 1 1;
  341. *
  342. V1 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'CV11' 1 1 1)**(0.5);
  343. V1V2 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'CV12' 1 1 1);
  344. V2 = ('EXTR' ('REDU' CH_SEI1 ELE_VOI1) 'CV22' 1 1 1)**(0.5);
  345. *
  346. V10 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'V1T' 1 1 1);
  347. V20 = ('EXTR' ('REDU' CH_STA1 ELE_VOI1) 'V2T' 1 1 1);
  348. *
  349. * seismic stress
  350. T1 = ((V1)/((D_11)));
  351. T2 = ((V2)/((D_11)));
  352. T1T2 = ((V1V2)/(((D_11))**(2.0)));
  353. *
  354. * static stress
  355. T10 = ((V10)/((D_11)));
  356. T20 = ((V20)/((D_11)));
  357. *
  358. 'FINSI';
  359. *
  360. * Verification Core -----------------------------------------
  361. 'SI' (I_IE1 'EGA' 3);
  362. * --------------------------------------------------------------
  363. TTL1 = TABLE;
  364. TTL1.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  365. TTL1.'T1' = T10;
  366. TTL1.'T2' = T20;
  367. TTL1.'FCK' = FCBET1;
  368. TTL1.'FSK_T' = FSACI1;
  369. TTL1.'RHO_T' = RHOT;
  370. TTL1.'GAMMA_C' = GAMC;
  371. TTL1.'ALPA_C' = ALPC1;
  372. TTL1.'GAMMA_S' = GAMS1;
  373. TTL1.'NU_C' = NUC1;
  374. TTL1.'COT_THETA' = CO_TH1;
  375. T_ST1 = G_ULTI2D TTL1;
  376. *
  377. 'SI' (T_ST1 '&lt;EG' 0.0);
  378. LAM_FIN = 0.0;
  379. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  380. LAM_FIN '.....Sig0 externe';
  381. 'MESS' TIT1;
  382. MOD1 = 'MODE' ELE_VOI1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  383. MODTOT = MODTOT 'ET' MOD1;
  384. CH_LAMC = CH_LAMC 'ET' ('MANU' 'CHML' ELE_VOI1 'LAMC' LAM_FIN);
  385. MAI_REC = MAI_REC 'ET' (ELE_VOI1 'COUL' 'ROUG');
  386. OUBL LAM_FIN;
  387. 'SINON';
  388.  
  389. *
  390. * Start of the iteration
  391. P1 = 0. 0. 0.;
  392. P2 = 1. 0. 0.;
  393. P3 = 2. 0. 0.;
  394. *
  395. MAI1 = P1;
  396. * Matrix X
  397. MATX1 = VIDE 'RIGIDITE'/'RIGIDITE';
  398. MATX1 = MATX1 'ET' ('MANU' 'RIGIDITE' MAI1 (MOTS 'UX' 'UY')
  399. ('PROG' (T1*T1) T1T2
  400. T1T2 (T2*T2)));
  401. *
  402. * Static state stress
  403. EF_ST0 = 'MANU' 'CHPO' MAI1 2 'FX' T10 'FY' T20;
  404. EF_ST0 = 'CHAN' 'ATTRIBUT' EF_ST0 'NATURE' 'DISCRET';
  405. *
  406. * Initial Vecteur
  407. ALP_0 = 'MANU' 'CHPO' MAI1 2 'UX' 2.0 'UY' 2.0;
  408. XALP_0 = (MATX1*ALP_0)/(('XTMX' MATX1 ALP_0)**(0.5));
  409. XALP_0 = ('CHAN' ATTRIBUT XALP_0 NATURE DISCRET) + EF_ST0;
  410. SB0 = ('XTX' (XALP_0 - EF_ST0))**(0.5);
  411. RB0 = SB0;
  412. LAMB0 = RB0/SB0;
  413. *
  414. * incremental step
  415. H_VAL1 = (SB0)/(100000.0);
  416. H_VAL2 = (SB0)/(100000.0);
  417. *
  418. * direction used for the ellispoide methode
  419. TB_DIR = 'TABLE';
  420. TB_DIR. 1 = 'MANU' 'CHPO' MAI1 2 'UX' 1.0 'UY' 0.0 ;
  421. TB_DIR. 2 = 'MANU' 'CHPO' MAI1 2 'UX' 0.0 'UY' 1.0 ;
  422. TB_DIR. 3 = 'MANU' 'CHPO' MAI1 2 'UX' -1.0 'UY' 0.0 ;
  423. TB_DIR. 4 = 'MANU' 'CHPO' MAI1 2 'UX' 0.0 'UY' -1.0;
  424. *
  425. * loop for each direction
  426. I_K1 = 1;
  427. 'REPE' IND3 (4);
  428. *
  429. TAB_ITE = 'TABLE';
  430. TAB_ITE. 0 = 'TABLE';
  431. TAB_ITE. 0 . 'ALPA' = ALP_0;
  432. TAB_ITE. 0 . 'LAMBDA' = LAMB0;
  433. TAB_ITE. 0 . 'RB' = RB0;
  434. *
  435. ALP_K = (TB_DIR. I_K1);
  436. I_M1 = 1;
  437. * first loop in order to have n_elllips=n_limite
  438. 'REPE' IND2 (200);
  439. * sauving Lambda for j iteraction
  440. TAB_ITE. I_M1 = 'TABLE';
  441. TAB_ITE. I_M1 . 'ALPA' = ALP_K;
  442. * determination of the stress state for the chosen direction
  443. XALP_J = (MATX1*ALP_K)/(('XTMX' MATX1 ALP_K)**(0.5));
  444. XALP_J = ('CHAN' ATTRIBUT XALP_J NATURE DISCRET) + EF_ST0;
  445. * nomalisez vector of hte rayon of the ellipsoide for the
  446. * chosen direction
  447. SBJ = ('XTX' (XALP_J - EF_ST0))**(0.5);
  448. BJ = (XALP_J - EF_ST0)/(SBJ);
  449. * rayon of the ellipsoide for the chosen direction
  450. RBVAL1 = (TAB_ITE.(I_M1 - 1). 'RB');
  451. * second loop in order to have f=0
  452. I_I1 = 1;
  453. REPE IND1 (200);
  454. * strees state x0, x0+h, x0-h
  455. VV1 = (RBVAL1 + H_VAL1)*(BJ);
  456. VV2 = (RBVAL1 - H_VAL1)*(BJ);
  457. VV3 = (RBVAL1)*(BJ);
  458. VV1 = ('CHAN' 'ATTRIBUT' VV1 'NATURE' 'DISCRET') + EF_ST0;
  459. VV2 = ('CHAN' 'ATTRIBUT' VV2 'NATURE' 'DISCRET') + EF_ST0;
  460. VV3 = ('CHAN' 'ATTRIBUT' VV3 'NATURE' 'DISCRET') + EF_ST0;
  461. *
  462. T1V1 = 'EXTR' VV1 'FX' MAI1;
  463. T2V1 = 'EXTR' VV1 'FY' MAI1;
  464.  
  465. T1V2 = 'EXTR' VV2 'FX' MAI1;
  466. T2V2 = 'EXTR' VV2 'FY' MAI1;
  467.  
  468. T1V3 = 'EXTR' VV3 'FX' MAI1;
  469. T2V3 = 'EXTR' VV3 'FY' MAI1;
  470.  
  471. 'OUBL' VV1;
  472. 'OUBL' VV2;
  473. 'OUBL' VV3;
  474. * calculation of f and D terms
  475. TTL1 = TABLE;
  476. TTL1.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  477. TTL1.'T1' = T1V3;
  478. TTL1.'T2' = T2V3;
  479. TTL1.'FCK' = FCBET1;
  480. TTL1.'FSK_T' = FSACI1;
  481. TTL1.'RHO_T' = RHOT;
  482. TTL1.'GAMMA_C' = GAMC;
  483. TTL1.'ALPA_C' = ALPC1;
  484. TTL1.'GAMMA_S' = GAMS1;
  485. TTL1.'NU_C' = NUC1;
  486. TTL1.'COT_THETA' = CO_TH1;
  487. *
  488. TTL2 = TABLE;
  489. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  490. TTL2.'T1' = T1V1;
  491. TTL2.'T2' = T2V1;
  492. TTL2.'FCK' = FCBET1;
  493. TTL2.'FSK_T' = FSACI1;
  494. TTL2.'RHO_T' = RHOT;
  495. TTL2.'GAMMA_C' = GAMC;
  496. TTL2.'ALPA_C' = ALPC1;
  497. TTL2.'GAMMA_S' = GAMS1;
  498. TTL2.'NU_C' = NUC1;
  499. TTL2.'COT_THETA' = CO_TH1;
  500. *
  501. TTL3 = TABLE;
  502. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  503. TTL3.'T1' = T1V2;
  504. TTL3.'T2' = T2V2;
  505. TTL3.'FCK' = FCBET1;
  506. TTL3.'FSK_T' = FSACI1;
  507. TTL3.'RHO_T' = RHOT;
  508. TTL3.'GAMMA_C' = GAMC;
  509. TTL3.'ALPA_C' = ALPC1;
  510. TTL3.'GAMMA_S' = GAMS1;
  511. TTL3.'NU_C' = NUC1;
  512. TTL3.'COT_THETA' = CO_TH1;
  513. *
  514. F_VAL1 = G_ULTI2D TTL1;
  515. D_VAL1 = ((G_ULTI2D TTL2) -
  516. (G_ULTI2D TTL3))/((2.0)*(H_VAL1));
  517. * controle
  518. 'SI' (('ABS'(F_VAL1)) '<' TOL_1);
  519. * convergence!!!
  520. RBJ = RBVAL1;
  521. 'QUIT' IND1;
  522. 'SINON';
  523. 'SI' (I_I1 'EGA' 200);
  524. * end of loop, we take the last value!!!
  525. RBJ = RBVAL1;
  526. 'QUIT' IND1;
  527. 'FINSI';
  528. * Check beetwen 2 values of R (radius)!!!
  529. 'SI' (I_I1 > 2);
  530. 'SI' ((ABS((RBVAL1 - RBVAL2)/(RBVAL1))) < ((TOL_1)*(1.e-10)));
  531. RBJ = RBVAL1;
  532. 'QUIT' IND1;
  533. 'FINSI';
  534. 'FINSI';
  535. * case when D is equal to zero
  536. 'SI' (('ABS'(D_VAL1)) < 1.E-16);
  537. RBVAL2 = RBVAL1;
  538. RBVAL1 = ((1.1)*(RBVAL1));
  539. 'SINON';
  540. * otherwise
  541. RBVAL2 = RBVAL1;
  542. RBVAL1 = RBVAL1 - ((F_VAL1)/(D_VAL1));
  543. 'FINSI';
  544. 'FINSI';
  545. *
  546. I_I1 = I_I1 + 1;
  547. 'FIN' IND1;
  548. * computation of lambda
  549. LAMBJ = RBJ/SBJ;
  550. TAB_ITE. I_M1 . 'LAMBDA' = LAMBJ;
  551. TAB_ITE. I_M1 . 'RB' = RBJ;
  552. XCOUB1 = (((TAB_ITE. I_M1 .'LAMBDA')*(TAB_ITE. I_M1 .'LAMBDA'))*
  553. (MATX1));
  554. * amplified stress state using the lambda coef
  555. XALP_L = (XCOUB1*ALP_K)/(('XTMX' XCOUB1 ALP_K)**(0.5));
  556. XALP_L = ('CHAN' ATTRIBUT XALP_L NATURE DISCRET) + EF_ST0;
  557. * Dh*ex ; Dh*ey ; Dh*ez
  558. DE_HX = 'MANU' 'CHPO' MAI1 2 'FX' H_VAL2 'FY' 0.0 ;
  559. DE_HY = 'MANU' 'CHPO' MAI1 2 'FX' 0.0 'FY' H_VAL2 ;
  560. * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez
  561. VV_HXP = XALP_L + DE_HX;
  562. VV_HYP = XALP_L + DE_HY;
  563. * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez
  564. VV_HXN = XALP_L - DE_HX;
  565. VV_HYN = XALP_L - DE_HY;
  566. * x0*lam
  567. VV_0 = XALP_L;
  568. *
  569. VV_HXP1 = 'EXTR' VV_HXP 'FX' MAI1;
  570. VV_HXP2 = 'EXTR' VV_HXP 'FY' MAI1;
  571. VV_HYP1 = 'EXTR' VV_HYP 'FX' MAI1;
  572. VV_HYP2 = 'EXTR' VV_HYP 'FY' MAI1;
  573. *
  574. VV_HXN1 = 'EXTR' VV_HXN 'FX' MAI1;
  575. VV_HXN2 = 'EXTR' VV_HXN 'FY' MAI1;
  576. VV_HYN1 = 'EXTR' VV_HYN 'FX' MAI1;
  577. VV_HYN2 = 'EXTR' VV_HYN 'FY' MAI1;
  578. *
  579. VV_01 = 'EXTR' VV_HXP 'FX' MAI1;
  580. VV_02 = 'EXTR' VV_HXP 'FY' MAI1;
  581. *
  582. TTL2 = TABLE;
  583. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  584. TTL2.'T1' = VV_HXP1;
  585. TTL2.'T2' = VV_HXP2;
  586. TTL2.'FCK' = FCBET1;
  587. TTL2.'FSK_T' = FSACI1;
  588. TTL2.'RHO_T' = RHOT;
  589. TTL2.'GAMMA_C' = GAMC;
  590. TTL2.'ALPA_C' = ALPC1;
  591. TTL2.'GAMMA_S' = GAMS1;
  592. TTL2.'NU_C' = NUC1;
  593. TTL2.'COT_THETA' = CO_TH1;
  594. TTL3 = TABLE;
  595. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  596. TTL3.'T1' = VV_HXN1;
  597. TTL3.'T2' = VV_HXN2;
  598. TTL3.'FCK' = FCBET1;
  599. TTL3.'FSK_T' = FSACI1;
  600. TTL3.'RHO_T' = RHOT;
  601. TTL3.'GAMMA_C' = GAMC;
  602. TTL3.'ALPA_C' = ALPC1;
  603. TTL3.'GAMMA_S' = GAMS1;
  604. TTL3.'NU_C' = NUC1;
  605. TTL3.'COT_THETA' = CO_TH1;
  606. VAL_X1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  607. *
  608. TTL2 = TABLE;
  609. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  610. TTL2.'T1' = VV_HYP1;
  611. TTL2.'T2' = VV_HYP2;
  612. TTL2.'FCK' = FCBET1;
  613. TTL2.'FSK_T' = FSACI1;
  614. TTL2.'RHO_T' = RHOT;
  615. TTL2.'GAMMA_C' = GAMC;
  616. TTL2.'ALPA_C' = ALPC1;
  617. TTL2.'GAMMA_S' = GAMS1;
  618. TTL2.'NU_C' = NUC1;
  619. TTL2.'COT_THETA' = CO_TH1;
  620. TTL3 = TABLE;
  621. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_COR';
  622. TTL3.'T1' = VV_HYN1;
  623. TTL3.'T2' = VV_HYN2;
  624. TTL3.'FCK' = FCBET1;
  625. TTL3.'FSK_T' = FSACI1;
  626. TTL3.'RHO_T' = RHOT;
  627. TTL3.'GAMMA_C' = GAMC;
  628. TTL3.'ALPA_C' = ALPC1;
  629. TTL3.'GAMMA_S' = GAMS1;
  630. TTL3.'NU_C' = NUC1;
  631. TTL3.'COT_THETA' = CO_TH1;
  632. VAL_Y1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  633. *
  634. * costruction n_limit
  635. DELTG1 = 'MANU' 'CHPO' MAI1 'UX' ((-1.0)*(VAL_X1))
  636. 'UY' ((-1.0)*(VAL_Y1));
  637. *
  638. * variable for the convergence test
  639. ID1_CON = 0;
  640. * check on the n_limit
  641. 'SI' ((('XTX' DELTG1)**(0.5)) < 1.E-7);
  642. * if |n_limit|=0 rotate the chosen direction by 10 degrees
  643. MATR1 = 'VIDE' 'RIGIDITE'/'RIGIDITE';
  644. MATR1 = MATR1 'ET'
  645. ('MANU' 'RIGIDITE' MAI1 ('MOTS' 'UX' 'UY') 'QUEL'
  646. ('PROG' (COS(10.0)) ((-1.0)*(SIN(10.0)))
  647. (SIN(10.0)) (COS(10.0))
  648. 0.0 0.0 ));
  649. AAA1 = MATR1*ALP_K;
  650. DELTG1 = MANU CHPO MAI1 'UX' (EXTR AAA1 MAI1 'FX')
  651. 'UY' (EXTR AAA1 MAI1 'FY');
  652. 'FINSI';
  653. * convergence test
  654. VET_TEST = (TAB_ITE. I_M1 . 'ALPA')
  655. - (TAB_ITE. (I_M1 - 1) . 'ALPA');
  656. *
  657. 'SI' ((('XTX' VET_TEST)**(0.5)) '<' 0.001);
  658. * deduction of the final value of Lambda
  659. 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0);
  660. 'SI' ('NEG' ('TYPE' LAM_FIN) 'FLOTTANT');
  661. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  662. 'SINON';
  663. 'SI' (LAM_FIN '>' (TAB_ITE. I_M1 . 'LAMBDA'));
  664. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  665. 'FINSI';
  666. 'FINSI';
  667. 'FINSI';
  668. 'QUIT' IND2;
  669. 'SINON';
  670. 'SI' (I_M1 'EGA' 200);
  671. ID1_CON = 1;
  672. 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0);
  673. 'SI' ('NEG' ('TYPE' LAM_FIN) 'FLOTTANT');
  674. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  675. 'SINON';
  676. 'SI' (LAM_FIN '>' (TAB_ITE. I_M1 . 'LAMBDA'));
  677. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  678. 'FINSI';
  679. 'FINSI';
  680. 'FINSI';
  681. 'SINON';
  682. * otherwise update the n_limit
  683. ALP_K = DELTG1/((XTX DELTG1)**(0.5));
  684. 'FINSI';
  685. 'FINSI';
  686. I_M1 = I_M1 + 1;
  687. 'FIN' IND2;
  688. I_K1 = I_K1 + 1;
  689. 'FIN' IND3;
  690.  
  691. *
  692. * screen message
  693. 'SI' (ID1_CON 'EGA' 0);
  694. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  695. LAM_FIN;
  696. 'MESS' TIT1;
  697. 'FINSI';
  698. 'SI' (ID1_CON 'EGA' 1);
  699. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  700. LAM_FIN '.....Attention non convergence';
  701.  
  702. 'SI' ('EGA' ('TYPE' LL_ERRE1) 'LISTENTI');
  703. LL_ERRE1 = LL_ERRE1 ET ('LECT' I_ELE1);
  704. 'SINON';
  705. LL_ERRE1 = ('LECT' I_ELE1);
  706. 'FINSI';
  707. 'FINSI';
  708. *
  709. 'SI' (I_IE1 'EGA' 3);
  710. MOD1 = 'MODE' ELE_VOI1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  711. MODTOT = MODTOT 'ET' MOD1;
  712. CH_LAMC = CH_LAMC 'ET' ('MANU' 'CHML' ELE_VOI1 'LAMC' LAM_FIN);
  713. 'SI' (LAM_FIN '<' 1.0);
  714. MAI_REC = MAI_REC 'ET' (ELE_VOI1 'COUL' 'ROUG');
  715. 'SINON';
  716. MAI_REC = MAI_REC 'ET' (ELE_VOI1 'COUL' 'VERT');
  717. 'FINSI';
  718. 'FINSI';
  719. 'OUBL' LAM_FIN;
  720. 'OUBL' LAM_FIN2;
  721. 'FINSI';
  722. * Verification Externe et interne-------------------------------
  723. 'SINON';
  724. * --------------------------------------------------------------
  725. *
  726. * Test about the static state stress
  727. TTL1 = TABLE;
  728. TTL1.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  729. TTL1.'S11' = N110;
  730. TTL1.'S22' = N220;
  731. TTL1.'S12' = N120;
  732. TTL1.'FCK' = FCBET1;
  733. TTL1.'FSK_1' = FSACI1;
  734. TTL1.'FSK_2' = FSACI1;
  735. TTL1.'RHO_1' = RHOXS;
  736. TTL1.'RHO_2' = RHOYS;
  737. TTL1.'GAMMA_C' = GAMC;
  738. TTL1.'ALPA_C' = ALPC1;
  739. TTL1.'NU_C' = NUC1;
  740. TTL1.'GAMMA_S' = GAMS1;
  741. *
  742. T_ST1 = G_ULTI2D TTL1;
  743. 'SI' (T_ST1 '&lt;EG' 0.0);
  744. LAM_FIN = 0.0;
  745. TIT1 = 'CHAINE' ' Element ' I_IE1 ' Lambda='
  746. LAM_FIN '.....Sig0 externe';
  747. 'MESS' TIT1;
  748. *
  749. * results stored in the MCHAML field
  750. 'SI' (I_IE1 'EGA' 1);
  751. MOD1 = 'MODE' ELE_VOI1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  752. MODTOT = MODTOT 'ET' MOD1;
  753. * CH_LAME = CH_LAME 'ET' ('MANU' 'CHML' MOD1 'LAME' LAM_FIN);
  754. CH_LAME = CH_LAME 'ET' ('MANU' 'CHML' ELE_VOI1 'LAME' LAM_FIN);
  755. 'SI' (LAM_FIN '<' 1.0);
  756. MAI_REE = MAI_REE 'ET' (ELE_VOI1 'COUL' 'ROUG');
  757. 'SINON';
  758. MAI_REE = MAI_REE 'ET' (ELE_VOI1 'COUL' 'VERT');
  759. 'FINSI';
  760. 'FINSI';
  761. 'SI' (I_IE1 'EGA' 2);
  762. MOD1 = 'MODE' ELE_VOI1 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  763. MODTOT = MODTOT 'ET' MOD1;
  764. * CH_LAMI = CH_LAMI 'ET' ('MANU' 'CHML' MOD1 'LAMI' LAM_FIN);
  765. CH_LAMI = CH_LAMI 'ET' ('MANU' 'CHML' ELE_VOI1 'LAMI' LAM_FIN);
  766. 'SI' (LAM_FIN '<' 1.0);
  767. MAI_REI = MAI_REI 'ET' (ELE_VOI1 'COUL' 'ROUG');
  768. 'SINON';
  769. MAI_REI = MAI_REI 'ET' (ELE_VOI1 'COUL' 'VERT');
  770. 'FINSI';
  771. 'FINSI';
  772. *
  773. 'OUBL' LAM_FIN;
  774. *
  775. 'SINON';
  776. *
  777. * Start of the iteration
  778. P1 = 0. 0. 0.;
  779. P2 = 1. 0. 0.;
  780. P3 = 2. 0. 0.;
  781. *
  782. MAI1 = P1;
  783. * Matrix X
  784. MATX1 = VIDE 'RIGIDITE'/'RIGIDITE';
  785. MATX1 = MATX1 'ET' ('MANU' 'RIGIDITE' MAI1 (MOTS 'UX' 'UY' 'UZ')
  786. ('PROG' (N11*N11) N11N22 N11N12
  787. N11N22 (N22*N22) N22N12
  788. N11N12 N22N12 (N12*N12)));
  789. *
  790. * Static state stress
  791. EF_ST0 = 'MANU' 'CHPO' MAI1 3 'FX' N110 'FY' N220 'FZ' N120;
  792. EF_ST0 = 'CHAN' 'ATTRIBUT' EF_ST0 'NATURE' 'DISCRET';
  793. *
  794. * Initial Vecteur
  795. ALP_0 = 'MANU' 'CHPO' MAI1 3 'UX' 2.0 'UY' 2.0 'UZ' 2.0;
  796. XALP_0 = (MATX1*ALP_0)/(('XTMX' MATX1 ALP_0)**(0.5));
  797. XALP_0 = ('CHAN' ATTRIBUT XALP_0 NATURE DISCRET) + EF_ST0;
  798. SB0 = ('XTX' (XALP_0 - EF_ST0))**(0.5);
  799. RB0 = SB0;
  800. LAMB0 = RB0/SB0;
  801. *
  802. * incremental step
  803. H_VAL1 = (SB0)/(100000.0);
  804. H_VAL2 = (SB0)/(100000.0);
  805. *
  806. * direction used for the ellispoide methode
  807. TB_DIR = 'TABLE';
  808. TB_DIR. 1 = 'MANU' 'CHPO' MAI1 3 'UX' 1.0 'UY' 0.0 'UZ' 0.0;
  809. TB_DIR. 2 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' 1.0 'UZ' 0.0;
  810. TB_DIR. 3 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' 0.0 'UZ' 1.0;
  811. TB_DIR. 4 = 'MANU' 'CHPO' MAI1 3 'UX' -1.0 'UY' 0.0 'UZ' 0.0;
  812. TB_DIR. 5 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' -1.0 'UZ' 0.0;
  813. TB_DIR. 6 = 'MANU' 'CHPO' MAI1 3 'UX' 0.0 'UY' 0.0 'UZ' -1.0;
  814. *
  815. * loop for each direction
  816. I_K1 = 1;
  817. 'REPE' IND3 (6);
  818. *
  819. TAB_ITE = 'TABLE';
  820. TAB_ITE. 0 = 'TABLE';
  821. TAB_ITE. 0 . 'ALPA' = ALP_0;
  822. TAB_ITE. 0 . 'LAMBDA' = LAMB0;
  823. TAB_ITE. 0 . 'RB' = RB0;
  824. *
  825. ALP_K = (TB_DIR. I_K1);
  826. I_M1 = 1;
  827. * first loop in order to have n_elllips=n_limite
  828. 'REPE' IND2 (200);
  829. * sauving Lambda for j iteraction
  830. TAB_ITE. I_M1 = 'TABLE';
  831. TAB_ITE. I_M1 . 'ALPA' = ALP_K;
  832. * determination of the stress state for the chosen direction
  833. XALP_J = (MATX1*ALP_K)/(('XTMX' MATX1 ALP_K)**(0.5));
  834. XALP_J = ('CHAN' ATTRIBUT XALP_J NATURE DISCRET) + EF_ST0;
  835. * nomalisez vector of hte rayon of the ellipsoide for the
  836. * chosen direction
  837. SBJ = ('XTX' (XALP_J - EF_ST0))**(0.5);
  838. BJ = (XALP_J - EF_ST0)/(SBJ);
  839. * rayon of the ellipsoide for the chosen direction
  840. RBVAL1 = (TAB_ITE.(I_M1 - 1). 'RB');
  841. * second loop in order to have f=0
  842. I_I1 = 1;
  843. REPE IND1 (200);
  844. * strees state x0, x0+h, x0-h
  845. VV1 = (RBVAL1 + H_VAL1)*(BJ);
  846. VV2 = (RBVAL1 - H_VAL1)*(BJ);
  847. VV3 = (RBVAL1)*(BJ);
  848. VV1 = ('CHAN' 'ATTRIBUT' VV1 'NATURE' 'DISCRET') + EF_ST0;
  849. VV2 = ('CHAN' 'ATTRIBUT' VV2 'NATURE' 'DISCRET') + EF_ST0;
  850. VV3 = ('CHAN' 'ATTRIBUT' VV3 'NATURE' 'DISCRET') + EF_ST0;
  851. *
  852. N11V1 = 'EXTR' VV1 'FX' MAI1;
  853. N22V1 = 'EXTR' VV1 'FY' MAI1;
  854. N12V1 = 'EXTR' VV1 'FZ' MAI1;
  855. N11V2 = 'EXTR' VV2 'FX' MAI1;
  856. N22V2 = 'EXTR' VV2 'FY' MAI1;
  857. N12V2 = 'EXTR' VV2 'FZ' MAI1;
  858. N11V3 = 'EXTR' VV3 'FX' MAI1;
  859. N22V3 = 'EXTR' VV3 'FY' MAI1;
  860. N12V3 = 'EXTR' VV3 'FZ' MAI1;
  861. 'OUBL' VV1;
  862. 'OUBL' VV2;
  863. 'OUBL' VV3;
  864. * calculation of f and D terms
  865. TTL1 = TABLE;
  866. TTL1.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  867. TTL1.'S11' = N11V3;
  868. TTL1.'S22' = N22V3;
  869. TTL1.'S12' = N12V3;
  870. TTL1.'FCK' = FCBET1;
  871. TTL1.'FSK_1' = FSACI1;
  872. TTL1.'FSK_2' = FSACI1;
  873. TTL1.'RHO_1' = RHOXS;
  874. TTL1.'RHO_2' = RHOYS;
  875. TTL1.'GAMMA_C' = GAMC;
  876. TTL1.'ALPA_C' = ALPC1;
  877. TTL1.'NU_C' = NUC1;
  878. TTL1.'GAMMA_S' = GAMS1;
  879. *
  880. TTL2 = TABLE;
  881. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  882. TTL2.'S11' = N11V1;
  883. TTL2.'S22' = N22V1;
  884. TTL2.'S12' = N12V1;
  885. TTL2.'FCK' = FCBET1;
  886. TTL2.'FSK_1' = FSACI1;
  887. TTL2.'FSK_2' = FSACI1;
  888. TTL2.'RHO_1' = RHOXS;
  889. TTL2.'RHO_2' = RHOYS;
  890. TTL2.'GAMMA_C' = GAMC;
  891. TTL2.'ALPA_C' = ALPC1;
  892. TTL2.'NU_C' = NUC1;
  893. TTL2.'GAMMA_S' = GAMS1;
  894. *
  895. TTL3 = TABLE;
  896. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  897. TTL3.'S11' = N11V2;
  898. TTL3.'S22' = N22V2;
  899. TTL3.'S12' = N12V2;
  900. TTL3.'FCK' = FCBET1;
  901. TTL3.'FSK_1' = FSACI1;
  902. TTL3.'FSK_2' = FSACI1;
  903. TTL3.'RHO_1' = RHOXS;
  904. TTL3.'RHO_2' = RHOYS;
  905. TTL3.'GAMMA_C' = GAMC;
  906. TTL3.'ALPA_C' = ALPC1;
  907. TTL3.'NU_C' = NUC1;
  908. TTL3.'GAMMA_S' = GAMS1;
  909. *
  910. F_VAL1 = G_ULTI2D TTL1;
  911. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/
  912. ((2.0)*(H_VAL1));
  913. * controle
  914. 'SI' (('ABS'(F_VAL1)) '<' TOL_1);
  915. * convergence!!!
  916. RBJ = RBVAL1;
  917. 'QUIT' IND1;
  918. 'SINON';
  919. 'SI' (I_I1 'EGA' 200);
  920. * fin of loop, we take the last value!!!
  921. RBJ = RBVAL1;
  922. 'QUIT' IND1;
  923. 'FINSI';
  924. * Check beetwen 2 values of R (radius)!!!
  925. 'SI' (I_I1 > 2);
  926. 'SI' ((ABS((RBVAL1 - RBVAL2)/(RBVAL1))) < ((TOL_1)*(1.e-10)));
  927. RBJ = RBVAL1;
  928. 'QUIT' IND1;
  929. 'FINSI';
  930. 'FINSI';
  931. * Modification in case of the x0+h stress case is out of the
  932. * external boudary of the limit surface
  933. * [(-fc-rx*fs),(-fc-ry*fs)]x[(rx*fs),(ry*fs)]
  934. 'SI' (N11V3 > ((FSACI1*RHOXS)/(GAMS1)));
  935. RBVAL2 = RBVAL1;
  936. RBVAL1 = (((FSACI1*RHOXS)/(GAMS1)) -
  937. (EXTR EF_ST0 'FX' MAI1) -
  938. TOL_1)/
  939. (EXTR BJ 'FX' MAI1);
  940. 'SINON';
  941. 'SI' (N22V3 '>' ((FSACI1*RHOYS)/(GAMS1)));
  942. RBVAL2 = RBVAL1;
  943. RBVAL1 = (((FSACI1*RHOYS)/(GAMS1))
  944. - ('EXTR' EF_ST0 'FY' MAI1)
  945. - TOL_1)/
  946. ('EXTR' BJ 'FY' MAI1);
  947. 'SINON';
  948. 'SI' (N11V3 '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  949. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1)))));
  950. RBVAL2 = RBVAL1;
  951. RBVAL1 = ((((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  952. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1))))
  953. - ('EXTR' EF_ST0 'FX' MAI1)
  954. + TOL_1)/
  955. ('EXTR' BJ 'FX' MAI1);
  956. 'SINON';
  957. 'SI' (N22V3 < (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  958. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1)))));
  959. RBVAL2 = RBVAL1;
  960. RBVAL1 = ((((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  961. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1))))
  962. - ('EXTR' EF_ST0 'FY' MAI1)
  963. + TOL_1)/
  964. ('EXTR' BJ 'FY' MAI1);
  965. 'SINON';
  966. * case when D is equal to sero
  967. 'SI' (('ABS'(D_VAL1)) < 1.E-16);
  968. RBVAL2 = RBVAL1;
  969. RBVAL1 = ((1.1)*(RBVAL1));
  970. 'SINON';
  971. * otherwise
  972. RBVAL2 = RBVAL1;
  973. RBVAL1 = RBVAL1 - ((F_VAL1)/(D_VAL1));
  974. 'FINSI';
  975. 'FINSI';
  976. 'FINSI';
  977. 'FINSI';
  978. 'FINSI';
  979. 'FINSI';
  980. *
  981. I_I1 = I_I1 + 1;
  982. 'FIN' IND1;
  983. * computation of lambda
  984. LAMBJ = RBJ/SBJ;
  985. TAB_ITE. I_M1 . 'LAMBDA' = LAMBJ;
  986. TAB_ITE. I_M1 . 'RB' = RBJ;
  987. XCOUB1 = (((TAB_ITE. I_M1 .'LAMBDA')*(TAB_ITE. I_M1 .'LAMBDA'))*
  988. (MATX1));
  989. * amplified stress state using the lambda coef
  990. XALP_L = (XCOUB1*ALP_K)/(('XTMX' XCOUB1 ALP_K)**(0.5));
  991. XALP_L = ('CHAN' ATTRIBUT XALP_L NATURE DISCRET) + EF_ST0;
  992. * Dh*ex ; Dh*ey ; Dh*ez
  993. DE_HX = 'MANU' 'CHPO' MAI1 3 'FX' H_VAL2 'FY' 0.0 'FZ' 0.0;
  994. DE_HY = 'MANU' 'CHPO' MAI1 3 'FX' 0.0 'FY' H_VAL2 'FZ' 0.0;
  995. DE_HZ = 'MANU' 'CHPO' MAI1 3 'FX' 0.0 'FY' 0.0 'FZ' H_VAL2;
  996. * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez
  997. VV_HXP = XALP_L + DE_HX;
  998. VV_HYP = XALP_L + DE_HY;
  999. VV_HZP = XALP_L + DE_HZ;
  1000. * x0*lam + Dh*ex ; x0*lam + Dh*ey ; x0*lam + Dh*ez
  1001. VV_HXN = XALP_L - DE_HX;
  1002. VV_HYN = XALP_L - DE_HY;
  1003. VV_HZN = XALP_L - DE_HZ;
  1004. * x0*lam
  1005. VV_0 = XALP_L;
  1006. *
  1007. VV_HXP1 = 'EXTR' VV_HXP 'FX' MAI1;
  1008. VV_HXP2 = 'EXTR' VV_HXP 'FY' MAI1;
  1009. VV_HXP3 = 'EXTR' VV_HXP 'FZ' MAI1;
  1010. VV_HYP1 = 'EXTR' VV_HYP 'FX' MAI1;
  1011. VV_HYP2 = 'EXTR' VV_HYP 'FY' MAI1;
  1012. VV_HYP3 = 'EXTR' VV_HYP 'FZ' MAI1;
  1013. VV_HZP1 = 'EXTR' VV_HZP 'FX' MAI1;
  1014. VV_HZP2 = 'EXTR' VV_HZP 'FY' MAI1;
  1015. VV_HZP3 = 'EXTR' VV_HZP 'FZ' MAI1;
  1016. VV_HXN1 = 'EXTR' VV_HXN 'FX' MAI1;
  1017. VV_HXN2 = 'EXTR' VV_HXN 'FY' MAI1;
  1018. VV_HXN3 = 'EXTR' VV_HXN 'FZ' MAI1;
  1019. VV_HYN1 = 'EXTR' VV_HYN 'FX' MAI1;
  1020. VV_HYN2 = 'EXTR' VV_HYN 'FY' MAI1;
  1021. VV_HYN3 = 'EXTR' VV_HYN 'FZ' MAI1;
  1022. VV_HZN1 = 'EXTR' VV_HZN 'FX' MAI1;
  1023. VV_HZN2 = 'EXTR' VV_HZN 'FY' MAI1;
  1024. VV_HZN3 = 'EXTR' VV_HZN 'FZ' MAI1;
  1025. *
  1026. VV_01 = 'EXTR' VV_HXP 'FX' MAI1;
  1027. VV_02 = 'EXTR' VV_HXP 'FY' MAI1;
  1028. VV_03 = 'EXTR' VV_HXP 'FZ' MAI1;
  1029. * Calculation of n_limite if x0*lam + Dh*ex is out of the external
  1030. * boudary of limite surface
  1031. 'SI' (VV_HXP1 '>' ((FSACI1*RHOXS)/(GAMS1)));
  1032. *
  1033. TTL2 = TABLE;
  1034. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1035. TTL2.'S11' = VV_01;
  1036. TTL2.'S22' = VV_02;
  1037. TTL2.'S12' = VV_03;
  1038. TTL2.'FCK' = FCBET1;
  1039. TTL2.'FSK_1' = FSACI1;
  1040. TTL2.'FSK_2' = FSACI1;
  1041. TTL2.'RHO_1' = RHOXS;
  1042. TTL2.'RHO_2' = RHOYS;
  1043. TTL2.'GAMMA_C' = GAMC;
  1044. TTL2.'ALPA_C' = ALPC1;
  1045. TTL2.'NU_C' = NUC1;
  1046. TTL2.'GAMMA_S' = GAMS1;
  1047. TTL3 = TABLE;
  1048. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1049. TTL3.'S11' = VV_HXN1;
  1050. TTL3.'S22' = VV_HXN2;
  1051. TTL3.'S12' = VV_HXN3;
  1052. TTL3.'FCK' = FCBET1;
  1053. TTL3.'FSK_1' = FSACI1;
  1054. TTL3.'FSK_2' = FSACI1;
  1055. TTL3.'RHO_1' = RHOXS;
  1056. TTL3.'RHO_2' = RHOYS;
  1057. TTL3.'GAMMA_C' = GAMC;
  1058. TTL3.'ALPA_C' = ALPC1;
  1059. TTL3.'NU_C' = NUC1;
  1060. TTL3.'GAMMA_S' = GAMS1;
  1061. VAL_X1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL2));
  1062. *
  1063. TTL2 = TABLE;
  1064. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1065. TTL2.'S11' = VV_HYP1;
  1066. TTL2.'S22' = VV_HYP2;
  1067. TTL2.'S12' = VV_HYP3;
  1068. TTL2.'FCK' = FCBET1;
  1069. TTL2.'FSK_1' = FSACI1;
  1070. TTL2.'FSK_2' = FSACI1;
  1071. TTL2.'RHO_1' = RHOXS;
  1072. TTL2.'RHO_2' = RHOYS;
  1073. TTL2.'GAMMA_C' = GAMC;
  1074. TTL2.'ALPA_C' = ALPC1;
  1075. TTL2.'NU_C' = NUC1;
  1076. TTL2.'GAMMA_S' = GAMS1;
  1077. TTL3 = TABLE;
  1078. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1079. TTL3.'S11' = VV_HYN1;
  1080. TTL3.'S22' = VV_HYN2;
  1081. TTL3.'S12' = VV_HYN3;
  1082. TTL3.'FCK' = FCBET1;
  1083. TTL3.'FSK_1' = FSACI1;
  1084. TTL3.'FSK_2' = FSACI1;
  1085. TTL3.'RHO_1' = RHOXS;
  1086. TTL3.'RHO_2' = RHOYS;
  1087. TTL3.'GAMMA_C' = GAMC;
  1088. TTL3.'ALPA_C' = ALPC1;
  1089. TTL3.'NU_C' = NUC1;
  1090. TTL3.'GAMMA_S' = GAMS1;
  1091. VAL_Y1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  1092. *
  1093. TTL2 = TABLE;
  1094. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1095. TTL2.'S11' = VV_HZP1;
  1096. TTL2.'S22' = VV_HZP2;
  1097. TTL2.'S12' = VV_HZP3;
  1098. TTL2.'FCK' = FCBET1;
  1099. TTL2.'FSK_1' = FSACI1;
  1100. TTL2.'FSK_2' = FSACI1;
  1101. TTL2.'RHO_1' = RHOXS;
  1102. TTL2.'RHO_2' = RHOYS;
  1103. TTL2.'GAMMA_C' = GAMC;
  1104. TTL2.'ALPA_C' = ALPC1;
  1105. TTL2.'NU_C' = NUC1;
  1106. TTL2.'GAMMA_S' = GAMS1;
  1107. TTL3 = TABLE;
  1108. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1109. TTL3.'S11' = VV_HZN1;
  1110. TTL3.'S22' = VV_HZN2;
  1111. TTL3.'S12' = VV_HZN3;
  1112. TTL3.'FCK' = FCBET1;
  1113. TTL3.'FSK_1' = FSACI1;
  1114. TTL3.'FSK_2' = FSACI1;
  1115. TTL3.'RHO_1' = RHOXS;
  1116. TTL3.'RHO_2' = RHOYS;
  1117. TTL3.'GAMMA_C' = GAMC;
  1118. TTL3.'ALPA_C' = ALPC1;
  1119. TTL3.'NU_C' = NUC1;
  1120. TTL3.'GAMMA_S' = GAMS1;
  1121. VAL_Z1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  1122. 'SINON';
  1123. * Calculation of n_limit if x0*lam - Dh*ex is out of the external
  1124. * boudary of the limite surface
  1125. 'SI' (VV_HXN1 '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1126. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1)))));
  1127. *
  1128. TTL2 = TABLE;
  1129. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1130. TTL2.'S11' = VV_HXP1;
  1131. TTL2.'S22' = VV_HXP2;
  1132. TTL2.'S12' = VV_HXP3;
  1133. TTL2.'FCK' = FCBET1;
  1134. TTL2.'FSK_1' = FSACI1;
  1135. TTL2.'FSK_2' = FSACI1;
  1136. TTL2.'RHO_1' = RHOXS;
  1137. TTL2.'RHO_2' = RHOYS;
  1138. TTL2.'GAMMA_C' = GAMC;
  1139. TTL2.'ALPA_C' = ALPC1;
  1140. TTL2.'NU_C' = NUC1;
  1141. TTL2.'GAMMA_S' = GAMS1;
  1142. TTL3 = TABLE;
  1143. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1144. TTL3.'S11' = VV_01;
  1145. TTL3.'S22' = VV_02;
  1146. TTL3.'S12' = VV_03;
  1147. TTL3.'FCK' = FCBET1;
  1148. TTL3.'FSK_1' = FSACI1;
  1149. TTL3.'FSK_2' = FSACI1;
  1150. TTL3.'RHO_1' = RHOXS;
  1151. TTL3.'RHO_2' = RHOYS;
  1152. TTL3.'GAMMA_C' = GAMC;
  1153. TTL3.'ALPA_C' = ALPC1;
  1154. TTL3.'NU_C' = NUC1;
  1155. TTL3.'GAMMA_S' = GAMS1;
  1156. VAL_X1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL2));
  1157. *
  1158. TTL2 = TABLE;
  1159. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1160. TTL2.'S11' = VV_HYP1;
  1161. TTL2.'S22' = VV_HYP2;
  1162. TTL2.'S12' = VV_HYP3;
  1163. TTL2.'FCK' = FCBET1;
  1164. TTL2.'FSK_1' = FSACI1;
  1165. TTL2.'FSK_2' = FSACI1;
  1166. TTL2.'RHO_1' = RHOXS;
  1167. TTL2.'RHO_2' = RHOYS;
  1168. TTL2.'GAMMA_C' = GAMC;
  1169. TTL2.'ALPA_C' = ALPC1;
  1170. TTL2.'NU_C' = NUC1;
  1171. TTL2.'GAMMA_S' = GAMS1;
  1172. TTL3 = TABLE;
  1173. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1174. TTL3.'S11' = VV_HYN1;
  1175. TTL3.'S22' = VV_HYN2;
  1176. TTL3.'S12' = VV_HYN3;
  1177. TTL3.'FCK' = FCBET1;
  1178. TTL3.'FSK_1' = FSACI1;
  1179. TTL3.'FSK_2' = FSACI1;
  1180. TTL3.'RHO_1' = RHOXS;
  1181. TTL3.'RHO_2' = RHOYS;
  1182. TTL3.'GAMMA_C' = GAMC;
  1183. TTL3.'ALPA_C' = ALPC1;
  1184. TTL3.'NU_C' = NUC1;
  1185. TTL3.'GAMMA_S' = GAMS1;
  1186. VAL_Y1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  1187. *
  1188. TTL2 = TABLE;
  1189. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1190. TTL2.'S11' = VV_HZP1;
  1191. TTL2.'S22' = VV_HZP2;
  1192. TTL2.'S12' = VV_HZP3;
  1193. TTL2.'FCK' = FCBET1;
  1194. TTL2.'FSK_1' = FSACI1;
  1195. TTL2.'FSK_2' = FSACI1;
  1196. TTL2.'RHO_1' = RHOXS;
  1197. TTL2.'RHO_2' = RHOYS;
  1198. TTL2.'GAMMA_C' = GAMC;
  1199. TTL2.'ALPA_C' = ALPC1;
  1200. TTL2.'NU_C' = NUC1;
  1201. TTL2.'GAMMA_S' = GAMS1;
  1202. TTL3 = TABLE;
  1203. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1204. TTL3.'S11' = VV_HZN1;
  1205. TTL3.'S22' = VV_HZN2;
  1206. TTL3.'S12' = VV_HZN3;
  1207. TTL3.'FCK' = FCBET1;
  1208. TTL3.'FSK_1' = FSACI1;
  1209. TTL3.'FSK_2' = FSACI1;
  1210. TTL3.'RHO_1' = RHOXS;
  1211. TTL3.'RHO_2' = RHOYS;
  1212. TTL3.'GAMMA_C' = GAMC;
  1213. TTL3.'ALPA_C' = ALPC1;
  1214. TTL3.'NU_C' = NUC1;
  1215. TTL3.'GAMMA_S' = GAMS1;
  1216. VAL_Z1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  1217. 'SINON';
  1218. * Calculation of n_limit if x0*lam + Dh*ey is out of the external
  1219. * boudary of the limite surface
  1220. 'SI' (VV_HYP1 '>' ((FSACI1*RHOYS)/(GAMS1)));
  1221. *
  1222. TTL2 = TABLE;
  1223. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1224. TTL2.'S11' = VV_HXP1;
  1225. TTL2.'S22' = VV_HXP2;
  1226. TTL2.'S12' = VV_HXP3;
  1227. TTL2.'FCK' = FCBET1;
  1228. TTL2.'FSK_1' = FSACI1;
  1229. TTL2.'FSK_2' = FSACI1;
  1230. TTL2.'RHO_1' = RHOXS;
  1231. TTL2.'RHO_2' = RHOYS;
  1232. TTL2.'GAMMA_C' = GAMC;
  1233. TTL2.'ALPA_C' = ALPC1;
  1234. TTL2.'NU_C' = NUC1;
  1235. TTL2.'GAMMA_S' = GAMS1;
  1236. TTL3 = TABLE;
  1237. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1238. TTL3.'S11' = VV_HXN1;
  1239. TTL3.'S22' = VV_HXN2;
  1240. TTL3.'S12' = VV_HXN3;
  1241. TTL3.'FCK' = FCBET1;
  1242. TTL3.'FSK_1' = FSACI1;
  1243. TTL3.'FSK_2' = FSACI1;
  1244. TTL3.'RHO_1' = RHOXS;
  1245. TTL3.'RHO_2' = RHOYS;
  1246. TTL3.'GAMMA_C' = GAMC;
  1247. TTL3.'ALPA_C' = ALPC1;
  1248. TTL3.'NU_C' = NUC1;
  1249. TTL3.'GAMMA_S' = GAMS1;
  1250. VAL_X1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  1251. *
  1252. TTL2 = TABLE;
  1253. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1254. TTL2.'S11' = VV_01;
  1255. TTL2.'S22' = VV_02;
  1256. TTL2.'S12' = VV_03;
  1257. TTL2.'FCK' = FCBET1;
  1258. TTL2.'FSK_1' = FSACI1;
  1259. TTL2.'FSK_2' = FSACI1;
  1260. TTL2.'RHO_1' = RHOXS;
  1261. TTL2.'RHO_2' = RHOYS;
  1262. TTL2.'GAMMA_C' = GAMC;
  1263. TTL2.'ALPA_C' = ALPC1;
  1264. TTL2.'NU_C' = NUC1;
  1265. TTL2.'GAMMA_S' = GAMS1;
  1266. TTL3 = TABLE;
  1267. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1268. TTL3.'S11' = VV_HYN1;
  1269. TTL3.'S22' = VV_HYN2;
  1270. TTL3.'S12' = VV_HYN3;
  1271. TTL3.'FCK' = FCBET1;
  1272. TTL3.'FSK_1' = FSACI1;
  1273. TTL3.'FSK_2' = FSACI1;
  1274. TTL3.'RHO_1' = RHOXS;
  1275. TTL3.'RHO_2' = RHOYS;
  1276. TTL3.'GAMMA_C' = GAMC;
  1277. TTL3.'ALPA_C' = ALPC1;
  1278. TTL3.'NU_C' = NUC1;
  1279. TTL3.'GAMMA_S' = GAMS1;
  1280. VAL_Y1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL2));
  1281. *
  1282. TTL2 = TABLE;
  1283. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1284. TTL2.'S11' = VV_HZP1;
  1285. TTL2.'S22' = VV_HZP2;
  1286. TTL2.'S12' = VV_HZP3;
  1287. TTL2.'FCK' = FCBET1;
  1288. TTL2.'FSK_1' = FSACI1;
  1289. TTL2.'FSK_2' = FSACI1;
  1290. TTL2.'RHO_1' = RHOXS;
  1291. TTL2.'RHO_2' = RHOYS;
  1292. TTL2.'GAMMA_C' = GAMC;
  1293. TTL2.'ALPA_C' = ALPC1;
  1294. TTL2.'NU_C' = NUC1;
  1295. TTL2.'GAMMA_S' = GAMS1;
  1296. TTL3 = TABLE;
  1297. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1298. TTL3.'S11' = VV_HZN1;
  1299. TTL3.'S22' = VV_HZN2;
  1300. TTL3.'S12' = VV_HZN3;
  1301. TTL3.'FCK' = FCBET1;
  1302. TTL3.'FSK_1' = FSACI1;
  1303. TTL3.'FSK_2' = FSACI1;
  1304. TTL3.'RHO_1' = RHOXS;
  1305. TTL3.'RHO_2' = RHOYS;
  1306. TTL3.'GAMMA_C' = GAMC;
  1307. TTL3.'ALPA_C' = ALPC1;
  1308. TTL3.'NU_C' = NUC1;
  1309. TTL3.'GAMMA_S' = GAMS1;
  1310. VAL_Z1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL2));
  1311. 'SINON';
  1312. * Calculation of n_limit if x0*lam + Dh*ey is out of the external
  1313. * boudary of the limite surface
  1314. 'SI' (VV_HYN1 '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1315. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1)))));
  1316. *
  1317. TTL2 = TABLE;
  1318. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1319. TTL2.'S11' = VV_HXP1;
  1320. TTL2.'S22' = VV_HXP2;
  1321. TTL2.'S12' = VV_HXP3;
  1322. TTL2.'FCK' = FCBET1;
  1323. TTL2.'FSK_1' = FSACI1;
  1324. TTL2.'FSK_2' = FSACI1;
  1325. TTL2.'RHO_1' = RHOXS;
  1326. TTL2.'RHO_2' = RHOYS;
  1327. TTL2.'GAMMA_C' = GAMC;
  1328. TTL2.'ALPA_C' = ALPC1;
  1329. TTL2.'NU_C' = NUC1;
  1330. TTL2.'GAMMA_S' = GAMS1;
  1331. TTL3 = TABLE;
  1332. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1333. TTL3.'S11' = VV_HXN1;
  1334. TTL3.'S22' = VV_HXN2;
  1335. TTL3.'S12' = VV_HXN3;
  1336. TTL3.'FCK' = FCBET1;
  1337. TTL3.'FSK_1' = FSACI1;
  1338. TTL3.'FSK_2' = FSACI1;
  1339. TTL3.'RHO_1' = RHOXS;
  1340. TTL3.'RHO_2' = RHOYS;
  1341. TTL3.'GAMMA_C' = GAMC;
  1342. TTL3.'ALPA_C' = ALPC1;
  1343. TTL3.'NU_C' = NUC1;
  1344. TTL3.'GAMMA_S' = GAMS1;
  1345. VAL_X1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/
  1346. ((2.0)*(H_VAL2));
  1347. *
  1348. TTL2 = TABLE;
  1349. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1350. TTL2.'S11' = VV_HYP1;
  1351. TTL2.'S22' = VV_HYP2;
  1352. TTL2.'S12' = VV_HYP3;
  1353. TTL2.'FCK' = FCBET1;
  1354. TTL2.'FSK_1' = FSACI1;
  1355. TTL2.'FSK_2' = FSACI1;
  1356. TTL2.'RHO_1' = RHOXS;
  1357. TTL2.'RHO_2' = RHOYS;
  1358. TTL2.'GAMMA_C' = GAMC;
  1359. TTL2.'ALPA_C' = ALPC1;
  1360. TTL2.'NU_C' = NUC1;
  1361. TTL2.'GAMMA_S' = GAMS1;
  1362. TTL3 = TABLE;
  1363. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1364. TTL3.'S11' = VV_01;
  1365. TTL3.'S22' = VV_02;
  1366. TTL3.'S12' = VV_03;
  1367. TTL3.'FCK' = FCBET1;
  1368. TTL3.'FSK_1' = FSACI1;
  1369. TTL3.'FSK_2' = FSACI1;
  1370. TTL3.'RHO_1' = RHOXS;
  1371. TTL3.'RHO_2' = RHOYS;
  1372. TTL3.'GAMMA_C' = GAMC;
  1373. TTL3.'ALPA_C' = ALPC1;
  1374. TTL3.'NU_C' = NUC1;
  1375. TTL3.'GAMMA_S' = GAMS1;
  1376. VAL_Y1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/
  1377. ((1.0)*(H_VAL2));
  1378. *
  1379. TTL2 = TABLE;
  1380. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1381. TTL2.'S11' = VV_HZP1;
  1382. TTL2.'S22' = VV_HZP2;
  1383. TTL2.'S12' = VV_HZP3;
  1384. TTL2.'FCK' = FCBET1;
  1385. TTL2.'FSK_1' = FSACI1;
  1386. TTL2.'FSK_2' = FSACI1;
  1387. TTL2.'RHO_1' = RHOXS;
  1388. TTL2.'RHO_2' = RHOYS;
  1389. TTL2.'GAMMA_C' = GAMC;
  1390. TTL2.'ALPA_C' = ALPC1;
  1391. TTL2.'NU_C' = NUC1;
  1392. TTL2.'GAMMA_S' = GAMS1;
  1393. TTL3 = TABLE;
  1394. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1395. TTL3.'S11' = VV_HZN1;
  1396. TTL3.'S22' = VV_HZN2;
  1397. TTL3.'S12' = VV_HZN3;
  1398. TTL3.'FCK' = FCBET1;
  1399. TTL3.'FSK_1' = FSACI1;
  1400. TTL3.'FSK_2' = FSACI1;
  1401. TTL3.'RHO_1' = RHOXS;
  1402. TTL3.'RHO_2' = RHOYS;
  1403. TTL3.'GAMMA_C' = GAMC;
  1404. TTL3.'ALPA_C' = ALPC1;
  1405. TTL3.'NU_C' = NUC1;
  1406. TTL3.'GAMMA_S' = GAMS1;
  1407. VAL_Z1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/
  1408. ((2.0)*(H_VAL2));
  1409. 'SINON';
  1410. * Ordinary method
  1411. TTL2 = TABLE;
  1412. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1413. TTL2.'S11' = VV_HXP1;
  1414. TTL2.'S22' = VV_HXP2;
  1415. TTL2.'S12' = VV_HXP3;
  1416. TTL2.'FCK' = FCBET1;
  1417. TTL2.'FSK_1' = FSACI1;
  1418. TTL2.'FSK_2' = FSACI1;
  1419. TTL2.'RHO_1' = RHOXS;
  1420. TTL2.'RHO_2' = RHOYS;
  1421. TTL2.'GAMMA_C' = GAMC;
  1422. TTL2.'ALPA_C' = ALPC1;
  1423. TTL2.'NU_C' = NUC1;
  1424. TTL2.'GAMMA_S' = GAMS1;
  1425. TTL3 = TABLE;
  1426. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1427. TTL3.'S11' = VV_HXN1;
  1428. TTL3.'S22' = VV_HXN2;
  1429. TTL3.'S12' = VV_HXN3;
  1430. TTL3.'FCK' = FCBET1;
  1431. TTL3.'FSK_1' = FSACI1;
  1432. TTL3.'FSK_2' = FSACI1;
  1433. TTL3.'RHO_1' = RHOXS;
  1434. TTL3.'RHO_2' = RHOYS;
  1435. TTL3.'GAMMA_C' = GAMC;
  1436. TTL3.'ALPA_C' = ALPC1;
  1437. TTL3.'NU_C' = NUC1;
  1438. TTL3.'GAMMA_S' = GAMS1;
  1439. VAL_X1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/
  1440. ((2.0)*(H_VAL2));
  1441. *
  1442. TTL2 = TABLE;
  1443. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1444. TTL2.'S11' = VV_HYP1;
  1445. TTL2.'S22' = VV_HYP2;
  1446. TTL2.'S12' = VV_HYP3;
  1447. TTL2.'FCK' = FCBET1;
  1448. TTL2.'FSK_1' = FSACI1;
  1449. TTL2.'FSK_2' = FSACI1;
  1450. TTL2.'RHO_1' = RHOXS;
  1451. TTL2.'RHO_2' = RHOYS;
  1452. TTL2.'GAMMA_C' = GAMC;
  1453. TTL2.'ALPA_C' = ALPC1;
  1454. TTL2.'NU_C' = NUC1;
  1455. TTL2.'GAMMA_S' = GAMS1;
  1456. TTL3 = TABLE;
  1457. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1458. TTL3.'S11' = VV_HYN1;
  1459. TTL3.'S22' = VV_HYN2;
  1460. TTL3.'S12' = VV_HYN3;
  1461. TTL3.'FCK' = FCBET1;
  1462. TTL3.'FSK_1' = FSACI1;
  1463. TTL3.'FSK_2' = FSACI1;
  1464. TTL3.'RHO_1' = RHOXS;
  1465. TTL3.'RHO_2' = RHOYS;
  1466. TTL3.'GAMMA_C' = GAMC;
  1467. TTL3.'ALPA_C' = ALPC1;
  1468. TTL3.'NU_C' = NUC1;
  1469. TTL3.'GAMMA_S' = GAMS1;
  1470. VAL_Y1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/
  1471. ((2.0)*(H_VAL2));
  1472. *
  1473. TTL2 = TABLE;
  1474. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1475. TTL2.'S11' = VV_HZP1;
  1476. TTL2.'S22' = VV_HZP2;
  1477. TTL2.'S12' = VV_HZP3;
  1478. TTL2.'FCK' = FCBET1;
  1479. TTL2.'FSK_1' = FSACI1;
  1480. TTL2.'FSK_2' = FSACI1;
  1481. TTL2.'RHO_1' = RHOXS;
  1482. TTL2.'RHO_2' = RHOYS;
  1483. TTL2.'GAMMA_C' = GAMC;
  1484. TTL2.'ALPA_C' = ALPC1;
  1485. TTL2.'NU_C' = NUC1;
  1486. TTL2.'GAMMA_S' = GAMS1;
  1487. TTL3 = TABLE;
  1488. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1489. TTL3.'S11' = VV_HZN1;
  1490. TTL3.'S22' = VV_HZN2;
  1491. TTL3.'S12' = VV_HZN3;
  1492. TTL3.'FCK' = FCBET1;
  1493. TTL3.'FSK_1' = FSACI1;
  1494. TTL3.'FSK_2' = FSACI1;
  1495. TTL3.'RHO_1' = RHOXS;
  1496. TTL3.'RHO_2' = RHOYS;
  1497. TTL3.'GAMMA_C' = GAMC;
  1498. TTL3.'ALPA_C' = ALPC1;
  1499. TTL3.'NU_C' = NUC1;
  1500. TTL3.'GAMMA_S' = GAMS1;
  1501. VAL_Z1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/
  1502. ((2.0)*(H_VAL2));
  1503. 'FINSI';
  1504. 'FINSI';
  1505. 'FINSI';
  1506. 'FINSI';
  1507. *
  1508. * costruction n_limit
  1509. DELTG1 = 'MANU' 'CHPO' MAI1 'UX' ((-1.0)*(VAL_X1))
  1510. 'UY' ((-1.0)*(VAL_Y1))
  1511. 'UZ' ((-1.0)*(VAL_Z1));
  1512. *
  1513. * variable for the convergence test
  1514. ID1_CON = 0;
  1515. * check on the n_limit
  1516. 'SI' ((('XTX' DELTG1)**(0.5)) < 1.E-7);
  1517. * if |n_limit|=0 rotate the chosen direction by 10 degrees
  1518. MATR1 = 'VIDE' 'RIGIDITE'/'RIGIDITE';
  1519. MATR1 = MATR1 'ET'
  1520. ('MANU' 'RIGIDITE' MAI1 ('MOTS' 'UX' 'UY' 'UZ') 'QUEL'
  1521. ('PROG' (COS(10.0)) ((-1.0)*(SIN(10.0))) 0.0
  1522. (SIN(10.0)) (COS(10.0)) 0.0
  1523. 0.0 0.0 1.0));
  1524. AAA1 = MATR1*ALP_K;
  1525. DELTG1 = MANU CHPO MAI1 'UX' (EXTR AAA1 MAI1 'FX')
  1526. 'UY' (EXTR AAA1 MAI1 'FY')
  1527. 'UZ' (EXTR AAA1 MAI1 'FZ');
  1528. 'FINSI';
  1529. * convergence test
  1530. VET_TEST = (TAB_ITE. I_M1 . 'ALPA')
  1531. - (TAB_ITE. (I_M1 - 1) . 'ALPA');
  1532. *
  1533. 'SI' ((('XTX' VET_TEST)**(0.5)) '<' 0.001);
  1534. * deduction of the final value of Lambda
  1535. 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0);
  1536. 'SI' ('NEG' ('TYPE' LAM_FIN) 'FLOTTANT');
  1537. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  1538. 'SINON';
  1539. 'SI' (LAM_FIN '>' (TAB_ITE. I_M1 . 'LAMBDA'));
  1540. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  1541. 'FINSI';
  1542. 'FINSI';
  1543. 'FINSI';
  1544. 'QUIT' IND2;
  1545. 'SINON';
  1546. 'SI' (I_M1 'EGA' 200);
  1547. ID1_CON = 1;
  1548. 'SI' ((TAB_ITE. I_M1 . 'LAMBDA') '>' 0.0);
  1549. 'SI' ('NEG' ('TYPE' LAM_FIN) 'FLOTTANT');
  1550. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  1551. 'SINON';
  1552. 'SI' (LAM_FIN '>' (TAB_ITE. I_M1 . 'LAMBDA'));
  1553. LAM_FIN = (TAB_ITE. I_M1 . 'LAMBDA');
  1554. 'FINSI';
  1555. 'FINSI';
  1556. 'FINSI';
  1557. 'SINON';
  1558. * otherwise updating the n_limit
  1559. ALP_K = DELTG1/((XTX DELTG1)**(0.5));
  1560. 'FINSI';
  1561. 'FINSI';
  1562. I_M1 = I_M1 + 1;
  1563. 'FIN' IND2;
  1564. I_K1 = I_K1 + 1;
  1565. 'FIN' IND3;
  1566. *
  1567. * screen message
  1568. 'SI' (ID1_CON 'EGA' 0);
  1569. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  1570. LAM_FIN;
  1571. 'MESS' TIT1;
  1572. 'FINSI';
  1573. 'SI' (ID1_CON 'EGA' 1);
  1574.  
  1575. TIT1 = 'CHAINE' ' Element ' I_ELE1 ' Lambda='
  1576. LAM_FIN '.....Attention non convergence';
  1577.  
  1578. * New computation of Lambda....rectangle method
  1579. * H_VAL3 = FCBET1/100000;
  1580. LAMB0 = 1.0;
  1581. H_VAL3 = LAMB0/10000;
  1582. TOL_2 = FCBET1/1000;
  1583. *
  1584. * reference list for the 8 point for rectangle solid
  1585. LL_I = PROG 1. 2. 3. 4. 5. 6. 7. 8.;
  1586. *
  1587. * creation of the resuming table
  1588. TAB_ITE = 'TABLE';
  1589. TAB_ITE. 0 = 'TABLE';
  1590. TAB_ITE. 0 .'LAMBDA' = LAMB0 ;
  1591. *
  1592. I_MM1 = 0;
  1593. ID1_CON = 0;
  1594. *
  1595. * loop for in order to find f=0
  1596. 'REPE' IND4 (200);
  1597. *
  1598. * stress state for the 8 points
  1599. X1_0 = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  1600. Y1_0 = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1601. Z1_0 = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1602. X2_0 = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1603. Y2_0 = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1604. Z2_0 = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1605. X3_0 = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1606. Y3_0 = ((N22)*(((1.0)*(LAMB0)))) + N220;
  1607. Z3_0 = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1608. X4_0 = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  1609. Y4_0 = ((N22)*(((1.0)*(LAMB0)))) + N220;
  1610. Z4_0 = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1611. X5_0 = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  1612. Y5_0 = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1613. Z5_0 = ((N12)*(((1.0)*(LAMB0)))) + N120;
  1614. X6_0 = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1615. Y6_0 = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1616. Z6_0 = ((N12)*(((1.0)*(LAMB0)))) + N120;
  1617. X7_0 = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1618. Y7_0 = ((N22)*(((1.0)*(LAMB0)))) + N220;
  1619. Z7_0 = ((N12)*(((1.0)*(LAMB0)))) + N120;
  1620. X8_0 = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  1621. Y8_0 = ((N22)*(((1.0)*(LAMB0)))) + N220;
  1622. Z8_0 = ((N12)*(((1.0)*(LAMB0)))) + N120;
  1623. *
  1624. * put the N11, N22 et N12 stress state in the lists
  1625. LL_X0 = 'PROG' (X1_0) (X2_0) (X3_0) (X4_0)
  1626. (X5_0) (X6_0) (X7_0) (X8_0);
  1627. LL_Y0 = 'PROG' (Y1_0) (Y2_0) (Y3_0) (Y4_0)
  1628. (Y5_0) (Y6_0) (Y7_0) (Y8_0);
  1629. LL_Z0 = 'PROG' (Z1_0) (Z2_0) (Z3_0) (Z4_0)
  1630. (Z5_0) (Z6_0) (Z7_0) (Z8_0);
  1631. LL_F0 = 'PROG';
  1632. *
  1633. * deduction of f for each point
  1634. III1 = 1;
  1635. 'REPE' IND2 (8);
  1636. TTL1 = TABLE;
  1637. TTL1.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1638. TTL1.'S11' = ('EXTR' LL_X0 III1);
  1639. TTL1.'S22' = ('EXTR' LL_Y0 III1);
  1640. TTL1.'S12' = ('EXTR' LL_Z0 III1);
  1641. TTL1.'FCK' = FCBET1;
  1642. TTL1.'FSK_1' = FSACI1;
  1643. TTL1.'FSK_2' = FSACI1;
  1644. TTL1.'RHO_1' = RHOXS;
  1645. TTL1.'RHO_2' = RHOYS;
  1646. TTL1.'GAMMA_C' = GAMC;
  1647. TTL1.'ALPA_C' = ALPC1;
  1648. TTL1.'NU_C' = NUC1;
  1649. TTL1.'GAMMA_S' = GAMS1;
  1650. LL_F0 = LL_F0 ET
  1651. ('PROG' (G_ULTI2D TTL1));
  1652. III1 = III1 + 1;
  1653. 'FIN' IND2;
  1654. * saving
  1655. TAB_ITE. I_MM1 .'L_X' = LL_X0;
  1656. TAB_ITE. I_MM1 .'L_Y' = LL_Y0;
  1657. TAB_ITE. I_MM1 .'L_Z' = LL_Z0;
  1658. TAB_ITE. I_MM1 .'L_F' = LL_F0;
  1659. * finding the minimum value of f and the corresponding point
  1660. EV1 = 'EVOL' 'MANU' LL_I LL_F0;
  1661. II1 II2 VAL_F = 'MINI' EV1;
  1662. * computation of D (gradiant) in case of Point_1=Argmin(fmin)
  1663. 'SI' (II1 'EGA' 1);
  1664. X1_DP = ((N11)*(((-1.0)*(LAMB0 + H_VAL3)))) + N110;
  1665. Y1_DP = ((N22)*(((-1.0)*(LAMB0 + H_VAL3)))) + N220;
  1666. Z1_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  1667. X1_DN = ((N11)*(((-1.0)*(LAMB0 - H_VAL3)))) + N110;
  1668. Y1_DN = ((N22)*(((-1.0)*(LAMB0 - H_VAL3)))) + N220;
  1669. Z1_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  1670. 'SI' (((X1_DP) '>' ((FSACI1*RHOXS)/(GAMS1)))
  1671. 'OU' ((Y1_DP) '>' ((FSACI1*RHOYS)/(GAMS1))));
  1672. X1_DP = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  1673. Y1_DP = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1674. Z1_DP = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1675. X1_DN = ((N11)*(((-1.0)*(LAMB0 - H_VAL3)))) + N110;
  1676. Y1_DN = ((N22)*(((-1.0)*(LAMB0 - H_VAL3)))) + N220;
  1677. Z1_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  1678. *
  1679. TTL2 = TABLE;
  1680. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1681. TTL2.'S11' = X1_DP;
  1682. TTL2.'S22' = Y1_DP;
  1683. TTL2.'S12' = Z1_DP;
  1684. TTL2.'FCK' = FCBET1;
  1685. TTL2.'FSK_1' = FSACI1;
  1686. TTL2.'FSK_2' = FSACI1;
  1687. TTL2.'RHO_1' = RHOXS;
  1688. TTL2.'RHO_2' = RHOYS;
  1689. TTL2.'GAMMA_C' = GAMC;
  1690. TTL2.'ALPA_C' = ALPC1;
  1691. TTL2.'NU_C' = NUC1;
  1692. TTL2.'GAMMA_S' = GAMS1;
  1693. TTL3 = TABLE;
  1694. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1695. TTL3.'S11' = X1_DN;
  1696. TTL3.'S22' = Y1_DN;
  1697. TTL3.'S12' = Z1_DN;
  1698. TTL3.'FCK' = FCBET1;
  1699. TTL3.'FSK_1' = FSACI1;
  1700. TTL3.'FSK_2' = FSACI1;
  1701. TTL3.'RHO_1' = RHOXS;
  1702. TTL3.'RHO_2' = RHOYS;
  1703. TTL3.'GAMMA_C' = GAMC;
  1704. TTL3.'ALPA_C' = ALPC1;
  1705. TTL3.'NU_C' = NUC1;
  1706. TTL3.'GAMMA_S' = GAMS1;
  1707. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  1708. 'SINON';
  1709. 'SI' (((X1_DN) '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1710. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1)))))
  1711. 'OU' ((Y1_DN) '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1712. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1))))));
  1713. X1_DP = ((N11)*(((-1.0)*(LAMB0 + H_VAL3)))) + N110;
  1714. Y1_DP = ((N22)*(((-1.0)*(LAMB0 + H_VAL3)))) + N220;
  1715. Z1_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  1716. X1_DN = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  1717. Y1_DN = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1718. Z1_DN = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1719. TTL2 = TABLE;
  1720. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1721. TTL2.'S11' = X1_DP;
  1722. TTL2.'S22' = Y1_DP;
  1723. TTL2.'S12' = Z1_DP;
  1724. TTL2.'FCK' = FCBET1;
  1725. TTL2.'FSK_1' = FSACI1;
  1726. TTL2.'FSK_2' = FSACI1;
  1727. TTL2.'RHO_1' = RHOXS;
  1728. TTL2.'RHO_2' = RHOYS;
  1729. TTL2.'GAMMA_C' = GAMC;
  1730. TTL2.'ALPA_C' = ALPC1;
  1731. TTL2.'NU_C' = NUC1;
  1732. TTL2.'GAMMA_S' = GAMS1;
  1733. TTL3 = TABLE;
  1734. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1735. TTL3.'S11' = X1_DN;
  1736. TTL3.'S22' = Y1_DN;
  1737. TTL3.'S12' = Z1_DN;
  1738. TTL3.'FCK' = FCBET1;
  1739. TTL3.'FSK_1' = FSACI1;
  1740. TTL3.'FSK_2' = FSACI1;
  1741. TTL3.'RHO_1' = RHOXS;
  1742. TTL3.'RHO_2' = RHOYS;
  1743. TTL3.'GAMMA_C' = GAMC;
  1744. TTL3.'ALPA_C' = ALPC1;
  1745. TTL3.'NU_C' = NUC1;
  1746. TTL3.'GAMMA_S' = GAMS1;
  1747. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  1748. 'SINON';
  1749. TTL2 = TABLE;
  1750. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1751. TTL2.'S11' = X1_DP;
  1752. TTL2.'S22' = Y1_DP;
  1753. TTL2.'S12' = Z1_DP;
  1754. TTL2.'FCK' = FCBET1;
  1755. TTL2.'FSK_1' = FSACI1;
  1756. TTL2.'FSK_2' = FSACI1;
  1757. TTL2.'RHO_1' = RHOXS;
  1758. TTL2.'RHO_2' = RHOYS;
  1759. TTL2.'GAMMA_C' = GAMC;
  1760. TTL2.'ALPA_C' = ALPC1;
  1761. TTL2.'NU_C' = NUC1;
  1762. TTL2.'GAMMA_S' = GAMS1;
  1763. TTL3 = TABLE;
  1764. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1765. TTL3.'S11' = X1_DN;
  1766. TTL3.'S22' = Y1_DN;
  1767. TTL3.'S12' = Z1_DN;
  1768. TTL3.'FCK' = FCBET1;
  1769. TTL3.'FSK_1' = FSACI1;
  1770. TTL3.'FSK_2' = FSACI1;
  1771. TTL3.'RHO_1' = RHOXS;
  1772. TTL3.'RHO_2' = RHOYS;
  1773. TTL3.'GAMMA_C' = GAMC;
  1774. TTL3.'ALPA_C' = ALPC1;
  1775. TTL3.'NU_C' = NUC1;
  1776. TTL3.'GAMMA_S' = GAMS1;
  1777. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL3));
  1778. 'FINSI';
  1779. 'FINSI';
  1780. 'FINSI';
  1781. * computation of D (gradiant) in case of Point_2=Argmin(fmin)
  1782. 'SI' (II1 'EGA' 2);
  1783. X2_DP = ((N11)*(((1.0)*(LAMB0 + H_VAL3)))) + N110;
  1784. Y2_DP = ((N22)*(((-1.0)*(LAMB0 + H_VAL3)))) + N220;
  1785. Z2_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  1786. X2_DN = ((N11)*(((1.0)*(LAMB0 - H_VAL3)))) + N110;
  1787. Y2_DN = ((N22)*(((-1.0)*(LAMB0 - H_VAL3)))) + N220;
  1788. Z2_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  1789. 'SI' (((X2_DP) '>' ((FSACI1*RHOXS)/(GAMS1)))
  1790. 'OU' ((Y2_DP) '>' ((FSACI1*RHOYS)/(GAMS1))));
  1791. X2_DP = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1792. Y2_DP = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1793. Z2_DP = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1794. X2_DN = ((N11)*(((1.0)*(LAMB0 - H_VAL3)))) + N110;
  1795. Y2_DN = ((N22)*(((-1.0)*(LAMB0 - H_VAL3)))) + N220;
  1796. Z2_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  1797. *
  1798. TTL2 = TABLE;
  1799. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1800. TTL2.'S11' = X2_DP;
  1801. TTL2.'S22' = Y2_DP;
  1802. TTL2.'S12' = Z2_DP;
  1803. TTL2.'FCK' = FCBET1;
  1804. TTL2.'FSK_1' = FSACI1;
  1805. TTL2.'FSK_2' = FSACI1;
  1806. TTL2.'RHO_1' = RHOXS;
  1807. TTL2.'RHO_2' = RHOYS;
  1808. TTL2.'GAMMA_C' = GAMC;
  1809. TTL2.'ALPA_C' = ALPC1;
  1810. TTL2.'NU_C' = NUC1;
  1811. TTL2.'GAMMA_S' = GAMS1;
  1812. TTL3 = TABLE;
  1813. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1814. TTL3.'S11' = X2_DN;
  1815. TTL3.'S22' = Y2_DN;
  1816. TTL3.'S12' = Z2_DN;
  1817. TTL3.'FCK' = FCBET1;
  1818. TTL3.'FSK_1' = FSACI1;
  1819. TTL3.'FSK_2' = FSACI1;
  1820. TTL3.'RHO_1' = RHOXS;
  1821. TTL3.'RHO_2' = RHOYS;
  1822. TTL3.'GAMMA_C' = GAMC;
  1823. TTL3.'ALPA_C' = ALPC1;
  1824. TTL3.'NU_C' = NUC1;
  1825. TTL3.'GAMMA_S' = GAMS1;
  1826. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  1827. 'SINON';
  1828. 'SI' (((X2_DN) '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1829. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1)))))
  1830. 'OU' ((Y2_DN) '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1831. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1))))));
  1832. X2_DP = ((N11)*(((1.0)*(LAMB0 + H_VAL3)))) + N110;
  1833. Y2_DP = ((N22)*(((-1.0)*(LAMB0 + H_VAL3)))) + N220;
  1834. Z2_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  1835. X2_DN = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1836. Y2_DN = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  1837. Z2_DN = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1838. *
  1839. TTL2 = TABLE;
  1840. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1841. TTL2.'S11' = X2_DP;
  1842. TTL2.'S22' = Y2_DP;
  1843. TTL2.'S12' = Z2_DP;
  1844. TTL2.'FCK' = FCBET1;
  1845. TTL2.'FSK_1' = FSACI1;
  1846. TTL2.'FSK_2' = FSACI1;
  1847. TTL2.'RHO_1' = RHOXS;
  1848. TTL2.'RHO_2' = RHOYS;
  1849. TTL2.'GAMMA_C' = GAMC;
  1850. TTL2.'ALPA_C' = ALPC1;
  1851. TTL2.'NU_C' = NUC1;
  1852. TTL2.'GAMMA_S' = GAMS1;
  1853. TTL3 = TABLE;
  1854. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1855. TTL3.'S11' = X2_DN;
  1856. TTL3.'S22' = Y2_DN;
  1857. TTL3.'S12' = Z2_DN;
  1858. TTL3.'FCK' = FCBET1;
  1859. TTL3.'FSK_1' = FSACI1;
  1860. TTL3.'FSK_2' = FSACI1;
  1861. TTL3.'RHO_1' = RHOXS;
  1862. TTL3.'RHO_2' = RHOYS;
  1863. TTL3.'GAMMA_C' = GAMC;
  1864. TTL3.'ALPA_C' = ALPC1;
  1865. TTL3.'NU_C' = NUC1;
  1866. TTL3.'GAMMA_S' = GAMS1;
  1867. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  1868. 'SINON';
  1869. TTL2 = TABLE;
  1870. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1871. TTL2.'S11' = X2_DP;
  1872. TTL2.'S22' = Y2_DP;
  1873. TTL2.'S12' = Z2_DP;
  1874. TTL2.'FCK' = FCBET1;
  1875. TTL2.'FSK_1' = FSACI1;
  1876. TTL2.'FSK_2' = FSACI1;
  1877. TTL2.'RHO_1' = RHOXS;
  1878. TTL2.'RHO_2' = RHOYS;
  1879. TTL2.'GAMMA_C' = GAMC;
  1880. TTL2.'ALPA_C' = ALPC1;
  1881. TTL2.'NU_C' = NUC1;
  1882. TTL2.'GAMMA_S' = GAMS1;
  1883. TTL3 = TABLE;
  1884. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1885. TTL3.'S11' = X2_DN;
  1886. TTL3.'S22' = Y2_DN;
  1887. TTL3.'S12' = Z2_DN;
  1888. TTL3.'FCK' = FCBET1;
  1889. TTL3.'FSK_1' = FSACI1;
  1890. TTL3.'FSK_2' = FSACI1;
  1891. TTL3.'RHO_1' = RHOXS;
  1892. TTL3.'RHO_2' = RHOYS;
  1893. TTL3.'GAMMA_C' = GAMC;
  1894. TTL3.'ALPA_C' = ALPC1;
  1895. TTL3.'NU_C' = NUC1;
  1896. TTL3.'GAMMA_S' = GAMS1;
  1897. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL3));
  1898. 'FINSI';
  1899. 'FINSI';
  1900. 'FINSI';
  1901. * computation of D (gradiant) in case of Point_3=Argmin(fmin)
  1902. 'SI' (II1 'EGA' 3);
  1903. X3_DP = ((N11)*(((1.0)*(LAMB0 + H_VAL3)))) + N110;
  1904. Y3_DP = ((N22)*(((1.0)*(LAMB0 + H_VAL3)))) + N220;
  1905. Z3_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  1906. X3_DN = ((N11)*(((1.0)*(LAMB0 - H_VAL3)))) + N110;
  1907. Y3_DN = ((N22)*(((1.0)*(LAMB0 - H_VAL3)))) + N220;
  1908. Z3_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  1909. 'SI' (((X3_DP) '>' ((FSACI1*RHOXS)/(GAMS1)))
  1910. 'OU' ((Y3_DP) '>' ((FSACI1*RHOYS)/(GAMS1))));
  1911. X3_DP = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1912. Y3_DP = ((N22)*(((1.0)*(LAMB0)))) + N220;
  1913. Z3_DP = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1914. X3_DN = ((N11)*(((1.0)*(LAMB0 - H_VAL3)))) + N110;
  1915. Y3_DN = ((N22)*(((1.0)*(LAMB0 - H_VAL3)))) + N220;
  1916. Z3_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  1917. *
  1918. TTL2 = TABLE;
  1919. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1920. TTL2.'S11' = X3_DP;
  1921. TTL2.'S22' = Y3_DP;
  1922. TTL2.'S12' = Z3_DP;
  1923. TTL2.'FCK' = FCBET1;
  1924. TTL2.'FSK_1' = FSACI1;
  1925. TTL2.'FSK_2' = FSACI1;
  1926. TTL2.'RHO_1' = RHOXS;
  1927. TTL2.'RHO_2' = RHOYS;
  1928. TTL2.'GAMMA_C' = GAMC;
  1929. TTL2.'ALPA_C' = ALPC1;
  1930. TTL2.'NU_C' = NUC1;
  1931. TTL2.'GAMMA_S' = GAMS1;
  1932. TTL3 = TABLE;
  1933. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1934. TTL3.'S11' = X3_DN;
  1935. TTL3.'S22' = Y3_DN;
  1936. TTL3.'S12' = Z3_DN;
  1937. TTL3.'FCK' = FCBET1;
  1938. TTL3.'FSK_1' = FSACI1;
  1939. TTL3.'FSK_2' = FSACI1;
  1940. TTL3.'RHO_1' = RHOXS;
  1941. TTL3.'RHO_2' = RHOYS;
  1942. TTL3.'GAMMA_C' = GAMC;
  1943. TTL3.'ALPA_C' = ALPC1;
  1944. TTL3.'NU_C' = NUC1;
  1945. TTL3.'GAMMA_S' = GAMS1;
  1946. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  1947. 'SINON';
  1948. 'SI' (((X3_DN) '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1949. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1)))))
  1950. 'OU' ((Y3_DN) '<' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  1951. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1))))));
  1952. X3_DP = ((N11)*(((1.0)*(LAMB0 + H_VAL3)))) + N110;
  1953. Y3_DP = ((N22)*(((1.0)*(LAMB0 + H_VAL3)))) + N220;
  1954. Z3_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  1955. X3_DN = ((N11)*(((1.0)*(LAMB0)))) + N110;
  1956. Y3_DN = ((N22)*(((1.0)*(LAMB0)))) + N220;
  1957. Z3_DN = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  1958. *
  1959. TTL2 = TABLE;
  1960. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1961. TTL2.'S11' = X3_DP;
  1962. TTL2.'S22' = Y3_DP;
  1963. TTL2.'S12' = Z3_DP;
  1964. TTL2.'FCK' = FCBET1;
  1965. TTL2.'FSK_1' = FSACI1;
  1966. TTL2.'FSK_2' = FSACI1;
  1967. TTL2.'RHO_1' = RHOXS;
  1968. TTL2.'RHO_2' = RHOYS;
  1969. TTL2.'GAMMA_C' = GAMC;
  1970. TTL2.'ALPA_C' = ALPC1;
  1971. TTL2.'NU_C' = NUC1;
  1972. TTL2.'GAMMA_S' = GAMS1;
  1973. TTL3 = TABLE;
  1974. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1975. TTL3.'S11' = X3_DN;
  1976. TTL3.'S22' = Y3_DN;
  1977. TTL3.'S12' = Z3_DN;
  1978. TTL3.'FCK' = FCBET1;
  1979. TTL3.'FSK_1' = FSACI1;
  1980. TTL3.'FSK_2' = FSACI1;
  1981. TTL3.'RHO_1' = RHOXS;
  1982. TTL3.'RHO_2' = RHOYS;
  1983. TTL3.'GAMMA_C' = GAMC;
  1984. TTL3.'ALPA_C' = ALPC1;
  1985. TTL3.'NU_C' = NUC1;
  1986. TTL3.'GAMMA_S' = GAMS1;
  1987. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  1988. 'SINON';
  1989. TTL2 = TABLE;
  1990. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  1991. TTL2.'S11' = X3_DP;
  1992. TTL2.'S22' = Y3_DP;
  1993. TTL2.'S12' = Z3_DP;
  1994. TTL2.'FCK' = FCBET1;
  1995. TTL2.'FSK_1' = FSACI1;
  1996. TTL2.'FSK_2' = FSACI1;
  1997. TTL2.'RHO_1' = RHOXS;
  1998. TTL2.'RHO_2' = RHOYS;
  1999. TTL2.'GAMMA_C' = GAMC;
  2000. TTL2.'ALPA_C' = ALPC1;
  2001. TTL2.'NU_C' = NUC1;
  2002. TTL2.'GAMMA_S' = GAMS1;
  2003. TTL3 = TABLE;
  2004. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2005. TTL3.'S11' = X3_DN;
  2006. TTL3.'S22' = Y3_DN;
  2007. TTL3.'S12' = Z3_DN;
  2008. TTL3.'FCK' = FCBET1;
  2009. TTL3.'FSK_1' = FSACI1;
  2010. TTL3.'FSK_2' = FSACI1;
  2011. TTL3.'RHO_1' = RHOXS;
  2012. TTL3.'RHO_2' = RHOYS;
  2013. TTL3.'GAMMA_C' = GAMC;
  2014. TTL3.'ALPA_C' = ALPC1;
  2015. TTL3.'NU_C' = NUC1;
  2016. TTL3.'GAMMA_S' = GAMS1;
  2017. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL3));
  2018. 'FINSI';
  2019. 'FINSI';
  2020. 'FINSI';
  2021. * computation of D (gradiant) in case of Point_4=Argmin(fmin)
  2022. 'SI' (II1 'EGA' 4);
  2023. X4_DP = ((N11)*(((-1.0)*(LAMB0 + H_VAL3)))) + N110;
  2024. Y4_DP = ((N22)*(((1.0)*(LAMB0 + H_VAL3)))) + N220;
  2025. Z4_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  2026. X4_DN = ((N11)*(((-1.0)*(LAMB0 - H_VAL3)))) + N110;
  2027. Y4_DN = ((N22)*(((1.0)*(LAMB0 - H_VAL3)))) + N220;
  2028. Z4_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  2029. 'SI' (((X4_DP) '>' ((FSACI1*RHOXS)/(GAMS1)))
  2030. 'OU' ((Y4_DP) '>' ((FSACI1*RHOYS)/(GAMS1))));
  2031. X4_DP = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  2032. Y4_DP = ((N22)*(((1.0)*(LAMB0)))) + N220;
  2033. Z4_DP = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  2034. X4_DN = ((N11)*(((-1.0)*(LAMB0 - H_VAL3)))) + N110;
  2035. Y4_DN = ((N22)*(((1.0)*(LAMB0 - H_VAL3)))) + N220;
  2036. Z4_DN = ((N12)*(((-1.0)*(LAMB0 - H_VAL3)))) + N120;
  2037. *
  2038. TTL2 = TABLE;
  2039. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2040. TTL2.'S11' = X4_DP;
  2041. TTL2.'S22' = Y4_DP;
  2042. TTL2.'S12' = Z4_DP;
  2043. TTL2.'FCK' = FCBET1;
  2044. TTL2.'FSK_1' = FSACI1;
  2045. TTL2.'FSK_2' = FSACI1;
  2046. TTL2.'RHO_1' = RHOXS;
  2047. TTL2.'RHO_2' = RHOYS;
  2048. TTL2.'GAMMA_C' = GAMC;
  2049. TTL2.'ALPA_C' = ALPC1;
  2050. TTL2.'NU_C' = NUC1;
  2051. TTL2.'GAMMA_S' = GAMS1;
  2052. TTL3 = TABLE;
  2053. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2054. TTL3.'S11' = X4_DN;
  2055. TTL3.'S22' = Y4_DN;
  2056. TTL3.'S12' = Z4_DN;
  2057. TTL3.'FCK' = FCBET1;
  2058. TTL3.'FSK_1' = FSACI1;
  2059. TTL3.'FSK_2' = FSACI1;
  2060. TTL3.'RHO_1' = RHOXS;
  2061. TTL3.'RHO_2' = RHOYS;
  2062. TTL3.'GAMMA_C' = GAMC;
  2063. TTL3.'ALPA_C' = ALPC1;
  2064. TTL3.'NU_C' = NUC1;
  2065. TTL3.'GAMMA_S' = GAMS1;
  2066. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  2067. 'SINON';
  2068. 'SI' (((X4_DN) '>' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  2069. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1)))))
  2070. 'OU' ((Y4_DN) '>' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  2071. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1))))));
  2072. X4_DP = ((N11)*(((-1.0)*(LAMB0 + H_VAL3)))) + N110;
  2073. Y4_DP = ((N22)*(((1.0)*(LAMB0 + H_VAL3)))) + N220;
  2074. Z4_DP = ((N12)*(((-1.0)*(LAMB0 + H_VAL3)))) + N120;
  2075. X4_DN = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  2076. Y4_DN = ((N22)*(((1.0)*(LAMB0)))) + N220;
  2077. Z4_DN = ((N12)*(((-1.0)*(LAMB0)))) + N120;
  2078. *
  2079. TTL2 = TABLE;
  2080. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2081. TTL2.'S11' = X4_DP;
  2082. TTL2.'S22' = Y4_DP;
  2083. TTL2.'S12' = Z4_DP;
  2084. TTL2.'FCK' = FCBET1;
  2085. TTL2.'FSK_1' = FSACI1;
  2086. TTL2.'FSK_2' = FSACI1;
  2087. TTL2.'RHO_1' = RHOXS;
  2088. TTL2.'RHO_2' = RHOYS;
  2089. TTL2.'GAMMA_C' = GAMC;
  2090. TTL2.'ALPA_C' = ALPC1;
  2091. TTL2.'NU_C' = NUC1;
  2092. TTL2.'GAMMA_S' = GAMS1;
  2093. TTL3 = TABLE;
  2094. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2095. TTL3.'S11' = X4_DN;
  2096. TTL3.'S22' = Y4_DN;
  2097. TTL3.'S12' = Z4_DN;
  2098. TTL3.'FCK' = FCBET1;
  2099. TTL3.'FSK_1' = FSACI1;
  2100. TTL3.'FSK_2' = FSACI1;
  2101. TTL3.'RHO_1' = RHOXS;
  2102. TTL3.'RHO_2' = RHOYS;
  2103. TTL3.'GAMMA_C' = GAMC;
  2104. TTL3.'ALPA_C' = ALPC1;
  2105. TTL3.'NU_C' = NUC1;
  2106. TTL3.'GAMMA_S' = GAMS1;
  2107. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  2108. 'SINON';
  2109. TTL2 = TABLE;
  2110. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2111. TTL2.'S11' = X4_DP;
  2112. TTL2.'S22' = Y4_DP;
  2113. TTL2.'S12' = Z4_DP;
  2114. TTL2.'FCK' = FCBET1;
  2115. TTL2.'FSK_1' = FSACI1;
  2116. TTL2.'FSK_2' = FSACI1;
  2117. TTL2.'RHO_1' = RHOXS;
  2118. TTL2.'RHO_2' = RHOYS;
  2119. TTL2.'GAMMA_C' = GAMC;
  2120. TTL2.'ALPA_C' = ALPC1;
  2121. TTL2.'NU_C' = NUC1;
  2122. TTL2.'GAMMA_S' = GAMS1;
  2123. TTL3 = TABLE;
  2124. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2125. TTL3.'S11' = X4_DN;
  2126. TTL3.'S22' = Y4_DN;
  2127. TTL3.'S12' = Z4_DN;
  2128. TTL3.'FCK' = FCBET1;
  2129. TTL3.'FSK_1' = FSACI1;
  2130. TTL3.'FSK_2' = FSACI1;
  2131. TTL3.'RHO_1' = RHOXS;
  2132. TTL3.'RHO_2' = RHOYS;
  2133. TTL3.'GAMMA_C' = GAMC;
  2134. TTL3.'ALPA_C' = ALPC1;
  2135. TTL3.'NU_C' = NUC1;
  2136. TTL3.'GAMMA_S' = GAMS1;
  2137. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((2.0)*(H_VAL3));
  2138. 'FINSI';
  2139. 'FINSI';
  2140. 'FINSI';
  2141. * computation of D (gradiant) in case of Point_5=Argmin(fmin)
  2142. 'SI' (II1 'EGA' 5);
  2143. X5_DP = ((N11)*(((-1.0)*(LAMB0) + H_VAL3))) + N110;
  2144. Y5_DP = ((N22)*(((-1.0)*(LAMB0) + H_VAL3))) + N220;
  2145. Z5_DP = ((N12)*(((1.0)*(LAMB0) + H_VAL3))) + N120;
  2146. X5_DN = ((N11)*(((-1.0)*(LAMB0) - H_VAL3))) + N110;
  2147. Y5_DN = ((N22)*(((-1.0)*(LAMB0) - H_VAL3))) + N220;
  2148. Z5_DN = ((N12)*(((1.0)*(LAMB0) - H_VAL3))) + N120;
  2149. 'SI' (((X5_DP) '>' ((FSACI1*RHOXS)/(GAMS1)))
  2150. 'OU' ((Y5_DP) '>' ((FSACI1*RHOYS)/(GAMS1))));
  2151. X5_DP = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  2152. Y5_DP = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  2153. Z5_DP = ((N12)*(((1.0)*(LAMB0)))) + N120;
  2154. X5_DN = ((N11)*(((-1.0)*(LAMB0 - H_VAL3)))) + N110;
  2155. Y5_DN = ((N22)*(((-1.0)*(LAMB0 - H_VAL3)))) + N220;
  2156. Z5_DN = ((N12)*(((1.0)*(LAMB0 - H_VAL3)))) + N120;
  2157. *
  2158. TTL2 = TABLE;
  2159. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2160. TTL2.'S11' = X5_DP;
  2161. TTL2.'S22' = Y5_DP;
  2162. TTL2.'S12' = Z5_DP;
  2163. TTL2.'FCK' = FCBET1;
  2164. TTL2.'FSK_1' = FSACI1;
  2165. TTL2.'FSK_2' = FSACI1;
  2166. TTL2.'RHO_1' = RHOXS;
  2167. TTL2.'RHO_2' = RHOYS;
  2168. TTL2.'GAMMA_C' = GAMC;
  2169. TTL2.'ALPA_C' = ALPC1;
  2170. TTL2.'NU_C' = NUC1;
  2171. TTL2.'GAMMA_S' = GAMS1;
  2172. TTL3 = TABLE;
  2173. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2174. TTL3.'S11' = X5_DN;
  2175. TTL3.'S22' = Y5_DN;
  2176. TTL3.'S12' = Z5_DN;
  2177. TTL3.'FCK' = FCBET1;
  2178. TTL3.'FSK_1' = FSACI1;
  2179. TTL3.'FSK_2' = FSACI1;
  2180. TTL3.'RHO_1' = RHOXS;
  2181. TTL3.'RHO_2' = RHOYS;
  2182. TTL3.'GAMMA_C' = GAMC;
  2183. TTL3.'ALPA_C' = ALPC1;
  2184. TTL3.'NU_C' = NUC1;
  2185. TTL3.'GAMMA_S' = GAMS1;
  2186. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  2187. 'SINON';
  2188. 'SI' (((X5_DN) '>' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  2189. + ((-1.0)*((FSACI1*RHOXS)/(GAMS1)))))
  2190. 'OU' ((Y5_DN) '>' (((-1.0)*(((FCBET1*ALPC1)*(NUC1))/(ALPC1)))
  2191. + ((-1.0)*((FSACI1*RHOYS)/(GAMS1))))));
  2192. X5_DP = ((N11)*(((-1.0)*(LAMB0 + H_VAL3)))) + N110;
  2193. Y5_DP = ((N22)*(((-1.0)*(LAMB0 + H_VAL3)))) + N220;
  2194. Z5_DP = ((N12)*(((1.0)*(LAMB0 + H_VAL3)))) + N120;
  2195. X5_DN = ((N11)*(((-1.0)*(LAMB0)))) + N110;
  2196. Y5_DN = ((N22)*(((-1.0)*(LAMB0)))) + N220;
  2197. Z5_DN = ((N12)*(((1.0)*(LAMB0)))) + N120;
  2198. *
  2199. TTL2 = TABLE;
  2200. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2201. TTL2.'S11' = X5_DP;
  2202. TTL2.'S22' = Y5_DP;
  2203. TTL2.'S12' = Z5_DP;
  2204. TTL2.'FCK' = FCBET1;
  2205. TTL2.'FSK_1' = FSACI1;
  2206. TTL2.'FSK_2' = FSACI1;
  2207. TTL2.'RHO_1' = RHOXS;
  2208. TTL2.'RHO_2' = RHOYS;
  2209. TTL2.'GAMMA_C' = GAMC;
  2210. TTL2.'ALPA_C' = ALPC1;
  2211. TTL2.'NU_C' = NUC1;
  2212. TTL2.'GAMMA_S' = GAMS1;
  2213. TTL3 = TABLE;
  2214. TTL3.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2215. TTL3.'S11' = X5_DN;
  2216. TTL3.'S22' = Y5_DN;
  2217. TTL3.'S12' = Z5_DN;
  2218. TTL3.'FCK' = FCBET1;
  2219. TTL3.'FSK_1' = FSACI1;
  2220. TTL3.'FSK_2' = FSACI1;
  2221. TTL3.'RHO_1' = RHOXS;
  2222. TTL3.'RHO_2' = RHOYS;
  2223. TTL3.'GAMMA_C' = GAMC;
  2224. TTL3.'ALPA_C' = ALPC1;
  2225. TTL3.'NU_C' = NUC1;
  2226. TTL3.'GAMMA_S' = GAMS1;
  2227. D_VAL1 = ((G_ULTI2D TTL2) - (G_ULTI2D TTL3))/((1.0)*(H_VAL3));
  2228. 'SINON';
  2229. TTL2 = TABLE;
  2230. TTL2.'TYPE_COUCHE' = 'CHAINE' 'COUCHE_EXT';
  2231. TTL2.'S11' = X5_DP;
  2232. TTL2.'S22' = Y5_DP;
  2233. TTL2.'S12' = Z5_DP;
  2234. TTL2.'FCK' = FCBET1;
  2235. TTL2.'FSK_1' = FSACI1;
  2236. TTL2.'FSK_2' = FSACI1;
  2237. TTL2.'RHO_1' = RHOXS;
  2238. TTL2.'RHO_2' = RHOYS;
  2239. TTL2.'GAMMA_C' = GAMC;
  2240. TTL2.'ALPA_C' = ALPC1;
  2241. TTL2.'NU_C' = NUC1;
  2242. TTL2.'GAMMA_S' = GAMS1;