kernel_matrex.f90 File Reference
The kernel_matrex
module.
More...
Modules | |
module | kernel_matrex |
Main solver routines. | |
Functions/Subroutines | |
subroutine, public | get_precision () |
find number of significant places in double precision word compute the precision, iplace, of double precision word on this machine More... | |
subroutine, public | matrex_solve (trx, itot, non, n0, n, delta_t, diag, a, b, zero_flux_step, is_adjoint, nterm, nshrt, cutoff) |
subroutine | decay (kd, non0, loc, itot, non, n_final, t, diag, aa, long, xp, n_initial, xend, source_term, zero_flux_step, is_adjoint, nshrt, cut) |
DECAY determines which nuclides have half-lives that are less than about 10% of the time interval and solves for their concentrations using the Bateman solution, Eq. (F7.2.15). The end-of-interval concentrations are stored in the array N_FINAL. XDECAY also augments the concentrations of long-lived daughter products and updates the augmented beginning-of-interval concentrations in the array N_INITIAL. More... | |
subroutine | term (kd, non0, loc, itot, non, concentrations, t, diag, a, long, xp, xtemp, xend, source_term, zero_flux_step, is_adjoint, nterm, nshrt, cut) |
XTERM forms the reduced coefficient matrix such that it satisfies the criteria inherent in Eq. (F7.2.11). This involves the elimination of the transitions involving those nuclides with short half-lives, the computation of matrix elements required in this elimination, and the use of the augmented beginning-of interval concentrations calculated in XDECAY. XTERM goes on to solve the reduced system of equations by the matrix exponential method. This method uses the recursion relation, Eqs. (F7.2.9) or (F7.2.24), to obtain the solution, Eq. (F7.2.23). The solution is contained in the array XNEW. MATREX Performs the matrix exponential method recursion computation, after arrays initialized in XTERM. More... | |
subroutine | equil (kd, non0, loc, itot, non, n_final, diag, a, long, xp, n_initial, source_term, zero_flux_step) |
Get number of terms needed for matrix expansion. More... | |
subroutine | matrex (nlarge, non, itot, t, err, cim0, cimn, long, nonp, locp, ap, d, csum) |
Variables | |
real(c_double), parameter | akdjq_treshold = 1.0d-6 |
real(c_double), parameter | decay_long_treshold = -50.0d0 |
real(c_double), parameter | equal_d_treshold = 1.0d-7 |
real(c_double) | chek4 |
precision-related limit More... | |
real(c_double) | ratio4 |
precision-related limit More... | |
real(c_double) | qxn |
precision-related limit More... | |
real(c_double) | axn |
precision-related limit More... | |
real(c_double), parameter | xlow = tiny(1.0)*2.0 |
value close to lowest, xlow 2.00d-38 More... | |
character(256), dimension(256), private | rbuffer |
buffer for writing stuff More... | |
Detailed Description
The kernel_matrex
module.