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.