The system is defined as \(M*dx/dt=a*x+s\) where M is a diagonal matrix given by its diagonal vector M (which has a form of matrix for term-by-term multiplication with x0) In discrete terms \((M/dt_i-a)*x_i=(M/dt_i)*x_(i-1)+s_i\) The rmumps matrix \((M/dt_i-a)\) is stored in list ali as XPtr<Rmumps> or a plain dense inverted matrix. Calculations are done in-place so s is modified and contains the solution on exit. The others parameters are not modified.
solve_ieu(invdt, x0_, M, ali, s, ilua)
None
A numeric vactor, represents 1/dt
A numeric matrix or NULL, is the starting value at t0 (NULL means 0)
A numeric matrix representing diagonal terms (masses)
A list of matrices or Rmumps objects
A 3d numeric array, is the source term, its last margin corresponds to time. s[,,i]
can be a matrix or a vector(== 1-column matrix)
An integer vector, ilua[i]
gives the list index in ali
for a given \(dt_i\). In such a way, ali
may be shorter than time points.