This week started with working on PR #17001. The algorithm was extended to handle concave polygons as well. I came up with a new method which I have explained in the wiki page that I have created. It has to be tested against some symbolic coordinates to make it a complete method.
The API of the CrossSection class has been changed as discussed in the last week. The documentation of the class has been completed.
There were some discussions being done on the necessity and the importance of the CrossSection class. Despite the CrossSection class providing some very useful functionalities of calculating the section modulus, the first moment of area and polar modulus, is there really a need for such a class? After getting some pros and cons listed out we got to a conclusion, that it would probably be better to add these functionalities directly to the geometry module.
But the question of complex geometries like T-shape and I-shape still remains. The alternative to this that we came up with in the discussion was Boolean operations on simple polygons. There are some clipping algorithms like Vatti algorithm and Greiner Hormann algorithm which might be helpful in implementing these.
In short, this is what is left to be done:
- Transferring the cross-sectional properties defined in the CrossSection class to the geometry module
- Making the beam class to accept any geometry instead of the second moment that is currently accepted from the user.
In later stages, I might try to work on the Boolean operations as currently there is a limitation of time and the implementation of the stage -II awaits.
After this, the stage-I would end and I will have to start with the next implementation i.e. the column buckling calculations
- Completing leftovers of the previous week
- Starting off with stage-II
The work and the progress during the stage-I were full of ups and downs. Will try to make it smoother this time. Will try to discuss the implementations with the mentors and the members in even more detail. Hope to have a good coding week.
Will keep you updated!