next up previous
Superior: Hispalinux 2000

documentclass[a4paper]article usepackage[T1]fontenc usepackage[latin1]inputenc usepackage[spanish]babel usepackageepsfig usepackagehthtml par newedcommanddifusion[1]nu_hpartial_xx^2 #1 -nu_vpartial_zz^2 #1 par titleGNU/Linux y la Simulaci�n Num�rica de Ecuaciones en Derivadas Parciales. Un Modelo en Oceanografía authorJ. Rafael Rodr�guez Galv�n thanks copyright J. Rafael Rodr�guez Galv�n. Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los t�rminos de la Licencia de Documentaci�n Libre GNU, Versi�n 1.1 o cualquier otra versi�n posterior publicada por la Free Software Foundation. Se considerar� como Secciones Invariantes todo el documento, no habiendo Textos de Portada ni Textos de Contra Portada. Puede consultar una copia de la licencia en: http://www.gnu.org/copyleft/fdl.html
small Departamento de Matem�ticas. Universidad de C�diz.
texttt small [email protected] dateAgosto de 2000 par begindocument par maketitle par begincenter Esta ponencia forma parte del htlinkIII Congreso Hispalinuxhttp://congreso.hispalinux.es virtual, celebrado en Noviembre de 2000. Puedes participar en �l en la htlinksecci�n de eventos de BarraPuntohttp://barrapunto.com/eventos endcenter par beginabstract En este trabajo se presenta una panor�mica general del uso del sistema operativo GNU/Linux y de las herramientas de software libre para el desarrollo de proyectos cient�ficos basados en la simulaci�n num�rica de ecuaciones en derivadas parciales. par Tomando como referencia la experiencia del autor en la resouci�n num�rica de un modelo matem�tico en Oceanograf�a, se comentan todos los aspectos relacionados con lo anterior: programaci�n y validaci�n del c�digo num�rico, post-proceso de resultados y generaci�n de informes y comunicaciones. endabstract par sectionIntroducci�n La aproximaci�n num�rica de ecuaciones en derivadas parciales constituye una rama fundamental del An�lisis Num�rico y un campo de investigaci�n en constante actividad. Es muy grande el n�mero de fen�menos que son modelados mediante ecuaciones de este tipo, provenientes de campos tan diversos como la F�sica, la Ingenier�a, la Oceanograf�a, la Econom�a, etc. par En los casos m�s realistas, no es posible calcular de forma exacta la soluci�n de este tipo de ecuaciones, siendo necesario recurrir a t�cnicas num�ricas que, explotando aquellas propiedades que hayan sido previamente deducidas de forma te�rica, nos permitan desarrollar algoritmos mediante los cuales sea posible obtener, de forma aproximada, un conjunto finito de datos que representen los valores que toman las soluciones en un dominio discreto. par El llevar a la pr�ctica lo anterior significa realizar programas de ordenador que, a partir de unos datos conocidos, como la situaci�n inicial de las magnitudes estudiadas y la evoluci�n de las mismas en la frontera del dominio, devuelvan las soluciones, en la forma de conjuntos discretos de datos que representan los valores que toman dichas magnitudes. Adem�s de esto, suelen ser necesarias tanto una etapa previa de pre-proceso de los datos iniciales y de contorno como una etapa final de post-proceso y visualizaci�n gr�fica de los valores obtenidos como soluci�n de las ecuaciones. par Los programas asociados a la resoluci�n num�rica de ecuaciones en derivadas parciales requieren de una gran potencia de c�lculo, tanto mayor cuanto m�s realistas pretenden ser los resultados. Por este motivo, muchos de los grupos de investigaci�n universitarios que trabajaban en este campo optaron por realizar su trabajo en estaciones de trabajo comerciales de tipo UNIX, lo cual significaba importantes desembolsos econ�micos. A medida que se ha ido produciendo la madurez de los entornos GNU/Linux, �stos se han desvelado como una alternativa natural: bajo este sistema operativo, un simple ordenador personal se convierte en una estaci�n de trabajo flexible y estable, con caracter�sticas de multitarea y multiusuario y con una excelente relaci�n calidad/precio. Adem�s, para requerimientos de c�lculo m�s exigentes, se puede optar por equipos m�s potentes, como ordenadores personales con varios procesadores, otras arquitecturas em hardware (por ejemplo, sistemas em Alpha) e incluso em clusters de ordenadores. Por supuesto, se siguen utilizando equipos comerciales de tipo UNIX e incluso centros de c�lculo dotados de grandes ordenadores para trabajos con requerimientos de c�lculo realmente exigentes. par beginfigure begincenter epsfigfile=esquema.eps, width=.8textwidth endcenter captionPasos en simulaci�n num�rica, se�alando en cada caso las aplicaciones empleadas en nuestro modelo en oceanograf�a (en rojo) y posibles alternativas labelfig:esquema endfigure par Es necesario, adem�s, tener en cuenta el siguiente hecho: una distribuci�n de GNU/Linux, como puede ser Debian, Red Hat, etc. es mucho m�s que un sistema operativo muy avanzado: constituye una completa caja de herramientas mediante las cuales es posible afrontar todos los pasos relacionados con la simulaci�n num�rica, partiendo del dise�o y programaci�n del c�digo, pasando por la realizaci�n de experimentos que lo validaen y terminando por la generaci�n de documentos para la exposici�n de resultados. Adem�s, muchas de las herramientas, em software libre como el compilador de C++ em egcs o el lenguaje para la composici�n de documentos LaTeX, se encuentran entre las m�s avanzadas en su g�nero. par En las siguientes secciones, se tratar� de ilustrar todo lo anterior, tomando como base un modelo de Oceanograf�a en el que se encuentra actualmente trabajando el autor, en colaboraci�n con el profesor F. Guill�n, del departamento de Ecuaciones Diferenciales y An�lisis Num�rico de la Universidad de Sevilla. par sectionUn Modelo Matem�tico en Oceanograf�a par Las ecuaciones primitivas citeltw modelan el comportamiento de algunos fluidos ge�o�fí�si�cos (atm�sfera, oc�anos, etc.), en donde se tienen dominios cuya profundidad es peque�a en relaci�n con las dimensiones horizontales. par Formalmente, se obtienen de las ecuaciones de Navier-Stokes imponiendo algunas simplificaciones: presi�n hidrost�tica (dependiente de forma lineal de la profundidad) y ``techo r�gido'' (la superficie del fluido no presenta movimientos verticales). Por simplicidad, suponemos densidad cons�tan�te y que los efectos debidos a la temperatura y salinidad se pueden desacoplar del flujo din�mico. par Aunque el esquema que presentamos es generalizable al caso 3-dimensional, nos centraremos aqu� en la simulaci�n num�rica de las ecuaciones primitivas 2-dimensionales: par

\begin{displaymath}
mbox{em (EP-2D)}left\{
begin{array}{rcl}
partial_t u + upa...
...t _{t=0}
=
u_{1,0}
&mbox{ en }& Omega ,
end{array}
right.
\end{displaymath}

par donde $Omega=\{(x,z) \ / \ xinomega,\ -D(x)<z<0\}$ es el dominio 2D ocupado por el fluido (figura reffig:dominio), siendo omegasubsetR un intervalo abierto y D: overlineomegalongrightarrowR la funci�n profundidad. Los siguientes par�metros se suponen conocidos, y en funci�n de sus valores obtendremos diferentes comportamientos de las soluciones: nuh y nuv son los coeficientes de viscosidad horizontal y vertical, f son fuerzas externas (dependientes por ejemplo, de la salinidad y temperatura) y en gs se encierran los efectos de fricci�n del viento sobre la superficie. Las inc�gnitas del problema son las funciones u, v: Omega�(0,T) longrightarrow R (velocidad horizontal y vertical del flujo, respectivamente) y ps :omega�(0,T) longrightarrow R (presi�n superficial). par beginfigure begincenter epsfigfile=dominio.eps, width=.7textwidth endcenter captionEl dominio, Omega labelfig:dominio endfigure par Las ecuaciones anteriores presentan serias dificultades desde el punto de vista num�rico: no linealidad, evoluci�n con el tiempo, acoplamiento de las inc�gnitas,... El m�todo que estamos empleando para su resoluci�n se basa en un esquema fraccionario de proyecci�n en tiempo citevicky junto con una discretizaci�n espacial usando productos de elementos finitos. A continuaci�n, comentaremos este m�todo de forma muy breve; para m�s detalles, ver citekisko-rafa par Para la discretizaci�n en la variable temporal, t, de las ecuaciones, fijamos un paso de tiempo, Delta t, y construimos la sucesi�n de instantes t0=0, t1=Delta t, t2=2Delta t,dots, tk=kDelta t,dots Tratamos de calcular, para cada etapa de tiempo k>0, funciones uk, vk y psk que aproximen, en el instante tk, a las velocidades u, v y a la presi�n superficial, ps, respectivamente. Para ello, y con el fin de separar las dificultades, se ha empleado un esquema fraccionario en tiempo, de proyecci�n lineal (o semi-impl�cito) en tres pasos. par El primer paso y el m�s complejo, consiste en hallar una primera predicci�n de la velocidad horizontal, como soluci�n de un sistema lineal m�s sencillo que em(EP-2D). En un segundo paso, corregimos la predicci�n realizada para hallar la aproximaci�n definitiva de la velocidad horizontal y calculamos una estimaci�n de la presi�n superficial. En el tercer y �ltimo paso, obtenemos la velocidad vertical. par beginfigure begincenter epsfigfile=mallado.eps, width=.7textwidth endcenter captionDiscretizaci�n del dominio labelfig:malla endfigure Para la discretizaci�n en espacio, aproximamos el dominio, Omega, que ocupa el fluido de la siguiente forma (figura reffig:malla): fijamos una partici�n cal Px={a=x0<x1<dots <xN=b} de la superficie omega=[a,b]. Por otra parte, consideramos M capas de profundidad, definidas a trav�s de una partici�n cal Pz={0=z0>z1>dots >zM=-Dmax}, siendo Dmax=displaystylemax xinomegaD(x). De esta forma, cada zn representa la profundidad del nivel horizontal n (n=0,dots , M). El producto cartesiano de ambos mallados define, como se aprecia en la figura reffig:malla, una discretizaci�n del dominio. Se ha utilizado el M�todo de los Elementos Finitos definido mediante el producto de funciones base polin�micas en la variable x (definidas en el mallado de la superficie del dominio) por funciones base sobre polin�micas en z (definidas en el mallado en profundidad). Utilizando este m�todo calculamos, en cada etapa de tiempo, las soluciones aproximadas. par El esquema empleado es generalizable al caso 3-dimensional, sin m�s que sustituir las funciones polinomicas en x, definidas sobre la superficie unidimensional del fluido, por funciones en x,y, definidas sobre la superficie bidimensional. par sectionProgramaci�n en GNU/Linux del c�digo de simulaci�n num�rica par Una vez discretizadas las ecuaciones en derivadas parciales, debemos pasar a su resoluci�n efectiva. Para ello, elaboramos un programa de ordenador que, a partir de los datos iniciales (en el instante t=0) y conociendo los datos de contorno (en nuestro caso, los valores que toman las inc�gnitas en las paredes y en el fondo del recinto), genere, en cada instante de tiempo tk=kcdotDelta t, los vectores mbf uk, mbf vk y mbf psk que representen respectivamente, el campo de velocidades horizontal y vertical y la presi�n superficial en el instante tk. par En el caso 2-dimensional, hemos hallado algunas propiedades que simplificar�n algo el trabajo. Por un lado, podemos evitar el c�lculo de la presi�n superficial, variable que, en principio, no es de inter�s físico. Por otra parte, es posible calcular de forma explícita las velocidades verticales. De esta forma, en cada iteraci�n de tiempo se trata, b�sicamente, de resolver un sistema lineal de ecuaciones Ambf uk=mbf b, proveniente del m�todo de elementos finitos. El formato que se escogi� para los elementos finitos hace que la matriz A sea tridiagonal por bloques, los cuales son, a su vez, matrices tridiagonales. En el segundo miembro, mbf b, se encierran datos conocidos, como el efecto de fricci�n del viento sobre la superficie del fluido. par Para elaborar el programa, se ha elegido el em lenguaje de programaci�n C++, utilizando em egcs citeegcs, compilador libre (bajo licencia GNU-GPL) con soporte de ANSI C++, cuyas caracter�sticas lo hacen estar al nivel de los m�s potentes compiladores comerciales. Por supuesto, si lo hubi�semos considerado adecuado, tambi�n podr�amos haber utilizado compiladores comerciales bajo GNU/Linux, como em KAI C++. par A pesar de seguir siendo Fortran el lenguaje m�s extendido en el campo de la simulaci�n num�rica, nosotros decidimos optar por el uso del lenguaje de programaci�n C++ aprovechando sus caracter�sticas de orientaci�n a objetos para representar matrices, mallados de elementos finitos, etc. El uso de este lenguaje, que poco a poco parece empezar a abrirse un hueco en la programaci�n de m�todos num�ricos, nos confiere mayor flexibilidad tanto en el momento de la elaboraci�n del programa como en la reutilizaci�n del c�digo para proyectos posteriores. par Entre las ventajas de GNU/Linux se encuentra el poder contar con compiladores de pr�cticamente cualquier lenguaje. Por ejemplo, la programaci�n en Fortran es perfectamente factible, sin m�s que emplear el compilador GNU de Fortran 77. Desgraciadamente, este compilador no cuenta a�n con soporte para Fortran 90, especificaci�n que posee caracter�sticas m�s avanzadas que la anterior: tipos de datos compuestos, asignaci�n din�mica de memoria, sobrecarga de operadores, etc. Existe un proyecto para crear un compilador de Fortran 95 con licencia libre (http://g95.sourceforge.net/) que todav�a est� en estado embrionario. par En est �mbito, una posibilidad interesante puede ser el utilizar em adaptor citeadaptor. Adaptor (Automatic DAta Parallelism TranslaTOR) es un sistema de compilaci�n para HPF (High Performance Fortran) con licencia no comercial. HPF es una extensi�n de Fortran con la que se pueden escribir de forma sencilla programas paralelos, con paralelizaci�n orientada a datos. Estos programas podr�n ejecutarse en ordenadores con varios procesadores (por ejemplo, un ordenador dual ejecutando Linux en modo SMP) o bien en em clusters de varios ordenadores conectados en red (utilizando una librer�a de paso de mensajes, como PVM o MPI). Por ejemplo, en el curso de doctorado ``An�lisis Num�rico de EDP no Lineales'' que organiz� en el a�o 1999/2000 el Departamento de Ecuaciones Diferenciales y An�lisis Num�rico de la Universidad de Sevilla junto con el Departamento de Inform�tica y An�lisis Num�rico de la Universidad de C�rdoba, se utiliz� em adaptor para realizar ejercicios de programaci�n num�rica en un cluster formado por los ordenadores de un aula de inform�tica, los cuales se encontraban ejecutando PVM bajo Linux. par Volviendo a la resoluci�n pr�ctica del problema en oceanograf�a que estamos estudiando, el utilizar el m�todo de los elementos finitos significa que nos encontraremos finalmente con la necesidad de resolver sistemas de ecuaciones. Estos sistemas suelen ser de grandes dimensiones (miles de ecuaciones), especialente si tratamos de estudiar casos algo realistas, en los cuales la discretizaci�n del dominio ha de ser muy fina. Para implementarlos resolverlos en la pr�ctica, podr�amos haber usado alguna de las excelentes bibliotecas matriciales que existen para C++, como em Blitz++ citeblitz, em MTL citemtl o em SparseLib++ citesparselib, las dos �ltimas acompa�adas de bibliotecas de m�todos iterativos para la resoluci�n de sistemas de ecuaciones lineales. Todas estas bibliotecas tienen licencias no comerciales, y han sido verificadas con em egcs (entre otros compiladores de C++). No obstante, con el fin de aprovechar la estructura tridiagonal de las matrices asociadas, siempre pensando en el ahorro de memoria, pues la matriz del sistema tendr� una gran dimensi�n, optamos por desarrollar nuestra propia bibliotecafootnote Probablemente, la biblioteca em MTL tambi�n podr�a haber sido utilizada con este fin. de clases C++. En ella, definimos las matrices tridiagonales mediante un clase patr�n: begintex2html_preform template <class T> MatrizTridiag<T>; endtex2html_preform en la que, para ahorar memoria, se almacenan exclusivamente los elementos diagonales, super-diagonales y sub-diagonales de la matriz. As�, podemos implementar la matriz por bloques del sistema, A, como un objeto del tipo begintex2html_preform MatrizTridiag< MatrizTridiag<double> > A; endtex2html_preform y, sin m�s que sobrecargar el operador ( ), podemos acceder al elemento (k,l) del bloque (i,j) mediante la expresi�n: begintex2html_preform A(i,j)(k,l); endtex2html_preform par Para resolver los sistemas lineales, se utiliza un m�todo cl�sico de relajaci�n por bloques, en el que los sistemas asociados a los bloques tridiagonales se resuelven de forma expl�cita mediante un algoritmo de tipo em Thomas. Para la representaci�n de los mallados de elementos finitos, se han contruido las clases C++ adecuadas. par Como editor de texto y entorno de programaci�n, utilizamos em emacs citeemacs, junto con una herramienta gr�fica, em Code Crusader citecrusader, que facilita el acceso a los ficheros fuente de la biblioteca de clases C++, lo cual resulta muy �til a medida que el numero de clases que contiene �sta comienza a ser grande. par Por otra parte, en un programa de simulaci�n num�rica es interesante contar con una interfaz de usuario adecuada pues, una vez desarrollado, es necesario realizar numerosas pruebas que lo validen, introduciendo variaciones en los par�metros del programa o en los datos iniciales y comparando los resultados con aquellos observables en el ``mundo real''. En nuestro caso, se utiliz� el lenguaje de programaci�n em Python citepython, desarrollando un m�dulo que interact�a con el programa C++. Mediante este m�dulo, podemos acceder interactivamente a las funciones de bajo nivel, escritas en C++, para calcular las soluciones en etapas de tiempo sucesivas, acceder a las variables m�s importantes, modificar sus valores, observar los resultados, etc. par Se eligi� el lenguaje em Python para la interfaz de usuario de nuestro programa por tratarse de un lenguaje interpretado con caracter�sticas avanzadas y f�cil de enlazar con C/C++. Adem�s, em Python cuenta con m�dulos especializados para el c�lculo num�rico, para la representaci�n gr�fica de datos, etc. Por supuesto, existen otras muchas posiblidades, la m�s extendida de las cuales puede que sea el uso del programa em Matlab citematlab, lenguaje orientado al an�lisis matricial y que puede ser utilizado adem�s para la representaci�n gr�fica de resultados. En nuestro caso, lo descartamos por no considerar rentable la inversi�n en un programa comercial, existiendo otras alternativas libres que resultaban tanto o m�s v�lidas para nuestros prop�sitos. Por otro lado, una posibilidad, que no descartamos usar en un futuro pr�ximo, es usar em octave citeoctave, lenguaje GNU interpretado, orientado al an�lisis num�rico y matricial, similar a em Matlab, que puede tambi�n enlazarse con c�digo C. Por �ltimo, se utiliz� em Phyton en vez de otro lenguaje de interpertado de caracter�sticas similares como em perl simplemente por una cuesti�n de preferencias personales, pues este �ltimo podr�a haber resultado igualmente v�lido. par sectionPost-Proceso y Representaci�n Gr�fica de los Resultados par Para la visualizaci�n gr�fica de los resultados, contamos en GNU/Linux con bastantes herramientas de licencia libre. Por ejemplo, en los experimentos que presentamos aqu�, hemos empleado el programa em plotmtv citeplotmtv. Existen tambi�n otras aplicaciones, como em grace citegrace, o em gnuplot citegnuplot, que creemos nos ser�n de utilidad para ser empleadas en pr�ximas etapas. Todos estos programas tienen caracter�sticas similares, puedendo tomar sus datos de un fichero que ha sido escrito en un formato adecuado por el programa C++ o por su interfaz em Python, para representarlos gr�ficamente. Las gr�ficas resultantes pueden ser visualizadas en pantalla o bien exportadas hacia un fichero postscript, que posteriormente podremos mandar a la impresora o incluir en un documento LaTeX, por ejemplo. Los tipos de gr�ficas que pueden generar (funciones de una o dos variables, campos de velocidades, curvas de nivel, etc.) son en todos los casos muy similares, si bien existen ciertas diferencias que hacen que, a la hora de utilizarlos en un caso concreto, sea conveniente decantarse por uno de ellos. As�, los campos de velocidades que aparecen en las figuras refejemplo1, refejemplo2 y refejemplo3, han sido generados por em plotmtv, con el que resulta sencillo hacer este tipo de gr�ficas de vectores. Sin embargo, este programa no cuenta con algunas caracter�sticas interesantes, como la posibilidad de generar animaciones, para lo cual podremos recurrir, por ejemplo, a em gnuplot. par Existen muchas m�s posibilidades para la representaci�n de datos, como el empleo de bibliotecas de funciones gr�ficas, como em plplot citeplplot, o el uso de paquetes como em octave (que emplea, a su vez, em gnuplot o, en las �ltimas versiones, la biblioteca em plplot). Asimismo, podemos contar con em R citeR, lenguaje de tratamiento estad�stico y representaci�n de datos, o emplear lenguajes interpretados como em Python o em perl citeperl, que cuentan con m�dulos adaptados a la manipulaci�n num�rica de datos y a su representaci�n gr�fica. Por supuesto, siempre es posible usar aplicaciones comerciales, la m�s usada de las cuales puede que sea em Matlab. Algunas de ellas, como em gid citegid (desarrollada por profesores de la Universidad Polit�cnica de Catalu�a), integra heramientas de pre-proceso y de post-proceso de datos a trav�s de una interfaz gr�fica (disponible tanto para sitemas UNIX como para Windows). Siguiendo con el programa de aproximaci�n num�rica de las Ecuaciones Primitivas del oc�ano que estamos empleando como referencia, presentaremos aqu� algunos de los experimentos num�ricos que hemos realizado para validar el esquema, obteniendo resultados satisfactorios. En concreto, se muestran los resultados de la aproximaci�n del problema lineal estacionario, en el cual realizamos iteraciones en tiempo, analizando si existe alg�n estado final hacia el cual converjan las soluciones (velocidades y presi�n) a medida que el tiempo avanza. par beginfigure centering epsfigfile=planoEstacio.eps, width=.75textwidth captionsmall Soluci�n estacionaria, ejemplo 1 labelejemplo1 endfigure par beginfigure centering epsfigfile=valleEstacio.eps, width=.75textwidth captionsmall Soluci�n estacionaria, ejemplo 1 labelejemplo2 endfigure par Mostraremos aqu� los resultados obtenidos en tres dominios distintos. Todos ellos tienen 30.000 metros de longitud superficial por 150 de profundidad m�xima. El viento es constante hacia la derecha con velocidad m�xima de 7.5 m/s y se utiliza un paso de tiempo Delta t=60 segundos. par En el primer ejemplo (figura refejemplo1) se alcanza la soluci�n exacta (con tolerancia varepsilon=10-6) despu�s de 1579 iteraciones de tiempo (algo m�s de 26 horas). La velocidad horizontal m�xima del fluido, alcanzada en el punto medio de la superficie, es de 0.695894 m/s. En el segundo (figura refejemplo2), se llega a la soluci�n estacionaria tras 2589 iteraciones de tiempo (algo m�s de 43 horas) con velocidad horizontal m�xima de 0.787584 m/s. En el tercero (figura refejemplo3), han de transcurrir 3032 iteraciones (50 horas y media) y se obtiene una velocidad horizontal m�xima de 0.352651 m/s. par beginfigure centering epsfigfile=monteEstacio.eps, width=.75textwidth captionsmall Soluci�n estacionaria, ejemplo 3 labelejemplo3 endfigure par sectionGeneraci�n de Documentos y Presentaciones Si, despu�s de muchos d�as de esfuerzos delante del ordenador, los resultados obtenidos de la simulaci�n num�rica son satisfactorios, ser� gratificante el presentarlos p�blicamente, ya sea con fines educativos, en congresos de investigaci�n, etc. De nuevo, podemos contar con el sistema operativo GNU/Linux y con numerosas herramientas que nos ayudar�n a realizar la presentaci�n de resultados. Obviamente, lo que sigue es de inter�s en un �mbito mucho m�s amplio que el de la simulaci�n num�rica, resultando v�lido para la generaci�n de todo tipo de documentos cient�ficos. par La clave ser� el uso de LaTeX, lenguaje para la generaci�n de documentos de alta calidad y muy adecuado para trabajos matem�ticos y cient�ficos. Si bien es necesario superar la dificultad inicial del aprendizaje del lenguaje, sus caracter�sticas (calidad de los documentos, composici�n l�gica, adaptaci�n a estructuras matem�ticas complejas, independencia de la plataforma, dots) hacen de �l un potente instrumento. En GNU/Linux podemos contar con LaTeX, concretamente la distribuci�n em teTeX, desarrollada para sistemas UNIX. Adem�s disponemos de numerosas utilidades asociadas. Por ejemplo, contaremos con un modo para emacs, em auctex, que nos facilitar� el uso de este editor de textos para la creaci�n de documentos LaTeX. Una herramienta, em xfig citexfig, para dibujar objetos gr�ficos de forma interactiva y exportar los resultados, usualmente a formato postscript, con el fin de ser incorporados por LaTeX (por ejemplo, las figuras reffig:dominio y reffig:malla han sido generadas mediante em xfig). Un entorno visual, em LyX citelyx, que podremos utilizar como un procesador de texto ``conveccional'', pero que utiliza LaTeX para la generaci�n final de documentos. Conversores a lenguaje HTML, herramientas para convertir el documento a formatos postscript o pdf y para post-procesar los resultados, etc par En principio, si pretendemos usar LaTeX para realizar un documento impreso, como una ponencia para un congreso, deberemos escoger para nuestro documento un estilo est�ndar, como em article. Sin embargo, si necesitamos realizar transparencias para presentar los resultados, podremos elegir entre los estilos ``no est�ndar'' em foiltex y em seminar, ambos presentes en teTeX (la licencia del primero no es completamente libre). Si pretendemos elaborar un p�ster (en formato A3, A2, A1 o A0), podemos emplear el estilo em a0poster. Este paquete no se encuentra en la distribuci�n teTeX, pero es accesible desde internet, por ejemplo en hturlhttp://www.ucc.ie/cgi-bin/ctan. par Por otra parte, si queremos publicar un art�culo en internet, podemos contar con el programa em latex2html citelatex2html, que convierte documentos LaTeX en formato HTML, traduciendo f�rmulas y ecuaciones en gr�ficos de poco tama�o que pueden ser mostrados con facilidad por los navegadores de internet. Por �ltimo, si nuestra intenci�n es generar una presentaci�n usando el ordenador junto con un ca��n proyector de vídeo, podremos usar el programa em pdflatex para generar, a partir del fichero LaTeX, un documento em pdf, que podremos mostrar a pantalla completa (bajo Linux o bajo cualquier otra plataforma) usando, por ejemplo, em acrobat reader, em gv, em xpdf (el primero de ellos no con licencia totalmente libre). Se est�n desarrollando programas, como em ppower4 citeppower4, para postprocesar los ficheros em pdf de tal modo que se puedan incluir efectos (cortinillas, etc) a nuestro antojo en la forma de �rdenes LaTeX especiales. par Con alguna frecuencia, puede ser necesario elaborar versiones del trabajo realizado en varios de los formatos que se han comentado. Por ejemplo, podemos necesitar enviar un art�culo para ser publicado en las actas de a unas jornadas cientificas, a la vez que realizar una presentaci�n del mismo, en forma de transparencias o mediante proyector de v�deo. Posteriormente, quiz�s nos resulte atractivo el convertirlo en formato HTML para depositarlo en en nuestra p�gina web. El realizar por separado cada una de estas tareas conllevar�a bastante esfuerzo; sin embargo, el trabajo se reduce considerablemente si creamos un art�culo principal en LaTeX, quiz�s listo para ser publicado, a partir del cual, introduciendo posiblemente algunas modificaciones para adecuarlo al nuevo formato, crear una presentaci�n o (usando em latex2html) o generar un documento en formato HTML. par Por �ltimo, se�alar que el lenguaje de composici�n de documentos LaTeX es, de hecho, un est�ndar para el intercambio de documentos matem�ticos o cient�ficos complejos, no existiendo, pr�cticamente, alternativas a su uso. Por ejemplo, el emplear editores de texto ``conveccionales'' como em Microsoft Word o em Sun StarOffice, para la generaci�n de este tipo de documentos no solamente resulta tedioso, sino que los resultados obtenidos no alcanzan la calidad de los documentos escritos con LaTeX. Algo similar ocurre con las transparencias o, quiz�s, con las presentaciones mediante ca��n proyector de v�deo: la utilizaci�n programas como em Microsoft PowerPoint, bajo sistemas operativos de tipo em Windows, es desaconsejable frente a la potencia de LaTeX para la generaci�n de documentos matem�ticos. par sectionConclusiones Tomando como hilo conductor la experiencia del autor en la implementaci�n de un modelo num�rico en oceanograf�a, se han abordado diferentes cuestiones relacionadas con el uso del sistema sistema operativo GNU/Linux como entorno para la simulaci�n num�rica: programaci�n del c�digo, post-proceso y representaci�n gr�fica de resultados y, por �ltimo, generaci�n de documentos y presentaciones. Para cada uno de estos pasos, se han subrayado tanto las distintas aplicaciones que hemos empleado en nuestro trabajo, como las diferentes alternativas, en muchas ocasiones igualmente v�lidas, con las que podemos contar, siempre haciendo �nfasis en aquellas que cuentan con licencia libre. par El sistema GNU/Linux constituye una plataforma estable y potente que cuenta con herramientas muy adecuadas para la realizaci�n de proyectos relacionados con la simulaci�n num�rica de ecuaciones en derivadas parciales. par sectionAgradecimientos A Virgilio G�mez Rubio que, por convencerme de que pod�a ser interesante contar mi experiencia en la utilizaci�n de GNU/Linux para la simulaci�n num�rica, es el resposable �ltimo de este trabajo. Y a todos aquellos que, de forma desinteresada, se encuentran implicados en el desarrollo de Linux y de em software libre. par Este trabajo ha sido parcialmente financiado por el proyecto PB98-0583 del Ministerio de Eduaci�n y Cultura. par beginthebibliography99 footnotesize par bibitemadaptor em adaptor, hturlftp://ftp.gmd.de/gmd/adaptor par bibitemblitz em Blitz++, hturlhttp://www.nobjects.com par bibitemcrusader em Code Crusader, hturlhttp://www.cco.caltech.edu/ jafl/jcc par bibitememacs em emacs, hturlhttp://www.gnu.org/software/emacs par bibitemegcs em egcs (GNU C++), hturlhttp://gcc.gnu.org par bibitemgid em gid, hturlhttp://gid.cimne.upc.es par bibitemgnuplot em gnuplot, hturlhttp://www.cs.dartmouth.edu/gnuplot_info.html par bibitemgrace em grace, hturlhttp://plasma-gate.weizmann.ac.il/Grace par bibitemvicky sc F. Guill�n Gonz�lez, M.V. Redondo Neble sl Convergencia de algunos esquemas num�ricos hacia el modelo evolutivo de Ecuaciones Primitivas. Actas XVI CEDYA, VI CMA, University of Las Palmas de Gran Canaria, 1999, 1165-1172. par bibitemkisko-rafa sc F. Guill�n Gonz�lez, R. Rodríguez Galv�n sl Aproximaci�n Num�rica Mediante un Esquema de Proyecci�n de las Ecuaciones Primitivas 2D Actas II Jornadas de An�lisis de Variables y Simulaci�n Num�rica del Intercambio de Masas de Agua a trav�s del Estrecho de Gibraltar, University of C�diz, 2000. par bibitemkai em KAI C++, hturlhttp://www.kai.com/C_plus_plus/ par bibitemlatex2html em LaTeX2html, hturlhttp://www-texdev.mpce.mq.edu.au/l2h/docs/manual par bibitemltw sc J.L. Lions, R. Teman, S. Wang. it New formulations of the primitives equations of the atmosphere and applications. Nonlinearity, 5 (1992), 237-288. par bibitemlyx em LyX, hturlhttp://www.lyx.org par bibitemmtl em MTL, hturlhttp://www.lsc.nd.edu/research/mtl/ par bibitemmatlab em Matlab, hturlhttp://www.mathworks.com/products/matlab/index.shtml par bibitemoctave em octave, hturlhttp://www.che.wisc.edu/octave par bibitemperl em perl, hturlhttp://www.perl.com par bibitemplotmtv em plotmtv, hturlftp://ftp.x.org/contrib/applications par bibitemplplot em plplot, hturlhttp://www.plplot.org) par bibitemppower4 em ppower4, hturlftp://ftp.dante.de/tex-archive/help/Catalogue/entries/ppower4.html par bibitempython em Python, hturlhttp://www.python.org par bibitemR em R, hturlhttp://www.r-project.org par bibitemsparselib em SparseLib++, hturlhttp://math.nist.gov/sparselib++/ par bibitemxfig em xfig, hturlhttp://www.xfig.org/ par endthebibliography enddocument
next up previous
Superior: Hispalinux 2000

Download this document: [src.tar.gz][ps.gz][html.tar.gz][dvi.gz]

Congreso HispaLinux 2000