예제 #1
0
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
예제 #2
0
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,
예제 #3
0
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 :