* fichier topoptim_05_Frozen_area.dgibi ************************************************************************ * Section : Mathematiques Fonctions ************************************************************************ ************************************************************************ ** Topology optimization of a simple 2D structure subjected to a ** mechanical loading, with variable penalty factor, GSF, a hole ** and a frozen area. ** ** Author: ** Guenhael Le Quilliec (LaMe - Polytech Tours) ** ** Version: ** V4.0 2025/11/13 Updated to make it compatible with TOPOPTIM V4.0 ** V3.0 2021/05/06 Updated to make it compatible with TOPOPTIM V3.0 ** V2.0 2017/04/18 Updated to make it compatible with TOPOPTIM V2.0 ** V1.0 2014/04/28 Original version compatible with TOPOPTIM V1.0 ************************************************************************ * Plot results graph0 = FAUX ; * General options OPTI 'DIME' 2 'MODE' 'PLAN' 'CONT' 'ELEM' 'QUA4' ; * Mesh p0 = 0.0 0.0 ; p1 = 0.0 60.0 ; p2 = 30.0 0.0 ; p3 = 0.0 30.0 ; p4 = 30.0 25.0 ; p5 = 15.0 15.0 ; p6 = 19.0 15.0 ; ln0 = DROI 60 p0 p1 ; ln1 = DROI 30 p3 p1 ; ELIM ln0 ln1 0.01 ; msh0 = ln0 TRAN 30 p2 ; tmp0 = msh0 POIN 'SPHE' p5 p6 4.0 ; tmp0 = msh0 ELEM 'APPU' 'STRI' tmp0 ; msh0 = DIFF msh0 tmp0 ; p2 = msh0 POIN 'PROC' p2 ; msh1 = msh0 POIN 'DROI' p3 p4 2.5 ; msh1 = msh0 ELEM 'APPU' 'STRI' msh1 ; * Model and material mod0 = MODE msh0 'MECANIQUE' 'ELASTIQUE' ; mat0 = MATE mod0 'YOUN' 210.0e9 'NU' 0.3 ; * Boundary conditions bc0 = BLOQ 'UX' 'UY' ln1 ; * Loading load0 = FORC (1.0 0.0) p2 ; * Penalty factor evolution pnl_p0 = EVOL 'MANU' 'CYCLES' (PROG 5 15) 'P' (PROG 1.0 3.0) ; * OC gray scale factor evolution oc_q0 = EVOL 'MANU' 'CYCLES' (PROG 10 90) 'Q' (PROG 1.0 5.0) ; * Finite element model table mdl0 = TABL ; mdl0.'MODELE' = mod0 ; mdl0.'CARACTERISTIQUES' = mat0 ; mdl0.'BLOCAGES_MECANIQUES' = bc0 ; mdl0.'CHARGEMENT' = load0 ; * Optimization table tab0 = TABL ; tab0.'TRAC' = graph0 ; tab0.'RESOLUTION_LINEAIRE' = mdl0 ; tab0.'FRACTION_VOLUME_LIMITE' = 0.4 ; tab0.'ZONE_FIGEE' = msh1 ; tab0.'FILTRE_GIBIANE_TAUX' = 10 ; tab0.'PENALISATION_P' = pnl_p0 ; tab0.'OC_Q' = oc_q0 ; *tab0.'FILTRE' = MOT 'EDP' ; *tab0.'FILTRE_EDP_RAYON' = 3.0 ; *tab0.'FILTRE' = MOT 'CHAPEAU' ; *tab0.'FILTRE_CHAPEAU_RAYON' = 3.0 ; *tab0.'FILTRER' = MOT 'DENSITE' ; *tab0.'OPTIMISEUR' = MOT 'MMA' ; * Optimization TOPOPTIM tab0 ; * Plot final topology (physical density) topo0 = tab0.'TOPOLOGIE'.(tab0.'CYCLE') ; topomsh0 = tab0.'MAILLAGE'.(tab0.'CYCLE') ; SI graph0 ; TRAC (REDU topo0 topomsh0) (REDU mod0 topomsh0) (PROG 0.0 'PAS' (1.0 / 56.0) 1.0) 'TITR' 'Topologie finale' ; FINS ; * Plot output evolutions SI graph0 ; REPE loop0 (DIME tab0.'EVOLUTIONS_SAUVEES') ; evoname0 = EXTR tab0.'EVOLUTIONS_SAUVEES' &loop0 ; DESS tab0.'EVOLUTIONS'.evoname0 'POSY' 'EXCE' 'TITR' (CHAI 'Evolution de' ' ' evoname0 ' au cours des cycles d''optimisation') ; FIN loop0 ; FINS ; FIN ;