def shift_gently(sites, mersenne_twister, angle=5):
    axis = mersenne_twister.random_double_point_on_sphere()
    r = matrix.sqr(
        scitbx.math.r3_rotation_axis_and_angle_as_matrix(axis=axis,
                                                         angle=angle,
                                                         deg=True))
    return create_wells(sites=sites, mersenne_twister=mersenne_twister, r=r)
Beispiel #2
0
 def __init__(O, mersenne_twister, n_sites):
   if (n_sites > 0):
     O.sites = [matrix.col(mersenne_twister.random_double_point_on_sphere())]
   while (len(O.sites) != n_sites):
     O.sites.append(O.sites[0]
       + matrix.col(mersenne_twister.random_double_point_on_sphere()))
   O.A = joint_lib.spherical_alignment(sites=O.sites)
   O.I = spatial_inertia_from_sites(sites=O.sites, alignment_T=O.A.T0b)
   #
   O.wells = create_wells(sites=O.sites, mersenne_twister=mersenne_twister)
   #
   qE = matrix.col(mersenne_twister.random_double(size=4)).normalize()
   O.J = joint_lib.spherical(type="euler_params", qE=qE)
   O.qd = matrix.col(mersenne_twister.random_double(size=3)*2-1)
Beispiel #3
0
 def __init__(O, mersenne_twister, n_sites):
   if (n_sites > 0):
     O.sites = [matrix.col(mersenne_twister.random_double_point_on_sphere())]
   while (len(O.sites) != n_sites):
     O.sites.append(O.sites[0]
       + matrix.col(mersenne_twister.random_double_point_on_sphere()))
   O.A = joint_lib.spherical_alignment(sites=O.sites)
   O.I = spatial_inertia_from_sites(sites=O.sites, alignment_T=O.A.T0b)
   #
   O.wells = create_wells(sites=O.sites, mersenne_twister=mersenne_twister)
   #
   qE = matrix.col(mersenne_twister.random_double(size=4)).normalize()
   O.J = joint_lib.spherical(type="euler_params", qE=qE)
   O.qd = matrix.col(mersenne_twister.random_double(size=3)*2-1)
Beispiel #4
0
 def __init__(O, mersenne_twister, prev=None):
   if (prev is None):
     normal = matrix.col(mersenne_twister.random_double_point_on_sphere())
     pivot = matrix.col(mersenne_twister.random_double_point_on_sphere()) * 0.6
   else:
     normal = prev.A.normal
     pivot = prev.A.pivot + normal * 0.3
   O.sites = [pivot + normal * (-0.8)]
   O.A = joint_lib.revolute_alignment(pivot=pivot, normal=normal)
   O.I = spatial_inertia_from_sites(sites=O.sites, alignment_T=O.A.T0b)
   #
   O.wells = create_wells(sites=O.sites, mersenne_twister=mersenne_twister)
   #
   O.J = joint_lib.revolute(qE=matrix.col([math.pi/8]))
   O.qd = matrix.col([math.pi/12])
Beispiel #5
0
 def __init__(O, mersenne_twister, prev=None):
   if (prev is None):
     normal = matrix.col(mersenne_twister.random_double_point_on_sphere())
     pivot = matrix.col(mersenne_twister.random_double_point_on_sphere()) * 0.6
   else:
     normal = prev.A.normal
     pivot = prev.A.pivot + normal * 0.3
   O.sites = [pivot + normal * (-0.8)]
   O.A = joint_lib.revolute_alignment(pivot=pivot, normal=normal)
   O.I = spatial_inertia_from_sites(sites=O.sites, alignment_T=O.A.T0b)
   #
   O.wells = create_wells(sites=O.sites, mersenne_twister=mersenne_twister)
   #
   O.J = joint_lib.revolute(qE=matrix.col([math.pi/8]))
   O.qd = matrix.col([math.pi/12])
Beispiel #6
0
 def __init__(O, six_dof_type, r_is_qr, mersenne_twister):
   O.sites_F0 = create_triangle_with_random_center_of_mass(
     mersenne_twister=mersenne_twister)
   O.A = joint_lib.six_dof_alignment(sites=O.sites_F0)
   O.I_spatial = spatial_inertia_from_sites(
     sites=O.sites_F0, alignment_T=O.A.T0b)
   #
   O.wells = test_utils.create_wells(
     sites=O.sites_F0, mersenne_twister=mersenne_twister)
   #
   qE = matrix.col(mersenne_twister.random_double(size=4)).normalize()
   qr = matrix.col(mersenne_twister.random_double(size=3)-0.5)
   if (r_is_qr):
     qr = joint_lib.RBDA_Eq_4_12(qE).transpose() * qr
   O.J = joint_lib.six_dof(type=six_dof_type, qE=qE, qr=qr, r_is_qr=r_is_qr)
   O.qd = matrix.col(mersenne_twister.random_double(size=6)*2-1)
   #
   O.energies_and_accelerations_update()
 def __init__(O, six_dof_type, r_is_qr, mersenne_twister):
   O.sites_F0 = create_triangle_with_random_center_of_mass(
     mersenne_twister=mersenne_twister)
   O.A = joint_lib.six_dof_alignment(sites=O.sites_F0)
   O.I_spatial = spatial_inertia_from_sites(
     sites=O.sites_F0, alignment_T=O.A.T0b)
   #
   O.wells = test_utils.create_wells(
     sites=O.sites_F0, mersenne_twister=mersenne_twister)
   #
   qE = matrix.col(mersenne_twister.random_double(size=4)).normalize()
   qr = matrix.col(mersenne_twister.random_double(size=3)-0.5)
   if (r_is_qr):
     qr = joint_lib.RBDA_Eq_4_12(qE).transpose() * qr
   O.J = joint_lib.six_dof(type=six_dof_type, qE=qE, qr=qr, r_is_qr=r_is_qr)
   O.qd = matrix.col(mersenne_twister.random_double(size=6)*2-1)
   #
   O.energies_and_accelerations_update()
def shift_gently(sites, mersenne_twister, angle=5):
  axis = mersenne_twister.random_double_point_on_sphere()
  r = matrix.sqr(scitbx.math.r3_rotation_axis_and_angle_as_matrix(
    axis=axis, angle=angle, deg=True))
  return create_wells(sites=sites, mersenne_twister=mersenne_twister, r=r)