Télécharger epsi.eso

Retour à la liste

Numérotation des lignes :

epsi
  1. C EPSI SOURCE BP208322 20/12/18 21:15:01 10821
  2. SUBROUTINE EPSI
  3. *_______________________________________________________________________
  4. *
  5. * OPERATEUR DE CALCUL DES DEFORMATIONS
  6. *
  7. * Syntaxe :
  8. * -------
  9. * ESP = EPSI |('LINE') MODL1 (CAR1) (HOO1) CHP1 ;
  10. * | 'QUAD'
  11. * | 'I'
  12. * | 'II'
  13. * |'TRUE'
  14. * |'JAUM'
  15. * |'UTIL'
  16. *
  17. * OU
  18. *
  19. * ESP = EPSI MODL1 GRAD2 ( CAR1 ) | ('GEOM') | ;
  20. * | 'DEPL' |
  21. *
  22. * Input :
  23. * -----
  24. * LINE, QUAD... : mot cle indiquant que l'on veut les termes
  25. * quadratiques ou pas
  26. * MODL1 : modele de calcul, type MMODEL
  27. * type MMODEL --> IPMODL
  28. * CAR1 : champ par element de materiau (CARACTERISTIQUE)
  29. * type MCHAML --> IPCHE1
  30. * HOO1 : champ par element de Hooke
  31. * type MCHAML --> IPCHE2
  32. * CHP1 : chpoint de deplacement
  33. * type CHPOINT --> ICHP1
  34. * GEOM/DEPL : mot cle indiquant que GRAD2 est un gradient de
  35. * transformation/deplacement
  36. *
  37. * Output :
  38. * ------
  39. * ESP : champ par element de deformations
  40. * type MCHAML --> IPEPSI
  41. *-----------------------------------------------------------------------
  42.  
  43. IMPLICIT INTEGER(I-N)
  44. IMPLICIT REAL*8(A-H,O-Z)
  45.  
  46.  
  47. -INC PPARAM
  48. -INC CCOPTIO
  49. -INC SMCHAML
  50. -INC SMCOORD
  51.  
  52. PARAMETER(NDERI=7)
  53. CHARACTER*4 MODERI(NDERI)
  54. CHARACTER*4 MONOER(1)
  55. CHARACTER*4 MOGRAD(2)
  56.  
  57. DATA MODERI/'LINE','QUAD','I ','II ','TRUE','JAUM','UTIL'/
  58. c -> IDERI = 1 2 1 2 3 4 5
  59. DATA MONOER/'NOER'/
  60. DATA MOGRAD/'GEOM','DEPL'/
  61. c -> IMIL = 0 1
  62.  
  63. C-----------------------------------------------------------------------
  64.  
  65. segact mcoord
  66. kerr=0
  67. IPCHE1=0
  68. IPCHA1=0
  69. IPCHE2=0
  70. IPCHA2=0
  71. C
  72. C LECTURE DES MOT-CLE
  73. C
  74. IDERI=0
  75. INOER=0
  76. IGRAD=0
  77. IMIL=0
  78.  
  79. c option de calcul des deformations (par defaut lineaires)
  80. CALL LIRMOT(MODERI,NDERI,IDERI,0)
  81. IF(IDERI.EQ.0) IDERI=1
  82. IF(IDERI.GE.3) IDERI=IDERI-2
  83.  
  84. c 'NOER'
  85. CALL LIRMOT(MONOER,1,inoer,0)
  86.  
  87. c type de gradient fourni (GEOM par defaut / DEPL)
  88. CALL LIRMOT(MOGRAD,2,IGRAD,0)
  89. IF (IGRAD.EQ.2) IMIL=1
  90. IF (IERR.NE.0) GOTO 666
  91.  
  92. C
  93. C LECTURE DU MODELE
  94. C
  95. CALL LIROBJ('MMODEL ',IPMODL,1,IRT1)
  96. CALL ACTOBJ('MMODEL ',IPMODL,1)
  97. IF (IERR.NE.0) GOTO 666
  98.  
  99. C
  100. C ON LIT UN CHAMP/POINT -------------------------------------------
  101. C
  102. CALL LIROBJ('CHPOINT ',ICHP1,0,IRT1)
  103. IF (IRT1.EQ.1) THEN
  104.  
  105. CALL ACTOBJ('CHPOINT ',ICHP1,1)
  106. C
  107. C ON LIT UN 2eme CHAMP/POINT qui est le deplacement pour avoir la
  108. C configuratyion courante
  109. C
  110. ichp2=0
  111. CALL LIROBJ('CHPOINT ',ICHP2,0,IRT1)
  112. IF (IRT1 .NE. 0) CALL ACTOBJ('CHPOINT ',ICHP2,1)
  113. C
  114. C ON LIT UN 1 ER CHAMP/ELEMENT (FACULTATIF )
  115. C
  116. CALL LIROBJ('MCHAML ',IPCHA1,0,IRT1)
  117. IF (Ierr.NE.0) GOTO 666
  118. if (IRT1.ne.0) then
  119. CALL ACTOBJ('MCHAML ',IPCHA1,1)
  120. call reduaf(ipcha1,ipmodl,ipcha,0,iret,kerr)
  121. if (iret.ne.1) call erreur(kerr)
  122. if (ierr.ne.0) return
  123. ipcha1=ipcha
  124. endif
  125. C
  126. C ON LIT UN 2 IEME CHAMP/ELEMENT (FACULTATIF )
  127. C
  128. CALL LIROBJ('MCHAML ',IPCHA2,0,IRT2)
  129. IF (IERR.NE.0) GOTO 666
  130. if (IRT2.ne.0) then
  131. CALL ACTOBJ('MCHAML ',IPCHA2,1)
  132. call reduaf(ipcha2,ipmodl,ipcha,0,iret,kerr)
  133. if (iret.ne.1) call erreur(kerr)
  134. if (ierr.ne.0) return
  135. ipcha2=ipcha
  136. endif
  137. C
  138. IF(IPCHA1.NE.0.OR.IPCHA2.NE.0)THEN
  139. CALL RNGCHA(IPCHA1,IPCHA2,'CARACTERISTIQUES',
  140. & 'MATRICE DE HOOKE',IPCHE1,IPCHE2)
  141. IF(IERR.NE.0) GOTO 666
  142. IF (IPCHE2.EQ.0)THEN
  143. IMAT=1
  144. ELSE
  145. IMAT=2
  146. ENDIF
  147. ELSE
  148. IMAT=0
  149. IPCHE1=0
  150. IPCHE2=0
  151. ENDIF
  152. C
  153. C CALCUL DES DEFORMATIONS USUELLES
  154. C
  155. CALL EPSI1(IDERI,IPMODL,ICHP1,IPCHE1,IPCHE2,IMAT,
  156. & IPEPSI,IRET,ichp2,inoer,kerr)
  157. C
  158. C
  159. C PAS DE CHPOINT : GRADIENT GEOMETRIE OU DEPLACEMENT ? -------------
  160. C
  161. ELSE
  162. C
  163. C ON LIT UN CHAMP/ELEMENT DE GRADIENTS
  164. C
  165. CALL LIROBJ('MCHAML ',IPCHA1,1,IRT1)
  166. CALL ACTOBJ('MCHAML ',IPCHA1,1)
  167. IF (IERR.NE.0) GOTO 666
  168. C
  169. C ON LIT UN 2 IEME CHAMP/ELEMENT (CARACTERISTIQUES-FACULTATIF)
  170. C
  171. CALL LIROBJ('MCHAML',IPCHA2,0,IRT2)
  172. IF (IERR.NE.0) GOTO 666
  173. IF(IRT2 .NE. 0) CALL ACTOBJ('MCHAML ',IPCHA2,1)
  174. C
  175. IF (IPCHA1.NE.0.OR.IPCHA2.NE.0) THEN
  176. CALL RNGCHA(IPCHA1,IPCHA2,'GRADIENT',
  177. & 'CARACTERISTIQUES',IPCHE1,IPCHE2)
  178. C* Actuellement IPCHE2 n'est pas utilise. Seul IPCHE1 est verifie.
  179. C* IF (IPCHE1.EQ.0.OR.IPCHE2.EQ.0) THEN
  180. IF (IPCHE1.EQ.0) THEN
  181. MOTERR(1:8)='MCHAML'
  182. MOTERR(9:16)='GRADIENT'
  183. MOTERR(17:24)='CARACTERI'
  184. CALL ERREUR(141)
  185. ENDIF
  186. IF (IERR.NE.0) GOTO 666
  187. ENDIF
  188. C
  189. C CALCUL DES DEFORMATIONS LOGARITHMIQUES
  190. C
  191. CALL EPSLN1(IPMODL,IPCHE1,IPCHE2,IPEPSI,IMIL)
  192. IF (IERR.NE.0) GOTO 666
  193. IRET=1
  194. C
  195. ENDIF
  196. C
  197. C ECRITURE DU MCHAML DE DEFORMATIONS RESULTAT
  198. C
  199. IF (IRET.EQ.1.and.kerr.eq.0) THEN
  200. CALL ACTOBJ('MCHAML ',IPEPSI,1)
  201. call ecrOBJ('MCHAML ',IPEPSI)
  202. ENDIF
  203. if (kerr.ne.0) then
  204. call ecrent(kerr)
  205. call soucis(kerr)
  206. endif
  207. 666 CONTINUE
  208.  
  209. END
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  

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