Télécharger opti_topo_oc.dgibi
************************************************************************ * Exemple de méthode d'optimisation topologique * * Méthode à densité + pénalisation SIMP * * Algorithme d'optimisation : Optimality Criteria - Bendsoe * * Application à une poutre en flexion * ************************************************************************ ** Paramètres globaux itrac = FAUX ; l = 1. ; h = 0.2 ; yo = 200.E9 ; nu = 0.3 ; ** Maillage (controlé par sa taille de maille) den1 = l / 120. ; p1 = 0. 0. ; p2 = l 0. ; ** Modèle ** Blocages ** Chargement ** Paramètres d'optimisation p = 3. ; fv = 0.4 ; eta = 0.5 ; rmin = 1.5 * den1 ; m = 0.1 ; xmin = 0.001 ; xmax = 1. ; ** Initialisation de la topologie (avec la fraction volumique cible) ** Matrice de filtrage ** Volume plein, initial et cible fvx = vx / v0 ; vcib = v0 * fv ; chgx = 0. ; ** Boucle d'optimisation topologique REPE b1 100 ; * pénalisation de la rigidité yop = (x ** p) * yo ; * résolution du problème mécanique * fonction objectif : compliance = uT.K.u = Int(sig:eps)dV * sensibilité dpsi = (-1. * p * (x ** (p - 1.)) * ene) ; * filtrage de la sensibilité xdpsi = x * dpsi ; xdpsi1 = kfil * xdpsi0 ; dpsi = xdpsi / x ; * infos sur la topologie courante SI itrac ; FINSI ; * optimisation d'une nouvelle topologie (méthode du critère d'optimalité) l1 = 0. ; l2 = 100000000. ; REPE b2 100 ; SI ((l2 - l1) < 0.0001) ; QUIT b2 ; FINSI ; lmid = (l1 + l2) / 2. ; b = -1. * dpsi / (lmid * vole) ; xnew = x * (b ** eta) ; xnew = (xinf * minf) + (xnew * mmil) + (xsup * msup) ; SI (vxnew > vcib) ; l1 = lmid ; SINON ; l2 = lmid ; FINSI ; FIN b2 ; * bilan de l'itération fvx = vxnew / v0 ; SI (chgx < 0.01) ; QUIT b1 ; FINSI ; * préparation de la nouvelle itération x = xnew ; FIN b1 ; * Tracé de la dernière itération SI itrac ; FINSI ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales