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]
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]
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]
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
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]
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]