Preface; Part I. The Tao of Scientific OOP: 1. Development costs and complexity; 2. The object-oriented way; 3. Scientific OOP; Part II. SOOP to Nuts and Bolts: 4. Design patterns basics; 5. The object pattern; 6. The abstract calculus pattern; 7. The strategy and surrogate patterns; 8. The puppeteer pattern; 9. Factory patterns; Part III. Gumbo SOOP: 10. Formal constraints; 11. Mixed-language programming; 12. Multiphysics architectures.
This book concerns software design, focusing on scalable design. It is designed for engineers who write scientific programs.
Damian Rouson is currently the manager of the Reacting Flow Research Department at Sandia National Laboratories. He was formerly Section Head of the US Navy Research Laboratory Division of Combustion Science and Modeling. He was Assistant Professor of Engineering at the City University of New York and Visiting Assistant Professor at the University of Maryland. Damian Rouson received his Masters and Ph.D. in Mechanical Engineering from Stanford University. Dr Jim Xia is currently a software designer and tester at the IBM Test Laboratory in Markham, Ontario, Canada. He received his Ph.D. in Physics from the University of Western Ontario in 1997. Dr Xiaofeng Xu is currently a Software Analyst at General Motors Corp. in Pontiac, Michigan. In this job, he performs airflow and combustion CFD analysis to support base engine designs. He received his Ph.D. in Mechanical Engineering (2003) from Iowa State University in Ames, IA and is the author or co-author of 39 refereed publications.
'... it's one of those books that I wish I'd read earlier in my
programming career. I found many design patterns familiar simply
because I'd seen them before in my own code. I'll likely turn to
this book in the future whenever I suspect a program design problem
might be solved already.' Computing in Science and Engineering
'Scientific software must be consciously designed to grow with a research program and the hardware that supports the research program. And how to do that is precisely what these authors in this book have shown.' Scientific Programming
"This book makes a good case for the usefulness of design patterns and object-oriented programming for maintainable code, but disregards runtime performance and scienti!c libraries...one of those books that I wish I'd read earlier in my programming career." - Ramses van Zon, Computing in Science and Engineering, Jan/Feb 2012
"Scientific software must be consciously designed to grow with a research program and the hardware that supports the research program. And how to do that is precisely what the authors in this book have shown." - Dan Nagel, Scientific Programming