def test_pbd_hex(self, request): voxelgrid = dfm2.VoxelGrid() voxelgrid.add(0, 0, 0) voxelgrid.add(1, 0, 0) voxelgrid.add(2, 0, 0) voxelgrid.add(1, 1, 0) msh = voxelgrid.mesh_hex() pbd = dfm2.PBD() pbd.updated_topology(msh) npIdP = numpy.array([0, 1, 2, 3], dtype=numpy.int32) pbd.vec_bc[npIdP] = 1 fvs = dfm2.FieldValueSetter("0.4*sin(0.8*t)", pbd.vec_val, 1, mesh=msh, npIdP=npIdP, dt=pbd.dt) ## mesh_def = dfm2.Mesh(np_pos=pbd.vec_val, np_elm=msh.np_elm, elem_type=dfm2.HEX) if request.config.getoption('--is_gl') == "true": dfm2.gl.glfw.winDraw3d([fvs, pbd, mesh_def], nframe=100, camera_rotation=[0.1, 0.2, 0.0])
def pbd1(cad, mesh): pbd = dfm2.PBD() pbd.updated_topology(mesh) npIdP = cad.points_edge([0], mesh.np_pos) pbd.vec_bc[npIdP] = 1 fvs = dfm2.FieldValueSetter("0.3*sin(2*t)", pbd.vec_val, 0, mesh=mesh, npIdP=npIdP, dt=pbd.dt) #### mesh2 = dfm2.Mesh(np_pos=pbd.vec_val, np_elm=mesh.np_elm) dfm2.gl.glfw.winDraw3d([fvs, pbd, mesh2])
def test_pbd_tri(self, request): cad = dfm2.Cad2D() cad.add_polygon(list_xy=[-1, -1, +1, -1, +1, +1, -1, +1]) mesher = dfm2.Mesher_Cad2D(edge_length=0.1) mesh = mesher.meshing(cad) pbd = dfm2.PBD() pbd.updated_topology(mesh) npIdP = cad.points_edge([0], mesh.np_pos) pbd.vec_bc[npIdP] = 1 fvs = dfm2.FieldValueSetter("0.3*sin(2*t)", pbd.vec_val, 0, mesh=mesh, npIdP=npIdP, dt=pbd.dt) mesh_def = dfm2.Mesh(np_pos=pbd.vec_val, np_elm=mesh.np_elm) if request.config.getoption('--is_gl') == "true": dfm2.gl.glfw.winDraw3d([fvs, pbd, mesh_def], nframe=100)
def pbd_hex(voxelgrid): msh = voxelgrid.mesh_hex() pbd = dfm2.PBD() pbd.updated_topology(msh) #### npIdP = numpy.array([0, 1, 2, 3], dtype=numpy.int32) pbd.vec_bc[npIdP] = 1 fvs = dfm2.FieldValueSetter("0.4*sin(0.8*t)", pbd.vec_val, 1, mesh=msh, npIdP=npIdP, dt=pbd.dt) #### msh_def = dfm2.Mesh(np_pos=pbd.vec_val, np_elm=msh.np_elm, elem_type=dfm2.HEX) axis = dfm2.gl.AxisXYZ() dfm2.gl.glfw.winDraw3d([fvs, pbd, msh_def, axis], (400, 400))