Télécharger vmispo.eso

Retour à la liste

Numérotation des lignes :

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

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