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_OpenPostResultFilefOpenPostResultFile( "gidpost-test-array.post.h5", gidpost.GiD_PostHDF5)

# helper create connectivity array for each element
# two triangles
elem_connec_1 = gidpost.new_intArray( 3)
elem_connec_2 = gidpost.new_intArray( 3)
# 1 quadrilateral
elem_connec_3 = gidpost.new_intArray( 4)               # Create an array
# id's begin at 1
gidpost.intArray_setitem( elem_connec_1, 0, 1)
gidpost.intArray_setitem( elem_connec_1, 1, 2)
gidpost.intArray_setitem( elem_connec_1, 2, 3)
gidpost.intArray_setitem( elem_connec_2, 0, 1)
gidpost.intArray_setitem( elem_connec_2, 1, 3)
gidpost.intArray_setitem( elem_connec_2, 2, 4)
gidpost.intArray_setitem( elem_connec_3, 0, 2)
gidpost.intArray_setitem( elem_connec_3, 1, 5)
gidpost.intArray_setitem( elem_connec_3, 2, 6)
gidpost.intArray_setitem( elem_connec_3, 3, 3)

gidpost.GiD_BeginMeshColor( "test gp_py triangles", gidpost.GiD_3D, gidpost.GiD_Triangle, 3, 0.6, 0.5, 0.4)
gidpost.GiD_BeginCoordinates()
gidpost.GiD_WriteCoordinates( 1, 0.0, 0.0, 0.0)
gidpost.GiD_WriteCoordinates( 2, 1functions
def 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 the id's as they are all consecutive
coords_list_ids = 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)
gidpost.GiD_WriteCoordinates( 3, 1, 
    2.0, 1.0, 0.0
    ])
# Create gidpost.GiD_WriteCoordinates( 4, 0.0, 1.0, 0.0)
# coordinates of other meshes can be written here or at each mesh
gidpost.GiD_WriteCoordinates( 5, 2.0, 0.0, 0.0)
gidpost.GiD_WriteCoordinates( 6, 2.0, 1.0, 0.0)
gidpost.GiD_EndCoordinates()
gidpost.GiD_BeginElements()
gidpost.GiD_WriteElement( 1, elem_connec_1)
gidpost.GiD_WriteElement( 2, elem_connec_2)
gidpost.GiD_EndElements(connectivity array
# two triangles
num_triangles = 2
triangs_list_ids = gidpost.new_intArray( num_triangles)
copy_to_intArray( triangs_list_ids, [ 1, 2])
triangs_connectivities = gidpost.new_intArray( num_triangles * 3)
copy_to_intArray( triangs_connectivities, [ 
    1 , 2, 3,
    1 , 3, 4
    ])
# 1 quadrilateral
num_quads = 1
quads_list_ids = gidpost.new_intArray( num_quads)
copy_to_intArray( quads_list_ids, [ 3])
quads_connectivities = gidpost.new_intArray( num_quads * 4)
copy_to_intArray( quads_connectivities, [ 2 , 5, 6, 3])

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_BeginMeshColorfBeginMeshColor( file_id, "test gp_py quadrilaterals", gidpost.GiD_3D, gidpost.GiD_Quadrilateral, 4, 0.8, 0.2, 0.5)
# coordinatesif ofwe otherhad meshesmore cancoordinates, belike writtennodes in5 theand first6 meshabove, orwe atcould eachhave meshwritten #them gidpost.GiD_BeginCoordinates()
#here...
fail = gidpost.GiD_WriteCoordinatesfWriteElementsIdBlock( 5file_id, 2.0, 0.0, 0.0)
# gidpost.GiD_WriteCoordinates( 6, 2.0, 1.0, 0.0)
# gidpost.GiD_EndCoordinates()
gidpost.GiD_BeginElements()
gidpost.GiD_WriteElement( 3, elem_connec_3)
gidpost.GiD_EndElements(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 result for all elements
num_elements = num_triangles + num_quads
elements_list_ids = gidpost.new_intArray( num_elements)
copy_to_intArray( elements_list_ids, range( 1, num_elements + 1)),
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 nodes
list_comp_names = gidpost.new_stringArray( 0);
fail = gidpost.GiD_BeginResultHeaderfWriteResultBlock( file_id, "test nodal", "gidpost", 1.0, 
                                     gidpost.GiD_Scalar, gidpost.GiD_OnNodes, "")
# id's begin at 1
gidpost.GiD_WriteScalar( 1, 10.0)
gidpost.GiD_WriteScalar( 2, 20.0)
gidpost.GiD_WriteScalar( 3, 30.0)
gidpost.GiD_WriteScalar( 4, 40.0)
gidpost.GiD_WriteScalar( 5, 50.0)
gidpost.GiD_WriteScalar( 6, 60.0)
gidpost.GiD_EndResult()

gidpost.GiD_BeginResultHeader(, "", 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")
# id's begin at 1, "", 0, list_comp_names, 
                                     num_elements, elements_list_ids, 1, scalar_elemental)

fail = gidpost.GiD_WriteScalarfClosePostResultFile( 1, 11.0) file_id)
fail = gidpost.GiD_WriteScalarPostDone()
2,
22.0gidpost.delete_intArray( coords_list_ids)
gidpost.GiDdelete_WriteScalarintArray( 3, 33.0triangs_list_ids)
gidpost.delete_intArray( triangs_connectivities)
gidpost.GiDdelete_EndResult()
intArray( quads_list_ids)
gidpost.GiDdelete_ClosePostResultFileintArray( quads_connectivities)
gidpost.GiDdelete_PostDone(intArray( elements_list_ids)

gidpost.delete_intArraydoubleArray( elemcoords_conneclist_1xyz)
gidpost.delete_intArraydoubleArray( elemscalar_connec_2nodes)
gidpost.delete_intArraydoubleArray( elemscalar_connec_3elemental)