Week 2: point_cflexure and remove_load methods

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 solvesolveset 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.

Leave a comment