def addElement(self,etype='hex8',corners=[-1.0,-1.0,-1.0,1.,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0],name='new_elem'):
        '''
        corners - list of nodal coordinates properly ordered for element type (counter clockwise)
        '''
        lastelm = self.elements[-1][1]
        lastnode = self.nodes[-1][0]
        elm = [etype,lastelm+1]
        for i in range(old_div(len(corners),3)):
            elm.append(lastnode+1+i)
            
        self.elements.append(elm)
        self.elsets['e'+name] = {}
        self.elsets['e'+name][int(elm[1])] = True
        
        cnt = 1
        self.nsets['n'+name] = []
        for i in range(0,len(corners),3):
            self.nodes.append([lastnode+cnt, corners[i], corners[i+1], corners[i+2]])
            self.nsets['n'+name].append(lastnode+cnt)
            cnt += 1
        
        # if this is a quad4 or tri3 element make a surface set
        if etype == 'quad4' or etype == 'tri3':
            self.fsets['f'+name] = [[etype, MeshDef.facetID, lastnode+1, lastnode+2, lastnode+3, lastnode+4]]
            MeshDef.facetID += 1
corners - list of nodal coordinates properly ordered for element type (counter clockwise)