Note: Supplemental materials are not guaranteed with Rental or Used book purchases.
Purchase Benefits
Looking to rent a book? Rent Scientific Software Design: The Object-Oriented Way [ISBN: 9780521888134] for the semester, quarter, and short term or search our site for other textbooks by Damian Rouson , Jim Xia , Xiaofeng Xu. Renting a textbook can save you up to 90% from the cost of buying.
List of Figures | p. xi |
List of Tables | p. xv |
Preface | p. xvii |
Acknowledgments | p. xxi |
Disclaimer | p. xxii |
p. 1 | |
Development Costs and Complexity | p. 3 |
Introduction | p. 3 |
Conventional Scientific Programming Costs | p. 7 |
Conventional Programming Complexity | p. 11 |
Alternative Programming Paradigms | p. 19 |
How Performance Informs Design | p. 24 |
How Design Informs Performance | p. 25 |
Elements of Style | p. 27 |
The Object-Oriented Way | p. 31 |
Nomenclature | p. 31 |
Object-Oriented Analysis and Design | p. 33 |
Encapsulation and Information Hiding | p. 36 |
Wrapping Legacy Software | p. 40 |
Composition, Aggregation, and Inheritance | p. 48 |
Static and Dynamic Polymorphism | p. 53 |
Oop Complexity | p. 54 |
More on Style | p. 55 |
Scientific Oop | p. 57 |
Abstract Data Type Calculus | p. 57 |
Analysis-Driven Design | p. 66 |
Design Metrics | p. 69 |
Complexity Theory | p. 71 |
Information Theory | p. 73 |
Still More on Style | p. 77 |
The Tao of Soop | p. 79 |
SOOP To Nuts And Bolts | p. 83 |
Design Patterns Basics | p. 85 |
Essentials | p. 85 |
Foundations | p. 86 |
Building Architecture | p. 87 |
Software Architecture | p. 93 |
Scientific Software Architecture | p. 98 |
Canonical Contexts | p. 99 |
The Lorenz Equations: A Chaotic Dynamical System | p. 100 |
Quantum Vortex Dynamics in a Superfluid | p. 102 |
Burgers' Equation: Shock Formation and Dissipation | p. 104 |
The Object Pattern | p. 107 |
The Problem | p. 107 |
The Solution | p. 108 |
Fortran implementation | p. 110 |
C++ Style and Tools | p. 116 |
C++ Implementation of Vortex | p. 122 |
The Consequences | p. 127 |
Related Patterns | p. 127 |
The Abstract Calculus Pattern | p. 129 |
The Problem | p. 129 |
The Solution | p. 130 |
Fortran Implementation | p. 131 |
C++ Implementation | p. 137 |
The Consequences | p. 140 |
Related Patterns | p. 141 |
The Strategy and Surrogate Patterns | p. 143 |
The Problem | p. 143 |
The Solution | p. 144 |
Fortran Implementation | p. 146 |
C++Implementation | p. 155 |
The Consequences | p. 164 |
Related Patterns | p. 164 |
The Puppeteer Pattern | p. 167 |
The Problem | p. 167 |
The Solution | p. 169 |
Fortran Implementation | p. 170 |
Ac++Tool:2D Allocatable Arrays | p. 185 |
C++Implementation | p. 191 |
The Consequences | p. 199 |
Related Patterns | p. 201 |
Factory Patterns | p. 202 |
The Problem | p. 202 |
The Solution | p. 203 |
Fortran Implementation | p. 205 |
C++ Implementation | p. 216 |
The Consequences | p. 226 |
Related Patterns | p. 227 |
Gumbo Soop | p. 229 |
Formal Constraints | p. 231 |
Why Be Formal? | p. 231 |
Problem Statement | p. 233 |
Side Effects in Abstract Calculus | p. 237 |
Formal Specification | p. 238 |
Modeling Arrays with Ocl | p. 238 |
Hermeticity | p. 239 |
Economy | p. 242 |
The Shell Pattern | p. 244 |
An Assertion Utility for Fortran | p. 245 |
Case Study: A Fluid Turbulence Solver | p. 247 |
Mixed-Language Programming | p. 251 |
Automated Interoperability Tools | p. 251 |
Manual Interoperability: C++/Fortran 95 | p. 254 |
Case Study: ForTrilinos and CTrilinos | p. 259 |
C Interoperability in Fortran 2003 | p. 261 |
Method Invocation | p. 269 |
Tabulation, Construction, and Destruction | p. 273 |
Polymorphism and Hierarchy Mirroring | p. 278 |
Discussion | p. 281 |
Multiphysics Architectures | p. 285 |
Toward a Scalable Abstract Calculus | p. 285 |
Amdahl's Law and Parallel Efficiency | p. 286 |
Automatic Parallelization: Compiler Technology | p. 292 |
Directive-Based Parallelization: Openmp | p. 295 |
Library-Based Parallelization: ForTrilinos and Mpi | p. 297 |
Intrinsic Parallelization: Fortran 2008 Coarrays | p. 309 |
Case Studies: Multiphysics Modeling | p. 317 |
Quantum Turbulence in Superfluid Liquid Helium | p. 318 |
Lattice-Boltzman Biofiuid Dynamics | p. 320 |
Particle Dispersion in Magnetohy drodynamics | p. 325 |
Radar Scattering in the Atmospheric Boundary Layer | p. 326 |
The Morfeus Framework | p. 330 |
Mathematical Background | p. 335 |
Interpolation | p. 335 |
Lagrange Interpolation | p. 335 |
Linear Solvers | p. 337 |
Gaussian Elimination | p. 337 |
Lu Decomposition | p. 342 |
Nonlinear Solvers | p. 343 |
Newton's Method in Id | p. 343 |
Newton's Method in Multiple Dimensions | p. 344 |
Partial Differential Equations | p. 345 |
The Heat Equation | p. 345 |
The Burgers Equation | p. 346 |
Numerical Analysis | p. 347 |
Finite Differences | p. 347 |
Numerical Methods for Differential Equations | p. 350 |
Unified Modeling Language Elements | p. 357 |
Use Case Diagrams | p. 357 |
Class Diagrams | p. 359 |
Classes | p. 359 |
Relationships | p. 362 |
Object Diagrams | p. 366 |
Sequence Diagrams | p. 367 |
Interactions and Messages | p. 368 |
Sequence Diagrams | p. 368 |
The Object Constraint Language | p. 370 |
The Context of OCL Expression | p. 370 |
Initial Value Rule | p. 371 |
Specifying Object Invariants | p. 371 |
Adding Pre- and Postconditions to Operations | p. 371 |
Bibliography | p. 373 |
Index | p. 379 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.