Télécharger takm_moy.procedur

Retour à la liste

Numérotation des lignes :

  1. * TAKM_MOY PROCEDUR FANDEUR 14/10/10 21:15:24 8178
  2. *
  3. debproc TAKM_MOY cycle*'LISTREEL' npass*'LISTENTI' model*'TABLE';
  4. *
  5. * verification elementaire
  6. *
  7. lok=vrai;
  8. nbcl='DIME' cycle;
  9. 'SI' (('DIME' npass) 'NEG' nbcl);
  10. lok=faux;
  11. 'MESS' 'cycle et pas n"ont pas la meme longueur';
  12. 'FINSI';
  13. 'SI' (lok 'ET' ('EXISTE' model 'EELA')); EELA=model.'EELA';
  14. 'SINON'; lok=faux; 'MESS' 'EELA n"est pas dans model';
  15. 'FINSI';
  16. 'SI' (lok 'ET' ('EXISTE' model 'INRY')); INRY=model.'INRY';
  17. 'SINON'; lok=faux; 'MESS' 'INRY n"est pas dans model';
  18. 'FINSI';
  19. *
  20. 'SI' (lok 'ET' ('EXISTE' model 'TRAC')); TTRAC=model.'TRAC';
  21. 'SINON'; lok=faux; 'MESS' 'TRAC n"est pas dans model';
  22. 'FINSI';
  23. 'SI' (lok 'ET' ('EXISTE' model 'SFDP')); SFDP=model.'SFDP';
  24. 'SINON'; lok=faux; 'MESS' 'SFDP n"est pas dans model';
  25. 'FINSI';
  26. 'SI' (lok 'ET' ('EXISTE' model 'SFDN')); SFDN=model.'SFDN';
  27. 'SINON'; SFDN=SFDP; 'MESS' 'SFDN est pris egal a SFDP';
  28. 'FINSI';
  29. 'SI' (lok 'ET' ('EXISTE' model 'PINP')); PINP=model.'PINP';
  30. 'SINON'; lok=faux; 'MESS' 'PINP n"est pas dans model';
  31. 'FINSI';
  32. 'SI' (lok 'ET' ('EXISTE' model 'PINN')); PINN=model.'PINN';
  33. 'SINON'; PINN=(-1)*PINP; 'MESS' 'PINN est pris egal a -PINP';
  34. 'FINSI';
  35. 'SI' (lok 'ET' ('EXISTE' model 'SRDP')); SRDP=model.'SRDP';
  36. 'SINON'; lok=faux; 'MESS' 'SRDP n"est pas dans model';
  37. 'FINSI';
  38. 'SI' (lok 'ET' ('EXISTE' model 'SRDN')); SRDN=model.'SRDN';
  39. 'SINON'; SRDN=SRDP; 'MESS' 'SRDN est pris egal a SRDP';
  40. 'FINSI';
  41. *
  42. 'SI' (lok 'ET' ('EXISTE' model 'ELEN')); ELEN=model.'ELEN';
  43. 'SINON'; ELEN='TIMO'; 'MESS' 'ELEN est pris egal a TIMO';
  44. 'FINSI';
  45. *
  46. 'SI' lok;
  47. *
  48. * maillage de 1 element
  49. *
  50. p1=0 0 0; p2=1 0 0;d1=p1 d 1 p2;
  51. *
  52. * champs nuls
  53. *
  54. xx yy zz='COOR' d1;
  55. deplx='EXCO' (0*xx) 'SCAL' 'NOID' 'UX';
  56. deply='EXCO' (0*xx) 'SCAL' 'NOID' 'UY';
  57. rotax='EXCO' (0*xx) 'SCAL' 'NOID' 'RX';
  58. rotaz='EXCO' (0*xx) 'SCAL' 'NOID' 'RZ';
  59. chnul=deplx + deply + rotax + rotaz;
  60. *
  61. * modele
  62. *
  63. mo= 'MODE' d1 mecanique elastique plastique takemo_momy ELEN;
  64. ma= 'MATE' mo 'YOUN' EELA 'NU' .2 'TRAC' TTRAC 'SFDP' SFDP 'SFDN' SFDN
  65. 'PINP' PINP 'PINN' PINN 'SRDP' SRDP 'SRDN' SRDN;
  66. ca= 'CARA' mo 'INRY' INRY 'SECT' 1. 'INRZ' 1. 'TORS' 1.;
  67. mc=ma et ca;
  68. *
  69. * initialisation
  70. *
  71. cin=0.; ccour=prog 0.; mmoy=prog 0.;
  72. var0=zero mo 'VARINTER';
  73. sig0=zero mo 'CONTRAIN';
  74. *
  75. * loop sur les branches;
  76. *
  77. nbran=0; x1x=prog 0. 1.;
  78. 'REPETER' lab1 nbcl;
  79. nbran=nbran+1;
  80. *
  81. * chargement
  82. *
  83. cfin='EXTR' cycle nbran; npts='EXTR' npass nbran;
  84. y1y ='PROG' cin cfin; dx=1./npts; xxx='PROG' 0. pas dx 1.;
  85. yyy='IPOL' xxx x1x y1y; coury='ENLE' 1 yyy;
  86. *
  87. * increment elastique
  88. *
  89. dtx=(cfin-cin)/npts;
  90. rotay='EXCO' (dtx*xx) 'SCAL' 'NOID' 'RY';
  91. deplz='EXCO' (((-0.5)*dtx)*xx) 'SCAL' 'NOID' 'UZ';
  92. depy=chnul + rotay + deplz;
  93. esig=epsi mo mc depy;
  94. *
  95. * loop charge
  96. *
  97. j=0; momy='PROG';
  98. 'REPETER' lab2 npts;
  99. j=j+1;
  100. sig var xxxx='ECOU' mo sig0 var0 esig mc;
  101. *
  102. ssig='CHAN' 'CHPO' mo sig; momo='EXTR' ssig 'MOMY' p1;
  103. momy='INSE' momy j momo;
  104. *
  105. var0=var; sig0=sig;
  106. *
  107. 'FIN' lab2;
  108. *
  109. * fin loop
  110. *
  111. ccour=ccour 'ET' coury; mmoy=mmoy 'ET' momy;
  112. cin=cfin;
  113. 'MENAGE';
  114. 'FIN' lab1;
  115. 'FINSI';
  116. *
  117. titre 'modele plastique TAKEDA_MODIFIE';
  118. courbe=evol manu 'Courbure' ccour 'Moment' mmoy;
  119. *
  120. 'FINPROC' courbe;
  121.  
  122.  
  123.  

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