Example #1
0
# - compIndicatorField (pyTree) -
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import Post.PyTree as P

#----------------------
# indicateur en centres
#----------------------
s = D.circle((0, 0, 0), 1., N=100)
snear = 0.1
o = G.octree([s], [snear], dfar=10., balancing=1)
npts = o[1][0][0]
o = G.getVolumeMap(o)
o, valInf, valSup = P.computeIndicatorField(o,
                                            'centers:vol',
                                            nbTargetPts=2 * npts,
                                            bodies=[s])
C.convertPyTree2File(o, 'out.cgns')
Example #2
0
K = 1./math.sqrt(0.001*2*math.pi)
K2 = 1./(2*0.001)


def F(x, y):
    if 0.05 < abs(y) < 0.7:
        return K*math.exp(-(x-0.5)**2*K2)
    else:
        return 0.

o = C.initVars(o, 'F', F, ['CoordinateX', 'CoordinateY'])

# Computation of the indicator onto the octree mesh
npts = Internal.getZoneDim(o)[1]
o2, valInf, valSup = P.computeIndicatorField(o, 'F', nbTargetPts=1.2*npts,
                                             refineFinestLevel=0, bodies=[naca])

# Adaptation of the octree wrt the indicator
o2 = G.adaptOctree(o2)

# Interpolate solution on adapted octree
o = C.rmVars(o, ['centers:indicator', 'F'])
o2 = P.extractMesh([o], o2)

# Save file
t = C.newPyTree(['Octree', 'Octree2'])
t[2][1][2] += [o]
t[2][2][2] = [o2]
C.convertPyTree2File(t, 'out.cgns')
# - compIndicatorField (pyTree) -
import Generator.PyTree as G
import Converter.PyTree as C
import Geom.PyTree as D
import Post.PyTree as P
import KCore.test as test

#----------------------
# indicateur en centres
#----------------------
s = D.circle((0, 0, 0), 1., N=100)
snear = 0.1
o = G.octree([s], [snear], dfar=10., balancing=1)
o = G.getVolumeMap(o)
# test sans bodies
o, valInf, valSup = P.computeIndicatorField(o, 'centers:vol')
test.testT(o, 1)

# test avec bodies
indicator, valInf, valSup = P.computeIndicatorField(o,
                                                    'centers:vol',
                                                    nbTargetPts=5000,
                                                    bodies=[s])
test.testT(o, 2)


# indicateur en noeuds
def initIndic(v, w):
    return 3 * v + 4 * v * v