Superior: Hispalinux 2000 |
( )
, 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