Módulos, árbol de jerarquías y errores de frontera en PENELOPE
MODULO Como ya se ha mencionado, el método obvio para localizar un punto consiste en calcular los SP para todas las superficies y, a continuación, explorar los cuerpos en orden ascendente en busca de la primera que coincida con los SP dados. Durante la simulación, cuando una partícula intenta alcanzar una distancia s0 (longitud del paso) en una dirección “d” desde una posición r0 dentro de un cuerpo B0, debemos verificar si la partícula abandona el cuerpo en el curso de su vuelo y, cuando esto ocurre, deberíamos dividir la partícula justo después de dejar B0 y reanudar la simulación con las secciones transversales del nuevo material. Esto requiere determinar las intersecciones del rayo de partículas r0 + sd (0 <s< s0) con todas las superficies que limitan el cuerpo B0 (incluyendo aquellas que definen cualquier otro cuerpo que limite B0), y verificar si la posición final r0 + sd permanece dentro de B0 o no. MODULO • Un modulo esta definido como aquel espacio geométrico construido SOLO por superficies cuadráticas que engloba, si así lo requiere, otros cuerpos y módulos. • Este modulo es llenado con un material homogéneo y este llena las cavidades dentro del modulo (volúmenes que no corresponden a cuerpos o submodulos dentro de el primero). • Estas nuevas cavidades llenadas son consideradas como un “nuevo cuerpo”. • Por lo tanto, un modulo no es una superficie homogénea necesariamente, así que su composición depende únicamente de los elementos que lo conforman. • Además este modulo debe ser “filled” por definición con algún material y secuenciado en el orden de las regiones espaciales. MODULO • El modulo debe considerar los siguientes requisitos: • 1) los cuerpos y submodulos de un modulo deben estar COMPLETAMENTE contenidos dentro del modulo padre (porciones de cuerpos o submodulos que se encuentren fuera del modulo no son permitidos). • 2) un submodulo de un modulo no puede solaparse con otros cuerpos y submodulos del mismo modulo (esto es necesario para asegurar que una partícula pueda solo ingresar o dejar un modulo a través de sus superficies limitantes). MODULO • El beneficio de usar módulos es que mientras la partícula se encuentra dentro del modulo, los únicos cuerpos accesibles son las hijas (cuerpos o submodulos) de ese modulo. Esto limita efectivamente la cantidad de superficies que deben analizarse en cada movimiento. • Solo cuando la partícula cruza una de las superficies limitantes del módulo actual, debemos considerar la geometría externa. Además, cuando una partícula abandona un módulo, permanece dentro del volumen del módulo principal o de uno de sus ancestros. El trabajo numérico necesario para localizar y rastrear partículas puede, por lo tanto, reducirse en gran medida definiendo un árbol genealógico de módulos bien distribuidos. La organización óptima se obtiene cuando cada módulo tiene una estructura interna relativamente simple con un pequeño número de hijas. MODULOS (idea cóncava de cuerpo) Se debe tener en cuenta que los cuerpos pueden ser cóncavos, es decir, el segmento recto que une cualquiera de los dos puntos de un cuerpo puede no estar completamente contenido en el cuerpo. Por lo tanto, incluso cuando la posición final de la partícula fluye dentro del cuerpo inicial, debemos analizar todas las intersecciones del rayo de partículas con las superficies limitantes de B0 y verificar si la partícula ha salido del cuerpo después de cualquiera de las intersecciones. Además, cuando la partícula abandona el cuerpo inicial, digamos que después de recorrer una distancia s´(<s0), debemos ubicar el punto r´ = r0 + s´d. El procedimiento directo mencionado anteriormente es robusto y fácil de programar, pero se vuelve demasiado lento para geometrías complejas. Podemos acelerarlo simplemente ignorando aquellos elementos de la geometría que no se pueden alcanzar en un solo paso (por ejemplo, cuerpos que están "filtrados" por otros cuerpos o demasiado separados). Desafortunadamente, como un cuerpo puede estar limitado por todos los otros cuerpos que se han definido previamente, el algoritmo puede mejorarse solo a costa de proporcionarle información adicional. Adoptamos una estrategia simple que consiste en agrupar conjuntos de cuerpos para formar módulos. MODULO (idea convexa) • En simulaciones prácticas con geometrías finitas, el rastreo de una partícula debe interrumpirse cuando abandona el sistema material. En PENGEOM esto se hace automáticamente asumiendo que el sistema completo está contenido dentro de un solo módulo convexo, el gabinete, que comprende todo el sistema. Un volumen de espacio es convexo si el segmento recto que une dos puntos del volumen está totalmente contenido dentro del volumen. También es conveniente (pero no necesario) exigir que el gabinete tenga un volumen finito, de modo que todos los rayos que comienzan desde cualquier punto dentro del volumen del recinto se intersecan con una de sus superficies limitadoras a una distancia finita. • Cuando el gabinete no esta definido por el usuario (es decir, cuando la geometría consiste en varios módulos y/o cuerpos separados que no están dentro de un solo módulo), el gabinete se define como una gran esfera de radio de 107 unidades de longitud, centrada en el origen de las coordenadas. Se supone que hay un vacío perfecto fuera del gabinete y en cualquier volumen interior que no sea un cuerpo o un módulo relleno. Si la definición de geometría contiene cuerpos que se extienden más allá del envolvente, se truncan y solo se retienen las partes dentro del envolvente MODULO • Aunque los módulos en general pueden ser cóncavos, el módulo del “abuelo” debe ser convexo. • Considere, por ejemplo, el caso de una geometría simple que consiste en un solo cilindro hueco en vacío que puede definirse como un cuerpo o como un módulo. Como el cilindro hueco es cóncavo, debe definirse como un cuerpo. Si se definiera como un módulo, se consideraría que la región y la simulación no funcionarán correctamente, ya que se supondría que las partículas que entran en el hueco proveniente de la pared ingresan en el vacío "externo" y no se detienen en la pared opuesta. . Tenga en cuenta que las rutinas de Pengeom no pueden comprobar si el módulo raíz es convexo o cóncavo. Esta inconsistencia se hace evidente cuando la geometría se analiza con el visor bidimensional de gview2d; Sin embargo, el visor tridimensional generará imágenes correctas incluso cuando el cilindro hueco se define como un módulo (porque los rayos de luz utilizados para renderizar imágenes tridimensionales no penetran en los cuerpos materiales). Ejemplo Ejemplo • Error de seguimiento causado por la definición de una región que es cóncava. El ejemplo corresponde a una geometría simple que consiste en un cilindro hueco en vacío. El diagrama de la izquierda muestra el seguimiento correcto de una partícula que cruza la estructura del material sin interactuar. • Cuando el cilindro hueco se define como un cuerpo, la partícula cruza la primera pared (A-B), entra en el hueco, se mueve libremente hacia el punto C y luego cruza la segunda pared (C-D). Si el cilindro hueco se define como un módulo, PENGEOM lo identifica con el gabinete y el programa funciona mal: la partícula atraviesa la primera pared (A-B), ingresa al hueco en B y, debido a que está en el vacío, vuela libremente hasta su infinidad, y no "ve" la segunda pared. Secuenciación regional • Así como se debe considerar la secuenciación con respecto a la función de superficie cuadrática, los módulos y cuerpos pertenecen a su propia secuenciación como región espacial. • Comenzando desde 1 y tomando valores enteros secuenciados en una unidad, los cuerpos como los módulos deben ser secuenciados de la misma forma, es decir, si se han definido cuerpos hasta una etiqueta “n” (siendo n un numero entero real) y se piensa definir modulos, estos deberán seguir la secuencia por ser regiones espaciales y asi tendríamos un modulo con etiqueta “n+1”. Árbol de jerarquías
• Penelope permite simulaciones en función de operar sobre cuerpos y
módulos cualquier interacción de la radiación con la materia. Aun asi también permite la optimización de la simulación desde varios paquetes que lo componen. • El modo de optimizar las simulación desde PENGEOM (paquete de geometría) es generar un árbol de jerarquía que permita la secuenciación de Ejemplo de optimización • Corte plano de un ejemplo de geometría, que muestra módulos (etiquetas de números en círculos) y cuerpos (etiquetas de números en cuadrados), y el árbol genealógico asociado. Tenga en cuenta que un módulo siempre puede definirse como un cuerpo limitado por sus submodulos y cuerpos hijos, pero esto afecta la estructura del árbol genealógico y, por lo tanto, la eficiencia (velocidad) de las operaciones de geometría. Observaciones técnicas • PENGEOM (paquete de geometría) permite el uso de hasta 10000 superficies cuadráticas y 5000 modulos. • La cantidad de cuerpos y submodulos dentro de un modulo puede llegar a ser hasta 250. • Con esto, la simulación se vuelve extremadamente lenta. • Se recomienda utilizar varios módulos para generar un árbol con varias ramas antes que una sola rama con varios cuerpos y/o submodulos. • Las regiones vacías (vacío estricto) se cruzan libremente (es decir, no se cuenta la distancia recorrida dentro de estas regiones) ERRORES DE REDONDEO • Vale la pena mencionar que las rutinas de seguimiento pueden escribir mensajes de advertencia en UNIT = 26. Estas advertencias se refieren a inconsistencias causadas por errores de redondeo, que en la mayoría de los casos ocurren cuando la partícula abandona el sistema (a través del recinto esférico del radio 107) y es inocua. • En el caso de superficies tangentes (p. Ej., Una esfera dentro de un cilindro del mismo radio), la precisión limitada por la doble precisión en Fortran puede producir distorsiones de la geometría cuando una partícula cruza las superficies en contacto, ya que el programa puede ser incapaz de identificar ¿Cuál de las dos superficies debe cruzarse primero? Ejemplo del error de redondeo
• Posibles inconsistencias causadas por errores de redondeo, en gran medida ampliadas. a)
Una esfera tendida en un bloque. En realidad, la esfera (discontinua) es tangente a la superficie del plano del bloque, mientras que la esfera numérica (sólida) intersecta la superficie del bloque. b) Un cubo encima de un bloque. La superficie inferior del cubo y la parte superior del bloque son la misma superficie matemática. • Cuando se definen como superficies diferentes, los errores de redondeo pueden causar pequeñas variaciones y, ocasionalmente, la interpenetración de los dos cuerpos. • El diagrama de la izquierda representa una esfera, B1, que se encuentra en la superficie de un bloque, B2. Debido a los errores de redondeo, las superficies numéricas son tales que la esfera penetra ligeramente en el bloque. En este caso, un rayo, r0 + sd, que comienza en el cuerpo del bloque entrará en la esfera antes de abandonar el bloque. Como esta eventualidad no se contempla, el comportamiento de las rutinas de seguimiento es esencialmente impredecible. • El usuario debe asegurarse de que tales situaciones no se produzcan alterando ligeramente las superficies en conflicto. Por supuesto, el conflicto se evita al declarar la esfera B1 como un cuerpo limitante del bloque B2. • Se pueden producir problemas similares cuando una superficie matemática se define más de una vez (por ejemplo, para limitar dos cuerpos adyacentes, o un cuerpo y su módulo madre). Una superficie matemática puede definirse directamente u obtenerse mediante la rotación y la traslación de un módulo que lo involucre. En este último caso, los errores de redondeo acumulados de estas transformaciones pueden producir una superficie ligeramente diferente. El diagrama de la derecha en la figura muestra un ejemplo de cuerpos adyacentes, un cubo (B1) en un bloque más grande (B2), donde la superficie común, un plano, se define una vez para cada cuerpo. Consideremos que los dos cuerpos están definidos de manera separada. Debido a los supuestos errores de redondeo, las dos superficies son ligeramente diferentes y los cuerpos se superponen un poco. • Una partícula proveniente del bloque B2 puede llegar al cubo B1 antes de abandonar el bloque, y entonces el algoritmo de seguimiento puede volverse inconsistente. La subrutina GEOMIN elimina las superficies redundantes para evitar tales situaciones y para evitar cálculos innecesarios. Dos superficies se identifican como redundantes cuando sus coeficientes respectivos difieren por un factor constante, con una tolerancia relativa de 10-14. Sin embargo, tenga en cuenta que los errores de redondeo acumulados pueden impedir la identificación de superficies redundantes. • Se desaconseja el uso de planos dobles, ya que pueden ocultar posibles redundancias de superficie. Por ejemplo, si nuestra geometría contiene el plano z - 1 = 0 y el plano doble z2 - 1 = 0, GEOMIN no realizará ninguna acción. Si, en cambio, reemplazamos el plano doble por el par equivalente de planos z + 1 = 0 y z - 1 = 0, este último se identificará como redundante y se eliminará, evitando así posibles conflictos causados por errores de redondeo. Además, el cálculo de las intersecciones de trayectoria con dos planos es más fácil que con un plano doble. Gracias