# - prepareIBMData (pyTree) - import Converter.PyTree as C import Generator.PyTree as G import Connector.ToolboxIBM as IBM import Post.PyTree as P import Geom.PyTree as D import Dist2Walls.PyTree as DTW import KCore.test as test N = 51 a = G.cart((0, 0, 0), (1. / (N - 1), 1. / (N - 1), 1. / (N - 1)), (N, N, N)) body = D.sphere((0.5, 0, 0), 0.1, N=20) t = C.newPyTree(['Base', a]) tb = C.newPyTree(['Base', body]) tb = C.addState(tb, 'EquationDimension', 3) tb = C.addState(tb, 'GoverningEquations', 'NSTurbulent') t = DTW.distance2Walls(t, bodies=tb, loc='centers', type='ortho') t = P.computeGrad(t, 'centers:TurbulentDistance') t, tc = IBM.prepareIBMData(t, tb, DEPTH=2, frontType=1) C.convertPyTree2File(t, 't.cgns') C.convertPyTree2File(t, 'tc.cgns')
# - getAllIBMPoints (pyTree) - import Converter.PyTree as C import Generator.PyTree as G import Connector.ToolboxIBM as IBM import Post.PyTree as P import Converter import KCore.test as test N = 21 a = G.cart((0, 0, 0), (1, 1, 1), (N, N, N)) C._initVars(a, '{centers:TurbulentDistance}={centers:CoordinateZ}') C._initVars( a, '{centers:cellN}=({centers:CoordinateZ}>0.8)*1.+({centers:CoordinateZ}<0.8)*2.' ) a = P.computeGrad(a, 'centers:TurbulentDistance') res = IBM.getAllIBMPoints(a, loc='centers', hi=0., he=2., tb=None) correctedPts = list(res[0].values())[0] wallPts = list(res[1].values())[0] interpPts = list(res[2].values())[0] test.testA(correctedPts + wallPts) test.testA(interpPts, 12) N = 21 a = G.cart((0, 0, 0), (1, 1, 1), (N, N, N)) C._initVars(a, '{TurbulentDistance}={CoordinateZ}') C._initVars(a, '{cellN}=({CoordinateZ}>0.8)*1.+({CoordinateZ}<0.8)*2.') a = P.computeGrad(a, 'TurbulentDistance') a = C.center2Node(a, 'FlowSolution#Centers') res = IBM.getAllIBMPoints(a, loc='nodes', hi=0., he=2., tb=None) correctedPts = list(res[0].values())[0] wallPts = list(res[1].values())[0] interpPts = list(res[2].values())[0]
import Generator.PyTree as G import Connector.ToolboxIBM as IBM import Post.PyTree as P import Geom.PyTree as D import Dist2Walls.PyTree as DTW import KCore.test as test N = 21 a = G.cart((0,0,0),(1./(N-1),1./(N-1),1./(N-1)),(N,N,N)) body = D.sphere((0.5,0,0),0.1,N=20) t = C.newPyTree(['Base',a]) tb = C.newPyTree(['Base',body]) tb = C.addState(tb, 'EquationDimension',3) tb = C.addState(tb, 'GoverningEquations', 'NSTurbulent') t = DTW.distance2Walls(t,bodies=tb,loc='centers',type='ortho') t = P.computeGrad(t,'centers:TurbulentDistance') t,tc=IBM.prepareIBMData(t,tb,DEPTH=2) res = IBM.extractIBMInfo(tc) test.testT(res,1) # CAS 2D N = 21 a = G.cart((0,0,0),(1./(N-1),1./(N-1),1./(N-1)),(N,N,2)) body = D.circle((0.5,0,0),0.1) t = C.newPyTree(['Base',a]) tb = C.newPyTree(['Base',body]) tb = C.addState(tb, 'EquationDimension',2) tb = C.addState(tb, 'GoverningEquations', 'NSTurbulent') t = DTW.distance2Walls(t,bodies=tb,loc='centers',type='ortho',dim=2) t = P.computeGrad(t,'centers:TurbulentDistance') t,tc=IBM.prepareIBMData(t,tb,DEPTH=2) res = IBM.extractIBMInfo(tc) test.testT(res,2)
s = G.close(s) t = C.newPyTree(['Base', a]) # Blanking bodies = [[s]] BM = numpy.array([[1]], numpy.int32) t = X.blankCells(t, bodies, BM, blankingType='center_in') t = X.setHoleInterpolatedPoints(t, depth=-2) # Dist2Walls DTW._distance2Walls(t, [s], type='ortho', loc='centers', signed=1) t = C.center2Node(t, 'centers:TurbulentDistance') # Gradient de distance localise en centres => normales t = P.computeGrad(t, 'TurbulentDistance') I._initConst(t, MInf=0.2, loc='centers') tc = C.node2Center(t) tb = C.newPyTree(['Base', s]) C._addState(tb, 'EquationDimension', 3) C._addState(tb, 'GoverningEquations', 'NSTurbulent') tp = X.setIBCData(t, tc, loc='centers', storage='direct', bcType=0) t2 = X.setInterpTransfers(tp, tc, bcType=0, varType=1) z = IBM.extractIBMWallFields(t2, tb=tb) test.testT(z, 1) # tp = X.setIBCData(t, tc, loc='centers', storage='direct', bcType=3) t2 = X.setInterpTransfers(tp, tc, bcType=3, varType=1) z = IBM.extractIBMWallFields(t2, tb=tb) test.testT(z, 2)
import Converter.PyTree as C import Dist2Walls.PyTree as DTW import Generator.PyTree as G import Geom.PyTree as D import Connector.PyTree as X import Transform.PyTree as T import Connector.ToolboxIBM as TIBM N = 11 N2 = 2 * N - 1 h = 1. / (N - 1) a = G.cart((-1., -1., -1.), (h, h, h), (N2, N2, 2)) zmean = C.getMeanValue(a, 'CoordinateZ') surf = D.sphere((0, 0, zmean), 0.5, 20) t = C.newPyTree(['Cart', a]) C.convertPyTree2File(surf, "in.cgns") bodies = [[surf]] # Matrice de masquage (arbre d'assemblage) import numpy BM = numpy.array([[1]]) C._initVars(t, 'centers:cellN', 1.) t = X.blankCells(t, bodies, BM, blankingType='center_in', delta=0.) DTW._distance2Walls(t, surf, loc='centers', type='ortho') C._initVars(t, "{centers:F}={centers:cellN}") TIBM._blankClosestTargetCells(t) C.convertPyTree2File(t, 'out.cgns')
import Connector.ToolboxIBM as IBM import Post.PyTree as P import Geom.PyTree as D import Dist2Walls.PyTree as DTW import KCore.test as test N = 21 a = G.cart((0, 0, 0), (1. / (N - 1), 1. / (N - 1), 1. / (N - 1)), (N, N, N)) body = D.sphere((0.5, 0, 0), 0.1, N=20) tb = C.newPyTree(['Base', body]) C._addState(tb, 'EquationDimension', 3) C._addState(tb, 'GoverningEquations', 'NSTurbulent') t = C.newPyTree(['Base', a]) DTW._distance2Walls(t, bodies=tb, loc='centers', type='ortho') C._initVars(t, 'centers:cellN', 1.) t, tc = IBM.prepareIBMData(t, tb, DEPTH=2, frontType=0, interpDataType=1) res = IBM.extractIBMInfo(tc) test.testT(tc, 1) # front 1 tb = C.newPyTree(['Base', body]) C._addState(tb, 'EquationDimension', 3) C._addState(tb, 'GoverningEquations', 'NSTurbulent') DTW._distance2Walls(t, bodies=tb, loc='centers', type='ortho') C._initVars(t, 'centers:cellN', 1.) t, tc = IBM.prepareIBMData(t, tb, DEPTH=2, frontType=1, interpDataType=1) test.testT(tc, 12) # front2 t = C.newPyTree(['Base', a]) tb = C.newPyTree(['Base', body])
import Generator.PyTree as G import Connector.ToolboxIBM as IBM import Post.PyTree as P import Geom.PyTree as D import Dist2Walls.PyTree as DTW import KCore.test as test N = 21 a = G.cart((0, 0, 0), (1. / (N - 1), 1. / (N - 1), 1. / (N - 1)), (N, N, N)) body = D.sphere((0.5, 0, 0), 0.1, N=20) t = C.newPyTree(['Base', a]) tb = C.newPyTree(['Base', body]) C._addState(tb, 'EquationDimension', 3) C._addState(tb, 'GoverningEquations', 'NSTurbulent') DTW._distance2Walls(t, bodies=tb, loc='centers', type='ortho') t = P.computeGrad(t, 'centers:TurbulentDistance') t, tc = IBM.prepareIBMData(t, tb, DEPTH=2, frontType=0) res = IBM.extractIBMInfo(tc) test.testT(res, 1) # CAS 2D N = 21 a = G.cart((0, 0, 0), (1. / (N - 1), 1. / (N - 1), 1. / (N - 1)), (N, N, 2)) body = D.circle((0.5, 0, 0), 0.1) t = C.newPyTree(['Base', a]) tb = C.newPyTree(['Base', body]) C._addState(tb, 'EquationDimension', 2) C._addState(tb, 'GoverningEquations', 'NSTurbulent') DTW._distance2Walls(t, bodies=tb, loc='centers', type='ortho', dim=2) t = P.computeGrad(t, 'centers:TurbulentDistance') t, tc = IBM.prepareIBMData(t, tb, DEPTH=2, frontType=0) res = IBM.extractIBMInfo(tc)
import Initiator.PyTree as I import Converter.Internal as Internal import Connector.ToolboxIBM as IBM import KCore.test as test import numpy N = 41 a = G.cart((0, 0, 0), (1. / (N - 1), 1. / (N - 1), 1. / (N - 1)), (N, N, N)) xm = 0.5 * N / (N - 1) s = D.sphere((xm, xm, xm), 0.1, N=20) s = C.convertArray2Tetra(s) s = G.close(s) t = C.newPyTree(['Base']) t[2][1][2] = [a] # Blanking bodies = [[s]] BM = numpy.array([[1]], numpy.int32) t = X.blankCells(t, bodies, BM, blankingType='center_in') t = X.setHoleInterpolatedPoints(t, depth=-2) # Dist2Walls t = DTW.distance2Walls(t, [s], type='ortho', loc='centers', signed=1) t = C.center2Node(t, 'centers:TurbulentDistance') # Gradient de distance localise en centres => normales t = P.computeGrad(t, 'TurbulentDistance') t = I.initConst(t, MInf=0.2, loc='centers') tc = C.node2Center(t) t2 = X.setIBCData(t, tc, loc='centers', storage='direct') t2 = X.setInterpTransfers(t2, tc, bcType=0, varType=1) z = IBM.extractIBMWallFields(t2) C.convertPyTree2File(z, "out.cgns")