コード例 #1
0
 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])
コード例 #2
0
ファイル: 50_fem2d.py プロジェクト: nobuyuki83/pydelfem2
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])
コード例 #3
0
 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)
コード例 #4
0
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))