# get geometry type try : geotypename,geotype = med.MEDmeshEntityInfo(fid, meshname, med.MED_NO_DT, med.MED_NO_IT, med.MED_CELL, it ) except RuntimeError as ex : print("ERROR : get geo type ...\n%s" % ex) doCleanup(fid, -1) # how many cells of type geotype ? try : nelt, chgt3, trsf3 = med.MEDmeshnEntity(fid, meshname, med.MED_NO_DT, med.MED_NO_IT, med.MED_CELL, geotype, med.MED_CONNECTIVITY, med.MED_NODAL) except RuntimeError as ex : print("ERROR : number of cell of type geotype ...\n%s" % ex) doCleanup(fid, -1) # read cells connectivity in the mesh connectivity = med.MEDINT([0] * nelt * (geotype % 100)) try : med.MEDmeshElementConnectivityRd(fid, meshname, med.MED_NO_DT, med.MED_NO_IT, med.MED_CELL, geotype, med.MED_NODAL, med.MED_FULL_INTERLACE, connectivity) except RuntimeError as ex : print("ERROR : cell connectivity ...\n%s" % ex) doCleanup(fid, -1) # ... we know that the family number of nodes and elements is 0, a real code would check ... # close MED file doCleanup(fid, 0)
doCleanup(fid, -1) # read mesh nodes coordinates coordinates = med.MEDFLOAT([0.] * nnodes * spacedim) try: med.MEDmeshNodeCoordinateRd(fid, meshname, med.MED_NO_DT, med.MED_NO_IT, med.MED_FULL_INTERLACE, coordinates) except RuntimeError as ex: print("ERROR : nodes coordinates ...\n%s" % ex) doCleanup(fid, -1) # read cells connectivity in the mesh triaconnectivity = med.MEDINT([0] * ntria3 * 3) try: med.MEDmeshElementConnectivityRd(fid, meshname, med.MED_NO_DT, med.MED_NO_IT, med.MED_CELL, med.MED_TRIA3, med.MED_NODAL, med.MED_FULL_INTERLACE, triaconnectivity) except RuntimeError as ex: print("ERROR : MED_TRIA3 connectivity ...\n%s" % ex) doCleanup(fid, -1) quadconnectivity = med.MEDINT([0] * nquad4 * 4) try: med.MEDmeshElementConnectivityRd(fid, meshname, med.MED_NO_DT, med.MED_NO_IT, med.MED_CELL, med.MED_QUAD4, med.MED_NODAL, med.MED_FULL_INTERLACE, quadconnectivity) except RuntimeError as ex: print("ERROR : MED_QUAD4 connectivity ...\n%s" % ex) doCleanup(fid, -1)