¿Quién escribe el software para centrales nucleares? ¿Qué idiomas usan?

Voy a responder por Francia principalmente.

Códigos de simulación física

Codificamos principalmente en Fortran, aunque los nuevos códigos están escritos en C / Python. Eso es para los códigos de “física”, es decir, transporte / difusión de neutrones, códigos térmicos, etc. Python realmente se está volviendo más importante hoy en día.

Las personas que escriben los códigos nucleares son investigadores e ingenieros nucleares. Luego, los ingenieros de software optimizan el código a nivel de TI (paralelismo, por ejemplo). Es difícil para un ingeniero sin conocimiento de la física detrás del código desarrollarlo. Pero también es difícil para un físico optimizar la programación. Por lo tanto, a menudo se necesita una mezcla de ambos.

Con estos códigos de cálculo vienen los idiomas caseros. De hecho, el código de cálculo necesita algunos datos y direcciones para realizar el modelado que desea. Esos códigos de datos se escriben usando opciones / argumentos predefinidos. Puede considerarse como un lenguaje en sí mismo si considera los estudios de seguridad realizados con ellos (cientos de miles de líneas)

Otro software

La industria también utiliza software para obtener comentarios de pruebas periódicas, por ejemplo, o para modelar rápidamente en el sitio transitorio, por ejemplo. Las personas que desarrollan eso son ingenieros nucleares (menos investigación, nada innovador, sin algoritmos brillantes), y lo hacen hoy en Python. Sin embargo, realmente no necesita el conocimiento de física nuclear para desarrollar esas aplicaciones, aunque definitivamente ayuda.

¿Cómo hacerse uno?

Realmente no puedo hablar de los Estados Unidos todavía. Si desea desarrollar códigos de cálculo, mejorar la geometría, el modelado, el algoritmo, tendría que trabajar para una universidad o para una empresa como Westinghouse o Areva, que tienen su propia cadena de cálculo (que venden a los clientes: energía nuclear plantas). El caso francés es muy diferente, ya que EDF hace todo.

Para desarrollar códigos de cálculo, un doctorado relevante sería, en mi opinión, casi necesario en los Estados Unidos. Para desarrollar software, un ingeniero / programador (nuclear) podría hacerlo. Sin embargo, las oportunidades serían escasas, ya que lo veo más como un proyecto paralelo, por diversión.

Como se dijo antes, un “programador nuclear” generalmente codificará para que funcione. La optimización llega más tarde, posiblemente con la ayuda de programadores más clásicos. Un programador regular codificará mejor, pero realmente no sabrá si realmente funciona o para qué se utiliza.

Esta es la información que pude encontrar de la Comisión de Regulación Nuclear de los Estados Unidos (NRC de los Estados Unidos)
Revisar las pautas sobre los lenguajes de software para su uso en sistemas de seguridad de centrales nucleares (NUREG / CR-6463)
PL / M (Lenguaje de programación para micro computadoras)
C
C ++
Pascal
Lógica de escalera PLC
Ada
Tablas de funciones secuenciales IEC 1131

Hasta donde yo sé, se usan lenguajes de programación como C / C ++, Ada y Pascal.

Estos lenguajes de alto nivel generalmente dan un control total de los recursos donde Java no lo hace, por lo que no es muy preferido.

Idiomas: fortran (no existían muchos idiomas cuando las centrales nucleares comenzaban a popularizarse).

Diferencias: entre programadores regulares de fortran y programadores nucleares, ninguno realmente (excepto quizás que los programadores nucleares son más explosivos).

Una planta de energía nuclear es solo una fábrica, principalmente.
Debería saber cómo interactuar con los PLC y otros dispositivos que manipulan y controlan el mundo real, como las válvulas para el agua de enfriamiento y el vapor, los dispositivos que operan las barras de control, los dispositivos que regulan la energía, los dispositivos que monitorean las turbinas de vapor, etc.

Programadores. Muchas veces el software está escrito en Fortran.