In order to optimise the freeform truss façade of their high-rise structure in the early stages of the design process, Bas Wijnbeld at the Eindhoven University of Technology, working with the Arup Amsterdam office, knew that they could combine their creative programming skills with the power and flexibility of GSA to achieve the desired result. Their optimisation tool, which makes extensive use of the COM interface possibilities of GSA, has two principle functions. The first is to generate a single structure based on user-defined parameters. It then finds the minimum section sizes that satisfy the strength and stiffness requirements. The second principle function is to use artificial intelligence techniques to determine the optimal structure.
The basic inputs of the optimiser program are:
- The boundary of each floor. This determines the shape of the building
- Initial section sizes
- Dead, live and wind loads
How Oasys proved invaluable
How does it work?
The optimisation tool was developed using just Visual Studio and the GSA COM-interface. GSA’s role was both visualisation and analysing the generated structural models, supplying the results back to the optimiser program.
Generating the Geometry
First the optimiser program reads node and element data from the initial GSA model and uses this information to recognise floor edges. As this optimiser program is especially developed for freeform continuous smooth surfaces it doesn’t recognise corners; an optional subdivision algorithm can be used to increase smoothness of the floor perimeters.
The next stage is to decide the locations of the floor connections, resulting in elements being created between these nodes.
Creating a Complete Calculation Model
As a calculation model needs more than the geometry alone; the section properties, con
straints, releases, loads and load combinations are also generated. In this example there are a total of 30 load combinations: 9 SLS combinations and 21 ULS combinations.
Just like the node and element data, all this information is easily exported by using the GwaCommand function of the COM-interface.
Optimising Section Sizes
The minimal needed section sizes are automatically determined from both the strength and stiffness constraints. This process is split in two steps: first the minimal needed section sizes based on strength are determined (Eurocode check). This is a simple process, where the section sizes are iteratively changed based on the forces in that element: the model is calculated in GSA and the forces acting on each element are exporting to our program which determines the minimal needed section size. As changing the section size changes both the self weights and stiffnesses, hence force distribution, this process repeats until it converges on the overall lightest sections.
After the minimal section sizes are determined based on strength properties, the top and storey drift has to be limited to a maximum set by the user. To do this efficiently, a sensitivity analysis is performed: for every section group the effect of this section size on the deformations is considered. With this information and the steel weight of every section group (which the GSA can export using the COM), the most economic decision can be made.
Finding the Optimal Topology
The final task of the program is to find the optimal topology of the truss façade structure. Optimal is in this case defined as: minimal weight and minimal elements (nodes). Because the solution with the minimal weight generally isn’t the solution with the minimal elements, this results in a range of solutions which are optimal in a certain way; this range is known as the Pareto Front. The Pareto front is found by using the Harmony Search Algorithm (comparable to a Genetic Algorithm), with three populations (each with a different target) and containing 10 possible solutions each. In total around 1,000 possible solutions are generated and optimised in every single cycle.
This process would be virtually impossible without stability and robustness of GSA and especially its COM interface while conducting heavy computation.