The 20th century saw tremendous achievements and progress in science and technology. Undoubtedly, computers and computer-related technologies acted as one of vital catalysts for accelerating this progress in the latter half of the century. The contributions of mathematical sciences have been equally profound, and the synergy between mathematics and computer science has played a key role in accelerating the progress of both fields as well as science and engineering. Mathematical sciences will undoubtedly continue to play this vital role in this new century. In particular, mathematical modeling and numerical simulation will continue to be among the essential methodologies for solving massive and complex problems that arise in science, engineering and manufacturing. Underpinning this all from a sound, theoretical perspective will be numerical algorithms. In recognition of this observation, this volume focuses on the following specific topics. (1) Fundamental numerical algorithms (2) Applications of numerical algorithms (3) Emerging technologies. The articles included in this issue by experts on advanced scientific and engineering computations from numerous countries elucidate state-of-the-art achievements in these three topics from various angles and suggest the future directions. Although we cannot hope to cover all the aspects in scientific and engineering computations, we hope that the articles will interest, inform and inspire members of the science and engineering community.
The strength of Engineering Computation is its combination of the two most important computational programs in the engineering marketplace today, MATLAB® and Excel®. Engineering students will need to know how to use both programs to solve problems. The focus of this text is on the fundamentals of engineering computing: algorithm development, selection of appropriate tools, documentation of solutions, and verification and interpretation of results. To enhance instruction, the companion website includes a detailed set of PowerPoint slides that illustrate important points reinforcing them for students and making class preparation easier.
This book presents theories and the main useful techniques of the Finite Element Method (FEM), with an introduction to FEM and many case studies of its use in engineering practice. It supports engineers and students to solve primarily linear problems in mechanical engineering, with a main focus on static and dynamic structural problems. Readers of this text are encouraged to discover the proper relationship between theory and practice, within the finite element method: Practice without theory is blind, but theory without practice is sterile. Beginning with elasticity basic concepts and the classical theories of stressed materials, the work goes on to apply the relationship between forces, displacements, stresses and strains on the process of modeling, simulating and designing engineered technical systems. Chapters discuss the finite element equations for static, eigenvalue analysis, as well as transient analyses. Students and practitioners using commercial FEM software will find this book very helpful. It uses straightforward examples to demonstrate a complete and detailed finite element procedure, emphasizing the differences between exact and numerical procedures.
Engineers and scientists who want to avoid errors in their computer-assisted calculations will welcome this concise guide. In addition to its practical advice on detecting and removing the bugs that plague finite-precision calculations, it also outlines techniques for preserving significant figures, avoiding extraneous solutions, and finding efficient iterative processes for solving nonlinear equations. 1996 edition.
An overview of the most prominent contemporary parallel processing programming models, written in a unique tutorial style. With the coming of the parallel computing era, computer scientists have turned their attention to designing programming models that are suited for high-performance parallel computing and supercomputing systems. Programming parallel systems is complicated by the fact that multiple processing units are simultaneously computing and moving data. This book offers an overview of some of the most prominent parallel programming models used in high-performance computing and supercomputing systems today. The chapters describe the programming models in a unique tutorial style rather than using the formal approach taken in the research literature. The aim is to cover a wide range of parallel programming models, enabling the reader to understand what each has to offer. The book begins with a description of the Message Passing Interface (MPI), the most common parallel programming model for distributed memory computing. It goes on to cover one-sided communication models, ranging from low-level runtime libraries (GASNet, OpenSHMEM) to high-level programming models (UPC, GA, Chapel); task-oriented programming models (Charm++, ADLB, Scioto, Swift, CnC) that allow users to describe their computation and data units as tasks so that the runtime system can manage computation and data movement as necessary; and parallel programming models intended for on-node parallelism in the context of multicore architecture or attached accelerators (OpenMP, Cilk Plus, TBB, CUDA, OpenCL). The book will be a valuable resource for graduate students, researchers, and any scientist who works with data sets and large computations. Contributors Timothy Armstrong, Michael G. Burke, Ralph Butler, Bradford L. Chamberlain, Sunita Chandrasekaran, Barbara Chapman, Jeff Daily, James Dinan, Deepak Eachempati, Ian T. Foster, William D. Gropp, Paul Hargrove, Wen-mei Hwu, Nikhil Jain, Laxmikant Kale, David Kirk, Kath Knobe, Ariram Krishnamoorthy, Jeffery A. Kuehn, Alexey Kukanov, Charles E. Leiserson, Jonathan Lifflander, Ewing Lusk, Tim Mattson, Bruce Palmer, Steven C. Pieper, Stephen W. Poole, Arch D. Robison, Frank Schlimbach, Rajeev Thakur, Abhinav Vishnu, Justin M. Wozniak, Michael Wilde, Kathy Yelick, Yili Zheng
This edition places the fundamental tenets of computer programming into the context of MATLAB, employing hands-on exercises, examples from the engineering industry, and a variety of core tools to increase programming proficiency and capability.
Reliability-based design is the only engineering methodology currently available which can ensure self-consistency in both physical and probabilistic terms. It is also uniquely compatible with the theoretical basis underlying other disciplines such as structural design. It is especially relevant as geotechnical design becomes subject to incre
This book presents computer programming as a key method for solving mathematical problems. There are two versions of the book, one for MATLAB and one for Python. The book was inspired by the Springer book TCSE 6: A Primer on Scientific Programming with Python (by Langtangen), but the style is more accessible and concise, in keeping with the needs of engineering students. The book outlines the shortest possible path from no previous experience with programming to a set of skills that allows the students to write simple programs for solving common mathematical problems with numerical methods in engineering and science courses. The emphasis is on generic algorithms, clean design of programs, use of functions, and automatic tests for verification.