# - distance2Walls (pyTree) -
# - Dump TurbulentDistance node to a file -
import Dist2Walls.PyTree as DW
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import Converter.Internal as Internal
import Converter
import numpy

a = G.cart((0., 0., 0.), (0.1, 0.1, 0.1), (10, 10, 10))
a = C.initVars(a, 'centers:cellnf', 1.)
sphere = D.sphere((1.2, 0., 0.), 0.2, 100)
sphere = C.initVars(sphere, 'centers:cellnf', 1.)

t = C.newPyTree(['Base', a])
bodies = C.newPyTree(['Bodies', sphere])
t = DW.distance2Walls(t, bodies)
nodes = Internal.getNodesFromName(t, 'TurbulentDistance')
c = 0
for n in nodes:
    ni = n[1].shape[0]
    nj = n[1].shape[1]
    nk = n[1].shape[2]
    a = numpy.reshape(n[1], (ni * nj * nk), order='Fortran')
    a = numpy.reshape(a, (1, ni * nj * nk))
    array = ['walldistance', a, ni, nj, nk]
    array = Converter.initVars(array, 'wallglobalindex', 1)
    Converter.convertArrays2File([array], 'dist' + str(c) + '.v3d', 'bin_v3d')
    c += 1
Пример #2
0
# - setPrescribedMotion3 (pyTree) -
# Motion defined by a constant speed and rotation speed
import RigidMotion.PyTree as R
import Converter.PyTree as C
import Geom.PyTree as D

a = D.sphere((1.2, 0., 0.), 0.2, 30)
a = R.setPrescribedMotion3(a, 'mot', transl_speed=(1, 0, 0))

C.convertPyTree2File(a, 'out.cgns')
Пример #3
0
#!/usr/bin/env python
# coding: utf-8

r"""<TBC>"""

import Generator.PyTree as G
import Converter.PyTree as C
import Transform.PyTree as T
import Geom.PyTree as D

a = G.cart((-2, -2, -2), (0.04, 0.04, 0.04), (100, 100, 100))
a = T.splitSize(a, N=100000)
b = D.sphere((0, 0, 0), 1., N=100)

t = C.newPyTree(['Base'])
t[2][1][2] += a
C.convertPyTree2File(t, 'in.cgns')
t = C.newPyTree(['Base'])
t[2][1][2] += [b]
C.convertPyTree2File(t, 'walls.cgns')
Пример #4
0
# - plaster (pyTree) -
import Generator.PyTree as G
import Converter.PyTree as C
import Transform.PyTree as T
import Post.PyTree as P
import Geom.PyTree as D

a = D.sphere((0, 0, 0), 1)
a = T.subzone(a, (6, 1, 1), (50, 200, 1))
a = C.convertArray2Hexa(a)
a = G.close(a)

# contours
c = P.exteriorFaces(a)
cs = T.splitConnexity(c)

# plaster hole
p = G.plaster([cs[0]], [a])
t = C.newPyTree(['Sphere', 2, 'Contours', 1, 'Plaster', 2])
t[2][1][2].append(a)
t[2][2][2] += cs
t[2][3][2].append(p)
C.convertPyTree2File(t, 'out.cgns')
Пример #5
0
# - 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')
Пример #6
0
t[2][1][2].append(a)
# celln init
t = C.initVars(t, 'centers:cellN', 1.)
#C.convertPyTree2File(t, 'b.plt')
# Blanking
t = X.blankCellsTri(t, [[m]], [],
                    blankingType="cell_intersect",
                    tol=1.e-12,
                    cellnval=4,
                    overwrite=1)
#C.convertPyTree2File(t, 'out3t.cgns')
test.testT(t, 3)

# Test 4
# Tri mask
m = D.sphere((0, 0, 0), 20., 50)
m = C.convertArray2Tetra(m)
m = G.close(
    m)  ## IMPORTANT : sinon des triangles degeneres sont engendres aux poles
#C.convertPyTree2File(m, 'before.mesh')
#C.convertPyTree2File(m, 'after.mesh')
#C.convertPyTree2File(m, 'm.plt')
# Mesh to blank
a = G.cart((-5., -5., -5.), (0.5, 0.5, 0.5), (100, 100, 100))
t = C.newPyTree(['Cart'])
t[2][1][2].append(a)
# celln init
t = C.initVars(t, 'nodes:cellN', 1.)
#C.convertPyTree2File(t, 'b.plt')
# Blanking
t = X.blankCellsTri(t, [[m]], [],
# - conformUnstr (pyTree) -
# Conforming 1 or 2 TRI/BAR together (same type for both operands)
import Generator.PyTree as G
import Intersector.PyTree as XOR
import Converter.PyTree as C
import Geom.PyTree as D
from Geom.Parametrics import base
import Transform.PyTree as T

s1 = D.sphere((0, 0, 0), 1, N=20)

s2 = D.surface(base['plane'], N=30)
s2 = T.translate(s2, (0.2, 0.2, 0.2))

s1 = C.convertArray2Tetra(s1)
s1 = G.close(s1)
s2 = C.convertArray2Tetra(s2)
s2 = G.close(s2)

x = XOR.conformUnstr(s1, s2, tol=0.)
C.convertPyTree2File(x, 'out.plt')

c1 = D.circle((0, 0, 0), 1, N=100)
c2 = D.circle((0.2, 0, 0), 1, N=50)

c1 = C.convertArray2Tetra(c1)
c1 = G.close(c1)
c2 = C.convertArray2Tetra(c2)
c2 = G.close(c2)

x = XOR.conformUnstr(c1, c2, tol=0.)
# - extractPlane (pyTree) -
import Converter.PyTree as C
import Post.PyTree as P
import Geom.PyTree as D
import KCore.test as test

# test structure
m = D.sphere((0., 0., 0.), 1., N=20)
m = C.addBC2Zone(m, 'wall', 'BCWall', 'kmin')
m = C.initVars(m, 'F', 1.)
m = C.initVars(m, 'centers:G', 3.)
t = C.newPyTree(['Base', 2])
t[2][1] = C.addState(t[2][1], 'Mach', 0.6)
t[2][1][2].append(m)
p = P.extractPlane(t, (0., 0., 1., -0.5))
test.testT(p, 1)

# test non structure tri
m2 = C.convertArray2Tetra(m)
m2 = C.initVars(m2, 'F', 1.)
m2 = C.initVars(m2, 'centers:G', 3.)
t = C.newPyTree(['Base', 2])
t[2][1] = C.addState(t[2][1], 'Mach', 0.6)
t[2][1][2].append(m2)
p = P.extractPlane(t, (0., 0., 1., -0.5))
test.testT(p, 2)

# test non structure quad
m2 = C.convertArray2Hexa(m)
m2 = C.initVars(m2, 'F', 1.)
m2 = C.initVars(m2, 'centers:G', 3.)
# - identifySolutions (pyTree) -
import Converter.PyTree as C
import Generator.PyTree as G
import Geom.PyTree as D

# A mesh with a field
ni = 21; nj = 21; nk = 21
m = G.cart((0,0,0), (1./(ni-1),1./(nj-1),1./(nk-1)), (ni,nj,nk))
m = C.initVars(m, '{Density}={CoordinateX}')

# Create extraction mesh
a = D.sphere((0,0,0),0.1)

# Identify solutions
hook = C.createGlobalHook([m], 'nodes')
a = C.identifySolutions(a, m, hookN=hook)
C.freeHook(hook)
C.convertPyTree2File(a, 'out.cgns')
Пример #10
0
# - adaptOctree (pyTree) - 
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import KCore.test as test
# Quadtree
s = D.circle((0,0,0), 1., N=100); snear=0.1
o = G.octree([s], [snear], dfar=5.,balancing=1)
o = C.initVars(o, 'centers:indicator', 1.)
res = G.adaptOctree(o)
t = C.newPyTree(['OCTREE',2]); t[2][1][2] += [res]
test.testT(t)
# Octree
s = D.sphere((0,0,0), 1., N=100); snear=0.5
o = G.octree([s], [snear], dfar=5., balancing=1)
o = C.initVars(o,'centers:indicator',1.)
res = G.adaptOctree(o)
t = C.newPyTree(['OCTREE']); t[2][1][2] += [res]
test.testT(t,2)
# 9-tree
s = D.circle((0,0,0), 1., N=100); snear=0.1
o = G.octree([s], [snear], dfar=5.,balancing=1,ratio=3)
o = C.initVars(o,'centers:indicator',1.)
res = G.adaptOctree(o,ratio=3)
t = C.newPyTree(['OCTREE',2]); t[2][1][2] += [res]
test.testT(t,3)
# 27-tree
s = D.sphere((0,0,0), 1., N=100); snear=0.5
o = G.octree([s], [snear], dfar=5., balancing=1,ratio=3)
o = C.initVars(o,'centers:indicator',1.)
res = G.adaptOctree(o,ratio=3)
import Generator.PyTree as G
import Connector.PyTree as X
import Geom.PyTree as D
import Post.PyTree as P
import Dist2Walls.PyTree as DTW
import Transform.PyTree as T
import Initiator.PyTree as I
import Converter.Internal as Internal
import Connector.ToolboxIBM as IBM
import KCore.test as test
import numpy, sys

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', 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')
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')
Пример #13
0
# - display (pyTree) -
# Affichage du shader vector (mode solid)
import Geom.PyTree as D
import CPlot.PyTree as CPlot
import Converter.PyTree as C

a = D.sphere((0,0,0),1.,N=50)
#a = C.convertArray2Hexa(a)
C._initVars(a, '{fx}=-{CoordinateY}')
C._initVars(a, '{fy}={CoordinateX}')
C._initVars(a, '{fz}={CoordinateZ}')

C.convertPyTree2File(a, 'out.cgns')

CPlot.display(a, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=1, vectorScale=80.)
#CPlot.display(a, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=1, vectorScale=80.)
#CPlot.display(a, mode='Vector', vectorField1='fx', vectorField2='fy', vectorField3='fz', vectorStyle=1, vectorScale=80., vectorNormalize=1)
#CPlot.display(a, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=0)
#CPlot.display(a, displayBB=0, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=1, vectorScale=0.25)
#CPlot.display(a, displayBB=0, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=2, vectorScale=0.25)
#CPlot.display(a, displayBB=0, mode='Vector', vectorField1='fx', vectorField2='fy', vectorField3='fz', vectorStyle=1, vectorScale=80., vectorNormalize=1)
#CPlot.display(a, displayBB=0, mode='Vector', vectorField1=0, vectorField2=1, vectorField3=2, vectorStyle=0)


Пример #14
0
# - normalize (pyTree) -
# aux centres
import Converter.PyTree as C
import Generator.PyTree as G
import Geom.PyTree as D
import KCore.test as test

def f1(x1,x2,x3): return 3*x1*x2 + x3

# Structure
a = D.sphere( (0,0,0), 1., 50 )
a = C.node2Center(a, 'GridCoordinates')
a = C.initVars(a, 'centers:sx', f1, ['CoordinateX','CoordinateY','CoordinateZ'])
a = C.initVars(a, 'centers:sy', f1, ['CoordinateX','CoordinateY','CoordinateZ'])
a = C.initVars(a, 'centers:sz', f1, ['CoordinateX','CoordinateY','CoordinateZ'])
a = C.normalize(a, ['centers:sx','centers:sy','centers:sz'])
test.testT(a, 1)

# Non structure
a = D.sphere( (0,0,0), 1., 50 )
a = C.convertArray2Hexa(a)
a = C.node2Center(a, 'GridCoordinates')
a = C.initVars(a, 'centers:sx', f1, ['CoordinateX','CoordinateY','CoordinateZ'])
a = C.initVars(a, 'centers:sy', f1, ['CoordinateX','CoordinateY','CoordinateZ'])
a = C.initVars(a, 'centers:sz', f1, ['CoordinateX','CoordinateY','CoordinateZ'])
a = C.normalize(a,['centers:sx','centers:sy','centers:sz'])
test.testT(a,2)

# On lists
b = D.sphere((2.,0,0), 1., 50 )
b = C.node2Center(b, 'GridCoordinates')
Пример #15
0
# - dist2WallsEikonal (pyTree) -
import Converter.PyTree as C
import Connector.PyTree as X
import Converter.Internal as Internal
import Dist2Walls.PyTree as DTW
import Geom.PyTree as D
import Generator.PyTree as G
import numpy

DEPTH = 2
# Bloc cartesien
N = 128; h = 0.1
a = G.cart((0.,0.,0.),(h,h,h),(N,N,1))
# Init wall
sphere = D.sphere((6.4,6.4,0), 1., 100)
sphere = C.convertArray2Tetra(sphere)
sphere = G.close(sphere)
t = C.newPyTree(['Base']); t[2][1][2] = [a]; 
C._initVars(t,'cellN=1')
t = X.blankCellsTri(t, [[sphere]], numpy.array([[1]]), blankingType='node_in')
# Condition aux limites
t = X.setHoleInterpolatedPoints(t,depth=1,loc='nodes')
C._initVars(t,'flag=({cellN}>1.)')
t = DTW.distance2WallsEikonal(t,sphere,DEPTH=DEPTH,nitmax=10)
C.convertPyTree2File(t, 'out.cgns')

# Bloc cartesien
N = 64; h = 0.2
a = G.cart((0.,0.,0.),(h,h,h),(N,N,1)); a[0] = 'cart2'
# Init wall
sphere = D.sphere((6.4,6.4,0), 1., 100)
Пример #16
0
# - sphere (pyTree) -
import Geom.PyTree as D
import Converter.PyTree as C
import KCore.test as test

a = D.sphere((0, 0, 0), 1., 20)
t = C.newPyTree(['Base', 2, a])
test.testT(t, 1)
test.writeCoverage(100)
Пример #17
0
# - getTriQualityMap (pyTree) -
import Geom.PyTree as D
import Generator.PyTree as G
import Converter.PyTree as C
import KCore.test as test

a = D.sphere((0, 0, 0), 1, 50)
a = C.convertArray2Tetra(a)
a = G.close(a)
t = C.newPyTree(['Base', 2])
t[2][1][2].append(a)
t = C.initVars(t, 'Density', 2.)
t = C.initVars(t, 'centers:cellN', 1.)
t[2][1] = C.addState(t[2][1], 'Mach', 0.6)
t = G.getTriQualityMap(t)
test.testT(t)
Пример #18
0
# - octree (pyTree) -
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import KCore.test as test

# 2D : QUADTREE
s = D.circle((0,0,0), 1., N=100); snear = 0.1
s = C.addVars(s,'ro'); s = C.initVars(s,'centers:cellN',1.)
res = G.octree([s], [snear], dfarList=[], dfar=5.)
test.testT(res, 1)

# 3D : octree HEXA
s = D.sphere((0,0,0), 1., 100); snear = 0.1
s = C.addVars(s,'ro'); s = C.initVars(s,'centers:cellN',1.)
res = G.octree([s],[snear], dfar=5.)
test.testT(res, 2)
# - adaptOctree (pyTree) - 
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import KCore.test as test

s = D.circle((0,0,0), 1., N=100); snear = 0.1
o = G.octree([s], [snear], dfar=5.,balancing=1)
o = C.initVars(o,'centers:indicator', 2.)
res = G.adaptOctree(o)
t = C.newPyTree(['OCTREE',2]); t[2][1][2] += [res]
test.testT(t)

s = D.sphere((0,0,0), 1., N=20); snear = 0.5
o = G.octree([s], [snear], dfar=5., balancing=1)
o = C.initVars(o,'centers:indicator',2.)
res = G.adaptOctree(o)
t = C.newPyTree(['OCTREE']); t[2][1][2] += [res]
test.testT(t,2)
# - magnitude (pyTree) -
import Converter.PyTree as C
import Geom.PyTree as D
import Generator.PyTree as G
import KCore.test as test

a = D.sphere((0, 0, 0), 1., 50)
a = G.getNormalMap(a)
a = C.magnitude(a, ['centers:sx', 'centers:sy', 'centers:sz'])
t = C.newPyTree(['Base', 2, a])
test.testT(t, 1)
Пример #21
0
# test maskXRay : points de percage (pyTree)
import Connector.PyTree as X
import Generator.PyTree as G
import Geom.PyTree as D
import Transform.PyTree as T
import Converter.PyTree as C

# retourne les pierce pts sous forme de 'NODE'
surf = D.sphere((0, 0, 0), 0.5, 20)
surf = T.rotate(surf, (0., 0., 0.), (0., 1., 0.), 90.)
xray = X.maskXRay__(surf)
Пример #22
0
# - collarMesh (pyTree)
import Converter.PyTree as C
import Geom.PyTree as D
import Transform.PyTree as T
import Generator.PyTree as G

s1 = D.sphere((0., 0., 0.), 1, 20)
s2 = T.translate(s1, (1.2, 0., 0.))
s2 = T.homothety(s2, (0, 0, 0), 0.5)
dhj = G.cart((0., 0., 0.), (1.e-2, 1, 1), (21, 1, 1))
dhk = G.cart((0., 0., 0.), (1.e-2, 1, 1), (11, 1, 1))
a = G.collarMesh(s1, s2, dhj, dhk, niterj=100, niterk=100, type='union')
C.convertPyTree2File(a, "out.cgns")
Пример #23
0
#!/usr/bin/env python
# coding: utf-8
r"""<TBC>"""

import Generator.PyTree as G
import Converter.PyTree as C
import Transform.PyTree as T
import Geom.PyTree as D

N = 4

# Donor mesh
a = G.cart((-2, -2, -2), (0.04, 0.04, 0.04), (200, 100, 100))
a = C.initVars(a, '{Density} = {CoordinateX}')
a = T.splitNParts(a, N=3 * N)
t = C.newPyTree(['Base'])
t[2][1][2] += a
C.convertPyTree2File(t, 'donor.cgns')

# Receiver mesh
b = D.sphere((1, 1, 1), 0.5, N=100)
b = T.splitNParts(b, N=N)
t = C.newPyTree(['Base'])
t[2][1][2] += b
C.convertPyTree2File(t, 'receiver.cgns')
Пример #24
0
# Mesh to blank
a = G.cart((-5., -5., -5.), (0.5, 0.5, 0.5), (100, 100, 100))
t = C.newPyTree(['Cart'])
t[2][1][2].append(a)
# celln init
t = C.initVars(t, 'centers:cellN', 1.)
# Blanking
t = X.blankCellsTetra(t, [[mT4]], [],
                      blankingType="cell_intersect",
                      tol=1.e-12)
#C.convertPyTree2File(t, 'out3.cgns')
test.testT(t, 3)

# Test 4
# Tet mask
mT4 = D.sphere((0, 0, 0), 20., 50)
mT4 = C.convertArray2Tetra(mT4)
mT4 = G.close(mT4)
mT4 = G.tetraMesher(mT4, algo=1)
#C.convertPyTree2File(mT4, 'sph.cgns')
# Mesh to blank
a = G.cart((-5., -5., -5.), (0.5, 0.5, 0.5), (100, 100, 100))
t = C.newPyTree(['Cart'])
t[2][1][2].append(a)
# celln init
t = C.initVars(t, 'nodes:cellN', 1.)
# Blanking
t = X.blankCellsTetra(t, [[mT4]], [], blankingType="node_in", tol=1.e-12)
#C.convertPyTree2File(t, 'out4.cgns')
test.testT(t, 4)
Пример #25
0
# - moveCamera (pyTree) -
import Geom.PyTree as D
import CPlot.PyTree as CPlot
import Converter.PyTree as C
import Transform.PyTree as T
import Generator.PyTree as G

# Model
a = D.sphere((0, 0, 0), 1., N=20)
a = C.convertArray2Hexa(a)
a = G.close(a)
CPlot.display(a, posCam=(3, -1, 0.7), posEye=(0, 0, 0))

t = 0.
for i in range(1000):
    # change model
    C._initVars(a, '{df}=0.1*cos(%f)*sin(10*pi*{CoordinateX})' % (t))
    b = T.deformNormals(a, 'df')
    # Move camera
    CPlot.moveCamera([(3, -1, 0.7), (3, 5, 0.7), (3, 7, 0.7)], N=1000, pos=i)
    CPlot.display(b)
    t += 0.05
Пример #26
0
# - boolean difference (pyTree) -
import Intersector.PyTree as XOR
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import KCore.test as test

s1 = D.sphere((0, 0, 0), 1, N=20)
s2 = D.sphere((0., 1., 0.), 1, N=30)

s1 = C.convertArray2Tetra(s1)
s1 = G.close(s1)
s2 = C.convertArray2Tetra(s2)
s2 = G.close(s2)

x = XOR.booleanMinus(s1, s2, tol=0.)
test.testT(x)
Пример #27
0
#!/usr/bin/python
# coding: utf-8
r"""<TBC>"""

# Extraction de bandes x=cte sur un maillage surfacique
import Converter.PyTree as C
import Post.PyTree as P
import Geom.PyTree as D
import Generator.PyTree as G
import Transform.PyTree as T

# IN: surface+solution
# Attention: les normales doivent etre dirigees vers l'exterieur
a = D.sphere((0, 0, 0), 1, N=100)
a = C.initVars(a, 'p={CoordinateX}+{CoordinateY}')
a = C.convertArray2Tetra(a)
a = G.close(a)

# Extraction de lignes x = cste
bb = G.bbox(a)
xmin = bb[0]
ymin = bb[1]
zmin = bb[2]
xmax = bb[3]
ymax = bb[4]
zmax = bb[5]

bands = []
dx = 1. / 10
for i in range(10):
    x = i / 10.
#!/usr/bin/env python
# coding: utf-8

r"""Generator : refine an octree inside a surface"""

import numpy as np

# Refine an octree mesh inside a surface defined by a sphere
import Converter.PyTree as C
import Generator.PyTree as G
import Geom.PyTree as D
import Connector.PyTree as X

# IN: sphere
a = D.sphere((0, 0, 0), 2, N=20)

# Octree mesh generation around the sphere
o = G.octree([a], [0.5], dfar=15., balancing=1)
t = C.newPyTree(['Base'])
t[2][1][2] += [o]

BM = np.array([[1]])


def F(c, vol):
    r"""F
    
    Parameters
    ----------
    c
    vol
Пример #29
0
# - octree (pyTree) -
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import KCore.test as test

# 2D : QUADTREE
s = D.circle((0, 0, 0), 1., N=100)
snear = 0.1
s = C.addVars(s, 'ro')
s = C.initVars(s, 'centers:cellN', 1.)
res = G.octree([s], [snear], dfar=5.)
test.testT(res, 1)

# 3D : octree HEXA
s = D.sphere((0, 0, 0), 1., 100)
snear = 0.1
s = C.addVars(s, 'ro')
s = C.initVars(s, 'centers:cellN', 1.)
res = G.octree([s], [snear], dfar=5.)
test.testT(res, 2)
Пример #30
0
import Converter.PyTree as C
import Connector.PyTree as X
import Generator.PyTree as G
import KCore.test as test
import Geom.PyTree as D
import Converter

# transfers at centers
a = D.sphere((5.,5.,5.),1)
C._initVars(a,"centers:cellN=2.")
C._initVars(a,"centers:Density=0.")
indicesI,XI,YI,ZI = X.getInterpolatedPoints(a,loc='centers') 

zdnr = G.cart((0.,0.,0.),(1,1,1),(11,11,11))
C._initVars(zdnr,"centers:Density=1.")
C._initVars(zdnr,"centers:cellN=1.")
zdnrc = C.node2Center(zdnr)
adt = C.createHook(zdnrc,'adt')
fields = X.transferFields(zdnrc, XI, YI, ZI, hook=adt, variables=['Density'])
C.freeHook(adt)
test.testA(fields,1)

# transfers at nodes
a = D.sphere((5.,5.,5.),1)
C._initVars(a,"cellN=2.")
C._initVars(a,"Density=0.")
indicesI,XI,YI,ZI = X.getInterpolatedPoints(a,loc='nodes') 

zdnr = G.cart((0.,0.,0.),(1,1,1),(11,11,11))
C._initVars(zdnr,"Density=1.")
C._initVars(zdnr,"cellN=1.")