Geometria_3DOrtoedros.hpp
Ir a la documentación de este archivo.
1 // Clase para generar una geometría en tres dimensiones usando ortoedros //
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 
32 #ifndef __Geometria_3DOrtoedros__
33 #define __Geometria_3DOrtoedros__
34 
35 
36 #include "Geometria_3D.hpp"
37 
38 
40 
46 {
47 
48 public:
49 
51 
60  Geometria_3DOrtoedros(ldouble x1, ldouble y1, ldouble z1, ldouble x2, ldouble y2, ldouble z2, int part_x, int part_y, int part_z) : Geometria_3D()
61  {
62  // Dimension 3
63  DIM = 3;
64  // Numero de nodos por elemento
65  NNE = 8;
66  // Numero máximo de elementos que son soporte de un nodo
67  NMESN = 8;
68  // Numero de rectangulos
69  N_E = part_x * part_y * part_z;
70  // Numero de nodos
71  N_N = (part_x + 1) * (part_y + 1) * (part_z + 1);
72 
73  Dominio.asigna(0,0,x1);
74  Dominio.asigna(0,1,y1);
75  Dominio.asigna(0,2,z1);
76  Dominio.asigna(1,0,x2);
77  Dominio.asigna(1,1,y2);
78  Dominio.asigna(1,2,z2);
79 
80  Particion.asigna(0,part_x);
81  Particion.asigna(1,part_y);
82  Particion.asigna(2,part_z);
83 
85  }
86 
88 
89  Geometria_3DOrtoedros(const char *arch)
90  {
91  // Dimension 1D
92  DIM = 3;
93  // Numero de nodos por elemento
94  NNE = 8;
95  // Numero máximo de elementos que son soporte de un nodo
96  NMESN = 8;
97 
98  leeGeometria(arch);
99  }
100 
102  void generaGeometria(void);
103 
104 
106  void calculaTipoNodo(void);
107 
108 };
109 
114 #endif
int NNE
Numero de nodos por elemento.
Definition: Geometria.hpp:94
Clase para generar una geométria ortoedrica 3D.
Definition: Geometria_3DOrtoedros.hpp:45
void generaGeometria(void)
Genera la geometria.
Definition: Geometria_3DOrtoedros.cpp:36
Clase base para generar una geometria en 3D.
Definition: Geometria_3D.hpp:43
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
Geometria_3DOrtoedros(ldouble x1, ldouble y1, ldouble z1, ldouble x2, ldouble y2, ldouble z2, int part_x, int part_y, int part_z)
Constructor de la clase.
Definition: Geometria_3DOrtoedros.hpp:60
void asigna(const int col, const int val)
Asigna el valor val a la columna col.
Definition: VectorInt.hpp:202
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
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
VectorInt Particion
Particion del dominio.
Definition: Geometria.hpp:68
int N_E
Numero de elementos.
Definition: Geometria.hpp:88
Geometria_3DOrtoedros(const char *arch)
Constructor de la clase.
Definition: Geometria_3DOrtoedros.hpp:89
void calculaTipoNodo(void)
Calcula el tipo de nodo dentro del dominio, positivo es desconocido, negativo es conocido (1) Interio...
Definition: Geometria_3DOrtoedros.cpp:115