コード例 #1
0
def importFile(event=None):
    if CTK.t == []: return
    s = VARS[4].get()
    s = s.split(';')
    try:
        t1 = []
        for filename in s:
            if filename != '':
                t2 = C.convertFile2PyTree(filename)
                # Fusion des bases de t et t2
                if t1 == []: t1 = t2
                else: t1 = C.mergeTrees(t1, t2)
    except:
        CTK.TXT.insert('START', 'Import failed.\n')
        CTK.TXT.insert('START', 'Error: ', 'Error')
        return
    if t1 == []:
        CTK.TXT.insert('START', 'Import failed.\n')
        CTK.TXT.insert('START', 'Error: ', 'Error')
        return

    CTK.saveTree()
    nzs = CPlot.getSelectedZones()

    # Essaie de trouver une methode adaptee
    method = 1  # match by geom
    import sets
    zoneNames = sets.Set(C.getZoneNames(CTK.t, prefixByBase=False))
    zoneNames1 = sets.Set(C.getZoneNames(t1, prefixByBase=False))
    inter = zoneNames & zoneNames1
    linter = len(inter) * 1.
    comp = min(len(zoneNames), len(zoneNames1)) * 1.
    if linter / comp > 0.9: method = 0  # try match by name (safer)

    if CTK.__MAINTREE__ <= 0 or nzs == []:
        CTK.t = P.importVariables(t1, CTK.t, method=method)
    else:
        zones = C.newPyTree(['Base'])
        for nz in nzs:
            nob = CTK.Nb[nz] + 1
            noz = CTK.Nz[nz]
            zone = CTK.t[2][nob][2][noz]
            zones[2][1][2].append(zone)
        zones = P.importVariables(t1, zones, method=method)
        c = 0
        for nz in nzs:
            nob = CTK.Nb[nz] + 1
            noz = CTK.Nz[nz]
            CTK.t[2][nob][2][noz] = zones[2][1][2][c]
            c += 1
    CTK.TXT.insert('START', 'Variable file %s imported.\n' % filename)
    #C._fillMissingVariables(CTK.t)
    (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t)
    CTK.TKTREE.updateApp()
    CTK.display(CTK.t)
    if CTK.TKPLOTXY is not None: CTK.TKPLOTXY.updateApp()
コード例 #2
0
import Post.PyTree as P
import Converter.Internal as Internal
import KCore.test as test

# z2 sans solutions
z1 = G.cart((0., 0., 0.), (0.1, 0.1, 0.1), (3, 3, 3))
C._addBC2Zone(z1, 'overlap', 'BCOverlap', 'imin')
C._fillEmptyBCWith(z1, 'nref', 'BCFarfield')
t1 = C.newPyTree(['Base', z1])
t2 = Internal.copyRef(t1)
C._initVars(t1, 'centers:cellN', 1.)
C._initVars(t1, 'Pressure', 10.)
C._initVars(t1, 'Density', 1.)
C._addState(t1[2][1], 'Mach', 0.6)
C._addState(t2[2][1], 'Mach', 0.6)
t2 = P.importVariables(t1, t2)
test.testT(t2, 1)

# z2 avec cellN = 0
C._initVars(t2, 'centers:cellN', 0.)
t2 = P.importVariables(t1, t2)
test.testT(t2, 2)

# z1 en centres avec z2 sans solution
Internal._rmNodesByType(t2, 'FlowSolution_t')
t1 = C.node2Center(t1)
t2 = P.importVariables(t1, t2)
test.testT(t2, 3)

# test t1 en centres/ t2 en noeuds
Internal._rmNodesByType(t2, 'FlowSolution_t')