Télécharger topoptim_13_Turbine_disk.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier topoptim_13_Turbine_disk.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. ************************************************************************
  6. ** Topology optimization of a 2D axisymmetric structure, a turbine disk
  7. ** with von Mises stress constraint, subjected to centrifugal forces
  8. ** (i.e., penalized density-dependent loading), as proposed by Yan et al.
  9. ** 2023 and using, in the present case, the Coniglio et al. 2018 approach.
  10. **
  11. ** Author:
  12. ** Guenhael Le Quilliec (LaMe - Polytech Tours)
  13. **
  14. ** Version:
  15. ** V1.0 2025/12/05
  16. ************************************************************************
  17.  
  18. * Plot results
  19. graph0 = FAUX ;
  20.  
  21. * Rotational speed [rad/s]
  22. omega0 = 5000.0 * 2.0 * pi / 60 ;
  23. * Pressure
  24. press0 = 100.0e6 ;
  25.  
  26. * General options
  27. OPTI 'DIME' 2 'MODE' 'AXIS' 'ELEM' 'QUA4' ;
  28.  
  29. * Number of elements
  30. nelr0 = 154 ;
  31. nelz0 = 30 ;
  32.  
  33. * Dimensions
  34. r0 = 0.083 ;
  35. l0 = 0.237 - r0 ;
  36. h0 = 0.030 ;
  37. ha0 = 0.012 ;
  38.  
  39. * Mesh
  40. p0 = r0 0.0 ;
  41. p1 = r0 h0 ;
  42. ln1 = DROI nelz0 p1 p0 ;
  43. msh0 = ln1 TRAN nelr0 (l0 0.0) ;
  44. ln2 = msh0 COTE 2 ;
  45. ln3 = msh0 COTE 3 ;
  46. tmp0 = ln3 POIN 'DROI' (0.0 0.0) (1.0 0.0) (ha0 * 0.99) ;
  47. msh1 = (msh0 ELEM 'APPU' 'LARG' ln1) ET
  48. (msh0 ELEM 'APPU' 'LARG' tmp0) ;
  49.  
  50. * Model and material
  51. mod0 = MODE msh0 'MECANIQUE' 'ELASTIQUE' ;
  52. mat0 = MATE mod0 'YOUN' 192.0e9 'NU' 0.3 'RHO' 8.24e3 ;
  53.  
  54. * Boundary conditions
  55. bc0 = BLOQ 'UZ' ln2 ;
  56.  
  57. * Constant loading: peripheral pressure
  58. tmp0 = ln3 ELEM 'APPU' 'STRI' msh1 ;
  59. load0 = PRES 'MASS' mod0 (-1.0 * press0) tmp0 ;
  60.  
  61. * Penalized density-dependent loading: centrifugal forces
  62. DEBP TOPOUPDT tab0*'TABLE' ;
  63.  
  64. * Input data
  65. Wtab = tab0.'WTABLE' ;
  66. modMA = Wtab.'MECANIQUE'.'MODELE_A' ;
  67. ZmatMA = Wtab.'MECANIQUE'.'CARACTERISTIQUES_Z_A' ;
  68.  
  69. * Centrifugal force field
  70. Forc0 = (omega0**2) * (MASS modMA ZmatMA) * (CHAN 'COMP' 'UR' (msh0 COOR 1)) ;
  71. * Add the constant loading
  72. Forc0 = Forc0 ET load0 ;
  73.  
  74. * Output
  75. tab0.'RESOLUTION_LINEAIRE'.'CHARGEMENT' = Forc0 ;
  76.  
  77. * If it is the first cycles
  78. SI (EGA Wtab.'CYCLE' 1) ;
  79.  
  80. * Model and material of the design zone (D)
  81. modMD = Wtab.'MECANIQUE'.'MODELE_D' ;
  82. matMD = Wtab.'MECANIQUE'.'CARACTERISTIQUES_D' ;
  83.  
  84. * Elementwise field of the R coordinate
  85. * expressed on D at the element mass integration points
  86. r = CHAN 'MASSE' (modMD COOR 1) modMD ;
  87.  
  88. * Elementwise field of the mass density
  89. * expressed on D at the element mass integration points
  90. rho = CHAN 'TYPE' (CHAN 'MASSE' (EXCO 'RHO' matMD) modMD) 'SCALAIRE' ;
  91.  
  92. * Volume-normalized elementwise field of the derivative of
  93. * the centrifugal force with respect to the physical densities
  94. * expressed on D at the element mass integration points
  95. NdFdY = EXCO 'SCAL' ((omega0**2) * (r * rho)) 'FR' ;
  96.  
  97. * Output
  98. tab0.'RESOLUTION_LINEAIRE'.'SENSIBILITE_NORMALISEE_CHARGEMENT' = NdFdY ;
  99.  
  100. FINS ;
  101.  
  102. FINP ;
  103.  
  104. * Finite element model table
  105. mdl0 = TABL ;
  106. mdl0.'MODELE' = mod0 ;
  107. mdl0.'CARACTERISTIQUES' = mat0 ;
  108. mdl0.'BLOCAGES_MECANIQUES' = bc0 ;
  109.  
  110. * Optimization table
  111. tab0 = TABL ;
  112. tab0.'TRAC' = graph0 ;
  113. tab0.'RESOLUTION_LINEAIRE' = mdl0 ;
  114. tab0.'PROCEDURE_TOPOUPDT' = VRAI ;
  115. tab0.'ZONE_FIGEE' = msh1 ;
  116.  
  117. tab0.'SIGMA_VM_LIMITATION' = MOT 'CONIGLIO' ;
  118. tab0.'SIGMA_VM_LIMITE' = 1.0e9 ;
  119.  
  120. tab0.'OPTIMISEUR' = MOT 'MMA' ;
  121. tab0.'FILTRE' = MOT 'CHAPEAU' ;
  122. tab0.'FILTRE_CHAPEAU_RAYON' = 3.5 * (l0 / nelr0) ;
  123. *tab0.'FILTRE' = MOT 'EDP' ;
  124. *tab0.'FILTRE_EDP_RAYON' = 3.5 * (l0 / nelr0) ;
  125. tab0.'FILTRER' = MOT 'DENSITE' ;
  126.  
  127. tab0.'SEUIL_ELEMENTS_ACTIFS' = 0.0 ;
  128. tab0.'RAPPORT_RAIDEURS_MECANIQUES' = 1.0e-8 ;
  129. tab0.'X_CHANGE_SEUIL' = 0.01 ;
  130. tab0.'CONVERGENCE_CRITERE' = 0.001 ;
  131. tab0.'MAX_CYCLES' = 150 ;
  132.  
  133. tab0.'MES_SAUVEGARDES' = TABL ;
  134. tab0.'MES_SAUVEGARDES'.'RESOLUTION' = VRAI ;
  135.  
  136. * Optimization
  137. TOPOPTIM tab0 ;
  138.  
  139. * Plot final topology (physical density)
  140. * and final von Mises stress
  141. topomsh0 = tab0.'MAILLAGE'.(tab0.'CYCLE') ;
  142. modA0 = REDU mod0 topomsh0 ;
  143. topoA0 = REDU (tab0.'TOPOLOGIE'.(tab0.'CYCLE')) modA0 ;
  144. sig0 = tab0.'RESOLUTION'.(tab0.'CYCLE').'CONTRAINTES' ;
  145. vnmA0 = VMIS modA0 sig0 (REDU mat0 modA0) ;
  146. SI graph0 ;
  147. TRAC topoA0 modA0
  148. (PROG 0.0 'PAS' (1.0 / 56.0) 1.0)
  149. 'TITR' 'Topologie finale' ;
  150. TRAC vnmA0 modA0
  151. 'TITR' 'Contraintes de von Mises finales' ;
  152. FINS ;
  153.  
  154. * Plot output evolutions
  155. SI graph0 ;
  156. REPE loop0 (DIME tab0.'EVOLUTIONS_SAUVEES') ;
  157. evoname0 = EXTR tab0.'EVOLUTIONS_SAUVEES' &loop0 ;
  158. DESS tab0.'EVOLUTIONS'.evoname0 'POSY' 'EXCE'
  159. 'TITR' (CHAI 'Evolution de' ' ' evoname0
  160. ' au cours des cycles d''optimisation') ;
  161. FIN loop0 ;
  162. FINS ;
  163.  
  164. FINS ;
  165.  
  166. FIN ;
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  

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