def RetrieveFamGrpsMapInternal(fn, mn): famsPy = {} grpsPy = {} fid = med.MEDfileOpen(fn, med.MED_ACC_RDONLY) med.MEDnFamily(fid, mn) s = set() for elt in range(med.MEDnFamily(fid, mn)): nbGrps = med.MEDnFamilyGroup(fid, mn, elt + 1) gro = med.MEDCHAR(med.MED_LNAME_SIZE * nbGrps + 1) famName, famId, grps = med.MEDfamilyInfo(fid, mn, elt + 1, gro) if famName in s: famName = "{}@".format(famName) famsPy[famName] = famId grps2 = [ "".join(gro[i * med.MED_LNAME_SIZE:(i + 1) * med.MED_LNAME_SIZE]).rstrip() for i in range(nbGrps) ] grpsPy[famName] = grps2 s.add(famName) pass med.MEDfileClose(fid) return famsPy, grpsPy
axisname = "x y " unitname = "cm cm " # ten nodes with two of them shared by the two polygons coordinates = med.MEDFLOAT([ 0.5, 0., 1.5, 0., 0., 0.5, 1., 0.5, 2., 0.5, 0., 1., 1., 1., 2., 1., 0.5, 2., 1.5, 2. ]) nnodes = 10 indexsize = 3 index = med.MEDINT([1, 7, 13]) # connectivity : 2 hexagons connectivity = med.MEDINT([1, 4, 7, 9, 6, 3, 2, 5, 8, 10, 7, 4]) # MED file creation try: fid = med.MEDfileOpen("UsesCase_MEDmesh_13.med", med.MED_ACC_CREAT) except RuntimeError as ex: print("ERROR : file creation ...\n%s" % ex) sys.exit(-1) # write a comment in the file try: med.MEDfileCommentWr(fid, "A 2D unstructured mesh : 12, 12 polygons") except RuntimeError as ex: print("ERROR : write file description ...\n%s" % ex) doCleanup(fid, -1) # mesh creation : a 2D unstructured mesh try: med.MEDmeshCr(fid, meshname, spacedim, meshdim, med.MED_UNSTRUCTURED_MESH, "A 2D unstructured mesh", "", med.MED_SORT_DTIT,
import med def doCleanup(fid, status) : try : med.MEDfileClose(fid) except RuntimeError as ex : print("ERROR : close file ...\n%s" % ex) status = -1 finally : if status != 0 : sys.exit(status) # open MED file with READ ONLY access mode try : fid = med.MEDfileOpen("UsesCase_MEDmesh_1.med", med.MED_ACC_RDONLY) except RuntimeError as ex : print("ERROR : open file in READ ONLY ACCESS mode ...\n%s" % ex) sys.exit(-1) # read how many mesh in the file try : nmesh = med.MEDnMesh(fid) except RuntimeError as ex : print("ERROR : read how many mesh ...\n%s" % ex) doCleanup(fid, -1) for i in range(0, nmesh) : # read computation space dimension try :