Télécharger vmispo.eso

Retour à la liste

Numérotation des lignes :

vmispo
  1. C VMISPO SOURCE OF166741 24/10/07 21:15:52 12016
  2. C_______________________________________________________________________
  3. C
  4. C Entrées:
  5. C ________
  6. C
  7. C IPMODL Pointeur sur un MMODEL
  8. C IPCHE1 Pointeur sur un MCHAML de contraintes
  9. C IPCHE2 Pointeur sur un MCHAML de caracteristiques
  10. C
  11. C SORTIES:
  12. C ________
  13. C
  14. C IPCHE3 Pointeur sur un MCHAML de VONMISES
  15. C IRET =1 OU 0 suivant succes ou pas (Message d'erreur
  16. C imprimé dans ce cas)
  17. C
  18. C Passage aux nouveaux CHAMELEMs par I.Monnier le 13.06.90
  19. C
  20. *_______________________________________________________________________
  21.  
  22. SUBROUTINE VMISPO(IPMODL,IPCHE1,IPCHE2,IPCHE3,IRET,isouc)
  23.  
  24. IMPLICIT INTEGER(I-N)
  25. IMPLICIT REAL*8(A-H,O-Z)
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC CCHAMP
  30. -INC CCGEOME
  31. C==DEB= FORMULATION HHO == Include specifique ==========================
  32. -INC CCHHOPA
  33. C==FIN= FORMULATION HHO ================================================
  34.  
  35. -INC SMCHAML
  36. -INC SMMODEL
  37. -INC SMCOORD
  38. -INC SMINTE
  39. *
  40. SEGMENT NOTYPE
  41. CHARACTER*16 TYPE(NBTYPE)
  42. ENDSEGMENT
  43. *
  44. SEGMENT MPTVAL
  45. INTEGER IPOS(NS) ,NSOF(NS)
  46. INTEGER IVAL(NCOSOU)
  47. CHARACTER*16 TYVAL(NCOSOU)
  48. ENDSEGMENT
  49. *
  50. CHARACTER*(NCONCH) CONM
  51. PARAMETER ( NINF=3 )
  52. DIMENSION SIG(9)
  53. DIMENSION CARAC(25),DIV(7)
  54. INTEGER INFOS(NINF)
  55. LOGICAL lsupco
  56. INTEGER ISUP1,ISUP2
  57. DATA ALPH1/.4444444444444444D0/
  58. DATA PI4,R33,R22/0.785398164D0,1.732050808D0,1.414213562D0/
  59.  
  60. * WRITE(*,*) 'Entrée dans VMISPO.'
  61. lsupco=.false.
  62. IRET = 0
  63. IPCHE3 = 0
  64. *
  65. * Verification du lieu support du MCHAML de CONTRAINTES
  66. *
  67. ISUP1 = 0
  68. ISUP2=0
  69. IRET1 = 0
  70. CALL QUESUP (IPMODL,IPCHE1,0,0,ISUP1,IRET1)
  71. * IF (ISUP1.GT.0) RETURN
  72. *
  73. * Verification du lieu support du MCHAML de CARACTERISTIQUES
  74. *
  75. IF (IPCHE2.NE.0) THEN
  76. ISUP2 = 0
  77. IRET2 = 0
  78. CALL QUESUP (IPMODL,IPCHE2,IRET1,1,ISUP2,IRET2)
  79. IF (ISUP2.GT.0) RETURN
  80. ENDIF
  81.  
  82. *_______________________________________________________________________
  83. *
  84. * ACTIVATION DU MODELE
  85. *_______________________________________________________________________
  86. *
  87. MMODEL=IPMODL
  88. SEGACT,MMODEL
  89. NSOUS=KMODEL(/1)
  90. KEL22 = 0
  91. DO ISOUS = 1, NSOUS
  92. IMODEL=KMODEL(ISOUS)
  93. SEGACT,IMODEL
  94. IF (formod(1).ne.'MECANIQUE'.OR.NEFMOD.EQ.22.or.nefmod.eq.259)
  95. > KEL22 = KEL22 + 1
  96. ENDDO
  97. *
  98. * ACTIVATION DES CONTRAINTES
  99. *
  100. IRET=1
  101. MCHEL1=IPCHE1
  102. SEGACT MCHEL1
  103. *
  104. * INITIALISATION DU MCHELM DE VON MISES
  105. *
  106. L1=9
  107. N1=NSOUS - KEL22
  108. N3=6
  109. SEGINI MCHELM
  110. IFOCHE=IFOUR
  111. TITCHE='VON MISES'
  112.  
  113. C un petit segment toujours utile :
  114. NBTYPE=1
  115. SEGINI,NOTYPE
  116. TYPE(1)='REAL*8'
  117. MOTYR8 = NOTYPE
  118.  
  119. *_______________________________________________________________________
  120. *
  121. * BOUCLE SUR LES SOUS ZONES
  122. *_______________________________________________________________________
  123. *
  124. isouss=0
  125. DO 200 ISOUS=1,NSOUS
  126. C
  127. C QUELQUES INITIALISATIONS
  128. C
  129. MOSTRS = 0
  130. MOCARA = 0
  131. IVASTR = 0
  132. IVACAR = 0
  133. IVAMIS = 0
  134. C
  135. C TRAITEMENT DU MODELE
  136. C
  137. IMODEL=KMODEL(ISOUS)
  138. C* SEGACT IMODEL
  139. MELE=NEFMOD
  140. IF (NEFMOD.EQ.22.or.nefmod.eq.259) goto 200
  141. IF (formod(1).ne.'MECANIQUE') goto 200
  142. ISOUSS=ISOUSS+1
  143. *
  144. IPMAIL=IMAMOD
  145. CONM =CONMOD
  146. C
  147. C CREATION DU TABLEAU INFOS
  148. C
  149. CALL IDENT(IPMAIL,CONM,IPCHE1,IPCHE2,INFOS,IRTD)
  150. IF (IRTD.EQ.0) GOTO 9990
  151. C
  152. C COQUE INTEGREE OU PAS ?
  153. NPINT=INFMOD(1)
  154. C_______________________________________________________________________
  155. C
  156. C INFORMATIONS SUR L'ELEMENT FINI
  157. C_______________________________________________________________________
  158. C
  159. * CALL ELQUOI(MELE,0,IRET1,IPINF,IMODEL)
  160. * IF (IERR.NE.0) THEN
  161. * SEGDES IMODEL,MMODEL
  162. * SEGSUP MCHELM
  163. * SEGDES MCHEL1
  164. * RETURN
  165. * ENDIF
  166. * INFO=IPINF
  167. MFR =INFELE(13)
  168. NSTRS =INFELE(16)
  169. NBPGAU=INFELE( 4)
  170. * MINTE =INFELE(11)
  171. MINTE=INFMOD(iret1+2)
  172. IPPORE=0
  173. IF(MFR.EQ.33)IPPORE=NBNNE(NUMGEO(MELE))
  174. IPMINT=MINTE
  175. SEGACT,MINTE
  176. * SEGSUP INFO
  177. C
  178. C RECOPIE DU MCHELM
  179. C
  180. ** write(6,*) 'isouss ',isouss
  181. ** write(6,*) 'imache ',imache(/1)
  182. IMACHE(ISOUSS)=IPMAIL
  183. CONCHE(ISOUSS)=CONMOD
  184. C
  185. INFCHE(ISOUSS,1)=0
  186. INFCHE(ISOUSS,2)=0
  187. INFCHE(ISOUSS,3)=NIFOUR
  188. INFCHE(ISOUSS,4)=MINTE
  189. INFCHE(ISOUSS,5)=0
  190. INFCHE(ISOUSS,6)=IRET1
  191. C
  192. C CREATION DU MCHAML
  193. C
  194. N2=1
  195. SEGINI MCHAML
  196. ICHAML(ISOUSS)=MCHAML
  197. NOMCHE(1)='SCAL'
  198. TYPCHE(1)='REAL*8'
  199.  
  200. C_______________________________________________________________________
  201. C
  202. C NOMS DE COMPOSANTES DE CONTRAINTES NECESSAIRES
  203. C_______________________________________________________________________
  204. C
  205. if(lnomid(4).ne.0) then
  206. nomid=lnomid(4)
  207. segact nomid
  208. mostrs=nomid
  209. nstr=lesobl(/2)
  210. nfac=lesfac(/2)
  211. lsupco=.false.
  212. else
  213. lsupco=.true.
  214. CALL IDCONT(IMODEL,IFOUR,MOSTRS,NSTR,NFAC)
  215. endif
  216. C
  217. C VERIFICATION DE LEUR PRESENCE
  218. C
  219. MOTYPE = MOTYR8
  220. CALL KOMCHA(IPCHE1,IPMAIL,CONM,MOSTRS,MOTYPE,1,INFOS,3,IVASTR)
  221. IF (IERR.NE.0) GOTO 9990
  222. *
  223. IF (ISUP1.EQ.1) CALL VALCHE (IVASTR,NSTR,IPMINT,IPPORE,
  224. & MOSTRS,MELE)
  225. C
  226. C RECHERCHE DES TAILLES DE MELVAL
  227. C
  228. N1EL=0
  229. N1PTEL=0
  230. MPTVAL=IVASTR
  231. DO 20 IO=1,NSTRS
  232. MELVAL=IVAL(IO)
  233. N1PTEL=MAX(N1PTEL,VELCHE(/1))
  234. N1EL =MAX(N1EL ,VELCHE(/2))
  235. 20 CONTINUE
  236. IF (N1PTEL.EQ.1.OR.NBPGAU.EQ.1) THEN
  237. N1PTEL=1
  238. ELSE
  239. *PVPVPV N1PTEL=NBPGAU
  240. ENDIF
  241. NBPTEL=N1PTEL
  242. NEL =N1EL
  243. C
  244. C CREATION DU MELVAL VMISES
  245. C
  246. N2PTEL=0
  247. N2EL=0
  248. SEGINI MELVAL
  249. IELVAL(1)=MELVAL
  250. IVAMIS =MELVAL
  251. *
  252. * ON TRAITE LES COQUES INTEGREES COMME LES MASSIFS
  253. *
  254. IF(NPINT.NE.0)THEN
  255. MFR1=1
  256. ELSE
  257. MFR1=MFR
  258. ENDIF
  259.  
  260. C_______________________________________________________________________
  261. C
  262. C TRAITEMENT DES CHAMPS DE CARACTERISTIQUES
  263. C_______________________________________________________________________
  264. *
  265. NBROBL=0
  266. NBRFAC=0
  267. MOCARA=0
  268. IVECT=0
  269. NOTYPE = MOTYR8
  270. *
  271. * EPAISSEUR ET ALFA DANS LE CAS DES COQUES
  272. *
  273. IF (MFR1.EQ.3.OR.MFR1.EQ.5.OR.MFR1.EQ.9) THEN
  274. NBROBL=1
  275. NBRFAC=1
  276. SEGINI NOMID
  277. MOCARA=NOMID
  278. LESOBL(1)='EPAI'
  279. LESFAC(1)='CALF'
  280. *
  281. * CARACTERISTIQUES POUR LES POUTRES
  282. *
  283. ELSE IF (MFR1.EQ.7 ) THEN
  284. IF(IFOUR.EQ.2) THEN
  285. NBROBL=4
  286. NBRFAC=3
  287. SEGINI NOMID
  288. MOCARA=NOMID
  289. LESOBL(1)='TORS'
  290. LESOBL(2)='INRY'
  291. LESOBL(3)='INRZ'
  292. LESOBL(4)='SECT'
  293. LESFAC(1)='DX '
  294. LESFAC(2)='DZ '
  295. LESFAC(3)='DY '
  296. ELSE
  297. NBROBL=2
  298. NBRFAC=1
  299. SEGINI NOMID
  300. MOCARA=NOMID
  301. LESOBL(1)='SECT'
  302. LESOBL(2)='INRZ'
  303. LESFAC(1)='DY '
  304. ENDIF
  305. *
  306. * CARACTERISTIQUES POUR LES TUYAUX
  307. *
  308. ELSE IF (MFR1.EQ.13) THEN
  309. NBROBL=2
  310. NBRFAC=9
  311. SEGINI NOMID
  312. MOCARA=NOMID
  313. LESOBL(1)='EPAI'
  314. LESOBL(2)='RAYO'
  315. LESFAC(1)='RACO'
  316. LESFAC(2)='PRES'
  317. LESFAC(3)='CISA'
  318. LESFAC(4)='CFFX'
  319. LESFAC(5)='CFMX'
  320. LESFAC(6)='CFMY'
  321. LESFAC(7)='CFMZ'
  322. LESFAC(8)='CFPR'
  323. c LESFAC(9)='VECT'
  324. c IVECT=1
  325. c BP, 2016-10-17: pour le calcul de VMISES, on se fiche de l'orientation
  326. c du repere local car les composantes sont deja toutes locales !
  327. c Afin d'utiliser tuycar, on met des valeurs de VX VY et VZ bidons
  328. *
  329. NBTYPE=11
  330. SEGINI NOTYPE
  331. TYPE(1)='REAL*8'
  332. TYPE(2)='REAL*8'
  333. TYPE(3)='REAL*8'
  334. TYPE(4)='REAL*8'
  335. TYPE(5)='REAL*8'
  336. TYPE(6)='REAL*8'
  337. TYPE(7)='REAL*8'
  338. TYPE(8)='REAL*8'
  339. TYPE(9)='REAL*8'
  340. TYPE(10)='REAL*8'
  341. TYPE(11)='POINTEURPOINT '
  342. ENDIF
  343. *
  344. NCARA=NBROBL
  345. NCARF=NBRFAC
  346. NCARR=NCARA+NCARF
  347. MOTYPE = NOTYPE
  348. IF (MOCARA.NE.0) THEN
  349. IF (IPCHE2.NE.0) THEN
  350. CALL KOMCHA(IPCHE2,IPMAIL,CONM,MOCARA,MOTYPE,
  351. 1 1,INFOS,3,IVACAR)
  352. ELSE
  353. MOTERR(1:8)='CARACTER'
  354. MOTERR(9:12)=NOMTP(MELE)
  355. MOTERR(13:20)='VMIS'
  356. CALL ERREUR(145)
  357. ENDIF
  358. IF (IERR.NE.0) GOTO 9990
  359. *
  360. IF (ISUP2.EQ.1) THEN
  361. CALL VALCHE(IVACAR,NCARR,IPMINT,IPPORE,MOCARA,MELE)
  362. IF(IERR.NE.0)THEN
  363. ISUP2=0
  364. GOTO 9990
  365. ENDIF
  366. ENDIF
  367. ENDIF
  368. IF (MOTYPE.NE.MOTYR8) SEGSUP,NOTYPE
  369. *
  370. C_______________________________________________________________________
  371. C
  372. C BRANCHEMENT SUIVANT LA FORMULATION
  373. C_______________________________________________________________________
  374. C
  375. C MASSI COQUE COQEP POUT CIST THER TUYA LISP
  376. GOTO (30,22,60,22,80,22,100,22,70,22,22,22,120,22,90,22,22,
  377. C INCO PORE
  378. . 22,22,22,22,22,22,22,22,22,22,22,22,22,30,22,30),MFR1
  379. C == FORMULATION HHO == IDENTIQUE au CAS MASSIF ========================
  380. IF (MFR1.EQ.HHO_MFR_ELEMENT) GOTO 30
  381. c cas XFEM : identique au cas massif
  382. IF (MFR1.EQ.63) goto 30
  383. C
  384. 22 CONTINUE
  385. MOTERR(1:8)=NOMFR(MFR1/2+1)
  386. if (isouc.eq.1) then
  387. call SOUCIS(193)
  388. else
  389. call ERREUR(193)
  390. endif
  391. GOTO 150
  392. GOTO 9990
  393.  
  394. C_______________________________________________________________________
  395. C
  396. C FORMULATION MASSIVE
  397. C_______________________________________________________________________
  398. C
  399. 30 CONTINUE
  400. do IB=1,NEL
  401. do IGAU=1,NBPTEL
  402. MPTVAL=IVASTR
  403. DO ICOMP=1,NSTRS
  404. MELVAL=IVAL(ICOMP)
  405. IGMN=MIN(IGAU,VELCHE(/1))
  406. IBMN=MIN(IB ,VELCHE(/2))
  407. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  408. ENDDO
  409. VONMIS=SIG(1)*SIG(1)+SIG(2)*SIG(2)+SIG(3)*SIG(3)-SIG(1)*SIG(2)
  410. + -SIG(1)*SIG(3)-SIG(2)*SIG(3)
  411. C
  412. IF (IDIM.NE.1) THEN
  413. DO IE=4,NSTRS
  414. VONMIS=VONMIS+3.D0*(SIG(IE)*SIG(IE))
  415. ENDDO
  416. ENDIF
  417. C
  418. XXXX=SQRT(ABS(VONMIS))
  419. MELVAL=IVAMIS
  420. VELCHE(IGAU,IB)=XXXX
  421. enddo
  422. enddo
  423. GOTO 150
  424.  
  425. C_______________________________________________________________________
  426. C
  427. C FORMULATION COQUE MINCE
  428. C_______________________________________________________________________
  429. C
  430. 60 CONTINUE
  431. C
  432. DO IB=1,NEL
  433. DO IGAU=1,NBPTEL
  434. MPTVAL=IVASTR
  435. DO 62 ICOMP=1,NSTRS
  436. MELVAL=IVAL(ICOMP)
  437. IGMN=MIN(IGAU,VELCHE(/1))
  438. IBMN=MIN(IB ,VELCHE(/2))
  439. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  440. 62 CONTINUE
  441. C
  442. MPTVAL=IVACAR
  443. MELVAL=IVAL(1)
  444. IGMN=MIN(IGAU,VELCHE(/1))
  445. IBMN=MIN(IB ,VELCHE(/2))
  446. EPAIST=VELCHE(IGMN,IBMN)
  447. *
  448. CALL EFCONT(EPAIST,0.D0,NSTRS,SIG)
  449. MPTVAL=IVACAR
  450. MELVAL=IVAL(2)
  451. IF (MELVAL.NE.0) THEN
  452. IGMN=MIN(IGAU,VELCHE(/1))
  453. IBMN=MIN(IB ,VELCHE(/2))
  454. ALPHA=VELCHE(IGMN,IBMN)
  455. ELSE
  456. ALPHA=2./3.
  457. ENDIF
  458. C
  459. IF(IFOUR.GT.0) THEN
  460. VONMIS=SQRT(ABS(SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)+
  461. + 3.D0*SIG(3)*SIG(3)+ALPHA*(SIG(4)*SIG(4)+SIG(5)*SIG(5)-
  462. + SIG(4)*SIG(5)+3.D0*SIG(6)*SIG(6))))
  463. ELSE IF(IFOUR.LE.0) THEN
  464. VONMIS= SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)+
  465. + ALPHA*(SIG(3)*SIG(3)+SIG(4)*SIG(4)-SIG(3)*SIG(4))
  466. VONMIS=SQRT(VONMIS)
  467. ENDIF
  468. C
  469. MELVAL=IVAMIS
  470. VELCHE(IGAU,IB)=VONMIS
  471. enddo
  472. enddo
  473. GOTO 150
  474.  
  475. C_______________________________________________________________________
  476. C
  477. C FORMULATION COQUE AVEC CISAILLEMENT TRANSVERSE (COQ4)
  478. C_______________________________________________________________________
  479. C
  480. 70 CONTINUE
  481. C
  482. DO IB=1,NEL
  483. DO IGAU=1,NBPTEL
  484. MPTVAL=IVASTR
  485. DO 72 ICOMP=1,NSTRS
  486. MELVAL=IVAL(ICOMP)
  487. IGMN=MIN(IGAU,VELCHE(/1))
  488. IBMN=MIN(IB ,VELCHE(/2))
  489. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  490. 72 CONTINUE
  491. C
  492. MPTVAL=IVACAR
  493. MELVAL=IVAL(1)
  494. IGMN=MIN(IGAU,VELCHE(/1))
  495. IBMN=MIN(IB ,VELCHE(/2))
  496. EPAIST=VELCHE(IGMN,IBMN)
  497. *
  498. CALL EFCONT(EPAIST,0.D0,NSTRS,SIG)
  499. MPTVAL=IVACAR
  500. MELVAL=IVAL(2)
  501. IF (MELVAL.NE.0) THEN
  502. IGMN=MIN(IGAU,VELCHE(/1))
  503. IBMN=MIN(IB ,VELCHE(/2))
  504. ALPHA=VELCHE(IGMN,IBMN)
  505. ELSE
  506. ALPHA=0.666666666666666666D0
  507. ENDIF
  508. C
  509. VONMIS=SQRT(ABS(SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)+
  510. + 3.D0*SIG(7)*SIG(7)+3.D0*SIG(8)*SIG(8)+
  511. + 3.D0*SIG(3)*SIG(3)+ALPHA*(SIG(4)*SIG(4)+SIG(5)*SIG(5)-
  512. + SIG(4)*SIG(5)+3.D0*SIG(6)*SIG(6))))
  513. C
  514. MELVAL=IVAMIS
  515. VELCHE(IGAU,IB)=VONMIS
  516. enddo
  517. enddo
  518. GOTO 150
  519.  
  520. C_______________________________________________________________________
  521. C
  522. C FORMULATION COQUE EPAISSE
  523. C_______________________________________________________________________
  524. C
  525. 80 CONTINUE
  526. DO IB=1,NEL
  527. DO IGAU=1,NBPTEL
  528. MPTVAL=IVASTR
  529. DO 85 ICOMP=1,NSTRS
  530. MELVAL=IVAL(ICOMP)
  531. IGMN=MIN(IGAU,VELCHE(/1))
  532. IBMN=MIN(IB ,VELCHE(/2))
  533. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  534. 85 CONTINUE
  535. VONMIS=SIG(1)*SIG(1)+SIG(2)*SIG(2)-SIG(1)*SIG(2)
  536. 1 + 3.D0*(SIG(3)*SIG(3)+SIG(4)*SIG(4)+SIG(5)*SIG(5))
  537. C
  538. XXXX=SQRT(ABS(VONMIS))
  539. MELVAL=IVAMIS
  540. VELCHE(IGAU,IB)=XXXX
  541. enddo
  542. enddo
  543. GOTO 150
  544.  
  545. C_______________________________________________________________________
  546. C
  547. C FORMULATION LINESPRING
  548. C_______________________________________________________________________
  549. C
  550. 90 CONTINUE
  551. DO IB=1,NEL
  552. DO IGAU=1,NBPTEL
  553. MPTVAL=IVASTR
  554. DO 95 ICOMP=1,NSTRS
  555. MELVAL=IVAL(ICOMP)
  556. IGMN=MIN(IGAU,VELCHE(/1))
  557. IBMN=MIN(IB ,VELCHE(/2))
  558. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  559. 95 CONTINUE
  560. VONMIS=SQRT(ABS(SIG(1)*SIG(1)+ALPH1*SIG(4)*SIG(4)))
  561. C
  562. MELVAL=IVAMIS
  563. VELCHE(IGAU,IB)=VONMIS
  564. enddo
  565. enddo
  566. GOTO 150
  567.  
  568. C_______________________________________________________________________
  569. C
  570. C FORMULATION POUTRE 2D ET 3D
  571. C_______________________________________________________________________
  572. C
  573. 100 CONTINUE
  574.  
  575. C____ FORMULATION POUTRE 3D = idem TUYAU 3D --> GOTO 120 _______________
  576. IF (IFOUR.EQ.2) GOTO 120
  577. C
  578. C____ FORMULATION POUTRE 2D ____________________________________________
  579. C
  580. c -- boucle sur les pt de Gauss --
  581. DO IB=1,NEL
  582. DO IGAU=1,NBPTEL
  583.  
  584. c CONTRAINTES --> SIG() : EFFX,EFFY,MOMZ
  585. MPTVAL=IVASTR
  586. DO 102 ICOMP=1,NSTRS
  587. MELVAL=IVAL(ICOMP)
  588. IGMN=MIN(IGAU,VELCHE(/1))
  589. IBMN=MIN(IB ,VELCHE(/2))
  590. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  591. 102 CONTINUE
  592. C
  593. c CARACTERISTIQUES --> CARAC() : SECT, INRZ, (DZ)
  594. MPTVAL=IVACAR
  595. DO 103 ICOMP=1,NCARR
  596. MELVAL=IVAL(ICOMP)
  597. IF (MELVAL.NE.0) THEN
  598. IGMN=MIN(IGAU,VELCHE(/1))
  599. IBMN=MIN(IB ,VELCHE(/2))
  600. CARAC(ICOMP)=VELCHE(IGMN,IBMN)
  601. ELSE
  602. CARAC(ICOMP)=0.D0
  603. ENDIF
  604. 103 CONTINUE
  605. C
  606. DIV(1)=1.D0/CARAC(1)
  607. DIV(3)=CARAC(3)/CARAC(2)
  608. C
  609. VONMIS=SQRT(ABS((SIG(1)*DIV(1))**2+(SIG(3)*DIV(3))**2))
  610. C
  611. MELVAL=IVAMIS
  612. VELCHE(IGAU,IB)=VONMIS
  613. C
  614. enddo
  615. enddo
  616. GOTO 150
  617.  
  618. C_______________________________________________________________________
  619. C
  620. C FORMULATION POUTRE 3D et TUYAU 3D
  621. C_______________________________________________________________________
  622. C
  623. 120 CONTINUE
  624.  
  625. c initialisations bidons
  626. DIV(1)=0.D0
  627. DIV(2)=0.D0
  628. DIV(3)=0.D0
  629. c vecteur bidon
  630. VX = 1.D0
  631. VY = 1.D0
  632. VZ = 1.D0
  633.  
  634. c -- boucle sur les pt de Gauss --
  635. DO IB=1,NEL
  636. DO IGAU=1,NBPTEL
  637.  
  638. c CONTRAINTES --> SIG()
  639. MPTVAL=IVASTR
  640. DO 122 ICOMP=1,NSTRS
  641. MELVAL=IVAL(ICOMP)
  642. IGMN=MIN(IGAU,VELCHE(/1))
  643. IBMN=MIN(IB ,VELCHE(/2))
  644. SIG(ICOMP)=VELCHE(IGMN,IBMN)
  645. 122 CONTINUE
  646.  
  647. c CARACTERISTIQUES --> CARAC()
  648. MPTVAL=IVACAR
  649. c NCARR1=NCARR
  650. c IF(IVECT.EQ.1) NCARR1=NCARR-1
  651. c DO 123 ICOMP=1,NCARR1
  652. DO 123 ICOMP=1,NCARR
  653. MELVAL=IVAL(ICOMP)
  654. IF (MELVAL.NE.0) THEN
  655. IGMN=MIN(IGAU,VELCHE(/1))
  656. IBMN=MIN(IB ,VELCHE(/2))
  657. CARAC(ICOMP)=VELCHE(IGMN,IBMN)
  658. ELSE
  659. CARAC(ICOMP)=0.D0
  660. ENDIF
  661. 123 CONTINUE
  662. C
  663. c C CAS OU ON A LU LE MOT VECTEUR
  664. c C
  665. c IF (IVECT.EQ.1) THEN
  666. c IF (IVAL(NCARR).NE.0) THEN
  667. c MELVAL=IVAL(NCARR)
  668. c IBMN=MIN(IB,IELCHE(/2))
  669. c IP=IELCHE(1,IBMN)
  670. c IREF=(IP-1)*(IDIM+1)
  671. c DO 124 IC=1,IDIM
  672. c CARAC(NCARR+IC-1)=XCOOR(IREF+IC)
  673. c 124 CONTINUE
  674. c ELSE
  675. c DO 125 IC=1,IDIM
  676. c CARAC(NCARR+IC-1)=0.D0
  677. c 125 CONTINUE
  678. c ENDIF
  679. c ENDIF
  680. C
  681. SIGPRE=0.D0
  682. IF(MFR1.EQ.7) THEN
  683. DIV(1)=1.D0/CARAC(4)
  684. c DIV(2)=1.D0
  685. c DIV(3)=1.D0
  686. DIV(4)=CARAC(5)/CARAC(1)
  687. DIV(5)=CARAC(6)/CARAC(2)
  688. DIV(6)=CARAC(7)/CARAC(3)
  689. ELSE IF(MFR1.EQ.13) THEN
  690. EPAIS=CARAC(1)
  691. REXT =CARAC(2)
  692. RMOY =REXT-EPAIS*0.5D0
  693. RACO =CARAC(3)
  694. PRES =CARAC(4)
  695. CISA =CARAC(5)
  696. C
  697. GAM=1.D0
  698. IF(RACO.EQ.0.D0) GO TO 126
  699. XLAM=RMOY*RMOY/EPAIS/RACO
  700. GAM=0.8888888888888889D0*(XLAM)**0.6666666666666667D0
  701. IF(GAM.LT.1.D0) GAM=1.D0
  702. 126 CONTINUE
  703. C
  704. C NB 23/09/98
  705. C VALEURS PAR DEFAUT POUR LES CFFX CFMX CFMY
  706. C CFMZ CFPR ( COEFFICIENTS POUR CALCULER LES
  707. C CONTRAINTES DE MEMBRANE, TORSION, FLEXIONS
  708. C DANS LE PLAN, HORS PLAN ET CIRCONFERENTIELLE
  709. C DUE A LA PRESSION )
  710. C
  711. c DIV(1)=1.D0
  712. c DIV(2)=1.D0
  713. DIV(3)=1.D0
  714. DIV(4)=R33
  715. DIV(5)=PI4*GAM
  716. DIV(6)=DIV(5)
  717. DIV(7)=0.D0
  718. C
  719. DO 127 ICOMP=6,10
  720. MELVAL=IVAL(ICOMP)
  721. IF (MELVAL.NE.0) DIV(ICOMP-3)=CARAC(ICOMP)
  722. 127 CONTINUE
  723. C
  724. C NB 23/09/98
  725. C TRANSFERT DE CFFX DANS DIV(1) ET REMISE A
  726. C 1.D0 DE DIV(3)
  727. DIV(1)=DIV(3)
  728. c DIV(3)=1.D0
  729. C
  730. C RE-ARRANGEMENT DE CARAC POUR TUYCAR
  731. C
  732. CISA=CARAC(5)
  733. c CARAC(4)=CARAC(11)
  734. c CARAC(5)=CARAC(12)
  735. c CARAC(6)=CARAC(13)
  736. c VX=CARAC(4)
  737. c VY=CARAC(5)
  738. c VZ=CARAC(6)
  739. CALL TUYCAR(CARAC,CISA,VX,VY,VZ,KERRE,1)
  740. DIV(1)=DIV(1)/CARAC(4)
  741. DIV(4)=DIV(4)*RMOY/CARAC(1)
  742. DIV(5)=DIV(5)*RMOY/CARAC(2)
  743. DIV(6)=DIV(6)*RMOY/CARAC(3)
  744. SIGPRE=DIV(7)*RMOY*PRES/EPAIS
  745. ENDIF
  746. C
  747. VONMIS=SQRT(ABS((SIG(1)*DIV(1))**2+(SIG(4)*DIV(4))**2+
  748. . (SIG(5)*DIV(5))**2+(SIG(6)*DIV(6))**2+
  749. . SIGPRE**2 ))
  750. C
  751. MELVAL=IVAMIS
  752. VELCHE(IGAU,IB)=VONMIS
  753. C
  754. enddo
  755. enddo
  756. GOTO 150
  757. C
  758. C_______________________________________________________________________
  759. C
  760. C AUTRE FORMULATION
  761. C_______________________________________________________________________
  762. C
  763. 150 CONTINUE
  764. C
  765. C DESACTIVATION DES SEGMENTS PROPRES A LA ZONE GEOMETRIQUE ISOUS
  766. C
  767. IF(ISUP1.EQ.1)THEN
  768. CALL DTMVAL(IVASTR,3)
  769. ELSE
  770. CALL DTMVAL(IVASTR,1)
  771. ENDIF
  772. *
  773. MELVAL=IVAMIS
  774. *
  775. IF(ISUP2.EQ.1)THEN
  776. CALL DTMVAL(IVACAR,3)
  777. ELSE
  778. CALL DTMVAL(IVACAR,1)
  779. ENDIF
  780. *
  781. NOMID =MOSTRS
  782. if(lsupco)SEGSUP NOMID
  783. NOMID =MOCARA
  784. IF (MOCARA.NE.0) SEGSUP NOMID
  785. *
  786. 201 CONTINUE
  787. C
  788. 200 CONTINUE
  789.  
  790. IRET = 1
  791. IPCHE3 = MCHELM
  792. GOTO 888
  793. *
  794. * ERREUR DANS UNE SOUS ZONE, DESACTIVATION ET RETOUR
  795. *
  796. 9990 CONTINUE
  797. *
  798. IF(ISUP1.EQ.1)THEN
  799. CALL DTMVAL(IVASTR,3)
  800. ELSE
  801. CALL DTMVAL(IVASTR,1)
  802. ENDIF
  803. *
  804. IF(ISUP2.EQ.1)THEN
  805. CALL DTMVAL(IVACAR,3)
  806. ELSE
  807. CALL DTMVAL(IVACAR,1)
  808. ENDIF
  809. *
  810. NOMID =MOSTRS
  811. if(lsupco)SEGSUP NOMID
  812. NOMID =MOCARA
  813. IF (MOCARA.NE.0) SEGSUP NOMID
  814. *
  815. IF (IVAMIS.NE.0) THEN
  816. MELVAL=IVAMIS
  817. SEGSUP MELVAL
  818. ENDIF
  819. *
  820. SEGSUP MCHAML
  821. SEGSUP MCHELM
  822.  
  823. IRET = 0
  824. IPCHE3 = 0
  825. *
  826. 888 CONTINUE
  827.  
  828. NOTYPE = MOTYR8
  829. SEGSUP,NOTYPE
  830.  
  831. END
  832.  
  833.  
  834.  
  835.  
  836.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales