This past summer, I had the opportunity to work with a prominent Civil Engineering professor at the University of Toronto. Professor Evan C. Bentz specializes in structural engineering, and his work focuses on developing software to aid in the analysis and simulation of structures. Professor Bentz has an incredible personality, great sense of humour, and can talk about almost anything to almost anyone for as long as he is able to talk and someone is able to listen. Some of the most interesting and random conversations of my entire life were had last summer in Professor Bentz’s office. This was my first research position, and I really lucked out because I got to work with some incredible people, and ended up doing something I found enjoyable.
My main projects this summer were centred around making Professor Bentz’s software run more efficiently and accurately. The software suite includes Membrane-2000 and Response-2000 for modelling walls, beams, and columns, and Augustus for assembling elements into a structure and running tests on them.
One particular project involved writing a Visual Basic script to accept data from a large spreadsheet database of experimental test results for beams and convert individual tests into a series of input files that could be read by the software. This allowed for an automated way of verifying the simulation test results with real data. Once completed, the macro generated all necessary files in under a minute for over 2000 entries, whereas it probably would have taken a year to do them all by hand.
My next project was meant to push Augustus to its limits by designing and testing a model of a 20-storey apartment building in the Greater Toronto Area that Professor Bentz had previously done some analysis for. After three weeks of interpreting design drawings, mapping out the geometry of the structure, and defining all the structural elements, I excitedly pushed the button to run the tests and the software crashed. While it was disappointing not to get any results, it ended up leading to my most interesting and challenging project.
The core issue, or so we believe, with the Augustus software not being able to run the tests on the building was that the data that the software reads in is not stored efficiently. The software performs its analysis using the “Stiffness Method”, which is an easy way for a computer to calculate displacements on large structures. Every node, or point of interest, in the structure is represented by a number stored in a matrix. The matrix contains all the information about how each node has displaced as the tests run.
This issue lead to the development of a Genetic Algorithm (based on this blog post) to try and optimize the matrix before any calculations were run. After banging my head on a desk for about a week, things started to click, and the development began to progress fairly rapidly. By the end of the third week working on the project, we started getting some positive results that the Genetic Algorithm we implemented performed better than more traditional methods, but took significantly longer to execute (especially for matrices greater than 100×100 in size).
After spending a week on optimizing the algorithms used thanks to MATLAB’s handy profiler, the operation time was cut down significantly and our program could compute matrices up to 500×500 in size within a minute, even on a slow (1.86 GHz) processor.
The Genetic Algorithm project was the focus of a presentation I made at the Undergraduate Engineering Research Day at U of T, mainly since the use of genetic algorithms was such a novel and interesting approach to solving the matrix bandwidth reduction problem. The presentation, which was developed from 10pm – 3am the night before (since we only got results the same day) went very well and I was awarded the prize of a top presenter.
Overall my research experience was fun, challenging, and a great way to spend my summer. While I was paid roughly the same as when I was the Site Director for an entire YMCA camp, I had far less responsibility, got to work with some brilliant and dynamic people, and enjoyed the great flexibility in working hours that the academia world offers. My research team had very little supervision, and the vast majority of our work was all self-driven. The best part of the position was that I was constantly challenged. Whenever I began feeling comfortable and in control of a project, I was thrown something else that seemed impossible in the beginning, but was always successfully accomplished in the end. Furthermore, this project will serve as an excellent lead-in to my PEY work term in Spain with CYPE Ingenieros, and has opened the doors to future thesis work when I return to Canada in 2010 to finish my degree.