FELIX-1.0: A finite element solver for the time dependent generator coordinate method with the Gaussian overlap approximation
2015; Elsevier BV; Volume: 200; Linguagem: Inglês
10.1016/j.cpc.2015.11.013
ISSN1879-2944
AutoresDavid Regnier, Marc Verrière, N. Dubray, N. Schunck,
Tópico(s)Nuclear reactor physics and engineering
ResumoWe describe the software package FELIX that solves the equations of the time-dependent generator coordinate method (TDGCM) in N-dimensions (N≥1) under the Gaussian overlap approximation. The numerical resolution is based on the Galerkin finite element discretization of the collective space and the Crank–Nicolson scheme for time integration. The TDGCM solver is implemented entirely in C++. Several additional tools written in C++, Python or bash scripting language are also included for convenience. In this paper, the solver is tested with a series of benchmarks calculations. We also demonstrate the ability of our code to handle a realistic calculation of fission dynamics. Program title: FELIX-1.0 Catalogue identifier: AEYZ_v1_0 Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AEYZ_v1_0.html Program obtainable from: CPC Program Library, Queen's University, Belfast, N. Ireland Licensing provisions: GNU General Public License, Version 2 No. of lines in distributed program, including test data, etc.: 1192325 No. of bytes in distributed program, including test data, etc.: 10214787 Distribution format: tar.gz Programming language: C++. Computer: Intel Xeon, Intel Core. Operating system: LINUX. RAM: Memory usage depends on the number of nodes in the calculation mesh as well as on the degree of the interpolation polynomials. For a 1D calculation with linear polynomials on a mesh with 600 nodes, memory usage is approximately 3.3 MB; in a realistic simulation of fission on a 2D mesh with quadratic polynomials and 1.3 105 nodes, it reaches 1.5 GiB. Classification: 17.23. External routines: The solver itself requires the BLAS and LAPACK libraries, and a Fortran compiler with OpenMP support. Building the documentation requires DoxyGen-1.8.6 or higher. Building the full set of tools also requires GSL, PETSc, SLEPc and Boost. In particular, environment variables PETSC_DIR, PETSC_ARCH, SLEPC_DIR and SLEPC_ARCH must be set. Nature of problem: Nuclear fission is a relatively slow process compared to the typical timescale of the intrinsic motion of the nucleons. In the adiabatic approximation, it can be described as a large amplitude collective motion driven by only a few collective degrees of freedom. In the time-dependent generator coordinate method (TDGCM), the nuclear wave-function is thus described as a time-dependent, linear superposition of basis functions in this collective space. Further assuming a Gaussian overlap approximation (GOA) for the basis functions, the time-dependent Schrödinger equation can be reduced into a local, time-dependent, Schrödinger-like equation in collective space. This is the TDGCM+GOA equation. Scission configurations are defined as a hyper-surface in the N-dimensional collective space. Fission fragment distributions are then computed by integrating over time the flux of the collective wave-packet across the scission hyper-surface. This microscopic approach to fission fragment distributions is fully quantum-mechanical. Solution method: FELIX solves the TDGCM+GOA equation by using the Galerkin finite element method to discretize the N-dimensional collective space, and the Crank–Nicolson scheme to solve for the time evolution. At each time step, this procedure requires solving a linear system of equation involving sparse, complex, symmetric matrices. FELIX employs an iterative QMR algorithm to perform matrix inversion. Restrictions: Although the program can operate in an arbitrary number of dimensions N, it has only been tested in practice on 1, 2 and 3 dimensional meshes. Additional comments: The code has checkpointing capabilities: the collective wave-function, norm a and energy kernels are stored on disk every n iterations, ensuring that the program can resume where it stops. Running time: Running time grows linearly with the number of time-steps requested by the user. It is also highly dependent on the number of nodes in the space mesh. Two periods of a 1D harmonic oscillator (600 nodes, 800 time steps) are typically computed in a few seconds on one thread of a Intel(R) Core(TM) i5 CPU. A 2-dimensional realistic case of fission (105 nodes, 105 time steps) requires roughly 10 h on 10 threads of an Intel Xeon EP X5660 processor.
Referência(s)