changeset 20:f9f8689154ab default tip

Some minor updates
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 19 Sep 2012 09:35:33 -0400
parents 2a5043aeb962
children
files code.tex
diffstat 1 files changed, 78 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/code.tex
+++ b/code.tex
@@ -108,7 +108,7 @@
 continuación describiremos cómo estructuramos las clases
 del código.
 
-\section{Descripción de clases}
+\section{Descripción de módulos auxiliaresG}
 
 A continuación detallaremos el contenido de cada cabecera y su
 contenido. Esto es sólo un breve esquema de la estructura del
@@ -125,6 +125,12 @@
 para ahondar mucho en ellas, así que remitimos al lector interesado
 a la documentación completa de Doxygen.
 
+\subsection{Módulo \vb{VTK}}
+
+Este módulo sólo contiene la clase \vb{vtkplot} que sirve para generar
+visualizasiones de los valores que pueda producir un
+\vb{interpolator<RBF>} o \vb{ddm<RBF>}.
+
 \subsection{Módulo \vb{linalg}}
 
 En este espacio definimos algunas funciones envolventes para la
@@ -134,7 +140,7 @@
 sencilla, también los índices comienzan desde $1$, no $0$ como en
 C++, y es posible rebanar matrices y vectores respetando ciertas
 restricciones. Las clases más importantes de este espacio nominal
-son \vb{kwantix::matrix} y \vb{kwnatix::vector}, por supuesto
+son \vbN{kwantix::matrix} y \vb{kwnatix::vector}, por supuesto
 compatibles entre sí. Todas las funciones aritméticas básicas de
 álgebra lineal que se puedan esperar se encuentran aquí. Todas
 están implantadas por medio de BLAS\footnote{BLAS son las siglas en
@@ -239,8 +245,8 @@
 
 \subsection{Módulo \vb{BVP}}
 
-En este espacio se encuentran la mayoría de las clases y
-funcionalidad de nuestro código. Recordando el PVF \eqref{eq:thebvp},
+En este espacio se encuentran la mayoría de las clases auxiliares e
+infraestructura de nuestro código. Recordando el PVF \eqref{eq:thebvp},
 observamos que tiene varios componentes:
 \begin{itemize}
   \item Un operador diferencial interior $\mathcal{L}$.
@@ -305,10 +311,10 @@
   pero por el momento no las aproxima numéricamente.
 
   Esta clase es madre de varias otras clases. Además de ser madre
-  todos los miembros del espacio nominal \vb{rbf}, también es
-  madre de las interpolantes \vb{interpolator} y \vb{schwarz_ddm}
-  que veremos más adelante. También tiene envolturas para el tipo
-  de apuntadores a funciones que la GSL requiere mediante la clase
+  todos los miembros del espacio nominal \vb{rbf}, también es madre de
+  las interpolantes \vb{interpolator<RBF>} y \vb{schwarz_ddm<RBF>} que veremos
+  en breve. También tiene envolturas para el tipo de apuntadores a
+  funciones que la GSL requiere mediante la clase
   \vb{gsl_function_wrapper}.
 \end{description}
 
@@ -319,7 +325,14 @@
 clase derivada que ha resultado suficiente para nosotros y que modela
 un PVF lineal de orden $2$, \vb{linear_BVP2}.
 
-\section{La clase \vb{interpolator<RBF>}}
+\section{Módulo \vb{interpolator}}
+
+Este módulo contiene las clases que desempeñan la labor de juntar toda
+la infrastructura de las demás mediante el método de colocación
+asimétrica de interpolación o los métodos de descomposición de
+dominios. Por lo tanto, las describiremos con más detenimiento.
+
+\subsection{La clase \vb{interpolator<RBF>}}
 
 Todas las clases descritas arriba son tan sólo el esquema general
 bajo el cual estamos trabajando, definen los ingredientes del
@@ -362,7 +375,7 @@
 cualquier forma, hay ciertas diferencias en la implementación de la
 solución del PVF \eqref{eq:thebvp}.
 
-\subsection{Constructores e interpolación}
+\subsubsection{Constructores e interpolación}
 
 Los constructores de la clase \vb{interpolator<RBR>} preparan al
 interpolador al resolver el problema de interpolación al efectuar una
@@ -385,7 +398,7 @@
   normales.
 \end{description}
 
-\subsection{Evaluación y pre-cálculo}
+\subsubsection{Evaluación y pre-cálculo}
 
 La clase de \vb{interpolator<RBF>} incluye varias funciones miembro
 para evaluar el interpolador y hasta dos derivadas, ya sea un un punto
@@ -430,9 +443,60 @@
 a partir de la matriz de derivadas de las FBR evaluadas en cada punto,
 aquí escrito como $D[M]$. De manera opcional, para evaluaciones de las
 derivadas de $u$ en cada punto de $\Xi$, tenemos funciones para
-guardar en memoria
+almacenar en memoria las derivadas de las FBR. Naturalmente, al volver
+a evaluar la interpolación (es decir, al volver a resolver el sistema
+\eqref{eq:reinterp} con una $\vec{f}$ distinta), volvemos a recalcular
+también los valores del interpolador o sus derivadas que ya estén
+almacenados, es decir, calculamos nuevamente $D[M]\vec{u}$ con el
+nuevo $\vec{u}$ obtenido.
+
+Las funciones de Kwantix que facilitan estas operaciones son
+\begin{description}
+  \item[Funciones de evaluación puntual] Como descritas arriba:
+  \begin{itemize}
+    \item \vb{double operator() (const point &p) const}
+    \item \vb{double at (const point &p) const}
+    \item \vb{double d (const point &p, size_t k) const}
+    \item \vb{double d2 (const point &p, size_t k1, size_t k2) const}
+  \end{itemize}
+  \item[Funciones de evaluación del dominio entero] Igual que la
+  anterior, pero nótese que se omite el parámetro \vb{p}:
+  \begin{itemize}
+    \item \vb{double operator() () const}
+    \item \vb{double at () const}
+    \item \vb{double d (size_t k) const}
+    \item \vb{double d2 (size_t k1, size_t k2) const}
+  \end{itemize}
+  \item[Funciones de precálculo] Para almacenar en memoria los valores
+  de las FBRs y sus posibles derivadas:
+  \begin{itemize}
+    \item \vb{void precompute_ev ()}
+    \item \vb{void precompute_d1 ()}
+    \item \vb{void precompute_d2 ()}
+  \end{itemize}
+\end{description}
+
+\subsubsection{Otras funciones}
+
+Además de estas funciones, el interpolador también incluye funciones
+para hacer una reinterpolación parcial según cambie $\vec{f}$ ó
+$\vec{g}$ en \eqref{eq:thebvp}. Al cambiar los valores asociados a
+cualquiera de estas dos funciones, es necesario volver a factorizar la
+matriz $M$.
+
+Por último, para operaciones lineales entre dos interpoladores en el
+mismo dominio, por ejemplo,
+\begin{align*}
+u(x) + v(x) &= \sum_{p \in \Xi} u_p \phi_p(x) + \sum_{p \in \Xi} v_p
+\phi_p(x) \\
+&= \sum_{p \in \Xi} (u_p + v_p)\phi_p(x),
+\end{align*}
+también hemos definido funciones que operan coeficiente por
+coeficiente. Esto facilita las operaciones cuando hay varios
+interpoladores en uso en el mismo dominio. Tal es el caso de las
+ecuaciones de aguas someras más adelante.
 
 %%% Local Variables:
-%%% mode: latex 
-%%% TeX-master: "thesis" 
+%%% mode: latex
+%%% TeX-master: "thesis"
 %%% End: