Télécharger ktange.eso

Retour à la liste

Numérotation des lignes :

ktange
  1. C KTANGE SOURCE PV 20/04/02 21:15:26 10567
  2.  
  3. SUBROUTINE KTANGE
  4.  
  5. *_______________________________________________________________________
  6. *
  7. * Operateur matrice de rigidite tangente KTAN
  8. *
  9. * RI1 = 'KTAN' MOD1 SI1 VA1 CA1
  10. * ('PREC' FLO1) ('DT ' FLO2 ) ('SYME') ;
  11. *
  12. * MOD1 MMODEL Modele de calcul
  13. * SI1 MCHAML Champ par element de contraintes
  14. * VA1 MCHAML Champ par element de variables internes
  15. * CA1 MCHAML Champ par element de caracteristiques
  16. * (materielles et/ou geometriques)
  17. * FLO1 FLOTTANT (par defaut 1.D-3)
  18. * précision avec laquelle on cherche si un état de
  19. * contraintes est plastique ou non
  20. * FLO2 FLOTTANT nécessaire que pour les modèles visqueux
  21. * pas de temps servant à calculer la matrice tangente
  22. *
  23. *_______________________________________________________________________
  24. *
  25. * Calcul de la matrice de rigidite tangente par perturbation
  26. *
  27. * RI1 = 'KTAN' 'PERT' MOD1 CHE1 CHE2
  28. * ('C1' FLO1) ('C2' FLO2) ('SYME') ;
  29. *
  30. * MOD1 MMODEL Modele de calcul
  31. * CHE1 MCHAML Champ par element a t pour COMP
  32. * CHE2 MCHAML Champ par element a t+dt
  33. * (champs pour COMP et les contraintes)
  34. * FLO1 FLOTTANT positif (par defaut 1.D-3)
  35. * coefficient de perturbation de l increment de
  36. * deformation
  37. * FLO2 FLOTTANT positif (par defaut FLO1/100.)
  38. * perturbation minimale
  39. *
  40. *_______________________________________________________________________
  41. *
  42. IMPLICIT INTEGER(I-N)
  43. IMPLICIT REAL*8(A-H,O-Z)
  44. *
  45. -INC PPARAM
  46. -INC CCOPTIO
  47. -INC SMCOORD
  48. *
  49. LOGICAL BC2
  50. CHARACTER*4 DEUXMOT(3),PERTURB(4)
  51. *
  52. DATA DEUXMOT / 'PREC','DT ','SYME' /
  53. DATA PERTURB / 'PERT','C1 ','C2 ','SYME' /
  54. *
  55. CALL LIRMOT(PERTURB,1,IPLA,0)
  56. IF (IERR.NE.0) RETURN
  57. *
  58. IPRIGI=0
  59. segact mcoord
  60. *
  61. ************************************************************************
  62. * MATRICE TANGENTE ANALYTIQUE SI POSSIBLE, SINON ELASTIQUE
  63. ************************************************************************
  64. IF (IPLA.EQ.0) THEN
  65. *
  66. * Lecture d'un modele
  67. *
  68. CALL LIROBJ('MMODEL',IPMODL,1,IRET)
  69. CALL ACTOBJ('MMODEL',IPMODL,1)
  70. IF (IERR.NE.0) RETURN
  71. *
  72. * Lecture du MCHAML de CONTRAINTES
  73. *
  74. CALL LIROBJ('MCHAML',IPIN,1,IRET)
  75. CALL ACTOBJ('MCHAML',IPIN,1)
  76. IF (IERR.NE.0) RETURN
  77. CALL REDUAF(IPIN,IPMODL,IPCHE1,0,IR,KER)
  78. IF(IR .NE. 1) CALL ERREUR(KER)
  79. IF(IERR .NE. 0) RETURN
  80. *
  81. * Lecture du MCHAML de VARIABLES INTERNES
  82. *
  83. CALL LIROBJ('MCHAML',IPIN,1,IRET)
  84. CALL ACTOBJ('MCHAML',IPIN,1)
  85. IF (IERR.NE.0) RETURN
  86. CALL REDUAF(IPIN,IPMODL,IPCHE2,0,IR,KER)
  87. IF(IR .NE. 1) CALL ERREUR(KER)
  88. IF(IERR .NE. 0) RETURN
  89. *
  90. * Lecture du MCHAML de CARACTERISTIQUES
  91. *
  92. CALL LIROBJ('MCHAML',IPIN,1,IRET)
  93. CALL ACTOBJ('MCHAML',IPIN,1)
  94. IF (IERR.NE.0) RETURN
  95. CALL REDUAF(IPIN,IPMODL,IPCHE3,0,IR,KER)
  96. IF(IR .NE. 1) CALL ERREUR(KER)
  97. IF(IERR .NE. 0) RETURN
  98. *
  99. * On lit un ou deux flottants xprec et dt
  100. *
  101. XPREC = 1.D-3
  102. DTPS = 0.D0
  103. IKTSYM = 0
  104. 1 CONTINUE
  105. CALL LIRMOT(DEUXMOT,3,IVAL,0)
  106. IF (IERR.NE.0) RETURN
  107. IF (IVAL .EQ. 1) THEN
  108. CALL LIRREE(XPREC,1,IRET)
  109. IF (IERR.NE.0) RETURN
  110. GOTO 1
  111. ELSE IF (IVAL .EQ. 2) THEN
  112. CALL LIRREE(DTPS,1,IRET)
  113. IF (IERR.NE.0) RETURN
  114. GOTO 1
  115. ELSE IF (IVAL .EQ. 3) THEN
  116. IKTSYM = 1
  117. GOTO 1
  118. ENDIF
  119. *
  120. * Calcul de la matrice tangente
  121. *
  122. CALL KTANGA(IPMODL,IPCHE1,IPCHE2,IPCHE3,XPREC,DTPS,IKTSYM,
  123. & IPRIGI)
  124. *
  125. ************************************************************************
  126. * MATRICE DE RAIDEUR TANGENTE PAR PERTURBATION
  127. ************************************************************************
  128. * Appel a 'KTAN' 'PERT'
  129. ELSE IF (IPLA.EQ.1) THEN
  130. *
  131. * Lecture d'un modele
  132. *
  133. CALL LIROBJ('MMODEL',IPMODL,1,IRET)
  134. CALL ACTOBJ('MMODEL',IPMODL,1)
  135. IF (IERR.NE.0) RETURN
  136. *
  137. * Lecture du MCHAML initial
  138. *
  139. CALL LIROBJ('MCHAML',IPIN,1,IRET)
  140. IF (IERR.NE.0) RETURN
  141. CALL REDUAF(IPIN,IPMODL,IPCHE1,0,IR,KER)
  142. IF(IR .NE. 1) CALL ERREUR(KER)
  143. IF(IERR .NE. 0) RETURN
  144. *
  145. * Lecture du MCHAML final
  146. *
  147. CALL LIROBJ('MCHAML',IPIN,1,IRET)
  148. CALL ACTOBJ('MCHAML',IPIN,1)
  149. IF (IERR.NE.0) RETURN
  150. CALL REDUAF(IPIN,IPMODL,IPCHE2,0,IR,KER)
  151. IF(IR .NE. 1) CALL ERREUR(KER)
  152. IF(IERR .NE. 0) RETURN
  153. *
  154. * On lit un ou deux flottants CO1 et CO2
  155. * par defaut CO1 = 1.D-3 et CO2 = CO1/100.
  156. *
  157. CO1 = 1.D-3
  158. BC2 = .TRUE.
  159. IKTSYM = 0
  160. 100 CONTINUE
  161. CALL LIRMOT(PERTURB(2),3,IVAL,0)
  162. IF (IERR.NE.0) RETURN
  163. IF (IVAL .EQ. 1) THEN
  164. CALL LIRREE(CO1,1,IRET)
  165. IF (IERR.NE.0) RETURN
  166. GOTO 100
  167. ELSE IF (IVAL .EQ. 2) THEN
  168. CALL LIRREE(CO2,1,IRET)
  169. IF (IERR.NE.0) RETURN
  170. BC2 = .FALSE.
  171. GOTO 100
  172. ELSE IF (IVAL .EQ. 3) THEN
  173. IKTSYM = 1
  174. GOTO 100
  175. ENDIF
  176. *
  177. * Verification des coefficients de perturbation C1 et C2
  178. *
  179. IF (CO1.LE.0.) THEN
  180. CO1 = 1.D-3
  181. WRITE (IOIMP,*) 'Valeur de C1 negative ==> ',
  182. & 'valeur par defaut (1.D-3) utilisee'
  183. ENDIF
  184. IF (CO2.LE.0.) THEN
  185. BC2 = .TRUE.
  186. WRITE (IOIMP,*) 'Valeur de C2 negative ==> ',
  187. & 'valeur par defaut (C1/100.) utilisee'
  188. ENDIF
  189. IF (BC2) CO2 = CO1/1.D2
  190. *
  191. * Calcul de la matrice par perturbation
  192. *
  193. CALL KTAPER(IPMODL,IPCHE1,IPCHE2,CO1,CO2,IKTSYM, IPRIGI)
  194. *
  195. ENDIF
  196. *
  197. ************************************************************************
  198. * Ecriture de la RIGIDITE
  199. ************************************************************************
  200. IF (IPRIGI.GT.0) CALL ECROBJ('RIGIDITE',IPRIGI)
  201.  
  202. END
  203.  
  204.  
  205.  
  206.  

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