Industrial Data Science
in C# and .NET:
Simple. Fast. Reliable.

ILNumerics - Technical Computing

Modern High Performance Tools for Technical

Computing and Visualization in Industry and Science


Interactive Visualizations for FEA

Visualizing Cracks - An Interview with Greg Thorwald, Quest Integrity

Quest Logo


FEA Visualization with ILNumerics expertI am a principal consulting engineer at Quest Integrity in the Boulder, Colorado, USA office.  In addition to consulting I am the principal developer of FEACrack™, a 3D crack mesh generator.  I am using C# for the FEACrack version 4 graphical user interface with the ILNumerics library, and am using Intel Fortran for the engineering modules accessed from the GUI.  Our engineering group provides consulting for a variety of industry clients using finite element analysis (FEA), and one of our specialties is fracture mechanics assessment, which is also known as “fitness-for-service” assessment.  To aid our consulting work we found we needed fracture mechanics software to examine and evaluate cracks in structural components.  In addition to FEACrack, I have helped develop the Signal™ Fitness-for-Service software.  Several of the crack solutions in Signal FFS were computed using FEACrack.

ILNumerics: Please tell us about Quest Integrity!

Greg Thorwald: Quest Integrity Group is a global leader in the development and delivery of asset integrity management and asset reliability solutions for our clients in the refining and chemical, pipeline, syngas and power industries.  Our services include furnace tube inspection for the refining and chemical industries, in-line inspection for the pipeline industry, steam reformer tube inspection for the syngas industry, as well as fitness-for-service assessment, remaining life assessment, structural integrity, failure analysis and materials consulting for various industries including the power industry.  We specialize in condition assessment for fired heater coils, unpiggable pipelines, steam reformer tubes, storage tanks, gas turbines and other assets.  

Our professional team is comprised of experienced NDT specialists, reliability engineers, structural integrity and materials specialists, and NDT tools and software development engineers backed by a team of talented and dedicated client support personnel.

ILNumerics: Why do your customers decide for FEACrack?

Greg Thorwald: FEACrack quickly generates the 3D crack meshes and finite element analysis (FEA) input files needed to compute crack front values like the J-integral and stress intensity K, which are needed to assess if a crack is stable or will cause a fracture failure.

ILNumerics: Which challenges were you facing for FEACrack v4?

Greg Thorwald: A new graphical user interface (GUI) was needed to display the crack meshes, display the FEA results as a color map on the mesh, and show the deformed shape of the crack mesh.  I needed a graphics visualization package for the new GUI that could be used easily from C#.

ILNumerics: Which tools have you been using so far and what made you look for alternatives?

Greg Thorwald: The FEACrack version 3.2 GUI was written in Visual Basic 5, which had become obsolete, and was using an older version of OpenGL.  The mesh images were generally static and did not have a good way to provide interactive control using the mouse.  I was looking for a graphics visualization package that was easy to use and could provide interactive control of the mesh view.




ILNumerics: Which parts of FEACrack v4 are now supported/improved by ILNumerics?

Greg Thorwald: The mesh graphics are enormously improved in FEACrack version 4.  The ILNumerics library provides interactive mouse control to rotate, move, and zoom on the mesh, along with using controls like buttons and menus to set specific views.  The controls also support keyboard accessibility control of the mesh view.  Since the crack region can be small compared to the overall geometry size, the visualization needs a wide range of zooming to view the whole mesh and examine the crack front close up, which ILNumerics provides.  The crack meshes can be very large with hundreds of thousands of coordinate points, so using the ILNumerics arrays to store the data improves the memory management.  The ILNumerics mouse events allows me to update mesh data displayed in the GUI when the mouse button is released.

ILNumerics: What value are you getting out of ILNumerics today? Did utilizing ILNumerics change the development process and if ‘yes’: how?

Greg Thorwald: The ILNumerics library is easy to use from C# and fit well into the Model-View-Presenter design pattern for the new GUI.  Developing the graphics window in the new FEACrack GUI was very easy for me using ILNumerics.  Being able to use the ILNumerics trial version to run the examples that the support team provided and to create a working prototype were very helpful.  The trial version allowed me to confirm that ILNumerics provided the graphics I needed.  The technical support team answering my questions was crucial in helping me make quick progress.

ILNumerics: I know you were using VTK before. How did you feel about interfacing a native framework from your GUI application? What frustrated you?

Greg Thorwald: Adding the ILNumerics library reference to the C# project to get started is very easy, and so is using the ILNumerics graphics and arrays from within C#.  I feel that I was able to make quick progress in getting the crack meshes visualized in the ILPanel.  Since I am using C# for the new FEACrack GUI, I am concerned that VTK has not had a recent C# supported release.  That is just one reason using ILNumerics is a better choice for the future of FEACrack.

ILNumerics: What was the moment you *knew* you had made the right choice with ILNumerics? What did we do to prove that you were getting real value out of the product?

Greg Thorwald: Using the ILNumerics trial version, I had written enough new code in a prototype to fill the Array buffers with the mesh coordinates and element data, when I ran the program the mesh picture appeared in the Panel and I thought: wow, that was easy!