def fb_array(): sphere = Sphere( radius=r, # Dimension center=(0, 0, 0), # Position nphi=4, ntheta=10, # Fineness of the mesh ) my_axis = Axis((0, 1, 0), point=(0,0,0)) sphere.add_rotation_dof(axis=my_axis) sphere.keep_immersed_part() return sphere.assemble_arbitrary_array(locations)
def test_clipping_of_dofs(z_center, collection_of_meshes): """Check that clipping a body with a dof is the same as clipping the body ant then adding the dof.""" full_sphere = Sphere(center=(0, 0, z_center), name="sphere", clever=collection_of_meshes, clip_free_surface=False) axis = Axis(point=(1, 0, 0), vector=(1, 0, 0)) full_sphere.add_rotation_dof(axis, name="test_dof") clipped_sphere = full_sphere.keep_immersed_part(free_surface=0.0, sea_bottom=-np.infty, inplace=False) other_clipped_sphere = FloatingBody(mesh=clipped_sphere.mesh, name="other_sphere") other_clipped_sphere.add_rotation_dof(axis, name="test_dof") if clipped_sphere.mesh.nb_faces > 0: assert np.allclose(clipped_sphere.dofs['test_dof'], other_clipped_sphere.dofs['test_dof']) else: assert len(clipped_sphere.dofs['test_dof']) == 0