ABSTRACT

Combinatorial techniques have become essential tools across the landscape of computational science, and some of the combinatorial ideas undergirding these tools are discussed in the following eighteen chapters in this book. The history of what we now call Combinatorial Scientific Computing (CSC) has

involved the steady accretion of new domains where combinatorial theory and algorithms have been used to enable computational science and engineering. The 1970s and 1980s witnessed the flourishing of graph algorithms in sparse direct methods. The 1990s saw the growth of combinatorial algorithms as key enablers of parallel computing. In recent years, graph algorithms have become essential to automatic differentiation, and play a pivotal role in computational biology. Discrete algorithms also play important roles in mesh generation, computational chemistry, performance optimization, and many other fields.