# CCHE2D mesh.geo to BLUE KENUE channel mesh.t3s --Clemens Dorfmann-- #---------------------------------------------------------------------# # Give here the filenames for Input and Output files: Input_file = 'test_17x5.geo' Output_file = 'test_17x5.geo.t3s' #---------------------------------------------------------------------# # read CCHE2D file CCHE2D_file = open(Input_file, 'r') CC_text = CCHE2D_file.readlines() CCHE2D_file.close() # initialisation of some empty lists line_ji = [] liste_x_CC = [] liste_y_CC = [] liste_z_CC = [] liste_x_BK = [] liste_y_BK = [] liste_z_BK = [] liste_node1 = [] liste_node2 = [] liste_node3 = [] # get i (crosswise node number) and j (streamwise node number) from first line line_ji.append(CC_text[0].split()) i = int(line_ji[0][0]) j = int(line_ji[0][1]) CC_text.pop(0) # read x y z values into lists and sort for lines in CC_text: CC_text = lines.split() liste_x_CC.append(float(CC_text[0])) liste_y_CC.append(float(CC_text[1])) liste_z_CC.append(float(CC_text[3])) for k in range(i): liste_x_BK += liste_x_CC[k::i] liste_y_BK += liste_y_CC[k::i] liste_z_BK += liste_z_CC[k::i] # node connectivity table for BlueKenue for k in range(1, i*j-j+1): liste_node1 += [k] * 2 del liste_node1[2*j-1::2*j] del liste_node1[2*j-1::2*j-1] del liste_node1[0] for k in range(j+1, i*j): liste_node2 += [k] * 2 del liste_node2[2*j-2::2*j] del liste_node2[2*j-2::2*j-1] for k in range(1, len(liste_node2), 2): liste_node3 += (liste_node2[k] - (j-1), liste_node2[k] + 1) # write to BlueKenue channel mesh file BlueKenue_file= open(Output_file, 'w') BlueKenue_file.write('#' + '\n' + '# CCHE2D source file:' + '\t' + str(Input_file) + '\n' + '#' + '\n' + \ ':AttributeUnits 1 m' + '\n' + ':NodeCount ' + str(i*j) + '\n' + ':ElementCount ' + \ str((i-1)*(j-1)*2) + '\n' + ':ElementType T3' + '\n' + '#' + '\n' + ':EndHeader' + '\n') for k in range(i*j): BlueKenue_file.write(str(liste_x_BK[k]) + ' ' + str(liste_y_BK[k]) + ' ' + str(liste_z_BK[k]) + '\n') for k in range((i-1)*(j-1)*2): BlueKenue_file.write(str(liste_node1[k]) + ' ' + str(liste_node2[k]) + ' ' + str(liste_node3[k]) + '\n') BlueKenue_file.close()