Open Agent6-6-6 opened 1 year ago
@robbievanleeuwen, noted as well just now that the docstring in AS3600.moment_interaction_diagram
also needs to be updated as it does not reference the updated limits or control point changes that were made. For example, docstring still references lower limit as being zero curvature tension
, but you've redefined it as ("N", 0.0)
, similarly for the control points reference kappa0
, but this is not included any more.
Thanks for this, I think this ties in closely with the third task in #68 so hopefully I can fix this as well!
@robbievanleeuwen, I've noted one peculiarity with the way the improvements to M/N curves have been implemented as merged in #66.
When dealing with a
max_comp
scenario or a proportionally lower upper limit, then when usingn_points
orn_spacing
it puts in the evenly spaced points not between the limits being lower value of upper limit ormax_comp
, but over the entire default range and the unused points are truncated atmax_comp
. i.e. it just culls some of the points, rather than spacing the defined points between the refined limits if they were lower or higher once max_comp truncates the axial loads to consider for example.This leads to some issues when plotting the results with a loss of fidelity in the curves due to a significantly reduced number of axial and moment points being returned.
So if you're using a relatively low
max_comp
, say for wall design where limits are much lower (in NZ for example singularly reinforced walls it can be as low as 0.015Agfc), then you only get a fraction of the points specified because of the significantly reduced axial load range, and potentially a very jagged plot as a result.For example, this plot has low
max_comp
, but with default n_points = 24, because of the reduced range due to the upper limit only 6 intermediate points are plotted in addition to any defined control points, the others were truncated.Resolution I think it would potentially be as easy as distributing the points between the refined limits that will be returned from the method, rather than spacing them between the larger original range of axial load points. So if
max_comp
is lower than the axial load corresponding to the upper limit, redefine the upper limit asmax_comp
. Then generate the evenly spaced points between the revised limits for the full specified number of points being returned to maintain a "nice curve".Hopefully, that's all clear and made sense!