Why you need to learn programming as a computational modeller !
Dear Reader,
I hope you are doing well. Welcome to the weekend and to this edition of the newsletter.
Here are the contents for today:
- Technical Reflections: Why Programming is a must for a computational modeller.
- Behind the Scenes at CM Videos: Easy guide to trimming boundary entities in RVEs.
- Quote of the week: James Clear and Power of Action.
Technical Reflections
Why you need to learn programming as a computational modeller.
Something happened this week that reinforced the subject of this technical reflection. I had a student ask me a question about creating a part and partitioning thousands of time. I suggested that coding that process in will be better by using an iterative loop since the thousands of repeat can be done inside a loop with a little programming.
Once I gave that suggestion, it got me thinking about the importance of knowing how to write codes as a computational modeller. Honestly, a lot of the questions I get asked about doing non-standard ABAQUS modelling tasks is something that a code can solve. It seems we have a lot of people working in finite element modelling and their exposure is only to the CAE environment and they only use the tools available in the ABAQUS Graphical User Interface (GUI) to carry out the modelling. What many though do not know is the exciting world of ABAQUS Scripting where by using a Python code, you can make ABAQUS do things that can at times be beyond imagination.
It is on the above background that I want to highlight the importance for every computational modeller (student, industry staff or academic) to engage with learning one or two programming languages. The following are my reasons for advocating a world of computational modellers with cool programming skills.
Why you should learn Programming?
I will dive straight into the reason why you definitely need to learn one or two programming languages if you want to excel in the computational modelling space.
Recipe for Speed and Productivity
If you were told that there is a recipe that if you follow it, all your culinary exploits will turn glorious, would you not follow that recipe? Programming is a recipe for speed and productivity in computational modelling. For example, if you work with ABAQUS, the environment we are most at ease with is the ABAQUS CAE but it can be super-limited. There are commands inside of the ABAQUS solver which you do not even have implemented as a standard in ABAQUS CAE. So, to enhance your modelling speed and achieve better productivity outcomes, then learn one or two programming language which will help you talk to ABAQUS and utilize the unknown features of the ABAQUS solver.
Ability to speak to solvers
Another important reason for learning programming language is that it gives you the ability to speak to solvers. For example, ABAQUS has the ABAQUS Standard and Explicit solvers. This is the computational engine of the code and it solves for the stiffness matrix, deals with shape functions formulation and computation as well as all model dynamics management features. If you want to communicate directly with the solver, then you should be able to speak the language the solver understands. For example, ABAQUS speaks Python so if you want to instruct it directly, then you should also learn to speak Python. The ability to speak to these solvers means you can reduce the time taken to build models, interact with solver outputs and even interrupt execution of a solver as you so desire. This is an incredible skill.
Darlings of the industry
If you know how to work with a given programming language, one other important benefit is that you become darlings of the industry. That means, you will be greatly sought after by these organizations. This is because industry prioritizes speed and standardization of processes. With a programming tool, you can achieve these relatively easily. Also, you will have the tools to help you explore non-standard ambitious progrmaming goals of the organization.
Extended functionality
The functionality of most FEA solvers are quite limited if you only depend on the GUI that comes with the pre-processor framework of commercial solvers. The is an extended world of commands and instructions that are not accessible from the GUI-based pre-processor. To harness and exploit the extension of functionality of the solvers, you will have to use the programming language to reach such extended functionalities.
Side hustle potentials
For those who have entrepreneural dispositions, learning a programming language will help you begin to develop mini codes that you can compile into an executable for release to a wider audience at a small price. This is what I do with my bespoke codes. This can become a form of side hustle but beyond that it forces you to think of a wider usefulness and useability of codes you develop, which is a requirement for any software company. So, learning programming can only enhance any side hustling tendencies you may have.
Which programming languages should I learn?
I will reflect of these in a future newsletter. For now, the key ones worth considering are Fortran and C++, especially if you are going to work with common FE solvers as ABAQUS and ANSYS. Lets pause the discussion here for now and in future, I will discuss the pros and cons of programming languages and which one I will recommend for you to learn.
Behind the Scenes at CM Videos
Easy guide to trimming boundary entities in RVEs
My two recent videos on the CM Videos YouTube channel have been dedicated to trimming of boundary entities from a virtual domain. The first was for a 2D RVE for a unidirectional composite.
The second video is about trimming of boundary entities (in this instance differently shaped particles) for a 3D RVE (see below). It will apply for a particulate composite or voided structure.
Both videos use the Extrude-cut feature in ABAQUS to make the trimming action. The second vidoe is a lot more challenging as each boundary particle was trimmed individually.
If for any reason you have a large number of particles to consider in your modelling, then the approach I showed in the second video might not be suitable for you. My recommendation would be to automate it using a Python scripting approach. The core of what I described in the second video can form the heart of the code and you just have to find a way to loop it across the multiple number of particles you have in the boundary regions.
Quote of the Week
James Clear and the Power of Action
I restarted reading James Clear book called Atomic Habits. It is a very popular book. It speaks about how you can make little changes which have huge impact. This week I am taking my quote for the week from the following:
I vibe a lot with the above quote as it feeds into the principle that the actions you take, not the ones you dont, determines who you are. A lot of people have the best intentions, and plans in their heads but the ones who actually produce outcomes are the ones that take action.
This is why it is important that you are known for acting, showing up, taking responsibility because if you shirk from them, do not show up or just do nothing, then you have produced nothing.
Even as a computational modeller at MSc, PhD or even industry level, you must commit to take action. Those actions help you become who you want to be. Until you start writing down codes and running them, you may never know how good at coding you are.
The other side to that quote is that the accummulation of your actions define who you are. People of integrity are known for repeatedly showing up, telling their truths and not disappointing others. So, your actions are an indicator of the type of person you and and potentially could be.
That brings us to the end of this newsletter. Thank you for reading thus far.
I will catch up with your next week.
|
Thank you for reading this newsletter. If you have any comment about my reflections this week, please do email me in a reply to this message and I will be so glad to hear from you. If you know anyone who would benefit from reading these reflections, please do share with them. If there is any topic you want me to explore making a video about, then please do let me know by clicking on the link below. I wish you a wonderful week and I will catch up with you in the next newsletter.
Lets keep creating effective computational modelling solutions. Michael Connect with me on: Twitter | LinkedIn | Instagram | Tiktok | Mailing List Other Links
|
|
Welcome to new subscribers: If you are one of the new faces joining the CM Videos Insider Group, then welcome. I am pleased you are here and please do click the link below to see and hopefully read previous newsletter articles from me. Thank you.
|