From time to time, I like to share interesting articles that the readers of the blog send me… because the FEA community is large and a lot of CAE engineers in different countries are using this technology for various reasons.
Today, I am sharing an article written by Nick Ananchenko, an Ukrainian Mechanical Engineer who used his skills to build his own module in Code_Aster in order to calculate limit stresses in pipes caused by corrosion.
This allowed Nick to understand how the Code_aster solver works and how to add some really useful functionalities to it. A great and interesting challenge!
Here’s a few words about Nick Ananchenko and the article he sent me about his work.
Hello everyone, my name is Nick Ananchenko, and I am mechanical engineer, with great passion for my profession. I used to work in Paton Electric Welding Institute, Kiev, Ukraine where I learned how to use FEA packages. I have been involved with research work, along with some projects for Ukrainian nuclear industry. I also did an internship in Concepts NREC, a worldwide leading company in turbomachinery software, as a software engineer, where I learned a lot about software development.
Check Nick’s Linkedin profile here
You can also contact him by email: Nikita_Ananchenko@i.ua
The Following article is showing my most recent freelance project, made in collaboration with Paton Electric Welding Institute for Ukrainian nuclear industry, about FEA software development for solving most relevant industry problems:
Why should you develop your own software module?
Development of software or software modules has always been a part of solving engineering problems, and nowadays tendencies showing that software development industry is only extending in engineering society.
The fact that the source codes of Code_Aster and CalculiX are available for modification plays a big role in popularization of free software among the engineers along the world.
The first application that pushes the development of custom software modules is the automatization of large amount of monotonous job, which can take a lot of not efficiently used time. Indeed… who wants to repeat over and over again tasks that can be automated? Engineers are not robots and like innovation rather than repetition.
The other application of custom software modules is the ability to solve nontrivial and unique problems, using scripts which can be written by yourself.
Solving Unique Engineering Problems with scripting
As an example, I can tell about my own experience. While doing research on 3D Print technology a couple years ago, I had to write a number of scripts and subroutines in software to simulate additive technology process, and it took a lot of time. Nowadays, after this project is finished, some FEA packages (Ansys, for instance) already have built-in modules for 3D Print simulation. As 3D Print is becoming an important part of many industries, companies that developing FEA software started creating their own modules for additive technology. But there are still a lot of engineering spheres with narrower specialization, which need software developments.
Each industry has its own unique problems, and one way to solve some of them is using new developments (elementary calculation, material behavior, etc.) in well-known finite element method. Some projects require individual approach to solve a particular problem.
How I developed my own Code_Aster Module to calculate limit stress in pipes with defects?
The most recent project that I have done for nuclear industry is defining limit stresses in pipes with defects.
Many pipelines in nuclear stations have already been in service for 40 years, working in aggressive environment so erosion and especially corrosion defects is a common thing.
The problem is to define the service life of damaged pipes.
To solve it, a methodology for defining limit state stresses of defected pipes was released:
Stresses have to be calculated and tagged when they reached plastic limit at each point of pipe’s cross-section with defect. It gives the least conservative way to define defected pipe’s residual strengths.
Realization of this methodology in real life is problematic, as a lot of data with erosion/corrosion defects needs to be processed, and each case needs a complicated calculation.
Turns out an idea:
If we implement complicated stress calculation in FEA package, the user will just have to input defect parameters (depth and angle in circumferential direction) received from ultrasonic nondestructive testing of pipeline, launch the FEA calculation, and get limit stresses as an output!
FEA automates a huge amount of monotonous work, as a large number of pipelines needs to be calculated, and then each defect in each pipe needs to be analyzed: if it’s allowed for further exploitation, or structural repair is required.
Not to mention that methodology is quite complicated, so each engineer would spend time first to understand how to calculate limit stresses.
This idea was implemented in the “Pipe Module” developed using source code of Code_Aster for limit stress calculation.
Below is short example of usage:
The Pipeline is first modeled with pipe finite elements and places with erosion/corrosion defect are modeled with “defect” characteristics of pipe finite element.
We suppose for example that the defect location in a pipeline is mapped with red squares like in the figure (1). The finite elements number 25 and 27 are pipe elements with “defects” where the user has defined the following input defect parameters: depth and circumferential angle, as shown on figure (2) (extract from Code_Aster command file).
After calculation, the result are received in a table where limit stresses are obtained at each node of the finite elements number 25 and 27- see figure (3).
This project, which lasted about a year is a good example of developing software modules beneficial for engineer:
Instead of tons of monotonous jobs, we can use a user-friendly FEA package with a graphical interface and for the company, it is a very useful automated calculation process, which used to take a lot of such resources as time and efforts.
Every engineer with programming skills can make his own developments to solve particular problems!
First thing to realize that it takes time to understand the general logic of a particular code like Code_Aster.
For example, it took about two months to create this exact module, but understanding internal Code_Aster language took more time, and it was kind of challenging for me, as for an engineer.
Knowledge of object-oriented programming is very helpful. Huge amount of documentation for developers is available on Code_Aster website, to help figure out the logic of the software. Also, there are presentations in the “Training” section of website, this is the first thing you need to learn, if you decide to make developments in Code_Aster.
Therefore, everybody who gets interested can open new horizons with software development.
If you interested to follow the work on this module, you can follow our Linkedin Page: https://www.linkedin.com/company/strengthmodulesfea
– Nick Ananchenko
Thank you Nick for sharing your work and your experience with your fellow CAE engineers on the blog, I really hope this will motivate many engineer to become more creative and start developing their own tools!
Being an engineer is not only being someone able to use available tools, it’s also being able to develop your own tools and the job requires it!
If you have questions for Nick, please don’t hesitate to contact him at his email address: Nikita_Ananchenko@i.ua
You can also leave comments on the blog article as usual and let me know what are your thoughts or your experience in this area!
For example: Have you also developed something useful in the past? Was it hard? What is your experience with such work?
George Montgomery says
In ANSYS I developed a transient thermal analysis model of a steam turbine rotor during startup. The heat transfer coefficients were developed using Visual Basic in an Excel spreadsheet. The resulting stresses are used to evaluate any crack that may be in the rotor.
An explanation is here:
http://georgemontgomerype.com/turbine.htm
I would like to do this in Code Aster. Hopefully using Python will help.
Nick says
Hello, George! Very interesting and challenging project, thank you for sharing! I also have plans for development software for turbines and compressors, we’ll see how it will go.
I’m not an expert in fracture mechanics, but if I understand you correctly, you’ll need subroutines to define a fracture toughness as a function of temperature, and SIF as a function of stress and temperature in FEA package? Though, it’s not software development project – it’s more likely R&D project, I can give you some basic instructions on Code_Aster language logic, so you could implement missing capabilities into FEA. You can contact me, if you’ll decide to do it.
Thank you, Nick.
anecito silvano says
very inspiring. thanks for sharing this possibilities.
Nick says
Thank you, Anecito! It was a pleasure.
Nick.