Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagepy
titlegidpost_test.py
$ 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)

...