by Patricia Gerdes
When I first heard of Coupi’s internship opportunities, I was in the middle of hunting for any reasonable job or internship that would give me some experience in my current field of study, or where I would at least be working primarily with those in my field. I had just completed my second year in the B.S. Mechanical Engineering program at the University of Alaska Fairbanks, and my resume was a little… unfocused.
I came to UAF after completing undergraduate degrees in mathematics and marine biology at the University of Alaska Southeast, Juneau campus. In Juneau, I worked first as a student tutor, then as a math specialist, and also as a firefighter/EMT. In Fairbanks, I worked a brief stint in plant pathology and as a barn manager. I enjoyed all those experiences, but I couldn’t really see those particular jobs as my final career choice. Coupi, Inc. offered me a chance to work alongside other engineering students, for a physicist, with modeling software capable of addressing significant engineering problems. It sounded like an excellent chance to experience and explore possible paths.
As a Coupi, Inc. intern, I worked primarily as a bug tester for the Windows operating system. While Linux is a favorite among programmers, and Mac has some rather nice features, Windows is still the most common operating software in the business world. The Coupi software needed to work well on Windows, and that was my focus.
Learning a new language
Of course, to fully test the software, all the interns needed to first learn a new language: Lua. We started with simple tutorials in third party freeware, then moved on to working with and modifying a number of sample Lua scenarios that Coupi’s software development team had created over time.
From there, we produced unique scenarios of our own, which became progressively more complex as we became more confident. For instance, one of my earlier scenarios was a cone that was filled with an assortment of shapes using a grid function, and then spun and agitated using Coupi’s control function method.
One of my favorite simulations was a comparison of two silo hopper designs, one with a flat opening, and one with a conical base. To create the full scenario and resulting simulation required several smaller scenario scripts, but the result was worth the work. Using various visualization options, such as showing the velocity of the particles we could see the smaller details that define the differences in the flow for the two silos.
For instance, by the time a quarter of the material remained, the top layers in the flat-bottomed silo were completely jumbled, while the top two layers within the conical silo still were relatively intact. Furthermore, the volume of relatively stationary particles near the silo walls was much higher in the flat-bottomed silo. In principle, this means that the flat silo developed dangerous (to anyone working inside) funnel flow at the top of the load earlier and it retained older particles longer (presuming the silo would fill over time with whatever crop material was used). Both features have implications for silo design.
Improving the software
Once I was comfortable with Lua, I spent the bulk of my time on bug testing, identifying features that could be improved, and working on the online documentation. In general, I’d set myself a task within the documentation, try to figure out how to do it in Coupi, and then write the entry for it. This method gave me the opportunity to see what could be done, what couldn’t be done, and what features might make running scenarios easier for users. Sometimes the development (dev) team appreciated my requests and made changes to the interface. Other times, they would tell me why they really did not want to move a feature from one widget to another, and I could add that information to our growing manual.
As with anything worth doing, there’s still more left to do. We didn’t quite finish the manual, as there were portions that needed someone with a higher level of understanding to discuss some features. Also, since the software is still quite young, components and widgets are still growing and changing as time passes. Also, my skill level and proficiency with the Lua language and utilizing the prebuilt Coupi Lua modules increased over the internship; by the final three weeks, I was finally at a place with coding knowledge where I was able to work on and develop some more interesting and complex scenarios, ones that touch on real world issues. Since these simulations take significantly more time to run, I was not able to do nearly as much as I would otherwise have liked with these simulations.
I also encountered some concepts I hadn’t studied in any sort of depth before. For instance, one of Coupi’s models includes using the surface energy of the bulk solid particles, often represented by the greek letter gamma, ɣ. It’s clear that encountering these concepts through my internship will be a boost for my future career. In the first week of one of my current courses, Nanomaterials, we started discussing surface energy, which becomes increasingly important with smaller and smaller particle sizes. Thanks to my internship, this concept was already familiar.
Overall, this internship was a great experience for me. I enjoyed my time working with my fellow interns and with Dr. Johnson. With Center Ice’s open floor plan and Coupi’s collaborative atmosphere, we had a level of efficiency and effectiveness I hadn’t really encountered before. Dr. Johnson gave us the ability to choose our own projects and work to our strengths, but he also checked in with us frequently enough that we never spent too long working on any single or unproductive line of exploration.