# BG Mesh from toolbox.gen4tools import createBG import wrap.gen4 bgeo = wrap.gen4.Geometry() densityCircle = 0.02 densityTop = 0.05 a = ((2.0*densityCircle-densityTop) * (Ly-cy)*(Ly-cy) - densityCircle * R*R)/((Ly-cy)*(Ly-cy)-R*R) b = (densityTop - densityCircle)/((Ly-cy)*(Ly-cy)-R*R) print a print b # Magnifique fonction avec une densite de maille elevee au bord du cercle, # densite qui diminue quand on s'en eloigne def densityFunction(a,b): return lambda x,y : a + b * ((x-cx)*(x-cx) + (y-cy)*(y-cy)) bgmesh = createBG(bgeo, densityFunction(a,b), eps=0.7, delta=0.0, density=2.0) # Mesh from toolbox.meshers import Gen4Mesher mesher = Gen4Mesher(sideset(1), domain) mesher.setBgMesh(bgmesh) mesher.execute() def createBG(bgeo, fct, eps=2.0, delta=0.0, density=2.0): n1 = bgeo.add(Node(1, -eps+delta, -eps+delta, density)) n2 = bgeo.add(Node(2, 1.0+eps+delta, -eps+delta, density)) n3 = bgeo.add(Node(3, 1.0+eps+delta, 1.0+eps+delta, density)) n4 = bgeo.add(Node(4, -eps+delta, 1.0+eps+delta, density)) side = createSide(1, bgeo, n1,n2,n3,n4) bgmesh = startGen4(side,interactive=False) Quad2Tri(bgmesh).execute() bgmesh.setDensityF(fct) return bgmesh
Pied d'aube généré avec gen4 + background mesh : raffinement aux bords d'attaque et de fuite.
SplineSeg et background mesh : raffinement du maillage selon un rond. Le centre du background mesh a une longueur de maille donnée et cette longueur décroît quand on s'éloigne du centre.
Spline et background mesh : Raffinement du maillage quand on va de en haut à gauche à en bas à droite.
Maillage gen4 avec background mesh dans Metafor. La fonction densité du bgMesh a une densite de maille élevée au bord du cercle, et diminue ensuite quand on s'en eloigne.
A oo_meta/apps/qs/gen4meshBg.py A oo_meta/toolbox/gen4/geo9 A oo_meta/toolbox/gen4/geo9b A oo_meta/toolbox/gen4/geo9c
— Pierre-Paul Jeunechamps 2007/04/23 10:33