FEMFFUSION is an open source C++ neutronic code that solves the multigroup neutron transport equation using the diffusion approximation or the SPN approximation. The code uses the continuous Galerkin finite element method to be able to deal with any type of geometry and problem dimension (1D, 2D and 3D problems). It works on top of deal.II library, which provides supporting and advances in the finite element method.

FEMFFUSION main features are:

  • Open source software.
  • Use of the FEM to solve the multigroup neutron diffusion.
  • Solve the Simplified PN (SPN) equations and the Simplified Double PN equations (DSPN).
  • Use of matrix-free technique to maintain reasonable memory demands.
  • Possibility to use and implement a variety of eigenvalue solvers and preconditioners.
  • Valid for all types of geometries, rectangular, hexagonal, pin-level and unstructured.
  • Possibility to import unstructured grids from GMsh.
  • Capacity to solve problems in 1D, 2D and 3D.
  • Solve the direct or the adjoint flux and several eigenpairs, if requested.
  • Time-dependent problems as: control rod movements, noise problems, custom time-dependent cross sections…
  • Frequency domain analysis of noise problems.
  • Output provides the keff, the map of the averaged neutron power per assembly and each of the fluxes. Also standard .vtk files are provided among other output formats. For time dependent problems the neutron power and the neutron fluxes are provided each time step.
  • Interact with high-quality open-source libraries: deal.II, PETSc, SLEPc, Sundials…
  • Easy interface with plotting and post-processing tools (Matlab, ParaView, Matplotlib…).
  • Well documented and easy to extend to related problems.

Actually, FEMFFUSION can be seen as deal.II specialization for the neutron transport equation that uses large sparse matrix solvers (SLEPc among others). That is to say, FEMFFUSION builds the matrices  and  that cast the multigroup neutron transport/diffusion equation as a matrix-based eigenvalue problem:

my equation

These matrices are expected to be sparse, as they are the result of the discretization of the differential transport operator using the finite element method, over a certain spatial grid either. Said matrices are thus built in PETSc format, so they can either be passed to a solver (default is SLEPc, whose algorithms and parameters may be chosen at run-time).

FEMFFUSION also provides a second glue layer that links the output of the linear/eigen-solver to the input of a post-processing tool (ParaView ). The effective multiplication factor, keff, is shown in the output file along with the fluxes and power distribution.

FEMFFUSION is open software but if you use it, consider citing:

Fontenla, Y., Vidal-Ferràndiz, A., Carreño, A., Ginestar, D., & Verdú, G. (2024). FEMFFUSION and its verification using the C5G7 benchmark. In Annals of Nuclear Energy (Vol. 196, p. 110239). https://doi.org/10.1016/j.anucene.2023.110239

Further information

Repository: https://bitbucket.org/Zonni/femffusion 

Authors: Antoni Vidal-Ferràndiz, Amanda Carreño, Yanis Fontenla, Damian Ginestar and Gumersindo Verdú
Universitat Politècnica de València
Contact: anvifer2@upv.es and/or yfonbar@upvnet.upv.es.

FEMFFUSION is free software: you are free to change and redistribute it. There is NO WARRANTY