Télécharger topoptim_11.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier topoptim_11.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. ** V2.0 2021/05/06 Updated to make it compatible with TOPOPTIM V3.0
  15. ** V1.0 2017/11/11 Original version compatible with TOPOPTIM V2.1
  16. ************************************************************************
  17.  
  18. graph0 = FAUX ;
  19.  
  20. * General options
  21. OPTI 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' QUA4 ;
  22.  
  23. * Mesh
  24. nelx0 = 40 ;
  25. nely0 = 20 ;
  26. p0 = 0.0 0.0 ;
  27. p1 = (FLOT nelx0) 0.0 ;
  28. p2 = 0.0 (FLOT nely0) ;
  29. lgn0 = DROI nelx0 p0 p1 ;
  30. msh0 = TRAN lgn0 nely0 p2 ;
  31. p2 = msh0 POIN 'PROC' p2 ;
  32.  
  33. * Model and material
  34. mod0 = MODE msh0 'MECANIQUE' 'ELASTIQUE' ;
  35. mat0 = MATE mod0 'YOUN' 1.0 'NU' 0.3 ;
  36.  
  37. * Boundary conditions and loading
  38. bc0 = (BLOQ 'UY' lgn0) ET (BLOQ 'DEPL' p2) ;
  39. load0 = FORC (-1.0 0.0) p0 ;
  40.  
  41. * Output displacement elementary field to be maximized
  42. load1 = FORC (1.0 0.0) p1 ;
  43.  
  44. * Finite element model table
  45. mdl0 = TABL ;
  46. mdl0.'MODELE' = mod0 ;
  47. mdl0.'CARACTERISTIQUES' = mat0 ;
  48. mdl0.'BLOCAGES_MECANIQUES' = bc0 ;
  49. mdl0.'CHARGEMENT' = load0 ;
  50.  
  51. * Optimization table
  52. tab0 = TABL ;
  53. tab0.'RESOLUTION_LINEAIRE' = mdl0 ;
  54. tab0.'FRACTION_VOLUME' = 0.3 ;
  55. tab0.'FACTEUR_D' = 0.3 ;
  56.  
  57. tab0.'MECANISME' = load1 ;
  58. tab0.'TOPOLOGIE_MAX_INC' = 0.1 ;
  59. tab0.'FILTRE_TAUX' = 2 ;
  60. tab0.'TRAC' = graph0 ;
  61.  
  62. * Optimization
  63. TOPOPTIM tab0 ;
  64.  
  65. * Plot to screen
  66. topo0 = tab0.'TOPOLOGIE'.(tab0.'CYCLE') ;
  67. topomsh0 = tab0.'MAILLAGE'.(tab0.'CYCLE') ;
  68. SI graph0 ;
  69. TRAC (REDU topo0 topomsh0) (REDU mod0 topomsh0)
  70. (PROG 0.0 'PAS' (1.0 / 56.0) 1.0) ;
  71. FINS ;
  72.  
  73. FIN ;
  74.  
  75.  
  76.  
  77.  

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