Télécharger topoptim_03_Thermal.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier topoptim_03_Thermal.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. ************************************************************************
  6. ** Topology optimization of a simple 2D structure subjected to a
  7. ** thermal loading.
  8. **
  9. ** Author:
  10. ** Guenhael Le Quilliec (LaMe - Polytech Tours)
  11. **
  12. ** Version:
  13. ** V3.0 2025/11/13 Updated to make it compatible with TOPOPTIM V4.0
  14. ** V2.0 2017/04/18 Updated to make it compatible with TOPOPTIM V2.0
  15. ** V1.0 2014/04/28 Original version compatible with TOPOPTIM V1.0
  16. ************************************************************************
  17.  
  18. * Plot results
  19. graph0 = FAUX ;
  20.  
  21. * General options
  22. OPTI 'DIME' 2 'ELEM' 'QUA4' ;
  23.  
  24. * Number of elements
  25. nelx0 = 40 ;
  26. nely0 = 40 ;
  27.  
  28. * Dimensions
  29. l0 = nelx0 * 1.0 ;
  30. h0 = nely0 * 1.0 ;
  31. u0 = 2.0 ;
  32.  
  33. * Mesh
  34. p0 = 0.0 0.0 ;
  35. p1 = 0.0 h0 ;
  36. p2 = l0 0.0 ;
  37. ln0 = DROI nely0 p0 p1 ;
  38. msh0 = nelx0 TRAN ln0 p2 ;
  39. p2 = msh0 POIN 'PROC' p2 ;
  40. ln1 = ln0 PLUS p2 ;
  41. ELIM (CONT msh0) ln1 0.01 ;
  42. ln2 = ln0 ELEM 'APPU' 'STRI'
  43. (ln0 POIN 'DROI' (0.0 (h0/2)) (1.0 (h0/2)) (u0 + 0.01)) ;
  44.  
  45. * Model and material
  46. mod0 = MODE msh0 'THERMIQUE' 'CONDUCTION' ;
  47. mat0 = MATE mod0 'K' 50.0 ;
  48.  
  49. * Boundary conditions and loading
  50. bc0 = BLOQ 'T' ln2 ;
  51. load0 = SOUR mod0 0.01 msh0 ;
  52.  
  53. * Finite element model table
  54. mdl0 = TABL ;
  55. mdl0.'MODELE' = mod0 ;
  56. mdl0.'CARACTERISTIQUES' = mat0 ;
  57. mdl0.'BLOCAGES_THERMIQUES' = bc0 ;
  58. mdl0.'CHARGEMENT' = load0 ;
  59.  
  60. * Optimization table
  61. tab0 = TABL ;
  62. tab0.'TRAC' = graph0 ;
  63. tab0.'RESOLUTION_LINEAIRE' = mdl0 ;
  64. tab0.'FRACTION_VOLUME_LIMITE' = 0.4 ;
  65. tab0.'RAPPORT_RAIDEURS_THERMIQUES' = 26.0e-3 / 50.0 ;
  66. *tab0.'FILTRE' = MOT 'EDP' ;
  67. *tab0.'FILTRE_EDP_RAYON' = 3.0 * l0 / (FLOT nelx0) ;
  68. *tab0.'FILTRE' = MOT 'CHAPEAU' ;
  69. *tab0.'FILTRE_CHAPEAU_RAYON' = 3.0 * l0 / (FLOT nelx0) ;
  70. *tab0.'FILTRER' = MOT 'DENSITE' ;
  71. *tab0.'OPTIMISEUR' = MOT 'MMA' ;
  72.  
  73. * Optimization
  74. TOPOPTIM tab0 ;
  75.  
  76. * Plot final topology (physical density)
  77. topo0 = tab0.'TOPOLOGIE'.(tab0.'CYCLE') ;
  78. topomsh0 = tab0.'MAILLAGE'.(tab0.'CYCLE') ;
  79. SI graph0 ;
  80. TRAC (REDU topo0 topomsh0) (REDU mod0 topomsh0)
  81. (PROG 0.0 'PAS' (1.0 / 56.0) 1.0) ;
  82. FINS ;
  83.  
  84. * Plot output evolutions
  85. SI graph0 ;
  86. REPE loop0 (DIME tab0.'EVOLUTIONS_SAUVEES') ;
  87. evoname0 = EXTR tab0.'EVOLUTIONS_SAUVEES' &loop0 ;
  88. DESS tab0.'EVOLUTIONS'.evoname0 'POSY' 'EXCE'
  89. 'TITR' (CHAI 'Evolution de' ' ' evoname0
  90. ' au cours des cycles d''optimisation') ;
  91. FIN loop0 ;
  92. FINS ;
  93.  
  94. FIN ;
  95.  
  96.  
  97.  

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