Télécharger topoptim_11_Mechanism.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier topoptim_11_Mechanism.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. ************************************************************************
  6. ** Topology optimization of a simple 2D compliant mechanism: inverter
  7. ** (maximization of the output displacements in the opposite direction
  8. ** to the input displacements)
  9. **
  10. ** Author:
  11. ** Guenhael Le Quilliec (LaMe - Polytech Tours)
  12. **
  13. ** Version:
  14. ** V3.0 2025/11/13 Updated to make it compatible with TOPOPTIM V4.0
  15. ** V2.0 2021/05/06 Updated to make it compatible with TOPOPTIM V3.0
  16. ** V1.0 2017/11/11 Original version compatible with TOPOPTIM V2.1
  17. ************************************************************************
  18.  
  19. * Plot results
  20. graph0 = FAUX ;
  21.  
  22. * General options
  23. OPTI 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' 'QUA4' ;
  24.  
  25. * Number of elements
  26. nelx0 = 40 ;
  27. nely0 = 20 ;
  28.  
  29. * Dimensions
  30. l1 = nelx0 * 1.0 ;
  31. l2 = nely0 * 1.0 ;
  32.  
  33. * Mesh
  34. p0 = 0.0 0.0 ;
  35. p1 = l1 0.0 ;
  36. p2 = 0.0 l2 ;
  37. ln0 = DROI nelx0 p0 p1 ;
  38. msh0 = ln0 TRAN nely0 p2 ;
  39. p2 = msh0 POIN 'PROC' p2 ;
  40.  
  41. * Model and material
  42. mod0 = MODE msh0 'MECANIQUE' 'ELASTIQUE' ;
  43. mat0 = MATE mod0 'YOUN' 1.0 'NU' 0.3 ;
  44.  
  45. * Boundary conditions
  46. bc0 = (BLOQ 'UY' ln0) ET (BLOQ 'DEPL' p2) ;
  47.  
  48. * Loading
  49. load0 = FORC (-1.0 0.0) p0 ;
  50.  
  51. * Output displacement elementary field to be maximized
  52. load1 = FORC (1.0 0.0) p1 ;
  53.  
  54. * Finite element model table
  55. mdl0 = TABL ;
  56. mdl0.'MODELE' = mod0 ;
  57. mdl0.'CARACTERISTIQUES' = mat0 ;
  58. mdl0.'BLOCAGES_MECANIQUES' = bc0 ;
  59. mdl0.'CHARGEMENT' = load0 ;
  60.  
  61. * Optimization table
  62. tab0 = TABL ;
  63. tab0.'TRAC' = graph0 ;
  64. tab0.'RESOLUTION_LINEAIRE' = mdl0 ;
  65. tab0.'FRACTION_VOLUME_LIMITE ' = 0.3 ;
  66. tab0.'OC_D' = 0.3 ;
  67. tab0.'MECANISME' = load1 ;
  68. tab0.'X_CHANGE_SEUIL' = 0.1 ;
  69. tab0.'FILTRE_GIBIANE_TAUX' = 2 ;
  70. *tab0.'FILTRE' = MOT 'EDP' ;
  71. *tab0.'FILTRE_EDP_RAYON' = 3.0 * l1 / (FLOT nelx0) ;
  72. *tab0.'FILTRE' = MOT 'CHAPEAU' ;
  73. *tab0.'FILTRE_CHAPEAU_RAYON' = 3.0 * l1 / (FLOT nelx0) ;
  74. *tab0.'FILTRER' = MOT 'DENSITE' ;
  75. *tab0.'OPTIMISEUR' = MOT 'MMA' ;
  76.  
  77. * Optimization
  78. TOPOPTIM tab0 ;
  79.  
  80. * Plot final topology (physical density)
  81. topo0 = tab0.'TOPOLOGIE'.(tab0.'CYCLE') ;
  82. topomsh0 = tab0.'MAILLAGE'.(tab0.'CYCLE') ;
  83. SI graph0 ;
  84. TRAC (REDU topo0 topomsh0) (REDU mod0 topomsh0)
  85. (PROG 0.0 'PAS' (1.0 / 56.0) 1.0)
  86. 'TITR' 'Topologie finale' ;
  87. FINS ;
  88.  
  89. * Plot output evolutions
  90. SI graph0 ;
  91. REPE loop0 (DIME tab0.'EVOLUTIONS_SAUVEES') ;
  92. evoname0 = EXTR tab0.'EVOLUTIONS_SAUVEES' &loop0 ;
  93. DESS tab0.'EVOLUTIONS'.evoname0 'POSY' 'EXCE'
  94. 'TITR' (CHAI 'Evolution de' ' ' evoname0
  95. ' au cours des cycles d''optimisation') ;
  96. FIN loop0 ;
  97. FINS ;
  98.  
  99. FIN ;
  100.  
  101.  
  102.  
  103.  

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