## 83 Solvers

Solver tools implement the numerical methods discussed earlier (Chapters 6 and 7) to solve the model equations. It is important to give appropriate importance to (1) general applicability, (2) ease of use, (3) economy of computations, (4) maintainability, and (5) expandability. These five requirements may have contradictory demands on the way computer programs are generally written and developed. Most computer programs developed by academic research groups focus on including more complex physical models and may tolerate deficiencies in other requirements, such as ease of use and maintainability. The capability to handle complex grids is also, generally, moderate in such academic codes. Most commercial codes try to provide ease of use and maintainability along with the capability to handle complex grids. Such codes may, however, have to trade some of the recent advances in understanding of the physics of complex flow processes (e.g. multiphase and reactive flows), to provide general applicability and robustness. The provisions to include new mathematical models may, therefore, become one of the important criteria in the selection of commercial CFD code, especially for reactor engineering applications. Before reviewing key issues in evaluating commercial CFD codes, some comments on in-house CFD code are relevant.

Although commercial CFD tools are being increasingly used to address complex, industrial reactor engineering problems, the experience and insight gained through the use of in-house CFD codes is often very useful. It is always beneficial to develop some CFD tools in-house, to get a first hand feel. Patankar (1980) listed several suggestions for the development of such in-house CFD codes. It is beneficial to adopt a modular approach to construct the required CFD tools. Cross et al. (1989) discussed some of the guidelines and trends in CFD software engineering, which may also be useful for the new code developer. Ferziger and Peric (1995), in their excellent book, discussed various numerical methods and their computer implementation. Corresponding FORTRAN programs are available from their website (ftp.springer.de/technik/pub/peric). The process of development of a CFD code, its de-bugging and validation can provide much needed insight into the behavior of flow processes, as well as their numerical simulation. This process and experience may significantly enhance the ability to use and to modify various commercially available CFD tools. In-house code may also serve the purpose of testing new models by simulating relatively simple validation problems. The validated model can then be incorporated in a commercial CFD code to carry out numerical simulations of industrial process equipment. With the advent of the world wide web (WWW), it is now easy to download the necessary components and construct an in-house CFD tool kit. A good source to find useful CFD resources is http://www.cfd-online.com. Free and shareware CFD programs as well as several general purpose numerical programs are listed on this site.

Industrial reactor engineering applications are generally carried out using commercial CFD tools to ensure enhanced maintainability and useful life of the developed models. Key characteristics of CFD solvers and tools are summarized in Table 8.2. For reactor engineering applications, one of the most important features of CFD codes is the ability to extend the in-built models via user-written modules. No matter how general the CFD code is, it will always be necessary to develop specific sub-models (see e.g. case studies discussed in Chapter 9) to simulate specific reactors. It is important to understand the power and limitations of such user-defined capabilities of any CFD code before one commits to use it for reactor engineering applications. Documentation and tools to assist the incorporation of new models into commercial CFD code also play an important role in determining the effort and resources required to extend commercial CFD code to include specific model equations. Every commercial CFD code vendor offers different ways and facilities to incorporate new models. Many commercial CFD codes impose constraints (form of the equations, algorithm used for the user defined equations and so on) on user-defined equations, which need to be evaluated carefully. In many situations, it is necessary to replace some of the terms in the default model equations. In such situations, a facility to select terms in the default model equations is very useful. If such a facility is not present, the user has to develop programs to subtract the unwanted terms in the default equations and include the new ones. This may lead to some inconsistencies if the discretization methods used by the user and those used in the default code are not the same. Many of the leading commercial CFD vendors organize 'User Group Meetings' to promote exchange of expertise and exchange of user-defined enhancements. Archives of 'user-defined routines' are also maintained by some vendors. Such archives and proceedings of user group meetings are very useful sources of information related to the use of a particular CFD code in reactor-engineering applications.

Apart from the available mathematical models and facilities for adding new mathematical models, there are several other issues of concern when selecting an appropriate CFD code. The facility to import grids from a variety of grid generation tools/pre-processors is obviously needed. A facility for scaling an entire geometry without the need for re-meshing will be useful for studying scale-up or scale-down (geometrically similar) behavior. An ability to introduce minor modifications in the geometry (e.g. introducing or removing baffles), without re-meshing, will be useful for evaluating different reactor configurations. An ability to handle grids of high aspect ratio and high skewness is important since most industrial reactors have complex geometry. It is difficult to identify upper limits of grid aspect ratio or skewness which these codes can handle since these values are strongly problem dependent. A facility for automatic grid refinement according to user-defined criteria will also be useful. Automatic grid refinement and appropriate data interpolation tools greatly facilitate grid sequencing studies and the generation of grid-independent results. Not all commercial codes provide these facilities. In addition to grid refinement, higher order discretization schemes play an important role in enhancing the accuracy of simulation results. An ability to incorporate a user-defined discretization scheme will, therefore, be a useful facility (which is not provided by most currently available commercial CFD codes).

To simulate turbulent flows, Reynolds-averaged Navier-Stokes (RANS) equations form the basis for most codes. Several turbulence models are usually provided. A new turbulence model may also usually be incorporated via user-defined routines. Recently, many of the commercial CFD codes have announced the inclusion of large eddy simulation (LES) capabilities. Considering the importance of rotating equipment used in reactor engineering applications, the ability to handle multiple reference frames or sliding meshes is important. Most leading commercial CFD codes provide similar facilities to simulate single-phase flows. Capabilities to simulate multiphase flows may, however, differ considerably from code to code. The same is true for reactive mixing or combustion models. This is expected to be so as both of these fields are still evolving at a fast pace. The same comments are also applicable to porous media models, complex rheological models and surface reaction models. The user-defined capabilities of CFD codes mentioned above become even more important in these areas and need to be evaluated based on the intended reactor engineering applications. Available options for boundary conditions also must be examined, especially for multiphase flows. Some sort of consistency checks on input data and on permissible combinations of boundary conditions are always useful. A facility to import physicochemical data from available databases is useful when simulating flow systems with large numbers of components.

The SIMPLE or PISO family of algorithms (SIMPLE, SIMPLER, SIMPLEC, SIMPLEST, PISO, SIMPISO) are usually used to treat pressure-velocity coupling. Most commercial codes provide options to use state of the art multigrid techniques and block correction methods to accelerate the solution of algebraic equations. Often, for single-phase flows, the solver performance of most codes is similar, but may, however, differ significantly for multiphase flows, depending on algorithms and traps used to handle the interphase coupling (partial elimination or full elimination, calculation of volume fractions and so on). Unfortunately, information on how the multiphase flow equations are discretized and what in-built traps are included to avoid non-physical results, is usually not disclosed by commercial CFD vendors. The availability of various options for interpolation and trajectory calculations when carrying out Eulerian-Lagrangian simulations of dispersed multiphase flows may also differentiate the available codes. Several versions (and different implementations) of VOF models also make direct comparisons difficult. It may be useful to formulate a few benchmark problems (related to the intended reactor engineering applications) to evaluate the performance of different CFD codes. On-line convergence monitoring tools are often useful and are needed to carry out complex simulations. The ability to run the CFD solver on multi-CPU machines is also important to reduce the turn-round time of complex reactor engineering problems. The speed-up ratios achieved for specific parallel hardware should be examined before selecting the CFD solver (or the hardware).

Although it is important to compare the underlying technologies of different CFD codes, it should be noted that the ability to carry out the desired simulation using a given CFD code depends more on the expertise of the user rather than on the CFD code itself. The skilled CFD user can obtain the desired results from any available commercial CFD code by suitably exploiting user-defined routines. The tools required to analyze the results obtained by CFD codes are discussed below.

## Post a comment