Geometria_2DRectangulos.hpp
Ir a la documentación de este archivo.
1 // Clase para generar una geometría homogénea en dos dimensiones usando rectángulos //
3 // //
4 // Análisis y Diseño y Programación: //
5 // //
6 // Nombre: Antonio Carrillo Ledesma //
7 // E-mail: acl@www.mmc.igeofcu.unam.mx //
8 // Página: http://www.mmc.igeofcu.unam.mx/acl //
9 // //
10 // //
11 // Este programa es software libre. Puede redistribuirlo y/o modificarlo //
12 // bajo los términos de la Licencia Pública General de GNU según es //
13 // publicada por la Free Software Foundation, bien de la versión 2 de //
14 // dicha Licencia o bien (según su elección) de cualquier versión //
15 // posterior. //
16 // //
17 // Este programa se distribuye con la esperanza de que sea útil, pero SIN //
18 // NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin //
19 // garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la //
20 // Licencia Pública General de GNU para más detalles. //
21 // //
22 // Debería haber recibido una copia de la Licencia Pública General junto //
23 // con este programa. Si no ha sido así, escriba a la Free Software //
24 // Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU. //
25 // //
26 // //
28 
29 
30 
31 #ifndef __Geometria_2DRectangulos__
32 #define __Geometria_2DRectangulos__
33 
34 #define NUMERO_NODOS_ELEMENTO 4
35 
36 
37 #include "Geometria_2D.hpp"
38 
39 
40 
42 
48 {
49 
50 public:
51 
53 
59  Geometria_2DRectangulos(ldouble x1, ldouble y1, ldouble x2, ldouble y2, int part_hor, int part_ver) : Geometria_2D()
60  {
61  inicializa(x1,y1,x2,y2,part_hor,part_ver);
62  }
63 
64 
66 
69  Geometria_2DRectangulos(MatrizDensa *dm, int part_hor, int part_ver) : Geometria_2D()
70  {
71  inicializa(dm,part_hor,part_ver);
72  }
73 
75 
76  Geometria_2DRectangulos(const char *arch) : Geometria_2D()
77  {
78  // Dimension 1D
79  DIM = 2;
80  // Numero de nodos por elemento
81  NNE = 4;
82  // Numero máximo de elementos que son soporte de un nodo
83  NMESN = 4;
84 
85  leeGeometria(arch);
86  }
87 
90  {
91  // Dimension 1D
92  DIM = 2;
93  // Numero de nodos por elemento
94  NNE = 4;
95  // Numero máximo de elementos que son soporte de un nodo
96  NMESN = 4;
97  }
98 
100 
106  void inicializa(ldouble x1, ldouble y1, ldouble x2, ldouble y2, int part_hor, int part_ver)
107  {
108  // Dimension 2
109  DIM = 2;
110  // Numero de nodos por elemento
111  NNE = 4;
112  // Numero máximo de elementos que son soporte de un nodo
113  NMESN = 4;
114  // Numero de rectangulos
115  N_E = part_hor * part_ver;
116  // Numero de nodos
117  N_N = (part_hor + 1) * (part_ver +1);
118  // Almacena valores
119  Dominio.asigna(0,0,x1);
120  Dominio.asigna(0,1,y1);
121  Dominio.asigna(1,0,x2);
122  Dominio.asigna(1,1,y2);
123 
124  Particion.asigna(0,part_hor);
125  Particion.asigna(1,part_ver);
126 
127  generaGeometria();
128  }
129 
131 
134  void inicializa(MatrizDensa *dm, int part_hor, int part_ver)
135  {
136  // Dimension 2
137  DIM = 2;
138  // Numero de nodos por elemento
139  NNE = 4;
140  // Numero máximo de elementos que son soporte de un nodo
141  NMESN = 4;
142  // Numero de rectangulos
143  N_E = part_hor * part_ver;
144  // Numero de nodos
145  N_N = (part_hor + 1) * (part_ver +1);
146  // Almacena valores
147  dm->copia(&Dominio);
148 
149  Particion.asigna(0,part_hor);
150  Particion.asigna(1,part_ver);
151 
152  generaGeometria();
153  }
154 
156  void generaGeometria(void);
157 
159 
160  ldouble areaElemento(int el)
161  {
162  return 0.0;
163  }
164 
165 };
166 
167 #endif
168 
169 
170 //~ /// Retorna el numero de nodo del elemento
171 //~ inline void Retorna_Numero_Nodo(int elemento, int &nd1, int &nd2, int &nd3, int &nd4)
172 //~ {
173 //~ nd1 = EL->Retorna(elemento,0);
174 //~ nd2 = EL->Retorna(elemento,1);
175 //~ nd3 = EL->Retorna(elemento,2);
176 //~ nd4 = EL->Retorna(elemento,3);
177 //~ }
int NNE
Numero de nodos por elemento.
Definition: Geometria.hpp:94
Clase para generar una geometría homogénea en dos dimensiones usando rectángulos.
Definition: Geometria_2DRectangulos.hpp:47
Geometria_2DRectangulos(ldouble x1, ldouble y1, ldouble x2, ldouble y2, int part_hor, int part_ver)
Constructor de la clase.
Definition: Geometria_2DRectangulos.hpp:59
MatrizDensa Dominio
Dominio de la geometria.
Definition: Geometria.hpp:65
int NMESN
Numero máximo de elementos que son soporte de un nodo.
Definition: Geometria.hpp:97
int DIM
Dimension a trabajar.
Definition: Geometria.hpp:91
virtual void copia(Matriz *a)
Copia el contenido de la matriz a la matriz pasada como parámetro.
Definition: Matriz.cpp:371
Clase para el trabajar con matrices densas de punto flotante.
Definition: MatrizDensa.hpp:44
Geometria_2DRectangulos(const char *arch)
Constructor de la clase.
Definition: Geometria_2DRectangulos.hpp:76
ldouble areaElemento(int el)
Regresa el valor del área del elemento.
Definition: Geometria_2DRectangulos.hpp:160
void asigna(const int col, const int val)
Asigna el valor val a la columna col.
Definition: VectorInt.hpp:202
void inicializa(MatrizDensa *dm, int part_hor, int part_ver)
Inicializa los datos de la geometría
Definition: Geometria_2DRectangulos.hpp:134
Geometria_2DRectangulos(void)
Constructor de la clase.
Definition: Geometria_2DRectangulos.hpp:89
void asigna(const int ren, const int col, const ldouble val)
Asigna el valor indicado en el renglo y columna solicitado.
Definition: MatrizDensa.hpp:147
Clase base para generar una geometria en 2D.
Definition: Geometria_2D.hpp:45
int N_N
Numero de nodos.
Definition: Geometria.hpp:85
void leeGeometria(const char *arch)
Lee la geometria a un archivo.
Definition: Geometria.hpp:386
void inicializa(ldouble x1, ldouble y1, ldouble x2, ldouble y2, int part_hor, int part_ver)
Inicializa los datos de la geometría
Definition: Geometria_2DRectangulos.hpp:106
void generaGeometria(void)
Genera la geometria.
Definition: Geometria_2DRectangulos.cpp:36
Geometria_2DRectangulos(MatrizDensa *dm, int part_hor, int part_ver)
Constructor de la clase.
Definition: Geometria_2DRectangulos.hpp:69
VectorInt Particion
Particion del dominio.
Definition: Geometria.hpp:68
int N_E
Numero de elementos.
Definition: Geometria.hpp:88