\hypertarget{classG2f}{
\section{Referencia de la Clase G2f}
\label{classG2f}\index{G2f@{G2f}}
}
Clase principal \hyperlink{classG2f}{G2f}.  


{\tt \#include $<$g2f.h$>$}

\subsection*{Métodos públicos}
\begin{CompactItemize}
\item 
\hyperlink{classG2f_070c8966694d1eebe375f6c4b2442cec}{G2f} (const char $\ast$, const char $\ast$)
\begin{CompactList}\small\item\em Constructor de \hyperlink{classG2f}{G2f} . \item\end{CompactList}\item 
void \hyperlink{classG2f_9516eaeec0386343f75625cdc576a3b2}{getOrder} (short unsigned=16)
\end{CompactItemize}
\subsection*{Atributos privados}
\begin{CompactItemize}
\item 
ifstream \hyperlink{classG2f_f59d6161ffa5f76a43d2fd168327764e}{fileIn}
\item 
ofstream \hyperlink{classG2f_a4e5e7de262482108a5a621eb132ea9c}{fileNode}
\item 
ofstream \hyperlink{classG2f_af2af3c5ccaab1afaac6aaadeb69aad0}{fileEdge}
\item 
ofstream \hyperlink{classG2f_5f6c80af7f0ac3993617c0c7e5698efd}{fileEle}
\item 
ofstream \hyperlink{classG2f_cd3164e96d3960d9f15b5dcd910643d1}{fileNodef}
\item 
ofstream \hyperlink{classG2f_95872d13b895f2c8338054158b6a5b09}{fileData}
\item 
unsigned \hyperlink{classG2f_e57e66cb56a60ea3b0df25760a693659}{N\_\-N}
\item 
unsigned \hyperlink{classG2f_9374c98eb06759d2178494a395eb24ae}{N\_\-E}
\end{CompactItemize}


\subsection{Descripción detallada}
Clase principal \hyperlink{classG2f}{G2f}. 

La clase \hyperlink{classG2f}{G2f} se encarga de asumir un archivo de mallado Gmsh y extraer a partir de el archivos especificos para nodos, archivos de elementos interiores (3 nodos), archivo de elementos contorno (2 nodos) y un archivo extra con la cantidad de lineas de cada archivo. \hyperlink{classG2f}{G2f} es llamado por P\_\-sistemaEc pues los archivos que genera \hyperlink{classG2f}{G2f} los utiliza directamente para crear la matriz de rigidez y el vector de terminos independientes.

NOTA suplementaria: Gmsh siempre genera nodos consecutivos unos de otros, esto es un problema a la hora de generar un sistema de ecuaciones. Por ellos existe \hyperlink{classG2f}{G2f}.

NOTA procedimiento general: -Se empieza a leer el archivo generado por gmsh. -Se ignoran los primeros 34 caracteres. -Se coloca en la variable N\_\-N el numero de nodos. OJO, los nodos pueden estar desordenados.

-Con un bucle \char`\"{}for\char`\"{} se leen tantas lineas como nodos existan. Se lee del archivo origen el INDICE, coordenada X, coordenada Y y la ultima columna que se ignorara. Se escribe en el archivo destino el valor cardinal \char`\"{}i\char`\"{} del bucle, y los datos coordenada X, coordenada Y, y fin de linea. Se crea la variable tipo MAP para almacena pares (viejo nodo, nuevo nodo) -Se ignoran los siguientes 18 caracteres. -Se coloca en la variable N\_\-E el numero de elementos. OJO, puesto que se han rebautizado los nodos con un nuevo indice, habra que cambiar los nodos asociados a cada elemento. -Con un bucle for se barren todos los elementos. Se lee el indice y el tipo de elemento. Segun el caso (mediante un switch) se trata cada elemento. En cada caso se leen los nodos y los atributos que se desean conseguir, el resto se pasa a ignore. En cada caso se escriben los datos en el archivo destino, respentando el indice original. Mediante la relacion map \char`\"{}newNode\char`\"{} se colocan los nuevos numeros de nodos que forman cada elemento. En las variables N\_\-nf, N\_\-edg, N\_\-ele se van contando el numero de elementos de cada tipo.

-Se termina cada archivo con un \char`\"{}end\char`\"{} y se escribe el sumario en otro archivo. 

\subsection{Documentación del constructor y destructor}
\hypertarget{classG2f_070c8966694d1eebe375f6c4b2442cec}{
\index{G2f@{G2f}!G2f@{G2f}}
\index{G2f@{G2f}!G2f@{G2f}}
\subsubsection[{G2f}]{\setlength{\rightskip}{0pt plus 5cm}G2f::G2f (const char $\ast$ {\em ruta}, \/  const char $\ast$ {\em temporal})}}
\label{classG2f_070c8966694d1eebe375f6c4b2442cec}


Constructor de \hyperlink{classG2f}{G2f} . 

El CONSTRUCTOR se encarga de crear todas las cadenas de caracteres que apuntan a los archivos que creara esta clase. 

\subsection{Documentación de las funciones miembro}
\hypertarget{classG2f_9516eaeec0386343f75625cdc576a3b2}{
\index{G2f@{G2f}!getOrder@{getOrder}}
\index{getOrder@{getOrder}!G2f@{G2f}}
\subsubsection[{getOrder}]{\setlength{\rightskip}{0pt plus 5cm}void G2f::getOrder (short unsigned {\em precision} = {\tt 16})}}
\label{classG2f_9516eaeec0386343f75625cdc576a3b2}


\hyperlink{classG2f_9516eaeec0386343f75625cdc576a3b2}{getOrder()} representa la funcion principal de \hyperlink{classG2f}{G2f}, y es la que se encarga de leer el archivo .msh y extraer y separar en distintos archivos los datos necesarios para Femsii. Segun va leyendo el archivo va mallado, va escribiendo en el archivo adecuando asi que no necesita reservar memoria. Al final de cada archivo incluye una \char`\"{}F\char`\"{} de fin. Ademas de un archivo extra con el tamanhio de cada archivo generado. Si posteriormente el programa que lea los archivos encuentra que tras completar el numero de interaciones marcadas por el archivo extra, no se encuentra una F, el archivo estara corrupto. 

\subsection{Documentación de los datos miembro}
\hypertarget{classG2f_95872d13b895f2c8338054158b6a5b09}{
\index{G2f@{G2f}!fileData@{fileData}}
\index{fileData@{fileData}!G2f@{G2f}}
\subsubsection[{fileData}]{\setlength{\rightskip}{0pt plus 5cm}ofstream {\bf G2f::fileData}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_95872d13b895f2c8338054158b6a5b09}


Variable tipo flujo de salida utilizada para trabajar con el archivo que recuenta el numero de lineas de cada uno de los otros archivos generados por \hyperlink{classG2f}{G2f}. \hypertarget{classG2f_af2af3c5ccaab1afaac6aaadeb69aad0}{
\index{G2f@{G2f}!fileEdge@{fileEdge}}
\index{fileEdge@{fileEdge}!G2f@{G2f}}
\subsubsection[{fileEdge}]{\setlength{\rightskip}{0pt plus 5cm}ofstream {\bf G2f::fileEdge}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_af2af3c5ccaab1afaac6aaadeb69aad0}


Variable tipo flujo de salida utilizada para trabajar con el archivo de elementos de contorno. \hypertarget{classG2f_5f6c80af7f0ac3993617c0c7e5698efd}{
\index{G2f@{G2f}!fileEle@{fileEle}}
\index{fileEle@{fileEle}!G2f@{G2f}}
\subsubsection[{fileEle}]{\setlength{\rightskip}{0pt plus 5cm}ofstream {\bf G2f::fileEle}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_5f6c80af7f0ac3993617c0c7e5698efd}


Variable tipo flujo de salida utilizada para trabajar con el archivo de elementos interiores. \hypertarget{classG2f_f59d6161ffa5f76a43d2fd168327764e}{
\index{G2f@{G2f}!fileIn@{fileIn}}
\index{fileIn@{fileIn}!G2f@{G2f}}
\subsubsection[{fileIn}]{\setlength{\rightskip}{0pt plus 5cm}ifstream {\bf G2f::fileIn}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_f59d6161ffa5f76a43d2fd168327764e}


Variable tipo flujo de entrada utilizada para trabajar con el archivo de mallado generado por Gmsh. \hypertarget{classG2f_a4e5e7de262482108a5a621eb132ea9c}{
\index{G2f@{G2f}!fileNode@{fileNode}}
\index{fileNode@{fileNode}!G2f@{G2f}}
\subsubsection[{fileNode}]{\setlength{\rightskip}{0pt plus 5cm}ofstream {\bf G2f::fileNode}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_a4e5e7de262482108a5a621eb132ea9c}


Variable tipo flujo de salida utilizada para trabajar con el archivo de nodos. \hypertarget{classG2f_cd3164e96d3960d9f15b5dcd910643d1}{
\index{G2f@{G2f}!fileNodef@{fileNodef}}
\index{fileNodef@{fileNodef}!G2f@{G2f}}
\subsubsection[{fileNodef}]{\setlength{\rightskip}{0pt plus 5cm}ofstream {\bf G2f::fileNodef}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_cd3164e96d3960d9f15b5dcd910643d1}


Variable tipo flujo de salida utilizada para trabajar con el archivo de elementos punto (finalmente no se ha utilizado en Femsii). \hypertarget{classG2f_9374c98eb06759d2178494a395eb24ae}{
\index{G2f@{G2f}!N\_\-E@{N\_\-E}}
\index{N\_\-E@{N\_\-E}!G2f@{G2f}}
\subsubsection[{N\_\-E}]{\setlength{\rightskip}{0pt plus 5cm}unsigned {\bf G2f::N\_\-E}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_9374c98eb06759d2178494a395eb24ae}


variable que se encarga de almacenar el numero de elementos. \hypertarget{classG2f_e57e66cb56a60ea3b0df25760a693659}{
\index{G2f@{G2f}!N\_\-N@{N\_\-N}}
\index{N\_\-N@{N\_\-N}!G2f@{G2f}}
\subsubsection[{N\_\-N}]{\setlength{\rightskip}{0pt plus 5cm}unsigned {\bf G2f::N\_\-N}\hspace{0.3cm}{\tt  \mbox{[}private\mbox{]}}}}
\label{classG2f_e57e66cb56a60ea3b0df25760a693659}


variable que se encarga de almacenar el numero de nodos. 

La documentación para esta clase fue generada a partir de los siguientes ficheros:\begin{CompactItemize}
\item 
g2f.h\item 
g2f.cpp\end{CompactItemize}
