Monthly Archives: August 2012

General

Born free...

Having had a few conversations with engineers in person and on Twitter, it would appear that those that have coded or written complex spreadsheets all advocate that young engineers should make the time to learn at least a simple programming language or some other means that lets them model a problem through a construction they've made themselves rather than a packaged piece of software.  The ability to write your own analysis routine to test for various variables is invaluable when testing out a new structural system, or even for automating tedious calculations.  If you're really clever you can get Mathematica to do fancy things like the animation below in a single line of programming code.

The downside is that some of the packages to let you do this can be quite expensive, even for academic licences.  Whilst a student licence of MatLab can be purchased for about £30, grabbing a copy of Mathematica or MathCAD is going to set a student back around about £90.  If you're a practicing engineer then you're going to have to purchase a full licence which is going to be about the £1,000 mark.

So if you've never programmed or written code before in one of these sorts of languages, that can be quite an investment and one that could be seen as a bit of a gamble.  For example, most of our water engineers within the department swear by MatLab for manipulating large matrices and from the reading I've done it would appear to be much quicker than Mathematica on very large matrices, but speed is only half the story.  If speed really was the biggest concern, then users would write code in Fortran, C, or even the newish language Julia.  Personally I've never really got on well with MatLab, it just feels quite clunky to learn and I prefer to use Mathematica for tinkering and meddling with bits of code, it has lots of mathematical routines embedded so I'm not wasting lots of time writing routines to invert matrices etc and I can just get on and write.

I know that lots of engineers in industry are quite positive about MathCAD, but again this is an expensive program to purchase, particularly if you're not sure if it's what you need really and just fancy having a tinker about with it to learn.  If only there was a free version perhaps?  Well there is! In the form of a program called SMATH Studio which is very similar to MathCAD and is free to download and use, which has to appeal to your inner Yorkshireman if all you want to do is try and see how to use a piece of software like this for creating your calculations and a few simple models.  In fact it also has the ability to let groups work on the same sheet and collaborate in real time which is great if you're working on a session and there's an ocean inconveniently between you or you want to show someone else how to do something specific in the software.

If you're more mathematically minded and want something that has a bit more grunt with symbolic mathematics, then again there are various free packages out there and one that received warm praise is called SAGE.  I can't pretend that I've used it in anger myself, but it appears to create a local server that you edit files through a browser session on and several other PhD students I know all sing its praises.

But once you've created mountains of data from your laboratory testing and you want to undertake some statistical analysis, most institutions would reach for SPSS but the student licensing costs for this are mental compared to other pieces of mathematically focused pieces of software and from memory they're on a term by term basis as well rather than a perpetual licence.  This is where free alternatives such as the R project come to the rescue and their increase in popularity is gathering momentum with really good quality text books being published to help users learn statistics and the software in one fell swoop.

The added bonus for me is that these pieces of software are available for PC and Linux, so if you've an old computer kicking about that you don't know what to do with, then throw on a copy of Ubuntu and breath in some life to your old machine and start tinkering and messing with these bits of software... if you kill the computer through excessive tinkering, then it doesn't matter, simply repair, rebuild, and carrying on meddling... it's the best way to learn.  Particularly when there's no money to be lost as all of the software is free, you just need an existing computer, some time, and a desire to have a go.

General

Writing...

I've been reading a couple of blog posts about other students' writing environments (both digital and physical) and the I've been really interested in the approaches they take when it comes to software selection but I've really been struggling to follow why they go to such extraordinary lengths to set up bespoke writing environment.  We have a few mathematicians associated with our course and they all swear by how LaTeX, for example, saves them days and days of typing equations and how they couldn't possibly write any of their materials without it.  But the part I'm really struggling to understand is that it was created about 40 or so years ago to overcome typesetting problems and surely there must be something more effective available now after all this time?

002:365 - My brain hurts...

Whilst I have a copy of Scrivener and I'm used to writing large batch files in Vi and ViM from my days using SPARC SunOS stations, I still choose to do most of my writing in Word.  It has an outlining tool which I find useful, but the deal sealer for me is that I can make it dance when it comes to large documents with regards automation.  Through simply using styles and captions, I can have a simply written and elegantly cross referenced document up and running in seconds.  Whilst scrivener is intended to get your ideas down on a page and get writing, I just don't feel that it's quite there for technical documents, as figures should be numbered and cross-referenced, as should equations and I'm far too lazy to do this myself and I've sort of gotten used to Word doing the donkey work for me for the past 20 years on these elements.

Admittedly the equation editor is dreadful in Word and is to type-setting what I am to men's ballet.  I've overcome this though by using MathType 6.7 which makes all of my equations look uniform and well typeset, with the added bonus of having numbering macros and scripts embedded into Word that allows me to automatically number equations and cross reference them in my writing.

Another boon for using MathType is that I can colour code equations, something that might sound trivial, but actually can be really useful in presentations to grey out parts of the equation that you're not interested in for the minute or for making critical terms bright red to make them pop out on the slide whilst you discuss them with the students.  I know you can do this too with LaTeX as that's the technique that I use for embedding equations in this blog, but I create the equations first in MathType and then after I've pasted them into here I simply edit a few colour tags.

To be clear, I'm not criticising anyone's writing setup, the key to writing is finding something that works for you.  But there does seem to be a trend on several social media sites to push for methods of writing that avoid mainstream packages.  I understand that money is tight nowadays and every penny counts, but I've managed to get myself a copy of MS Office and Mathtype together for about £60 all in, I'm sure that it can be done cheaper using something like LibreOffice that comes pre-installed with Ubuntu, but I take the view that £60 is less than an hour of my charge out rate when I was in industry and doing it this way will save me countless hours.

I do like peeking into other student's writing environments, both physical environments and their digital environments, but I'd love someone to explain to me why I should adopt LaTeX over Word and MathType, particularly given that I'll be embedding a lot of vector graphics from OmniGraffle and Visio and I'm really struggling to see how these other sorts of environments will help me write more efficiently, but then I guess it's horses for courses...

Teaching

Code...

I'm spending a lot of my time tinkering in Mathematica lately, with two objectives really.

1.) I want to write some code to calculate the tedious geometrical aspects for me for my research.

2.) I think that Mathematica has some real potential for students who are trying to learn structures, particularly through the CDF files.

I've learned various programming languages over the years most of which I've taught myself, admittedly not to the level that perhaps a computer programmer would, but I've armed myself with just enough knowledge to be dangerous and get the task done that I want to achieve.  I've created countless spreadsheets that can do all sorts of elaborate calculations and also to use as validation calculations for more complex analysis models that I've created.

111:365 - Clever Clogs...

This is a skill that I take for granted for engineers, particularly of my age, and in most engineers that are a couple of years older or so I tend to find that they've spent some time abusing Fortran code in some fashion.  Fortran isn't a language that I've ever learned, but it's probably one of those languages that a lot of engineers have dabbled with at some point.

One trend I've noticed in a lot of younger engineers is a reluctance to create computer code and indeed even in creating what I would consider simple spreadsheets to make a calculation tool that can run several scenarios for them and validate an approach to determine the boundaries of their calculations.  Increasingly there seems to be a preponderancy for young engineers to select their FEM weapon of choice and throw triangles at it until the model begs for mercy, or to download an app that some other bright spark has written to do at least part of the process of what they want to happen.  None of this promotes a deeper understanding of how the process works though unfortunately.

101:365 - Studious...

Perhaps the days of writing your own code are long gone for young engineers? But part of me thinks that they are missing out on a real opportunity to structure their understanding of the steps needed to do certain tasks as they assemble their code.  Writing code to perform a task, whether on a spreadsheet or in a more formal programming language, is a great way to develop understanding and to explore the intricacies of design codes and I feel that younger engineers are missing out on this experience by only using off the shelf packages.

One encouraging aspect is that with the launch of the Raspberry Pi I can see that if this continues to gather momentum that younger generations will again an ability to tinker and break programming code and gain an appreciation of the advantages that breaking down engineering problems into a series of procedural steps can bring.

At least for the next year or so I'm still responsible for sculpting young engineers minds and I'm determined to develop a fun way of getting them to extend their understanding of how to write code or spreadsheets, I just need to work out a way of doing this within the confines of the resources I do or don't have available.

What do you think? Should engineers know how to programme or at least be able to create simple spreadsheets?

General Research Tutorial

Cable-Chains...

Part of the work that I've been undertaking on Mathematica is to create a series of sheets that will calculate the geometry of a cable-chain arch with a set of given parameters.  In part I’m interested in how the cable-chain arch can behave as a deployable structure and looking to build on the work of (Li, Vu, & Richard, 2011) to see how practical a cable-chain structure can be made with regards economy, efficiency, and robustness.  Essentially a cable-chain structure is a curved arch that is sub-divided into straight sections, with cables spanning across the base of two struts as can be seen in the figure below.  Simple versions of these types of structures are widely used for the likes of temporary and deployable aircraft hangers to create large open spans.

Pantographs

Now that I’ve got the makings of a simple Mathematica sheet up and running and I’ve taught myself some rudimentary programming and graphics manipulation skills I’ve managed to start to knock together what I feel are some high quality illustrations for my thesis.

I’ve done this with a mixture of Mathematica to create the base diagram, which I save as a PDF.  I then import the PDF into OmniGraffle to annotate the diagram and then export to a PNG file to maintain the transparent background, this figure I can then host for linking into blogs etc.  Below is a sample figure which shows how the number of segments (nSeg) affects the internal area available for habitation within a typical parabolic arch.

Cable Arches

Given that both of my brothers are colour blind and I’ve never done the test, I’m not convinced on my choice of colour schemes, but the good news is that it won’t take long to change if it turns out I’ve made my figures look like something off the set of Austin Powers.

So far I’m finding OmniGraffle quite limited compared to Visio that I’ve been using for my diagrams for perhaps 20 years or so.  I decided to use OmniGraffle though as most of my writing work is done on a Mac, although I also have a PC so I can always create the more complex diagrams on Visio if need be, especially as I’ve managed to get a legitimate copy from work for £12.

I'd love to hear how other engineers and academics approach creating technical figures and sketches on their Macs though, I've a feeling that I'm really missing out on something and there's got to be a much slicker workflow out there.

References:

Li, Y., Vu, K. K., & Richard, J. Y. (2011). Deployable Cable-Chain Structures: Morphology, Structural Response And Robustness Study. Journal for the International Association for Shell and Spatial Structures, 52(168), 83-96.