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_loadmethod 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_cflexuremethod 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
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.
beam.pycompatible to solve non-prismatic beams.
- Try to find a way around for the issue occurring in PR #14681.
- Support for non-horizontal beams.