Você está na página 1de 13

SIMULACION MONTE CARLO

3. CODIGO MONTE CARLO - PENELOPE


En este capitulo se describe la estructura del C6digo PENELOPE y su forma de
operaci6n. EI kernel del sistema es realizado en paquetes de subroutinas Fortran de
PENELOPE.
3.1. Estructura del paquete de distribuci6n del C6digo
PENELOPE
EI paquete de distribuci6n del c6digo PENELOPE 2006 presenta una estructura
esquematizada en la Figura 12 y sucontenido osta distribuido de la siguiente manera
penel ope
f sour ce
gvi ew
pendbase
ot her
mai ns
doc
shower
emf i el ds
t abl es
Figura 12. Estructura del Archlvos del C6digo PENELOPE
Se hace a continuaci6n una descripci6n detallada del contenido de cada uno de los
componentes de funcionamiento del c6digo PENELOPE.
SIMULACION MONTE CARLO
3.1.1. FSOURCE
Es una carpeta que contiene los siguientes archivos
a. PENELOPE.!: Contiene las sub-rutinas de simulaci6n del trans porte acoplado de
fotones y electrones en un medio sin fronteras.
b. PENGEOM.!: Conjunto de sub-rutinas para el seguimiento de particulas a traves
de geometrias regulares modulares (el sistema maneja por encima de 10000
superficies y 5000 cuerpos)
c. PENVARED.!: Conjunto de sub-rutinas de reducci6n de Varianza
d. MATERIALf: C6digo de usuario para generar archivos de datos de materiales.
e. TABLES.! Programa del usuario para tabular datos de interacciones de particulas
en un material dado.
f. TIMER.!: Paquete de subrutinas de tiernpc, basado en procedimientos de Fortran
95-97090
3.12 PENOBASE
Este subdirectorio contiene las bases de datos de PENELOPE con 729archivos definidos
en formato especial para ser leidos por el c6digo.
3.1.3. OTHER
Consta de los 4 siguientes subdirectorios
a. Gview: Contiene los visores de las geometrias gview2D y gview3D, que operan
bajo Windows unicarnente.
b. Shower: Contiene el archivo binario ejecutable de el c6digo shower (visor).
Este c6digo muestra el shower (cascada de particulas generada a partir de una
interacci6n inicial) que hace que sea visible el transporte de radiacion.
c. Emfields: Contiene el paquete de subrutinas penfield.! el cual simula el
transporte de electrones/positrones bajo un campo rnaqnetico externo.
SIMULACION MONTE CARLO
d. Tables: Contiene el programa tables.f el cual lee datos de materiales y genera
tablas con los datos de interacci6n (secciones eficaces, camino libre medio,
rangos) y los script de gnuplot que grafican las cantidades mas relevantes
como funci6n de la energia. EI programa tablex.exe tarnbien calcula valores
interpolados de estas cantidades a energias especificas.
3.1.4.MAINS
Contiene ejemplos de programas principales en 3 subdirectorios:
a. Penslab: Contiene el programa principal penslab.f para el transporte de
particulas en un slab con ejemplos correspondientes.
b. Pencyl: Contiene el programa principal pencyl.f para transporte de particulas
en estructuras cilindricas, con ejemplos correspondientes
c. Penmain: Contiene un programa principal qenerico penmain.f para el
transporte de particulas en geometrias regulares
Los archivos ejecutables de los c6digos PENSLAB, PENCYL Y PENMAIN se obtienen
compilando y adjuntando los siguientes conjuntos de c6digo fuente:
PENSLAB: PENSLAB.F, PENELOPE.F Y TIMER.F
PENCYL: PENCIL.F, PENELOPE.F, PENVARED.F Y TIMER.F
PENMAIN: F, PENELOPE.F, PENGEOM.F Y TIMER.F
La simulaci6n de los programas es realizada en lenguaje Fortran?? de esta manera se
puede correr en cualquier computador.
3.2. Funcionamiento del C6digo PENELOPE
La parte principal de la simulaci6n se hace por medio del paquete de subrutinas de
PENELOPE que realiza la simulaci6n de haces de electrones y fotones, que son
consideradas replicas de los medios reales de varias composiciones. Historias de los
fotones se simulan en detalle, mientras que las trayectorias de los electrones y positrones
SIMULACION MONTE CARLO
se calculan con el procedimiento combinado que se explic6 en la secci6n 2.4. Las
particulas secundarias emitidas con energia inicial mayor que la energia de absorci6n son
almacenadas y simuladas despues de la finalizaci6n de cada trayectoria primaria. Las
particulas secundarias son producidas en interacciones directas (colisiones inelasticas
fuertes, emisi6n Bremsstrahlung fuerte, aniquilaci6n de positrones, dispersi6n compton,
absorci6n fotoelectrica y producci6n de pares) y como radiaci6n fiuorescente (rayos X
caracteristicos y electrones Auge). PENELOPE simula la radiaci6n fiuorescente que
resulta de las vacancias producidas en las capa K y la sub-capa L por absorci6n
fotoelectrica y dispersi6n Compton de fotones y por impacto electr6n/positr6n. La
relajaci6n de estas vacancias alcanza hasta que las capas K y L son lIenadas, esto es
hasta que las vacancias han migrado aMy otras capas mas externas.
Siendo PENELOPE un paquete de sub-rutina que no opera por el mismo, es necesario
que el usuario edite un programa principal (MAIN) que coordine la simulaci6n para una
finalidad especifica. Este programa debe controlar la simulaci6n de historias simuladas
por el c6digo PENELOPE y mantener las cantidades de interes. Es cierto que PENELOPE
efectua la parte mas larga del trabajo de simulaci6n, pero el usuario debe escribir su
propio programa, con geometrias arbitrarias, magnitudes y cantidades de interes.
La Figura 13 muestra una estructura de archivos necesaria para una simulaci6n usando el
c6digo PENELOPE, los archivos en letras rnayusculas forman parte del paquete
PENELOPE y los que estan elletra cursiva deben ser usados 0creados por el usuario. En
negrilla aparece el archive de salida generado por la simulacion. EI cuadra superior de la
figura muestra los archivos necesarios para la construcci6n del archivo ejecutable que
inicia y controla la simulaci6n. Por 10 tanto el archivo main.exe necesita de la informaci6n
de entrada contenida en los archivos emph entrada. in, geometria.geo y material.mat, para
que la simulaci6n ocurra y sea creado el archivo de salida salida.dat como la parte inferior
de la figura.
SIMULACION MONTE CARLO
mevi!
+
PENELOPE.~
PENGEOMF
TlMERF
comp;JaciiJn~ __ ~_
..... I rnain.exe I
+
stmotecton
..... j salida. d3t I
mallJ.exe
entrada.in
geomelria.geo
maler/a!.mal
Figura 13. Estructura de archtvos para la simulacion del codiqc PENELOPE. Arriba crcacton del archivo ejecutabte,
Abajo-archivcs para la stmutecton
3.3. Base de datos y archivo de datos de materiales
PENELOPE liene la informacion necesaria sobre las canlidades de interes para cada
material (propiedades fisicas, secciones eficaces de interaccion, datos de relajacion.
elc...) del archivo de datos de materiales. Este archivo es creado por medio del programa
auxiliar MATERIAL, que exlrae los datos de interaccion atornica de la base de datos. La
informacion basica sobre materiales arbitrarios, pueden ser realizadas por el usuario,
habiendo un conjunto de 279 materiales el programa MATERIAL toma esta informacion
directamente desde el archivo PSCOMPOS.TAB.
Para compuestos y mezclas se usa una aproximacion, donde la seccion eficaz molecular
es la suma de las secciones eficaces atornicas balanceadas por el indice estequiornetrico
de los elementos. Uniones y mezclas son traladas como compuestos. con indices
estequiornetricos iguales 0 proporcionales a la concentracion porcentual de atornos de
cada elemento. Para simular estrucluras qeornetncas con varios materiales, el programa
MATERIAL debe correrse para cada material y los archives de salida deben ser copiados
en un unico archive
SIMULACION MONTE CARLO
3.4. Estructure del c6digo de usuerio (Program a MAIN)
PENELOPE debe ser complementado con un codiqo de usuario MAIN que controla la
evolucion de eventos simulados, almacena las cantidades de interes y calcula los valores
medias al final de la simulacion. La conexion entre PENELOPE y el programa principal
MAIN es realizada a traves de un bloque cornun:
COMMONITRACK/E,X,Y,Z,U,V,W,WGHT,KPAR,IBODY,MAT,ILB(5), que contienen las
siguientes variables de estado de la particula.
KPAR: Tipo de particula (1: electron; 2 teton, 3 positron)
E: Energia de la particula (cinetica para electrones y positrones) eV
X,Y,Z: Coordenadas de posicion (cm)
U,V,W: cosenos directores de movimiento
WGHT: Almacena el peso asociado a la particula cuando se usa reduccion de
varianza
IBODY: Identifica diferentes cuerpos y materiales con geometrias complejas.
MAT: Material donde se mueve la particula (un cuerpo identificado en
IBODY).
ILB(5): Vector auxiliar con 5 indices que indican el origen de la particula cuando esta
es secundaria. Es importante la consideracion de contribuciones parciales de
particulas para un proceso dado
Una particula que se mueve en un material M se asume que es absorbida cuando su
energia sea menor que un valor EABS (KPAR,M) especificado par el usuario. EI algoritmo
de transporte para electrones y positrones en cada material M es controlado par los
siguientes parametres de simulacion:
SIMULACION MONTE CARLO
C1 (M): Deftexi6n angular media, producida por dispersi6n elastica multiple a 10
largo del camino libre medio entre eventos elasticos fuertes consecutivos. C1(M)
debe estar en el orden de 0.05; su maximo valor permitido es 0.2
C2 (M): Perdida fraccional media de energia entre eventos elasticos fuertes
conseeutivos. Usualmente un valor de C2 de 0.05 es adecuado hasta un valor
maximo permitido de 0.2

WCC: Energia inelastica de corte Wcc en eV, para eolisiones fuertes.

WCR (M): Energia de corte Wce en eV para emisiones de radiaci6n de frenado


fuertes.
Estos parametros determinan la exactitud y velocidad de la sirnulacion. Para garantizar
exactitud C1(M) y C2(M) deben tener valores pequerios (del orden de 0.01). Con valores
mayores de estas variables, la simulaei6n es mas rapida pero disminuye la exactitud. Las
energias de corte WCC(M) y WCR(M) influencian principalmente la distribuci6n de
energia sirnulada. La simulaci6n es mas rapida con valores de energia de corte mayores,
si estos valores se haeen mas grandes, la distribuci6n de energia se vera distorsionada.
En la practica las distribuciones de energia no varian para diferentes valores de WCC(M)
y WCR(M), cuando estos son menores que el incremento de energia usado en la
distribucion. Asi, Ie resoluei6n de energia deseada determina el valor maximo permitido
de energias de corte.
EI paquete de sirnulacion se inicia desde el programa MAIN can el comando:
CALL PEINIT (EPMAX,NMAT,IRD,IWR,INFO)
La subrutina PEINIT lee los archives de datos de diferentes materiales, avala las
propiedades de dispersion relevantes y prepara las tablas de cantidades dependientes de
energia que son usadas durante la sirnulacion. Los argumentos de entrada son:
EPMAX: Energia maxima de las particulas sirnuladas.
SIMULACION MONTE CARLO
NMAT: Nurnero de los diferentes materiales (menor 0igual a MAXMAT).
IRO: Unidad de entrada de datos.
IWR: Unidad de salida de datos.
INFO: Oetermina la cantidad de informacion que es escrita es la unidad de salida.
La subrutina PEINIT necesita tarnbien de energias de absorcion EABS (KPAR,M) Y de los
parametres de simulacion C1(M), c2(M) ,WCC(M) y WCR(M)Se puede entregar
diferentes valores de estos parametres para diferentes materiales, 0 se puede aumentar
las velocidades de simulaci6n en regiones de menor interes. Esta informacion se
introduce en la subrutina PEINIT a traves del bloque cornun
COMMON/CSIMPNEABS (3,MAXMAT),
WCC(MAXMAT),WCR(MAXMAT)
C1(MAXMAT), C2(MAXMAT),
EI c6digo PENELOPE es estructurado de tal manera que el camino de una particula es
generado como una secuencia de segmentos de caminos . AI final de cada segmento, la
particula sufre una mteraccion con el medio donde pierde su energia, cambia su direccion
de movimiento y en ciertos casos produce particulas secundarias. Fijar la simulacion de
electrones y fotones se hace lIamando las siguientes subrutinas:
CLEANS (OS MAX, OS): Inicia el stock secunda rio
START: Inicia los parametros de la particula. Debe ser lIamada siempre antes de
iniclar una sirnulacion de un camino (primario 0 secundario) 0 antes de que este
atraviese una interface. Solo funciona para electrones y positrones, en fotones esta
subrutina no tiene efecto, sin embargo es aconsejable Ilamar START para cualquier
clase de particula. Asi esta chequea si la energia se encuentra dentro del range
esperado, y puede asi, ayudar a detectar bugs en el programa principal
J UMP (OS MAX, OS: Oetermina el segmento longitud del camino hasta la siguiente
interaccion.
SIMULACION MONTE CARLO

KNOCK (DE, ICOl): Simula un evento de interaccion. Calcula la nueva energia y


direcci6n de movimiento despues de la interaccion y almacena el estado inicial de las
particulas secundarias cuando son generadas. Sus argurnentos de salida son:
DE: Deposita la energia en el curso del evento
ICOL: Clase de evento que ha sido simulado de acuerdo a las convenciones que se
muestran en la siguiente tabla:
l eDL electrons (KPAR=l) photons (KPAR=2) positrons (KPAR=3)
1 artificial soft event coherent (flyleigh) artificial soft ovcut
(random hinge) scattering (random hi nge)
2 hard elastic incoherent (Compton) hard elastic
collision sea tteri ng collision
3 hard inelastic photoelectric hard inelastic
collision absorption collision
4 liard ~)rcmsstrahlung elect.ron- positron hard bremsstrahlung
emission pair production CIl1JE.<:;,on
5 inner-shell impact inner-shell irnpact
1onisation ionisation
6 annihilation
7 delta interaction delta interaction delta. interaction
8 auxiliary iuteraction auxiliary interaction auxiliary interaction
SECPAR (LEFT): establece el estado inicial de la particula secundaria y es removida a un
estado secunda rio. EI valor de salida LEFT es un nurnero de particulas secundarias que
permanecen en el estado al momento de la lIamada.
STORES (E,X,Y,Z,U,V,W,WGHT,KPAR,ILB): Almacenan la particulas acumuladas en el
estado secunda rio. la secuencia de lIamadas para generar un camino aleatorio es
independiente del tipo de particula que esta siendo simulada. la simulaci6n del transporte
de radiaci6n en PENELOPE se esquematiza en la Figura 12, e inicia aillamar al archivo
PEINIT para dar inicio a PENELOPE. Se genera una nueva particula y para el trasporte
de la misma se siguen los siguientes pasos:
SIMULACION M ONTE CARLO
Se determina el estado inicial de la partlcula asumiendo valares de las variables de
estado KPAR, E, posici6n f =( x , y, z ) y la direcci6n de movimiento cI =(/I, v, w ) . Se
especifica el cuerpo 0 material donde la particula se mueve a traves de IBODY y MAT,
respeclivamente. Aqui tarnbien se pueden definir los valores de WGHT e ILB(5)
Para inicializar el estado secunda rio se llama CLEANS
Para iniciar los parametres de la partlcula se llama START
Para determinar la longitud DS del pr6ximo segmento del camino, DS nunca excedera et
valor de entrada DSMAX, se llama J UMP (DSMAX,MS)
Se calcula la posici6n del pr6ximo evento de la siguiente manera:
Si en la trayectoria ha tocado la interface, la particula para donde la encuentra y
disminuye la longitud de DS
Para un nuevo material (detras de la interface) se redefinen las variables IBODY y MAT.
Cuando la particula escapa del sistema. la slmulaci6n del camino termina, se incrementa
el contador y se sigue a! paso 7
regresa al paso 3.
Para simular el siguiente evento se llama KNOCK (DE,ICOl)
Si la energla es menor que EABS (KPAR, MAT), se finaliza la trayectoria, se incrementa
el contador de la simulaci6n y va al paso 7
Se regresa al paso 4
Para comenzar la trayectoria de una particula secundaria (esta particula es
automaticarnente movida del stock), llama SEC PAR (lEFT)
Si lEFTO vuelve al paso 3. ael estado inicial de la particula y se ha completado.
SIMULACION MONTE CARLO
Si LEFT=O la simulaci6n mostrada producida por la particula primaria es completa. Vaya a
1 para generar una particula primaria (0 la simulaci6n termina despues de considerar un
nurnero suficiente de caminos) .. r--:-c----===,,--,---
Llama PEII\lIT( ..) INICIA PEI~ELOPE
N=O
f------------+L-'N'J '=:N~+~1~ SIMULA UNA NUEVA PARTICULI\
Figura 14.
ESTADO INICIAL
KPA.R,E , d r=(X,Y,Z), (U.v.VV)
VVGHT,IBODY,MAT,ILB
Llama CLEANS
SI
,--<=- En el camino atraviasa una interfas
Modif lca OS para f inalizar 0
pasar la primera interf ase
A
rf-r+DSd d
I r f-r+DSd d
SI
Pas0?>------,
Cambia a un nuevo cuerpo
SI
Llama SECPAR(LEFT)
SIMULACION MONTE CARLO
Notemos que las sub-rutinas J UMP y KNOCK no alteran las coordenadas de las
particulas; las posiciones de eventos sucesivos deben estar seguidas por el programa
MAIN (simplemente efectuando cambio de longitud OS en la direcci6n de movimiento
despues de cada lIamada de J UMP. La energia de la particula es autornaticarnente
reducida por la sub-rutina KNOCK despues de generar la perdida de energia desde una
distribuci6n de probabilidad relevante. KNOCK tarnbien modifica la direcci6n de
movimiento de acuerdo con los anqulos de dispersi6n del evento simulado. De esta
manera, la salida de KNOCK, los valores de energia E, posicion r =(X,Y,Z) Y direcci6n de
movimiento d = (U,V,W) definen el estado de la particula despues del evento de
interacci6n.
Es responsabilidad del usuario programador evitar Ilamar las subrutinas J UMP y KNOCK
con energias fuera del intervalo (EABS, (KPAR,M),EMAX). Esto puede causar
interpolaciones err6neas de las secciones eficaces. La simulaci6n es cancelada si la
condici6n EABS(KPAR),M) <EMAX no se cumple al inicio de un camino primario 0
secunda rio (siempre que la subrutina STAR es lIamada al inicio del camino).
3.5. REDUCC/ON DE VAR/ANZA
En situaciones practicas puede ocurrir que una cantidad de interes Q tenga una gran
incertidumbre estadistica G
q
Esto puede ocurrir cuando el nurnero de caminos simulados
es pequeno. Una estrategia simple para reducir la incertidumbre estadistica es aumentar el
nurnero de eventos N, sin aumentar mas tiempo en el calculo computacional. Esto se logra
usando el rnetodo de reducci6n de varianza. Una simulaci6n de rayos X por incidencia de
electrones con energia fija sobre un s6lido, es un ejemplo de una simulaci6n que demanda
un tiempo prolongado de calculo y que es afectado por incertidumbres estadisticas
relativamente grandes. Esto se deriva del hecho de que los procesos de producci6n de
rayos X ocurren con probabilidades extremamente pequerias. EI c6digo PENELOPE tiene
una eficiencia de simulaci6n de espectros de rayos X mejorada con el uso de un rnetodo
de reducci6n de varianza lIamado de "lnteracci6n Forzada". Esta tecnica consiste en
SIMULACION MONTE CARLO
aumentar artificialmente la secci6n eficaz de choque total por un factor t, disminuyendo el
camino Iibre medio en los procesos de interes. Esta alteraci6n equivale a aumentar la
probabilidad de interacci6n por unidad de camino de una particula incidente. Para no
alterar con esto los parametres de la sirnulacion, se asume un peso estadlstico de 1/f sobre
el proceso considerado al finalizar la simulacion. Este rnetodo no altera el espectro
simulado y definitivamente disminuye la Incertidumbre estadistica de los resultados.
EI conjunto del sub-rutinas PENELOPE.F trata de ejecutar simulaciones en forma analoqa
ala situaci6n real, de esta manera, no incluye ninqun metodo de reducci6n de varianza. EL
archivo PENVARED.F contiene sub-rutinas para realizar la reducci6n de varianza VSPLlT,
VKILL (ruleta rusa), e interacci6n de forcejeo (J UMP KNOCK) en una forma autornatica.