You are on page 1of 16

GMSH:GeneradordeMallas

http://geuz.org/gmsh/ MiniTutorialv1.119/Ene/2011 MarianoRemre@fi.uba.ar

INTRODUCCIN GMSHesunsoftwareparagenerarmalladosbidimensionalesytridimensionalesautomticamente1. GMSH fue concebido como un software acadmico para resolver problemas acadmicos, sin embargo a lo largo de los aos se ha mejorado lo suficiente para ser utilizado fuera de entornos universitarios.GMSHessoftwarelibre,estescritoenC++yesmultiplataforma(Unix/Linux,MacOS X,Windows). FUNCIONALIDADESDEGMSH GMSH presenta cuatro mdulos: geomtrico, mallador, solver y postprocesado. El mdulo geomtrico(dediseo),permitedibujarvisualmenteunafiguraaunqueconcapacidadeslimitadas,a pesar de poder definirlas paramtricamente. El mdulo de mallado se apoya en las definiciones geomtricas (incluidas la longitudes caractersticas) para crear mallados en una, dos y tres dimensiones, con elementos de formas varias (lneas, tringulos, tetraedros, prismas, hexaedros y pirmides) y eligiendo el tipo de algoritmo de mallado. El mdulo solver (de resolucin) implica la llamada a ciertos sistemas externos con los que interactuar (al momento programadas por el usuario).Elmdulodepostprocesado(ligadoalavisualizacin)incluyegrannmerodeoperaciones diferenciales,vectoriales,herramientasparatrabajarconnmeroscomplejosyfuncionalidadespara extraerdatosdelasdistribucionesdedatosdeentrada. MODULOGEOMTRICO El mdulo geomtrico permite dibujar puntos, lneas, superficies y volmenes. Adems permite seleccionar qu elementos estn fsicamente presentes en las figuras, puesto que en ocasiones es necesariodefinirelementosauxiliaressinsentidofsico. Apartirdeladefinicindepuntosenelespacioesposibleirconstruyendolneas,crculosyelipses, conlosquesepuedenirdefiniendolassuperficiesy/ovolmenesqueconstituyenlafigurabuscada. Unavezconseguidaesmuyrecomendabledefinirlospuntos,lneasysuperficiesquetienensentido fsicoconPhysicalGroups,indicandoalmalladorquepartesdiscretizar. Cada uno de los elementos del dibujo se denominan Entidades Geomtricas, y son los siguientes: Punto (Point) Lnea (Line) Arcos de crculo (Circle) Arcos de elipse (Ellipse) Spline (Spline) BSpline(BSpline)Superficieplana(PlaneSurface)Superficiesregladas(RuledSurface)Volmenes (Volumen).Lasherramientasdedibujodisponiblesson:Translacin(Translate)Rotacin(Rotate)
Geuzaine,C.,Remacle,J.F.,2009,Gmsh:athreedimensionalfiniteelementmeshgeneratorwithbuiltinpre andpostprocessingfacilities.InternationalJournalforNumericalMethodsinEngineering,79(11),13091331.
GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe
1

Desdoblaje (Split) Escalado (Scale) Simetra (Symmetry) Extrusin (Extrude) Coherencia (Coherence). La geometra del dominio a mallar puede ser definida desde un archivo de texto (formato propio *.geo). Utilizando un lenguaje propio en ASCII se pueden crear figuras parametrizadas o incluir bucles. Por ejemplo las longitudes caractersticas de la densidad de mallado es un caso comn de variableparametrizada. MODULODEMALLADO El mdulo de mallado agrupa varios algoritmos de mallado 1D, 2D y 3D, creando mallas pensadas parapodertrabajarconelementosfinitos.Entrelasfuncionalidadesdeestemduloseencuentrala posibilidad de modificar distintos parmetros (definicin de longitud caracterstica, tamao de elemento mnimo, tamao de elemento mximo, nmero mnimo de puntos para mallado de un elemento curvo, factor global sobre todas las longitudes caractersticas), modificar el algoritmo de malladoyhastatratardeeliminarlosnodosasociadosapocoselementos. GMSH genera mallas no estructuras, y mallas estructuradas a partir de mallas no estructuradas (transfinite y extrusion). Los algoritmos no estructurados 2D generan tringulos o tringulos y cuadrngulos y los algoritmos no estructurados 3D generan tetraedros. Los algoritmos 2D estructuradasgenerantringulospordefectoylosalgoritmos3Destructuradosgenerantetraedros, hexaedros,prismasypirmides,enfuncindeltipodesuperficie. EJEMPLODEMALLADO2D Senecesitamallareldominioenelqueseresolverladistribucindetemperaturasenunaseccin deviga.Lasdimensionesynombresdebordessepresentanenlasiguientefigura:

Se abre el programa GMSH y aparece un proyecto geomtrico vaco por defecto denominado untitled.geo.Esteproyectopuedesersalvadoconunnombreadecuado(enestecasoipn_base.geo). File Save As

GMSH:GeneradordeMallas

MiniTutorialv1.119/Ene/2011MarianoRe

Laincorporacindeldominioaresolverenelproyectogeomtricoserealizaapartirdelingresodela entidadelementalbsica. Elementary Entities Add New Point

Existenvariasposibilidadesdeingresodelospuntos.Laprimeradeellasesvalaventanaemergente en donde se debe explicitar la coordenada del punto en las tres dimensiones, una longitud caractersticademallado(CharacteristicLength)yunespaciamientodelagrilladeldibujo(Snapping GridSpacing).Otradeellaspermiteirubicandolospuntosconelcursor. Lospuntosquesegenerenparaunmallado2Dtienenquetenerlacomponentez=0,paraquetodo esteenelmismoplano(planoz=0). La longitud caracterstica establece el tamao del elemento relacionado con ese punto. La distribucindelostamaosdemalladeelementosseobtieneporinterpolacindeestaslongitudes caractersticasentodalageometra. Elespaciamientodelagrilladeldibujomarcalaubicacindelosposiblespuntosdelamallaenlas tresdimensiones(siseelije[1][1][1],noesposibleubicarelpunto[0.5,0.2,0.3]).

GMSH:GeneradordeMallas

MiniTutorialv1.119/Ene/2011MarianoRe

LaopcinrestantetienequeverconelcdigogeneradoenelarchivoASCIIipn_base.geo,endonde secaracterizacadapuntocomo: Point(i) = { xi, yi, zi, lci}; Enelcasodeldominioamallarlosdocepuntosdelatablapuedenseringresadosdirectamenteal archivoASCII. Point(1) = {0, 600, 0, 10}; Point(2) = {0, 567, 0, 10}; Point(3) = {97, 567, 0, 10}; Point(4) = {97, 33, 0, 10}; Point(5) = {0, 33, 0, 10}; Point(6) = {0, 0, 0, 10}; Point(7) = {215, 0, 0, 10}; Point(8) = {215, 33, 0, 10}; Point(9) = {118, 33, 0, 10}; Point(10) = {118, 567, 0, 10}; Point(11) = {215, 567, 0, 10}; Point(12) = {215, 600, 0, 10}; Las longitudes caractersticas de la densidad de mallado tambin se pueden parametrizar. En el siguienteejemploseproponeunamayordensidaddemalladoenlazonacercanaalBorde4yuna menor en la zona del Borde 2 . Todas las longitudes caractersticas que se propongan deben estar relacionadasporunarelacindemultiplicidad.
GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe

lc1 = 10; lc2 = 20; Point(1) = {0, 600, 0, lc1}; Point(2) = {0, 567, 0, lc1}; Point(3) = {97, 567, 0, lc1}; Point(4) = {97, 33, 0, lc2}; Point(5) = {0, 33, 0, lc2}; Point(6) = {0, 0, 0, lc2}; Point(7) = {215, 0, 0, lc2}; Point(8) = {215, 33, 0, lc2}; Point(9) = {118, 33, 0, lc2}; Point(10) = {118, 567, 0, lc1}; Point(11) = {215, 567, 0, lc1}; Point(12) = {215, 600, 0, lc1}; Lospuntosincorporadosalesquemageomtricopuedenservisualizadosconnumeraciones. Tools Options Geometry Visibility

Launindelospuntosyaincorporadosserealizaatravsdelagregadodelaslneas. Elementary Entities Add New Straight Line

Cadalneaseagregaseleccionandoelinicioyelfinaldeltramo.Parasaberqueelpuntoinicialofinal deltramoestseleccionado,elcursoroelpuntopuedencambiardeformaocolor.

GMSH:GeneradordeMallas

MiniTutorialv1.119/Ene/2011MarianoRe

Luegodeunirtodoslospuntos,siseabreelproyectogeomtricoconuneditordetextosevequese agregaronlaslneascomo: Line(1) = {1, 12}; Line(2) = {12, 11}; Line(3) = {11, 10}; Line(4) = {10, 9}; Line(5) = {9, 8}; Line(6) = {8, 7}; Line(7) = {7, 6}; Line(8) = {6, 5}; Line(9) = {5, 4}; Line(10) = {4, 3}; Line(11) = {3, 2}; Line(12) = {2, 1}; Luegodehabercerradoeldominioconlaentidadlnea,sepuedecrearunasuperficie.Enestecaso, dadoelproblemabidimensionallasuperficieesplana(PlaneSurface). Elementary Entities
GMSH:GeneradordeMallas

Add

New

Plane Surface

MiniTutorialv1.119/Ene/2011MarianoRe

Se selecciona con el cursor uno de los bordes de la superficie, y luego con e se ejecuta automticamenteelloopquearmalasuperficie.Encasodequenocierreautomticamenteelloop sedebenseleccionarcadaunadelaslneasquecierranlasuperficie.Luegodecrearlasuperficie,el modelogeomtricosecomplet.

Line Loop(13) = {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2}; Plane Surface(14) = {13}; ParamallarsedebeiralmduloMesh.Eligiendo2Dsegeneralamallabidimensional.

GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe

Aqu se muestran dos mallas obtenidas con dos longitudes caractersticas de los puntos distintas. Unamallamsrefinadasepuedeobtenermodificandoelarchivodeproyecto*.geocambiandolas longitudes caractersticas asociadas a los puntos, y tambin cambiandolalongitudcaractersticaglobalenlainterfazgrfica: Tools Options Mesh General Element size factor

Alguardarselamallaejecutada,secreaunarchiveASCIIdelmismonombrequeeldelproyecto geomtricoperodeextensinmshyquetieneelsiguienteformato: $MeshFormat 2.1 0 8 $EndMeshFormat $Nodes 130 1 0 600 0 2 0 567 0 ... 129 107.5 355.4538461537227 0 130 107.5 388.3153846152803 0 $EndNodes $Elements 270 1 15 3 0 1 0 1 2 15 3 0 2 0 2 ... 11 15 3 0 11 0 11 12 15 3 0 12 0 12 13 1 3 0 1 0 1 13 14 1 3 0 1 0 13 14 ... 103 1 3 0 11 0 92 2 104 1 3 0 12 0 2 1
GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe

105 2 3 0 14 0 9 65 49 106 2 3 0 14 0 9 4 65 ... 269 2 3 0 14 0 64 110 63 270 2 3 0 14 0 59 63 110 $EndElements Sepresentantresbloquesdedatos: $MeshFormat $EndMeshFormat:Informacindelformatodemalla $Nodes $EndNodes:Informacindelnmeroglobalyubicacindelosnodos. $Elements $EndElements:Informacindeloselementos.
Elbloquedeinformacindeloselementoscontienevariadainformacinporcadaunodeellos:

#elem tipo-elem #etq < etq1, etq2, etq3 > lista-nodos (nmero de elemento, tipo de elemento, nmero de etiquetas, etiquetas, lista de nodos que pertenecenalelemento). GMSHpermitemallarconvariadoselementos,entrelosmssimplesseencuentranpuntos(tipo15), lneas(tipo1),tringulos(tipo2)ycuadrngulos(tipo3).

Pordefecto,laprimeraetiquetaeselnmerodelaentidadfsicaalaqueperteneceelelemento,la segunda es el nmero de la entidad geomtrica elemental a la que pertenece el elemento, y la tercera es el nmero de particiones de la malla a la que pertenece el elemento, seguido de los identificadoresdeparticin(unidentificadornegativoindicaunaceldasfantasmas).
GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe

Unaformadeidentificarubicacionesdecondicionesdebordeesladeincorporarentidadesfsicasen el esquema geomtrico (Physical Groups). Si se definen entidades fsicas, el archivo salida *.msh solamentecontieneaquelloselementosquepertenecenalasmismas.Siseactivalacasillasaveall, seguardantodosloselementos.Laidentificacindeaquentidadfsicapertenececiertoelemento sedaatravsdeunadelasetiquetasenladefinicindelelemento. Geometry Physical Groups Add Line/Surface Enesteejemploquedandefinidosdelasiguientemanera: Physical Physical Physical Physical Physical Line("Borde 1") = {1}; Line("Borde 2") = {2, 3, 4, 5, 6}; Line("Borde 3") = {7}; Line("Borde 4") = {8, 9, 10, 11, 12}; Surface("Interior") = {18};

Luego se mallar, se encuentra un bloque ms en donde se informa la cantidad y el nombre de las entidades fsicas presentes. Los nodos y elementos presentados en el archivo de la malla son aquellosquepertenecenexclusivamentealasentidadesfsicas: $MeshFormat 2.1 0 8 $EndMeshFormat $PhysicalNames 5 1 1 "Borde 1" 1 2 "Borde 2" 1 3 "Borde 3" 1 4 "Borde 4" 2 5 "Interior" $EndPhysicalNames $Nodes 92 1 0 600 0 2 0 567 0 91 48.49999999999791 567 0 92 24.25000000001908 567 0 $EndNodes $Elements 92 1 1 3 1 1 0 1 13 2 1 3 1 1 0 13 14 91 1 3 4 11 0 92 2 92 1 3 4 12 0 2 1 $EndElements
GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe

Por defecto, GMSH genera mallados no estructurados: tringulos en 2D y tetraedros en 3D. Estructurarlamallaresultaposible,paraestoseutilizaelalgoritmotransfinitoparaobtenermallas de tringulos o tetraedros regulares para luego generar una malla de cuadrngulos o hexaedros medianteuncomandoderecombinacin. Unadelasformasdeobtenerunmalladodecuadrngulosresultaapartirdelaredefinicindedela geometra con el objetivo de subdividirla en varias superficies con cuatro extremos nodales. Para estoseincorporannuevospuntos:

queenlacodificacindelarchivodegeometrasedescribencomo Point(1) = {0, 600, 0, 20}; Point(2) = {0, 567, 0, 20}; Point(3) = {97, 567, 0, 20}; Point(4) = {97, 33, 0, 20}; Point(5) = {0, 33, 0, 20}; Point(6) = {0, 0, 0, 20}; Point(7) = {215, 0, 0, 20}; Point(8) = {215, 33, 0, 20}; Point(9) = {118, 33, 0, 20}; Point(10) = {118, 567, 0, 20}; Point(11) = {215, 567, 0, 20}; Point(12) = {215, 600, 0, 20}; Point(13) = {97, 0, 0, 20}; Point(14) = {97, 600, 0, 20}; Point(15) = {118, 0, 0, 20}; Point(16) = {118, 600, 0, 20};
GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe

Luegodelaredefinicindepuntos,seunenlosmismosconnuevaslneas:

Line(1) = {1, 14}; Line(2) = {14, 16}; Line(3) = {16, 12}; Line(4) = {12, 11}; Line(5) = {11, 10}; Line(6) = {10, 9}; Line(7) = {9, 8}; Line(8) = {8, 7}; Line(9) = {7, 15}; Line(10) = {15, 13}; Line(11) = {13, 6}; Line(12) = {6, 5}; Line(13) = {5, 4}; Line(14) = {4, 3}; Line(15) = {3, 2}; Line(16) = {2, 1}; Line(17) = {14, 3}; Line(18) = {3, 10}; Line(19) = {10, 16}; Line(20) = {4, 13}; Line(21) = {15, 9}; Line(22) = {9, 4}; Finalmenteloqueseobtienesonsietesuperficiesconcuatroextremosnodales:

GMSH:GeneradordeMallas

MiniTutorialv1.119/Ene/2011MarianoRe

Line Loop(23) = {1, 17, 15, 16}; Plane Surface(24) = {23}; Line Loop(25) = {2, -19, -18, -17}; Plane Surface(26) = {25}; Line Loop(27) = {3, 4, 5, 19}; Plane Surface(28) = {27}; Line Loop(29) = {7, 8, 9, 21}; Plane Surface(30) = {29}; Line Loop(31) = {22, 20, -10, 21}; Plane Surface(32) = {31}; Line Loop(33) = {13, 20, 11, 12}; Plane Surface(34) = {33}; Line Loop(35) = {18, 6, 22, 14}; Plane Surface(36) = {35}; A continuacin se listan las lneas a discretizar con el algoritmo transfinito 1D. La expresin de la derechaindicaelnmerodenodosquesecrearnenesaslneas.Enesteejemploseindicalamisma cantidaddenodosaaquellaslneasqueestnenfrentadas: Transfinite Line {16,17,19,4}=5; Transfinite Line {2,18}=3; Transfinite Line {1,3,5,15}=5; Transfinite Line {14,6}=20; Transfinite Line {12,20,21,8}=5; Transfinite Line {22,10}=3; Transfinite Line {13,7,9,11}=5;
GMSH:GeneradordeMallas MiniTutorialv1.119/Ene/2011MarianoRe

Existen dos argumentos opcionales en la sentencia Transfinite: Using Progression expression que indica que la distribucin de nodos se haga segn una progresin geomtrica y Using Bump expressionqueindicaqueladistribucindenodosseamsrefinadaenlosfinalesdecadalnea. El comando Transfinite Surface aplicar el algoritmo transfinito 2D a aquellas superficies que se identifiquen: Transfinite Surface {24,26,28,30,32,34,36};

ConelcomandoRecombineSurfaceserecombinanlasmallastriangularesdelassuperficieslistadas paraobtenermallascuadrangulares. Recombine Surface {24,26,28,30,32,34,36};

GMSH:GeneradordeMallas

MiniTutorialv1.119/Ene/2011MarianoRe

Con el problema resuelto, a partir de Las mallas obtenidas con estas metodologas, se tienen los resultados buscados en cada uno de los nodos en que se discretiz el dominio. Esa informacin puedeserincorporadaalarchivode*.mshyservisualizadaconelmduloPostprocessingdeGMSH. ParaestoseincorporaelbloqueNodeDataquesedetalladelasiguienteforma: $NodeData 1 // 1 etiqueta string (ttulo) "Temperatura [*C]" // etiqueta: el ttulo de la vista 1 // 1 etiqueta real (tiempo) 0 // tiempo == 0 3 // 3 etiquetas integer 0 // paso temporal 1 // 1 campo componente (escalar) 364 // 364 valores (cantidad de nodos) 1 20 2 16 362 18.09636224 363 18.52806235 364 16.94692789 $EndNodeData

GMSH:GeneradordeMallas

MiniTutorialv1.119/Ene/2011MarianoRe

Respecto de las visualizaciones en la ventana de trabajo, con la rueda del mouse es posible acercarnos o alejarnos de nuestro esquema (la forma en que lo hace depende de la ubicacin del cursor), con el botn derecho del mouse es posible mover rgidamente todo el esquema, y con el botn izquierdo es posible rotarlo. En el extremo inferior izquierdo de la ventana de trabajo se ubicanunaseriedeopcionesdevisualizacinpredeterminada(entreellasX,YyZqueclickeandolas ubicaeldibujoenlosplanosrespectivos,enesteejemploZ).

GMSH:GeneradordeMallas

MiniTutorialv1.119/Ene/2011MarianoRe