Exams kept me occupied for previous 11 days so I wasn’t able to contribute much. Coming to this week’s work, I created two pull request:
- #14751 :This PR implemented
remove_load
method to remove previously applied loads on the beam object. This method is little different from adding a negative load to make net equal to zero and would work only if that particular load exists on beam. - #14753 : This PR implemented
point_cflexure
method to find point of contraflexure.
#14751 also included applied_loads
method which keeps a track of all load applied on beam.
It is different from b.load
as it treat each load as a separate entity. load
property would sum up all the loads at a particular point but applied_loads
will still show them as separate loads. For example
>>> b.apply_load(4, 2, -1)
>>> b.apply_load(2, 2, -1)
>>> b.load
6*SingularityFunction(x, 2, -1)
>>> b.applied_loads
[(4, 2, -1, None), (2, 2, -1, None)]
The only difficulty with #14753 occured in finding solution of moment_curve
. Actually moment is zero outside the spam length too, which made solve
to return a solution in form of Interval
which is not a compatible return type for solve
. solveset
was of no help too as it can’t be used with multivariate expressions. The problem, however, was solved by wrapping bending_moment
with a Piecewise
function with its value equal to float("nan")
outside the spam length.
Next Week
- Make
beam.py
compatible to solve non-prismatic beams. - Try to find a way around for the issue occurring in PR #14681.
- Support for non-horizontal beams.