-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.txt
132 lines (94 loc) · 6.62 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
Implementación en Python de la solución de la ecuación de Helmholtz con permeabilidades
y permitividades inhomogéneas para 2 dimensiones,
Hecha por : Sofia Obando Vasquez, Jose Hernan Ortiz, Jose Manuel Rendón, Mayo 2019
Proyecto final de la materia Metodos numericos, a cargo del profesor Nicolas Guarin-Zapata
2019-1, Universidad EAFIT
CONTIENE LOS PROGRAMAS :
+FEM2D_main.py :archivo principal, soluciona la ecuación de Helmholtz para parámetros del medio
variables. Se alimenta de las funciones de FEM2D_modulo.py. Arroja la solución, una gráfica
de la misma, y archivos .vtu y .txt si se quiere.
entrada : path al archivo .msh
frecuencia angular de la onda
opciones de guardado de archivo de salida
opciones de condiciones de frontera
función fuente
permeabilidades y permitividades relativas de 2 medios
salida : gráfica de la solución
archivos .vtu y .txt con al solución
+FEM2D_modulo.py : programa que contiene las funciones necesarias para la solución de la ecuación por
el método de elementos finitos.
+identificador_subregiones.py : programa que permite la identificación de las subregiones definidas
en un archivo .msh , dando el orden de identificación de dichas subregiones. Debe usarse en caso
de dudas en la definición de los grupos físicos del archivo .msh
+nodos_ordenador.py : programa que reorganiza los archivos .txt arrojados por los solucionadores,
para ordenar los nodos de forma análoga en estos y permitir la comparación nodo a nodo
+ comparador.py : programa en Python que compara los archivos .txt de las soluciones en Python y en
COMSOL, y arroja el error entre las dos. Antes de usarlo, asegúrese de ordenar los datos de los
archivos .txt con nodos_ordenador.py
entrada : path al archivo .txt de python
path al archivo .txt de COMSOL
salida : error entre las soluciones
RESTRICCIONES DEL PROGRAMA:
+actualmente solo trabaja para 2 subregiones distinguibles en el dominio a solucionar.
estas dos subregiones deben tener parámetros de material constantes. dominios con una cantidad de particiones
mayor generarán errores en la solución
+las condiciones de dirichlet se imponen correctamente solo cuando se trabaja con dominios
rectangulares. Dentro de las entradas del programa se encuentran dos variables llamadas 'lado_hor' y 'lado_ver'
para que el usuario especifique las dimensiones del rectángulo. Sin embargo, no hay restricciones en la forma
de las subregiones en las que se parte el dominio.
+Solo se implementaron condiciones de frontera de dirichlet (con cualquier valor) y las de neumann
(homogeneas), las condiciones de Robin no se pueden simular con el programa.
CONTIENE LOS ARCHIVOS .zip :
+ archivos_vtk = contiene los archivos .vtk / .vtu con los datos de las simulaciones hechas en python,
a este directorio se guardan los archivos .vtu de salida del programa principal. Para ver en Paraview
+ datos_python = contiene los archivos .txt con los datos de las simulaciones hechas en python,
a este directorio se guardan los archivos .txt de salida del programa principal}
+mallas_msh = contiene los archivos .msh con las diferentes mallas usadas para las simulaciones que se
presentan en python. A continuación se enumeran las mallas presentes, donde planos#, hace referencia a
mallas con subdominios rectangulares, circulo# hace referencia a mallas con un circulo en medio, y
corazon# hace referencia a mallas con un corazón en medio.
planos1: contiene 558 nodos
planos2: contiene 13 nodos
planos3: contiene 2214 nodos
planos4: contiene 3421 nodos
planos5: contiene 6987 nodos
planos6: contiene 20884 nodos
circulo1: contiene 424 nodos
circulo2: contiene 44879 nodos
circulo3: contiene 3419 nodos
corazon1: contiene 2947 nodos
Todas las mallas definen dominios cuadrados entre 0 y 5. Todas elaboradas con el programa Gmsh
SIMULACIONES LLEVADAS A CABO: (a menos que se diga lo contrario, el índice se controla con la permitividad relativa,
y la fuente es f = 0)
1 : hecha con geometría planos2, índices de 1 y 1, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.09289521286686218. Tiempo= 0.0497 s tiempo comsol 4s
2: hecha con geometría planos1, índices de 1 y 1, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.07977691790519442. Tiempo = 1.513 tiempo comsol 4s
3: hecha con geometría planos3, índices de 1 y 1, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.06716363759121191 tiempo 7.268 tiempo comsol 5s
4: hecha con geometría planos2, índices 1 y 1, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.06499157926054021. En los vértices donde se superponen las condiciones de dirichlet se hace
un promedio (osea que quedan el 0.5).
5: hecha con geometría planos1, índices de 1 y 2, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.48901269096155037.
6: hecha con geometría planos3, índices de 1 y 2, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.1714157640861453.
7: hecha con geometría planos4, índices de 1 y 1, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.0421555302746676. tiempo = 12.668 tiempo comsol 5s
8: hecha con geometría planos5, índices de 1 y 1, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.034807815068731776. tiempo = 35.22 tiempo comsol 9s
9: hecha con geometría planos6, índices de 1 y 1, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.02299845894309353. tiempo = 230.18 tiempo comsol 20s
10: hecha con geometria circulo1, indices 1 y 2, condiciones de dirichlet 1 a isq y 0 en el resto.
Da un error 0.7143367552787476
11: hecha con geometria circulo3, indices 1 y 2, condiciones de dirichlet 1 a isq y 0 en el resto.
Da un error 0.03697256652029045
12: hecha con geometria circulo2, indices 1 y 2, condiciones de dirichlet 1 a isq y 0 en el resto.
Da un error 0.008261156758867112.
13: hecha con geometria corazon1, indices 1 y 2, condiciones de dirichlet 1 a izq y 0 en el resto.
Da un error 0.2734359232883579
14. hecha con geometría planos5, índices de 1 y 2, condiciones de Dirichlet 1 a izquierda y 0 en el resto.
Da un error de 0.009100016669280885
especial1: hecha con geometría planos5, índices 1 y 2, condiciones de Dirichlet homogéneas, función fuente gaussiana
especial2: hecha con geometría planos5, región 1 con permitividad = 4 y permeabilidad = 1, región 2 con
permitividad = 1 y permeabilidad = 4