Télécharger topoptim_12_Von_Mises.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier topoptim_12_Von_Mises.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. ************************************************************************
  6. ** Topology optimization of a 2D structure, an L-bracket with von Mises
  7. ** stress constraint using the Verbart et al. 2017 approach and the same
  8. ** set of parameters.
  9. **
  10. ** Author:
  11. ** Guenhael Le Quilliec (LaMe - Polytech Tours)
  12. **
  13. ** Version:
  14. ** V1.0 2025/12/05
  15. ************************************************************************
  16.  
  17. * Plot results
  18. graph0 = FAUX ;
  19.  
  20. * General options
  21. OPTI 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' 'QUA4' ;
  22.  
  23. * Number of elements
  24. nel1 = 40 ;
  25. nel2 = 100 ;
  26.  
  27. * Dimensions
  28. l0 = nel2 * 0.05 ;
  29. l1 = nel1 * 1.0 ;
  30. l2 = nel2 * 1.0 ;
  31.  
  32. * Mesh
  33. p1 = 0.0 l2 ;
  34. p2 = l1 l2 ;
  35. p3 = l2 l2 ;
  36. p4 = l2 l1 ;
  37. ln1 = DROI nel1 p1 p2 ;
  38. msh1 = ln1 TRAN (nel2 - nel1) (0.0 (l1 - l2)) ;
  39. ln2 = (ln1 ET (DROI (nel2 - nel1) p2 p3))
  40. MOIN (0.0 (l2 - l1)) ;
  41. msh2 = ln2 TRAN nel1 (0.0 (-1.0* l1)) ;
  42. ELIM msh1 msh2 1.0e-3 ;
  43. msh0 = msh1 ET msh2 ;
  44. ln3 = ln2 ELEM 'APPU' 'LARG'
  45. (ln2 POIN 'DROI' p4 (p4 PLUS p1) (l0 * 0.99)) ;
  46.  
  47. * Model and material
  48. mod0 = MODE msh0 'MECANIQUE' 'ELASTIQUE' ;
  49. mat0 = MATE mod0 'YOUN' 1.0 'NU' 0.3 ;
  50.  
  51. * Boundary conditions
  52. bdc0 = BLOQ 'DEPL' ln1 ;
  53.  
  54. * Loading
  55. ldg0 = PRES 'MASS' mod0 (1.0 / (NBEL ln3)) ln3 ;
  56.  
  57. * Finite element model table
  58. mdl0 = TABL ;
  59. mdl0.'MODELE' = mod0 ;
  60. mdl0.'CARACTERISTIQUES' = mat0 ;
  61. mdl0.'BLOCAGES_MECANIQUES' = bdc0 ;
  62. mdl0.'CHARGEMENT' = ldg0 ;
  63.  
  64. * Optimization table
  65. tab0 = TABL ;
  66. tab0.'TRAC' = graph0 ;
  67. tab0.'RESOLUTION_LINEAIRE' = mdl0 ;
  68.  
  69. *tab0.'SIGMA_VM_LIMITATION' = MOT 'CONIGLIO' ;
  70. tab0.'SIGMA_VM_LIMITE' = 1.0 ;
  71. tab0.'AGREGATION' = MOT 'PMOY' ;
  72. tab0.'AGREGATION_P' = 16.0 ;
  73.  
  74. tab0.'OPTIMISEUR' = MOT 'MMA' ;
  75. tab0.'FILTRER' = MOT 'DENSITE' ;
  76. tab0.'FILTRE' = MOT 'CHAPEAU' ;
  77. tab0.'FILTRE_CHAPEAU_RAYON' = 2.0 ;
  78. *tab0.'FILTRE' = MOT 'EDP' ;
  79. *tab0.'FILTRE_EDP_RAYON' = 2.0 ;
  80. * TODO non-zero value is not compatible yet with stress constraint
  81. tab0.'SEUIL_ELEMENTS_ACTIFS' = 0.0 ;
  82. *tab0.'SEUIL_ELEMENTS_ACTIFS' = 1.0e-6 ;
  83. tab0.'RAPPORT_RAIDEURS_MECANIQUES' = 1.0e-9;
  84.  
  85. * Initial design variables field
  86. * Remark: any scalar value will be switched into a homogeneous
  87. * physical density
  88. tab0.'X' = TABL ;
  89. tab0.'X'.(1) = 1.0 ;
  90.  
  91. tab0.'X_CHANGE_SEUIL' = 0.01 ;
  92. tab0.'CONVERGENCE_CRITERE' = 0.001 ;
  93. tab0.'MAX_CYCLES' = 500 ;
  94.  
  95. tab0.'MES_SAUVEGARDES' = TABL ;
  96. tab0.'MES_SAUVEGARDES'.'RESOLUTION' = VRAI ;
  97.  
  98. * TODO
  99. tab0.'MMA_COEF_OBJECTIF' = 1.0 ;
  100. *tab0.'MMA_C' = 10000.0 ;
  101. tab0.'MMA_C' = 1.0 ;
  102.  
  103. * Optimization
  104. TOPOPTIM tab0 ;
  105.  
  106. * Plot final topology (physical density)
  107. * and final von Mises stress
  108. topomsh0 = tab0.'MAILLAGE'.(tab0.'CYCLE') ;
  109. modA0 = REDU mod0 topomsh0 ;
  110. topoA0 = REDU (tab0.'TOPOLOGIE'.(tab0.'CYCLE')) modA0 ;
  111. sig0 = tab0.'RESOLUTION'.(tab0.'CYCLE').'CONTRAINTES' ;
  112. vnmA0 = VMIS modA0 sig0 (REDU mat0 modA0) ;
  113. SI graph0 ;
  114. TRAC topoA0 modA0
  115. (PROG 0.0 'PAS' (1.0 / 56.0) 1.0)
  116. 'TITR' 'Topologie finale' ;
  117. TRAC vnmA0 modA0
  118. 'TITR' 'Contraintes de von Mises finales' ;
  119. FINS ;
  120.  
  121. * Plot output evolutions
  122. SI graph0 ;
  123. REPE loop0 (DIME tab0.'EVOLUTIONS_SAUVEES') ;
  124. evoname0 = EXTR tab0.'EVOLUTIONS_SAUVEES' &loop0 ;
  125. DESS tab0.'EVOLUTIONS'.evoname0 'POSY' 'EXCE'
  126. 'TITR' (CHAI 'Evolution de' ' ' evoname0
  127. ' au cours des cycles d''optimisation') ;
  128. FIN loop0 ;
  129. FINS ;
  130.  
  131. FIN ;
  132.  
  133.  
  134.  

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