código dianacódigo dianaricabib.cab.cnea.gov.ar/3/1/1mochi - ignacio .pdf · 2010. 4. 21. ·...

98
TRABAJO ESPECIAL CARRERA DE INGENIERÍA NUCLEAR Código DIANA Código DIANA Código DIANA Código DIANA Diseño e Implementación de un Código de Cálculo de Núcleo Analítico por Difusión a Dos Grupos y Dos Zonas Ignacio Mochi Ignacio Mochi Ignacio Mochi Ignacio Mochi Director Dr. Pablo Florido Dr. Pablo Florido Dr. Pablo Florido Dr. Pablo Florido Codirector Ing. Daniel Brasnarof Ing. Daniel Brasnarof Ing. Daniel Brasnarof Ing. Daniel Brasnarof Instituto Balseiro Comisión Nacional de Energía Atómica Universidad Nacional de Cuyo Junio 2005

Upload: others

Post on 08-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

TRABAJO ESPECIAL CARRERA DE INGENIERÍA NUCLEAR

Código DIANACódigo DIANACódigo DIANACódigo DIANA Diseño e Implementación de un Código de Cálculo de Núcleo

Analítico por Difusión a Dos Grupos y Dos Zonas

Ignacio MochiIgnacio MochiIgnacio MochiIgnacio Mochi

Director Dr. Pablo FloridoDr. Pablo FloridoDr. Pablo FloridoDr. Pablo Florido

Codirector Ing. Daniel BrasnarofIng. Daniel BrasnarofIng. Daniel BrasnarofIng. Daniel Brasnarof

Instituto Balseiro Comisión Nacional de Energía Atómica

Universidad Nacional de Cuyo

Junio 2005

Page 2: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

A Valeria,Valeria,Valeria,Valeria, la persona que completa mi vida y hace que el lugar donde simplemente transcurre la espera de lo inevitable se convierta en un mundo donde los sueños se hacen realidad

Page 3: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Resumen

En la fase de diseño conceptual de reactores nucleares se

determinan los principales parámetros. Para ello es necesario contar con herramientas de cálculo versátiles que representen las principales interdependencias entre dichos parámetros. En el diseño de reactores nucleares innovativos este punto es de principal importancia.

Con el objeto de contar con una herramienta que asista al diseño conceptual de reactores innovativos se desarrolló e implementó un código de calculo neutrónico de núcleo analítico: DIANA (Diffusion Integral Analytic Neutron Analysis). Dicho código genera sus secciones eficaces para efectuar los cálculos requeridos mediante un esquema analítico de difusión a dos grupos y dos zonas a partir de un conjunto mínimo de datos (como ser las secciones eficaces microscópicas puntuales a 2200 m/s y pesadas

con espectro de fisión, factores de Wescott e Integrales Efectivas de

Resonancia). Tanto para calcular las secciones eficaces o parámetros de los núcleos, DIANA tiene en cuenta efectos de heterogeneidad que son incluidos a la hora de evaluar cada zona. Entre tales, podemos mencionar el factor de desventaja de cada grupo de energía.

DIANA fue implementado íntegramente con Programación

Orientada a Objetos utilizando el lenguaje C++, lo que permite una rápida expansión de capacidades (de ser necesario) y facilita la comprensión del código fuente.

El producto obtenido es un código versátil y fácil de utilizar, que permite realizar cálculos de núcleo con una cantidad mínima de datos. A su vez contiene las herramientas necesarias para la realización de diversos cálculos variacionales como la parametriza-ción de factores de multiplicación efectivos en función del radio del núcleo. La simplicidad del esquema de difusión facilita el segui-miento de los fenómenos involucrados, haciéndolo más favorable para el análisis y diseño de reactores cuya física no se encuentra dentro de los parámetros regulares de los reactores existentes. Estos motivos hacen de DIANA un buen candidato para el futuro análisis de reactores innovativos.

Page 4: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Abstract

The principal parameters of nuclear reactors are determined in the conceptual design stage. For that purpose, it is necessary to have flexible calculation tools that represent the principal dependencies of such parameters. This capability is of critical importance in the design of innovative nuclear reactors.

In order to have a proper tool that could assist the conceptual design of innovative nuclear reactors, we developed and implemented a neutronic core calculus code: DIANA (Diffusion Integral Analytic Neutron Analysis). To calculate the required parameters, this code generates its own cross sections using an analytic two group, two zones diffusion scheme based only on a minimal set of data (i.e. 2200 m/s and fission averaged microscopic

cross sections, Wescott factors and Effective Resonance Integrals). Both to calculate cross sections and core parameters, DIANA takes into account heterogeneity effects that are included when it evaluates each zone. Among them lays the disadvantage factor of each energy group.

DIANA was totally implemented through Object Oriented

Programming using C++ language. This eases source code understanding and would allow a quick expansion of its capabilities if needed.

The final product is a versatile and easy-to-use code that allows core calculations with a minimal amount of data. It also contains the required tools needed to perform many variational

calculations such as the parameterisation of effective multiplication factors for different radii of the core. The diffusion scheme’s simplicity allows an easy following of the involved phenomena, making DIANA the most suitable tool to design reactors whose physics lays beyond the parameters of present reactors. All this reasons make DIANA a good candidate for future innovative reactor analysis.

Page 5: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Agradecimientos

A la luz de mis ojos, ValeriaValeriaValeriaValeria, por el apoyo incondicional permanente en todas mis decisiones

A mis directores, Ingeniero Daniel BrasnarofIngeniero Daniel BrasnarofIngeniero Daniel BrasnarofIngeniero Daniel Brasnarof, y

Doctor Pablo FloridoDoctor Pablo FloridoDoctor Pablo FloridoDoctor Pablo Florido por los conocimientos transmitidos y la apertura de las puertas de la investigación y el desarrollo

Al personal de la Biblioteca Leo FalicovBiblioteca Leo FalicovBiblioteca Leo FalicovBiblioteca Leo Falicov por su

colaboración, sin la cual no habría sido posible el presente desarrollo

A mi prima, VerónicaVerónicaVerónicaVerónica, por ayudarme a dar los

primeros pasos hacia la ingeniería Y especialmente a mis padres, RaúlRaúlRaúlRaúl y RosaRosaRosaRosa, por el

impulso impartido y la constante motivación proporcionada

Page 6: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Índice Introducción ................................................................................... 1

Capítulo 1 Método de cálculo..................................................... 3 1.1 Radio crítico ..................................................................................................... 3

1.1.1 Cálculo radial............................................................................................ 6 1.1.2 Cálculo axial ........................................................................................... 10

1.2 Flujos neutrónicos espaciales ......................................................................... 12 1.3 Flujos neutrónicos medios .............................................................................. 14 1.4 Factores de multiplicación.............................................................................. 14

1.4.1 Factor de multiplicación infinito ............................................................ 14 1.4.2 Factor de multiplicación infinito térmico ............................................... 14 1.4.3 Factor de multiplicación infinito rápido ................................................. 15 1.4.4 Factor de multiplicación efectivo ........................................................... 15

1.5 Probabilidad de escape rápida ........................................................................ 15 1.6 Probabilidades de no-escape........................................................................... 16 1.7 Factor de fisión rápida .................................................................................... 16

Capítulo 2 Determinación de las constantes multi-grupo ........ 19 2.1 Constantes del grupo térmico ......................................................................... 21 2.2 Constantes del grupo rápido ........................................................................... 25 2.3 Correcciones por heterogeneidad ................................................................... 28

Capítulo 3 Código DIANA....................................................... 31 3.1 Descripción general ........................................................................................ 31 3.2 Introducción a la estructura de objetos ........................................................... 34 3.3 Interfaz e interacción de los objetos ............................................................... 35

3.3.1 Análisis del archivo Help.h .................................................................... 36 3.3.2 Análisis del archivo Error.h.................................................................... 37 3.3.3 Análisis del archivo Cross_Sections.h ................................................... 38 3.3.4 Análisis del archivo CS_Data.h.............................................................. 40 3.3.5 Análisis del archivo Calculo.h................................................................ 44 3.3.6 Análisis del archivo C_REsferico.h........................................................ 46 3.3.7 Análisis del archivo C_RCilindrico.h..................................................... 47

3.4 Confección del archivo de entrada ................................................................. 48 3.4.1 Comandos ............................................................................................... 48

3.5 Recomendaciones y tratamiento de errores .................................................... 58

Capítulo 4 Verificación de funcionamiento de DIANA........... 60 4.1.1 Cálculo de un núcleo de MTR................................................................ 60 4.1.2 Cálculo de factor de multiplicación infinito ........................................... 69 4.1.3 Cálculo de Masas Críticas de Uranio 93% con distintos moderadores .. 71

Capítulo 5 Evaluación económica del desarrollo ..................... 76

Capítulo 6 Conclusiones ........................................................... 81

Índice de Figuras .......................................................................... 83

Índice de Tablas ........................................................................... 85

Referencias ................................................................................... 86

Page 7: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

1

El cálculo de reactores por métodos numéricos a dos grupos o más suele requerir

una extensa base de datos conteniendo las secciones eficaces de cada grupo. Un claro ejemplo de dicha metodología es el código WIMS. Este código de cálculo de celda incluye una biblioteca de secciones eficaces a 69 grupos. La misma posee datos de los materiales comúnmente utilizados en el desarrollo de reactores PWR, BWR, GCR y PHWR. Esta biblioteca está ajustada para que los cálculos del código representen los conocimientos físicos adquiridos de dichos reactores como producto de más de 50 años de experiencia. De esta manera se obtienen diferencias de menos de 1000 pcm en coeficientes de multiplicación efectivos.

Códigos de cálculo de este estilo presentan dos inconvenientes principales para el análisis en tempranas etapas de diseño de reactores avanzados:

• Cuando el núcleo que se desea calcular se aleja de los parámetros típicos de

los reactores térmicos convencionales, estos códigos no suelen responder adecuadamente, llegando en algunos casos a generar parámetros que no representan la realidad física del problema, obteniendo en algunos casos flujos neutrónicos negativos.

• Al estar basados en esquemas multi-grupo grandes, no puede pedírsele al código que realice ningún cálculo a menos que todos los materiales a utilizar estén incluidos en la biblioteca de secciones eficaces o bien, se le ingrese la información necesaria (en el caso del WIMS, las secciones eficaces para cada uno de los 69 grupos, sus integrales de resonancia y sus leyes de scattering térmico). Este factor hace que estas herramientas sean poco versátiles para evaluar materiales poco comunes, dado que si no son muy conocidas sus secciones eficaces en función de la energía de los neutrones, no pueden obtenerse fácilmente la información necesaria para realizar un simple cálculo de factibilidad.

Los reactores avanzados emplean actualmente materiales que se utilizan desde

hace más de 50 años en la industria nuclear. Por ello, sus secciones eficaces y comportamiento se encuentra medido y calculado con bastante precisión. Un excelente ejemplo de estos materiales es el agua liviana. ¿Pero qué hacer si se quiere considerar la utilización de moderadores que no se han empleado en aplicaciones nucleares? La respuesta clásica a ésta pregunta es: Se condensan las secciones eficaces microscópicas

puntuales de los isótopos que componen los materiales involucrados a la cantidad de grupos solicitados por medio de cálculos de moderación y luego se crean las bibliotecas necesarias. Típicamente procedimientos como éste pueden llevar una semana, lo cual puede parecer poco para todo el procesamiento que esto requiere. El problema surge cuando se están probando distintos materiales para seleccionar cuales vale la pena considerar (cálculo a primer orden). En estos casos se puede efectuar el procedimiento de condensación y efectuar los cálculos correspondientes para clasificar el material. Si el material no cumple los requisitos deseados (típicamente relación costo - beneficio), éste debe ser descartado u probar con otro. Esto hace que las bibliotecas en las cuales se invirtió una semana de cálculo por ciclos iterativos con mediciones de secciones eficaces y de espectro se vuelvan obsoletas rápidamente.

Por estas razones se optó por la creación de un código de cálculo neutrónico de núcleo que utilizara un esquema analítico a dos zonas y dos grupos y medio que permitiera, a base de pocos datos (conocidos para la mayoría de los materiales y extraíbles de sencillas mediciones para los demás), evaluar los parámetros principales

Introducción

Page 8: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

2

de una determinada configuración de núcleo. Al ser un modelo analítico, facilita el seguimiento de los fenómenos físicos involucrados, teniendo, de esta manera, una más profunda comprensión de la situación analizada.

Este código se llama DIANA (Diffusion Integral Analytic Neutron Analysis) y está programado íntegramente en C++ con estructura de objetos. Su presentación actual es en un cómodo paquete de instalación bajo la distribución Debian Sarge del sistema operativo Linux. Esta forma de instalación permite que los datos importantes del programa no puedan ser modificados por usuarios regulares al instalarse en directorios cuya modificación está restringida por el administrador (root) del sistema. Además la instalación permite que el código esté disponible para todos los usuarios del sistema.

El paquete incluye tres ejemplos de archivos de entrada (Intput) junto con sus salidas (Output) correspondientes, archivos con datos precargados de diversos isótopos y materiales y una guía rápida para construir los archivos de entrada que explica todos los comandos disponibles, sus modos de operación y correcta sintaxis.

Page 9: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Cap

ítu

lo

1

DIANA

Page 10: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

3

Capítulo 1 Método de cálculo

En función de los resultados que se busca obtener, es decir, poder realizar un análisis de sensibilidad de diversas variables de manera aproximada y veloz, se optó por un esquema analítico de difusión a dos zonas y dos grupos energéticos.

Si analizamos la ecuación de difusión de neutrones para este caso 1, tendremos:

Para el núcleo:

02211111111 =ΦΣ+ΦΣ+ΦΣ−∆Φ ffremD νχνχ Ecuación 1-1

01121122222222 =ΦΣ+ΦΣ+ΦΣ+ΦΣ−∆Φ sffremD νχνχ Ecuación 1-2

Para el reflector: 01111 =ΦΣ−∆Φ remD Ecuación 1-3

01122222 =ΦΣ+ΦΣ−∆Φ sremD Ecuación 1-4

Donde: iD es el coeficiente de difusión para neutrones del grupo i

iΦ es el flujo de neutrones del grupo i

remiΣ es la sección eficaz de remoción para neutrones del grupo i

ν es la cantidad promedio de neutrones que se obtienen como resultado de una fisión

iχ es la fracción de neutrones de fisión que nacen con energías dentro

del grupo i

fiΣ es la sección eficaz de fisión para neutrones del grupo i

sijΣ es la sección eficaz de scattering que transfiere neutrones del grupo i

al j ∆ es el Operador de Laplace.

Estas ecuaciones son simplemente balances de neutrones y deben aplicarse a cada volumen diferencial, es decir, que en general, todos los parámetros descritos anteriormente dependen de la posición analizada (a través del material que la compone y su temperatura) y del tiempo si consideramos quemado (es decir transmutación de elementos y fisión).

1.1 Radio crítico En nuestro caso particular, la geometría que se desea calcular es un cilindro homogéneo finito, es decir, que los flujos dependerán de la posición (expresada en coordenadas cilíndricas r-ϕ-z). Por lo tanto:

);;(

);;(2

);;(

zr

zrzr

ϕ

ϕϕ

Φ=Φ

∇=∆=∆

Page 11: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

4

Si asumimos que el problema posee simetría angular (es decir, que nada depende de ϕ) y que las variables pueden ser separadas de la siguiente manera 2:

2

2

2

2

);(2

);(

1

zrrrzrzr

∂+

∂+

∂=∇=∆

)()();( zrzr ΦΦ=Φ Ecuación 1-5

2

)(2

)(

)(

)(2

)(2

)(2 1

zrrr

z

r

r

z

r

z∂

Φ∂

Φ+

Φ∂

Φ+

Φ∂

Φ=Φ∇

2

)(2

)(

)(

)(2

)(2

)(

2 1111

zrrr

z

z

r

r

r

r ∂

Φ∂

Φ

+

Φ∂

Φ

+

Φ∂

Φ

=

Φ

Φ∇ Ecuación 1-6

y definimos a cantidad denominada Buckling geométrico como:

Φ

∆Φ−=

2

gB o bien 02

=Φ+∆Φ gB Ecuación 1-7

Se ve de esta expresión, que –Bg

2 es el auto-valor asociado a la auto-función Φ del Laplaciano. por lo tanto:

Φ∂

Φ

+

Φ∂

Φ

+

Φ∂

Φ

−=

Φ

∆Φ−=

2

)(2

)(

)(

)(2

)(2

)(

2 1111

zrrrB

z

z

r

r

r

r

g

Φ∂

Φ

Φ∂

Φ

+

Φ∂

Φ

−=2

)(2

)(

)(

)(2

)(2

)(

2 1111

zrrrB

z

z

r

r

r

r

g

2

)(

2

)(

2

zgrgg BBB += Ecuación 1-8

De esta forma, suponiendo que el reactor está crítico y sabiendo que la fracción de neutrones de fisión que nacen con energías dentro del grupo térmico es despreciable (χ1=1; χ2=0), las ecuaciones 1-1 y 1-2 quedan:

01

2211

2

1 =

Φ

ΦΣ+Σ+Σ−− ffremgBD νν Ecuación 1-9

02

1122

2

2 =

Φ

ΦΣ+Σ−− sremgBD Ecuación 1-10

Antes que nada hay que aclarar que la aproximación 1-5 es estrictamente válida

únicamente cuando uno de los dos términos de la ecuación 1-6 se reemplaza por su Buckling correspondiente (ecuación 1-8). Los efectos de suponer que las variables son separables en todo el rango de variación de ambas variables se verán en la sección 4.1.1.

Hecha esa aclaración, continuemos. A diferencia del caso de reactor desnudo, en el reflejado, no es constante la relación entre los flujos térmicos y rápidos en función de la posición.

Page 12: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

5

Por lo tanto, para hallar la nueva cantidad involucrada (Bg) para el núcleo definimos tres nuevas cantidades:

11

12

frem

n

DL

Σ−Σ

=

ν

2

22

2

rem

DL

Σ

=

2

2

11

12

rem

f

frem

snk

Σ

Σ

Σ−Σ

Σ=

ν

ν

Estas se denominan respectivamente: Longitud de difusión rápida modificada,

Longitud de difusión térmica y Factor de multiplicación infinito modificado. Ahora, operando matemáticamente las ecuaciones 1-9 y1-10:

( ) 2

11

2

1

221 Φ

Σ−Σ

Σ

=Φ×+

frem

f

gn BLν

ν

( ) 1

2

122

22

21 Φ

Σ

Σ=Φ×+

rem

sgBL

eliminando los flujos de neutrones Φ1 y Φ2:

( ) ( )2

12

11

222

2

2211

rem

s

frem

f

ggn BLBLΣ

Σ

Σ−Σ

Σ

=+×+

ν

ν

( ) ( )nggn kBLBL =+×+

22

2

2211

( ) 01112

2

2

2

2

2

2

22=

−−

++

LL

kB

LLB

n

ng

n

g

las raíces de Bg para esta ecuación son:

+

++

+−=

2

2

2

2

2

2

22

2

2

2 14

1111

2

1

LL

k

LLLL n

n

nn

µ Ecuación 1-11

+

+−

+−=−

2

2

2

2

2

2

22

2

2

2 14

1111

2

1

LL

k

LLLL n

n

nn

υ Ecuación 1-12

Como ambos valores son los auto valores de la ecuación 1-7, tendremos:

01111 2

2

)(2

)(

)(

)(2

)(2

)(

=+

Φ∂

Φ

+

Φ∂

Φ

+

Φ∂

Φ

µ

zrrr

z

z

r

r

r

r

Ecuación 1-13

01111 2

2

)(2

)(

)(

)(2

)(2

)(

=−

Φ∂

Φ

+

Φ∂

Φ

+

Φ∂

Φ

υ

zrrr

z

z

r

r

r

r

Ecuación 1-14

Ahora debemos escoger una de las dos dimensiones y calcular la otra, dado que hay infinitas combinaciones de radios y alturas que producen un reactor crítico (o con el mismo factor de multiplicación efectivo). En el caso más general, se fija la altura del

Page 13: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

6

reactor y se calcula la cantidad de elementos combustibles que son necesarios para que el reactor alcance la criticidad o un determinado factor de multiplicación efectivo. Esto se da así ya que es más sencillo agregar elementos combustibles que modificar la longitud de los mismos. Por lo tanto supondremos que conocemos la longitud de los elementos combustibles y calcularemos el radio del arreglo crítico. Para esto calcularemos el radio crítico para un reactor de altura fija por dos caminos. El primero consiste en considerar un cilindro infinito con las fugas modificadas a través del Buckling para dar cuenta de que no es infinito, agregándole a su vez lo que le quitamos por estar reflejado, y calcular el radio con las ecuaciones correspondientes a la dimensión radial. El segundo consiste en calcular la altura del slab infinito corrigiendo nuevamente por fugas a través del Buckling, modificando el radio hasta que la altura calculada sea la de nuestros elementos combustibles.

1.1.1 Cálculo radial

En el caso de tener el reactor desnudo en la dirección axial podemos proceder

como lo haríamos con un slab y la auto función de la ecuación 1-7 para un slab (con el sistema de coordenadas centrado en el origen) es: )cos( 0)( zAz γ=Φ ; con 00 / Hπγ =

δ20 += HH

Donde H es la altura de dicho slab y δ es el ahorro por reflector, es decir, lo que no es necesario agregar de núcleo para obtener criticidad gracias al reflector (este valor lo calculamos con el reactor esférico crítico análogo). Por lo tanto, las ecuaciones 1-13 y 1-14 se resumen a:

0111 22

0

)(

)(2

)(2

)(

=+−

Φ∂

Φ

+

Φ∂

Φ

µγ

rrr

r

r

r

r

0111 22

0

)(

)(2

)(2

)(

=−−

Φ∂

Φ

+

Φ∂

Φ

υγ

rrr

r

r

r

r

O bien:

0111 2)(

)(2

)(2

)(

=+

Φ∂

Φ

+

Φ∂

Φ

µ

rrr

r

r

r

r

0111 2)(

)(2

)(2

)(

=−

Φ∂

Φ

+

Φ∂

Φ

υ

rrr

r

r

r

r

Con:

2

022

γµµ −=

2

022

γυυ +=

Page 14: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

7

Para el reflector kn=0 porque Σf2=0, entonces:

2

2

22

2

2

2

2

2

22

2

2

2

2

2

2

421114

11

LLLLLLLL

k

LL nnnnn

n

n

−+

+

=

−+

+

2

2

2

2

2

2

22

2

2

2

2

2

2

21114

11

LLLLLL

k

LL nnnn

n

n

+

=

−+

+

2

2

2

22

2

2

2

2

2

2

1114

11

+−=

−+

+

LLLL

k

LL nn

n

n

Por lo tanto, los auto valores de la ecuación 1-7 para el reflector son:

+−+

+−=−

2

2

2

22

2

2

2

1

1111

2

1

LLLL nn

κ

2

2

1

1

nL−=−κ

nL

11 =κ Ecuación 1-15

+−−

+−=−

2

2

2

22

2

2

2

2

1111

2

1

LLLL nn

κ

2

2

2

2

1

L−=−κ

2

2

1

L=κ Ecuación 1-16

Por lo tanto, en el reflector, debemos resolver las siguientes ecuaciones de onda:

01

2

11 =Φ−∆Φ κ Ecuación 1-17

02

2

22 =Φ−∆Φ κ Ecuación 1-18

Procediendo de forma análoga al desarrollo anterior:

01111 2

12

)(2

)(

)(

)(2

)(2

)(

=−

Φ∂

Φ

+

Φ∂

Φ

+

Φ∂

Φ

κ

zrrr

z

z

r

r

r

r

01111 2

22

)(2

)(

)(

)(2

)(2

)(

=−

Φ∂

Φ

+

Φ∂

Φ

+

Φ∂

Φ

κ

zrrr

z

z

r

r

r

r

0111 2

1

2

0

)(

)(2

)(2

)(

=−−

Φ∂

Φ

+

Φ∂

Φ

κγ

rrr

r

r

r

r

Page 15: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

8

0111 2

2

2

0

)(

)(2

)(2

)(

=−−

Φ∂

Φ

+

Φ∂

Φ

κγ

rrr

r

r

r

r

0111 2

1

)(

)(2

)(2

)(

=−

Φ∂

Φ

+

Φ∂

Φ

κ

rrr

r

r

r

r

Ecuación 1-19

0111 2

2

)(

)(2

)(2

)(

=−

Φ∂

Φ

+

Φ∂

Φ

κ

rrr

r

r

r

r

Ecuación 1-20

Con:

2

0

2

1

2

1 γκκ +=

2

0

2

2

2

2 γκκ +=

En este caso, las soluciones radiales del flujo neutrónico son: Para el núcleo:

)(0)(0)(1 rrr CIAJυµ

+=Φ

)(02)(01)(2 rrr CISAJSυµ

+=Φ

Para el reflector:

[ ]

[ ]

−=Φ

′+

′+

)(0

)(0

)(0

)(0)(1 1

1

1

1 r

TR

TR

rr II

KKF

κ

κ

κ

κ

[ ]

[ ]

[ ]

[ ]

−+

−=Φ

′+

′+

′+

′+

)(0

)(0

)(0

)(0)(0

)(0

)(0

)(03)(2 2

2

2

21

1

1

1 r

TR

TR

rr

TR

TR

rr II

KKGI

I

KKFS

κ

κ

κ

κκ

κ

κ

κ

Con:

2

22

111

µDS

a

arem

Σ−Σ= Ecuación 1-21

222

112

υDS

a

arem

−Σ

Σ−Σ= Ecuación 1-22

Σ−Σ=

2

1

2

2

2

113

11

LLD

S arem Ecuación 1-23

Donde S1, S2 y S3 son los coeficientes de acoplamiento de la solución principal y

la secundaria para el núcleo y la principal para el reflector respectivamente. Por lo tanto, el cálculo de S1 y S2 debe realizarse con las constantes del núcleo, pero el cálculo de S3 con las del reflector. R es el radio del núcleo y T´ es el espesor del reflector más la longitud de extrapolación (que a su vez puede ser aproximada como 0.71 por la longitud de transporte).

Page 16: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

9

Si ahora aplicamos las condiciones de contorno, es decir, continuidad de corriente y flujo a través de la interfaz entre el núcleo y el reflector y flujo nulo fuera del reflector, nos queda el siguiente determinante:

00

1

0111

23221

1

321=

−−

−−

δργρβα

γρβα

SSS

SSS

Donde:

)(

)(

1

11

nucleoD

reflectorD=ρ Ecuación 1-24

)(

)(

2

22

nucleoD

reflectorD=ρ Ecuación 1-25

)(0

)(1

)(0

)(0

R

R

R

R

J

J

J

R

J

µ

µ

µ

µ

µα −=∂

= Ecuación 1-26

)(0

)(1

)(0

)(0

R

R

R

R

I

I

I

R

I

υ

υ

υ

υ

υβ =∂

= Ecuación 1-27

[ ]

[ ]

[ ]

[ ]

−∂

=

′+

′+

′+

′+

)(0

)(0

)(0

)(0

)(0

)(0

)(0

)(0

1

1

1

1

1

1

1

1

r

TR

TR

r

r

TR

TR

r

II

KK

R

II

KK

κ

κ

κ

κ

κ

κ

κ

κ

γ

[ ]

[ ]

[ ]

[ ]

+

=

′+

′+

′+

′+

)(0

)(0

)(0

)(0

)(1

)(0

)(0

)(1

1

1

1

1

1

1

1

1

1

r

TR

TR

r

r

TR

TR

r

II

KK

II

KK

κ

κ

κ

κ

κ

κ

κ

κ

κγ Ecuación 1-28

[ ]

[ ]

[ ]

[ ]

−∂

=

′+

′+

′+

′+

)(0

)(0

)(0

)(0

)(0

)(0

)(0

)(0

2

2

2

2

2

2

2

2

r

TR

TR

r

r

TR

TR

r

II

KK

R

II

KK

κ

κ

κ

κ

κ

κ

κ

κ

δ

Page 17: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

10

[ ]

[ ]

[ ]

[ ]

+

=

′+

′+

′+

′+

)(0

)(0

)(0

)(0

)(1

)(0

)(0

)(1

2

2

2

2

2

2

2

2

2

r

TR

TR

r

r

TR

TR

r

II

KK

II

KK

κ

κ

κ

κ

κ

κ

κ

κ

κδ Ecuación 1-29

Este determinante es nulo únicamente para:

)()()(

)()()(

322211

32221112

γδρδρββγρ

γδβρδρβγρβγρδρα

−+−+−

−+−+−=

SSS

SSS Ecuación 1-30

Esta última es la ecuación de criticidad a dos grupos y dos zonas y expresa la relación entre el radio crítico del reactor y las propiedades de los materiales que lo componen. Es decir que es la ecuación a través de la cual estableceremos el radio crítico del núcleo y, por medio del reactor crítico asociado en k, también el factor de multiplicación efectivo. Para el cilindro, la ecuación es trascendente, por lo tanto, hay que resolverla encontrando la intersección entre el miembro derecho e izquierdo numéricamente sabiendo donde buscar. Es decir que debemos conocer aproximadamente el radio para no dar con una solución indeseada. En nuestro caso el valor inicial de la búsqueda será sin duda cercano al radio del reactor crítico cilíndrico desnudo.

1.1.2 Cálculo axial

En el caso de tener el reactor desnudo en la dirección radial podemos proceder

como lo haríamos con un cilindro infinito y la auto función de la ecuación 1-7 para esta geometría (con el sistema de coordenadas centrado en el origen) es: )(0)( 0rr AJ

α=Φ ; con 000 / Rj=α

δ+= RR0

Donde R es el radio de dicho cilindro y δ es el ahorro por reflector. Por lo tanto, las ecuaciones 1-13 y 1-14 se resumen a:

01 2

2

)(2

)(

=+

Φ∂

Φ

µ

z

z

z

01 2

2

)(2

)(

=−

Φ∂

Φ

υ

z

z

z

Con los Bucklings redefinidos:

2

022

αµµ −=

2

022

αυυ +=

Page 18: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

11

De forma análoga, para el reflector:

01 2

12

)(2

)(

=+

Φ∂

Φ

κ

z

z

z

01 2

22

)(2

)(

=+

Φ∂

Φ

κ

z

z

z

Donde:

2

0

2

1

2

1 ακκ +=

2

0

2

2

2

2 ακκ +=

Con κ1 y κ2 definidos en las ecuaciones 1-15 y 1-16 respectivamente.

Las soluciones axiales del flujo neutrónico son: Para el núcleo:

)cosh()cos()(1 zCzAz υµ +=Φ

)cosh()cos( 21)(2 zCSzASz υµ +=Φ

Para el reflector:

−′+=Φ zT

HFz

2sinh 1)(1 κ

−′++

−′+=Φ zT

HGzT

HFSz

2sinh

2sinh 213)(2 κκ

A continuación aplicamos la ecuación 1-30 (de criticidad) y encontramos el valor de radio del núcleo para el cual la altura del mismo es de los elementos combustibles. Con este procedimiento obtenemos dos radios: un máximo y un mínimo para el radio crítico. Esto nos brinda un valor medio y un error, que es exclusivamente del método utilizado para encontrar el radio que surge de un análisis del reactor por el método de difusión. El método de difusión posee hipótesis de aplicación que al no cumplirse rigurosamente nos agregará un error de cálculo que no es tan fácilmente calculable. La manera de estimar este error es, como en todos los códigos de cálculo, haciendo validaciones con casos experimentales similares al cual que uno desea aplicar el código. Una vez encontrado el radio crítico se puede proceder al cálculo de los parámetros adicionales como probabilidad de escape a las resonancias; factores de

multiplicación infinito, efectivo térmico, efectivo rápido y efectivo total; factor de fisión

rápida; flujos térmico y rápido medios; relación de flujos medios térmico y rápido; probabilidades de no-escape rápida y térmica.

Page 19: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

12

1.2 Flujos neutrónicos espaciales Ahora debemos saber como calcular los flujos neutrónicos en el núcleo a partir

de los cálculos hechos en la sección 1.1. De la sección 1.1.1 podemos calcular el flujo radial y de la sección 1.1.2 podemos obtener el flujo neutrónico axial, pero lo que necesitamos calcular es el flujo del reactor completamente reflejado en función de ambas variables (r y z).

Las respectivas auto funciones para las ecuaciones 1-7, 1-17 y 1-18 pueden extraerse de la bibliografía para cada geometría en particular. Para nuestro caso, con origen del sistema de coordenadas en el centro del cilindro y condiciones de contorno de igualdad de flujo y su derivada en la interfaz entre núcleo y reflector y flujo nulo fuera del reflector, son (para el núcleo): )(0)(0)( rrr CIAJ

υµ+=Φ

)cosh()cos()( zCzAz υµ ′′+′′=Φ

Donde las primadas son constantes axiales y las otras radiales.

Por lo tanto, teniendo en cuenta la ecuación 1-5: ( ) ( ))cosh()cos()(0)(0);(1 zCzACIAJ rrzr υµ

υµ′′+′′×+=Φ Ecuación 1-31

( ) ( ))cosh()cos( 21)(02)(01);(2 zCSzASCISAJS rrzr υµυµ

′′+′′×+=Φ

Ecuación 1-32

Como el reactor desnudo es un caso particular del reactor reflejado, podemos comprobar que estas ecuaciones sean adecuadas. En el caso desnudo, las constantes C y C´ son nulas, dado que el flujo en la frontera debe ser nulo. Por lo tanto:

)cos()(0);(1 zJAA rzr µµ

′′=Φ

)cos()(0

2

1);(2 zJAAS rzr µµ

′′=Φ

Con lo cual, queda que:

);(1

2

1);(2 zrzr S Φ=Φ

Lo que es erróneo, dado que la definición dada en la sección 1.1 del coeficiente de acoplamiento es:

);(11);(2 zrzr S Φ=Φ

Para eliminar esta aparente paradoja, podemos modificar los dos sets de

constantes arbitrarias que introdujimos en la ecuación de la siguiente manera:

Conservemos la ecuación 1-31,

( ) ( ))cosh()cos()(0)(0);(1 zCzACIAJ rrzr υµυµ

′′+′′×+=Φ Ecuación 1-33

Page 20: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

13

pero modifiquemos las constantes de la ecuación 1-32 así:

( )

′′+′′×+=Φ )cosh()cos(

1

2)(02)(01);(2 zC

S

SzACISAJS rrzr υµ

υµ

Ecuación 1-34

Con esta corrección tenemos las expresiones del flujo neutrónico en el núcleo en función de las dos coordenadas a menos de las constantes A, C, A´ y C´ sin inconsistencias. Como sabemos, no podemos encontrar un valor de flujo en ningún lugar del reactor sin fijar un nivel, el valor en un punto, o la potencia global del reactor dado que con cualquier nivel de flujo las ecuaciones de criticidad serían satisfechas. Entonces, para hallar los valores de estas constantes fijamos una potencia global de referencia (en este caso, 1 Watt). Hallamos los valores de las cuatro constantes de las ecuaciones 1-33 y 1-34 en función de una constante que utilizaremos para fijar la potencia.

0

)(0

1 )(A

JA

γρβ −= 0

1

2cos

)(A

HA ′

′−′

=′

µ

γρβ

0

)(0

1 )(A

IC

αγρ −= 0

1

2cosh

)(A

HC ′

′−′

=′

υ

αγρ

[ ]

Λ′+Λ′×Λ+Λ

Σ

=′

yxyx

f

f

S

SSS

PC

RAA

1

221

2

00

1

4

1

επ

Donde: P es la potencia total del reactor Cf es la cantidad de fisiones necesarias para obtener 1 Joule de energía ε es el factor de fisión rápida que será definido más adelante Con:

( )γρβ

µ

α

12−−=Λ x ( )γρβ

µ

α′−′

−=Λ′12x

( )αγρ

υ

α−−=Λ 12y ( )αγρ

υ

α′−′

−=Λ′12y

Page 21: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

14

1.3 Flujos neutrónicos medios

Para hallar los flujos medios aplicamos las siguientes expresiones (basadas en el análisis de la sección 1.2):

[ ] [ ]yxyx

RH

AAΛ′+Λ′×Λ+Λ

=Φ00

1

4 Ecuación 1-35

[ ]

Λ′+Λ′×Λ+Λ

=Φ yxyxS

SSS

RH

AA

1

221

002

4 Ecuación 1-36

Y con estos valores obtenemos también la relación entre los flujos

medios en el núcleo del reactor.

1.4 Factores de multiplicación Estos factores nos brindan información acerca del crecimiento de la población

neutrónica con el tiempo. En general se definen como la relación entre la población neutrónica de una generación y la anterior.

1.4.1 Factor de multiplicación infinito

Éste es únicamente una propiedad de la composición de los materiales del

núcleo, y no de la geometría del reactor. Hay varias formas de calcular este parámetro, pero todas son análogas. En nuestro caso, la forma elegida fue la siguiente:

2

2

inf

a

fpk

Σ

Σ

=

ν

ε Ecuación 1-37

Donde: p es la probabilidad de escape rápida(ver sección 1.5) ε es el factor de fisión rápida (ver sección 1.7)

1.4.2 Factor de multiplicación infinito térmico

En este caso se mide el aporte de las fisiones producidas por neutrones que

poseen energías acotadas dentro del grupo térmico. Se calcula así:

2

2

a

f

th pkΣ

Σ

=

ν

Ecuación 1-38

Page 22: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

15

Esta definición fue extraída de la Referencia 1.

1.4.3 Factor de multiplicación infinito rápido

Para el caso del aporte de los neutrones rápidos a la reacción en cadena tenemos:

1

1

rem

f

fkΣ

Σ

=

ν

Ecuación 1-39

Esta definición fue a su vez, también extraída de la Referencia 1.

1.4.4 Factor de multiplicación efectivo

En nuestro caso, el cálculo de este factor se realiza de manera diferente a

simplemente una cuenta. La metodología de cálculo de ésta cantidad es análoga a la descrita en la sección 1.1.

Para dicho factor utilizamos el reactor crítico asociado en k. El método implica realizar el cálculo de dimensión crítica modificando las secciones eficaces hasta que el radio del reactor crítico sea el que el reactor efectivamente tiene. Simplemente se divide la sección eficaz de fisión del núcleo por el factor de multiplicación efectivo (keff) y se calcula el radio del reactor crítico. Si el radio es más grande que el que el reactor real tiene, implica que el keff propuesto es demasiado chico y es necesario agrandarlo y realizar otro cálculo. De ser el radio, mayor que el real, implica que el keff es grande y hay que achicarlo. Al igual que con el caso del radio crítico, tendremos un valor medio del keff calculado y un error únicamente de la aproximación del ahorro por reflector. Para obtener un error real es necesario acotar el error que se produce al calcular el reactor con un esquema de difusión a dos grupos y al utilizar el reactor crítico asociado

en k. Lo que sabemos es que para reactores neutrónicamente pequeños (es decir, cuyas dimensiones sean comparables con las longitudes de transporte) el método de difusión se aleja de la realidad física del problema porque sus hipótesis no se cumplen. Y para factores de multiplicación efectivos muy grandes (keff >>1) la aproximación del reactor

crítico asociado en k deja de ser fiel ya que estamos corrigiendo mucho las secciones eficaces sin considerar el cambio en el espectro de condensación. Por estos motivos, el cálculo será más confiable cuanto más grande neutrónicamente sea el reactor y cuanto más pequeño sea el exceso de reactividad.

1.5 Probabilidad de escape rápida

También llamada probabilidad de escape a las resonancias, es la fracción de neutrones con energías comprendidas dentro del grupo rápido que logra evitar ser absorbido por el núcleo. Es decir que son los neutrones que, o bien escapan del núcleo o pasan a tener energías dentro del grupo térmico (por debajo de la energía de corte).

Page 23: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

16

Por lo tanto, este parámetro se calcula de la siguiente manera:

1

11

rem

arempΣ

Σ−Σ= Ecuación 1-40

1.6 Probabilidades de no-escape

Al ser ambas probabilidades de no-escape (la rápida y la térmica) un número representativo de las fracciones de neutrones que no se fugan del núcleo, podría parecer que deberían estar comprendidos entre 0 y 1 como toda probabilidad. En el caso particular de un reactor reflejado, la probabilidad de no-escape térmica puede (y en la mayoría de los casos sucede) ser mayor que 1. Esto se debe a que hay un flujo neto de neutrones térmicos que ingresa desde el reflector al núcleo. Estos neutrones provienen de dos fuentes:

• Algunos son neutrones que salen térmicos interactúan con el reflector con scattering y regresan al núcleo térmicos.

• Otros salen del núcleo con energías altas (grupo rápido), se moderan en el reflector y reingresan térmicos al núcleo.

Estas probabilidades se calculan del siguiente modo:

( )

( ) ( )[ ]yx

yx

fLL Λ−+Λ+

Λ+Λ

=22

122

1 11£

υµ

Ecuación 1-41

( ) ( ) ( )yx

yxth

LL Λ+Λ

Λ

+

+

Λ=

1

11£

22

222

2 υµ

Ecuación 1-42

1.7 Factor de fisión rápida

Podemos dividir en dos partes el cálculo de dicho factor. La primera (y quizá la que contribuye mayormente) es la que representa las fisiones que producen los neutrones con energías comprendidas en el grupo rápido. Esta contribución se calcula de la siguiente forma:

21

11f

f

epiS Σ

Σ

+=ε Ecuación 1-43

Donde ν1 y ν2 fueron simplificados por ser aproximadamente iguales. La segunda parte es una corrección que tiene en cuenta las fisiones producidas

por neutrones con espectro de fisión, es decir, neutrones que producen fisiones antes de moderarse (antes de salir de la barra). Es, en realidad una corrección por heterogeneidad del núcleo.

Page 24: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

17

Esta segunda contribución puede calcularse de la siguiente manera:

( )

( )P

P

ef

cff

fσνσσ

σσνσ

ε

+−

−−

+= 1 Ecuación 1-44

Donde:

• Las secciones eficaces microscópicas involucradas son las del combustible en el núcleo pero pesadas con el espectro de fisión (fission

averaged) en vez de 1/v como es usual. Las secciones necesarias son, la de fisión (σf), captura radiactiva (σcr), scattering elástico (σs), total (σ) y el número medio de neutrones emitidos por fisión rápida (ν).

• P es la probabilidad de que un neutrón de fisión interactúe con los átomos de la barra combustible antes de salir.

P es un factor que depende tanto de la distribución de los neutrones térmicos (es

decir de κ0=1/L2) como del camino libre medio 1/Σ, donde Σ es la sección eficaz macroscópica total pesada con el espectro de fisión. Sin embargo, estas expresiones son bastante complicadas 3, por lo que directamente mostramos su comportamiento en la figura 1-1.

ESFERAS

PLACAS

CILINDROS

Figura 1-1: Probabilidad de que un neutrón de fisión tenga una colisión de primer vuelo dentro de

la barra combustible en función de r0ΣΣΣΣ para varios valores de κκκκ0/ΣΣΣΣ en distintas geometrías

Page 25: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

18

Para el caso particular en que κ0/Σ=0, P se puede calcular con las siguientes expresiones 4:

( )

∫∞

Σ

Σ−

Σ+

Σ

+

Σ

−=

0

0

2

02

00 2

1

4

1

4

11

r

xr

SLAB dxx

ere

rrP Ecuación 1-45

∫∞

Σ

Σ−=

0

2

)(1)(1

021r

xx

BARRA dxx

KIrP Ecuación 1-46

( )( )

( )

Σ++−Σ

Σ

−=Σ− 02

0

2

03

02

1

2

1

4

31 r

PEBBLE errr

P Ecuación 1-47

Donde r0 es el radio de las barras combustibles. Dado que ambos factores de fisión representan una relación entre los neutrones

producidos por cada una de las dos fuentes por cada neutrón de fisión producido, para obtener el factor de fisión rápida total operamos con los anteriormente calculados de la siguiente forma:

fepiεεε = Ecuación 1-48

Page 26: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Cap

ítu

lo

2

DIANA

Page 27: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

19

Capítulo 2 Determinación de las constantes multi-grupo

Las secciones eficaces microscópicas (σ) dan una idea de la probabilidad de

interacción entre la partícula proyectil (en nuestro caso neutrones) y el blanco (un núcleo). Éstas están tabuladas para cada isótopo en función de la energía relativa entre proyectil y blanco (como vemos para el Plutonio 239 en la figura 2-1), que en el caso de núcleos en reposo, es la energía del neutrón incidente. Por supuesto, para cada tipo de reacción posible (scattering elástico, scattering inelástico, captura radiactiva, fisión inducida, etc.) existe una sección eficaz asociada.

Energia de los neutrones (eV)

Secc

ión

efi c

az (

b arn

s)

TOTALELÁSTICACAPTURAINELÁSTICAFISIÓN

Figura 2-1: Secciones Eficaces microscópicas del Plutonio 239 (ver Referencia 5)

Las ecuaciones descritas en el Capítulo 1 están expresadas en función de

parámetros conocidos como constantes multi-grupo. Éstos son definidos formalmente como valores medios pesados con los flujos (dependientes de la energía) de cada grupo.

Para obtener una condensación a grupos discretos de energía está claro que debemos conservar los ritmos de reacción, dado que son los sumandos de las ecuaciones 1-1 a 1-4. Por lo tanto, si discretizámos la energía en G grupos como muestra la figura 2-2

Page 28: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

20

Grupo g

E

0E1E

2EgEE

GEG-1

Eg-1

Figura 2-2: Discretización de la energía para un esquema a G grupos

y analizamos el grupo g comprendido entre las energías Eg y Eg-1, los ritmos de reacción quedan de la siguiente forma:

( ) ( )∫−

ΦΣ=ΦΣ

g

g

E

E

EEgg dE

1

Donde Σ es una sección eficaz macroscópica (Σ = σ.densidad) y Φ es el flujo de

neutrones. Si utilizamos la siguiente definición lógica para el flujo del grupo g:

( )∫−

Φ=Φ

g

g

E

E

Eg dE

1

Ecuación 2-1

Nos queda una definición única para la sección eficaz de modo que se conserve

el ritmo de reacción:

( ) ( )

( )∫

Φ

ΦΣ

=Σg

g

g

g

E

E

E

E

E

EE

g

dE

dE

1

1 Ecuación 2-2

De la expresión anterior, vemos que debemos conocer el espectro neutrónico

(función de peso), es decir, la dependencia energética del flujo neutrónico. Como el flujo neutrónico no lo conocemos y para calcularlo debemos conocer

las secciones eficaces, debemos efectuar una aproximación y suponer un espectro de peso. Este espectro podemos obtenerlo de mediciones para cada grupo.

Es evidente que la distribución energética de neutrones en un reactor depende fuertemente de su composición y disposición geométrica. Por ello esta suposición limita el cálculo a sistemas que se comporten de manera similar, es decir, si calculamos las secciones eficaces con un espectro de un reactor térmico podemos utilizarlas solamente para calcular reactores térmicos.

Como el objetivo del código de cálculo son los reactores térmicos veremos como hallar estas constantes para espectros bien termalizados.

Page 29: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

21

2.1 Constantes del grupo térmico

Supongamos que tenemos un material homogéneo compuesto solamente por moléculas formadas por un átomo cada una. Adicionalmente digamos que todo los átomos son iguales. Es decir, que tenemos únicamente un tipo de núcleo involucrado. Podemos obtener de tablas 5 los valores de secciones eficaces pesadas con distintos espectros o bien los valores puntuales a una energía (los valores a 2200 m/s están tabulados y los demás pueden extraerse de los gráficos como la figura 2-1. Por confiabilidad (por poseer una diversidad de fuentes mayor) elegiremos calcular las secciones eficaces a partir de valores a 2200 m/s. Entonces extraemos de alguna tabla los valores correspondientes a las secciones eficaces de absorción, fisión y scattering (por ejemplo las que se presentan el la Referencia 5).

Luego tenemos que elegir una aproximación de espectro en el rango del grupo de baja energía que sea adecuada para los reactores que queremos calcular (térmicos). Como hipótesis proponemos que el flujo está bien termalizado a bajas energías (menores que 0.125 eV). En este caso no podemos despreciar el movimiento de los átomos, y decir que está bien termalizado es decir que los neutrones están en equilibrio térmico con el medio. Por lo tanto los mismos tendrán una distribución en energía comparable a la de los átomos del material en el que se encuentran. Entonces el espectro de peso depende de la temperatura del medio, pues la distribución de energías (velocidades) de sus átomos lo hace. En particular, la distribución de Maxwell-Boltzmann es la que caracteriza la energía de las partículas en un gas ideal (ecuación 2-3).

( )

( )

kT

E

E eE

kT

M

=

2

3

2

π

π Ecuación 2-3

Por lo tanto el flujo de neutrones en función de la energía tiene la siguiente

forma 6:

( ) ( )

( )

n

n

kT

E

n

nTEME e

kT

E

m

kTn

=Φ=Φ20,

8

π

Donde n0 es la densidad numérica de neutrones en el medio y m es el peso

molecular del gas (en el presente caso vale 1 pues el flujo analizado es el de neutrones). Si no consideramos las absorciones y si la sección eficaz, en el rango analizado,

cambia como la inversa de la raíz de la energía, la ecuación 2-2 para el grupo térmico queda:

( )0

0

2E

nT

TΣ=Σ

π

Donde E0 es 0.025 eV y T0 es 20.46 ºC: Temperatura correspondiente a una

energía de 0.025 eV (energía de los neutrones de velocidad = 2200 m/s). Si la sección eficaz analizada no tiene una dependencia energética como la

propuesta se utiliza un factor de corrección (g) que está tabulado en función de la temperatura como muestra la tabla 2-1. Éste se denomina factor de Wescott.

Page 30: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

22

Tabla 2-1: Ejemplo de factores de Wescott para diversos isótopos en función de la temperatura

ElementoTemperatura ºC

Interpolación lineal

Fuente: Referencia 1

La expresión con éste factor queda:

( ) ( )0

0

2E

n

TT

Tg

nΣ=Σ

π Ecuación 2-4

A su vez se debe utilizar una corrección por absorciones, es decir que el espectro

energético no es exactamente Maxwelliano cuando hay absorciones de neutrones en el sistema por parte de los átomos, dado que la sección eficaz de absorción no es constante en función de la energía, por lo que absorbe más neutrones de algunas energías que de otras. Este efecto se conoce como endurecimiento por absorción. Dicha corrección se efectúa a través del reemplazo de la temperatura Tn por una modificada. Por lo que el espectro de peso se desplaza como lo muestra la figura 2-3. La corrección no se encuentra actualmente implementada en el cálculo. Para hacerla hay dos caminos:

• Conseguir una teoría adecuada a la cantidad de datos disponibles • Obtener parámetros medidos en el reactor real

Venos que la segunda opción claramente no es posible para nosotros pues el

objetivo de nuestro código es el análisis conceptual de reactores innovativos. Ahora tenemos las secciones eficaces a la temperatura del medio que modera los

neutrones. En el caso de un reactor heterogéneo, para calcular las secciones eficaces térmicas del combustible tendríamos que utilizar la temperatura a la que se encuentra el moderador, y no la del combustible, pues el que fija el espectro térmico es el moderador.

Page 31: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

23

Figura 2-3: Endurecimiento por absorción del espectro térmico Maxwelliano

Es evidente que en el caso general no tendremos un reactor compuesto de un

solo isótopo, por lo que debemos combinar las secciones eficaces de los distintos isótopos de modo de obtener una sección eficaz macroscópica que represente a la mezcla de los distintos componentes. Si la mezcla es homogénea simplemente efectuaremos una sumatoria pesada por las cantidades relativas de cada isótopo. Es decir, si tenemos N isótopos, cada uno con su sección eficaz macroscópica (Σi) calculada de acuerdo a la ecuación 2-4 y su fracción isotópica correspondiente (fi), la sección eficaz macroscópica de la mezcla se calcula como:

∑=

=

Σ=Σ

Ni

i

iif1

Ecuación 2-5

Ahora, si lo que tenemos es una mezcla homogénea de M materiales, cada uno

con su sección eficaz macroscópica (Σj) formada a través de la ecuación 2-5 y con su respectiva fracción de volumen (vj), la sección eficaz macroscópica de la nueva mezcla se calcula como:

∑=

=

Σ=Σ

Mj

j

jjv1

Ecuación 2-6

Esta última expresión es válida únicamente si se puede despreciar los cambios

de flujo en cada región. De no ser así habría que efectuar una sumatoria pesada tanto con los flujos como con las fracciones de volumen correspondientes.

Las secciones eficaces que podemos calcular con las expresiones anteriores son las de scattering, absorción, captura radiactiva, fisión, nufisión, total y remoción. Siendo esta última igual a la sección eficaz de absorción cuando la probabilidad de que un neutrón pase por scattering al grupo de alta energía es muy baja (es decir cuando no hay up-scattering). Con ellas podemos obtener otros parámetros como el coeficiente de

Page 32: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

24

difusión del grupo térmico y la longitud de difusión térmica con las siguientes expresiones:

2

23

1

tr

= Ecuación 2-7

( )20222 1 µ−Σ+Σ=Σ satr Ecuación 2-8

2

22

rem

DL

Σ

= Ecuación 2-9

Donde Σtr2 es la sección eficaz de transporte térmica,

20µ es el coseno medio de

scattering de la mezcla. Representa el coseno del ángulo medio de salida (Ψ) de un neutrón que sufre una colisión elástica con un núcleo de la mezcla como se muestra en la figura 2-4.

Neutrón incidente

Neutrón desviado

Núcleoblanco

Figura 2-4: Colisión elástica de un neutrón con un núcleo atómico

Para un isótopo, éste vale 2/3A y para mezclas de isótopos puede determinarse por medio de una sumatoria pesada con la sección eficaz de scattering macroscópica de cada componente como lo muestra la ecuación 2-10 para una mezcla de N isótopos distintos. Debemos observar en ésta expresión que las secciones eficaces macroscópicas presentadas son obtenidas con la densidad de cada isótopo en la mezcla y no con la total de la misma.

∑=

=

=

=

Σ

Σ

=Ni

i

s

Ni

i

s

i

ii

12

120

02

µ

µ Ecuación 2-10

Otro parámetro que puede resultar de utilidad es el decremento logarítmico

medio, que representa al cambio medio de energía que experimenta un neutrón en una colisión elástica con una partícula del medio. Para el caso de un isótopo único podemos obtener este parámetro de su número másico con la siguiente expresión:

Page 33: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

25

( )

+

−−+=

1

1ln

2

11

2

A

A

A

Aξ Ecuación 2-11

Al igual que con el coseno medio, el decremento logarítmico medio puede

obtenerse para una mezcla de isótopos efectuando una sumatoria pesada con la sección eficaz de scattering macroscópica de cada componente (como se muestra en la ecuación 2-12).

∑=

=

=

=

Σ

Σ

=Ni

i

s

Ni

i

si

i

i

12

12

2

ξ

ξ Ecuación 2-12

Con las expresiones desarrolladas en esta sección podemos describir la zona de

baja energía de cualquier mezcla homogénea de isótopos en cuanto a su interacción con los neutrones.

2.2 Constantes del grupo rápido Para completar el grupo de constantes requeridas para efectuar el cálculo

descrito en el Capítulo 1 , debemos obtener las expresiones para los parámetros que describen el comportamiento de los neutrones en el grupo de energías altas (>0.125 eV).

Si consideramos una fuente de neutrones mono-energética y analizamos el pasaje de los neutrones por las distintas energías en el proceso de moderación vemos que, si las fugas no son preponderantes (medio muy grande) y si no hay absorciones, la dependencia energética del flujo de neutrones es inversamente proporcional a la energía de los mismos (es decir: Φ = 1/E). Esto se cumple independientemente del material que componga el medio porque sólo depende de que la sección eficaz de scattering sea constante en el rango de energías analizado y esto se cumple para casi todos los isótopos. Con es espectro 1/E podemos determinar la ecuación 2-1:

( ) ∫∫

==Φ=Φ

fisión

corte

fisión

corte

E

E corte

fisión

E

E

EE

E

E

dEdE ln1 Ecuación 2-13

Con esta última expresión tenemos el espectro de peso en función de las

energías de fisión (~2 MeV) y de corte (es decir la de separación entre el grupo rápido y el térmico: ~0.125 eV) para evaluar la ecuación 2-2. El numerador de dicha expresión puede calcularse a partir de una magnitud denominada Integral de Resonancia como lo indica la ecuación 2-14. Esta magnitud se encuentra tabulada (para absorción y fisión) en función de un parámetro (σpot) que caracteriza la mezcla como se muestra en la tabla 2-2.

Page 34: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

26

( ) ( )

( )

=

Φ

ΦΣ

corte

fisión

E

E

E

E

E

EE

E

E

NI

dE

dE

fisión

corte

fisión

corte

ln1 Ecuación 2-14

Tabla 2-2: Integral de Resonancia para mezclas homogéneas de U

238 y moderador en función de σσσσp

Notar que σp = Sección eficaz de scattering potencial por átomo de U238= Σp/NU238

Las Integrales de Resonancia están condensando la información de todas las

resonancias que tiene la sección eficaz en cuestión (absorción o fisión) dentro de la ventana energética que abarca el grupo analizado durante el proceso de moderación.

Si estas integrales no se encuentran disponibles en la bibliografía se necesita efectuar un cálculo de moderación con secciones eficaces a muchos grupos conociendo la dependencia de cada grupo con la σpot del sistema 7.

Con la ecuación 2-14 y las tabulaciones de Integral de Resonancia de absorción y fisión podemos calcular las respectivas secciones eficaces y deducir la de captura radiactiva como diferencia de las mismas.

Para obtener la sección eficaz macroscópica de scattering (Σs1) no necesitamos realizar un procedimiento similar al comentado dado que como dijimos anteriormente, dicha sección eficaz no depende de la energía en éste rango para la mayor parte de los casos. Por lo que, para mezclas de isótopos que podemos considerar como gas libre simplemente podemos hacer la sumatoria pesada por las fracciones isotópicas y de volumen como se muestra en las ecuaciones 2-5 y 2-6.

Como la información acerca de prácticamente todo el proceso de moderación de los neutrones se encuentra en esta sección eficaz, en general se busca caracterizarla con mayor precisión. Un modo de cálculo más apropiado para estos sistemas es a través de la Edad de Fermi (τ). Es decir, que con una medición de dicho parámetro en el sistema en cuestión se puede calcular dicha sección eficaz con la ecuación 2-15.

112

1

1

1

asrem

DD

Σ+Σ

=

Σ

=τ Ecuación 2-15

Donde D1 puede calcularse con:

( )[ ]

1011

113

1

µ−Σ+Σ

=

sa

D Ecuación 2-16

Page 35: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

27

y Σs12 es la sección eficaz de scattering que envía neutrones del grupo rápido al térmico y se obtiene de la de scattering del grupo rápido a través de la siguiente expresión:

Σ=Σ

corte

fisión

ss

E

Eln

1112

ξ Ecuación 2-17

Con (análogamente a las ecuaciones 2-10 y 2-12):

∑=

=

=

=

Σ

Σ

=Ni

i

s

Ni

i

s

i

ii

11

110

01

µ

µ

∑=

=

=

=

Σ

Σ

=Ni

i

s

Ni

i

si

i

i

11

11

1

ξ

ξ Ecuación 2-18

Empleando, para cada isótopo, µ0 como fué explicado en la sección 2.1 (2/3A) y

ξ como lo indica la ecuación 2-11. Introduciendo las definiciones 2-16 y 2-17 en 2-15 y reorganizando, obtenemos:

( )[ ] ( )

−Σ+

+ΣΣ+−Σ=

corte

fisión

a

corte

fisión

assE

E

E

Eln

11ln10

2

101101

2

1 11τ

µξµξ

Ecuación 2-19

De esta ecuación cuadrática podemos hallar la sección eficaz de scattering del

grupo rápido sólo si tenemos la Edad de Fermi para la mezcla. De no contar con mediciónes, se puede recurrir a la Fórmula de Galanin 8 (ecuación 2-20), que nos permite obtenerla a partir de las de los isótopos componentes de la mezcla.

∑∑′>

′′

+

+=

ii i

i

i

i

ii

ii

i i

i

i

i

i

ifff

ξ

ξ

µ

µ

ξ

ξ

µ

µ

ττττ 0

0

0

02

1

1

1

11

Ecuación 2-20

Donde fi es la relación entre la densidad atómica presente en la mezcla

homogénea utilizada y la densidad atómica con la que fue calculada (o medida) la Edad

de Fermi del componente i (τi).

Page 36: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

28

2.3 Correcciones por heterogeneidad

Si tenemos el combustible concentrado en un volumen definido en vez de diluido en el moderador, entonces tendremos que considerar que todos los neutrones de fisión nacen en pequeños volúmenes localizados en el núcleo. Por lo tanto, hasta que escapen de las barras no verán los efectos del proceso de moderación en el que se basa nuestro cálculo, por lo que habrá que efectuar una corrección. Esto se realiza por medio de la consideración de las fisiones producidas por neutrones de fisión dentro de las barras antes de que escapen al moderador. Dicha corrección se introduce al cálculo mediante una actualización del factor de fisión rápida explicada en la sección 1.7.

Otro efecto de la concentración del material físil es el de apantallamiento de los neutrones moderados por parte de la capa periférica del combustible como se muestra en la figura 2-5 para un reactor heterogéneo de barras combustibles introducidas en un medio moderador (PWR, BWR, RBMK, etc.).

Moderador Moderador

Com

bust

ible

Com

bust

ible

Com

bust

ible

Figura 2-5: Apantallamiento dentro del combustible en reactores heterogéneos

Este efecto se conoce como auto-apantallamiento y su influencia en el cálculo

es análogo a una disminución de las secciones eficaces efectivas del combustible por depresión del flujo neutrónico local. Es decir, que en vez de deprimir el flujo, disminuimos las secciones eficaces de las zonas afectadas (combustible). Dicha corrección de efectúa calculando un parámetro conocido como factor de desventaja, que es simplemente la relación entre los flujos neutrónicos medios fuera y dentro del combustible se calcula para cada grupo de energía como lo indica la siguiente ecuación:

( )1−

Σ

Σ+=

Φ

ΦEF

mam

cac

c

m

υ

υ

Donde el subíndice m se refiere al moderador y el c al combustible, υ es la

fracción de volumen de cada uno y las funciones F y E para las tres geometrías más usuales de combustibles valen:

Page 37: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

29

• En geometría Placa

( )combcombcombcomb ttF κκ coth= Ecuación 2-21

( )modmodmodmod coth ttE κκ= Ecuación 2-22

Donde tcomb es el semi-espesor de la placa combustible y tmod del

moderador.

• En geometría Cilindro

( )

( )combcomb

combcomb

r

rcombcomb

I

IrF

κ

κκ

1

0

2= Ecuación 2-23

( )

( )comb

comb

r

rcomb

comb M

Mr

V

VE

mod

mod

1

0modmod

κκ= Ecuación 2-24

Donde:

( ) ( )

( )

( )

( )r

r

r

rr II

KKM

mod

modmod

modmod

modmod 0

1

1

00 κ

κ

κ

κκ+=

( ) ( )

( )

( )

( )r

r

r

rr II

KKM

mod

modmod

modmod

modmod 1

1

1

11 κ

κ

κ

κκ−=

Donde rcomb es el radio de la barra combustible y rmod el radio de la celda

equivalente.

• En geometría Esfera

( )

( )combcombcombcomb

combcombcombcomb

rr

rrF

κκ

κκ

tanh

tanh

3

22

= Ecuación 2-25

( )( )

( ) ( )( )

−−−−

−−=

combcombcomb

combcomb

comb rrrrrr

rrrr

V

VE

modmodmodmodmod

2

mod

modmodmodmod

22

modmod

tanh1

tanh1

3 κκκ

κκκ

Ecuación 2-26

Donde rcomb es el radio de la esfera combustible y rmod el radio de la celda

equivalente. Para obtener las secciones eficaces de absorción y fisión efectivas (corregidas)

del combustible simplemente multiplicamos las obtenidas por los procesos detallados en las secciones 2.1 y 2.2 por el factor de desventaja térmico y rápido respectivamente como lo indican las siguientes expresiones:

c

m

eff aa

1

1

11Φ

Φ

Σ=Σ c

m

eff ff

1

1

11Φ

Φ

Σ=Σ

Page 38: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

30

c

m

eff aa

2

2

22Φ

Φ

Σ=Σ c

m

eff ff

2

2

22Φ

Φ

Σ=Σ

Ahora, utilizando la Ecuación 2-6, homogeneizamos las secciones eficaces del

combustible (recién calculadas) con las del moderador para obtener las secciones eficaces homogeneizadas del núcleo.

Con estas últimas correcciones finalizamos la generación de constantes para la resolución del sistema difusivo planteado por las ecuaciones 1-1, 1-2, 1-3 y 1-4. Podemos ahora calcular todos los parámetros detallados en el Capítulo 1 sin inconvenientes para cualquier sistema térmico en el cual sea válida la aplicación del método de difusión.

Page 39: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Cap

ítu

lo

3

DIANA

Page 40: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

31

Capítulo 3 Código DIANA

Para llevar a cabo el desarrollo del código de núcleo se eligió el método de programación por objetos utilizando el lenguaje C++ 9. Éste es versátil y poderoso, permitiendo una clara implementación de los objetos y haciendo posible un seguimiento rápido de la estructura de herencia que éstos presentan y la interacción entre los mismos. Como plataforma inicial de desarrollo se utilizó el KDE 2.3 bajo la distribución Debian Sarge de Linux. Aunque se pretende hacerlo independiente del sistema operativo haciendo un pasaje a MS-DOS / MS-Windows en un futuro no muy lejano.

3.1 Descripción general

El código completo consta de una serie de archivos ejecutables que se detallan a continuación:

• diana • dianaPlot • dianagnuPlot • dianagnuPlotCylinder • dianagnuPlotCylinderThermal • dianagnuPlotCylinderFast • dianagnuPlotSphere • dianagnuPlotSphereThermal • dianagnuPlotSphereFast • dianagnuPlotkeff • dianagnuPlotCriticalMass • dianagnuPlotCriticalRadius

El primero de estos es el programa propiamente dicho, que realiza todos los

cálculos requeridos. El resto son comandos para graficar los resultados de la última corrida realizada. Los flujos en el núcleo se grafican en función del radio y la altura analizados para una potencia de 1 Watt con un programa llamado xd3d para el caso de los reactores cilíndricos calculados (dianaPlot). De desearlo se pueden graficar con el programa gnuplot (dianagnuPlotCylinder...). Para el caso de los reactores esféricos se grafican únicamente con el gnuplot dado que no es necesario un soporte 3D. En este caso los flujos dentro y fuera del núcleo son graficados en función del radio analizado.

A su vez hay tres archivos para graficar en caso de un análisis variacional. Es decir que si se le instruye al programa que calcule las variables del reactor para distintos parámetros se puede levantar rápidamente una curva de factor de multiplicación

efectivo, radio crítico y masa crítica (de un material seleccionado) en función del valor de dicho parámetro. Esta última capacidad del programa permite un primer cálculo de sensibilidad para cualquier geometría analizada.

Además de los archivos ejecutables hay una serie de archivos de datos que permiten la correcta operación del mismo y se detallan a continuación:

Page 41: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

32

• Effective_Resonance_Integrals.dat • Fission_Averaged_Cross_Sections.dat • Standard_Isotopes.dat • Standard_Materials.dat • Wescott_Factors.dat • Help.dat

Éstos contienen respectivamente:

• Tablas de Integrales de Resonancia como la tabla 2-2 para los isótopos para los cuales se las conoce. Por ejemplo:

//Effective resonance integral: SIGMAp (barns)(Horizontal), Temperature(Kelvin) (Vertical)

//

Absortion

U238 5 10 20 30 40 50 100 200 300 400 600 800 1000 1500 2000 2500 3000 4000 5000 10000 100000

- 0 5.70 7.55 10.13 12.08 13.7 15.15 20.71 28.41 34.21 39.01 46.90 53.38 58.98 70.50 79.80 87.70 94.59 106.26 115.94 148.75 242.37

- 300 6.15 8.34 11.45 13.85 15.86 17.63 24.52 34.17 41.55 47.77 58.22 67.00 74.68 90.68 103.63 114.52 123.88 139.28 151.55 188.78 258.29

- 400 6.22 8.47 11.66 14.11 16.18 17.99 25.08 35.06 42.74 49.24 60.19 69.41 77.47 94.23 107.72 119.00 128.64 144.37 156.78 193.72 259.48

- 500 6.29 8.58 11.84 14.34 16.45 18.31 25.57 35.84 43.78 50.53 61.93 71.53 79.91 97.30 111.23 122.80 132.64 148.60 161.07 197.64 260.37

- 600 6.35 8.68 12.00 14.55 16.70 18.59 26.00 36.54 44.73 51.70 63.50 73.43 82.10 100.03 114.31 126.11 136.11 152.21 164.72 200.88 261.06

- 700 6.40 8.77 12.14 14.73 16.92 18.84 26.39 37.18 45.60 52.78 64.93 75.17 84.10 102.48 117.06 129.06 139.17 155.38 167.88 203.62 261.63

- 800 6.45 8.85 12.27 14.90 17.12 19.07 26.76 37.78 46.40 53.78 66.27 76.78 85.93 104.72 119.55 131.71 141.91 158.19 170.67 206.00 262.10

- 1000 6.55 9.00 12.50 15.20 17.48 19.49 27.42 38.86 47.88 55.60 68.69 79.68 89.22 108.70 123.94 136.33 146.67 163.01 175.42 209.95 262.85

- 1200 6.63 9.13 12.71 15.47 17.80 19.86 28.00 39.84 49.20 57.24 70.85 82.25 92.12 112.16 127.72 140.28 150.70 167.05 179.36 213.15 263.44

- 1400 6.70 9.25 12.90 15.71 18.09 20.19 28.54 40.74 50.42 58.74 72.81 84.58 94.73 115.16 130.96 143.65 154.11 170.43 182.63 215.72 263.81

- 1600 6.76 9.35 13.06 15.91 18.33 20.47 29.00 41.52 51.49 60.06 74.55 86.63 97.03 117.93 133.93 146.71 157.19 173.46 185.55 217.99 264.20

- 1800 6.83 9.46 13.21 16.12 18.58 20.76 29.46 42.30 52.54 61.35 76.22 88.60 99.21 120.45 136.62 149.46 159.96 176.15 188.13 219.96 264.53

- 2000 6.88 9.55 13.36 16.31 18.81 21.02 29.89 43.03 53.53 62.56 77.79 90.42 101.23 122.76 139.07 151.96 162.45 178.57 190.43 221.70 264.81

- 2500 7.02 9.76 13.69 16.73 19.32 21.62 30.88 44.70 55.79 65.31 81.31 94.51 105.72 127.85 144.40 157.35 167.80 183.70 195.28 225.29 265.38

- 3000 7.13 9.95 13.98 17.11 19.78 22.15 31.76 46.20 57.81 67.76 84.41 98.07 109.60 132.17 148.87 161.82 172.21 187.88 199.19 228.11 265.81

END

//

Figura 3-1: Ejemplo de implementación del archivo de datos: Effective_Resonance_Integrals.dat

• Secciones eficaces pesadas con el espectro de fisión del Uranio 235 para

realizar los cálculos detallados en la sección 1.7. Por ejemplo:

Isotopes C12 U235 U238 H1 O16 Al27SIGMAf 0 1.235 308E-3 0 0 0SIGMAcr 10.6E-6 89.3E-3 66.3E-3 39.3E-6 29E-9 670E-6SIGMAsi 11.4E-3 1.804 2.645 0 3.87E-3 279E-3SIGMAse 2.352 4.565 4.76 3.926 2.739 2.974NuSIGMAf 0 1.8525 462E-3 0 0 0END

Figura 3-2: Ejemplo de implementación del archivo de datos: Fisión_Averaged_Cross_Sections.dat

• Secciones eficaces a 2200 m/s y datos puntuales (como ν o la masa

atómica) para los isótopos que generalmente se utilizan. Por ejemplo:

Isotopes He3 He4 S32 S33 S34 S36 Si28 Si29 Si30

SIGMAf 0 0 0 0 0 0 0 0 0

SIGMAa 5328 0 0.5282 0.35 0.2236 0.15 0.177 0.1014 0.1075

SIGMAs 3.135 0.7593 0.9635 2.844 2.077 1 2.149 2.843 2.491

SIGMApot 3.135 0.7593 0.9635 2.844 2.077 1 2.149 2.843 2.491

nu 0 0 0 0 0 0 0 0 0

Mass_Number 3 4 32 33 34 36 28 29 30

END

Figura 3-3: Ejemplo de implementación del archivo de datos: Standard_Isotopes.dat

• Para los materiales más frecuentes, secciones eficaces a dos grupos y

datos como la densidad temperatura del material y la temperatura del

Page 42: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

33

neutrón utilizadas para la condensación de las mismas. Vemos un ejemplo en la siguiente figura:

U(93.2@100ºC)

SIGMAf 0 0.0572567

SIGMAa 0 0.068128

SIGMAs 0.00120508 0.00120508

nu 2.47 2.47

Molecular_Mass 235.2

Temperature 20

mu 0.00283484

epsilon 0.0125109

END

Figura 3-4: Ejemplo de implementación del archivo de datos: Standard_Materials.dat

• Tablas con los factores de Wescott como la tabla 2-1 para efectuar los cálculos detallados en la sección 2.1. Por ejemplo:

// Temperature(ºC) Wescott Factors

Absortion U235 U238

-> 20 0.975 1.002

-> 100 0.956 1.004

-> 200 0.938 1.006

-> 300 0.926 1.008

-> 400 0.918 1.011

-> 500 0.913 1.013

-> 600 0.909 1.015

-> 700 0.905 1.018

-> 760 0.903 1.019

END

Fission U235

-> 20 0.975

-> 100 0.956

-> 200 0.938

-> 300 0.925

-> 400 0.915

-> 500 0.906

-> 600 0.903

-> 700 0.898

-> 760 0.895

END

Figura 3-5: Ejemplo de implementación del archivo de datos: Wescott_Factors.dat

• Información que es impresa en la línea de comando al solicitarse la

ayuda del programa. Éste contiene el detalle de todos los parámetros que acepta el programa. Por ejemplo:

-b ---> Prints Basic data as: Names of Isotopes, Materials and Zones Asked by the input file.

-h ---> Prints Help

-os ---> Prints all results directly in the command line

-o xxxxx ---> Prints the results in the file: xxxxx

-i xxxxx ---> Takes the input parameters from the file: xxxxx

-wf ---> Does not apply Wescott's Factors to the thermal cross sections

-w ---> Prints Warnings in the command line

-plot ---> Does not print the calculated fluxes

-splot ---> Does not print the calculated special_outputs

-flux ---> Does not calculate the fluxes

-2g ---> Makes reactivity calculus without Fission Averaged Cross Section Data

-autoP ---> Auto-adjust fuel thickness to full radius of spherical critical reactor

-mass= xxx ---> Calculate mass of the material xxx for the fuel zone

Figura 3-6: Ejemplo de implementación del archivo de datos: Help.dat

Todos estos archivos se encuentran en un cómodo paquete de instalación (.deb)

para distribuciones de Linux Debian que instala cada archivo donde debe ir, incluyendo una guía de referencia rápida (7 hojas) para armar un archivo de entrada (Input), los

Page 43: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

34

archivos de datos con datos iniciales y tres ejemplos con sus resultados. Se espera en lo pronto poder hacer una versión instalable para Linux Mandriva.

3.2 Introducción a la estructura de objetos Por motivos didácticos omitiremos la implementación de las funciones dado que

para los efectos del cálculo no es importante y puede resultar difícil de seguir. Además el programa consta de 17 archivos que suman 7184 líneas y sería engorroso revisarlas todas cuando hay muchas rutinas que son de conocimiento común para un programador promedio como el tratamiento de errores. Por ello, lo que haremos es presentar las clases utilizadas con su relación y más adelante los describiremos en lo que a su interacción se refiere.

Las clases implementadas son las siguientes:

• Datos_MonoGrupo • Datos_MultiGrupo • Datos_Isótopos • Datos_Materiales • Datos_Zonas • Calculo • REsferico • RCilindrico • Ayuda • Error

De éstas, hay dos que no poseen estructura de herencia alguna y son: Ayuda y

Error. Las demás están sujetas a tres ramificaciones independientes de herencia. Que se presentan en las figuras 3-7, 3-8 y 3-9.

Datos_Isotopos

Figura 3-7: Árbol de Herencia de Datos_MonoGrupo

Se pensó de esta manera de modo que los objetos sean versátiles y puedan ser

utilizados en otros programas o incluso para hacer posteriormente una mejora sustancial del presente.

Como vemos no es una estructura complicada y lo que permite es una fácil expansión de las capacidades del programa. Por ejemplo, podría implementarse un objeto con el nombre RCubico que herede de Calculo y permita calcular reactores de sección cuadrada (como los PWR o BWR) sin mucho trabajo, dado que hay funciones que no habría que implementar porque las heredaría del padre.

Page 44: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

35

Datos_Materiales Datos_Zonas

Figura 3-8: Árbol de Herencia de Datos_MultiGrupo

Calculo

EsfericoR CilindricoR

Figura 3-9: Árbol de Herencia de Calculo

3.3 Interfaz e interacción de los objetos

Los objetos están agrupados en 14 archivos: 7 archivos de implementación (.cpp) y 7 de declaraciones (.h). El agrupamiento de los mismos se realizó teniendo en cuenta los niveles de las estructuras de herencia, teniendo la sutileza de no incluir una clase y su padre de herencia en el mismo archivo. De esta forma se favorece la reutilización del código.

Los archivos con sus clases contenidas son detallados a continuación:

• Help.cpp y Help.h � Ayuda

• Error.cpp y Error.h � Error

• Cross_Sections.cpp y Cross_Sections.h � Datos_MonoGrupo

� Datos_MultiGrupo • CS_Data.cpp y CS_Data.h

� Datos_Isotopos

� Datos_Materiales

� Datos_Zonas • Calculo.cpp y Calculo.h

� Calculo

• C_REsferico.cpp y C_REsferico.h � REsferico

• C_RCilindrico.cpp y C_RCilindrico.h � RCilindrico

Page 45: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

36

Los detalles de implementación no serán mostrados por los motivos antedichos,

sin embargo veremos la declaración de las funciones de cada uno de los objetos analizando todos los archivos de declaraciones. De esta forma tendremos una idea de la interacción entre los objetos para calcular los parámetros requeridos.

3.3.1 Análisis del archivo Help.h

Éste contiene únicamente la clase Ayuda, que es, en particular, una clase

sencilla, pues su única función es abrir el archivo de ayuda (Help.dat), agregarle las firmas e imprimir todo en la línea de comando. Dicha modalidad permite mayor flexibilidad a la alternativa de introducir todo el archivo de ayuda de forma rígida en el código, ya que cada usuario puede crear su propio archivo de ayuda con comentarios útiles que surjan de su propia experiencia. Esto es posible dado que cuando la ayuda es solicitada al programa, éste se fija en el directorio desde el cual fue llamado si encuentra un archivo de ayuda. De no encontrarlo, procede a imprimir el que se encuentra en el directorio de instalación, que en sistemas Linux, se encuentra protegido por la contraseña del administrador del sistema (root). El archivo en cuestión se muestra en la figura 3-10, donde se puede apreciar la estructura básica de un archivo de éste tipo y la declaración de la clase.

#ifndef _Help_H_

#define _Help_H_

#include <string>

#include <fstream>

#include <iostream>

#include <sstream>

#include <Error.h>

using namespace std;

class Ayuda;

class Ayuda

{

friend ostream &operator<<(ostream &os, const Ayuda &a);

string Archivo_de_ayuda;

public:

Ayuda(string Archivo="Help.dat");

};

#endif

Figura 3-10: Implementación del archivo Help.h

Vemos que consta simplemente de un constructor que permite ingresar el

nombre del archivo de ayuda a utilizar si no se desea usar el archivo por defecto. Además posee la declaración de su propio “operador <<”, que facilita su utilización. Al ser invocado éste último se imprime el contenido del archivo de ayuda junto con las firmas correspondientes como se muestra en la figura 3-11.

Page 46: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

37

Command Help:

-b ---> Prints Basic data as: Names of Isotopes, Materials and Zones Asked by the input file.

-h ---> Prints Help

-os ---> Prints all results directly in the command line

-o xxxxx ---> Prints the results in the file: xxxxx

-i xxxxx ---> Takes the input parameters from the file: xxxxx

-wf ---> Does not apply Wescott's Factors to the thermal cross sections

-w ---> Prints Warnings in the command line

-plot ---> Does not print the calculated fluxes

-splot ---> Does not print the calculated special_outputs

-flux ---> Does not calculate the fluxes

-2g ---> Makes reactivity calculus without Fission Averaged Cross Section Data

-autoP ---> Auto-adjust fuel thickness to full radius of spherical critical reactor

-mass= xxx ---> Calculate mass of the material xxx for the fuel zone

End of Help Command.

Figura 3-11: Salida a línea de comando de DIANA al solicitarse la ayuda

3.3.2 Análisis del archivo Error.h

La presente clase (Error) es la responsable de reportar todos los errores que

ocurren durante la ejecución del programa. Es la que almacena los errores ocurridos y los imprime cuando se lo solicita. El mecanismo es el siguiente: Cuando ocurre un error se crea un objeto de esta clase, se lo inicializa con los detalles del error y se lo lanza con la función throw 10 hasta que el catch correspondiente lo agarre y lo procese (imprimiéndolo en la línea de comando o un archivo si corresponde). La declaración puede apreciarse en la figura 3-12.

#ifndef _Error_H_

#define _Error_H_

#include <iostream>

#include <string>

using namespace std;

class Error;

class Error

{

friend ostream &operator<<(ostream &os, const Error &z);

string Quien, Que, Donde;

int clase;

public:

Error(int c=0, string Qi="Unknown", string Qe="Unknown", string D="Unknown");

};

#endif

Figura 3-12: Implementación del archivo Error.h

Vemos las características básicas anteriormente mencionadas para el archivo

Help.h, además de cuatro variables que contienen los datos ingresados por la función en la que se produjo el error. Entre ellas se encuentra la clase de error cometido codificado por un número entero. Dicha capacidad permite que la clase sea práctica para administrar errores en programas de gran magnitud, ya que se puede utilizar un código numérico descrito en el manual con referencias a la posible causa del error y su solución más usual.

Page 47: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

38

3.3.3 Análisis del archivo Cross_Sections.h

Aquí tenemos la declaración de las dos clases base para tratar las secciones

eficaces. Estas clases son: Datos_MonoGrupo y Datos_MultiGrupo y se encuentran generalizadas para tratamiento a uno y dos macro-grupos respectivamente. Analizaremos el archivo en dos partes, primero veremos la declaración de la clase

Datos_MonoGrupo y luego la de Datos_MultiGrupo.

3.3.3.1 La clase Datos_MonoGrupo

De ésta heredará cualquier objeto que calcule y almacene constantes a un grupo de energía, como veremos más adelante. En particular, está orientado al almacenamiento de secciones eficaces puntuales. La declaración de la clase se aprecia en la figura 3-13, que muestra la primera mitad del archivo Cross_Sections.h.

#ifndef _Cross_Sections_H_

#define _Cross_Sections_H_

#include <Error.h>

#include <vector>

#include <string>

using namespace std;

class Datos_MonoGrupo;

class Datos_MultiGrupo;

class Datos_MonoGrupo

{

friend ostream &operator<<(ostream &os, const Datos_MonoGrupo &z);

protected:

double SIGMAf, nuSIGMAf, SIGMAa, SIGMAcr, SIGMAs, SIGMAtr, nu, SIGMApot;

double mu, epsilon;

string Nombre;

public:

virtual double Get_SIGMAf() const;

virtual double Get_SIGMAcr() const;

virtual double Get_epsilon() const;

virtual double Get_mu() const;

virtual double Get_nu() const;

virtual double Get_SIGMAa() const;

virtual double Get_SIGMAs() const;

virtual double Get_SIGMApot() const;

virtual double Get_SIGMAtr() const;

virtual double Get_nuSIGMAf() const;

virtual string Get_Nombre() const;

virtual void Set_SIGMAf(double valor);

virtual void Set_SIGMAcr(double valor);

virtual void Set_SIGMAa(double valor);

virtual void Set_SIGMAs(double valor);

virtual void Set_SIGMAtr(double valor);

virtual void Set_epsilon(double valor);

virtual void Set_mu(double valor);

virtual void Set_nu(double valor);

virtual void Set_SIGMApot(double valor);

virtual void Set_nuSIGMAf(double valor);

virtual void Set_Nombre(string N);

Datos_MonoGrupo(string N);

};

Figura 3-13: Implementación del archivo Cross_Sections.h (1º parte)

De esta declaración vemos que no es más que un contenedor de datos. Su

constructor requiere que le demos un nombre que identifique a qué corresponde la información almacenada, que puede ser solicitado o reemplazado a posteriori por las correspondientes funciones “Get_...” y “Set_...” respectivamente. De los nombres de las variables de la clase se puede deducir que tipo de información se espera que almacene

Page 48: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

39

este contenedor. Vemos también que para cada variable hay dos funciones que caracterizan la interfaz con el usuario. Éstas son las que permiten el acceso a la información contenida y controlan que los valores ingresados para cada una de las variables se encuentre dentro de los límites físicos posibles.

3.3.3.2 La clase Datos_MultiGrupo

Análogamente a la clase descrita anteriormente, ésta permite el almacenamiento

de datos, pero orientado a esquemas multi-grupo. En la figura 3-14, que contiene la segunda mitad del archivo Cross_Sections.h, vemos que además posee declaración de cuatro funciones (Calcular_...). Éstas son las responsables de calcular, para todos los grupos, a partir de los datos ingresados: la sección eficaz de remoción sumando la de absorción con la de remoción por scattering (con expresiones como la ecuación 2-17), de transporte a partir de la de scattering (con expresiones como la ecuación 2-8), El coeficiente de difusión (con expresiones como la ecuación 2-7 y 2-16) y las longitudes de difusión (con expresiones como la ecuación 2-9).

class Datos_MultiGrupo

{

friend ostream &operator<<(ostream &os, const Datos_MultiGrupo &z);

protected:

static const double TEMP_2200=293.15;

static const double NUM_AVOGADRO=0.6023;

vector <double> SIGMAf, nuSIGMAf, SIGMAa, SIGMAcr, SIGMAs, SIGMAtr, L, D, SIGMArem, mu, epsilon;

double Energia_termica, Energia_fision, Temperatura, Temp_Neutron, SIGMApot;

string Nombre;

int NUM_GRUPOS;

virtual void Calcular_SIGMArem();

virtual void Calcular_D();

virtual void Calcular_L();

virtual void Calcular_SIGMAtr();

public:

virtual int Get_NUM_GRUPOS() const;

virtual void Set_SIGMArem(double valor);

virtual void Set_SIGMAf(double valor);

virtual void Set_epsilon(double valor);

virtual void Set_SIGMAcr(double valor);

virtual void Set_SIGMAa(double valor);

virtual void Set_SIGMApot(double valor);

virtual void Set_SIGMAs(double valor);

virtual void Set_D(double valor);

virtual void Set_L(double valor);

virtual void Set_SIGMAtr(double valor);

virtual void Set_nuSIGMAf(double valor);

virtual void Set_mu(double valor);

virtual void Set_Energias(double E_fis, double E_term);

virtual void Set_Temperatura(double Temp);

virtual void Set_Temp_Neutron(double Temp_Neutron);

virtual void Set_Nombre(string N);

virtual double Get_SIGMArem(int grupo) const;

virtual double Get_Temperatura() const;

virtual double Get_Temp_Neutron() const;

virtual double Get_SIGMAf(int grupo) const;

virtual double Get_SIGMAcr(int grupo) const;

virtual double Get_SIGMAa(int grupo) const;

virtual double Get_SIGMAs(int grupo) const;

virtual double Get_D(int grupo) const;

virtual double Get_L(int grupo) const;

virtual double Get_SIGMApot() const;

virtual double Get_SIGMAtr(int grupo) const;

virtual double Get_nuSIGMAf(int grupo) const;

virtual double Get_epsilon(int grupo) const;

virtual double Get_mu(int grupo) const;

virtual string Get_Nombre() const;

Datos_MultiGrupo(string N, int Grupos);

};

#endif

Figura 3-14: Implementación del archivo Cross_Sections.h (2º parte)

Page 49: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

40

A diferencia de la clase anterior, ésta contiene datos adicionales de condensación, como la temperatura del material y del moderador, la energía de corte del grupo térmico y la media de fisión, el número de grupos utilizados, y constantes como la temperatura correspondiente a las secciones eficaces tabuladas (a 2200 m/s) o el número de Avogadro.

3.3.4 Análisis del archivo CS_Data.h

Aquí tenemos agrupadas las declaraciones de los hijos de las clases

Datos_MonoGrupo y Datos_MultiGrupocomo mostramos anteriormente con las figuras 3-7 y 3-8. Éstos se encargan de completar los datos que faltan y pueden deducirse de los ingresados. A su vez, combinan los datos de distintos isótopos para formar materiales y diversos materiales para formar zonas. Éstas últimas son las que serán utilizadas para efectuar los cálculos de núcleo solicitados al programa.

Como el archivo engloba las declaraciones para tres objetos, partiremos el archivo en tres partes y las analizaremos por separado.

3.3.4.1 La clase Datos_Isótopos

En objetos de esta clase se almacenan los datos de los isótopos (secciones

eficaces microscópicas puntuales) y se efectúan los cálculos para completar los datos que pueden deducirse de los ingresados, como lo es la sección eficaz de captura

radiactiva si se conocen la de absorción y la de fisión. Vemos en la figura 3-15 el primer tercio del archivo. Recordemos que además de las funciones y variables que vemos en la declaración de la clase, Datos_Isótopos también posee las variables y funciones del padre (Datos_MonoGrupo).

#ifndef _CS_Data_H_

#define _CS_Data_H_

#include <math.h>

#include <gsl/gsl_integration.h>

#include <Cross_Sections.h>

#include <vector>

#include <CS_Data_Functions.h>

#include <gsl/gsl_sf_expint.h>

class Datos_Isotopos;

class Datos_Materiales;

class Datos_Zonas;

class Datos_Isotopos: public Datos_MonoGrupo

{

int Masa_Atomica;

void Calcular_mu();

void Calcular_epsilon();

public:

int Get_Masa_Atomica() const;

double Get_Ieff_de_tabla(string cual, double Spot, double Temp, bool Warnings=false) const;

void Cargar_Standard(string N, bool Warnings=false);

void Set_Masa_Atomica(int MA);

void Calcular();

Datos_Isotopos(string N, int MA=-1);

};

Figura 3-15: Implementación del archivo CS_Data.h (1º Parte)

Page 50: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

41

Para comenzar, vemos que el constructor requiere un nombre, para llenar el campo que hereda de su padre y acepta un número entero como segundo argumento. Éste último es la masa atómica del isótopo al que pertenecen los datos contenidos en el objeto creado. Si no fue ingresada en el momento de creación del objeto o si simplemente se la desea cambiar, ésta puede ser ingresada en cualquier otro momento a través de su función “Set_...” correspondiente. Para extraer cada dato del objeto se puede invocar su función “Get_...” (en este caso “Get_Masa_Atomica”). Observamos también dos funciones privadas (“Calcular_mu” y “Calcular_epsilon”). Son utilizadas por la función miembro pública “Calcular” para obtener el coseno medio (como 2/3A) y el decremento logarítmico medio mediante la ecuación 2-11 respectivamente. Al invocar a la función “Calcular”, también se verifica que todas las variables tengan sus valores y se calculan los faltantes.

Adicionalmente tenemos una función que nos permite cargar de un archivo (Standard_Isotopes.dat) datos de isótopos que ya fueron recopilados y ordenados. Esto permite una mayor velocidad para la preparación de los archivos de entrada (Input) para cálculo sin pérdida de generalidad. La función tiene dos argumentos: El primero es un objeto de clase string (es decir, un contenedor de cadenas de caracteres) que le indica el nombre del isótopo que uno desea cargar (por ejemplo “U235” para el Uranio 235); El segundo es una variable booleana (es decir, que puede valer “0” o “1” únicamente) que indica si deseamos que nos informe los percances menores (Warnings) con los que se enfrentó el procedimiento de carga.

Por último hay una función (“Get_Ieff_de_tabla”) que se encarga de abrir el archivo que contiene las tablas de integrales efectivas de resonancia como la tabla 2-2 (Effective_Resonance_Integrals.dat) y extraer, por una simple interpolación lineal, el valor de la integral efectiva de resonancia para la temperatura de la mezcla y la σp requerida (ver sección 2.2). Para hacer esto, los parámetros requeridos son, que tipo de integral de resonancia se busca (captura radiactiva, absorción o fisión), la sección

eficaz macroscópica de scattering potencial de la mezcla, la temperatura de la mezcla y la variable booleana antedicha. En este caso, un ejemplo de percance que podría imprimir la función (de requerírsele con “Warnings”=”true” o “1”) es que la temperatura o la σp se encuentra fuera del rango tabulado, por lo cual se procede a extrapolar y se emite un mensaje.

3.3.4.2 La clase Datos_Materiales

En el segundo tercio del archivo (figura 3-16) vemos la declaración de la clase

que se encarga de almacenar los datos de cada material y calcular sus constantes en base a los de los isótopos que lo componen.

Comencemos el análisis viendo que hay dos objetos miembro de la clase vector. Éstos permiten el almacenamiento de vectores de variables u objetos genéricos, es decir, de la clase que uno desee. En nuestro caso los utilizaremos para almacenar una lista de los nombres de los isótopos que componen el material y sus fracciones isotópicas correspondientes (en los vectores Lista_de_isotopos y Relacion_isotopica respectivamente). En la interfaz (funciones publicas), vemos a su vez, que asociados a éstos dos objetos hay funciones “Set_...” y “Get_...” que permiten agregar o solicitar elementos a los vectores y conocer sus tamaños, controlando que no se ingresen valores inadecuados ni se pidan datos inexistentes. También tenemos dos variables (Masa_Molecular y densidad) que tienen su interfaz.

Page 51: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

42

class Datos_Materiales: public Datos_MultiGrupo

{

vector <double> Relacion_isotopica;

double Masa_Molecular, densidad;

vector <string> Lista_de_isotopos;

double Aplicar_Wescott(string Tipo, double SIGMA, string N, bool Warnings=false) const;

void Calcular_mu(const vector <Datos_Isotopos> &Isotopo);

void Calcular_epsilon(const vector <Datos_Isotopos> &Isotopo);

void Calcular_Masa_Molecular(const vector <Datos_Isotopos> &Isotopo);

void Calcular_SIGMAs(const vector <Datos_Isotopos> &Isotopo);

void Calcular_SIGMAf(const vector <Datos_Isotopos> &Isotopo, bool Warnings=false, bool Wescott=true);

void Calcular_nuSIGMAf(const vector <Datos_Isotopos> &Isotopo, bool Warnings=false, bool Wescott=true);

void Calcular_SIGMAa(const vector <Datos_Isotopos> &Isotopo, bool Warnings=false, bool Wescott=true);

void Calcular_SIGMAcr(const vector <Datos_Isotopos> &Isotopo, bool Warnings=false, bool Wescott=true);

void Calcular_SIGMApot(const vector <Datos_Isotopos> &Isotopo);

public:

void Cargar_Standard(string N, bool Warnings=false);

void Set_Lista_de_isotopos(string isotopo);

void Set_Relacion_Isotopica(double cant_de_atomos);

void Set_Masa_Molecular(double MM);

void Set_Densidad(double valor);

double Get_Densidad() const;

string Get_Isotopo(int este) const;

int Get_Cantidad_de_Isotopos() const;

double Get_Relacion_Isotopica(int esta) const;

double Get_Masa_Molecular() const;

void Calcular(const vector <Datos_Isotopos> &Isotopo, bool Warnings=false, bool Wescott=true);

void Crear_Necesarios(vector <Datos_Materiales> &Material, vector <Datos_Zonas> &Zona);

Datos_Materiales(string N, int MM=-1, int Grupos=2);

};

Figura 3-16: Implementación del archivo CS_Data.h (2º Parte)

Entre las funciones públicas hay una (Cargar_Standard) que, al igual que en el

caso de la sección 3.3.4.1, permite obtener materiales cuyas secciones eficaces y parámetros adicionales ya fueron calculados e ingresados en un archivo (Standard_Materials.dat). Otra (Crear_Necesarios) que se fija qué materiales son requeridos por las zonas y si no existen, se fija si los puede crear. Un caso típico de dicha situación es si se define un material en base a una mezcla de isótopos con una temperatura determinada y en una zona se usa con otra. En ese caso, la información necesaria para la creación de varios materiales que contiene los mismos isótopos pero distintas temperaturas de mezcla o del neutrón (ver Capítulo 2 ) se encuentra disponible en los vectores antedichos. Por lo tanto, esta función creará un clon del material en cuestión, copiando los vectores (Lista_de_isotopos y Relacion_isotopica) y las variables internas adecuadas (Temperatura, Temp_Neutron, Masa_Molecular y densidad) pero dejando sin llenar los campos heredados (como SIGMAf, SIGMAa, etc.). Y por último tenemos la función Calcular, que se encarga de verificar que todos los datos tengan valores adecuados. Es decir que al invocarse se fija qué variables no están inicializadas y trata de deducirlas de las que si lo están, como por ejemplo el caso de SIGMAcr con SIGMAf y SIGMAa inicializadas. En caso de no poder formarlas (como en el caso de que falten SIGMAcr, SIGMAf y SIGMAa), recurre a las funciones privadas

“Calcular_...”.

Entre las funciones privadas tenemos las “Calcular_...”, que se fijan si hay información de la composición isotópica del material y calculan el valor requerido a partir de ecuaciones como las 2-10 para la Calcular_mu, 2-12 y 2-18 para la Calcular_epsilon, 2-5 para las Calcular_SIGMAs y Calcular_SIGMApot y 2-4, 2-5 y 2-14 para las Calcular_SIGMAf, Calcular_nuSIGMAf, Calcular_SIGMAa y Calcular_SIGMAcr. Por su función, es necesario entregarle una lista de todos los isótopos que el usuario declaró y eso se hace pasándole como argumento un vector que almacena todos los isótopos.

Page 52: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

43

3.3.4.3 La clase Datos_Zonas

Ésta es similar a la anterior, sólo que confecciona zonas en vez de materiales,

aplicando las expresiones anteriores junto con la ecuación 2-6, por ello destacaremos las diferencias.

Vemos en la declaración mostrada en la figura 3-17 que, además de los vectores descritos en la sección 3.3.4.2, hay un vector que contiene los nombres de los materiales que el usuario desea incluir en su cálculo de factor de desventaja (sección 2.3) y corrección del factor de fisión (sección 1.7). Por más que parezca un dato redundante (se puede ver cuál material es combustible evaluando la sección eficaz de fisión), se conservó porque se pensó que el usuario podría querer designar cuál de los materiales físiles desea incluir en su corrección a fin de ver cual es más importante. También hay nuevas variables declaradas utilizadas para éste fin: factor_de_desventaja_termico, factor_de_desventaja_rapido, espesor_de_moderador, espesor_de_combustible y factor_de_fision_fision.

class Datos_Zonas: public Datos_MultiGrupo

{

friend ostream &operator<<(ostream &os, const Datos_Zonas &Z);

static const int NUM_GRUPOS=2;

vector <string> lista_de_materiales;

vector <double> fraccion_de_volumen;

vector <string> Fuel_Material;

string Fuel_Geometry;

double factor_de_desventaja_termico, factor_de_desventaja_rapido, espesor_de_moderador,

espesor_de_combustible, factor_de_fision_fision;

void Calcular_mu(const vector <Datos_Materiales> &Material);

void Calcular_epsilon(const vector <Datos_Materiales> &Material);

void Calcular_SIGMAcr(const vector <Datos_Isotopos> &Isotopo, const vector <Datos_Materiales> &Material,

bool Warnings=false);

void Calcular_SIGMAf(const vector <Datos_Isotopos> &Isotopo, const vector <Datos_Materiales> &Material,

bool Warnings=false);

void Calcular_nuSIGMAf(const vector <Datos_Isotopos> &Isotopo, const vector <Datos_Materiales> &Material,

bool Warnings=false);

void Calcular_SIGMAa(const vector <Datos_Isotopos> &Isotopo, const vector <Datos_Materiales> &Material,

bool Warnings=false);

void Calcular_SIGMApot(const vector <Datos_Materiales> &Material);

void Calcular_SIGMAtr(const vector <Datos_Materiales> &Material);

void Calcular_SIGMAs(const vector <Datos_Materiales> &Material);

void Calcular_factor_de_desventaja_rapido(const vector <Datos_Isotopos> &Isotopo, const vector

<Datos_Materiales> &Material, bool Warnings=false);

void Calcular_factor_de_desventaja_termico(const vector <Datos_Isotopos> &Isotopo, const vector

<Datos_Materiales> &Material, bool Warnings=false);

void Calcular_factor_de_fision_fision(const vector <Datos_Isotopos> &Isotopo, const vector

<Datos_Materiales> &Material, bool Warnings=false);

public:

string Get_Material(int este) const;

int Get_Cantidad_de_Materiales() const;

double Get_Fraccion_de_Volumen(int esta) const;

Datos_Zonas(string N, int Grupos=2);

void Set_Lista_de_materiales(string material);

void Set_Fraccion_de_volumen(double fraccion);

void Calcular_Temp_Neutron(vector <Datos_Zonas> &Zona);

void Calcular(const vector <Datos_Isotopos> &Isotopo, const vector <Datos_Materiales> &Material,

vector <Datos_Zonas> &Zona, bool Calcular_factor_de_desventaja=true, bool Warnings=false);

void Set_Fuel_Material(string Este);

string Get_Fuel_Material(int Este);

int Get_Fuel_Materials_Quantity();

void Set_Fuel_Geometry(string Esta);

string Get_Fuel_Geometry() const;

void Set_factor_de_desventaja_termico(double valor);

double Get_factor_de_desventaja_termico() const;

void Set_factor_de_desventaja_rapido(double valor);

double Get_factor_de_desventaja_rapido() const;

void Set_Fuel_Thickness(double valor);

double Get_Fuel_Thickness() const;

void Set_Moderator_Thickness(double valor);

double Get_Moderator_Thickness() const;

double Get_factor_de_fision_fision() const;

void Set_Fraccion_de_Volumen(double valor, int pos);

};

#endif

Figura 3-17: Implementación del archivo CS_Data.h (3º Parte)

Page 53: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

44

Para el cálculo de ambos factores de desventaja (el térmico y el rápido) vemos que hay dos funciones privadas que aplican las ecuaciones 2-21 a 2-26. Adicionalmente, tenemos la función Calcular_factor_de_fision_fision que calcula la componente del factor de fisión rápida que corresponde a los neutrones que no llegan a escapar del combustible antes de inducir una nueva fisión (ecuaciones 1-44, 1-45, 1-46 y 1-47).

Un detalle a tener en cuenta es que en éste caso se sobrecargó la función privada “Calcular_SIGMAtr” dado que no sería adecuado aplicar la ecuación 2-8 por que la sección eficaz de absorción está modificada por el factor de desventaja.

Adicionalmente a las funciones “Set_...” y “Get_...” de la interfaz a las que a dicha altura no hace falta referirse, hay una (Set_Fraccion_de_Volumen (double valor,

int pos)) que permite cambiar una fracción de volumen puntual. Esto se debe a la capacidad del programa de efectuar cálculos variacionales cambiando dicho parámetro y repitiendo el cálculo.

Como la temperatura del neutrón (ver sección 2.1) debe ser la temperatura del moderador se toma la temperatura de las zonas con nombre (el campo nombre) Moderator1 y Moderator2 como temperatura del neutrón para las zonas llamadas Fuel1, Moderator1 y Reflector1 y Fuel2, Moderator2 y Reflector2 respectivamente. Ésta es la tarea que efectúa la función pública “Calcular_Temp_Neutron” y por ello recibe como argumento un vector con todas las zonas que el usuario declaró.

Y como es usual la función Calcular se encarga de verificar que todos los parámetros estén inicializados y de calcular (de ser posible) los que no lo estén.

3.3.5 Análisis del archivo Calculo.h

Entramos ahora en la descripción de las tres últimas clases del programa, que

son las que se encargan de efectuar el cálculo de núcleo propiamente dicho. La primera que analizaremos es la que se encuentra en el archivo “Calculo.h”. Como se observa claramente en la figura 3-9, esta clase es de la que heredan las dos que efectúan el cálculo de los reactores. Por lo tanto, lo que contiene son las funciones y variables comunes para el cálculo de reactores esféricos y cilíndricos.

Observando la figura 3-18 podemos apreciar que se declaran como variables protegidas (“protected”) los siguientes parámetros, mencionados por orden de aparición (para detalles ver el Capítulo 1 ):

• Error absoluto del factor de multiplicación efectivo • Flujo del grupo rápido • Flujo del grupo térmico • Factor de multiplicación infinito rápido • Factor de multiplicación infinito térmico • Relación de flujos medios • La inversa de la longitud de difusión del grupo rápido en el reflector • La inversa de la longitud de difusión del grupo térmico en el reflector • Factor de multiplicación efectivo • Factor de multiplicación infinito • Buckling Principal • Buckling Secundario • Factor de acoplamiento de la solución principal del núcleo

Page 54: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

45

• Factor de acoplamiento de la solución secundaria del núcleo • Factor de acoplamiento de la solución principal del reflector • Reactividad • Factor de fisión con el reactor desnudo • Factor de fisión con el reactor reflejado • Probabilidad de escape rápida • Probabilidad de no-fuga térmica • Probabilidad de no-fuga del grupo térmico • Probabilidad de no-fuga del grupo rápido • Ahorro por reflector • Valor booleano que indica si el usuario desea ver las advertencias • Valor booleano que indica si el usuario desea aplicar el factor de

Wescott • Valor booleano que indica si el usuario desea calcular los flujos

neutrónicos • Nombre del Reactor

Para cada una de las variables mencionadas tenemos sus respectivas funciones

“Set_...” y “Get_...” públicas que permiten a usuario de la clase, utilizar a los objetos como herramientas de cálculo o simples contenedores de datos. Se decidió hacerlo de esta manera para no quitarle generalidad a la clase.

Al igual que sucedía con la clase Datos_Multigrupo (sección 3.3.3.2), todos los hijos de ésta tienen ciertos cálculos en común. En este caso son los parámetros como probabilidad de escape a las resonancias (p), factor de fisión (ε), el Buckling principal y secundario, factores de multiplicación infinitos, las inversas de las longitudes de difusión del reflector (κ1 y κ2) y factores de acoplamiento (S1, S2 y S3). Éstos se calculan mediante las funciones Calcular_Combustible y Calcular_Reflector utilizando las ecuaciones 1-40, 1-43, 1-48, 1-11, 1-12, 1-37, 1-38, 1-39, 1-15, 1-16, 1-21, 1-22, 1-23 respectivamente. Estas funciones no son invocadas desde una función pública Calcular dado que están pensadas para que sean invocadas por sus hijos, como sucedía en el caso de la clase Datos_Multigrupo.

Una última característica, que tal vez valga la pena mencionar, es que el constructor de ésta clase recibe un parámetro booleano (“C_F”) que le indica al objeto si el usuario quiere que se calculen los flujos neutrónicos. dicho valor se almacena en la variable “Calcular_Flujo”.

Page 55: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

46

#ifndef _Calculo_H_

#define _Calculo_H_

#include <CS_Data.h>

#include <iostream>

#include <string>

#include <fstream>

#include <Error.h>

#include <math.h>

class Calculo

{

friend ostream &operator<<(ostream &os, const Calculo &R);

protected:

double error_keff, Flujo_rapido, Flujo_termico, krapido, ktermico,

relacion_de_flujos, k1, k2, keff, kinf, Bpri, Bsec, S1, S2, S3, Reactividad, factor_de_fision,

factor_de_fision_reflejado, prob_de_escape_rapida, prob_no_fuga_termica, prob_no_fuga_rapida;

double Ahorro;

bool Warnings, Wescott, Calcular_Flujo;

string Nombre;

void Calcular_Combustible(const Datos_Zonas &Combustible, bool

dos_grupos_y_medio=true);

void Calcular_Reflector(const Datos_Zonas &Reflector);

public:

Calculo(string N="Reactor Calculus", bool C_F=true);

void Set_Bprincipal(double valor);

double Get_Bprincipal() const;

void Set_Ahorro(double valor);

double Get_Ahorro() const;

void Set_Reactividad(double valor);

double Get_Reactividad() const;

void Set_Bsecundario(double valor);

double Get_Bsecundario() const;

void Set_S1(double valor);

double Get_S1() const;

void Set_S2(double valor);

double Get_S2() const;

void Set_Flujo_termico(double valor);

double Get_Flujo_termico() const;

void Set_Flujo_rapido(double valor);

double Get_Flujo_rapido() const;

void Set_S3(double valor);

double Get_k1() const;

void Set_Relacion_de_flujos(double valor);

double Get_Relacion_de_flujos() const;

void Set_k1(double valor);

double Get_k2() const;

void Set_k2(double valor);

double Get_S3() const;

void Set_kinf(double valor);

double Get_kinf() const;

void Set_krapido(double valor);

double Get_krapido() const;

void Set_ktermico(double valor);

double Get_ktermico() const;

void Set_prob_de_escape_rapida(double valor);

double Get_prob_de_escape_rapida() const;

void Set_factor_de_fision(double valor);

double Get_factor_de_fision() const;

void Set_prob_no_fuga_termica(double valor);

void Set_prob_no_fuga_rapida(double valor);

void Set_keff(double valor);

void Set_error_keff(double valor);

double Get_prob_no_fuga_termica() const;

double Get_prob_no_fuga_rapida() const;

double Get_keff() const;

double Get_error_keff() const;

};

#endif

Figura 3-18: Implementación del archivo Claculo.h

3.3.6 Análisis del archivo C_REsferico.h

Como fue indicado en la sección 1.1, para efectuar un cálculo de un reactor

cilíndrico (caso general) por difusión debemos utilizar la aproximación del ahorro por

reflector. Para ello debemos calcular un ahorro por reflector de una esfera y luego seguir el procedimiento anteriormente discutido.

Por ello se implementó una clase que calcule reactores esféricos. Su declaración (figura 3-19) muestra las variables Radio_Critico y Ahorro y sus funciones de interfaz.

Page 56: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

47

#ifndef _C_REsferico_H_

#define _C_REsferico_H_

#include <Calculo.h>

#include <CS_Data.h>

#include <iostream>

#include <string>

#include <fstream>

#include <Error.h>

#include <math.h>

class REsferico;

class REsferico: public Calculo

{

friend ostream &operator<<(ostream &os, const REsferico &R);

protected:

double Radio_Critico;

double Ahorro;

void Calcular_Radio_Critico(const Datos_Zonas &Combustible, const Datos_Zonas &Reflector, bool

dos_grupos_y_medio=true, double T=100000, double error=0.0000001);

public:

void Calcular(const Datos_Zonas &Combustible, const Datos_Zonas &Reflector, bool

dos_grupos_y_medio=true, double T=100000);

REsferico(string N="Spherical Reactor", bool C_F=true);

void Set_Ahorro(double valor);

double Get_Ahorro() const;

void Set_Radio_Critico(double valor);

double Get_Radio_Critico() const;

};

#endif

Figura 3-19: Implementación del archivo C_REsferico.h

A través de la función Calcular se invoca a las funciones Calcular_Combustible

y Calcular_Reflector heredadas y luego a la Calcular_Radio_Critico. Con ésta se calcula el radio de la esfera crítica reflejada y desnuda, hallando así el ahorro por reflector. También se calculan todos los parámetros heredados (descritos en la sección anterior) con versiones simplificadas (para geometría esférica) de las ecuaciones del Capítulo 1 .

3.3.7 Análisis del archivo C_RCilindrico.h

Como último paso, se encuentra el cálculo del reactor cilíndrico. La clase posee

ocho variables privadas, que son simplemente variables intermedias del cálculo principal y tres variables protegidas que almacenan los resultados del cálculo del radio crítico (de solicitarse) con su error.

El usuario puede pedir dos tipos de calculo a objetos de esta clase: Factor de multiplicación efectivo o Radio crítico. Para cada uno de los modos antedichos hay una función distinta, que se identifican fácilmente en la figura 3-20. En ambos casos, es invocada por la función pública Calcular, después de haber corrido las funciones Calcular_Combustible y Calcular_Reflector. Ambos métodos buscan el radio crítico (ya sea del reactor real o del asociado en k) empleando la ecuación de criticidad (1-30) para los métodos desarrollados en las secciones 1.1.1 y 1.1.2. El radio (o factor de multiplicación efectivo) final es el valor medio entre los dos valores obtenidos mediante los dos procedimientos y siendo éstos las cotas máxima y mínima del valor buscado. Por ello el error que emite el código es simplemente la diferencia entre el valor medio y uno de los extremos.

Page 57: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

48

#ifndef _C_RCilindrico_H_

#define _C_RCilindrico_H_

#include <iostream>

#include <string>

#include <fstream>

#include <math.h>

#include <CS_Data.h>

#include <Error.h>

#include <gsl/gsl_sf_bessel.h>

#include <Calculo.h>

class RCilindrico: public Calculo

{

friend ostream &operator<<(ostream &os, const RCilindrico &R);

double B2pri, B2sec, k21, k22, B1pri, B1sec, k11, k12;

protected:

double Radio, error_Radio, Ahorro;

bool Warnings, Wescott;

void Calcular_Radio_Critico(const Datos_Zonas &Combustible, const Datos_Zonas

&Reflector, double Altura0, double Ahorro, bool dos_grupos_y_medio=true, double T=100, double

error=0.00000001);

void Calcular_keff(const Datos_Zonas &Combustible, const Datos_Zonas &Reflector,

double Altura0, double Ahorro, bool dos_grupos_y_medio=true, double T=100, double

error=0.0000001);

public:

void Calcular(const Datos_Zonas &Combustible, const Datos_Zonas &Reflector, double

Altura0, double Ahorro, bool dos_grupos_y_medio=true, double T=100, double error=0.00000001);

RCilindrico(string N="Cilindrical Reactor", double R=-1, bool C_F=true);

void Set_Radio(double valor);

double Get_Radio() const;

void Set_error_Radio(double valor);

double Get_error_Radio() const;

void Set_Ahorro(double valor);

double Get_Ahorro() const;

};

#endif

Figura 3-20: Implementación del archivo C_RCilindrico.h

3.4 Confección del archivo de entrada Ahora que conocemos las ecuaciones que representa nuestro problema físico y la

estructura general del programa que desarrollamos para resolverlo nos centraremos en la operación del programa. Veremos como indicarle qué queremos calcular, cómo conformar las zonas con mezclas de materiales o isótopos y cómo pedirle que realice cálculos variacionales. Para esto estructuraremos el presente capítulo recorriendo toda la gama de posibilidades de las que disponemos a la hora de crear un archivo de entrada para el DIANA.

3.4.1 Comandos

La forma de indicar al programa los valores de las variables, las geometrías

involucradas y las características que componen cada zona es a través de ciertas palabras claves denominadas comandos. Algunos comandos implican la utilización de sub-comandos. Estos últimos son palabras clave que se utilizan sólo dentro del contexto de dichos comandos. Es importante recordar cuáles son estos comandos, ya que puede ocurrir que haya dos sub-comandos pertenecientes a dos comandos distintos que sean invocados por la misma palabra clave y tengan distinta utilización. Un claro ejemplo de este caso es el sub-comando "New" de los comandos "Isotopes" y "Materials". En el caso del de "Isotopes", el parámetro "SIGMAf" tiene una sintaxis <SIGMAf xx>, pero

Page 58: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

49

en el caso del de "Materials" tiene una sintaxis <SIGMAf xx1 xx2>. Esto puede generar errores que a veces pasan desapercibidos por el programa o bien el mismo emite una advertencia (Warning) y el usuario no lo ve por estar desactivada la opción de impresión de este tipo de mensajes ("-w").

Para destacar las líneas del programa, cuando se cita una línea de algún archivo, que el usuario puede o debe escribir la colocamos entre símbolos de mayor-menor (< >).

Ahora veremos uno por uno, todos los comandos que el programa acepta en el archivo de entrada, junto con una pequeña descripción de lo que significan y sus opciones.

<Geometry yy> El comando "Geometry" especifica la geometría del arreglo de las dos zonas

(Combustible y Moderador). Las variables que acepta (yy) son:

• Sphere

• Cylinder

En ambos casos se asume que la zona llamada "Fuel1" se encuentra en el centro

del arreglo y la zona llamada "Moderator1" se encuentra recubriendo la anterior. <Reflector xx> Este comando especifica el espesor del reflector (xx) expresado en centímetros.

El reflector en este reactor a dos zonas es la zona denominada "Moderator1". Si este comando es omitido se asumirá un valor estándar de 100000 cm para el caso de la geometría esférica y de 100 cm para el caso de estar corriendo una geometría cilíndrica.

Algunos valores de espesores pueden causar errores de desborde, dado que en el caso de los cálculos cilíndricos, las funciones de Bessel involucradas son obtenidas por medio de interpolación de tablas.

<Height xx> En el caso de los cálculos de geometrías cilíndricas, será necesario especificar

una altura (xx) del núcleo (altura de los elementos combustibles). Ello se realiza a través de este comando, en centímetros. Este valor es necesario para dicha geometría y no puede evadirse su inclusión en el archivo de entrada, dado que no tiene valor predeterminado.

<Radius xx> Para los cálculos de ambas geometrías, puede especificarse un radio de núcleo

(xx). En este caso, el programa calcula los todos parámetros utilizando el método del Reactor Asociado en k. En caso de no especificarse un radio, el programa calcula el radio critico (keff=1) y todos los parámetros del reactor critico.

Page 59: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

50

<Modify yy> Este comando es utilizado para hacer sucesivas corridas variando un único

parámetro (yy) desde un valor mínimo hasta uno máximo en intervalos regulares. Los parámetros (yy) que pueden modificarse en un ciclo son:

• Density

• Radius

• Height

• Reflector

• Volume_Fraction

Para todas estas modificaciones la sintaxis es la misma, excepto para los que

efectúan cambios en los materiales (como, por ejemplo, la modificación de la densidad). Para el caso de la modificación de densidad:

<Modify Density yy> yy = Nombre del material que se

desea variar <Minimum xx> xx = Valor mínimo deseado <Maximum xx> xx = Valor máximo deseado <Step xx> xx = Valor que se desea adicionar en

cada nuevo calculo Las tres funciones que fijan los valores numéricos pueden especificarse en

cualquier orden deseado. Los valores (mínimo, máximo y paso) deben colocarse en las unidades en las

que se ingresan normalmente, por ejemplo, si es la altura del núcleo ("Height"), la unidad adecuada será centímetros.

En el caso de la modificación de la fracción de volumen de algún material en una zona:

<Modify Volume_Fraction> <Zone yy> yy = Nombre de la zona en la que se

encuentran los materiales a variar <Material1 yy> yy = Nombre del material cuya fracción de

volumen se debe modificar <Material2 yy> yy = Nombre del material cuya fracción de

volumen se modificará para que la fracción de volumen total se conserve

<Minimum xx> xx = Valor mínimo deseado <Maximum xx> xx = Valor máximo deseado <Step xx> xx = Valor que se desea adicionar en cada

nuevo calculo

Page 60: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

51

Para los que no varían parámetros que afectan a la confección de las secciones eficaces:

<Modify yy> yy = Nombre del parámetro <Minimum xx> xx = Valor mínimo deseado <Maximum xx> xx = Valor máximo deseado <Step xx> xx = Valor que se desea adicionar en cada

nuevo calculo <Special_Output yy> Hay casos en los que la información que el programa brinda es redundante para

el análisis que se necesita y los parámetros de interés son pocos (Esto se presenta típicamente cuando se hacen muchas corridas variando uno o pocos parámetros para ver la incidencia en el radio critico o bien en el factor de multiplicación efectivo). En estos casos se puede utilizar el comando "Special_Output" para especificar uno por uno los parámetros que se quieren como resultado del cálculo.

Por mas que la información en el archivo de salida del programa sea reducida, el mismo calcula la misma cantidad de parámetros, por lo tanto, esta función no puede utilizarse para agilizar el calculo.

Los parámetros que pueden pedirse a este comando son:

• Effective_Multiplication_Factor • Radius

<Fission_Energy xx> Este comando se utiliza para fijar el valor de energía máxima del grupo rápido

(típicamente la energía media de fisión). Dicha energía (xx) debe ingresarse en eV (electronVolts). Este parámetro posee un valor predeterminado de 2000000 (2 MeV).

<Thermal_Energy xx> Este comando se utiliza para fijar el valor de energía máxima del grupo térmico.

Dicha energía debe ingresarse en eV (electronvolts). Este parámetro posee un valor predeterminado de 0.02 (20 meV).

<Isotopes> Los datos referentes a los isótopos se informan al programa por medio de este

comando. Este tiene dos formas de utilizarse. Si se desea cargar datos de isótopos nuevos debe invocarse el sub-comando

"New", que posee la siguiente sintaxis: <New yy1 yy2 yy3 ...> <zz1 xx11 xx12 xx13 ...>

Page 61: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

52

<zz2 xx11 xx12 xx13 ...> <zz3 xx11 xx12 xx13 ...> <... ... ... ... ...> <END> Donde: yy = Nombre del isótopo zz = Nombre del parámetro a cargar xx = Valor del parámetro a cargar END = Indica la finalización del sub-comando

Los parámetros (zz) pueden ser:

• SIGMAs

• SIGMAa

• SIGMAcr

• SIGMAtr

• SIGMAf

• SIGMApot

• nuSIGMAf

• nu

• epsilon

• Mass_Number

Donde: SIGMAs = Sección eficaz de scattering a 2200 m/s SIGMAa = Sección eficaz de absorción a 2200 m/s

SIGMAcr = Sección eficaz de captura radiactiva a 2200 m/s

SIGMAtr = Sección eficaz de transporte a 2200 m/s SIGMAf = Sección eficaz de fisión a 2200 m/s SIGMApot = Sección eficaz de scattering potencial nuSIGMAf = Sección eficaz de "nufisiones" a 2200 m/s nu = numero medio de neutrones por fisión térmica

epsilon = Decremento logarítmico medio de energía por colisión

Mass_Number = Numero másico. Todas las secciones eficaces se expresan en barns (10-24 cm2) y el número

másico se expresa en unidades de masa atómica (uma). Naturalmente, los tipos de datos que pueden ingresarse son redundantes, lo que

facilita el ingreso de los datos disponibles, dejando que el programa se encargue de calcular los demás (es decir que no es necesario ingresar los valores a todos los parámetros descritos).

Page 62: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

53

En cambio, si se desea cargar datos de isótopos estándar (cargados en "Standard_Isotopes.dat") debe invocarse el sub-comando "Standard", que posee la siguiente sintaxis:

<Standard yy1 yy2 yy3 ...> Donde yy son los nombres por los que se puede identificar los isótopos cargados

en "Standard_Isotopes.dat". Luego de terminar de cargar los datos de los isótopos de interés, se debe señalar

la conclusión del comando "Isotopes". Para ello, se escribe en la línea siguiente el indicador "END".

<Materials> Los materiales son, en general, mezclas de isótopos. Los mecanismos para

cargar los datos, son similares a los de los isótopos, excepto por uno, que consiste en la composición de distintos isótopos (cargados previamente) en distintas proporciones.

Los sub-comandos asociados a "Materials" son:

• New • Standard • Material_Mix

Para crear nuevos materiales ingresando sus características directamente como

sus secciones eficaces condensadas a dos grupos se utiliza la siguiente sintaxis: <New yy> <SIGMAf xx1 xx2> <SIGMAa xx1 xx2> <SIGMAcr xx1 xx2> <nuSIGMAf xx1 xx2> <SIGMAs xx1 xx2> <SIGMApot xx> <SIGMAtr xx1 xx2> <SIGMArem xx1 xx2> <mu xx1 xx2> <epsilon xx1 xx2> <Temperature xx> <Temp_Neutron xx> <Density xx> <Molecular_Mass xx> <D xx> <END> Donde: yy = Nombre del material a crear xx = Valor numérico en las unidades que correspondan según la

magnitud involucrada

Page 63: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

54

xx1 = Valor numérico correspondiente al grupo rápido xx2 = Valor numérico correspondiente al grupo térmico SIGMAf = Sección eficaz de fisión SIGMAa = Sección eficaz de absorción SIGMAcr = Sección eficaz de captura radiactiva nuSIGMAf = Sección eficaz de "nufision" SIGMAs = Sección eficaz de scattering SIGMApot = Sección eficaz de captura radiactiva SIGMAtr = Sección eficaz de transporte SIGMArem = Sección eficaz de remoción del grupo

mu = Coseno medio de scattering pesado con las secciones eficaces de scattering

epsilon = Decremento logarítmico medio de energía pesado con las secciones eficaces de scattering

Temperature = Temperatura del material Temp_Neutron = Temperatura del campo neutrónico térmico que

se encuentra presente en el material (Generalmente es la temperatura del moderador de los neutrones; ver sección 2.1)

Density = Densidad del material expresado en gramos/cm3 Molecular_Mass = Masa molecular del material D = Coeficiente de difusión térmica Otra forma de generar materiales es, al igual que en el caso de la generación de

isótopos es la incorporación de materiales estándar, es decir, que se encuentran en la base de datos de materiales del programa ("Standard_Materials.dat"). La sintaxis de este método es la siguiente:

<Standard yy1 yy2 yy3 ...> Donde yy son los nombres por los que se puede identificar los materiales

cargados en "Standard_Materials.dat". En caso de querer utilizar la información previamente cargada de isótopos para

mezclarlos y crear información de un material, el sub-comando indicado es "Isotope_Mix", y consta de la siguiente sintaxis:

<Isotope_Mix yy> <Temperature xx> <Density xx> <yy1 yy2 yy3 ...> <xx1 xx2 xx3 ...> <END> Donde: yy = Nombre del material que se esta generando xx = Valor numérico expresado en las unidades correspondientes yy1, yy2, yy3 = Nombres de los isótopos ingredientes

xx1, xx2, xx3 = Fracción numérica de cada isótopo ingrediente

Page 64: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

55

Temperature = Temperatura del material (expresada en grados Celcius)

Density = Densidad (expresada en gramos/cm3) Al igual que en el caso de la generación de datos de distintos isótopos, en la

generación de la información para los materiales, las entradas permitidas son redundantes, de modo que no es necesario cargar todos los parámetros para todos los materiales. Sin embargo, hay cierta información mínima necesaria para que el programa sea capaz de deducir los parámetros que no le fueron ingresados. Por ejemplo, se puede omitir especificar "SIGMAa" si se especifican "SIGMAf" y "SIGMAcr" (dado que SIGMAa=SIGMAf+SIGMAcr) pero no pueden omitirse "SIGMAa" y "SIGMAcr" por que de este modo no hay información suficiente para que se puedan asignar valores a dichos parámetros.

Al terminar de especificar todos los materiales debe señalarse el fin del comando con la instrucción "END" (al igual que con el caso de los isótopos).

<Zones> Las zonas son el último eslabón en la cadena de generación de constantes a dos

grupos. También, son el primer eslabón en la cadena de calculo del o los reactores. Hay dos formas de crear zonas (dos sub-comandos): • New • Material_Mix Si se tienen las secciones eficaces (condensadas a dos grupos) de la zona que se

desea crear se debe utilizar el sub-comando "New", que tiene la siguiente sintaxis: <New yy> <SIGMAf xx1 xx2> <SIGMAa xx1 xx2> <SIGMAcr xx1 xx2> <nuSIGMAf xx1 xx2> <SIGMAs xx1 xx2> <SIGMApot xx> <SIGMAtr xx1 xx2> <SIGMArem xx1 xx2> <mu xx1 xx2> <epsilon xx1 xx2> <Temperature xx> <Temp_Neutron xx> <D xx> <L xx1 xx2> <END> Donde: yy = Nombre del material a crear xx = Valor numérico en las unidades que correspondan según la

magnitud involucrada

Page 65: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

56

xx1 = Valor numérico correspondiente al grupo rápido xx2 = Valor numérico correspondiente al grupo térmico SIGMAf = Sección eficaz de fisión SIGMAa = Sección eficaz de absorción SIGMAcr = Sección eficaz de captura radiactiva nuSIGMAf = Sección eficaz de "nufision" SIGMAs = Sección eficaz de scattering SIGMApot = Sección eficaz de captura radiactiva SIGMAtr = Sección eficaz de transporte SIGMArem = Sección eficaz de remoción del grupo

mu = Coseno medio de scattering pesado con las secciones eficaces de scattering

epsilon = Decremento logarítmico medio de energía pesado con las secciones eficaces de scattering

Temperature = Temperatura del material Temp_Neutron = Temperatura del campo neutrónico térmico que

se encuentra presente en el material (Generalmente es la temperatura del moderador de los neutrones; ver sección 2.1)

D = Coeficiente de difusión térmica L = Área de difusión (L2) Por el contrario, si se quiere crear una zona mezclando materiales se debe

utilizar el sub-comando "Material_Mix", que tiene la siguiente sintaxis: <Material_Mix yy> <Temperature xx> <yy1 yy2 yy3 ...> <xx1 xx2 xx3 ...> <END> Donde: yy = Nombre de la zona que se está generando xx = Valor numérico expresado en las unidades correspondientes yy1, yy2, yy3 = Nombres de los materiales ingredientes

xx1, xx2, xx3 = Fracción volumétrica de cada material ingrediente

Temperature = Temperatura de la zona (expresada en grados Celsius)

Análogamente al caso de la generación de materiales, cuando no se desean crear

más zonas, debe indicárselo al programa mediante la clave "END". Si se desean crear zonas para ser utilizadas en un posterior calculo de reactor con

el siguiente modulo, es necesario que dichas zonas sean llamadas de una manera particular:

"Fuel1" Zona interior (generalmente combustible) "Moderator1" Zona exterior (generalmente reflector / moderador)

Page 66: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

57

De otra forma, las claves aceptadas como nombre para una efectiva vinculación de los parámetros necesarios son:

"Fuel1" "Fuel2" "Moderator1" "Moderator2" "Reflector1" "Reflector2" El motivo de esta repentina rigidización de nombres es que es necesario que el

programa pueda vincular la temperatura de la zona que modera los neutrones para generar las secciones eficaces correctamente. Es decir, que el programa utiliza la temperatura de la zona "Moderator1" para calcular las secciones eficaces de las zonas "Fuel1" y "Reflector1" al igual que la temperatura de la zona "Moderator2" para calcular las de las zonas "Fuel2" y "Reflector2". Esta información se utiliza en particular para la aplicación de la corrección de las secciones eficaces que se apartan de la forma clásica de "1/v" (se utiliza el "factor de Wescott").

<Fuel_Materials> Este comando brinda la posibilidad de efectuar una correccion por

heterogeneidad al calculo del reactor. Separados por espacios del mismo se enumeran los materiales que conforman el combustible propiamente dicho (UO2, Umetálico, etc.).

La sintaxis es: <Fuel_Materials x1 x2 x3 ...> Donde x1, x2, x3 son los materiales combustibles. <Fuel_Geometry> Para dicha corrección por heterogeneidad es necesario ingresar la geometría del

combustible, ya sean "pins", esferas o placas. Esto se realiza a través de este comando y la sintaxis es:

<Fuel_Geometry x> Donde x es dicha geometría y puede ser:

• Slab • Rod • Pebble

Page 67: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

58

<Fuel> Este comando indica el espesor de la región combustible para el cálculo

heterogéneo. En el caso de placas (MTR) esta longitud es el semi-espesor del meat y en caso de barras cilíndricas o esferas, el radio. La sintaxis es:

<Fuel x> Donde x es dicha magnitud en centímetros. <Moderator> Este comando indica el espesor de la región moderador para el calculo

heterogéneo. En el caso de placas (MTR) esta longitud es el semi-espesor del espacio entre placas combustibles (canal de refrigeración) y en caso de barras cilíndricas o esferas, radio de la celda unitaria equivalente de refrigerante. La sintaxis es:

<Fuel x> Donde x es dicha magnitud en centímetros. Este comando finaliza la lista de posibilidades para la creación de un archivo de

entrada. Con todas las herramientas presentadas podemos indicarle a DIANA qué tipo de datos queremos obtener, cómo queremos que sean tratados los datos, de donde cargarlos (o brindárselos manualmente) y como presentarlos.

3.5 Recomendaciones y tratamiento de errores El código prevé diversas posibles fallas de interpretación de los comandos

ingresados por el usuario e insuficiencias de datos para efectuar los cálculos solicitados. Para informar de estos percances al usuario se utilizan objetos de la clase Error (descrita en la sección 3.3.2), mensajes de advertencia (Warnings) que son impresos en la línea de comando cuando el usuario lo solicita y canales de mensajes de error de las bibliotecas utilizadas (Standard Error). En el caso de los errores fatales (de la clase

Error), que son los que interrumpen el cálculo, y las advertencias, contamos con una codificación numérica que indica la clase de error cometido además de la explicación verbal de lo ocurrido. La intención de esta codificación es la clasificación de desperfectos para que el usuario, con la costumbre, pueda ver fácilmente si prestarle atención al evento o no. Un claro ejemplo de esta metodología es el mensaje de advertencia de “Integral Efectiva de Resonancia no encontrada”. Un usuario que suela utilizar materiales cuyas integrales de resonancia son despreciables sabe que en el caso general, estos mensajes no deben ser importantes, dado que DIANA considera que si una integral de resonancia no está tabulada en el archivo correspondiente es nula.

Para evitar malas interpretaciones en los archivos de datos y de entrada, es recomendable no dejar espacios en blanco. Si se lo hace, conviene poner una doble barra (“//”) abajo del último comando como se muestra, por ejemplo, en la figura 4-3.

Page 68: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

59

Otra recomendación a la hora de crear el archivo de entrada, es cuidar de colocar los comandos de finalización (“END”) cuando corresponda. Como se dijo anteriormente, hay sub-comandos que existen para distintos comandos, por lo que olvidar un “END” puede llevar a un error que pase desapercibido por el control de DIANA y llevar a resultados extraños, o lo que es peor aún, resultados que no son extraños (físicamente posibles).

Page 69: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Cap

ítu

lo

4

DIANA

Page 70: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

60

Capítulo 4 Verificación de funcionamiento de DIANA Ahora que hemos analizado la construcción general del código y sus

capacidades, podemos verificar que DIANA realiza los cálculos solicitados adecuadamente y ver cuál es el error que el usuario puede esperar. Naturalmente, en un código da cálculo neutrónico, la desviación dependería de las secciones eficaces utilizadas más que del método empleado. Dado que en nuestro caso, las secciones eficaces que se utilizan son las puntuales a 2200m/s y factores medidos para cada isótopo, podemos aseverar que la diferencia entre el valor experimental y el calculado depende exclusivamente del método elegido para procesar los mismos. Esto último es cierto si el archivo de entrada representa realmente el sistema medido, por supuesto.

Como la ecuación de Galanin no ha sido programada actualmente (ecuación 2-20), el valor de la sección eficaz de scattering potencial del Hidrógeno 1 fue cargada en el archivo “Standard_Isotopes.dat” de modo que la edad de Fermi del agua liviana sea la medida.

Se realizaron tres cálculos:

• Un cálculo que comprende un núcleo de un MTR y se trata de obtener el tamaño del núcleo crítico. Éste es una de las funciones principales de un código de núcleo. Mediante éste cálculo se pretende evaluar las funciones principales DIANA. Por ello se contrasta el valor calculado con uno experimental (Referencia 1).

• Un cálculo de factor de multiplicación infinito. El valor de referencia fue obtenido de un Benchmark de criticidad calculado con el código WIMS obtenidos de la Referencia 11. Se eligió este informe porque para comparar valores infinitos es conveniente utilizar un código de celda.

• Por último, para mostrar las funcionalidades que permiten análisis variacionales de DIANA se realizaron diversos cálculos de criticidad variando fracciones de volumen de combustible y moderador para obtener los puntos de mínima masa crítica de Uranio 235 con distintos moderadores. En este caso se comparó con valores medidos obtenidos de la Referencia 12.

4.1.1 Cálculo de un núcleo de MTR

Se obtuvieron los valores de tamaño crítico del reactor de la Universidad de

Virginia (EE.UU.) con las dimensiones y composiciones provistas por la Referencia 1. Este reactor consiste en un arreglo cuadrado de elementos combustibles de sección cuadrada sumergidos en una pileta abierta de agua liviana (figura 4-1).

Cada elemento combustible está formado por un arreglo de placas planas de Uranio enriquecido al 93.2% disuelto en una matriz de Aluminio. Dicho arreglo se encuentra encerrado entre dos guías de Aluminio. Se puede apreciar en la figura 4-2 el esquema general de un elemento combustible estándar de dicho reactor.

Page 71: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

61

Figura 4-1: Esquema general del reactor de la Universidad de Virginia (EE.UU.)

Si modelamos únicamente la región activa, tenemos todos los datos necesarios

para preparar el archivo de entrada en la figura 4-2, excepto la cantidad de Uranio en cada placa combustible. Cada elemento combustible posee 165 gramos de Uranio.

59,69 cm

7,42 cm

8,00 cm

7,61 cm

Gap típico

0,485 cm

Figura 4-2: Esquema de un elemento combustible típico del reactor de la Universidad de Virginia

(EE.UU.)

Page 72: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

62

El archivo de entrada requerido se puede ver en la figura 4-3. Luego,

encontramos la tabla 4-1, en la cual se resumen los valores de los parámetros utilizados.

Geometry Cylinder

Reflector 10

Height 59.69

Fission_Energy 2000000

Thermal_Energy 0.125

Isotopes

Standard U238 U235 H1 O16 Al27

END

//

Materials

// Standard U(93.2@100C)

Isotope_Mix U(93.2@100C)

// Atom Fraction of the isotopes

Temperature 200

U235 U238

0.932 0.068

Density 0.04761

END

Isotope_Mix H2O(@100ºC)

H1 O16

0.66 0.33

Density 1

END

Isotope_Mix Al27(@100C)

Al27

1

Density 2.7

END

END

//

Zones

Material_Mix Fuel1

// Temperature in ºC

Temperature 20

U(93.2@100C) H2O(@100ºC) Al27(@100C)

1 0.7174 0.2826

END

Material_Mix Moderator1

H2O(@100ºC)

1

Temperature 20

END

END

//

Fuel_Materials U(93.2@100C) Al27(@100C)

Fuel_Geometry Slab

Fuel 0.0254

Moderator 0.24257

END

Figura 4-3: Archivo de entrada para el cálculo de criticidad del reactor de la Universidad de

Virginia (EE.UU..)

Page 73: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

63

Tabla 4-1: Resumen de los parámetros del archivo de entrada para el reactor de la Universidad de

Virginia (EE.UU)

Ejecutando el DIANA con la entrada presentada obtenemos como salida el archivo mostrado en la figura 4-4 (fracción del archivo) y los gráficos de las figuras 4-5 y 4-6 abiertos en el programa xd3d.

Calculated Reactor

Reactor: Cylindrical Reactor

------------------------------------------------------------------------------

Cilindrical Calculus Value

------------------------------------------------------------------------------

Radius 17.1942 +- (0.0599658)

Reflector Savings 8.47161

Core's Primary Buckling (B²) 0.0105135

Core's Secondary Buckling (mu²) 0.470336

k1² 0.0302898

k2² 0.135193

Reactivity 0 +- (0)

S1 0.27115

S2 -4.3938

S3 2.13566

Infinite multiplication factor 1.64108

Fast Infinite multiplication factor 0

Thermal Infinite multiplication factor 1.64107

Effective multiplication factor 1 +- (0)

Fast escape probability 0.99939

Fast Fission Factor 1.00001

Fast non-leakage probability 0.532388

Thermal non-leakage probability 1.08352

Thermal average flux [10¹° neutrons/sec.cm².Watt] 0.000320606

Fast average flux [10¹° neutrons/sec.cm².Watt] 0.00105555

Fast to Thermal average flux relation 3.29236

Figura 4-4: Fragmento del archivo de salida para el cálculo del reactor de la Universidad de

Virginia (EE.UU..)

Page 74: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

64

Figura 4-5: Flujo neutrónico del grupo rápido para el cálculo del reactor de la Universidad de

Virginia (EE.UU..) en función del radio (cm) y altura (cm) del cilindro (x1010

n.cm-2

.s-1

.W-1

)

Como fue comentado oportunamente en la sección 1.1, la ecuación 1-5 es sólo

una aproximación. Es menos certera mientras más nos alejamos de los ejes de radio o altura nulos, por lo tanto, en las esquinas del núcleo (radio y altura máximos) la desviación se vuelve muy importante. Esto se ve claramente en la siguiente figura (flujo neutrónico del grupo térmico), donde se aprecian picos extraños en dichas posiciones. Es por ello que éstos gráficos de flujo son meramente cualitativos.

Page 75: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

65

Figura 4-6: Flujo neutrónico del grupo Térmico para el cálculo del reactor de la Universidad de

Virginia (EE.UU..) en función del radio (cm) y altura (cm) del cilindro (x1010

n.cm-2

.s-1

.W-1

)

Debido a lo mencionado, éste gráfico de los flujos es sólo para tener una

distribución cualitativa de la potencia en el núcleo. Del archivo de salida de DIANA (figura 4-4) vemos que el radio crítico

calculado del reactor es (17.20 ± 0.06) cm, es decir, que el núcleo tendría un área equivalente de 929.41 cm2. Dado que el área de cada elemento combustible es 58,06 cm2, nuestro cálculo indica que el núcleo se pondrá crítico con 16.01 elementos combustibles. En la practica, esto indica que se pondrá crítico con 17 ya que, obviamente, no podemos introducir 0.01 elementos combustibles en el núcleo.

Page 76: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

66

El reactor se puso crítico con 19 elementos combustibles, de los cuales, dos eran medios elementos porque servían como guías para las barras de control, por lo que el cálculo parecería acertado. Sin embargo, cada elemento combustible contribuye con miles de pcms a la reactividad total, por lo que ésta comparación no nos dice mucho en cuanto a la precisión del cálculo.

Si quisiéramos analizar el factor de multiplicación efectivo en función del radio (equivalente) del núcleo tendríamos que hacer pequeñas modificaciones en el archivo de entrada (como muestra la figura 4-7). En este caso variamos el radio desde 10 cm hasta 200 cm con intervalos de 0.1 cm.

Geometry Cylinder

Reflector 10

Height 59.69

Fission_Energy 2000000

Thermal_Energy 0.125

//

Modify Radius

Minimum 10

Maximum 200

Step 0.1

//

Special_Output Effective_Multiplication_Factor

//

Isotopes

Standard U238 U235 H1 O16 Al27

END

//

Materials

// Standard U(93.2@100C)

Isotope_Mix U(93.2@100C)

// Atom Fraction of the isotopes

Temperature 200

U235 U238

0.932 0.068

Density 0.04761

END

Isotope_Mix H2O(@100ºC)

H1 O16

0.66 0.33

Density 1

END

Isotope_Mix Al27(@100C)

Al27

1

Density 2.7

END

END

//

Zones

Material_Mix Fuel1

// Temperature in ºC

Temperature 20

U(93.2@100C) H2O(@100ºC) Al27(@100C)

1 0.7174 0.2826

END

Material_Mix Moderator1

H2O(@100ºC)

1

Temperature 20

END

END

//

Fuel_Materials U(93.2@100C) Al27(@100C)

Fuel_Geometry Slab

Fuel 0.0254

Moderator 0.24257

END

Figura 4-7: Archivo de entrada para el cálculo variacional de reactividad del reactor de la

Universidad de Virginia (EE.UU..)

En este caso, deberíamos pedirle a DIANA que no calcule ni grafique los flujos

para cada uno de los reactores. Ganaríamos así velocidad de cálculo y evitaríamos que

Page 77: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

67

se calculen datos innecesarios. Esto se hace mediante los parámetros –flux y –plot respectivamente (ver figura 3-11). Al finalizar el cálculo tenemos un gráfico del factor de multiplicación efectivo a través del programa gnuplot (figura 4-8).

Figura 4-8: Factor de Multiplicación Efectivo en función del radio del reactor de la Universidad de

Virginia (EE.UU..)

Vemos que el comportamiento general es el esperado, ya que crece rápidamente

cuando el radio es muy pequeño pero luego, el aumento de la reactividad se hace menos importante y parece tender a un valor asintótico. Es lógico pensar que, como el reactor se hace más y más grande, las fugas de neutrones se hacen, en proporción, más pequeñas y el valor asintótico es el factor de multiplicación infinito.

Como dato final podríamos querer ver los flujos neutrónicos en el reactor esférico que se utilizó para calcular el ahorro por reflector (ver Capítulo 1 ). Veamos los gráficos que imprimen en pantalla los comandos dianagnuPlotSphere, dianagnuPlotSphereFast y dianagnuPlotSphereThermal (figuras 4-9, 4-10 y 4-11 respectivamente).

Vemos que a diferencia de los flujos que podemos graficar para los reactores cilíndricos, en el caso de los esféricos, podemos calcular los flujos en el reflector. Esto se debe a que para el último caso, es un cálculo unidimensional (en función del radio) únicamente. Pero en el caso de los reactores cilíndricos, el cálculo es bidimensional (en función del radio y de la altura) y para hallar efectivamente una expresión analítica del flujo debemos componer ambas dimensiones como lo indican las ecuaciones 1-33 y 1-34 y estas expresiones son válidas solamente dentro del núcleo. Podríamos graficar el flujo dentro del reflector solamente para los casos en los que una de las dos variables es nula (para Radio = 0 y para Altura = 0). Sin embargo en los casos más usuales no resulta de interés.

Page 78: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

68

Figura 4-9: Flujos neutrónicos en función del radio del reactor esférico utilizado para calcular el

ahorro por reflector para el reactor de la Universidad de Virginia (EE.UU..)

Figura 4-10: Flujo neutrónico del grupo Rápido en función del radio del reactor esférico utilizado

para calcular el ahorro por reflector para el reactor de la Universidad de Virginia (EE.UU..)

Page 79: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

69

Figura 4-11: Flujo neutrónico del grupo Térmico en función del radio del reactor esférico utilizado

para calcular el ahorro por reflector para el reactor de la Universidad de Virginia (EE.UU.)

El gráfico de los dos flujos superpuestos (figura 4-9) simplemente brinda una

idea comparativa visual de los flujos Térmico y Rápido. Pero vemos que al ser (en éste caso) el flujo Rápido mucho mayor que el Térmico, éste último no demuestra mucho detalle en la ilustración. Por ello se pueden graficar los flujos por separado como vemos en las figuras 4-10 y 4-11 para el flujo Rápido y el térmico respectivamente.

4.1.2 Cálculo de factor de multiplicación infinito

Otra evaluación que podemos realizar con el código es una mucho mas sencilla

y consiste en el cálculo del factor de multiplicación infinito de un arreglo de barras con combustible sumergidas en un moderador. Se realizó un archivo de entrada para representar un arreglo de barras de Circonio equiespaciadas con dióxido de Uranio enriquecido al 96%. Estas barras tienen un diámetro interno de 0.39306 cm y externo de 0.45802 cm y están a una distancia entre sí tal que el moderador posee un diámetro equivalente de 0.71206. El archivo de entrada utilizado se observa en la figura 4-12 y en la tabla 4-2 se resumen los parámetros utilizados. Los datos junto con los resultados calculados se obtuvieron de un trabajo de análisis realizado con el sistema AMPX-II y el código WIMS 11.

Page 80: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

70

Geometry Cylinder

// Reflector 0.1

Height 50

Fission_Energy 2000000

Thermal_Energy 0.125

Isotopes

Standard U238 U235 H1 O16 Zr90 Zr91 Zr92 Zr94 Zr96 B10

END

Materials

Isotope_Mix Fuel

U238 U235 O16

0.32033 0.013 0.66666

Density 10.339

Temperature 337

END

Isotope_Mix Clad

Temperature 337

Zr90 Zr91 Zr92 Zr94 Zr96

0.5145 0.1122 0.1715 0.1738 0.028

Density 5.854

END

Isotope_Mix Moderator

H1 B10 O16

0.6666 1.54E-4 0.3333

Density 0.6611

END

END

Zones

Material_Mix Fuel1

Temperature 337

Fuel Clad Moderator

0.3047 0.109 0.5862

END

Material_Mix Moderator1

Moderator

1

Temperature 337

END

END

Fuel_Materials Fuel

Fuel_Geometry Rod

Fuel 0.39306

Moderator 0.71206

END

//

Figura 4-12: Archivo de entrada para la validación del factor de multiplicación infinito

Tabla 4-2: Resumen de los parámetros del archivo de entrada para el cálculo del factor de

multiplicación infinito

Page 81: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

71

Podemos ver el fragmento del archivo de salida que brinda los datos del reactor calculado en la figura 4-13.

Calculated Reactor

Reactor: Cylindrical Reactor

-----------------------------------------------------------------------------

Cilindrical Calculus Value

-----------------------------------------------------------------------------

Radius 49.1418 +- (0.206144)

Reflector Savings 10.2989

Core's Primary Buckling 0.00361614

Core's Secondary Buckling 0.433534

k1^2 0.0119165

k2^2 0.0590802

Reactivity 0 +- (0)

S1 0.0959748

S2 -2.48303

S3 1.86864

Infinite multiplication factor 1.29696

Fast Infinite multiplication factor 0

Thermal Infinite multiplication factor 1.29602

Effective multiplication factor 1 +- (0)

Fast escape probability 0.743176

Fast Fission Factor 1.00072

Fast non-leakage probability 0.674789

Thermal non-leakage probability 1.09861

Thermal average flux [10^10 neutrons/sec.cm^2.Watt] 3.06214e-05

Fast average flux [10^10 neutrons/sec.cm^2.Watt] 0.000284791

Fast to Thermal average flux relation 9.30041

Figura 4-13: Archivo de entrada para la validación del factor de multiplicación infinito

Allí podemos apreciar el factor de multiplicación infinito del arreglo calculado

por DIANA. Éste es 1.29696 y el calculado por WIMS es 1.23809. Vemos que la diferencia entre el valor calculado y el medido es 5887 pcm.

4.1.3 Cálculo de Masas Críticas de Uranio 93% con distintos moderadores

El código DIANA fue elaborado con el diseño de reactores innovativos en

mente. Esta línea de diseño fomenta la búsqueda de nuevos materiales y arreglos geométricos. Por lo tanto es importante que la herramienta posea la capacidad de realizar cálculos variacionales fácilmente y entregue los resultados en una forma de rápida visualización. A su vez es importante que favorezca el procesamiento de dicha información para seleccionar para qué composiciones y geometrías conviene realizar cálculos más detallados (con códigos numéricos) o realizar mediciones en arreglos experimentales. Con el objeto de realizar análisis preliminares de distintos materiales para efectuar una primera selección, se pensó en los comandos Modify y Special_Output (ver sección 3.4.1).

Para validar estas capacidades de cálculo, se prepararon varias entradas como la mostrada en la figura 4-14, cuyos parámetros principales se resumen en la tabla 4-3. Se corrieron con DIANA obteniendo para cada uno resultados como las figuras 4-15 y 4-16. Dicho procedimiento se realizó para mezclas de Uranio con agua liviana, agua pesada, grafito, berilio y óxido de berilio.

Page 82: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

72

Geometry Sphere

Reflector 0

Fission_Energy 2000000

Thermal_Energy 0.125

//

Modify Volume_Fraction

Zone Fuel1

Material1 Fuel

Material2 Moderator

Minimum 0.001

Maximum 0.2

Step 0.0001

//

Special_Output Radius

// Special_Output Effective_Multiplication_Factor

//

Isotopes

Standard U238 U235 H1 O16

END

//

Materials

Isotope_Mix Fuel

U235 U238

0.93 0.07

Density 17.53

END

Isotope_Mix Moderator

H1 O16

0.66 0.33

Density 1

END

Isotope_Mix Reflector

H1 O16

2 1

Density 0.01

END

END

//

Zones

Material_Mix Fuel1

Fuel Moderator

1 0

Temperature 20

END

Material_Mix Moderator1

Reflector

1

Temperature 20

END

END

//

// Fuel_Materials Fuel

Fuel_Geometry Pebble

Fuel 3000

Moderator 10

END

Figura 4-14: Archivo de entrada para el cálculo de criticidad de mezclas homogéneas de Uranio y

agua liviana

Page 83: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

73

Tabla 4-3: Resumen de los parámetros del archivo de entrada para el cálculo de masas críticas

Figura 4-15: Radio crítico para esferas homogéneas de U235 (93% y 17.53 g/cm3) y H2O en función

de la fracción de volumen de Uranio

Page 84: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

74

Figura 4-16: Masa crítica de Uranio en esferas homogéneas de U235 (93% y 17.53 g/cm3) y H2O en

función de la fracción de volumen de Uranio

Los resultados de todas éstas curvas se puede ver en la figura 4-17, donde los

valores calculados se representan con una línea continua y los valores experimentales 12 con puntos discretos. Se puede apreciar que hay un desplazamiento general entre de todas las curvas calculadas hacia abajo (masas críticas menores). Esto se debe a que el modelo de Galanin (ecuación 2-20) no ha sido implementado en el código y las Edades de Fermi son calculadas mediante la ecuación 2-15 utilizando parámetros de la mezcla. Esto puede verificarse observando la figura 4-18, en la que mostramos para el caso de la mezcla de Uranio con agua liviana dos curvas de masas críticas cambiando únicamente la sección eficaz microscópica de scattering potencial del Hidrógeno por la utilizada para el cálculo del MTR de la sección 4.1.1. Recordemos que ésta es una sección eficaz tal que la edad de Fermi calculada es igual a la medida en un sistema análogo al de la sección antedicha. La Edad calculada por la fórmula de Galanin es un valor intermedio entre los dos utilizados aquí. Podemos ver en la figura antedicha, que una corrección en la sección eficaz de scattering potencial es muy importante, por ello es importante el correcto modelado de la Edad de Fermi de la mezcla.

Page 85: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

75

Figura 4-17: Masas críticas para esferas desnudas homogéneas de Uranio (17.53 g/cm3 ) y

moderador (Puntos = Datos medidos; Líneas = Cálculos de DIANA)

Figura 4-18: Masas Críticas de esferas homogéneas de U235

y H2O para dos valores distintos de

sección eficaz de scattering potencial del H1

Page 86: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Cap

ítu

lo

5

DIANA

Page 87: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

76

Capítulo 5 Evaluación económica del desarrollo La implementación del código DIANA se realizó en nueve etapas:

1. Búsqueda bibliográfica 2. Diseño básico de la estructura de objetos utilizada 3. Implementación del tratamiento de secciones eficaces 4. Prueba y corrección del tratamiento de secciones eficaces 5. Implementación del cálculo de núcleo 6. Prueba y corrección del cálculo de núcleo 7. Generación del código DIANA 8. Carga de bibliotecas iniciales 9. Prueba y corrección del código DIANA

La búsqueda bibliográfica consistió en la recopilación de la información que se consideró relevante para un cálculo de difusión como el explicado en el Capítulo 1 junto con la generación de las constantes apropiadas (Capítulo 2 ). A pesar de que algunos libros e informes fueron encontrados en distintas etapas del proyecto (por no encontrarse disponibles en las bibliotecas de San Carlos de Bariloche o Argentina), la mayor parte de la investigación fue realizada en esta etapa, la cual tuvo una duración aproximada de dos meses.

El diseño básico de la estructura de objetos utilizada se realizó contemporáneo a la fase final de la búsqueda bibliográfica. En esta etapa de determinó la estructura de herencia aproximada a utilizar y se bosquejó la interfaz de cada clase. Como resultado de ésta se obtuvo una idea de los encabezados de la mayoría de las clases. La duración real de dicha etapa es difusa debido a que en paralelo se comenzó con la implementación de la primera parte del código.

En aproximadamente el mismo período se comenzó con la siguiente fase del proyecto: la implementación del tratamiento de secciones eficaces. En ésta se desarrollaron e implementaron la clase que hace al tratamiento de errores (base sólida para todo buen programa de cálculo), es decir la “Error”. Luego siguieron las clases que hacen al cálculo de las constantes necesarias (explicado en el Capítulo 2 ), es decir la “Datos_MonoGrupo”, “Datos_MultiGrupo”, “Datos_Isótopos”, “Datos_Materiales” y “Datos_Zonas”. La duración total aproximada de la etapa en cuestión fue de tres meses desde el comienzo del desarrollo de la clase “Error” hasta la finalización del programa que calculaba las constantes a dos grupos.

Al finalizar la etapa mencionada se comenzó una fase de prueba y corrección

del tratamiento de secciones eficaces que consistió en introducirle al programa las composiciones de mezclas de isótopos y verificar que el programa devolviera los resultados adecuados. Es en esta etapa que se realizó el grueso de las correcciones (debugging) de las clases involucradas. Este proceso tuvo una duración aproximada de dos meses.

Para la implementación del cálculo de núcleo se requirieron tres meses de programación. De los cuales se obtuvieron como producto las clases que efectúan el procedimiento descrito en el Capítulo 2 es decir, la “Calculo”, “REsferico” y “ECilindrico”. Con dichas clases y un programa que aseguraba su correcta interacción se dio por terminada ésta etapa del proyecto.

Para comprobar su correcto funcionamiento, se empleó un período de dos meses que comprendió la prueba y corrección del cálculo de núcleo. Iniciada esta fase durante

Page 88: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

77

los últimos días de la anterior, se procedió a efectuar cálculos con ejemplos de diversos libros (ver Referencias). Se dio por terminada con el correcto funcionamiento del programa que probaba las clases aquí desarrolladas.

Por último se realizó el archivo principal en el cual interactúan todas las clases desarrolladas para obtener finalmente la generación del código DIANA. Aquí se implementaron la clase “Ayuda” junto con los parámetros de ejecución del programa mostrados en la figura 3-11. Es en esta etapa del proyecto en la cual se optimizó la interfaz del programa con el usuario para obtener como producto final un poderoso código de cálculo simplificado y fácil de usar. Éste proceso se vio muy influenciado por las características de versatilidad que se deseaba dar a DIANA, que entre ellas se encuentra la posibilidad de realizar cálculos sucesivos variando diversos parámetros. El proceso descrito tuvo una duración aproximada de dos meses.

En paralelo con el nacimiento de DIANA se procedió a la carga de bibliotecas

iniciales para que puedan ser probadas sus funcionalidades con mayor facilidad. A su vez se implementaron diversos programas para facilitar la visualización de los datos obtenidos por los cálculos. Éstos son los archivos de apoyo mencionados en la sección 3.1.

Como finalización del proyecto se ejecutó la última etapa, Prueba y corrección

del código DIANA, verificando el correcto funcionamiento de DIANA y se procedió a la eliminación de los pormenores detectados de manera que ahora contamos con un código de cálculo de núcleo sólido y eficiente.

El detalle de la distribución de tiempos invertidos en el proyecto DIANA puede verse claramente en la figura 5-1, donde se muestra un diagrama de Gantt. En él puede apreciarse una discriminación del tipo de tarea desarrollada mediante el código de colores definido en la tabla 5-1. En ésta se ven los profesionales u organismos sub-contratados a lo largo del proyecto para cada tipo de proceso realizado. A su vez vemos en la tabla 5-2 la cantidad de horas solicitadas de cada uno de ellos junto con el costo por hora de cada uno.

Tabla 5-1: Código de colores del diagrama de Gantt del proyecto

Page 89: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

78

Figura 5-1: Diagrama de Gantt del proyecto

Page 90: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

79

Tabla 5-2: Costos del personal Sub-contratado

Podemos ahora discriminar el costo total del proyecto como se indica en la tabla

5-3 teniendo en cuenta los costos de equipamiento y ubicación física y aplicando la tasa de descuento de 15% anual para corregir todos los costos a Junio del 2005 (mes en el cual se comenzó).

Tabla 5-3: Costos totales del proyecto

En cuanto al beneficio que obtenemos a la hora de realizar un análisis de un

reactor innovativo, la extensa cantidad de parámetros que uno debe ingresar para la confección del archivo de entrada para los códigos disponibles en el mercado hace que la confección del archivo de entrada no sea de lo más sencillo. Sin embargo, la mayor cantidad de tiempo es consumido en adquirir un nivel aceptable de confianza en el resultado que el código brinda y solucionar los problemas de convergencia que surgen. En el caso de DIANA, éstos no se presentan gracias a la simplicidad en la cual se especifican los parámetros de entrada. Por ello decimos que podemos cuantificar este beneficio particular. Haremos la comparación de un cálculo de factor de multiplicación infinito realizado con el código de celda WIMS y uno realizado con el código de núcleo DIANA (el desarrollado en la sección 4.1.2). Para evaluar éste caso a un nivel confiable con el código WIMS se demoró cinco días, mientras que para hacerlo con DIANA se tardó cuatro horas. Con un costo medio de $20 por hora-hombre de un Ingeniero Nuclear, los costos para el cálculo de WIMS y DIANA son $800 y $80

Page 91: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

80

respectivamente. Vemos que es mucha la diferencia de costos, sin embargo es necesario hacer dos salvedades:

• El cálculo de WIMS posee una precisión mayor al de DIANA

(aproximadamente tres veces mayor), por lo que si se necesitara contar con una precisión de menos de 2000 pcm habría que utilizar códigos de celda y los cálculos presentados no serían comparables. Sin embargo, esto no es lo que ocurre generalmente en la etapa de diseño conceptual

• El caso analizado pertenece al rango de aplicación directo de WIMS. Es decir que si tratáramos de analizar los casos de la sección 4.1.3 (esferas homogéneas críticas desnudas) no obtendríamos resultados con el código WIMS por problemas de convergencia (esto fue verificado)

Recordemos que el principal beneficio no fue analizado económicamente y éste

es la versatilidad de DIANA. Como fue anteriormente mencionado, para casos como el cálculo de la sección 4.1.3, no se pudieron obtener resultados con el código WIMS. Cabe aclarar que al ser un código de celda, en general no se requieren éstos cálculos de él, pero aún así es bueno conocer sus limitaciones.

Page 92: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Cap

ítu

lo

6

DIANA

Page 93: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

81

Capítulo 6 Conclusiones Hemos visto a lo largo del presente trabajo, la teoría en la que se basa DIANA

junto con sus rangos de aplicación (Capítulo 1 y Capítulo 2 ). A su vez nos adentramos en su estructura de programación (Capítulo 3 ) y funcionamiento general ante diversos tipos distintos de cálculos solicitados (Capítulo 4 ). Finalmente, como corolario realizamos una evaluación del costo total y los beneficios esperables del código (Capítulo 5 ).

Podemos decir en aspectos generales que DIANA es dócil y poderoso. Posee las capacidades necesarias para efectuar un análisis de cómo la variación de diversos parámetros afecta las figuras de mérito neutrónicas de un reactor nuclear térmico. Su rango de aplicación es efectivamente mayor que los de los códigos convencionales por dos motivos principales:

• Al aplicar un método analítico no posee problemas de convergencia.

Como fue demostrado con los cálculos realizados en la sección 4.1.3 • Su extremadamente reducida cantidad de datos necesarios hace que no se

requieran extensivas mediciones para caracterizar un material El código depende, como todos, de las bibliotecas completas para su correcto

funcionamiento. Por lo tanto, para obtener valores más precisos debemos agregar las tablas de factores de Wescott e integrales de resonancia de todos los isótopos relevantes para los cálculos deseados. Aunque estas correcciones pueden ser de segundo orden, depende del grado de precisión requerido para efectuar los cálculos deseados.

Con las bibliotecas que actualmente se encuentran en el paquete de instalación se alcanza una precisión superior a las 6000 pcm, que son por exceso en todos los casos analizados. Se podría pensar que es bastante baja en comparación con el código WIMS anteriormente mencionado (que va entre las 1000 y 2000 pcm de error para los casos en los que es aplicable). Pero hay que considerar que contiene solamente parámetros obtenidos de tablas regulares (a 2200 m/s y pesadas con espectro de fisión) y libros de texto (factores de Wescott e integrales de resonancia).

La comparación presentada a lo largo del Capítulo 4 simplemente demuestra el correcto funcionamiento del código y su respuesta con un conjunto muy reducido de constantes con una precisión más que aceptable. Por lo tanto, antes de realizar una validación de una mayor cantidad de casos para caracterizar la precisión y el comportamiento del código habría que completar las bibliotecas con los factores faltantes y realizar las correcciones mencionadas, como la programación de la fórmula de Galanin (ecuación 2-20) para el cálculo de la edad de Fermi.

Incluso en el caso de tener que conseguir parámetros medidos para la caracterización de un compuesto nuevo, dichos experimentos se limitarían a una medición aproximada de espectro o endurecimiento por absorción (ver sección 2.1) y una de la edad de Fermi (ver sección 2.2) de la mezcla. De éstos dos únicos parámetros DIANA obtiene los datos necesarios para corregir las aproximaciones utilizadas. En cambio, cuando no están las bibliotecas adecuadas, para los códigos de cálculo regulares, se necesita realizar muchas mediciones por técnicas como la de tiempo de

vuelo para hallar las leyes de scattering. Adicionalmente podemos decir que la nomenclatura del archivo de entrada de

datos es extremadamente simple, por lo que se reduce la cantidad de errores debidos a mala interpretación de la codificación de las tarjetas de entrada. Un claro ejemplo de

Page 94: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

82

una codificación elevada es la del programa de cálculo MCNP, en el cual se optimiza la velocidad de interpretación del archivo de entrada utilizando un código numérico. Para programas en los que la velocidad de cálculo debe ser optimizada, la codificación de la interfaz con el usuario es necesaria, pero para el caso que DIANA, que no emplea métodos de discretización numérica, la ventaja en velocidad es realmente despreciable en comparación con el grado de complejidad que alcanza la redacción del archivo de entrada.

Su versatilidad y elevada velocidad de cálculo, sumadas al hecho de que carece de problemas numéricos (por ser esencialmente un código analítico), hacen de DIANA un excelente candidato para formar parte de un código de cálculo integral de reactores nucleares. Al incorporarlo como sub-rutina, se podría desembocar en un código de cálculo de reactores que permita realizar análisis neutrónicos, termo-hidráulicos y de turbo-máquinas efectuando la respectiva evaluación económica.

Page 95: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

83

Figura 1-1: Probabilidad de que un neutrón de fisión tenga una colisión de

primer vuelo dentro de la barra combustible en función de r0Σ

para varios valores de κ0/Σ en distintas geometrías________________ 17 Figura 2-1: Secciones Eficaces microscópicas del Plutonio 239 (ver Referencia

5) _______________________________________________________ 19 Figura 2-2: Discretización de la energía para un esquema a G grupos ___________ 20 Figura 2-3: Endurecimiento por absorción del espectro térmico Maxwelliano _____ 23 Figura 2-4: Colisión elástica de un neutrón con un núcleo atómico______________ 24 Figura 2-5: Apantallamiento dentro del combustible en reactores heterogéneos____ 28 Figura 3-1: Ejemplo de implementación del archivo de datos:

Effective_Resonance_Integrals.dat _____________________________ 32 Figura 3-2: Ejemplo de implementación del archivo de datos:

Fisión_Averaged_Cross_Sections.dat___________________________ 32 Figura 3-3: Ejemplo de implementación del archivo de datos:

Standard_Isotopes.dat _______________________________________ 32 Figura 3-4: Ejemplo de implementación del archivo de datos:

Standard_Materials.dat______________________________________ 33 Figura 3-5: Ejemplo de implementación del archivo de datos:

Wescott_Factors.dat ________________________________________ 33 Figura 3-6: Ejemplo de implementación del archivo de datos: Help.dat __________ 33 Figura 3-7: Árbol de Herencia de Datos_MonoGrupo ________________________ 34 Figura 3-8: Árbol de Herencia de Datos_MultiGrupo ________________________ 35 Figura 3-9: Árbol de Herencia de Calculo _________________________________ 35 Figura 3-10: Implementación del archivo Help.h ____________________________ 36 Figura 3-11: Salida a línea de comando de DIANA al solicitarse la ayuda ________ 37 Figura 3-12: Implementación del archivo Error.h ___________________________ 37 Figura 3-13: Implementación del archivo Cross_Sections.h (1º parte) ___________ 38 Figura 3-14: Implementación del archivo Cross_Sections.h (2º parte) ___________ 39 Figura 3-15: Implementación del archivo CS_Data.h (1º Parte) ________________ 40 Figura 3-16: Implementación del archivo CS_Data.h (2º Parte) ________________ 42 Figura 3-17: Implementación del archivo CS_Data.h (3º Parte) ________________ 43 Figura 3-18: Implementación del archivo Claculo.h__________________________ 46 Figura 3-19: Implementación del archivo C_REsferico.h ______________________ 47 Figura 3-20: Implementación del archivo C_RCilindrico.h ____________________ 48 Figura 4-1: Esquema general del reactor de la Universidad de Virginia

(EE.UU.) _________________________________________________ 61 Figura 4-2: Esquema de un elemento combustible típico del reactor de la

Universidad de Virginia (EE.UU.) _____________________________ 61 Figura 4-3: Archivo de entrada para el cálculo de criticidad del reactor de la

Universidad de Virginia (EE.UU..)_____________________________ 62 Figura 4-4: Fragmento del archivo de salida para el cálculo del reactor de la

Universidad de Virginia (EE.UU..)_____________________________ 63 Figura 4-5: Flujo neutrónico del grupo rápido para el cálculo del reactor de la

Universidad de Virginia (EE.UU..) en función del radio (cm) y

altura (cm) del cilindro (x1010

n.cm-2

.s-1

.W-1

) ____________________ 64

Índice de Figuras

Page 96: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

84

Figura 4-6: Flujo neutrónico del grupo Térmico para el cálculo del reactor de

la Universidad de Virginia (EE.UU..) en función del radio (cm) y

altura (cm) del cilindro (x1010

n.cm-2

.s-1

.W-1

) ____________________ 65 Figura 4-7: Archivo de entrada para el cálculo variacional de reactividad del

reactor de la Universidad de Virginia (EE.UU..) __________________ 66 Figura 4-8: Factor de Multiplicación Efectivo en función del radio del reactor

de la Universidad de Virginia (EE.UU..) ________________________ 67 Figura 4-9: Flujos neutrónicos en función del radio del reactor esférico

utilizado para calcular el ahorro por reflector para el reactor de

la Universidad de Virginia (EE.UU..)___________________________ 68 Figura 4-10: Flujo neutrónico del grupo Rápido en función del radio del

reactor esférico utilizado para calcular el ahorro por reflector

para el reactor de la Universidad de Virginia (EE.UU..)____________ 68 Figura 4-11: Flujo neutrónico del grupo Térmico en función del radio del

reactor esférico utilizado para calcular el ahorro por reflector

para el reactor de la Universidad de Virginia (EE.UU.) ____________ 69 Figura 4-12: Archivo de entrada para la validación del factor de multiplicación

infinito ___________________________________________________ 70 Figura 4-13: Archivo de entrada para la validación del factor de multiplicación

infinito ___________________________________________________ 71 Figura 4-14: Archivo de entrada para el cálculo de criticidad de mezclas

homogéneas de Uranio y agua liviana __________________________ 72 Figura 4-15: Radio crítico para esferas homogéneas de U235 (93% y 17.53

g/cm3) y H2O en función de la fracción de volumen de Uranio _______ 73

Figura 4-16: Masa crítica de Uranio en esferas homogéneas de U235 (93% y

17.53 g/cm3) y H2O en función de la fracción de volumen de

Uranio ___________________________________________________ 74 Figura 4-17: Masas críticas para esferas desnudas homogéneas de Uranio

(17.53 g/cm3 ) y moderador (Puntos = Datos medidos; Líneas =

Cálculos de DIANA) ________________________________________ 75 Figura 4-18: Masas Críticas de esferas homogéneas de U

235 y H2O para dos

valores distintos de sección eficaz de scattering potencial del H1

_____ 75 Figura 5-1: Diagrama de Gantt del proyecto _______________________________ 78

Page 97: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

85

Tabla 2-1: Ejemplo de factores de Wescott para diversos isótopos en función de

la temperatura ...........................................................................................22 Tabla 2-2: Integral de Resonancia para mezclas homogéneas de U

238 y

moderador en función de σp ......................................................................26 Tabla 4-1: Resumen de los parámetros del archivo de entrada para el reactor

de la Universidad de Virginia (EE.UU) ....................................................63 Tabla 4-2: Resumen de los parámetros del archivo de entrada para el cálculo

del factor de multiplicación infinito ..........................................................70 Tabla 4-3: Resumen de los parámetros del archivo de entrada para el cálculo

de masas críticas .......................................................................................73 Tabla 5-1: Código de colores del diagrama de Gantt del proyecto...............................77 Tabla 5-2: Costos del personal Sub-contratado ............................................................79 Tabla 5-3: Costos totales del proyecto...........................................................................79

Índice de Tablas

Page 98: Código DIANACódigo DIANAricabib.cab.cnea.gov.ar/3/1/1Mochi - Ignacio .pdf · 2010. 4. 21. · Código DIANA Ignacio Mochi 1 El cálculo de reactores por métodos numéricos a dos

Código DIANA Ignacio Mochi

86

1 J. L. Meem, Two Group Reactor Theory, Gordon and Breach science publishers (1964) 2 G. F. Simmons, Differential Equations with Applications and Historical Notes, Second Edition, Mc Graw Hill Inc. (1972) 3 H. Castle, H. Ibser, G. Sacher, A. M. Weinberg, The Effect of Fast Fission on k, Report CP-644 (1943) 4 A. M. Weinberg, E. P. Wigner, The Physical Theory of Neutron Chain Reactors, The University of Chicago Press (1958) 5 JAERI-M 90-099 6 J. J. Duderstadt, L. J. Hamilton, Nuclear Reactor Analisis, John Wiley & Sons (1976) 7 Reactor Physics Constants ANL-5800, Second Edition, Argonne National Laboratory (1943) 8 A. D. Galanin, Thermal Reactor Theory, Second Edition, Volume 3, International Series of Monographs on Nuclear Energy, Pergamon Press (1960) 9 B. Eckel, Thinking in C++, Volume 1, Second Edition, Prentice Hall (2000) 10 B. Eckel, Thinking in C++, Volume 2, Second Edition, Prentice Hall (2000) 11 N. E. Patiño, Análisis of a Doppler Coefficient Benchmark with the AMPX-II system and the WIMS

code 12 D. Callihan, Critical Control in Chemical and Metallurgical Plant, Karlsruhe Symposium (1961)

Referencias