美文网首页
绘制左心室网格

绘制左心室网格

作者: 马鹏飞_47c5 | 来源:发表于2020-11-17 20:39 被阅读0次
    # triangulation
    from fenics import *
    from mshr import *
    big = Ellipsoid(Point(0,0,0),10,10,20)
    small = Ellipsoid(Point(0,0,0),7,7,17)
    gaizi = Box(Point(-11,-11,5),Point(11,11,21))
    domain = big-small-gaizi
    mesh = generate_mesh(domain,50)
    # File("mesh.xml") << mesh
    
    # mesh = Mesh("mesh.xml")
    # mark the boundary
    mesh_function = MeshFunction("size_t", mesh, 2, value = 0)
    
    class VentricleBase(SubDomain):
        def inside(self, x, on_boundary):
            return on_boundary and near(x[2],5.0)
    
    
    class VentricleWall(SubDomain):
        def inside(self, x, on_boundary):
            temp = (x[0]*x[0] + x[1]*x[1])/7.0/7.0 + x[2]*x[2]/17.0/17.0
            return on_boundary and temp < 1.1
    
    
    venbase = VentricleBase()
    venbase.mark(mesh_function, 1)
    venwall = VentricleWall()
    venwall.mark(mesh_function, 2)
    
    # file = File("base.xml")
    # file << mesh_function
    
    # visulize mesh_function
    V = FunctionSpace(mesh, "P", 1)
    
    bcs = [DirichletBC(V, Constant(100), mesh_function, 1),
          DirichletBC(V, Constant(10000), mesh_function, 2)]
    
    u = Function(V)
    for bc in bcs:
        bc.apply(u.vector())
    
    
    

    相关文章

      网友评论

          本文标题:绘制左心室网格

          本文链接:https://www.haomeiwen.com/subject/upyfiktx.html