You are currently browsing the monthly archive for diciembre 2013.

Dado un embedding tanto de la esfera como del toro, lo aprovechamos para ver como quedan las funciones trigonométricas sobre estas variedades:

Anuncios

En el siguiente vector, calculado mediante una función escrita en Mathematica, tenemos:

(\mathcal{D}_r T^r, \mathcal{D}_r T^\theta, \mathcal{D}_r T^\varphi, \mathcal{D}_\theta T^r, \mathcal{D}_\theta T^\theta, \mathcal{D}_\theta T^\varphi, \mathcal{D}_\varphi T^r, \mathcal{D}_\varphi T^\theta, \mathcal{D}_\varphi T^\varphi)^T=

derCovEsf

A partir de una interesante conversación en el trabajo con el Dr. Petar Mimica, me he visto en la necesidad de repasar algunos conceptos interesantes de las asignaturas que cursé en el área de informática teórica.

El primero de ellos és el de la lógica modal. Las lógicas tradicionales son la proposicional, o de orden cero (CP0), y la lógica de predicados, o de primer orden (CP1). En toda lógica, como en todo lenguaje formal, distinguimos tres aspectos básicos: su léxico, es decir, que “palabras” podemos utilizar en el lenguaje, su sintaxis, es decir, cuales son las reglas para construir “oraciones” con nuestro léxico, y finalmente su semántica, o sea, el significado del que dotamos a estas palabras y oraciones. La lógica proposicional tiene menos poder expresivo que la lógica preposicional pero, en contraposición, es completa.

En la lógica modal, lo que pretendemos es ampliar la capacidad expresiva del CP0 introduciedo dos nuevos símbolos que nos permitiran expresar de que modo se verificaran las fórmulas de esta lógica: necesariamente (\square) o posiblemente (\lozenge), uno primitivo y otro definible a partir de éste, junto con el conjunto de reglas que nos permite operar con ellos.

En esta lógica, el teorema de Löb se escribe, sencillamente:

\square (\square P \rightarrow P) \rightarrow \square P,

y da lugar a paradojas, pues es un enunciado que, a partir de un lenguaje (lo suficientemente expresivo) intenta demostrar cuestiones sobre el propio lenguaje.

La idea es la misma, en otro nivel, a la del teorema de incompletitud de Gödel: para hacer afirmaciones sobre las propiedades de un lenguaje (en términos de consistencia, completitud, etc.) no es suficiente con el propio lenguaje: necesitamos un metalenguaje. Se ha hablar mucho al respecto, pero desde mi humilde punto de vista, lo único que nos está diciendo es que, si nos imaginamos en algún lugar toda la matemática (el Libro al que hacia referencia Erdös :-), nunca podremos tener un sistema de axiomas y reglas que nos permite generarlo de manera completa, pero si parcial. Además, cambiando este sistema, posiblemente podamos generar nuevas demostraciones  imposibles en el anterior (a cambio de perder otras si generables en el primero) y sin inconsistencias entre las generables en ambos.

Haciendo un simil con las variedades diferenciables (y salvando la enorme cantidad de defectos obvios que tiene esta comparación), nunca tendremos una carta para cubrir toda la variedad, necesitaremos varias, pero serán compatibles entre ellas en los solapes.

Una conexión afín (o derivación covariante) permite

La derivada covariante del campo vectorial queda:

donde el primer sumando corresponde a la derivada parcial del campo respecto de la base y la segunda a la variación de la propia base curvilínea respecto de las lineas coordenadas.

Aunque la formula anterior corresponde a la derivada covariante de un campo vectorial contravariante, es fácilmente extensible a cualquier tensor (p,q). La derivada covariante de un tensor de este tipo queda:

\mathcal{D}_{\hat{k}} T^{\hat{i}_1 \cdots \hat{i}_p}_{\hat{j}_1 \cdots \hat{j}_q} = e_{\hat{k}}^l \partial_{\hat{k}} T^{\hat{i}_1 \cdots \hat{i}_p}_{\hat{j}_1 \cdots \hat{j}_q} + \Sigma_{i=1}^p \Gamma_{}^{} T_{}^{\hat{j}_1 \cdots \hat{j}_q} - \Sigma_{i=1}^q \Gamma_{}^{} T_{\hat{i}_1 \cdots \hat{i}_p}^{}.

Repasando las ultimas entradas en las que realizaba cambios de variables, me he dado cuenta que, en algunos casos, aunque desde el punto de vista de los cambios de coordenadas dados, los Laplacianos son correctos, en realidad los referentes a compactificaciones no corresponden a éstas sino a sus inversas… 😦

A ver si me explico. Desde el punto de vista de las variedades, podemos pensar un cambio de variable como una carta. Por ejemplo, si queremos trabajar en esféricas, pensamos que la variedad es \mathbb{R}^n en coordenadas esféricas y necesitamos una carta que nos la lleve a \mathbb{R}^n en cartesianas. Y aquí esta el asunto, que necesito cartas y no parametrizaciones. En superficies se suele trabajar con parametrizaciones, pero en variedades es mas fácil trabajar con sus inversas: las cartas.

Cuando pensamos en el cambio a esféricas, por ejemplo, necesitamos una carta, es decir, una función \phi(r,\theta,\varphi) que nos devuelva las correspondientes coordenadas cartesianas:

(r,\theta,\varphi) \longrightarrow (x,y,z)

x = r \sin \theta \cos \varphi

y = r \sin \theta \sin \varphi

z = r \cos \theta.

¿Qué pasa cuando queremos compactificar r? Necesitamos una función que, a partir de los valores de r \in \mathbb{R}^+ nos devuelva valores en [0,1]. Como ya escribimos, una posible función es:

\bar{r} = \frac{r}{r+a}

pero, volviendo a las cartas y a las parametrizaciones, lo que necesitamos, en realidad, es expresar r en función de \bar{r} y no lo contrario, como tenemos ahora, de manera que necesitamos calcular su inversa:

r = -\frac{\bar{r}a}{\bar{r}-1}

cartaR

de igual forma, para las demás compactificaciones tenemos:

\bar{x} = \tanh \frac{x}{a},

\bar{x} = \frac{2}{\pi} \arctan \frac{x}{a},

pero, al igual que antes, lo que nos interesan son sus inversas:

x = a\, \mbox{arctanh} \bar{x},

x = a \tan \frac{\pi \bar{x}}{2}:

invCom

 Utilizando las funciones que tenemos escritas en Mathematica, obtenemos para esféricas los siguientes Laplacianos con sus discretizaciones:

sphCom

y, para cartesianas:

carCom

Supongamos que tenemos el Laplaciano expresado en un sistema de coordenadas curvilineas cualesquiera:

\bigg [ c_1 \frac{\partial^2}{\partial x_1^2} + c_2 \frac{\partial}{\partial x_1} +c_3 \frac{\partial^2}{\partial x_2^2} + c_4 \frac{\partial}{\partial x_2} + c_5 \frac{\partial^2}{\partial x_3^2} + c_6 \frac{\partial}{\partial x_3} \bigg ] u(x_1,x_2,x_3).

La expresión correspondiente en diferencias finitas, utilizando las aproximaciones para las primeras y segundas derivadas de este post, nos queda:

c_{1_{i,j,k}}\frac{1}{h_{x_1}^2} (u_{i-1,j,k} - 2 u_{i,j,k} + u_{i+1,j,k}) + c_{2_{i,j,k}} \frac{1}{2h_{x_1}}(u_{i+1,j,k}-u_{i-1,j,k}) +

+ c_{3_{i,j,k}}\frac{1}{h_{x_2}^2} (u_{i,j-1,k} - 2 u_{i,j,k} + u_{i,j+1,k}) + c_{4_{i,j,k}} \frac{1}{2h_{x_2}}(u_{i,j+1,k}-u_{i,j-1,k}) +

+ c_{5_{i,j,k}}\frac{1}{h_{x_3}^2} (u_{i,j,k-1} - 2 u_{i,j,k} + u_{i,j,k+1}) + c_{6_{i,j,k}} \frac{1}{2h_{x_3}}(u_{i,j,k+1}-u_{i,j,k-1}),

que, agrupando por términos, podemos reescribir como:

(c_{1_{i,j,k}} \frac{1}{h_{x_{1}}^2} - c_{2_{i,j,k}} \frac{1}{2h_{x_{1}}}) u_{i-1,j,k} + (c_{1_{i,j,k}} \frac{1}{h_{x_{1}}^2} + c_{2_{i,j,k}} \frac{1}{2h_{x_{1}}}) u_{i+1,j,k} +

+ (c_{3_{i,j,k}} \frac{1}{h_{x_{2}}^2} - c_{4_{i,j,k}} \frac{1}{2h_{x_{2}}}) u_{i,j-1,k} + (c_{3_{i,j,k}} \frac{1}{h_{x_{2}}^2} + c_{4_{i,j,k}} \frac{1}{2h_{x_{2}}}) u_{i,j+1,k} +

+ (c_{5_{i,j,k}} \frac{1}{h_{x_{3}}^2} - c_{6_{i,j,k}} \frac{1}{2h_{x_{3}}}) u_{i,j,k-1} + (c_{5_{i,j,k}} \frac{1}{h_{x_{3}}^2} + c_{6_{i,j,k}} \frac{1}{2h_{x_{3}}}) u_{i,j,k+1} -

-2 (c_{1_{i,j,k}} \frac{1}{h_{x_{1}}^2} + c_{3_{i,j,k}} \frac{1}{h_{x_{2}}^2} + c_{5_{i,j,k}} \frac{1}{h_{x_{3}}^2}) u_{i,j,k}.

He escrito un modulo en Mathematica que, a partir de los coeficientes del Laplaciano y de las distancias para la discretización nos generan automáticamente estos coeficientes:

finDif

Los anteriores ejemplos corresponden al caso de cilíndricas, esféricas y esféricas compactificadas.

He escrito una función en Mathematica a la que le pasamos el cambio de coordenadas que queremos hacer, junto con el nombre de las variables, y nos devuelve una lista de los coeficientes que acompañan a cada una de las derivadas del Laplaciano, es decir, los seis elementos de la lista

\{ c_1, c_2, c_3, c_4, c_5, c_6 \},

que nos permiten escribir el correspondiente Laplaciano:

c_1 \frac{\partial^2}{\partial x_1^2} + c_2 \frac{\partial}{\partial x_1} + c_3 \frac{\partial^2}{\partial x_2^2} + c_4 \frac{\partial}{\partial x_2} + c_5 \frac{\partial^2}{\partial x_3^2} + c_6 \frac{\partial}{\partial x_3}.

Por ejemplo, para los cambios a cilíndricas y esféricas ya realizados en este post, nos queda:

CylShpLap

A continuación la he llamado con tres cambio diferentes, todos compactificando la r de las coordenadas esféricas, y los coeficientes obtenidos son:

compac_a1

Para el caso concreto de a=1, las gráficas de los cambios son:

compac_b

y las expresiones:

 compac_a2

Vamos a compactificar el operador Laplaciano en coordenadas esféricas y en coordenadas cartesianas:

(\bar{r}, \theta, \varphi) \longrightarrow (r,\theta,\varphi) \longrightarrow (x,y,z)

\phi(\bar{r},\theta,\varphi) = (\frac{\bar{r}}{\bar{r}+a} \sin \theta \cos \varphi, \frac{\bar{r}}{\bar{r}+a} \sin \theta \sin \varphi, \frac{\bar{r}}{\bar{r}+a} cos \theta)

de manera que, con la formula ya vista en este post, nos queda:

(\bar{r}+a)^2 \bigg [ \frac{(\bar{r}+a)^2}{a^2} \frac{\partial^2}{\partial \bar{r}^2} + \frac{2}{\bar{r}} \frac{(\bar{r}+a)^2}{a^2} \frac{\partial}{\partial \bar{r}} + \frac{1}{\bar{r}^2} \frac{\partial^2}{\partial \theta^2} + \frac{\cot \theta}{\bar{r}^2} \frac{\partial}{\partial \theta} + \frac{\csc^2 \theta}{\bar{r}^2} \frac{\partial^2}{\partial \varphi^2} \bigg ] u =

= f(x(\bar{r},\theta,\varphi),y(\bar{r},\theta,\varphi),z(\bar{r},\theta,\varphi)).

De la misma manera:

(\bar{x}, \bar{y}, \bar{z}) \longrightarrow (x,y,z)

\phi(\bar{x},\bar{y},\bar{z}) = (\tanh \frac{\bar{x}}{a}, \tanh \frac{\bar{y}}{b}, \tanh \frac{\bar{z}}{c})

de manera que:

\bigg [ a^2 \cosh^4 \frac{\bar{x}}{a} \frac{\partial^2}{\partial \bar{x}^2} + 2 a \cosh^3 \frac{\bar{x}}{a} \sinh \frac{\bar{x}}{a} \frac{\partial}{\partial \bar{x}} +

+ b^2 \cosh^4 \frac{\bar{y}}{a} \frac{\partial^2}{\partial \bar{y}^2} + 2 b \cosh^3 \frac{\bar{y}}{b} \sinh \frac{\bar{y}}{b} \frac{\partial}{\partial \bar{y}} +

+ c^2 \cosh^4 \frac{\bar{z}}{c} \frac{\partial^2}{\partial \bar{z}^2} + 2 c \cosh^3 \frac{\bar{z}}{c} \sinh \frac{\bar{z}}{c} \frac{\partial}{\partial \bar{z}} \bigg ] u(\bar{x},\bar{y},\bar{z}) = f(x(\bar{x}),y(\bar{y}),z(\bar{z}).

O, con el otro cambio:

(\bar{x}, \bar{y}, \bar{z}) \longrightarrow (x,y,z)

\phi(\bar{x},\bar{y},\bar{z}) = \frac{2}{\pi}(\arctan \frac{\bar{x}}{a}, \arctan \frac{\bar{y}}{b}, \arctan \frac{\bar{z}}{c})

de manera que:

\frac{\pi^2}{2} \bigg [\frac{(\bar{x}^2+a^2)^2}{2a^2} \frac{\partial^2}{\partial \bar{x}^2} + \frac{\bar{x}(\bar{x}^2+a^2)}{a^2} \frac{\partial}{\partial \bar{x}} +

+ \frac{(\bar{y}^2+b^2)^2}{2b^2} \frac{\partial^2}{\partial \bar{y}^2} + \frac{\bar{y}(\bar{y}^2+b^2)}{b^2} \frac{\partial}{\partial \bar{y}} +

+ \frac{(\bar{z}^2+c^2)^2}{2c^2} \frac{\partial^2}{\partial \bar{z}} + \frac{\bar{z}(\bar{z}^2+c^2)}{c^2} \frac{\partial}{\partial \bar{z}} \bigg ] u(\bar{x},\bar{y},\bar{z}) = f(x(\bar{x}),y(\bar{y}),z(\bar{z})

Gracias a la mágia de los infinitos (tenemos tantos puntos en (a,\infty) como en (a,b), por ejemplo) podemos compactificar variedades. A continuación aparecen algunas gráficas

compactificar

de posibles cambios de variables para la compactificación de [0,\infty) en [0,1]:

\bar{r} = \frac{r}{r+a}

o (-\infty,\infty) en [-1,1]:

\bar{x} = \frac{2}{\pi} \arctan \frac{x}{a},

\bar{x} = \tanh \frac{x}{a}.

El operador Laplaciano en coordenadas cartesianas es:

\Delta u = \frac{\partial^2}{\partial x^2} u + \frac{\partial^2}{\partial y^2} u + \frac{\partial^2}{\partial z^2} u = \frac{\partial^2}{(\partial x^i)^2} u.

¿Qué pasa cuando queremos expresarlo en otro sistema de coordenadas curvilineas tal que

x=x(q^1,q^2,q^3) = x(q^i), y=y(q^i), z = z(q^i)

cualesquiera? Pues despues de un poco de trabajo, se puede llegar a la expresión:

\boxed{\frac{1}{h_1 h_2 h_3} \frac{\partial}{\partial q^i} (\frac{h_1 h_2 h_3}{h_i^2} \frac{\partial}{\partial q^i} u)},

donde, si definimos el cambio de coordenadas

\boxed{\phi(q^i) := (x(q^i),y(q^i),z(q^i))},

tenemos que

\boxed{h_i = |\frac{\partial}{\partial q^i} \phi|}.

Para ver como funciona la formula, vamos a calcular el Laplaciano en coordenadas cilíndricas y en esféricas.

En el primer caso, tenemos que

\phi(r,\theta,z) = (r \cos \theta, r \sin \theta, z) con

r \in \mathbb{R}^+, \theta \in [0,2 \pi], z \in \mathbb{R},

por lo que tenemos

h_r = | \frac{\partial}{\partial r} \phi| = \sqrt{(\cos \theta, \sin \theta, 0) \cdot (\cos \theta, \sin \theta, 0)} = 1,

h_\theta = |\frac{\partial}{\partial \theta} \phi| = \sqrt{(-r \sin \theta, r \cos \theta, 0) \cdot (-r \sin \theta, r \cos \theta, 0)} = r,

h_z = |\frac{\partial}{\partial z} \phi| = \sqrt{(0,0,1) \cdot (0,0,1)} = 1.

y entonces, al aplicar nuestra fórmula, obtenemos:

\frac{1}{r} \bigg [ \frac{\partial}{\partial r} ( r \frac{\partial}{\partial r} u ) + \frac{\partial}{\partial \theta} ( \frac{1}{r} \frac{\partial}{\partial \theta} u ) + \frac{\partial}{\partial z} ( r \frac{\partial}{\partial z} u ) \bigg ] =

= \frac{1}{r} (1 \frac{\partial}{\partial r} + r \frac{\partial^2}{\partial r^2}) u + \frac{1}{r^2} \frac{\partial^2}{\partial \theta^2} u + \frac{\partial^2}{\partial z^2} u =

= \boxed{\frac{\partial^2}{\partial r^2} u + \frac{1}{r} \frac{\partial}{\partial r} u + \frac{1}{r^2} \frac{\partial^2}{\partial \theta^2} u + \frac{\partial^2}{\partial z^2} u}.

Ahora, en el caso de esféricas, tenemos:

\phi(r,\theta,\varphi) = (r \sin \theta \cos \varphi, r \sin \theta \sin \varphi, r \cos \theta) con

r \in \mathbb{R}^+, \theta \in [0,\pi] y \varphi \in [0,2\pi],

de manera que (el cuadrado hace referencia al producto escalar):

h_r = |\frac{\partial}{\partial r} \phi| = \sqrt{(\sin \theta \cos \varphi, \sin \theta \sin \varphi, \cos \theta)^2} =

= \sqrt{\sin^2 \theta \cos^2 \varphi + \sin^2 \theta \sin^2 \varphi + \cos^2 \theta} = 1

h_\theta = |\frac{\partial}{\partial \theta} \phi| = \sqrt{(r \cos \theta \cos \varphi, r \cos \theta \sin \varphi, - r \sin \theta)^2} =

= \sqrt{r^2 \cos^2 \theta \cos^2 \varphi + r^2 \cos^2 \theta \sin^2 \varphi + r^2 \sin^2 \theta} = r

h_\varphi = |\frac{\partial}{\partial \varphi} \phi| = \sqrt{(-r \sin \theta \sin \varphi,r \sin \theta \cos \varphi,0)^2} =

= \sqrt{r^2 \sin^2 \theta \sin^2 \varphi + r^2 \sin^2 \theta \cos^2 \varphi + 0} = r \sin \theta,

por lo que, con la fórmula, tenemos:

\frac{1}{r^2 \sin \theta} \bigg [ \frac{\partial}{\partial r} (r^2 \sin \theta \frac{\partial}{\partial r}u) + \frac{\partial}{\partial \theta} (\sin \theta \frac{\partial}{\partial \theta}u) + \frac{\partial}{\partial \varphi} (\frac{1}{\sin \theta} \frac{\partial}{\partial \varphi}u) \bigg ] =

= \frac{1}{r^2} \frac{\partial}{\partial r} (r^2 \frac{\partial}{\partial r}u) + \frac{1}{r^2 \sin \theta} \frac{\partial}{\partial \theta} (\sin \theta \frac{\partial}{\partial \theta}u) + \frac{1}{r^2 \sin^2 \theta} \frac{\partial^2}{\partial \varphi^2} u =

= \frac{1}{r^2}(2r \frac{\partial}{\partial r} + r^2 \frac{\partial^2}{\partial r^2})u + \frac{1}{r^2 \sin \theta}(\cos \theta \frac{\partial}{\partial \theta} + \sin \theta \frac{\partial^2}{\partial \theta^2})u + \frac{1}{r^2 \sin^2 \theta} \frac{\partial^2}{\partial \varphi^2}u =

=\boxed{ \frac{\partial^2}{\partial r^2}u + \frac{2}{r} \frac{\partial}{\partial r}u + \frac{1}{r^2} \frac{\partial^2}{\partial \theta^2}u + \frac{\cot \theta}{r^2} \frac{\partial}{\partial \theta}u + \frac{\csc^2 \theta}{r^2} \frac{\partial^2}{\partial \varphi^2}u}

Se pueden dividir los sistemas digitales (aquellos que trabajan con un conjunto discreto de valores para sus entradas y salidas en contraposición a los analógicos que lo hacen con un conjunto infinito)

Podemos pensar las funciones como una especie de entidades que a partir de unas entradas nos generan unas salidas. Por ejemplo, en matemáticas la función f(x)=2x recibe un número real como entrada y nos devuelve el doble de ese número como salida.

Así pues, tenemos que para definir una función necesitamos un conjunto al que pertenecen las entradas de la función, un conjunto al que pertenecen sus salidas y una manera de obtener estas últimas a partir de las primeras (obviamente, estos métodos han de ser capaces de trabajar con los conjuntos anteriores). En particular, para la función anterior, tenemos que tanto los conjuntos de entrada como de salida son los números reales \mathbb{R}, es una función real de variable real, y la regla de transformación es sencillamente multiplicar por dos.

Por lo tanto, las funciones booleanas no son mas que funciones donde los conjuntos de entrada y de salida tienen que ver con los booleanos \mathbb{B} = \{ 0,1\}. O dicho de otra manera, tendran que ser capaces de trabajar solo con ceros y unos. Cuando escribimos

f:\mathbb{B}^n \rightarrow \mathbb{B}^m

queremos decir que las entradas son  n valores booleanos \overbrace{\mathbb{B} \times \mathbb{B}}^{n} y lo mismo para los m valores de salida. Nos centraremos en m=1, ya que

f(b_1,\ldots,b_n) = f_1(b_1,\ldots,b_n) \times \ldots \times f_m(b_1,\ldots,b_n)

con

f_i:\mathbb{B}^n \rightarrow \mathbb{B}.

Una propiedad interesante de las funciones booleanas es que, debido a que la cardinalidad de los booleanos es |\mathbb{B}|=2, entonces el número de combinaciones posibles para las entradas queda determinado por la aridad n de la función de la siguiente manera:

|\mathbb{B}^n| = 2^n.

Ésto justifica la utilización de las tablas de verdad para especificar el comportamiento de una función. En ella, se colocan a la izquierda todas las posibles combinaciones de las entradas, que como acabamos de ver es finito, y a la izquierda de cada una de las ellas el valor correspondiente de la función que estamos definiendo.

Llegados a este punto, y visto que sigue creciendo el número de visitas, sería interesante no solo escribir sobre las cosas en las que actualmente estoy trabajando (más o menos) sino también sobre aquellas de las que creo que se 🙂

Obviamente, las áreas que mas conozco son las que se corresponden con mis estudios que, ordenados por experiencia, son: ingeniería informática, matemáticas y física.

De esta manera, empezaré a tratar, de manera mas o menos sistemática, y haciendo énfasis en las ideas (que se entiendan las cosas) temas, en primer lugar, de informática: arquitectura de computadores, sistemas operativos, lenguajes de programación, ingeniería del software, bases de datos y redes de ordenadores. También tocaremos temas avanzados interesantísimos: inteligencia artificial, robótica, gráficos por computador, informática teórica, supercomputación…

Sería bonito hacerlo con un enfoque de abajo a arriba, es decir, intentar “fabricar” desde cero nuestro ordenador, su sistema operativo, un lenguaje de programación, su compilador, la red, etc. Ir entendiendo todo lo que vamos necesitando y saber como “construirlo”. O con un ejemplo completo e interesante para las áreas de programación, bases de datos e ingeniería del software. Aunque es muy complicado, lo que se pueda lo haremos desde este punto de vista.

Quién sea capaz de asimilar esta cantidad ingente de información será, a nivel conceptual, como un experto en el área 😕

Todo aparecerá bajo la categoría Divulgación y las subcategorías (y subsubcategorías, etc.) para esta especie de cursos serán las tres primeras létras de cada palabra de su nombre en inglés, la primera en minúscula y el resto en mayúscula (por ejemplo cOMaRC para Computer Architecture). Así lograremos no mezclar las nuevas entradas, con estos objetivos, con las habituales de trabajo del blog. Aunque todo el mundo queda invitado a leer lo que le apetezca, faltaría más…

Cuando tenga clara una entrada, aparecerá en el blog y la iré rellenando poco a poco. Con el símbolo \Box indicaré que un post se da por acabado. El orden de lectura intentaré que corresponda con su orden de publicación (un post publicado en una fecha se debería de leer una vez leidos todos los publicados anteriormente de su misma sub…categoría).

Dicho esto, y con todo el fantástico trabajo que queda por delante, hasta el proximo post 😉

A mi casi-código SPH le he añadido la libreria Voro++ de Chris Rycroft y ésta va calculando las correspondientes teselaciones de Voronoi tridimensionales correspondientes a las partículas siguiendo movimientos pendulares (sobre planos z=cte) .

Pulsar sobre la imagen para empezar la animación.animate_1

diciembre 2013
L M X J V S D
« Nov   Ene »
 1
2345678
9101112131415
16171819202122
23242526272829
3031