3.6.9: BESO for Beams

Evolutionary structural optimization (ESO) constitutes a method of topology optimization which was pioneered by Y.M. Xie and G.P. Steven. The underlying principle is simple: One starts from a given volume made up from structural elements on predefined supports and with preset loads acting on it. Calculating the structural response will show that there are regions which carry more of the external load than others. Now one removes a number of those elements of the structure that are least strained and thus least effective. Again the response of the now thinned out model is determined, under-utilized elements removed and so on. This iterative procedure stops when a target volume or number of remaining structural elements is reached.

The above algorithm can be viewed as a way of tracing the internal force flow through a structure and removing those elements that do not form part of it. Fig. 3.6.9.1 shows a cantilever after applying the “BESO for Beams”-component on it. The algorithm works on beam and truss elements only. For shells a separate component exists (see section 3.5.10).

Fig. 3.6.9.2 shows the “BESO for Beams”-component at work. On the left side one can see the initial geometry which is a triangular mesh derived from a surface. There exist two load cases with loads acting in the plane of the structure in horizontal and vertical direction respectively. Three corner nodes of the structure are held fixed. The right picture shows the optimized structure reduced to 45 % of its initial mass in the course of 20 design iterations.

Here the description of the input parameters:

By clicking on the “Settings” bar you can unfold the following input-plugs:

Factors for weighting forces/moments: The “BESO for Beams”-component lets you select weighting factors for the different force and bending components in an element. The weight of an element is determined on the basis of the density of deformation energy induced by individual cross section force components. Multiplication by the corresponding user given weighting factor and adding up the component contributions results in the element weight. The weight of groups results from the average of their members. These are the available weighting factors:

  • “WTension”: factor for axial tension force

  • “WCompr.”: factor for axial compression force

  • “WShear”: factor for resultant shear force

  • “WMoment”: factor for resultant moments

"BESOFac": Say in each iteration step there needs to be a mass of n[kg]n[kg] removed in order to meet the structure's target mass in the given nChangeIternChangeIter number of iterations. With BESOFac=mBESOFac = m there will be (m+1)n(m+1) \cdot n active elements moved to the pool of inactive elements. An evaluation of the structure's response follows. In a second step mnm \cdot n members get flipped from inactive to active so that the balance is right again. This adds a bi-directional component to the process which often leads to improved results.

“MinDist”: In some cases one wishes to limit the number of elements that get added or removed in a certain area. “MinDist” lets you select the minimum distance in meter between the endpoints of elements that may be changed in one iteration.

“WLimit”: At the end of the BESO-process it often occurs that a small fraction of the elements is much less utilized than the average. “WLimit” lets you remove those elements whose weight is below “WLimit” times the average weight of elements.

On the right side of the “BESOBeam”-component these output-plugs exist:

Last updated