I am working on a 3d finite volume scheme for an advection-diffusion- reaction problem involving a large number of chemical species (more than 60) and a large domain (an big lake for example). Since this scheme will be used on large problem, I want it to be as efficient as possible. The linear operators are splitted in 2 :
(1) advection-diffusion is solved using a fully implicit finite volume discretisation with a multigrid method for solving the linear system of equations (2) chemistry is solved using a Runge-Kutta-Rosenbrock solver for stiff ODE.
The transport (1) actually have the following form
foreach specie in speciesList { construct_matrix(); solve_linear_system();
}and takes a lot of time on the computer.
Assuming that diffusion coefficients are the same for all species, the whole fluid (including all species) should follow the same path during the transport. I wonder if it really necessairy to loop over all species and compute the transport several time. It is possible to compute the transport of the fluid once, and after reuse this calculation to the different species ?
I would really appreciate suggestion or reference on this.