Beispiel #1
0
def create_hex_mesh():
    p = part('Part1','C3D8','linear_hex')
    pts = [[0.,0.,0.],
               [1.,0.,0.],
               [1.,1.,0.],
               [0.,1.,0.],
               [0.,0.,1.],
               [1.,0.,1.],
               [1.,1.,1.],
               [0.,1.,1.]]
    nodes = []
    for i in [-1,0]:
        for j in [-1,0]:
            for k in [-1,0]:
                for pt in pts:
                    n = [pt[0]+i,pt[1]+j,pt[2]+k]
                    if n not in nodes:
                        nodes.append([n[0],n[1],n[2]])
    count = 0                  
    for i in [-1,0]:
        for j in [-1,0]:
            for k in [-1,0]:
                count += 1
                nodes_c = [nodes.index([pt[0]+i,pt[1]+j,pt[2]+k])+1 for pt in pts]
                pts_c = [[pt[0]+i,pt[1]+j,pt[2]+k] for pt in pts]
                p.add_element(linear_hex(count, pts_c, nodes_c))
        p.moduli = [1.,1.,1.,1.,1.,1.,1.,1.]
    return [p]                
Beispiel #2
0
def create_linear_tet_part():
    p = part('Part1','C3D4','linear_tet')
    pts = [[-1., 1., -1.],
           [-1., -1., 1.],
           [1., -1., -1.],
           [1., 1. , 1.]]
    nodes = [repr(n+1) for n in range(4)]
    p.add_element(linear_tet(1, pts, nodes))
    p.moduli = [1.]
    return [p]
Beispiel #3
0
def create_wedge_part():
    p = part('Part1','C3D6','linear_wedge')
    pts = [[0.,0.,0.],
          [1.,0.,0.],
          [1.,1.,0.],
          [0.,0.,1.],
          [1.,0.,1.],
          [1.,1.,1.]]
    nodes = [repr(n+1) for n in range(6)]
    p.add_element(linear_wedge(1, pts, nodes))
    p.moduli = [1.]
    return [p]
Beispiel #4
0
def _create_part(name, elements, elename, eletype, nodes, transform=[[0.,0.,0]], ignore=False):
    """ Creates part class from input data """
    
    # create the part
    new_part = part(name, elename, eletype, transform, ignore)
    
    # add elements to part
    for e in elements:
        pts = [nodes[n] for n in e[1:]]
        exec('ele = ' + eletype + '(int(e[0]), pts, e[1:])')
        new_part.add_element(ele)
        
    return new_part
Beispiel #5
0
def create_hex_part():
    p = part('Part1','C3D8','linear_hex')
    pts = [[0.,0.,0.],
           [1.,0.,0.],
           [1.,1.,0.],
           [0.,1.,0.],
           [0.,0.,1.],
           [1.,0.,1.],
           [1.,1.,1.],
           [0.,1.,1.]]
    nodes = [repr(n+1) for n in range(8)]
    p.add_element(linear_hex(1, pts, nodes))
    p.moduli = [1.]
    return [p]
Beispiel #6
0
def create_quad_tet_part():
    p = part('Part1','C3D10','quad_tet')
    pts = [[-1., 1., -1.],
           [-1., -1., 1.],
           [1., -1., -1.],
           [1., 1. , 1.],
           [-1., 0., 0.],
           [0., -1., 0.],
           [0., 0., -1.],
           [0., 1., 0.],
           [0., 0., 1.],
           [1., 0., 0.]]
    nodes = [repr(n+1) for n in range(10)]
    p.add_element(quad_tet(1, pts, nodes))
    p.moduli = [1.]
    return [p]