Télécharger topoptim_08_Axial_period.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier topoptim_08_Axial_period.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. ************************************************************************
  6. ** Topology optimization of a simple 2D structure subjected to
  7. ** mechanical loading, with an axial periodicity restriction and
  8. ** final binarization.
  9. **
  10. ** Author:
  11. ** Guenhael Le Quilliec (LaMe - Polytech Tours)
  12. **
  13. ** Version:
  14. ** V2.0 2025/11/13 Updated to make it compatible with TOPOPTIM V4.0
  15. ** V1.0 2017/04/18 Original version compatible with TOPOPTIM V2.1
  16. ************************************************************************
  17.  
  18. * Plot results
  19. graph0 = FAUX ;
  20.  
  21. * General options
  22. OPTI 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' 'QUA4' ;
  23.  
  24. * Number of elements
  25. nelx0 = 120 ;
  26. nely0 = 30 ;
  27. nelx1 = 90 ;
  28.  
  29. * Dimensions
  30. l1 = nelx0 * 1.0 ;
  31. l2 = nely0 * 1.0 ;
  32. l3 = nelx1 * 1.0 ;
  33.  
  34. * Mesh
  35. p0 = 0.0 0.0 ;
  36. p1 = 0.0 l2 ;
  37. p2 = l1 0.0 ;
  38. ln0 = DROI nely0 p0 p1 ;
  39. msh0 = ln0 TRAN nelx0 p2 ;
  40. p2 = msh0 POIN 'PROC' p2 ;
  41. msh1 = msh0 ELEM 'APPU' 'STRI' (msh0 POIN 'DROI' p0 p1 (l3 * 1.01)) ;
  42. DEPL 'TOUR' 20.0 p0 msh0 ;
  43.  
  44. * Model and material
  45. mod0 = MODE msh0 'MECANIQUE' 'ELASTIQUE' ;
  46. mat0 = MATE mod0 'YOUN' 210.0e9 'NU' 0.3 ;
  47.  
  48. * Boundary conditions
  49. bc0 = (BLOQ 'UX' ln0) ET (BLOQ 'UY' p2) ;
  50.  
  51. * Loading
  52. load0 = FORC (0.0 -1.0) p1 ;
  53.  
  54. * Penalty factor evolution
  55. pnl_p0 = EVOL 'MANU' 'CYCLES' (PROG 5 15) 'P' (PROG 1.0 3.0) ;
  56.  
  57. * OC gray scale factor evolution
  58. oc_q0 = EVOL 'MANU' 'CYCLES' (PROG 25 105) 'Q' (PROG 1.0 5.0) ;
  59.  
  60. * Finite element model table
  61. mdl0 = TABL ;
  62. mdl0.'MODELE' = mod0 ;
  63. mdl0.'CARACTERISTIQUES' = mat0 ;
  64. mdl0.'BLOCAGES_MECANIQUES' = bc0 ;
  65. mdl0.'CHARGEMENT' = load0 ;
  66.  
  67. * Optimization table
  68. tab0 = TABL ;
  69. tab0.'TRAC' = graph0 ;
  70. tab0.'RESOLUTION_LINEAIRE' = mdl0 ;
  71. tab0.'FRACTION_VOLUME_LIMITE' = 0.5 ;
  72. tab0.'PENALISATION_P' = pnl_p0 ;
  73. tab0.'OC_Q' = oc_q0 ;
  74. tab0.'RESTRICTIONS' = TABL ;
  75. tab0.'RESTRICTIONS'.(1) = TABL ;
  76. tab0.'RESTRICTIONS'.(1).'ZONE' = msh1 ;
  77. tab0.'RESTRICTIONS'.(1).'TYPE' = 'PERIODICITE_AXIALE' ;
  78. tab0.'RESTRICTIONS'.(1).'PERIODES' = 3 ;
  79. tab0.'RESTRICTIONS'.(1).'POIN1' = p0 ;
  80. tab0.'RESTRICTIONS'.(1).'POIN2' = p2 / 4.0 ;
  81. *tab0.'FILTRE' = MOT 'EDP' ;
  82. *tab0.'FILTRE_EDP_RAYON' = 2.0 * l1 / (FLOT nelx0) ;
  83. *tab0.'FILTRE' = MOT 'CHAPEAU' ;
  84. *tab0.'FILTRE_CHAPEAU_RAYON' = 2.5 * l1 / (FLOT nelx0) ;
  85. *tab0.'FILTRER' = MOT 'DENSITE' ;
  86. *tab0.'OPTIMISEUR' = MOT 'MMA' ;
  87.  
  88. * Optimization
  89. TOPOPTIM tab0 ;
  90.  
  91. * Plot final topology (physical density)
  92. topo0 = tab0.'TOPOLOGIE'.(tab0.'CYCLE') ;
  93. topomsh0 = tab0.'MAILLAGE'.(tab0.'CYCLE') ;
  94. SI graph0 ;
  95. TRAC (REDU topo0 topomsh0) (REDU mod0 topomsh0)
  96. (PROG 0.0 'PAS' (1.0 / 56.0) 1.0)
  97. 'TITR' 'Topologie finale' ;
  98. FINS ;
  99.  
  100. * Plot output evolutions
  101. SI graph0 ;
  102. REPE loop0 (DIME tab0.'EVOLUTIONS_SAUVEES') ;
  103. evoname0 = EXTR tab0.'EVOLUTIONS_SAUVEES' &loop0 ;
  104. DESS tab0.'EVOLUTIONS'.evoname0 'POSY' 'EXCE'
  105. 'TITR' (CHAI 'Evolution de' ' ' evoname0
  106. ' au cours des cycles d''optimisation') ;
  107. FIN loop0 ;
  108. FINS ;
  109.  
  110. FIN ;
  111.  
  112.  
  113.  

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