jacob
That's correct, coz the solid is driven by an external load, gravity. Then the x,y,z disps appear correct but the angle reported at pivot is wrong (the graph). But when you try to drive the solid with an angle disp or a moment history is when it 'breaks' @ >= 1rad. I think both are related, the wrong rot angle reported in the pendulum and the inability to let the pivot being driven by a large rot/moment BC/load history.
I found in the solver code, in file calc_bt_ops.py this function, which seems to shift angle values, but I'm yet to digest what it really does and how/where is used.
# ==============================================================================
def red_ang_disp(ang):
""" """
ang = ang[np.isnan(ang) == False]
ad_1 = np.max(ang) - np.min(ang)
ang_2 = np.zeros((len(ang), 1))
ang_2 = ang
ang_2[ang > pi] = ang_2[ang > pi] - pi
ad_2 = np.max(ang_2) - np.min(ang_2)
ang_3 = np.zeros((len(ang), 1))
ang_3 = ang
ang_3[ang > 3 * pi / 2] = ang_3[ang > 3 * pi / 2] - pi
ang_3[ang < pi / 2] = ang_3[ang < pi / 2] + pi
ad_3 = np.max(ang_3) - np.min(ang_3)
if ad_1 == min(ad_1, ad_2, ad_3):
return ang
elif ad_2 == min(ad_1, ad_2, ad_3):
return ang_2
elif ad_3 == min(ad_1, ad_2, ad_3):
return ang_3