...
Code Block | ||||
---|---|---|---|---|
| ||||
$ python3 Type "help", "copyright", "credits" or "license" for more information. >>> import gidpost gidpost.GiD_PostInit() file_id = gidpost.GiD_fOpenPostResultFile( "gidpost-test-array.post.h5", gidpost.GiD_PostHDF5) # helperCreate functionsmesh defwith copy_to_intArray( int_array, list): idx = 0 for value in list: gidpost.intArray_setitem( int_array, idx, value) idx = idx + 1 def copy_to_doubleArray( double_array, list): idx = 0 for value in list: gidpost.doubleArray_setitem( double_array, idx, value) idx = idx + 1 # define mesh # Create coordinates: num_nodes = 6 # we could have skipped num_nodes, num_triangles and num_quads # coords_list_ids = array with the id's asof theythe are all consecutive coords_list_ids =nodes ( gidpost.new_intArray( num_nodes) copy_to_intArray( coords_list_ids, range( 1, 7)) # list = 1, 2, 3, 4, 5, 6 ...)) # coords_list_xyz = gidpost.new_doubleArray( num_nodes * 3) copy_to_doubleArray( coords_list_xyz, [ 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 2.0, 0.0, 0.0, 2.0, 1.0, 0.0 ]) # Create connectivity array # two triangles num_triangles = 2 array with the x y z coordinades of the nodes x1 y1 z1 x2 y2 z2 .... ( gidpost.new_doubleArray(...)) # triangs_list_ids = gidpost.new_intArray( num_triangles) copy_to_intArray( triangs_list_ids, [ 1, 2])array with the id's of the triangles # triangs_connectivities = gidpost.new_intArray( num_triangles * 3) copy_to_intArray( triangs_connectivities, [ 1 , 2, 3, 1 , 3, 4 ]) # 1 quadrilateral num_quads = 1array with the connectivities of the triangles # quads_list_ids = gidpost.new_intArray( num_quads) copy_to_intArray( quads_list_ids, [ 3]) array with the id's of the triangles # quads_connectivities = gidpost.new_intArray( num_quads * 4) copy_to_intArray( quads_connectivities, [ 2 , 5, 6, 3]) array with the connectivities of the triangles gidpost.GiD_fBeginMeshColor( file_id, "test gp_py triangles", gidpost.GiD_3D, gidpost.GiD_Triangle, 3, 0.6, 0.5, 0.4) fail = gidpost.GiD_fWriteCoordinatesIdBlock( file_id, num_nodes, coords_list_ids, coords_list_xyz) fail = gidpost.GiD_fWriteElementsIdBlock( file_id, num_triangles, triangs_list_ids, triangs_connectivities) gidpost.GiD_fBeginMeshColor( file_id, "test gp_py quadrilaterals", gidpost.GiD_3D, gidpost.GiD_Quadrilateral, 4, 0.8, 0.2, 0.5) # if we had more coordinates, like nodes 5 and 6 above, we could have written them here... fail = gidpost.GiD_fWriteElementsIdBlock( file_id, num_quads, quads_list_ids, quads_connectivities) # Create results # nodal result for all nodes scalar_nodes = gidpost.new_doubleArray( num_nodes * 1) copy_to_doubleArray( scalar_nodes, [ 10.1, 20.2, 30.3, 40.4, 50.5, 60.6]) # elemental array of a scalar result for all elements num_elements = num_triangles + num_quads nodes # elements_list_ids = gidpost.new_intArray( num_elements) copy_to_intArray( elements_list_ids, range( 1, num_elements + 1)), array with the id's of the elements # scalar_elemental = gidpost.new_doubleArray( num_elements * 1) copy_to_doubleArray( scalar_elemental, [ 11.1, 22.2, 33.3]) # Writing results # id's are the same as nodesarray of a elemental result for all elements list_comp_names = gidpost.new_stringArray( 0); fail = gidpost.GiD_fWriteResultBlock( file_id, "test nodal", "gidpost", 1.0, gidpost.GiD_Scalar, gidpost.GiD_OnNodes, "", "", 0, list_comp_names, num_nodes, coords_list_ids, 1, scalar_nodes) fail = gidpost.GiD_fWriteResultBlock( file_id, "test elemental", "gidpost", 1.0, gidpost.GiD_Scalar, gidpost.GiD_OnGaussPoints, "GP_ELEMENT_1", "", 0, list_comp_names, num_elements, elements_list_ids, 1, scalar_elemental) fail = gidpost.GiD_fClosePostResultFile( file_id) fail = gidpost.GiD_PostDone() gidpost.delete_intArray( coords_list_ids) gidpost.delete_intArray( triangs_list_ids) gidpost.delete_intArray( triangs_connectivities) gidpost.delete_intArray( quads_list_ids) gidpost.delete_intArray( quads_connectivities) gidpost.delete_intArray( elements_list_ids) gidpost.delete_doubleArray( coords_list_xyz) gidpost.delete_doubleArray( scalar_nodes) gidpost.delete_doubleArray( scalar_elemental) |
...