Esempio n. 1
0
def dual():
    if CTK.t == []: return
    if CTK.__MAINTREE__ <= 0:
        CTK.TXT.insert('START', 'Fail on a temporary tree.\n')
        CTK.TXT.insert('START', 'Error: ', 'Error')
        return

    nzs = CPlot.getSelectedZones()
    if (nzs == []):
        CTK.TXT.insert('START', 'Selection is empty.\n')
        CTK.TXT.insert('START', 'Error: ', 'Error')
        return
    CTK.saveTree()

    fail = False
    errors = []
    for nz in nzs:
        nob = CTK.Nb[nz] + 1
        noz = CTK.Nz[nz]
        z = CTK.t[2][nob][2][noz]
        try:
            a = T.dual(z)
            CTK.replace(CTK.t, nob, noz, a)
        except Exception as e:
            fail = True
            errors += [0, str(e)]

    if not fail:
        CTK.TXT.insert('START', 'Dual of zones computed.\n')
    else:
        Panels.displayErrors(errors, header='Error: dual')
        CTK.TXT.insert('START', 'Dual fails for at least one zone.\n')
        CTK.TXT.insert('START', 'Warning: ', 'Warning')
    #C._fillMissingVariables(CTK.t)
    (CTK.Nb, CTK.Nz) = CPlot.updateCPlotNumbering(CTK.t)
    CTK.TKTREE.updateApp()
    CPlot.render()
# - dual (pyTree)
import Converter.PyTree as C
import Transform.PyTree as T
import Geom.PyTree as D
import Generator.PyTree as G
import KCore.test as test

# NGON 2D ne contenant pas de faces externes
a = D.sphere((0, 0, 0), 1., 15)
a = C.convertArray2NGon(a)
a = G.close(a)
a = C.initVars(a, 'F', 1.)
a = C.initVars(a, 'centers:G', 1.)
res = T.dual(a)
t = C.newPyTree(['Base'])
t[2][1][2] += [res]
test.testT(t)

# NGON 2D contenant des faces externes
a = D.sphere((0, 0, 0), 1., 15)
a = T.subzone(a, (1, 1, 1), (15, 15, 1))
a = C.convertArray2NGon(a)
a = G.close(a)
a = C.initVars(a, 'F', 1.)
res = T.dual(a)
t = C.newPyTree(['Base'])
t[2][1][2] += [res]
test.testT(t, 2)

# NGON 3D
a = G.cartHexa((0, 0, 0), (1, 1, 1), (11, 11, 11))