Mallas bidimensionales de perfiles aerodinámicos para OpenFOAM. En un click.

Adelanto algo que tengo a punto de caramelo.

Algún colega -no solo de mi universidad- me ha escrito preguntando por una manera sencilla de obtener mallas -ya sean o no estructuradas- para introducir en programas de cfd para obtener colorines, y es que quedan muy bien en las prácticas de aerodinámica =).

Bromas aparte lo cierto es que es complicado obtener una malla estructurada y en condiciones y más si uno ha decidido condenarse al limbo del opensource. En OpenFOAM yo siempre me he visto obligado a recurrir a las herramientas de Fluent para obtener cosas decentes, al igual que muchos compañeros. No hay más que googlear un poco o pasar por cfd-online.

Me ha dado por solucionar esa espinita que tenía clavada y lo cierto es que no ha sido tan doloroso (me retractaré cuando llegue a las optimizaciones, seguramente). Un poco de tu lenguaje favorito -en este caso Python, porque se integra con OpenFOAM- y de snappyHexMesh han hecho el resto.

Voy a liberarlo bajo licencia GNU en cuanto implemente algunas funcionalidades más.

Os dejo unas capturas para hacer boca… pasadas de resolución, eso sí. Y la salida del comando checkMesh.

Detalle del mallado alrededor del perfil.

Mallado del dominio alrededor del perfil.

La salida del comando checkMesh de snappyHexMesh:

Mesh stats
    points:           161096
    internal points:  0
    faces:            319948
    internal faces:   158852
    cells:            79800
    boundary patches: 5
    point zones:      0
    face zones:       0
    cell zones:       0

Overall number of cells of each type:
    hexahedra:     79800
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:     0

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces ...
    Patch               Faces    Points   Surface topology                  
    inlet               200      402      ok (non-closed singly connected)  
    outlet              200      402      ok (non-closed singly connected)  
    topAndBottom        598      1200     ok (non-closed singly connected)  
    airfoil             498      996      ok (non-closed singly connected)  
    defaultFaces        159600   161096   ok (non-closed singly connected)  

Checking geometry...
    Overall domain bounding box (-7.5803 -0.5 -8) (16 0.5 8)
    Mesh (non-empty, non-wedge) directions (1 0 1)
    Mesh (non-empty) directions (1 0 1)
    All edges aligned with or perpendicular to non-empty directions.
    Boundary openness (5.55832e-19 4.85438e-16 -2.09423e-16) OK.
    Max cell openness = 1.85945e-16 OK.
    Max aspect ratio = 483.616 OK.
    Minumum face area = 2.61699e-06. Maximum face area = 0.547766.  Face area magnitudes OK.
    Min volume = 2.61699e-06. Max volume = 0.243185.  Total volume = 349.821.  Cell volumes OK.
    Mesh non-orthogonality Max: 48.6761 average: 10.7735
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 0.582259 OK.
    Coupled point location match (average 0) OK.

Mesh OK.

End

Esta entrada fue publicada en Aerodinamica, cfd, linux, matemáticas, OpenFOAM, python y etiquetada , , , , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s