Sigmund s 99 line topology optimization top m
Download
1 / 7

Sigmund’s 99-line topology optimization top.m - PowerPoint PPT Presentation


  • 77 Views
  • Uploaded on

Sigmund’s 99-line topology optimization top.m. Function is remarkable achievement of squeezing so much content into so few lines. An important ingredient in the saving is limiting the geometry to be rectangular and limiting the elements to be square .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Sigmund’s 99-line topology optimization top.m' - yamal


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Sigmund s 99 line topology optimization top m
Sigmund’s 99-line topology optimization top.m

  • Function is remarkable achievement of squeezing so much content into so few lines.

  • An important ingredient in the saving is limiting the geometry to be rectangular and limiting the elements to be square.

  • In addition it uses an optimality criterion method that is easy to implement and understand, but not necessarily the most efficient.

  • It is possible to use it without much understanding, but studying it is a good opportunity to review the basics of SIMP


Initialization and finite element analysis
Initialization and finite element analysis

%%%% A 99 LINE TOPOLOGY OPTIMIZATION CODE BY OLE SIGMUND, JANUARY 2000 %%%

%%%% CODE MODIFIED FOR INCREASED SPEED, September 2002, BY OLE SIGMUND %%%

function top(nelx,nely,volfrac,penal,rmin);

% INITIALIZE

x(1:nely,1:nelx) = volfrac;

loop = 0;

change = 1.;

% START ITERATION

while change > 0.01

loop = loop + 1;

xold = x;

% FE-ANALYSIS

[U]=FE(nelx,nely,x,penal);


Finite element function
Finite element function

function [U]=FE(nelx,nely,x,penal)

[KE] = lk;

K = sparse(2*(nelx+1)*(nely+1), 2*(nelx+1)*(nely+1));

F = sparse(2*(nely+1)*(nelx+1),1); U = zeros(2*(nely+1)*(nelx+1),1);

for elx = 1:nelx

for ely = 1:nely

n1 = (nely+1)*(elx-1)+ely;

n2 = (nely+1)* elx +ely;

edof = [2*n1-1; 2*n1; 2*n2-1; 2*n2; 2*n2+1; 2*n2+2; 2*n1+1; 2*n1+2];

K(edof,edof) = K(edof,edof) + x(ely,elx)^penal*KE;

end

end

% DEFINE LOADS AND SUPPORTS (HALF MBB-BEAM)

F(2,1) = -1;

fixeddofs = union([1:2:2*(nely+1)],[2*(nelx+1)*(nely+1)]);

alldofs = [1:2*(nely+1)*(nelx+1)];

freedofs = setdiff(alldofs,fixeddofs);

% SOLVING

U(freedofs,:) = K(freedofs,freedofs) \ F(freedofs,:);

U(fixeddofs,:)= 0;


Compliance calculation and its sensitivity
Compliance calculation and its sensitivity

[KE] = lk;

c = 0.;

for ely = 1:nely

for elx = 1:nelx

n1 = (nely+1)*(elx-1)+ely; n2 = (nely+1)* elx +ely;

Ue = U([2*n1-1;2*n1; 2*n2-1;2*n2; 2*n2+1;2*n2+2; 2*n1+1;2*n1+2],1);

c = c + x(ely,elx)^penal*Ue'*KE*Ue;

dc(ely,elx) = -penal*x(ely,elx)^(penal-1)*Ue'*KE*Ue;

end

end

% FILTERING OF SENSITIVITIES

[dc] = check(nelx,nely,rmin,x,dc);


Low pass filter for sensitivity
Low pass filter for sensitivity

  • Average sensitivities with adjacent elements that are within the feature size rmin

  • Dist(k,i) is the distance between centers of element i and element k.


Effect of rmin
Effect of rmin

  • Nelx=200,nely=40,volfrac=0.4, penal=3, rmin=2

  • Nelx=100, nely=20

  • Rmin=0.1


ad