3.4.5. Segregated Solution Procedure
The time integration method is a two-level, backward Euler scheme, requiring data at two time states. The discrete form of the nonlinear equations is
(3.838)
Sub-iteration is required within the time step to satisfy the nonlinearities. Over one sub-iteration, the nonlinear equations are solved in a segregated manner. Each segregated equation set is linearized and solved as a linear problem. During the nonlinear iteration process, a temporary variable may be introduced to differentiate the old guess at the state (n+1) from the new guess at the state (n+1). A temporary variable (*) is introduced to hold the new estimate of the state (n+1). The temporary variable is typically only used in describing the algorithm. Functionally, the (*) variables and (n+1) variables are usually represented by the same array within the code. The only time a temporary variable would be used in the code is if the momentum equations were segregated or if the species diffusion velocities were not pre-computed.
Within the transport equations, the convection terms are linearized by freezing the mass flux (density * velocity * area).
The SIERRA framework provides services to manage the state data between the two time levels. The SIERRA framework services are insufficient because they only swap pointers. The result of the swap is that the estimate of the new solution at time (n+1) uses the solution at (n-1) instead of (n), which is too far away. After the pointer-swap, the SIERRA/Fuego code additionally copies forward the solution at (n) into the initial guess at (n+1). The array-copy occurs only at the beginning of the sub-iteration process. The SIERRA/Fuego code also manages the updating between (*) and (n+1) for the delta-form of the linear system.
The material properties are evaluated at the top of a nonlinear sub-iteration. Density is a STATE property since it has a time derivative in the continuity equation if properties are variable. Density will always be treated as a state variable, even if it is constant. All other properties are treated as TEMPORARY variables. The general workset algorithm that computes properties evaluates them at the most recent guess of the (n+1) state. There is an additional workset algorithm that evaluates state properties at both state (n) and (n+1). The state property evaluation is only performed during the initialization phase. All material properties are evaluated at the nodes. Sub-face and sub-volume values are averaged using the element shape functions.
A linear solve is performed for each equation set within a nonlinear sub-iteration. There is a solver object associated with each equation set within the SIERRA framework. The solver object contains the matrix connectivity and manages the assembly of the matrix components. There will be ten solver objects for the full turbulent combustion mechanics (the species equations all use the same solver object). There will also be ten repeated sets of connectivity information.
The ordering of the segregated equations during one nonlinear iteration is given in the following list. Reduced equation sets for simplified mechanics maintain the same relative ordering.
evaluate material properties using the most recent estimate of temperature and composition
evaluate turbulent eddy viscosity if turbulent
evaluate combustion model species production rates
evaluate soot model production rates
evaluate gas and soot absorptivity for radiation model
solve x-momentum equation, store new predicted x-velocity until all momentum equations have been evaluated
solve y-momentum equation, store new predicted y-velocity until all momentum equations have been evaluated
solve z-momentum equation, store new predicted z-velocity until all momentum equations have been evaluated
update predicted velocities
solve continuity equation using predicted velocities, update new pressure
update new mass fluxes at all control volume sub-faces, including boundaries, and use in subsequent transport equations
perform the velocity projection and correct all nodal velocities
assemble turbulence friction velocity
solve the turbulent kinetic energy equation if turbulent, store turbulent kinetic energy until turbulence dissipation equation is solved so that the production and dissipation source terms can be properly linearized
solve the turbulence dissipation equation if turbulent, update the turbulent kinetic energy and turbulence dissipation
solve the enthalpy equation
solve each species equation, do not update species mass fractions until all species equations have been solved
solve the soot equation, store soot mass fraction until soot nuclei equation is solved
solve the soot nuclei equation, update soot mass fraction and soot nuclei mass fraction
compute Nth species mass fraction using summation rule
update temperature at new time level
compute new density and time derivative of density
This procedure is repeated within a time step until the desired level of nonlinear equation convergence is achieved.