5 ms·
This involved producing a state vector of 500 elements and evaluating the eigenvalues and eigenvectors of a 500x500 matrix on a CDC 3500 computer with approxima
by NamTaf 9y ago
This involved producing a state vector of 500 elements and evaluating the eigenvalues and eigenvectors of a 500x500 matrix on a CDC 3500 computer with approximately 35k of memory. To invert the matrix, he would need to read in a handful of rows and calculate the inverse of the matrix incrementally. No small feat.
Interestingly (at least to me), I can't help but put this into context by reflecting on the other pieces of software I'm familiar with that were developed in this era. In fact, the main one I do know does essentially the same maths operations as yours, and is also still used today. It's a little bit of code that basically underpins modern mechanical engineering and its name is derived from NASa STRuctural ANalysis.
I wonder if / by how long you beat them at developing what is fundamentally an FEA engine with modal analysis capabilities? :)
- wglb 9y agoSo it isn't immediately clear to me how these two overlap. Probably at the core there are some similar mathematical operations, but my professor's program's thrust was on control system stability analysis, and NASTRAN seems like a pretty sophisticated FEA wrapped in a lot of useful modeling and presentation code. The huge challenge for this was matrix operations on a machine that was way too small for the task, where intermediate results need to be written to tape. And it appears, at least in current versions, NASTRAN is significantly larger, and handles a broad range of engineering problems. This software was closer to LINPACK and EISPACK, which it predated.
- NamTaf 9y agoFEA, at its base, is solving for [x] in [F] = [k][x] where F is your input forces on a structure, k is the stiffness matrix and x is the resultant displacement, which when combined with material properties produces a strain matrix and therefore body stresses of the structure. It basically has to invert a many-dimensional matrix to do that, which is where most of the 'core' computations of a linear-static FEA solution sit. Of course, desire for more detailed simulation has always exceeded computational capacity, so slicing up the matrix operation and writing it to permanent storage (tape, disk, etc.) is a routine operation for all solvers like this. Expanding on from that, working out eigenvalues and eigenvectors for a matrix allows you to solve for harmonics, as you're well aware. Harmonics in a structural context are used to identify modal vibrations (e.g.: at what resonant frequency a drum skin vibrates for a given surface area, material and tension). It's essentially analogous to solving harmonics in electrical systems, like how a mass-spring-damper system is analogous to an RLC circuit. NASTRAN is the granddaddy of FEA packages and was produced for NASA (hence its name) way back in the early days of computational simulation for their space programme. Well before the days of desktop workstations, companies (including the one I work for) would bundle up their model, ship it off to a company that had spare mainframe capacity and a solver licence, have them run it during their downtime and then receive their results back some time later. Basically, as a kid of the 80s all of this sits in 'computing prehistory' for me so it was a fascinating (to me) exercise to place your work in the context of big software packages with which I'm familiar from a similar era. My last comment about beating NASA at writing a numerical solver for matrix inversion was just a bit of a silly joke, but it's similarly cool to realise that it's in fact true for other big numerical packages like LINPACK! :)