ndarmage / OpenBS

Open source Bateman Solver based on LSODE
BSD 3-Clause "New" or "Revised" License
4 stars 1 forks source link

Use of GPT for changes of the transmutation matrix #6

Open ndarmage opened 4 years ago

ndarmage commented 4 years ago

There are currently two points whose execution is taking considerable time, when running the main module OpenBS.py. A discussion to improve both the methodology and the implementation is needed.

Contrary to Chiba et al. 2015, changes in the matrix associated to the ODEs system are determined by 1st order Taylor expansion where derivatives are estimated by incremental ratios. This requires the calculation of flux and rates in both unperturbed and perturbed conditions, leading potentially to longer calculation. Specifically, it is: [ \Delta M = \frac{\partial M}{\partial N_i} \cdot \Delta N_i = \frac{\partial M}{\partial \phi} \frac{\partial \phi}{\partial N_i} \cdot \Delta N_i. ] The use of 1st order GPT won't need quantities at perturbed conditions.

The second point is about the calculation of the adjoint nuclide density vectors. Our implementation follows Chiba's derivation with the projection of the perturbed ODEs equations on the nuclide importance function. This derivation assumes that the matrix M is constant in time within each time step, thus requiring explicit solvers for the initial (or final) value problem. The backwards explicit solution for the nuclide importance forces the use of several calls to solve_ivp in each time step. Since the flux is already known along the evolution in time, we could evolve our method to solve for the nuclide importance on longer time frames, with a time-dependent M^T (see Eq. 7 of Chiba's article).