# Referencia de la Clase G2f

Clase principal G2f. Más...

`#include <g2f.h>`

Lista de todos los miembros.

## Métodos públicos

| G2f (const char *, const char *)
| Constructor de G2f .
void | getOrder (short unsigned=16)

## Atributos privados

ifstream | fileIn
ofstream | fileNode
ofstream | fileEdge
ofstream | fileEle
ofstream | fileNodef
ofstream | fileData
unsigned | N_N
unsigned | N_E

## Descripción detallada

Clase principal G2f.

La clase 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. G2f es llamado por P_sistemaEc pues los archivos que genera 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 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 "for" 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 "i" 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 "newNode" 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 "end" y se escribe el sumario en otro archivo.

## Documentación del constructor y destructor

G2f::G2f | ( | const char * | ruta,
|  | const char * | temporal |
| ) |  |  |

Constructor de G2f .

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

## Documentación de las funciones miembro

void G2f::getOrder | ( | short unsigned | precision = `16` | ) |

getOrder() representa la funcion principal de 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 "F" 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.

## Documentación de los datos miembro

ofstream G2f::fileData`[private]`

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 G2f.

ofstream G2f::fileEdge`[private]`

Variable tipo flujo de salida utilizada para trabajar con el archivo de elementos de contorno.

ofstream G2f::fileEle`[private]`

Variable tipo flujo de salida utilizada para trabajar con el archivo de elementos interiores.

ifstream G2f::fileIn`[private]`

Variable tipo flujo de entrada utilizada para trabajar con el archivo de mallado generado por Gmsh.

ofstream G2f::fileNode`[private]`

Variable tipo flujo de salida utilizada para trabajar con el archivo de nodos.

ofstream G2f::fileNodef`[private]`

Variable tipo flujo de salida utilizada para trabajar con el archivo de elementos punto (finalmente no se ha utilizado en Femsii).

unsigned G2f::N_E`[private]`

variable que se encarga de almacenar el numero de elementos.

unsigned G2f::N_N`[private]`

variable que se encarga de almacenar el numero de nodos.

La documentación para esta clase fue generada a partir de los siguientes ficheros:

- g2f.h
- g2f.cpp