I'm looking to develop my knowledge to get hired as a stress engineer for my first job onwards. It seems like reinventing the wheel sometimes to try and understand how the software works. Is it bad / waste of time to do that?
The answer is a resounding YES! You will learn next to nothing by running some silly example through Fluent or ANSYS or COMSOL. When I was in school there were no commercial codes. If you needed something, you had to create it yourself. I am glad that I did because I learned so much, which I put to good use. If I wanted to plot the results, I had to write that software too!
In my opinion, the answer is negative! And a reasoned and important negative!
You can finally write a simple 2D code for a simple material with the finite element method! What commercial software, especially Fluent, does, is the result of their years of experience. In good commercial software, there is a database of materials and solution methods for different physics!
For example, structural solution methods for elastic, plastic, hyperelastic materials, uniaxial, biaxial, and triaxial nonlinear materials, composite materials, reinforced with fibers, and many other materials and solution methods exist in these softwares, which are sure to be efficient coding. It is difficult and impossible for all these areas!
A lot of work has been done by these softwares and we have to reach new achievements by using them! What you did bravely! It is commendable in its time! I myself use commercial software not only for analysis, but also as material and fluid resistance laboratories, and this work is very enjoyable. In fluid analysis software such as Fluent, you can use user-defined functions. You can customize this software! And this last one is really great and I suggest you get into this topic!
No, it is not wrong to reinvent the wheel. However, the purpose of doing a reinvention should be obvious, and even though it is difficult, you should try to have a clearer understanding of your flow to a conclusion so that when you get what you set out to do, you get it.
Reinvention provides a new way to quickly and smartly do the same thing, which may eventually lead to a reduction in cost and provide safety and profitability. Other considerations are waste reduction when processing the material to achieve your aim.
In confirming the use of commercial software instead of personal codes, I mean the use of software in design issues.
When you are faced with real systems and requested by a client, you cannot tell him please wait until I write some code like Fluent or CFX or ANSYS and then do your work! That way he will take the job away from you!
But for academic and research work, it is good to run the codes that we have written ourselves. Academic and research works usually have much more limited degrees of freedom and they can be written and even a brief database can be prepared for the properties of materials and fluids in the analysis.
If you are asked to do an analysis on a hydraulic valve of a huge dam with a lot of dimensions and details, it is definitely a team's work! And the codes that we can write with conventional academic methods will be limited to the analysis of a structure with a simple shape.
Clearly, researchers will come down on both sides of this question. I go back about 40 years in the Computational Science field. My choice is to write my own solvers whenever possible. For me, it is very important to understand the details of how the solver operates so that I may identify any numerical pathologies that occur. All intricate computational physics algorithms have difficulties; that is their nature. I have worked on both the research and applications side of this field. What I find is that when people get into the habit of just "running the code", they steadily depart from an understanding of the code. Of course, there is a balance that is in need of achievement. An engineer is unlikely to write his own code for the CFD or CSM analysis of a full aircraft, yet he or someone on the "team" must understand how to judge a commercial code's behavior. With that in mind, I will stand my ground, the best way to learn is to study the algorithms and write your own suite of computer codes.
On the subject of aircraft design, I should mention that I took graduate level structural analysis from C. Y. Lin, who designed the fuselage of the C5A, who studied under the great Timoshenko. I also worked for W. R. Waldrop, who wrote the original 3D transient CFD code for NASA modeling the Saturn V engines. Plus I had the privilege of studying internal combustion engines under Charles A. Sampietro, who designed the Rolls Royce Merlin. A good education is really important and these are but a few of those I have been blessed to learn from.
Developing finite element analysis (FEA) knowledge and expertise can be approached through both writing your own solvers or utilizing commercial software like ANSYS, NASTRAN, and others. The choice between these options depends on various factors, including your specific requirements, available resources, and desired level of proficiency. Writing your own FEA solver can be a valuable learning experience that provides in-depth knowledge of the underlying principles and algorithms. It allows you to understand the intricacies of FEA, customize the solver to suit your specific needs, and gain a deeper insight into the numerical methods involved. This approach can be particularly beneficial if you are interested in research, developing new techniques, or working with specialized applications that may not be covered by commercial software. However, developing your own FEA solver requires significant time, effort, and expertise in numerical methods, programming, and computational mathematics. It can be a complex and demanding task, especially for complex problems or advanced analysis techniques. Additionally, it may require a strong foundation in theory and prior experience with FEA to ensure accurate and reliable results. On the other hand, utilizing commercial software provides several advantages. These software packages offer user-friendly interfaces, a wide range of pre-built solvers and analysis capabilities, extensive documentation and support, and often have been extensively validated and benchmarked. They provide efficient and robust tools for modelling, meshing, solving, and post-processing FEA problems, making them suitable for a broad range of applications. Commercial software also includes advanced features and specialized modules for specific industries or analysis types, saving you significant development time. Using commercial software allows you to focus more on the engineering aspects of the analysis rather than the software development itself. It enables you to quickly iterate and explore different design scenarios, perform complex analyses, and benefit from the experience and expertise of the software developers and the wider user community. In conclusion, the choice between developing your own FEA solver or utilizing commercial software depends on your specific needs, resources, and goals. If you have the expertise, time, and specific requirements that are not met by existing commercial software, developing your own solver can be a valuable learning experience. However, for most engineering applications, commercial software provides efficient and reliable tools that allow you to focus on engineering analysis rather than software development. Ultimately, the decision should be based on a careful evaluation of your requirements, available resources, and the level of expertise you aim to achieve in FEA.