GSoC Community Bonding Period Ends
Planted May 27, 2024
What is the community bonding period?
The GSoC Bonding Period allows us to setup the project, interact with the community , get familiar with the documentation, or as I would like to put it, getting prepared for the coding period so you can start coding effectively.
Multiple interaction and QnA sessions were taken by Gooogle which to familiarise us with the entire process and also helped me get a new perspective on security, AI and inclusivity. The entire registration process was pretty smooth thanks to the entire team and my mentors who reminded and helped me through all the steps.
Discussions and Coding Period Start
An Existing Pull Request
I will be working on the continuum_mechanics module this summer and started by a discussion on a previous issue in the Cable class with my mentors Advait Pote and Ishan Pandhare. Some improvements and failing doctests were discussed on GitHub as well as on a Meet. I will be spending my first week on fixing the precision tests and getting the PR merged.
My initial attempts and failure
The current Cable class accurately calculates the tensions, reactions etc. at various points under the presence of concentrated or distributed loads. For this purpose it take the coordinates of the lowest point for cable under distributed loads and performs it operations, an attempt was made by me to take length of the cable and find out the coordinates of this lowest point (or sag). I attempted to form equations of a parabola and its length using a a formula for arc length
eq1 = Eq(a * x1**2 + b * x1 + c, y1)
eq2 = Eq(a * x2**2 + b * x2 + c, y2)
arc_length_expr = integrate(sqrt(1 + (2 * a * x + b)**2),(x, x1, x2))
eq3 = Eq(arc_length_expr, length)
solution = solve((eq1, eq2, eq3), (a, b, c))
However , I wasn’t successfull in getting a result and realised its due to the arc length formula and we might have to use a numerical method to get results. The current method , hence works fine for the time-being. Further Improvements Some additions will be made to the Cable class in the form of a Draw method and changes in solver to get some additional results to be used in the Draw method. As an idea we can also make a method to solve for concentrated loads where length is predefined and positions have to be determined. Currently it works by validating if the positions of the loads is valid. This way the module can be improved further. I will attempt to do the same as a part of extended project.