Ejemplo n.º 1
0
 def energies_and_accelerations_update(O):
     model = featherstone_system_model(bodies=O.bodies)
     q = [None] * len(O.bodies)
     qd = [B.qd for B in O.bodies]
     #
     O.e_kin = e_kin_from_model(model, q, qd)
     O.e_pot_and_f_ext_update()
     #
     tau = None
     grav_accn = [0, 0, 0]
     qdd_using_f_ext_ff = featherstone.FDab(model,
                                            q,
                                            qd,
                                            tau,
                                            O.f_ext_ff,
                                            grav_accn,
                                            f_ext_in_ff=True)
     qdd_using_f_ext_bf = featherstone.FDab(model,
                                            q,
                                            qd,
                                            tau,
                                            O.f_ext_bf,
                                            grav_accn,
                                            f_ext_in_ff=False)
     assert approx_equal(qdd_using_f_ext_bf, qdd_using_f_ext_ff)
     O.qdd = qdd_using_f_ext_ff
     #
     X0s = FDab_X0(model, q, qd)
     e_pot_vfy = check_transformations(O.bodies, model.Ttree, X0s)
     assert approx_equal(e_pot_vfy, O.e_pot)
Ejemplo n.º 2
0
 def energies_and_accelerations_update(O):
     model = featherstone_system_model(bodies=O.bodies)
     q = [None] * len(O.bodies)
     qd = [B.qd for B in O.bodies]
     #
     O.e_kin = e_kin_from_model(model, q, qd)
     O.e_pot_and_f_ext_update()
     #
     tau = None
     grav_accn = [0, 0, 0]
     O.qdd = featherstone.FDab(model, q, qd, tau, O.f_ext_bf, grav_accn)
Ejemplo n.º 3
0
 def energies_and_accelerations_update(O):
   model = featherstone_system_model(bodies=O.bodies)
   q = [None]*len(O.bodies)
   qd = [B.qd for B in O.bodies]
   #
   O.e_kin = e_kin_from_model(model, q, qd)
   O.e_pot_and_f_ext_update()
   #
   tau = None
   grav_accn = [0,0,0]
   O.qdd = featherstone.FDab(model, q, qd, tau, O.f_ext_bf, grav_accn)
Ejemplo n.º 4
0
 def energies_and_accelerations_update(O):
   model = featherstone_system_model(bodies=O.bodies)
   q = [None]*len(O.bodies)
   qd = [B.qd for B in O.bodies]
   #
   O.e_kin = e_kin_from_model(model, q, qd)
   O.e_pot_and_f_ext_update()
   #
   tau = None
   grav_accn = [0,0,0]
   qdd_using_f_ext_ff = featherstone.FDab(
     model, q, qd, tau, O.f_ext_ff, grav_accn, f_ext_in_ff=True)
   qdd_using_f_ext_bf = featherstone.FDab(
     model, q, qd, tau, O.f_ext_bf, grav_accn, f_ext_in_ff=False)
   assert approx_equal(qdd_using_f_ext_bf, qdd_using_f_ext_ff)
   O.qdd = qdd_using_f_ext_ff
   #
   X0s = FDab_X0(model, q, qd)
   e_pot_vfy = check_transformations(O.bodies, model.Ttree, X0s)
   assert approx_equal(e_pot_vfy, O.e_pot)