How to learn a new finite element analysis code

Whenever you’re setting out to learn a new piece of scientific software, the learning curve can be steep. I’ve been working with nonlinear finite element analysis (FEA) software throughout grad school and have a pretty clear idea about the common components of an FEA code, but I am currently learning a new one and am reminded that learning a new framework always requires a lot of effort.

Finite Element Software

I’d like to share the tried and true method I have used to become proficient in GT STRUDL, Abaqus, and now DIANA. If you are serious about learning a new nonlinear finite element analysis software, here is how I approach it, in step-by-step detail:

  1. Read the entire “Getting Started” manual and complete every exercise. Many of these problems will be irrelevant to your work, but the goal here is to familiarize yourself with the program’s philosophy and technical manuals. So, go ahead and complete available tutorials, even if they seem unrelated to what you want to solve. As you complete these novice-level tutorials, simultaneously immerse yourself in the reference manuals, seeking to understand the more granular details of what you are learning. If you are interested in learning Abaqus, you should check out my Abaqus tutorial.

  2. Attend an introduction course taught by the actual software vendor. I went to the Introduction to Abaqus course taught by Simulia. This is expensive and lasts a full week, but there is nothing like being taught by the folks who develop it. There is an added benefit of traveling to a vendor-taught course: access to the experts. I was able to discuss my research problem with Abaqus engineers and find out how they would attempt the solution. The instructor even told me to feel free to bypass support and email him directly when I ran into problems (invaluable!).

  3. Start solving problems with known solutions. The best place to start here are known problems that you can easily solve by hand. Then, start solving problems from your mechanics and structural analysis textbooks for practice. If you already know another FEA software, another great exercise is to try matching results between the software you know and the one you are learning. At this stage, you should start gaining confidence in your understanding of the new code.

  4. Start simple on your problem and gradually add complexity.The very worst thing you can do is try to create a complex nonlinear model in one try without first validating the constituent components. If something isn’t working, you won’t know where the problem is if you build it all at once. This means you should analyze the structure using elastic properties before adding material nonlinearity. You should simulate it as plain concrete before introducing reinforcement. You should analyze for monotonic load before you apply cyclic loading. Gradually introducing complexity like this will give you confidence in your results.

  5. Consult the example problems manual. Whenever I get stuck, I can usually find an example problem that will show me how to advance from point A to point B. Whether I’m stuck modeling geometry, boundary conditions, or material properties, this is where I go first for answers after I gain a basic proficiency in the software.

  6. Join the relevant online community. For Abaqus, you can’t beat the Yahoo group. You’ll gain a lot of perspective from scanning the headlines in the daily or weekly digest emails. Most user communities like this are really generous and there are several members who really rise above to help new users troubleshoot problems. If you are conducting new research, it’s unlikely there are folks who know your exact problem, so I’ve found this resource best for syntax/GUI-type questions.

  7. Develop friendships with expert peers. Diagnosing material convergence issues in nonlinear FEA can be maddening, and it’s great to have someone to discuss simulation strategies with. As a result of a few strategic email inquiries, I now have several friends worldwide, mostly grad students, who I can contact to discuss in-depth questions and ideas. These colleagues have used the same software that I use to solve similar problems. I can send them software output when there is a problem and count on them to take some time to think about my problem and help me determine how to stabilize a solution, for instance. These relationships are invaluable to me and I hope to regularly collaborate with these peers throughout my entire career.

So there you have it. Your mileage may vary, but this approach should help you advance one step closer to expert status. It’s also worth noting that this basic learning model is not limited to FEA codes, but can be generally followed to learn other types of scientific software such as engineering design programs, numerical methods, or programming languages.

You can read more about me, follow me on Twitter, subscribe to this blog by RSS or email, and find many more posts in the archives.