Draft: Prototype HT solver using vector-class-based DAE integrator (#450)
This adds a new HT solver that uses a redesigned DAE integrator that uses abstract vectors rather than intrinsic rank-1 real arrays. This pure HT solver is used in place of the HTSD solver whenever species diffusion is absent.
The goal of this redesign is to reduce the amount of data movement in the implicit solver. The existing DAE integrator operates on a flat rank-1 array of unknowns. The HT/SD solver allocates consecutive chunks of this packed array to the individual enthalpy, temperature, and Lagrange multiplier unknowns (and more if SD is included). Calculation of the residual requires extended unknown arrays that include off-process values on partition boundaries, which requires the procedure to copy data from the packed array into local extended arrays for individual unknowns, and then copy data back from local result arrays to a packed array returned to the DAE integrator. This copying can be eliminated if the individual extended unknown arrays are encapsulated in a structure that derives from an abstract vector type with vector operations used by the DAE integrator (linear combinations, dot product, etc.) that are defined to ignore off-process elements.